Relic Solution: Why Are My Transactions Named /*!

One of the great things about Node is that it makes it so easy and simple to work with HTTP, and that extends to things like parsing URLs and creating your own strategies for naming and routing requests for services like RESTful APIs. This presents a challenge for us, because we need to keep the number of names we’re tracking small enough that we can keep the New Relic user experience snappy, and also so we don’t overwhelm you with so much data that it’s difficult for you to see the problem spots in your applications. URLs are not a good fit for how New Relic sees performance.

Another of Node’s great strengths is that it provides a lot of tools that build on top of the http module to simplify writing web services. Unfortunately, that variety greatly complicates things for us, with our limited resources, and so we offer a few different tools to help you give us the information we need to provide you useful metrics about your application:

  • We can read the route names from the Express and Restify routers, if you’re using them (this may be all you need).
  • We offer an API for naming the current request, either with simple names or, if you prefer, grouped into controllers with actions.
  • And we support rules stored in your agent’s configuration that can mark requests to be renamed or ignored based on regular expressions matched against the request’s raw URLs (also available as API calls).

Without one of the above options in place, our agent will roll-up your data into backstopped transaction names to prevent what we call a metric explosion or Metric Grouping Issue (MGI). This is why you are seeing “/*” in your transaction names.

To break out your transactions and gain more visibility into your app, please refer to the following pages:

If you are still seeing backstopped transactions, or have questions on how to properly configure your transactions, please explain what method(s) you are using for naming your transactions and provide code examples.