Files
ansible.collection.globals/roles/grafana_alloy/templates/config.alloy.j2
T

99 lines
2.5 KiB
Django/Jinja

// metrics - prometheus srv
prometheus.remote_write "prom_srv" {
endpoint {
url = "{{ prometheus.remote_write.endpoint.url }}"
}
}
// metrics - scrape config
prometheus.scrape "integrations_node_exporter" {
scrape_interval = "15s"
targets = discovery.relabel.integrations_node_exporter.output
forward_to = [prometheus.remote_write.prom_srv.receiver]
}
// metrics - relabel
discovery.relabel "integrations_node_exporter" {
targets = prometheus.exporter.unix.integrations_node_exporter.targets
rule {
target_label = "instance"
replacement = constants.hostname
}
rule {
target_label = "job"
replacement = "node-exporter"
}
}
// metrics - node exporter
prometheus.exporter.unix "integrations_node_exporter" {
disable_collectors = ["ipvs", "btrfs", "infiniband", "xfs", "zfs"]
enable_collectors = ["meminfo"]
filesystem {
fs_types_exclude = "^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|tmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|sysfs|tracefs)$"
mount_points_exclude = "^/(dev|proc|run/credentials/.+|sys|var/lib/docker/.+)($|/)"
mount_timeout = "5s"
}
netclass {
ignored_devices = "^(veth.*|cali.*|[a-f0-9]{15})$"
}
netdev {
device_exclude = "^(veth.*|cali.*|[a-f0-9]{15})$"
}
}
// logs loki
loki.write "loki_srv" {
endpoint {
url = "{{ loki.endpoint.url }}"
}
}
// logs - journald
loki.source.journal "logs_journal_scrape" {
max_age = "24h0m0s"
relabel_rules = discovery.relabel.logs_journal_scrape.rules
forward_to = [loki.write.loki_srv.receiver]
labels = {
host = "{{ inventory_hostname }}",
{% if loki.labels is defined and loki.labels %}
{% for key, value in loki.labels.items() %}
{{ key }} = "{{ value }}",
{% endfor %}
{% endif %}
}
}
// logs - journald - relabel
discovery.relabel "logs_journal_scrape" {
targets = []
rule {
source_labels = ["__journal__systemd_unit"]
target_label = "systemd_unit"
}
rule {
source_labels = ["__journal_syslog_identifier"]
target_label = "syslog_identifier"
}
rule {
source_labels = ["__journal__transport"]
target_label = "journal_transport"
}
rule {
source_labels = ["__journal_priority_keyword"]
target_label = "level"
}
}