Métricas de etiquetas

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

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

Antes de comenzar

Para obtener los permisos que necesitas para administrar recursos personalizados de MonitoringTarget, pídele al administrador de IAM de la organización o al administrador de IAM del proyecto que te otorgue uno de los roles de MonitoringTarget asociados.

Según el nivel de acceso y los permisos que necesites, es posible que obtengas roles de creador, editor o visualizador para este recurso en una organización o un proyecto. Para obtener más información, consulta Prepara los permisos de IAM.

Envía métricas a otro proyecto

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

Como alternativa, usa el recurso personalizado MonitoringTarget para enviar todos los datos de métricas recopilados a otro proyecto. Establece la etiqueta _gdch_project como etiqueta objetivo en el campo metricsRelabelings, con el nuevo nombre del proyecto como valor de reemplazo.

En el siguiente muestra de código, se muestra cómo establecer 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
      [...]

Reemplaza lo siguiente:

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

Agregar etiquetas nuevas a las métricas

Las etiquetas ayudan con la observabilidad y la supervisión, ya que identifican las características de las métricas. Puedes agregar etiquetas que los contenedores extraídos no expongan inicialmente. En el recurso personalizado MonitoringTarget, establece la etiqueta nueva como objetivo y proporciona un valor de reemplazo. Este par clave-valor se agrega a todas las métricas que recopila el recurso.

En la siguiente muestra de código, se muestra cómo establecer la etiqueta de destino my_new_label y configurar su valor en 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
      [...]

Reemplaza lo siguiente:

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

Cómo cambiar el nombre de una métrica

Puedes cambiar el nombre de la métrica de un contenedor con el recurso MonitoringTarget. Establece el nombre de la métrica original y su reemplazo en el campo metricsRelabelings. El nombre original se trata como una expresión regular (regex) y se reemplaza por el nombre nuevo.

En el siguiente muestra de código, se muestra cómo reemplazar el nombre de la métrica cpu_usage (regex) 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__
      [...]

Reemplaza lo siguiente:

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