L'API de l'agent Java New Relic vous permet de configurer un regroupement d'erreurs personnalisé à l'aide d'une implémentation de rappel personnalisée dans votre application Java. Ce document montre un exemple d’utilisation du regroupement d’erreurs personnalisé avec une implémentation de rappel dans un exemple d’application.
Important
Pour de meilleurs résultats lors de l'utilisation de l'API, assurez-vous de disposer de la dernière version agent Java .
Exemple : implémentation d'un rappel de regroupement d'erreurs personnalisé
Vous trouverez ci-dessous un exemple d'application utilisant l'API de l'agent Java pour implémenter un regroupement d'erreurs personnalisé avec un rappel et enregistrer le rappel.
Conseil
Si vous copiez et collez un exemple de code, assurez-vous d'utiliser un espacement approprié sur votre ligne de commande.
package test;import com.newrelic.api.agent.ErrorGroupCallback;import com.newrelic.api.agent.NewRelic;import java.io.IOException;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;
public class MyServletContextListener implements ServletContextListener { @Override public void contextDestroyed(ServletContextEvent arg0) { // Do any cleanup if needed }
@Override public void contextInitialized(ServletContextEvent arg0) { // Register the error grouping callback on application startup NewRelic.setErrorGroupCallback(new MyErrorGrouper()); }}
public class MyErrorGrouper implements ErrorGroupCallback { public String generateGroupingString(ErrorData errorData) { String clazz = errorData.getErrorClass(); String txnName = errorData.getTransactionName();
return (clazz.isEmpty() || txnName.isEmpty()) ? null : clazz + "_" + txnName; }}
public class TestServlet extends HttpServlet { private static final long serialVersionUID = 1L;
protected void processRequest(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // Simulate an exception throw new ServletException("Simulated ServletException"); }
@Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { processRequest(req, resp); }
@Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { processRequest(req, resp); }}