Vous pouvez obtenir le flux de données Prometheus dans New Relic en quelques étapes simples. Une fois l'intégration effectuée, vos données seront visibles dans le dashboard basé sur les requêtes (et d'autres résultats de requêtes), souvent dans un délai d'environ cinq minutes. Cette page couvre la configuration de base de l'intégration de l'écriture à distance, ainsi que quelques sujets de dépannage courants. Pour plus d'informations sur l'intégration des serveurs Prometheus dans une configuration haute disponibilité (HA), consultez notre documentation sur la haute disponibilité Prometheus .
(Facultatif) Prometheus de l'opérateur configuration
Si vous utilisez l' opérateur Prometheus, vous devrez créer un secret avec de New Relic pour le compte auquel vous souhaitez signaler des données. Assurez-vous que la clé API est du type Ingest - License
.
$kubectl -n YOUR_PROM_NAMESPACE create secret generic nr-license-key --from-literal=value=YOUR_LICENSE_KEY
Ensuite, ajoutez les éléments suivants à votre CRD Prometheus (kind:Prometheus
) dans le champ correspondant du graphique 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
Configurer l'intégration
Accédez au lanceur de configuration d’écriture à distancePrometheus dans l’ UI et suivez ces étapes pour ajouter des données Prometheus .
Saisissez un nom pour le serveur Prometheus auquel vous souhaitez vous connecter ainsi que votre URL
remote_write
.Important
Le nom que vous entrez pour le serveur crée un attribut sur vos données. C'est également le nom qui identifie quel serveur Prometheus envoie des données à New Relic.
Ajoutez une nouvelle URL
remote_write
à votre fichier YML Prometheus. Ajoutez ces informations sousglobal_config
dans le fichier, au même niveau d'indentation que la sectionglobal
.Utilisez la syntaxe suivante :
Prometheus v2.26 et supérieur
remote_write:- url: https://metric-api.newrelic.com/prometheus/v1/write?prometheus_server=YOUR_DATA_SOURCE_NAMEauthorization:credentials: YOUR_LICENSE_KEYPrometheus inférieur à la version 2.26
remote_write:- url: https://metric-api.newrelic.com/prometheus/v1/write?prometheus_server=YOUR_DATA_SOURCE_NAMEbearer_token:YOUR_LICENSE_KEYOU
N'importe quelle version de Prometheus
remote_write:- url: https://metric-api.newrelic.com/prometheus/v1/write?X-License-Key=YOUR_LICENSE_KEY&prometheus_server=YOUR_DATA_SOURCE_NAMECette approche transmet les informations d’identification dans l’URL. Nous ne recommandons pas de l'utiliser, sauf si l'une de ces autres approches ne fonctionne pas dans votre environnement.
Comptes de l'Union européenne : si vous vous connectez depuis l'UE, utilisez l'URL suivante :
https://metric-api.eu.newrelic.com/prometheus/v1/writeIntégration de l'écriture à distance Kubernetes et Helm : ajoutez l'URL d'écriture à distance à votre fichier Helm
values.yaml
. RemplacezremoteWrite: []
par deux lignes similaires à l’exemple suivant. Assurez-vous d'utiliser votre URL d'écriture à distance et d'utiliser une indentation qui correspond au reste du fichier :remoteWrite:- url: https://metric-api.newrelic.com/prometheus/v1/write?prometheus_server=YOUR_DATA_SOURCE_NAMEbearer_token:YOUR_LICENSE_KEYRedémarrez votre serveur Prometheus.
Affichez vos données dans l'UI de New Relic. Par exemple, utilisez le dashboard d’écriture à distance que nous créons automatiquement lorsque vous configurez votre intégration.
Ce document vous a-t-il aidé lors de votre installation ?
Carte des types métriques Prometheus et New Relic
Le protocole d'écriture à distance Prometheus n'inclut pas d'informations sur le type de métrique ou d'autres métadonnées de métrique utiles lors de l'envoi de métriques à New Relic. Nous déduisons donc le type de métrique en fonction des conventions de dénomination de Prometheus. Les métriques ne respectant pas ces conventions de dénomination risquent de ne pas être mappées correctement.
Nous mappons les types métriques Prometheus en types métriques New Relic en fonction des conventions de dénomination métrique Prometheus comme suit :
metricName_bucket
est stocké sous forme de type métrique de comptage New Relic.metricName_count
est stocké sous forme de type métrique de comptage New Relic.metricName_total
est stocké sous forme de type métrique de comptage New Relic.metricName_sum
est stocké en tant que type récapitulatif métrique New Relic.
Tout le reste est stocké sous forme de type de métrique de jauge New Relic.
Remplacer la modélisation de type métrique
Si vous avez des métriques qui ne suivent pas les conventions de dénomination Prometheus , vous pouvez configurer l'écriture à distance pour tag la métrique avec une étiquette newrelic_metric_type
qui indique le type de métrique. Cette étiquette est supprimée lors de sa réception par New Relic.
Example: Vous disposez d'une métrique de compteur nommée my_counter
, qui ne possède pas notre suffixe de convention de dénomination _bucket
, _count
ou _total
. Dans cette situation, votre mesure métrique serait identifiée comme une jauge plutôt que comme un compteur. Pour corriger cela, ajoutez la configuration de réétiquetage suivante à votre 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
Cette règle correspond à n’importe quelle métrique portant le nom my_counter
et ajoute une étiquette newrelic_metric_type
qui l’identifie comme un compteur. Vous pouvez utiliser ce qui suit (sensible à la casse !) valeurs comme valeur de remplacement :
- comptoir
- jauge
- résumé
Lorsqu'une étiquette newrelic_metric_type
est présente sur une métrique reçue et définie sur l'une des valeurs valides, New Relic attribuera le type indiqué à la métrique (et supprimera l'étiquette) avant la consommation en aval dans le pipeline de données. Si vous disposez de plusieurs métriques qui ne respectent pas les conventions de dénomination ci-dessus, vous pouvez ajouter plusieurs règles, chaque règle correspondant à des étiquettes sources différentes.
Définir des listes d'autorisation ou de refus pour les métriques envoyées
Si vous avez besoin d'un meilleur contrôle sur les données que vous envoyez à New Relic, vous pouvez envoyer un sous-ensemble de vos métriques. Pour ce faire, configurez remote-write
avec le paramètre write_relabel_configs
avec une valeur de sous-paramètre action
de keep
ou deny
.
Dans cet exemple, vous n'enverrez que les métriques qui correspondent aux expressions régulières. Les métriques non correspondantes ne seront pas envoyées. Alternativement, vous pouvez utiliser action: drop
pour supprimer toutes les métriques qui correspondent aux expressions régulières.
- url: https://metric-api.newrelic.com/prometheus/v1/write?X-License-Key=... write_relabel_configs: - source_labels: [__name__] regex: "coredns_(.*)|etcd_(.*)" action: keep
Cet exemple Kubernetes utilise le fichier values.yaml
de ce graphique Helm. Si vous utilisez un autre graphique Helm, veuillez consulter sa documentation remoteWrite
(par exemple, certains fichiers Helm utilisent plutôt la casse 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
Personnaliser le comportement d’écriture à distance
Vous pouvez personnaliser les paramètres suivants si vous écrivez sur plusieurs comptes dans New Relic ou si vous connectez plusieurs sources de données Prometheus au même compte dans New Relic. Pour plus d'informations, consultez la documentation sur le réglage de l'écriture à distance.
Dépannage du message d'erreur
Si vous recevez un message d'erreur d'intégration de New Relic ou un message d'erreur dans le log de votre serveur Prometheus après le redémarrage de votre serveur Prometheus , consultez notre documentation de dépannage d'écriture à distance. Cela inclut la correction des erreurs courantes, telles que les caractères manquants ou incorrects, requests incorrectes, les entités de requête trop volumineuses et les erreurs de limite de débit.
Supprimer l'intégration
Lorsque vous supprimez l'intégration d'écriture à distance Prometheus , cela empêche la circulation de nouvelles données, mais cela ne purgera ni ne supprimera aucune donnée historique. Pour supprimer l'intégration, supprimez l'configuration code snippet de votre Prometheus fichier YML , puis redémarrez le serveur.