base/grafana-alloy: add alloy config

This commit is contained in:
2025-08-07 23:05:53 -07:00
parent 5dcf48e3f9
commit 5ef522d7ae

View File

@@ -11,6 +11,88 @@
environment.systemPackages = with pkgs; [ grafana-alloy ];
services.alloy.enable = true;
# Fixes issue with node_exporter
# Fixes issue with node_exporter component
services.dbus.implementation = "broker";
environment.etc."alloy/config.alloy" = ''
// Do not modify this or any of the below lines
// /etc/alloy/config.alloy
// We want to silence most output except for any errors
logging {
level = "error"
format = "logfmt"
}
// Default write target to log-xx server
prometheus.remote_write "default" {
endpoint {
url = "{{ alloy_prometheus_endpoint }}"
}
external_labels = {host = "{{ ansible_hostname }}"}
}
// Read misc services from a dropin directory
discovery.file "dropin" {
files = ["{{ alloy_dropin_dir }}/*.yaml"]
}
prometheus.scrape "dropin" {
targets = discovery.file.dropin.targets
forward_to = [prometheus.remote_write.default.receiver]
scrape_interval = "10s"
}
// ========== Default Prometheus configuration ==========
prometheus.exporter.unix "local_system" {
enable_collectors = ["systemd"]
}
prometheus.scrape "local_system" {
targets = prometheus.exporter.unix.local_system.targets
forward_to = [prometheus.remote_write.default.receiver]
scrape_interval = "10s"
}
// ========== Default Loki configuration ==========
loki.write "default" {
endpoint {
url = "{{ alloy_loki_endpoint }}"
}
external_labels = {host = "{{ ansible_hostname }}"}
}
local.file_match "local_logfiles" {
path_targets = [{"__path__" = "/var/log/*.log"}]
sync_period = "5s"
}
discovery.relabel "systemd_journal" {
targets = []
rule {
source_labels = ["__journal__systemd_unit"]
target_label = "systemd_unit"
}
rule {
source_labels = ["__journal__hostname"]
target_label = "host"
}
rule {
source_labels = ["__journal_syslog_identifier"]
target_label = "syslog_identifier"
}
}
loki.source.journal "systemd_journal" {
path = "/var/log/journal"
relabel_rules = discovery.relabel.systemd_journal.rules
forward_to = [loki.write.default.receiver]
labels = {
cluster = "ops-tools1",
job = "default/systemd-journal",
}
}
'';
}