124 lines
3.2 KiB
Django/Jinja
124 lines
3.2 KiB
Django/Jinja
logging {
|
|
level = "info"
|
|
write_to = [loki.relabel.alloy_logs.receiver]
|
|
}
|
|
|
|
prometheus.remote_write "mimir" {
|
|
endpoint {
|
|
url = "https://{{ lgtm_stack_mimir_domain }}/api/v1/push"
|
|
}
|
|
}
|
|
|
|
prometheus.exporter.self "alloy" {}
|
|
prometheus.scrape "alloy" {
|
|
targets = prometheus.exporter.self.alloy.targets
|
|
forward_to = [prometheus.remote_write.mimir.receiver]
|
|
}
|
|
|
|
prometheus.exporter.postgres "default" {
|
|
data_source_names = ["postgresql://{{ svc.postgresql_collector.user }}:{{ svc.postgresql_collector.pass }}@{{ svc.postgresql_collector.host }}:{{ svc.postgresql_collector.port }}/{{ svc.postgresql_collector.database }}?sslmode=verify-full"]
|
|
|
|
autodiscovery {
|
|
enabled = true
|
|
}
|
|
}
|
|
prometheus.scrape "postgres" {
|
|
targets = prometheus.exporter.postgres.default.targets
|
|
forward_to = [prometheus.remote_write.mimir.receiver]
|
|
}
|
|
|
|
prometheus.scrape "node_exporter" {
|
|
targets = [
|
|
{% for host_data in opentofu.hosts.values() %}
|
|
{"__address__" = "{{ host_data.fqdn_vpn }}:9100", "instance" = "{{ host_data.hostname }}"},
|
|
{% endfor %}
|
|
]
|
|
forward_to = [prometheus.remote_write.mimir.receiver]
|
|
}
|
|
|
|
prometheus.scrape "caddy" {
|
|
targets = [
|
|
{% for host_data in opentofu.hosts.values() %}
|
|
{"__address__" = "{{ host_data.fqdn_vpn }}", "instance" = "{{ host_data.hostname }}"},
|
|
{% endfor %}
|
|
]
|
|
forward_to = [prometheus.remote_write.mimir.receiver]
|
|
}
|
|
|
|
|
|
{% for job in lgtm_stack_alloy_jobs %}
|
|
|
|
prometheus.scrape "{{ job.name }}" {
|
|
targets = [
|
|
{% for target in job.targets %}
|
|
{
|
|
"__address__" = "{{ target.address }}",
|
|
"__metrics_path__" = "{{ target.path }}",
|
|
"__scheme__" = "https",
|
|
{% if 'job' in target %}"job" = "{{ target.job }}",{% endif %}
|
|
{% if 'instance' in target %}"instance" = "{{ target.instance }}",{% endif %}
|
|
},
|
|
{% endfor %}
|
|
]
|
|
|
|
scrape_interval = "{{ job.scrape_interval }}"
|
|
forward_to = [prometheus.remote_write.mimir.receiver]
|
|
}
|
|
|
|
{% endfor %}
|
|
|
|
loki.write "loki" {
|
|
endpoint {
|
|
url = "https://{{ lgtm_stack_loki_domain }}/loki/api/v1/push"
|
|
}
|
|
}
|
|
|
|
loki.relabel "alloy_logs" {
|
|
rule {
|
|
target_label = "instance"
|
|
replacement = "{{ inventory_hostname }}"
|
|
}
|
|
|
|
rule {
|
|
target_label = "job"
|
|
replacement = "integrations/self"
|
|
}
|
|
|
|
forward_to = [loki.write.loki.receiver]
|
|
}
|
|
|
|
discovery.docker "linux" {
|
|
host = "unix:///var/run/docker.sock"
|
|
|
|
filter {
|
|
name = "label"
|
|
values = ["net.serguzim.logs.collect=true"]
|
|
}
|
|
}
|
|
|
|
loki.source.docker "default" {
|
|
host = "unix:///var/run/docker.sock"
|
|
targets = discovery.docker.linux.targets
|
|
labels = {"app" = "docker"}
|
|
relabel_rules = discovery.relabel.logs_docker_containers.rules
|
|
forward_to = [loki.write.loki.receiver]
|
|
}
|
|
|
|
discovery.relabel "logs_docker_containers" {
|
|
targets = []
|
|
rule {
|
|
source_labels = ["__meta_docker_container_label_com_docker_compose_project"]
|
|
target_label = "compose_project"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_docker_container_label_com_docker_compose_service"]
|
|
target_label = "compose_service"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_docker_container_name"]
|
|
target_label = "container_name"
|
|
}
|
|
}
|
|
|