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:
- Envía métricas a otro proyecto.
- Agregar etiquetas nuevas a las métricas
- Cambiar el nombre de una métrica
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 de destino en el campo metricsRelabelings, con el nombre del proyecto nuevo como valor de reemplazo.
En la 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 deMonitoringTarget.
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 etiqueta objetivo y proporciona un valor de reemplazo. Este par clave-valor se agrega a todas las métricas que recopila el recurso.
En el 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 deMonitoringTarget.
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 deMonitoringTarget.