Métricas de rótulo

Os rótulos permitem diferenciar as características de uma métrica. Além de coletar métricas, o MonitoringTarget recurso personalizado 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/ (link em inglês).

Antes de começar

Para gerenciar recursos personalizados MonitoringTarget, peça as permissões necessárias ao administrador.

Papéis do IAM obrigatórios

Entre em contato com o administrador do IAM do projeto para solicitar os seguintes papéis:

  • Criador do MonitoringTarget (monitoringtarget-creator): cria recursos personalizados MonitoringTarget no namespace do projeto.
  • Editor do MonitoringTarget (monitoringtarget-editor): edita ou modifica recursos personalizados MonitoringTarget no namespace do projeto.
  • Leitor do MonitoringTarget (monitoringtarget-viewer): visualiza recursos personalizados MonitoringTarget no namespace do projeto.

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 que não sejam proprietários dele. Para enviar uma métrica a um projeto específico, adicione o rótulo _gdch_project à métrica no 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 MonitoringTarget.

Adicionar novos rótulos às métricas

Os rótulos ajudam na observabilidade e no monitoramento, identificando as características das 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 um rótulo de destino 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 MonitoringTarget.

Renomear uma métrica

É possível renomear a métrica de um contêiner usando o recurso MonitoringTarget. Defina o nome da métrica original e a substituição dela 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 MonitoringTarget.