The New Relic Java agent API allows you to set up custom error grouping using a custom callback implementation in your Java application. This document shows an example of using the custom error grouping with a callback implementation in sample application.
Importante
For best results when using the API, ensure you have the latest Java agent release.
Example: Implementing a custom error grouping callback
Below is an example of a sample application using the Java agent API to implement custom error grouping with a callback and registering the callback.
Sugerencia
If you copy and paste example code, be sure to use appropriate spacing on your command lines.
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);  }}