La integración de Apache Druid con New Relic mejora su capacidad para monitor, analizar y optimizar el rendimiento de su clúster Druid. La integración Apache Druid proporciona una poderosa característica de monitoreo y alerta para que pueda garantizar la confiabilidad y eficiencia de su plataforma de análisis basada en Druid.
Después de configurar la integración de Apache Druid con New Relic, vea sus datos en un dashboard listo para usar.
Configurar la integración de Apache Druid
Complete los siguientes pasos para configurar la integración de Apache Druid:
Instalar el agente de infraestructura
Para utilizar la integración de Apache Druid, primero debe instalar el agente de infraestructura en el mismo host. El agente de infraestructura monitorea el host en sí, mientras que la integración Apache Druid extiende su monitoreo con datos específicos de su clúster Druid.
Exponer Druid métrica usando Prometheus Emitter
Agregue
prometheus.emitter
al final de la lista de carga de extensiones en su archivoapache-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"]En las rutas de archivo enumeradas en la columna de la izquierda, agregue el fragmento de código que figura en las columnas de la derecha.
Ruta de archivo
Fragmento 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 la extensión del emisor Prometheus
Ejecute los siguientes comandos para crear una carpeta llamada
prometheus-emitter
dentro del directorio de carpetasextensions
de su configuración de Apache Druid:bash$cd apache-druid-$version/extensions/bash$sudo mkdir prometheus-emitterNavegue hasta el directorio de descarga de Druid y ejecute el siguiente comando para crear archivos jar que el servidor llama al iniciarse:
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
Cree un archivo llamado
nri-prometheus-config.yml
:bash$touch /etc/newrelic-infra/integrations.d/nri-prometheus-config.ymlAgregue el siguiente fragmento a su archivo
nri-prometheus-config.yml
para habilitar la captura de datos de 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
Reenviar logs de Druid a New Relic
Edite el archivo de registro llamado
logging.yml
ubicado en la siguiente ruta:bash$cd /etc/newrelic-infra/logging.dAgregue el siguiente fragmento al archivo
logging.yml
:- name: druid-logsfile: /home/<Druid-Download Directory>/log/*.logattributes:logtype: apache-druid
Reiniciar el agente de infraestructura.
Utilice las instrucciones de nuestros documentos del agente de infraestructura para reiniciar su agente de infraestructura. Este es un comando básico que debería funcionar para la mayoría de las personas:
$sudo systemctl restart newrelic-infra.service
Ver tu Druid métrica en New Relic
Una vez que haya completado la configuración anterior, podrá ver su métrica utilizando nuestra plantilla dashboard prediseñadas. Para acceder a este dashboard:
Vaya a one.newrelic.com > + Add data.
Haga clic en la pestaña del Dashboards .
En el cuadro de búsqueda, escriba
Apache druid
.Selecciónelo y haga clic en Install.
Para instrumentar el inicio rápido de Apache Druid y ver métricas y alertas, también puede seguir nuestra página de inicio rápido de Apache Druid haciendo clic en el botón
Install now
.Aquí hay una consulta de ejemplo para verificar el tamaño promedio del segmento de Druid:
SELECT average(druid_segment_size) AS 'MiB' FROM Metric SINCE 30 MINUTES AGO
¿Que sigue?
Para obtener más información sobre cómo crear una consulta NRQL y generar un panel, consulte estos documentos:
Introducción al generador de consultas para crear consultas básicas y avanzadas.
Introducción al panel para personalizar tu dashboard y realizar diferentes acciones.
Administre su dashboard para ajustar su
modo de visualización o para agregar más contenido a su dashboard.