How to add the values of multiple labels and assign them to another label in promtail config?
scrape_configs:
- job_name: journal
journal:
max_age: 12h
relabel_configs:
- source_labels: ['__journal__machine_id']
target_label: 'HostId'
- source_labels: ['__journal__hostname']
target_label: 'HostName'
- source_labels: ['__journal_syslog_identifier']
target_label: 'ApplicationName'
pipeline_stages:
- match:
selector: '{ApplicationName="test-app"}'
stages:
- static_labels:
OriginId: //here I want to asign HostId+HostName+ApplicationName
In the end, I expect the value of label OriginId would be HostId+HostName+ApplicationName
static_labels
only allows adding a static label to the label set, i.e you cannot use the value of other labels. Since you already have a relabel_configs
section maybe you can generate the OriginId
directly from the relabeling step? Something like:
- source_labels: ['__journal__machine_id', '__journal__hostname', '__journal_syslog_identifier']
separator: '_'
target_label: 'OriginId'
In this case if the input label set looks like:
__journal__machine_id: "machine-id-1"
__journal__hostname: "host1"
__journal_syslog_identifier: "abcde-123"
OriginId
would end up with the value: machine-id-1_host1_abcde-123
. The default separator
(if none is specified in the configuration is ;
).