Você pode descartar dados que não deseja manter alterando a seção remote_write
do arquivo de configuração YAML.
Dica
Você também pode descartar dados de gravação remota usando NerdGraph. Para obter mais informações, consulte Eliminar dados usando NerdGraph.
Eliminar pontos inteiros de dados métricos da integração de gravação remota
Se um destino estiver enviando uma métrica ruidosa que você não deseja que seja enviada ao New Relic, você poderá especificar que o New Relic deve descartar esses dados.
Exemplo
Digamos que você não queira receber dados da métrica node_memory_active_bytes
de uma instância em execução em localhost:9100
. Usando a entrada write_relabel_config
mostrada abaixo, você pode definir o nome da métrica usando o rótulo __name__
em combinação com o nome da instância.
remote_write:- url: https://metric-api.newrelic.com/prometheus/v1/write?prometheus_server=macbook-server-cluster bearer_token: <redacted> write_relabel_configs: - source_labels: ['__name__', 'instance'] regex: 'node_memory_active_bytes;localhost:9100' action: 'drop'
Isso informa ao Prometheus que você deseja tomar alguma ação contra a métrica com esses rótulos. Para limitar quais métricas com esses rótulos serão afetadas, você deve incluir algum valor para regex. Por padrão este valor é definido como .*
e incluirá todas as métricas. Nesse caso, todos os pontos de dados métricos provenientes do Prometheus serão eliminados por meio de gravação remota.
Elimine rótulos ou atributos específicos de pontos de dados
Se um destino estiver enviando rótulos ou atributos específicos que você não tem interesse em receber, você pode retirá-los da métrica que receber.
Exemplo
Digamos que um de seus destinos esteja enviando um monte de atributos extras que você não tem interesse em receber. Isso pode incluir coisas como cardinalidade alta atributo, como identificador de máquina exclusivo, IDs JVM ou similares. Nesse caso, você precisa alterar as seções remote_write
e scrape_configs
do arquivo YAML.
O resultado será mais ou menos assim:
remote_write:- url: https://metric-api.newrelic.com/prometheus/v1/write?prometheus_server=macbook-server-cluster bearer_token: <redacted> write_relabel_configs: - regex: 'extraLabelToRemove.*' action: 'labeldrop'...scrape_configs: # The job name is added as a label `job=<job_name>` to any time series scraped from this config. - job_name: 'node' # Override the global default and scrape targets from this job every 5 seconds. scrape_interval: 5s static_configs: - targets: ['localhost:9100'] labels: group: 'production' keepLabelName1: 'please-keep-me' extraLabelToRemove: 'please-remove-me' extraLabelToRemove1: 'please-remove-me' extraLabelToRemove2: 'please-remove-me' extraLabelToRemove4: 'please-remove-me' extraLabelToRemove3: 'please-remove-me' extraLabelToRemove5: 'please-remove-me'
Prometheus ou NerdGraph?
Há vantagens em eliminar dados usando o método descrito nesta página e em usar o NerdGraph. Esta seção tem como objetivo ajudá-lo a descobrir qual método é melhor para suas necessidades e preferências específicas.
Considerações sobre o método do arquivo de configuração do Prometheus
Com esse método, os dados eliminados nunca saem da instância associada do Prometheus. Este é um recurso valioso se os bytes transferidos forem uma consideração de custo para a hospedagem do aplicativo.
No entanto, este método pode ser menos atraente do que a opção NerdGraph devido às seguintes considerações:
- Mantido por meio de arquivos yaml de configuração que precisam ser carregados em cada instância do Prometheus (ou por meio de um mecanismo de armazenamento compartilhado)
- Requer acesso ao servidor Prometheus, o que significa que:
- O servidor precisa ser reiniciado
- Servido deve ser acessado na porta com caminho
/-/reload
(assumindo que o servidor tenha o gerenciamento do ciclo de vida ativado conforme descrito aqui nos documentos de configuração do Prometheus.
- Servido deve ser acessado na porta com caminho
Considerações sobre o método NerdGraph
NerdGraph é uma ótima opção se você deseja gerenciar todos os seus dados descartados em um único lugar. Ele também pode ser atualizado facilmente por meio da API e não requer reinicialização ou interação com o Prometheus. No entanto, este método aplica regras a todos os pontos de dados recebidos. Isso significa que você deve configurar suas regras cuidadosamente usando a filtragem WHERE
.
Para obter mais informações, consulte Eliminar dados usando NerdGraph.