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