A integração do Apache Druid com New Relic aprimora sua capacidade de monitor, analisar e otimizar o desempenho do seu cluster Druid. A integração Apache Druid fornece poderoso recurso de monitoramento e alertas para que você possa garantir a confiabilidade e eficiência de sua plataforma de análise baseada em Druid.
Depois de configurar a integração do Apache Druid com New Relic, veja seus dados em um dashboard pronto para uso.
Configure a integração do Apache Druid
Conclua as etapas a seguir para configurar a integração do Apache Druid:
Instalar o agente de infraestrutura
Para usar a integração do Apache Druid, primeiro é necessário instalar o agente de infraestrutura no mesmo host. O agente de infraestrutura monitora o próprio host, enquanto a integração Apache Druid amplia seu monitoramento com dados específicos para seu cluster Druid.
Expor a métrica do Druid usando o Prometheus Emitter
Adicione
prometheus.emitter
ao final da lista de carregamento de extensões em seu arquivoapache-druid-$version/conf/druid/single-server/micro-quickstart/_common/common.runtime.properties
:druid.extensions.loadList=["druid-hdfs-storage", "druid-kafka-indexing-service", "druid-datasketches", "druid-multi-stage-query", "prometheus-emitter"]Nos caminhos de arquivo listados na coluna da esquerda, adicione o trecho de código listado nas colunas da direita.
Caminho de arquivo
Trecho de código
PATH/TO/broker/runtime.properties
# Monitoringdruid.monitoring.monitors=["org.apache.druid.java.util.metrics.JvmMonitor"]druid.emitter=prometheusdruid.emitter.logging.logLevel=infodruid.emitter.prometheus.strategy=exporterdruid.emitter.prometheus.port=19091PATH/TO/coordinator-overlord/runtime.properties
# Monitoringdruid.monitoring.monitors=["org.apache.druid.java.util.metrics.JvmMonitor"]druid.emitter=prometheusdruid.emitter.logging.logLevel=infodruid.emitter.prometheus.strategy=exporterdruid.emitter.prometheus.port=19092PATH/TO/historical/runtime.properties
# Monitoringdruid.monitoring.monitors=["org.apache.druid.java.util.metrics.JvmMonitor"]druid.emitter=prometheusdruid.emitter.logging.logLevel=infodruid.emitter.prometheus.strategy=exporterdruid.emitter.prometheus.port=19093PATH/TO/middleManager/runtime.properties
# Monitoringdruid.monitoring.monitors=["org.apache.druid.java.util.metrics.JvmMonitor"]druid.emitter=prometheusdruid.emitter.logging.logLevel=infodruid.emitter.prometheus.strategy=exporterdruid.emitter.prometheus.port=19094PATH/TO/router/runtime.properties
# Monitoringdruid.monitoring.monitors=["org.apache.druid.java.util.metrics.JvmMonitor"]druid.emitter=prometheusdruid.emitter.logging.logLevel=infodruid.emitter.prometheus.strategy=exporterdruid.emitter.prometheus.port=19095
Instale a extensão do emissor Prometheus
Execute os seguintes comandos para criar uma pasta chamada
prometheus-emitter
dentro do diretório de pastasextensions
da configuração do Apache Druid:bash$cd apache-druid-$version/extensions/bash$sudo mkdir prometheus-emitterNavegue até o diretório de download do druid e execute o seguinte comando para criar arquivos jar que o servidor chama na inicialização:
bash$sudo java \>-cp "lib/*" \>-Ddruid.extensions.directory="extensions" \>-Ddruid.extensions.hadoopDependenciesDir="hadoop-dependencies" \>org.apache.druid.cli.Main tools pull-deps \>--no-default-hadoop \>-c "org.apache.druid.extensions.contrib:prometheus-emitter:24.0.0"
Configurar nri-prometheus
para Apache Druid
Crie um arquivo chamado
nri-prometheus-config.yml
:bash$touch /etc/newrelic-infra/integrations.d/nri-prometheus-config.ymlAdicione o trecho a seguir ao arquivo
nri-prometheus-config.yml
para ativar a captura de dados do Apache Druid:integrations:- name: nri-prometheusconfig:# When standalone is set to false nri-prometheus requires an infrastructure agent to work and send data. Defaults to truestandalone: false# When running with infrastructure agent emitters will have to include infra-sdkemitters: infra-sdk# The name of your cluster. It's important to match other New Relic products to relate the data.cluster_name: "Apache-druid"targets:- description: Secure etcd exampleurls: ["http://<YOUR_HOST_IP>:19091/metrics","http://<YOUR_HOST_IP>:19092/metrics", "http://<YOUR_HOST_IP>:19093/metrics","http://<YOUR_HOST_IP>:19094/metrics","http://<YOUR_HOST_IP>:19095/metrics"]# tls_config:# ca_file_path: "/etc/etcd/etcd-client-ca.crt"# cert_file_path: "/etc/etcd/etcd-client.crt"# key_file_path: "/etc/etcd/etcd-client.key"# Whether the integration should run in verbose mode or not. Defaults to false.verbose: false# Whether the integration should run in audit mode or not. Defaults to false.# Audit mode logs the uncompressed data sent to New Relic. Use this to log all data sent.# It does not include verbose mode. This can lead to a high log volume, use with care.audit: false# The HTTP client timeout when fetching data from endpoints. Defaults to "5s" if it is not set.# This timeout in seconds is passed as well as a X-Prometheus-Scrape-Timeout-Seconds header to the exporters# scrape_timeout: "5s"# Length in time to distribute the scraping from the endpoints. Default to "30s" if it is not set.scrape_duration: "5s"# Number of worker threads used for scraping targets.# For large clusters with many (>400) endpoints, slowly increase until scrape# time falls between the desired `scrape_duration`.# Increasing this value too much will result in huge memory consumption if too# many metrics are being scraped.# Default: 4# worker_threads: 4# Whether the integration should skip TLS verification or not. Defaults to false.insecure_skip_verify: falsetimeout: 10s
Encaminhar logs do Druid para New Relic
Edite o arquivo de log denominado
logging.yml
localizado no seguinte caminho:bash$cd /etc/newrelic-infra/logging.dAdicione o seguinte trecho ao arquivo
logging.yml
:- name: druid-logsfile: /home/<Druid-Download Directory>/log/*.logattributes:logtype: apache-druid
Reinicie o agente de infraestrutura
Use as instruções em nossos documentos do agente de infraestrutura para reiniciar seu agente de infraestrutura. Este é um comando básico que deve funcionar para a maioria das pessoas:
$sudo systemctl restart newrelic-infra.service
Veja sua métrica Druid no New Relic
Depois de concluir a configuração acima, você poderá visualizar sua métrica usando nosso modelo dashboard pré-construído. Para acessar este dashboard:
Acesse one.newrelic.com > + Integrations & Agents.
Clique na guia do Dashboards .
Na caixa de pesquisa, digite
Apache druid
.Selecione-o e clique em Install.
Para instrumentar o Apache Druid início rápido e ver métricas e alertas, você também pode seguir nossa página Apache Druid início rápido clicando no botão
Install now
.Aqui está um exemplo de consulta para verificar o tamanho médio do segmento Druid:
SELECT average(druid_segment_size) AS 'MiB' FROM Metric SINCE 30 MINUTES AGO
Qual é o próximo?
Para saber mais sobre como construir uma consulta NRQL e gerar um painel, confira estes documentos:
Introdução ao criador de consulta para criação de consultas básicas e avançadas.
Introdução aos dashboards para personalizar seu dashboard e realizar diversas ações.
Gerencie seu dashboard para ajustar o
modo de exibição ou para adicionar mais conteúdo ao dashboard.