L'intégration d'Apache Druid avec New Relic améliore votre capacité à monitorer, analyser et optimiser les performances de votre cluster Druid. L'intégration Apache Druid fournit de puissantes fonctionnalités monitoring et d'alerte afin que vous puissiez garantir la fiabilité et l'efficacité de votre plateforme d'analyse basée sur Druid.

Après avoir configuré l'intégration d'Apache Druid avec New Relic, visualisez vos données dans un dashboard dès la sortie de la boîte.
Configurer l'intégration Apache Druid
Suivez les étapes suivantes pour configurer l’intégration Apache Druid :
Installer l' agent d'infrastructure
Pour utiliser l’intégration Apache Druid, vous devez d’abord installer l’agent d’infrastructure sur le même hôte. L'agent infrastructure monitore l'hôte lui-même, tandis que l'intégration Apache Druid étend votre monitoring avec des données spécifiques à votre cluster Druid.
exposer les métriques Druid à l'aide de Prometheus Emitter
Ajoutez
prometheus.emitter
à la fin de la liste de chargement des extensions dans votre fichierapache-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"]Dans les chemins de fichiers répertoriés dans la colonne de gauche, ajoutez l’extrait de code répertorié dans les colonnes de droite.
Chemin de fichier
Snippet de code
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
Installer l'extension de l'émetteur Prometheus
Exécutez les commandes suivantes pour créer un dossier nommé
prometheus-emitter
dans le répertoire de dossiersextensions
de votre configuration Apache Druid :bash$cd apache-druid-$version/extensions/bash$sudo mkdir prometheus-emitterAccédez au répertoire de téléchargement de druid et exécutez la commande suivante pour créer des fichiers jar que le serveur appelle au démarrage :
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"
Configure nri-prometheus
Créez un fichier nommé
nri-prometheus-config.yml
:bash$touch /etc/newrelic-infra/integrations.d/nri-prometheus-config.ymlAjoutez le snippet suivant à votre fichier
nri-prometheus-config.yml
pour activer la capture des données 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
Transférer le log du druide vers New Relic
Modifiez le fichier de log nommé
logging.yml
situé au chemin suivant :bash$cd /etc/newrelic-infra/logging.dAjoutez le snippet suivant au fichier
logging.yml
:- name: druid-logsfile: /home/<Druid-Download Directory>/log/*.logattributes:logtype: apache-druid
Redémarrer l' agent d'infrastructure
Utilisez les instructions de notre documentation sur l’agent d’infrastructure pour redémarrer votre agent d’infrastructure. Il s’agit d’une commande de base qui devrait fonctionner pour la plupart des gens :
$sudo systemctl restart newrelic-infra.service
Consultez les métriques de votre druide dans New Relic
Une fois la configuration ci-dessus terminée, vous pouvez afficher vos métriques à l'aide de notre modèle dashboard prédéfini. Pour accéder à ce dashboard:
Rendez-vous sur one.newrelic.com > + Integrations & Agents.
Cliquez sur l’onglet Dashboards .
Dans le champ de recherche, tapez
Apache druid
.Sélectionnez-le et cliquez sur Install.
Pour instrumenter le quickstart Apache Druid et voir les métriques et les alertes, vous pouvez également suivre notre pageApache Druid quickstart en cliquant sur le bouton
Install now
.Voici un exemple de requête pour vérifier la taille moyenne du segment Druid :
SELECT average(druid_segment_size) AS 'MiB' FROM Metric SINCE 30 MINUTES AGO
Quelle est la prochaine étape ?
Pour en savoir plus sur la création de requêtes NRQL et la génération de dashboards, consultez ces documents :
- Introduction au générateur de requêtes pour créer des requêtes basiques et avancées.
- Introduction au dashboard pour personnaliser votre dashboard et effectuer différentes actions.
- Gérez votre dashboard pour ajuster votre mode d'affichage ou pour ajouter plus de contenu à votre dashboard.