在 promtail 配置中合并两个标签的值
combine value of two lables in promtail config
如何在 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
最后,我希望标签OriginId的值是HostId+HostName+ApplicationName
static_labels
只允许向标签集中添加静态标签,即不能使用其他标签的值。既然你已经有一个 relabel_configs
部分,也许你可以直接从重新标记步骤生成 OriginId
?类似于:
- source_labels: ['__journal__machine_id', '__journal__hostname', '__journal_syslog_identifier']
separator: '_'
target_label: 'OriginId'
在这种情况下,如果输入标签集如下所示:
__journal__machine_id: "machine-id-1"
__journal__hostname: "host1"
__journal_syslog_identifier: "abcde-123"
OriginId
最终会得到值:machine-id-1_host1_abcde-123
。默认separator
(如果在配置中指定了none就是;
)。
您可以在 relabel_config
中将 replace
操作与 separator
一起使用。
这是一个例子:
...
- action: replace
separator: "+"
source_labels:
- source_labels:
- __journal__machine_id
- __journal__hostname
- __journal_syslog_identifier
target_label: 'OriginId'
...
我认为这对你有用。
如何在 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
最后,我希望标签OriginId的值是HostId+HostName+ApplicationName
static_labels
只允许向标签集中添加静态标签,即不能使用其他标签的值。既然你已经有一个 relabel_configs
部分,也许你可以直接从重新标记步骤生成 OriginId
?类似于:
- source_labels: ['__journal__machine_id', '__journal__hostname', '__journal_syslog_identifier']
separator: '_'
target_label: 'OriginId'
在这种情况下,如果输入标签集如下所示:
__journal__machine_id: "machine-id-1"
__journal__hostname: "host1"
__journal_syslog_identifier: "abcde-123"
OriginId
最终会得到值:machine-id-1_host1_abcde-123
。默认separator
(如果在配置中指定了none就是;
)。
您可以在 relabel_config
中将 replace
操作与 separator
一起使用。
这是一个例子:
...
- action: replace
separator: "+"
source_labels:
- source_labels:
- __journal__machine_id
- __journal__hostname
- __journal_syslog_identifier
target_label: 'OriginId'
...
我认为这对你有用。