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:
- Cómo enviar métricas a otro proyecto
- Agrega etiquetas nuevas a las métricas
- Cómo 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/.
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.