Esto es parte de mi configuración de raspado de Promtail en varios hosts para recopilar journald
entradas de registro en una instancia de Loki:
- job_name: journald
journal:
labels:
job: journald
relabel_configs:
- source_labels:
- __journal__systemd_unit
target_label: unit
pipeline_stages:
- match:
selector: '{unit=~"session-\\d+\\.scope"}'
stages:
- regex:
source: unit
expression: "^session-(?P<session_id>\\d+)\\.scope$"
- template:
source: message
template: "id={{ .session_id }} {{ .Entry }}"
- output:
source: message
- labels:
unit: session.scope
El objetivo es volver a etiquetar todas las entradas capturadas con unit
etiquetas como session-1.scope
, session-10.scope
etc. con la etiqueta común session.scope
y anteponer lo session_id
extraído de la etiqueta asignada inicialmente al texto de la entrada. Si bien este último aspecto, agregar el prefijo, está funcionando y, por lo tanto, implica que la mayor parte de la configuración está funcionando, la última de las etapas definidas, la asignación de un literal estático a la unit
etiqueta, no. Todas las entradas que fueron seleccionadas y modificadas correctamente todavía tienen sus etiquetas distintas session-1.scope
, session-10.scope
etc.
¿Alguien puede indicarme qué me falta para que lo último funcione como se esperaba?
Respuesta1
Con soporte en los foros de la comunidad llegué a esta solución:
pipeline_stages:
- match:
selector: '{service=~"session-\\d+\\.scope"}'
stages:
- regex:
source: service
expression: "^session-(?P<session_id>\\d+)\\.scope$"
- template:
source: message
template: "{% raw %}id={{ .session_id }} {{ .Entry }}{% endraw %}"
- output:
source: message
- template:
source: label
template: session.scope
- labels:
service: label
Está haciendo lo que menciona @jnauska.
Respuesta2
Ha hecho referencia a algún valor real en la sección de etiquetas, session.scope
no existe, por lo que no puede modificar el valor.
Puede usar una plantilla para generar algún valor como:
- template:
source: session.scope
template: 'session.scope'
- labels:
unit: session.scope