Métricas de rótulo

Com os rótulos, é possível diferenciar as características de uma métrica. Além de coletar métricas, o recurso personalizado MonitoringTarget permite rotular métricas para recursos de observabilidade opcionais:

Para mais informações sobre a nova rotulagem de métricas, consulte https://grafana.com/blog/2022/03/21/how-relabeling-in-prometheus-works/.

Antes de começar

Para receber as permissões necessárias para gerenciar recursos personalizados do MonitoringTarget, peça ao administrador do IAM da organização ou do projeto para conceder a você uma das funções associadas do MonitoringTarget.

Dependendo do nível de acesso e das permissões necessárias, você pode receber papéis de criador, editor ou leitor para esse recurso em uma organização ou um projeto. Para mais informações, consulte Preparar permissões do IAM.

Enviar métricas para outro projeto

Os autores de contêineres podem codificar métricas específicas para serem enviadas a um projeto diferente, mesmo para projetos que não são deles. Para enviar uma métrica a um projeto específico, adicione o rótulo _gdch_project à métrica no seu código, definindo o valor como o nome do projeto de destino.

Como alternativa, use o recurso personalizado MonitoringTarget para enviar todos os dados de métricas coletados para outro projeto. Defina o rótulo _gdch_project como um rótulo de destino no campo metricsRelabelings, com o novo nome do projeto como o valor de substituição.

O exemplo de código a seguir mostra como definir o rótulo de destino _gdch_project no recurso personalizado MonitoringTarget para enviar métricas ao projeto chamado 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
      [...]

Substitua:

  • PROJECT_NAMESPACE: o namespace do projeto.
  • MONITORING_TARGET_NAME: o nome do arquivo de definição de MonitoringTarget.

Adicionar novos rótulos às métricas

Os identificadores ajudam na observabilidade e no monitoramento ao identificar características de métricas. É possível adicionar rótulos que os contêineres extraídos não expõem inicialmente. No recurso personalizado MonitoringTarget, defina o novo rótulo como uma meta e forneça um valor de substituição. Esse par de chave-valor é adicionado a todas as métricas coletadas pelo recurso.

O exemplo de código a seguir mostra como definir o rótulo de destino my_new_label e configurar o valor dele como my_label_value no 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
      [...]

Substitua:

  • PROJECT_NAMESPACE: o namespace do projeto.
  • MONITORING_TARGET_NAME: o nome do arquivo de definição de MonitoringTarget.

Renomear uma métrica

É possível renomear a métrica de um contêiner usando o recurso MonitoringTarget. Defina o nome original da métrica e a substituição no campo metricsRelabelings. O nome original é tratado como uma expressão regular (regex) e substituído pelo novo nome.

O exemplo de código a seguir mostra como substituir o nome da métrica cpu_usage (regex) por cpu_usage_new_name no 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__
      [...]

Substitua:

  • PROJECT_NAMESPACE: o namespace do projeto.
  • MONITORING_TARGET_NAME: o nome do arquivo de definição de MonitoringTarget.