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:
- Envie métricas para outro projeto.
- Adicione novas etiquetas às métricas.
- Mude o nome de uma métrica.
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.MonitoringTarget
MonitoringTarget
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çãoMonitoringTarget
.
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çãoMonitoringTarget
.
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çãoMonitoringTarget
.