Métricas de etiquetas

Antes de comenzar

Para obtener los permisos que necesitas para etiquetar métricas o ver etiquetas de métricas, pídele al administrador de IAM del proyecto que te otorgue uno de los siguientes roles en el espacio de nombres del proyecto:

  • Editor de destino de supervisión: Edita o modifica recursos personalizados de MonitoringTarget. Solicita el rol de editor de destino de Monitoring (monitoringtarget-editor).
  • Visualizador de destinos de Monitoring: Visualiza recursos personalizados de MonitoringTarget. Solicita el rol de Visualizador de destino de Monitoring (monitoringtarget-viewer).

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 opcionales, como las siguientes:

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/.

Envía métricas a otro proyecto

Los autores de contenedores pueden escribir en su código que el sistema debe enviar métricas específicas a otro proyecto para la supervisión del sistema, incluso si el proyecto corresponde a un arquetipo de GDC diferente. Para enviar métricas a un proyecto específico, agrega la etiqueta _gdch_project a una métrica en tu código. Establece su valor en el nombre del proyecto que deseas que sea propietario de esa métrica de observabilidad en particular. Por ejemplo, "_gdch_project": "another-project-name"

Como alternativa, usa el recurso personalizado MonitoringTarget para enviar todos los datos de métricas que recopila a otro proyecto para la observabilidad de los datos. Para ello, establece la etiqueta _gdch_project como etiqueta objetivo en el campo metricsRelabelings y establece un valor de reemplazo.

En el siguiente muestra de código, se muestra cómo reemplazar el valor de la etiqueta _gdch_project por another-project-name en el recurso personalizado MonitoringTarget:

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

Reemplaza PROJECT_NAMESPACE por el espacio de nombres de tu proyecto.

Agregar etiquetas nuevas a las métricas

Las etiquetas son útiles para la observabilidad de los datos y la supervisión del sistema porque te permiten identificar diferentes características de una métrica. Puedes agregar etiquetas nuevas a las métricas que los contenedores descartados no exponen inicialmente. En el recurso personalizado MonitoringTarget, establece la etiqueta nueva como objetivo y establece un reemplazo para que funcione como el valor de la etiqueta. El sistema agrega el nuevo par clave-valor a todas las métricas que recopila el recurso personalizado para fines de observabilidad de los datos.

En el siguiente muestra de código, se muestra cómo agregar la etiqueta my_new_label y establecer su valor en my_label_value en el recurso personalizado MonitoringTarget:

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

Reemplaza PROJECT_NAMESPACE por el espacio de nombres de tu proyecto.

Cómo cambiar el nombre de una métrica

Puedes cambiar por completo el nombre de una métrica que produce un contenedor desde el CR de MonitoringTarget. Establece el nombre original de la métrica y su reemplazo en el campo metricsRelabelings. El recurso personalizado toma el nombre de la métrica original como una expresión regular y lo reemplaza por el nombre nuevo que agregaste.

En el siguiente muestra de código, se muestra cómo reemplazar el nombre de la métrica cpu_usage por cpu_usage_new_name en la CR de MonitoringTarget:

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

Reemplaza PROJECT_NAMESPACE por el espacio de nombres de tu proyecto.