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 administrar los recursos personalizados de MonitoringTarget, debes tener los permisos necesarios.
Solicita roles de IAM de la organización
Comunícate con el administrador de IAM de tu organización para solicitar los siguientes roles:
- MonitoringTarget PA Creator (
monitoringtarget-pa-creator): Crea recursos personalizados deMonitoringTarget. - Editor de PA de MonitoringTarget (
monitoringtarget-pa-editor): Edita o modifica recursos personalizados deMonitoringTarget. - Visualizador de MonitoringTarget PA (recursos personalizados de
monitoringtarget-pa-viewer~): viewMonitoringTarget).
Solicita roles de IAM para el proyecto
Comunícate con el administrador de IAM del proyecto para solicitar los siguientes roles:
- Editor de MonitoringTarget (
monitoringtarget-editor): Edita o modifica recursos personalizados deMonitoringTargeten el espacio de nombres del proyecto. - Visualizador de MonitoringTarget (
monitoringtarget-viewer): Ve los recursos personalizados deMonitoringTargeten el espacio de nombres del proyecto.
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 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.