Métricas de etiquetas

As etiquetas permitem-lhe diferenciar as caraterísticas de uma métrica. Além de recolher métricas, o recurso personalizado MonitoringTarget permite-lhe etiquetar métricas para funcionalidades de observabilidade opcionais:

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

Antes de começar

Para receber as autorizações necessárias para gerir recursos personalizados, peça ao administrador de IAM da organização ou ao administrador de IAM do projeto que lhe conceda uma das funções associadas.MonitoringTargetMonitoringTarget

Consoante o nível de acesso e as autorizações de que precisa, pode obter as funções de criador, editor ou leitor para este recurso numa organização ou num projeto. Para mais informações, consulte o artigo Prepare as autorizações de IAM.

Envie métricas para outro projeto

Os autores de contentores podem codificar métricas específicas para serem enviadas para um projeto diferente, mesmo para projetos que não sejam seus. Para enviar uma métrica para um projeto específico, adicione a etiqueta _gdch_project à métrica no seu código, definindo o respetivo valor como o nome do projeto de destino.

Em alternativa, use o recurso personalizado MonitoringTarget para enviar todos os dados de métricas recolhidos para outro projeto. Defina a etiqueta _gdch_project como uma etiqueta de destino no campo metricsRelabelings, com o novo nome do projeto como o valor de substituição.

O seguinte exemplo de código mostra como definir a etiqueta de destino _gdch_project no recurso personalizado MonitoringTarget para enviar métricas para o projeto denominado 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 o seguinte:

  • PROJECT_NAMESPACE: o espaço de nomes do seu projeto.
  • MONITORING_TARGET_NAME: o nome do ficheiro de definição MonitoringTarget.

Adicione novas etiquetas às métricas

As etiquetas ajudam na observabilidade e na monitorização, identificando as características das métricas. Pode adicionar etiquetas que os contentores extraídos não expõem inicialmente. No recurso personalizado MonitoringTarget, defina a nova etiqueta como um alvo e indique um valor de substituição. Este par de chave-valor é adicionado a todas as métricas que o recurso recolhe.

O seguinte exemplo de código mostra como definir a etiqueta de destino my_new_label e configurar o respetivo valor 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 o seguinte:

  • PROJECT_NAMESPACE: o espaço de nomes do seu projeto.
  • MONITORING_TARGET_NAME: o nome do ficheiro de definição MonitoringTarget.

Mude o nome de uma métrica

Pode mudar o nome da métrica de um contentor através do recurso MonitoringTarget. Defina o nome da métrica original e a respetiva substituição no campo metricsRelabelings. O nome original é tratado como uma expressão regular (regex) e é substituído pelo novo nome.

O seguinte exemplo de código mostra como substituir o cpu_usage nome da métrica (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 o seguinte:

  • PROJECT_NAMESPACE: o espaço de nomes do seu projeto.
  • MONITORING_TARGET_NAME: o nome do ficheiro de definição MonitoringTarget.