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