Este documento descreve como os dados de métricas enviados pelo seu Google Cloud project
usando a API Telemetry (OTLP) são mapeados para as
estruturas do Cloud Monitoring. Essa API implementa o
protocolo OTLP do OpenTelemetry. É possível enviar dados para essa API ao instrumentar
seus aplicativos com um exportador otlphttp e um coletor do OpenTelemetry,
ou ao usar os SDKs do OpenTelemetry.
O OpenTelemetry é um projeto de código aberto com Google Cloud suporte de engenheiros para garantir a ingestão e visualização da sua telemetria. Google Cloud
Para instruções sobre como configurar o OpenTelemetry para enviar métricas OTLP ao Cloud Monitoring, consulte a visão geral da ingestão de métricas OTLP.
Métricas OTLP no Cloud Monitoring
Quando as métricas são ingeridas no Cloud Monitoring usando um
coletor do OpenTelemetry e o otlphttp exportador ou enviadas diretamente usando
um SDK do OpenTelemetry, as métricas OTLP
são mapeadas para estruturas de métricas do Cloud Monitoring.
Esta seção descreve:
- O mapeamento entre recursos OTLP e recursos monitorados do Cloud Monitoring.
- O mapeamento entre métricas OTLP e métricas do Cloud Monitoring.
Mapeamento de recursos monitorados
Todos os pontos de métrica são gravados como estão para o Google Cloud Managed Service para Prometheus, usando o mapeamento do Prometheus.
Mapeamento do Prometheus
As métricas do Prometheus exigem o uso do tipo de recurso monitorado
prometheus_target.
Os rótulos a seguir no tipo de recurso prometheus_target são
usados para esquematizar e armazenar dados com eficiência no Monarch. Quanto mais
precisamente você especificar valores para esses atributos, melhor será a sua
capacidade de consulta e escalonabilidade.
Recomendamos que você seja o mais explícito possível ao definir valores para esses rótulos, embora tenhamos implementado uma lógica de fallback para uso na ausência de valores explícitos.
A tabela a seguir mostra as fontes de valores para rótulos, em ordem de prioridade:
Rótulo prometheus-target |
Valor usado (em ordem de prioridade) |
|---|---|
location (obrigatório) |
|
cluster |
|
namespace |
|
job |
|
instanceRejeitar o ponto se estiver vazio |
|
Mapeamento de métricas
As métricas são convertidas para o formato de série temporal do Prometheus. Os nomes das métricas não podem ter domínio ou o domínioprometheus.googleapis.com.
Após a conversão, o nome da métrica vai incluir o
prometheus.googleapis.com prefixo e um sufixo adicional, com base no
tipo de ponto OTLP. A métrica resultante do Cloud Monitoring tem a seguinte
estrutura:
prometheus.googleapis.com/{metric_name}/{suffix}
Além disso, para cada recurso exclusivo do OpenTelemetry, a conversão adiciona uma
target_info métrica que contém todos os atributos de recurso, exceto
service.name, service.instance.id e service.namespace.
Todas as métricas INT64 do OTLP são traduzidas para o
DOUBLE tipo de valor no Cloud Monitoring,
mesmo que o coletor especifique o tipo de valor como INT64.
Essa mudança é feita porque, depois que uma série temporal está no Monarch, você
não pode mudar o tipo de valor. A consequência mais comum de oferecer suporte a
INT64 valores é que você acaba tendo colisões que só podem ser
resolvidas excluindo uma métrica.
Mapeamento de métricas do Prometheus
Os tipos de métricas são mapeados da seguinte maneira:
- O medidor OTLP é mapeado para o medidor do Cloud Monitoring gauge.
- A soma do OTLP é mapeada da seguinte maneira:
- Para o medidor do Cloud Monitoring
quando
is_monotonicestá definido comofalse. - Para o cumulativo do Cloud Monitoring
quando
aggregation_temporalityestá definido comoAGGREGATION_TEMPORALITY_CUMULATIVE. - Para o delta do Cloud Monitoring
quando
aggregation_temporalityestá definido comoAGGREGATION_TEMPORALITY_DELTA.
- Para o medidor do Cloud Monitoring
quando
- O histograma OTLP é mapeado para a distribuição do Cloud Monitoring
com um
tipo de métrica cumulativo ou delta,
dependendo do valor de
aggregation_temporality. - As métricas de resumo do OTLP são expandidas em série temporal individuais
para cada componente:
count,sume cadaquantile.
A tabela a seguir resume o mapeamento de métricas:
| Tipo de ponto OTLP | Tipo de métrica do Monitoring | Tipo de valor do Monitoring | Sufixo | Observações |
|---|---|---|---|---|
| GAUGE | GAUGE | DOUBLE | /gauge | |
| MEDIDOR (metric.metadata["prometheus.type"]="unknown") | GAUGE | DOUBLE | /unknown | Os desconhecidos do Prometheus são divididos em um contador e um medidor pelo coletor do OpenTelemetry. |
| SUM (monotônico, CUMULATIVE) | CUMULATIVE | DOUBLE | /counter | |
| SUM (monotônico, CUMULATIVE, metric.metadata["prometheus.type"]="unknown") | CUMULATIVE | DOUBLE | /unknown:counter | Os desconhecidos do Prometheus são divididos em um contador e um medidor pelo coletor do OpenTelemetry. |
| SUM (monotônico, DELTA) | DELTA | DOUBLE | /delta | |
| SUM (não monotônico, CUMULATIVE) | GAUGE | DOUBLE | /gauge | |
| HISTOGRAMA (CUMULATIVE) | CUMULATIVE | DISTRIBUTION com buckets explícitos | /histogram | |
| HISTOGRAMA EXPONENCIAL (CUMULATIVE) | CUMULATIVE | DISTRIBUTION com buckets exponenciais | /histogram | |
| HISTOGRAMA (DELTA) | DELTA | DISTRIBUTION com buckets explícitos | /histogram:delta | |
| HISTOGRAMA EXPONENCIAL (DELTA) | DELTA | DISTRIBUTION com buckets exponenciais | /histogram:delta | |
| RESUMO (soma, contagem, quantil) |
CUMULATIVE CUMULATIVE MEDIDOR |
DOUBLE DOUBLE DOUBLE |
_sum/summary:counter _count/summary /summary |
Os pontos de dados de resumo são gravados como várias série temporal, uma para
contagem, soma e cada quantil calculado. As métricas de quantil também são geradas com um quantile rótulo. |
Diferenças entre o exportador googlemanagedprometheus e a API Telemetry
A API Telemetry (telemetry.googleapis.com) processa métricas de maneira diferente
do googlemanagedprometheus exportador:
A API Telemetry permite os caracteres de ponto (
.) e barra (/) em nomes de métricas. O exportadorgooglemanagedprometheusconverte todas as instâncias desses caracteres no caractere de sublinhado (_). Por exemplo, uma métrica OTLP chamadaprometheus.googleapis.com/foo.bar/gaugeé exportada literalmente pelo exportador OTLP, mas é exportada comoprometheus.googleapis.com/foo_bar/gaugepelo exportadorgooglemanagedprometheus.Quando as métricas são ingeridas, o Cloud Monitoring cria descritores de métricas com base nos nomes. A diferença na forma como os caracteres de ponto (
.) e barra (/) são processados pelos caminhos de ingestão significa que os descritores de métricas resultantes diferem entre as métricas ingeridas usando o exportadorgooglemanagedprometheuse aquelas ingeridas usando ootlphttpexportador. Se você usar os dois caminhos de ingestão, terá dois conjuntos de métricas. Para receber resultados completos ao consultar, é necessário unir manualmente os resultados das versões do Prometheus e do OTLP das métricas.A API Telemetry não anexa uma unidade a um nome de métrica quando uma unidade está presente e não anexa um
_totalsufixo aos contadores. Portanto, uma métrica exportada comoprometheus.googleapis.com/foo/counterao usar a API Telemetry é exportada comoprometheus.googleapis.com/foo_seconds_total/counterpelogooglemanagedprometheusexportador. Essa diferença também se aplica aos_totale_ratiosufixos.A API sintetiza o valor
sum_of_squared_deviationpara valores de distribuição derivados de histogramas exponenciais. Ogooglemanagedprometheusexportador não define esse campo para histogramas exponenciais.A API converte todos os valores de ponto inteiro em valores duplos para métricas do Prometheus.
A API não define os rótulos
scope_versionouscope_namese esses rótulos tiverem valores vazios.
Onde visualizar os dados ingeridos
Os dados de métricas ingeridos pela API Telemetry podem ser visualizados usando a página Metrics Explorer. Para informações sobre como visualizar e criar gráficos de dados de métricas, consulte Criar gráficos com o Metrics Explorer.