Obtenir un log détaillé
Vous pouvez activer le log détaillé dans le graphique newrelic-prometheus-agent
en définissant les variables verboseLog
ou global.verboseLog
sur true
.
# (...)global: verboseLog: true# (...)
Une fois la mise à jour effectuée sur les fichiers de valeurs, exécutez la commande de mise à niveau helm suivante :
$helm upgrade RELEASE_NAME newrelic-prometheus-configurator/newrelic-prometheus-agent \> --namespace NEWRELIC_NAMESPACE \> -f values-newrelic.yaml \> [--version fixed-chart-version]
Ne pas voir les métriques pour une cible
Vous avez besoin d'au moins un job
qui découvre la cible dans Kubernetes qui correspond au filtre spécifié, ou la cible doit être répertoriée comme static_target
.
Si vous utilisez la configuration par défaut sur Kubernetes, vérifiez que votre pod ou service possède l'annotation prometheus.io/scrape=true
.
Par défaut, l'agent Prometheus récupère les métriques uniquement à partir de l'intégrationPrometheus . À moins que vous n'ayez choisi de récupérer tous les points de terminaison Prometheus du cluster, l'agent Prometheus filtre le point de terminaison à récupérer en utilisant les étiquettes définies dans source_labels.
Ne pas voir les métriques dans un dashboard
Certains des dashboards fournis par l' intégrationPrometheus peuvent avoir été filtrés par une étiquette Kubernetes . Consultez la documentation d'intégration correspondante pour obtenir plus d'informations.
Vérifier l'état métrique
Chaque grattage de cible génère la up
métrique avec toutes les métriques de la cible. Si le scraping réussit, ces métriques ont 1
comme valeur. Si cela échoue, leur valeur est 0
.
FROM Metric SELECT latest(up) WHERE cluster_name = 'YOUR_CLUSTER_NAME' AND pod = 'TARGET_POD_NAME' TIMESERIES
Si cette métrique n'existe pas pour la cible, elle a peut-être été abandonnée.
Si les valeurs sont 0
, le scraping a échoué.
cible abandonnée par les règles de filtrage
Pour vérifier la cible abandonnée, vous pouvez utiliser le Prometheus point de terminaison de la cible de l'API .
Pour répertorier toutes les cibles supprimées au format JSON et afficher toutes les étiquettes découvertes, exécutez la commande suivante :
$kubectl exec newrelic-prometheus-agent-0 -- wget -O - 'localhost:9090/api/v1/targets?state=dropped' 2>/dev/null
Échec de la récupération de la cible
Si les métriques up
ont 0
comme valeur, cela signifie que la cible est activement scrapée par Prometheus mais que le scraping a échoué. Vous pouvez vérifier la raison dans le log détaillé avec une entrée log similaire à celle-ci :
$prometheus ts=timestamp caller=scrape.go:1332 level=debug component="scrape manager" scrape_pool=kubernetes-job-pod target=http://1.2.3.4:80/metrics msg="<error>" err="<error detail>"
Vous pouvez également vérifier la liste des cibles actives à l'aide du Prometheus point de terminaison cible de l'API .
Pour répertorier toutes les cibles actives au format JSON et afficher toutes les étiquettes découvertes, exécutez la commande suivante :
$kubectl exec newrelic-prometheus-agent-0 -- wget -O - 'localhost:9090/api/v1/targets?state=active' 2>/dev/null
La cible ayant échoué sera répertoriée et l'erreur sera disponible dans le champ lastError
dans une sortie similaire à celle-ci :
{ "status": "success", "data": { "activeTargets": [ { "discoveredLabels": <map of labels>, "labels": <map of labels>, "scrapePool": "kubernetes-job-pod", "scrapeUrl": "http://172.17.0.5:80/metrics", "globalUrl": "http://172.17.0.5:80/metrics", "lastError": <error detail>, "lastScrape": "2022-09-19T14:19:20.543747971Z", "lastScrapeDuration": 0.000372542, "health": "down", "scrapeInterval": "15s", "scrapeTimeout": "10s" }, ... ] }}