Você pode fazer com que os dados do Prometheus fluam no New Relic com apenas algumas etapas simples. Depois de integrado, seus dados ficarão visíveis no painel baseado em consulta (e em outros resultados de consulta), geralmente em cerca de cinco minutos. Esta página aborda a configuração básica para a integração de gravação remota, bem como alguns tópicos comuns de resolução de problemas. Para obter informações sobre a integração de servidores Prometheus em uma configuração de alta disponibilidade (HA), consulte nossa documentação de alta disponibilidade do Prometheus .
(Opcional) Configuração do Operador Prometheus
Se estiver usando o Prometheus Operator, você precisará criar um segredo com o New Relic para a conta para a qual deseja relatar dados. Certifique-se de que a chave de API seja do tipo Ingest - License
.
$kubectl -n YOUR_PROM_NAMESPACE create secret generic nr-license-key --from-literal=value=YOUR_LICENSE_KEY
Em seguida, adicione o seguinte ao seu CRD do Prometheus (kind:Prometheus
) no campo correspondente do gráfico Helm:
prometheus: prometheusSpec: remoteWrite: - url: https://metric-api.newrelic.com/prometheus/v1/write?prometheus_server=YOUR_CLUSTER_NAME authorization: credentials: key: value name: nr-license-key
Configure a integração
Vá para o inicializador de configuração de gravação remota do Prometheus na interface e conclua estas etapas para adicionar dados do Prometheus.
Insira um nome para o servidor Prometheus a ser conectado e seu URL
remote_write
.Importante
O nome inserido para o servidor cria um atributo em seus dados. Este também é o nome que identifica qual servidor Prometheus está enviando dados para o New Relic.
Adicione um novo URL
remote_write
ao arquivo YML do Prometheus. Adicione essas informações emglobal_config
no arquivo, no mesmo nível de recuo da seçãoglobal
.Use a seguinte sintaxe:
Prometheus v2.26 e superior
remote_write:- url: https://metric-api.newrelic.com/prometheus/v1/write?prometheus_server=YOUR_DATA_SOURCE_NAMEauthorization:credentials: YOUR_LICENSE_KEYPrometheus inferior a v2.26
remote_write:- url: https://metric-api.newrelic.com/prometheus/v1/write?prometheus_server=YOUR_DATA_SOURCE_NAMEbearer_token:YOUR_LICENSE_KEYOU
Qualquer versão do Prometheus
remote_write:- url: https://metric-api.newrelic.com/prometheus/v1/write?X-License-Key=YOUR_LICENSE_KEY&prometheus_server=YOUR_DATA_SOURCE_NAMEEssa abordagem passa credenciais na URL. Não recomendamos usá-lo, a menos que uma dessas outras abordagens não funcione em seu ambiente.
Contas da União Europeia: se você estiver se conectando na UE, use o seguinte URL:
https://metric-api.eu.newrelic.com/prometheus/v1/writeIntegração de gravação remota Kubernetes e Helm: adicione o URL de gravação remota ao arquivo Helm
values.yaml
. SubstituaremoteWrite: []
por duas linhas semelhantes ao exemplo a seguir. Certifique-se de usar seu URL de gravação remota e usar um recuo que corresponda ao restante do arquivo:remoteWrite:- url: https://metric-api.newrelic.com/prometheus/v1/write?prometheus_server=YOUR_DATA_SOURCE_NAMEbearer_token:YOUR_LICENSE_KEYReinicie seu servidor Prometheus.
Visualize seus dados na interface do New Relic. Por exemplo, use o dashboard de gravação remota que criamos automaticamente quando você configura sua integração.
Este documento ajudou você na instalação?
Mapear tipos de métricas Prometheus e New Relic
O protocolo de gravação remota do Prometheus não inclui informações do tipo métrica ou outros metadados métricos úteis ao enviar métrica para New Relic, portanto, inferimos o tipo métrico com base nas convenções de nomenclatura do Prometheus. métrica que não seguir essas convenções de nomenclatura pode não ser mapeada corretamente.
Mapeamos os tipos métricos do Prometheus em tipos métricos New Relic com base nas convenções de nomenclatura métrica do Prometheus da seguinte forma:
metricName_bucket
é armazenado como um tipo de métrica de contagem New Relic.metricName_count
é armazenado como um tipo de métrica de contagem New Relic.metricName_total
é armazenado como um tipo de métrica de contagem New Relic.metricName_sum
é armazenado como um tipo de métrica de resumo New Relic.
Todo o resto é armazenado como um tipo de métrica de medidor New Relic.
Substituir mapeamento de tipo métrico
Se você tiver métricas que não seguem as convenções de nomenclatura do Prometheus, poderá configurar a gravação remota para tag a métrica com um rótulo newrelic_metric_type
que indica o tipo de métrica. Este rótulo é removido quando recebido pela New Relic.
Example: Você tem uma métrica de contador chamada my_counter
, que não possui nosso sufixo de convenção de nomenclatura _bucket
, _count
ou _total
. Nessa situação, sua métrica seria identificada como um medidor e não como um contador. Para corrigir isso, adicione a seguinte configuração de reetiquetagem ao seu prometheus.yml
:
- url: https://metric-api.newrelic.com/prometheus/v1/write?X-License-Key=... write_relabel_configs: - source_labels: [__name__] regex: ^my_counter$ target_label: newrelic_metric_type replacement: "counter" action: replace
Esta regra corresponde a qualquer métrica com o nome my_counter
e adiciona um rótulo newrelic_metric_type
que a identifica como um contador. Você pode usar o seguinte (diferencia maiúsculas de minúsculas!) valores como o valor de substituição:
- contador
- medidor
- resumo
Quando um rótulo newrelic_metric_type
estiver presente em uma métrica recebida e definida como um dos valores válidos, o New Relic atribuirá o tipo indicado à métrica (e removerá o rótulo) antes do consumo downstream no pipeline de dados. Se você tiver diversas métricas que não seguem as convenções de nomenclatura acima, poderá adicionar diversas regras, com cada regra correspondendo a diferentes rótulos de origem.
Definir listas de permissão ou negação para métricas enviadas
Se precisar de maior controle sobre os dados que você envia para New Relic, você pode enviar um subconjunto de sua métrica. Para fazer isso, configure remote-write
com o parâmetro write_relabel_configs
com um subparâmetro action
com valor de keep
ou deny
.
Neste exemplo, você enviará apenas as métricas que correspondem à expressão regular. Métricas sem correspondência não serão enviadas. Como alternativa, você pode usar action: drop
para eliminar todas as métricas que correspondem à expressão regular.
- url: https://metric-api.newrelic.com/prometheus/v1/write?X-License-Key=... write_relabel_configs: - source_labels: [__name__] regex: "coredns_(.*)|etcd_(.*)" action: keep
Este exemplo do Kubernetes usa o arquivo values.yaml
deste gráfico do Helm. Se você estiver usando um gráfico Helm diferente, verifique sua documentação remoteWrite
(por exemplo, alguns arquivos Helm usam camelcase writeRelabelConfigs
).
remoteWrite: - url: https://metric-api.newrelic.com/prometheus/v1/write?X-License-Key=... write_relabel_configs: - source_labels: [__name__] regex: "coredns_(.*)|etcd_(.*)" action: keep
Personalize o comportamento de gravação remota
Você pode personalizar o parâmetro a seguir se estiver gravando em mais de uma conta no New Relic ou conectando mais de uma fonte de dados do Prometheus à mesma conta no New Relic. Para obter mais informações, consulte a documentação sobre ajuste de gravação remota.
Solucionar mensagem de erro
Se você receber uma mensagem de integração de erro do New Relic ou uma mensagem de erro no log do servidor Prometheus após reiniciar o servidor Prometheus, revise nossa documentação de resolução de problemas de gravação remota. Isso inclui a correção de erros comuns, como caracteres ausentes ou incorretos, solicitações incorretas, entidade de solicitação muito grande e erros de limite de taxa.
Remova a integração
Quando você remove a integração de gravação remota do Prometheus, isso interrompe o fluxo de novos dados, mas não eliminará nem removerá quaisquer dados históricos. Para remover a integração, remova o trecho do código de configuração do arquivo YML do Prometheus e reinicie o servidor.