You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
journald is writing to the store Alloy reads — journalctl --header shows the
active file under /var/log/journal/, and from inside the container two
journal files were modified in the last 5 minutes.
discovery.relabel "journal" has no drop rules, only four label mappings, and loki.source.journal forwards straight to loki.write.grafana_loki without
passing through loki.process.log_processor. So nothing in the config is
obviously filtering it.
Why this matters
It is the #62 shape: the component is healthy, the dashboard has data, the
target is up, and the agent is reporting a small fraction of reality. Nothing
would tell you. docs/observability.md lists the journal as a collected source
without qualification, and the Logs dashboard will show journal lines — just
almost none of them.
There is also a second store on this host, /run/log/journal, which Alloy does
not mount. It does not appear to be the active one, but it should be ruled in or
out properly rather than by inspection.
Worth checking
max_age = "24h0m0s" and the saved position in alloy-data — is the reader
stuck behind a checkpoint rather than tailing?
Found while verifying #188, and not caused by it.
Alloy's
loki.source.journalis delivering roughly 1.5% of what the hostjournal produces.
Measured on
prometheuson 2026-08-31:What the host is actually writing in that window:
Almost none of it arrives.
It is not the capability change, and not the mount
journalctl --headershows theactive file under
/var/log/journal/, and from inside the container twojournal files were modified in the last 5 minutes.
discovery.relabel "journal"has no drop rules, only four label mappings, andloki.source.journalforwards straight toloki.write.grafana_lokiwithoutpassing through
loki.process.log_processor. So nothing in the config isobviously filtering it.
Why this matters
It is the #62 shape: the component is healthy, the dashboard has data, the
target is up, and the agent is reporting a small fraction of reality. Nothing
would tell you.
docs/observability.mdlists the journal as a collected sourcewithout qualification, and the Logs dashboard will show journal lines — just
almost none of them.
There is also a second store on this host,
/run/log/journal, which Alloy doesnot mount. It does not appear to be the active one, but it should be ruled in or
out properly rather than by inspection.
Worth checking
max_age = "24h0m0s"and the saved position inalloy-data— is the readerstuck behind a checkpoint rather than tailing?
CAP_SYSLOGor a group beyond the one fix(observability): take every capability off Alloy (#188) #192 added(though it reads the files directly, and those are root-owned, so it should
not).
from
config.alloy.journalctloutputlines versus Loki entries — before concluding the gap is real at this size.
Done when
quiet source and a broken one currently look identical, which is the
complaint Detect Suricata being dead — a quiet IDS and a stopped one look identical #90 makes about Suricata