Problème
Vous avez envoyé des points de données métriques à l' API métrique et vous ne voyez pas ce que vous attendez lors de l'interrogation des données. Utilisez la liste de contrôle suivante pour déterminer la cause première :
- Assurez-vous que vous interrogez correctement les données.
- Vérifiez les codes d’état HTTP renvoyés par l’API. Des problèmes tels que les échecs d’autorisation peuvent être diagnostiqués avec des codes d’état HTTP.
- Si vous envoyez des données depuis un serveur Prometheus via le point de terminaison remote_write de New Relic, vérifiez le log de votre serveur Prometheus pour détecter les erreurs ou les réponses HTTP non 2xx du point de terminaison New Relic.
- Recherchez votre compte pour
NrIntegrationError
événement. Les points de terminaison d'ingestion de New Relic sont asynchrones, ce qui signifie que le point de terminaison vérifie la charge après avoir renvoyé la réponse HTTP. Si des problèmes surviennent lors de la vérification de votre charge utile, un événementNrIntegrationError
sera créé dans votre compte. New Relic utilise égalementNrIntegrationError
événement pour avertir les clients lorsque diverses limites de débit ont été atteintes.
Solution
Afficher les détails de l'erreur
Pour une introduction à l’utilisation de l’événement NrIntegrationError
, voir NrIntegrationError
.
Voici un exemple NRQL pour examiner les problèmes liés à l'ingestion d'API métrique :
SELECT count(*) FROM NrIntegrationError WHERE newRelicFeature = 'Metrics' FACET category, message LIMIT 100 SINCE 24 hours ago
Le category
indique le type d’erreur et le message
fournit des informations plus détaillées sur l’erreur. Si category
est rateLimit
, vous devez également examiner le champ rateLimitType
pour plus d'informations sur le type de limitation de débit.
Catégorie | Type de limite de taux | Description et solution |
---|---|---|
| (non défini) | Il y a un problème avec la charge utile JSON. Il s’agit notamment d’erreurs de syntaxe JSON, de noms d’attributs ou de valeurs trop longues. Vérifiez le champ |
|
| Vous envoyez trop de points de données par minute. Si vous obtenez cette erreur, vous pouvez soit envoyer des données moins fréquemment, soit demander des modifications de vos limites de débit métrique en contactant votre représentant de compte New Relic ou en visitant notre portail d'assistance. |
|
| Vous avez un attribut avec un nombre élevé de valeur unique, comme |
|
| Vous avez des serveurs Prometheus qui signalent trop de séries chronologiques uniques via le point de terminaison remote_write de New Relic. Réduisez le nombre de séries chronologiques uniques signalées en modifiant de Prometheus votre configuration serveur pour réduire le nombre de cibles récupérées, ou en utilisant des règles de réétiquetage dans la section remote_write de de votre serveur configuration pour supprimer les séries chronologiques ou les étiquettes hautement uniques. |
|
| Trop de requests sont envoyées par minute. Pour résoudre ce problème, placez plus de points de données dans chaque requête et envoyez-les moins fréquemment. |
|
| Vous avez dépassé votre limite de groupe d’erreurs quotidiennes. Les groupes d'erreurs entrants seront abandonnés pour le reste de la journée et continueront normalement après minuit UTC. Pour résoudre ce problème, réduisez la quantité de messages d'erreur uniques collectés par New Relic. |
Erreurs de correspondance avec la charge ingérée
Lorsqu'un événementNrIntegrationError
est créé suite à un problème de syntaxe avec la charge de requête HTTP, alors l'événement contient l'attribut apiKeyPrefix
et requestId
.
- Le
apiKeyPrefix
correspond aux 6 premiers caractères de la clé API utilisée pour envoyer les données. - Le
requestId
correspond aurequestId
envoyé dans la réponse HTTP.
Pour afficher ces champs, exécutez cette requête NRQL :
SELECT message, apiKeyPrefix, requestId FROM NrIntegrationError LIMIT 100
Pour vérifier un requestId
spécifique, exécutez cette requête NRQL :
SELECT * FROM NrIntegrationError WHERE requestId = 'REQUEST_ID'
Récupérer par programme l'événement NrIntegrationError
Pour récupérer ces erreurs par programmation :
Assurez-vous de disposer d'une clé API de requête Insights (accédez à insights.newrelic.com > Manage data > API keys).
Créez une requête HTTP comme indiqué ci-dessous :
Conseil
Si votre organisation héberge des données dans un data center de l'UE, assurez-vous d'utiliser le point de terminaison de la région UE.
bash$curl -H "Accept: application/json" -H "X-Query-Key:YOUR_API_KEY_HERE" "https://insights-api.newrelic.com/v1/accounts/YOUR_ACCOUNT_HERE/query?nrql=SELECT%20*%20FROM%20NrIntegrationError%20where%20newRelicFeature='Metrics'"