Métricas de etiquetas

Las etiquetas te permiten diferenciar las características de una métrica. Además de recoger métricas, el recurso personalizado MonitoringTarget te permite etiquetar métricas para usar funciones de observabilidad opcionales:

Para obtener más información sobre el cambio de etiquetas de métricas, consulta https://grafana.com/blog/2022/03/21/how-relabeling-in-prometheus-works/.

Antes de empezar

Para obtener los permisos que necesitas para gestionar recursos personalizados de MonitoringTarget, pide a tu administrador de gestión de identidades y accesos de la organización o del proyecto que te conceda uno de los roles de MonitoringTarget asociados.

En función del nivel de acceso y de los permisos que necesites, puedes obtener los roles de creador, editor o lector de este recurso en una organización o en un proyecto. Para obtener más información, consulta Preparar permisos de gestión de identidades y accesos.

Enviar métricas a otro proyecto

Los autores de contenedores pueden codificar métricas específicas para que se envíen a otro proyecto, incluso a proyectos que no sean de su propiedad. Para enviar una métrica a un proyecto específico, añade la etiqueta _gdch_project a la métrica en tu código y asigna el nombre del proyecto de destino a su valor.

También puede usar el recurso personalizado MonitoringTarget para enviar todos los datos de métricas recogidos a otro proyecto. Define la etiqueta _gdch_project como etiqueta de destino en el campo metricsRelabelings y el nuevo nombre del proyecto como valor de sustitución.

En el siguiente código de ejemplo se muestra cómo definir la etiqueta de destino _gdch_project en el recurso personalizado MonitoringTarget para enviar métricas al proyecto llamado another-project-name:

apiVersion: monitoring.gdc.goog/v1
kind: MonitoringTarget
metadata:
  # Choose the same namespace as the workload pods.
  namespace: PROJECT_NAMESPACE
  name: MONITORING_TARGET_NAME
spec:
  [...]
  podMetricsEndpoints:
    [...]
    metricsRelabelings:
      - action: replace
        targetLabel: _gdch_project
        replacement: another-project-name
      [...]

Haz los cambios siguientes:

  • PROJECT_NAMESPACE: el espacio de nombres de tu proyecto.
  • MONITORING_TARGET_NAME: el nombre del archivo de definición de MonitoringTarget.

Añadir etiquetas a las métricas

Las etiquetas ayudan a la observabilidad y la monitorización al identificar las características de las métricas. Puede añadir etiquetas que los contenedores rastreados no expongan inicialmente. En el recurso personalizado MonitoringTarget, define la nueva etiqueta como objetivo y proporciona un valor de sustitución. Este par clave-valor se añade a todas las métricas que recoge el recurso.

En el siguiente ejemplo de código se muestra cómo definir la etiqueta de destino my_new_label y configurar su valor como my_label_value en el recurso personalizado MonitoringTarget:

apiVersion: monitoring.gdc.goog/v1
kind: MonitoringTarget
metadata:
  # Choose the same namespace as the workload pods.
  namespace: PROJECT_NAMESPACE
  name: MONITORING_TARGET_NAME
spec:
  [...]
  podMetricsEndpoints:
    [...]
    metricsRelabelings:
      - action: replace
        targetLabel: my_new_label
        replacement: my_label_value
      [...]

Haz los cambios siguientes:

  • PROJECT_NAMESPACE: el espacio de nombres de tu proyecto.
  • MONITORING_TARGET_NAME: el nombre del archivo de definición de MonitoringTarget.

Cambiar el nombre de una métrica

Puede cambiar el nombre de una métrica de un contenedor mediante el recurso MonitoringTarget. Define el nombre de la métrica original y su sustitución en el campo metricsRelabelings. El nombre original se trata como una expresión regular y se sustituye por el nuevo nombre.

En el siguiente ejemplo de código se muestra cómo sustituir el nombre de la métrica cpu_usage (expresión regular) por cpu_usage_new_name en el recurso personalizado MonitoringTarget:

apiVersion: monitoring.gdc.goog/v1
kind: MonitoringTarget
metadata:
  # Choose the same namespace as the workload pods.
  namespace: PROJECT_NAMESPACE
  name: MONITORING_TARGET_NAME
spec:
  [...]
  podMetricsEndpoints:
    [...]
    metricsRelabelings:
      - action: replace
        regex: cpu_usage
        replacement: cpu_usage_new_name
        sourceLabels: [__name__]
        targetLabel: __name__
      [...]

Haz los cambios siguientes:

  • PROJECT_NAMESPACE: el espacio de nombres de tu proyecto.
  • MONITORING_TARGET_NAME: el nombre del archivo de definición de MonitoringTarget.