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 personalizadosMonitoringTargetno namespace do projeto. - Editor do MonitoringTarget (
monitoringtarget-editor): edita ou modifica recursos personalizadosMonitoringTargetno namespace do projeto. - Leitor do MonitoringTarget (
monitoringtarget-viewer): visualiza recursos personalizadosMonitoringTargetno 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çãoMonitoringTarget.
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çãoMonitoringTarget.
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çãoMonitoringTarget.