Cette traduction automatique est fournie pour votre commodité.
En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.
Configurer l'intégration de Prometheus OpenMetrics
Sauf indication contraire, les options de configuration de votre intégration Prometheus OpenMetrics avec New Relic s'appliquent aux environnements Docker et Kubernetes. Au minimum, les valeurs de configuration suivantes sont required:
Recommandation : configurez votre clé de licence New Relic en tant que variable d’environnement nommée LICENSE_KEY. Cela fournit un environnement plus sécurisé, car New Relic peut charger votre variable d'environnement à partir d'un secret d'authentification TLS mutuel.
Configurer nri-prometheus-latest.yaml
Le fichier manifeste nri-prometheus-latest.yaml inclut la carte nri-prometheus-cfg montrant un exemple de configuration. Utilisez le fichier manifeste pour configurer les paramètres suivants.
Voici quelques noms et définitions clés pour votre fichier de configuration Prometheus OpenMetrics.
Nom de la clé
Description
cluster_name
Required.
Le nom du cluster. Cette valeur sera incluse comme attribut clusterName pour toutes les métriques.
verbose
Booléen stringifié.
true (par défaut) : enregistrer les informations de débogage.
false: Enregistrer uniquement les messages d'erreur.
targets
configuration du point de terminaison statique à gratter par l'intégration. Il contient une liste d'objets. Pour plus d'informations sur cette structure, consultez la documentation sur la configuration cible.
scrape_enabled_label
Kubernetes
Chaîne. L'intégration vérifiera si le pod et le service Kubernetes sont annotés ou ont une étiquette avec cette valeur pour décider s'ils doivent être récupérés.
Cela est particulièrement utile lorsque vous souhaitez limiter la quantité de données en ignorant les métriques ou en incluant des métriques spécifiques envoyées à New Relic. Étant donné que par défaut nous utilisons la même étiquette que Prometheus utilise pour découvrir les cibles qui peuvent être récupérées, la plupart des exportateurs que vous installez définissent automatiquement cette étiquette.
Pour garder un contrôle précis sur la cible que vous souhaitez que l'intégration récupère, vous pouvez définir cette option sur une autre valeur (telle que newrelic/scrape), puis ajouter l'annotation ou l'étiquette newrelic/scrape: "true" à vos objets Kubernetes . Si les deux sont définis, les annotations ont la priorité sur les étiquettes.
Défaut: "prometheus.io/scrape"
scrape_duration
À quelle fréquence le grattoir doit-il fonctionner ?
Pour réduire l'utilisation de la mémoire, augmentez cette valeur.
Pour augmenter l'utilisation de la mémoire, diminuez cette valeur.
L'impact sur l'utilisation de la mémoire est dû à la répartition de la récupération de la cible sur l'intervalle de récupération pour éviter d'interroger (et de mettre en mémoire tampon) toutes les données à la fois.
La valeur par défaut est 30s. Les valeurs valides incluent 1s, 15s, 30s, 1m, 5m, etc.
scrape_timeout
Le délai d'expiration du client HTTP lors de la récupération des données à partir du point de terminaison.
Par défaut : 5s. Les valeurs valides incluent 1s, 15s, 30s, 1m, 5m, etc.
worker_threads
Nombre de threads de travail utilisés pour le scraping de la cible. Peut être augmenté dans les environnements avec un nombre élevé de cibles ou des cibles avec une latence élevée, mais peut augmenter la consommation de mémoire.
Par défaut : 4. Il n'est pas recommandé d'en utiliser plus de 10.
require_scrape_enabled_label_for_nodes
Kubernetes
Si les nœuds Kubernetes ont besoin ou non d'étiquettes à récupérer.
Pour mieux prendre en charge la visualisation de ces données, les centiles sont calculés sur la base des métriques de l'histogramme et envoyés à New Relic. Les valeurs valides incluent 50, 95 et 99.
emitter_proxy
Proxy utilisé par l'intégration lors de la soumission des métriques :
[scheme]://[domain]:[port]
Ce proxy ne sera pas utilisé lors de la récupération des métriques de la cible.
Par défaut, ce champ est vide et aucun proxy ne sera utilisé.
emitter_ca_file
Certificat à ajouter à l'autorité de certification racine que l'émetteur utilisera lors de la vérification des certificats du serveur. Si ce champ est laissé vide, TLS utilise l'ensemble d'autorités de certification racine de l'hôte.
emitter_insecure_skip_verify
Si l'émetteur doit ignorer la vérification TLS lors de la soumission des données. Par défaut : false.
disable_autodiscovery
Définissez sur vrai afin de désactiver la découverte automatique dans le cluster k8s. Cela peut être utile lors de l’exécution du pod avec un compte de service disposant de privilèges limités. Par défaut : false.
Configurer les objets dans la clé cible
Si vous souhaitez que la clé cible dans le fichier de configuration contienne un ou plusieurs objets, utilisez la structure suivante dans la liste YAML :
Nom de la clé
Description
description
Une description des URL dans cette cible.
urls
Une liste de chaînes contenant les URL à extraire.
tls_config
configuration d'authentification utilisée pour envoyer requests. Il prend en charge TLS et Mutual TLS. Pour plus d'informations, consultez la documentation sur l'authentification TLS mutuelle.
L'intégration Prometheus OpenMetrics de New Relic découvre automatiquement quelle cible gratter. Pour spécifier le port et le chemin du point de terminaison à utiliser lors de la construction de la cible, vous pouvez utiliser les annotations ou l'étiquette prometheus.io/port et prometheus.io/path dans votre pod et vos services Kubernetes . Les annotations ont priorité sur les étiquettes.
Si prometheus.io/port n'est pas présent, l'intégration tentera de récupérer chaque port ou ContainerPort défini pour le service.
Si prometheus.io/path n'est pas présent, l'intégration sera par défaut /metrics.
Si un service ne s'exécute pas sur le chemin par défaut /my-metrics-path , ajoutez une étiquette au pod prometheus.io/path=my-metrics-path. Si le chemin d’accès au point de terminaison des métriques est plus complexe et ne peut pas être une valeur d’étiquette valide (par exemple, foo/bar), utilisez plutôt des annotations.
Dans cet exemple, vous avez un déploiement dans votre cluster, et le pod expose les métriques Prometheus sur le port 8080 et dans le chemin my-metrics.
Dans les métadonnées PodSpec du manifeste de déploiement, définissez les étiquettes prometheus.io/port: "8080" et prometheus.io/path: "my-metrics". Lorsque l'intégration tente de récupérer les métriques de votre pod, elle enverra une requête à http://<pod-ip>:8080/my-metrics.
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
spec:
replicas:2
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
prometheus.io/scrape:"true"
prometheus.io/port:"8080"
prometheus.io/path:"my-metrics"
Comportement de grattage des services et des points de terminaison
Par défaut, les services sont récupérés directement au lieu du point de terminaison sous-jacent puisque scrape_services est défini sur true et scrape_endpoints sur false.
Afin de modifier ce comportement, définissez scrape_endpoints sur true en configurant Prometheus OpenMetrics integrations pour récupérer le point de terminaison sous-jacent, comme le fait nativement le serveur Prometheus , au lieu de récupérer directement les services.
Veuillez noter qu'en fonction du nombre de points de terminaison derrière les services du cluster , la charge et les données ingérées peuvent augmenter considérablement, monitorer et, si nécessaire, augmenter les besoins en ressources.
De plus, même s'il est possible de définir à la fois scrape_services et scrape_endpoints sur vrai pour assurer la rétrocompatibilité, cela conduirait à des données en double.
Recharger la configuration
L'intégration Prometheus OpenMetrics does not recharge automatiquement la configuration lorsque vous apportez des modifications au fichier de configuration.
Docker
Pour recharger la configuration, redémarrez le conteneur exécutant l'intégration :
bash
$
docker restart nri-prometheus
Kubernetes
Pour recharger la configuration, redémarrez l'intégration. Recommandation : réduisez le déploiement à zéro réplique, puis réduisez-le à une seule réplique :