otel: map journald PRIORITY onto a severity at every journald receiver
Records reached VictoriaLogs carrying the journal's raw PRIORITY and severity_text "Unspecified" — every line in the store, at every tier, with no level a query or a dashboard could read. VictoriaLogs has no ingest parameter naming a level field; it auto-detects one by field name, so the mapping has to happen in the collector. A stanza severity_parser on each journald receiver, from one shared file rather than a copy per tier: the two receivers are unrelated config (a fixed stanza in the agent container, a parameterised block inside the swarm-otel container) and a drifted copy fails silently — every line still arrives, labelled as the wrong thing. Two details that are easy to get wrong and quiet when wrong. PRIORITY counts down in urgency where the OTEL severity counts up, so the table is written as a table. And overwrite_text is required: without it the parser sets the severity number and leaves the text as the raw digit, so severity_text arrives as the literal "6" — populated, and not a level anything renders.
This commit is contained in:
parent
cc1f2d2594
commit
72a375b0db
3 changed files with 85 additions and 0 deletions
|
|
@ -1208,6 +1208,16 @@ in
|
|||
journald = {
|
||||
directory = hostJournalDir;
|
||||
units = cfg.journaldUnits;
|
||||
# The SAME operator list the agent tier attaches to its own
|
||||
# receiver (nix/agent-modules/otel.nix), and it transfers
|
||||
# without adjustment: the entry shape is the receiver's,
|
||||
# not the journal's. Both are this one component running
|
||||
# `journalctl -o json`, so `PRIORITY` is spelled and typed
|
||||
# identically whether the directory it was pointed at holds
|
||||
# a host's journal or a container's. What differs between
|
||||
# the two receivers is which journal and which units —
|
||||
# neither of which the parser reads.
|
||||
operators = import ../journald-severity.nix;
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue