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.
Si vous utilisez New Relic pour Java avec un framework pris en charge, New Relic regroupe les transactions en fonction des noms de transaction obtenus à partir du framework. Sinon, New Relic regroupe les transactions en fonction de leur composant. Les composants sont les JSP, les servlets et les filtres invoqués pendant la transaction.
Important
N'utilisez pas de crochets [suffix] à la fin du nom de votre transaction. New Relic supprime automatiquement les crochets du nom. Utilisez plutôt des parenthèses (suffix) ou d’autres symboles si nécessaire.
Regroupement des transactions
L'agent Java New Relic regroupe les transactions similaires sous un seul nom. Si New Relic ne regroupait pas les transactions, chaque URI unique générerait un nom unique. Par exemple, votre application Web peut produire des URI comme :
/user/123/control_panel.jhtml
/user/456/control_panel.jhtml
/user/789/control_panel.jhtml
Sans regroupement, cela produirait trois métriques individuelles (assez dénuées de sens). C'est pourquoi New Relic tente de regrouper les transactions sous une étiquette significative. Pour plus d'informations sur le regroupement métrique, consultez Problèmes de regroupement métrique.
Les noms de transaction utilisent le format URI. Par exemple:
MyTransactionName
/MyTransactionName
/MyServlet/MyTransactionName
Si vous utilisez un framework pris en charge, New Relic obtient le nom de la transaction à partir du framework. Par exemple, pour Spring, le nom de la transaction provient généralement de l'appel de getViewName sur l'objet org.springframework.web.servlet.ModelAndView .
Si vous n'utilisez pas un framework pris en charge, New Relic nomme une transaction en fonction de ses composants. Le nom exact de la transaction est déterminé par le composant ayant la priorité la plus élevée. Si plusieurs composants partagent la priorité, l'agent utilise le premier composant qui a été appelé.
Priorité de dénomination
New Relic attribue à chaque transaction un nom en fonction de la priorité suivante, de la priorité la plus élevée à la plus basse :
L'attribut de demande et l'appel d'API ont la priorité de dénomination la plus élevée. Si une transaction possède un attribut de requête ou un appel d'API, la transaction prendra son nom à partir de là.
Vous pouvez définir l’attribut de demande à tout moment pendant la demande Web. Si vous définissez plusieurs attributs lors d'une requête, le prénom sera utilisé.
Cet exemple définit le nom de la transaction à l'aide d'un attribut de requête dans le doGet d'un servlet :
Vous pouvez également définir le nom de la transaction en appelant la méthode setTransactionName à partir de l'API de l'agent Java. Un appel d'API a la même priorité qu'un attribut de requête. Si vous définissez plusieurs attributs ou faites plusieurs appels d'API lors d'une requête, le nom le plus récent sera utilisé.
S'il n'y a pas d'attribut de demande ou d'appel d'API et que vous utilisez un frameworkpris en charge, New Relic obtient le nom de transaction à partir des composants framework .
Après le framework,l'agent Java de New Relic utilisera JavaServer Pages (JSP). Un JSP obtient le nom de la transaction à partir de son nom de classe. Par exemple, si le nom de la classe du servlet JSP est org.apache.jsp.ShowBrowser_jsp , le nom de la transaction est ShowBrowser.jsp.
Après les JSP, l'agent Java New Relic utilisera des servlets. Un servlet définit le nom de la transaction à partir d'un paramètre init ou du nom du servlet. Le paramètre init a une priorité plus élevée, donc les servlets avec un paramètre init ont priorité sur les servlets sans.
Le nom du servlet et le paramètre init sont définis dans le descripteur de déploiement. Par exemple:
Les filtres de servlet ont la priorité la plus basse. Un filtre obtient le nom de la transaction soit à partir d'un paramètre init, soit à partir du nom du filtre. Le paramètre init a une priorité plus élevée, donc les filtres avec un paramètre init ont priorité sur les filtres sans.
Le nom du filtre et le paramètre init sont définis dans le descripteur de déploiement. Par exemple:
Le nom du filtre est la valeur de l'élément filter-name . Le paramètre init est la valeur de l'élément param-value d'un élément init-param avec un élément param-name de com.newrelic.agent.TRANSACTION_NAME.
Désactiver la dénomination basée sur les composants
À moins que vous n'implémentiez l'appel d'API pour nommer vos transactions, la désactivation de la dénomination automatique des transactions est très susceptible de provoquer des problèmes de regroupement métrique.