Ce guide couvre les principaux changements entre les séries 7.x et 8.x de l'agent Java. Il couvre les problèmes que vous pouvez rencontrer lors de la mise à niveau et comment migrer avec succès vers la version 8.x. Les principaux changements incluent :
Important
les attributs supprimés dans les versions 8.0 à 8.7 sont réintroduits dans la version 8.8.0. Cela offre une compatibilité descendante pour les clients qui utilisent toujours ces attributs pour ou le dashboard.
Attribut de transaction et d'étendue modifié et supprimé
Pour assurer la cohérence de notre APM d'agent et mieux nous aligner sur les normes du secteur, nous avons modifié les attributs de transaction et d'étendue dans l'agent Java. À partir de la version 7.6.0 de l'agent Java, nous avons introduit le nouvel attribut standard http.statusCode
et http.statusText
et marqué httpResponseCode
, response.status
et response.statusMessage
comme obsolètes.
Attribut obsolète | Nouvel attribut | Changement de type de données |
---|---|---|
httpResponseCode | http.statusCode | String to INT |
response.status | http.statusCode | String to INT |
response.statusMessage | http.statusText | N/A |
Actions recommandées
- Si vous avez des alertes ou un dashboard utilisant l'attribut obsolète et utilisez la version agent 8.0 - 8.7, vous devez soit mettre à jour votre agent vers la version 8.8, soit mettre à jour les références à l'attribut supprimé. Si vous avez mis à jour toutes les alertes ou le dashboard avec le nouvel attribut standard, vous pouvez désactiver l'indicateur de compatibilité pour utiliser uniquement le nouvel attribut standard. Pour en savoir plus sur le paramètre d'indicateur de compatibilité, consultez la configuration
http_attribute_mode
. - Mettre à jour les alertes et le dashboard qui utilisent un attribut obsolète.
Recherche d'une requête d'alerte impactée
Pour rechercher et corriger les alertes affectées :
Utilisez NerdGraph Explorer et recherchez des alertes à l'aide de l'opérateur
queryLike
pour chaque attribut que vous recherchez. Par exemple:{actor {user {name}account(id: ACCOUNT_ID) {alerts {nrqlConditionsSearch(searchCriteria: { queryLike: "httpResponseCode" }) {nrqlConditions {nrql {query}idnamepolicyId}}}}}}Pour chaque alerte renvoyée, vous pouvez utiliser l'ID ou le nom dans l'UI Alerts> Alerts Conditions pour trouver l'alerte.
Vérifiez l’état d’alerte et la couverture du signal pour confirmer tout impact sur l’alerte.
Utilisez les instructions de la section Correction des alertes impactées et des instructions NRQL du dashboard pour mettre à jour les instructions NRQL .
Recherche des requêtes dashboard impactées
Pour trouver la requête impactée pour un dashboard:
En utilisant l'explorateur NerdGraph et l'entité GUID située dans la métadonnées d'un dashboard, vous pouvez obtenir toutes les requêtes NRQL pour un dashboard.
{actor {entity(guid: "ENTITY_GUID") {... on DashboardEntity {guidnamepages {widgets {rawConfiguration}}}}}}La requête NRQL renverra l'élément
rawConfiguration
. Vous pouvez utiliser la recherche de texte pour trouver l'attribut supprimé.Utilisez les instructions de la section Correction des alertes impactées et des instructions NRQL du dashboard pour mettre à jour les instructions NRQL .
Vous pouvez également obtenir la liste des GUID d'entité pour tous les tableaux de bord avec la requête suivante :
{ actor { entitySearch(query: "domain IN ('VIZ')") { results { entities { guid accountId } } } }}
Correction des alertes impactées et des déclarations NRQL du dashboard
http.statusCode
remplacerait les références à httpResponseCode
ou response.status
, qui ont également un type de données différent. Auparavant, vous auriez utilisé une référence comme :
[...] WHERE (Numeric(response.status)\>399 [...]
pour convertir le type de données chaîne en un nombre. Vous n'avez plus besoin de faire cela et pouvez à la place utiliser des opérations numériques simples telles que :
[...] WHERE (http.statusCode \>399) [...]
http.statusText
remplacerait les références à response.statusMessage
. Le type de données de cet attribut n'a pas changé.
instrumentationsupprimée
Nous avons supprimé les modèles d'instrumentation suivants pour les versions de bibliothèque qui ne sont plus prises en charge par leurs responsables respectifs :
- cassandra-datastax-2.1.2
- httpclient-3.0
- jdbc-embedded-derby-10.2.1.6
- jdbc-embedded-derby-10.10.1.1
- jetée-7
- jetée-7.6
- jetée-9
- jetée-9.0.4
- jetée-9.1
- mongodb-2.12
- mongodb-2.14
- mongodb-3.0
- khttp-3.0.0
- khttp-3.4.0
- khttp-3.5.0
Si votre application utilise l'une des bibliothèques, vous ne recevrez plus les métriques et transactions produites par l'instrumentation pour cette bibliothèque lors de la mise à jour vers un agent Java version v8.x.
Actions recommandées
Si possible, mettez à jour la bibliothèque impactée vers une version prise en charge par le mainteneur et New Relic et mettez à jour votre agent. Si la mise à jour de la bibliothèque EOLed n'est pas une option, vous pouvez toujours mettre à jour votre agent, mais nous vous recommandons de le tester et de l'examiner pour déterminer si les données supprimées entraînent des lacunes dans des domaines critiques.