Caution
Grafana Agent has reached End-of-Life (EOL) on November 1, 2025. Agent is no longer receiving vendor support and will no longer receive security or bug fixes. Current users of Agent Static mode, Agent Flow mode, and Agent Operator should proceed with migrating to Grafana Alloy. If you have already migrated to Alloy, no further action is required. Read more about why we recommend migrating to Grafana Alloy.
Important: This documentation is about an older version. It's relevant only to the release noted, many of the features and functions have been updated or replaced. Please view the current version.
loki.source.journal
loki.source.journal reads from the systemd journal and forwards them to other
loki.* components.
Multiple loki.source.journal components can be specified by giving them
different labels.
Usage
loki.source.journal "LABEL" {
forward_to = RECEIVER_LIST
}Arguments
The component starts a new journal reader and fans out
log entries to the list of receivers passed in forward_to.
loki.source.journal supports the following arguments:
NOTE: A
joblabel is added with the full name of the componentloki.source.journal.LABEL.
Blocks
The following blocks are supported inside the definition of loki.source.journal:
relabel_rules block
The rule block contains the definition of any relabeling rules that can be
applied to an input metric. If more than one rule block is defined, the
transformations are applied in top-down order.
The following arguments can be used to configure a rule. All arguments are
optional. Omitted fields take their default values.
Here’s a list of the available actions, along with a brief description of their usage.
replace- Matchesregexto the concatenated labels. If there’s a match, it replaces the content of thetarget_labelusing the contents of thereplacementfield.keep- Keeps metrics whereregexmatches the string extracted using thesource_labelsandseparator.drop- Drops metrics whereregexmatches the string extracted using thesource_labelsandseparator.hashmod- Hashes the concatenated labels, calculates its modulomodulusand writes the result to thetarget_label.labelmap- Matchesregexagainst all label names. Any labels that match are renamed according to the contents of thereplacementfield.labeldrop- Matchesregexagainst all label names. Any labels that match are removed from the metric’s label set.labelkeep- Matchesregexagainst all label names. Any labels that don’t match are removed from the metric’s label set.
Finally, note that the regex capture groups can be referred to using either the
$CAPTURE_GROUP_NUMBER or ${CAPTURE_GROUP_NUMBER} notation.
Incoming messages have labels from the journal following the patten __journal_FIELDNAME
These labels are stripped unless a rule is created to retain the labels. An example rule is below.
rule {
action = "labelmap"
regex = "__journal_(.*)"
replacement = "journal_${1}"
}Component health
loki.source.journal is only reported as unhealthy if given an invalid
configuration.
Debug Metrics
agent_loki_source_journal_target_parsing_errors_total(counter): Total number of parsing errors while reading journal messages.agent_loki_source_journal_target_lines_total(counter): Total number of successful journal lines read.
Example
loki.source.journal "read" {
forward_to = [loki.write.endpoint.receiver]
}
loki.write "endpoint" {
endpoint {
url ="loki:3100/api/v1/push"
}
}


