93 lines
2.4 KiB
Nix
93 lines
2.4 KiB
Nix
{pkgs, ...}: {
|
|
services = {
|
|
alloy = {
|
|
enable = true;
|
|
configPath = pkgs.writeText "alloy-config.alloy" ''
|
|
loki.source.journal "system" {
|
|
forward_to = [loki.process.production.receiver]
|
|
relabel_rules = loki.relabel.journal.rules
|
|
labels = {
|
|
host = "viola",
|
|
job = "systemd",
|
|
}
|
|
}
|
|
|
|
loki.relabel "journal" {
|
|
forward_to = []
|
|
rule {
|
|
source_labels = ["__journal__systemd_unit"]
|
|
target_label = "unit"
|
|
}
|
|
}
|
|
|
|
loki.write "local" {
|
|
endpoint {
|
|
url = "http://127.0.0.1:3100/loki/api/v1/push"
|
|
}
|
|
}
|
|
|
|
loki.process "production" {
|
|
forward_to = [loki.write.local.receiver]
|
|
|
|
stage.match {
|
|
selector = `{service_name=~"(alloy|forgejo|grafana|loki|microbin|mimir|stalwart|postgresql|redis|stalwart|static-web-server|tempo|traefik|vaultwarden|woodpecker|zitadel)\\.service"}`
|
|
action = "keep"
|
|
}
|
|
}
|
|
|
|
prometheus.exporter.unix "node" {
|
|
enable_collectors = [
|
|
"cpu", "diskstats", "filesystem",
|
|
"loadavg", "meminfo", "netdev",
|
|
"systemd", "time", "uname",
|
|
]
|
|
}
|
|
|
|
prometheus.scrape "node" {
|
|
targets = prometheus.exporter.unix.node.targets
|
|
forward_to = [prometheus.remote_write.mimir.receiver]
|
|
scrape_interval = "30s"
|
|
job_name = "node"
|
|
}
|
|
|
|
prometheus.scrape "alloy" {
|
|
targets = [{"__address__" = "127.0.0.1:12345"}]
|
|
|
|
forward_to = [prometheus.remote_write.mimir.receiver]
|
|
job_name = "alloy"
|
|
}
|
|
|
|
prometheus.remote_write "mimir" {
|
|
endpoint {
|
|
url = "http://127.0.0.1:9009/api/v1/push"
|
|
}
|
|
}
|
|
|
|
otelcol.receiver.otlp "default" {
|
|
grpc {
|
|
endpoint = "0.0.0.0:4317"
|
|
}
|
|
|
|
http {
|
|
endpoint = "0.0.0.0:4318"
|
|
}
|
|
|
|
output {
|
|
traces = [otelcol.exporter.otlp.tempo.input]
|
|
logs = [otelcol.exporter.loki.local.input]
|
|
}
|
|
}
|
|
|
|
otelcol.exporter.otlp "tempo" {
|
|
client {
|
|
endpoint = "http://127.0.0.1:4317"
|
|
}
|
|
}
|
|
|
|
otelcol.exporter.loki "local" {
|
|
forward_to = [loki.write.local.receiver]
|
|
}
|
|
'';
|
|
};
|
|
};
|
|
}
|