Your data. Anywhere you go.

New Relic for iOS or Android


Download on the App Store    Android App on Google play


New Relic Insights App for iOS


Download on the App Store


Learn more

Close icon

Transaction name set to "/*" for some transactions


#1

We are seeing some (around 50%) of transactions being rolled up into the generic /* name.

I can see in the trace details that the url is set to the path of the request but the “WebTransaction” segment is set to “/*”.

We do manually set the transaction name for one specific route which is working as expected, otherwise we leave it to the agent to set the name. I am unable to reproduce this behaviour with local testing but it is a problem in multiple production environments

Component Version
node 8.11.2
restify 4.3.4
@newrelic/native-metrics 3.0.0
newrelic 4.1.5

config:

  attributes: {
    enabled: true
  },
  browser_monitoring: {
    enable: false
  }

#2

@James.Skinner Thanks for your post. Can you please provide a link to your application? To create a permalink to any page within the New Relic user interface, scroll to the bottom and click ‘Permalink’ all the way on the right next to ‘Kiosk Mode.’ Please keep in mind, only New Relic employees with the proper access can view your data.

Since you’re using Restify (which is a supported web framework), I suspect you’re seeing transactions named /* because the agent is having an issue instrumenting Restify. Can you confirm require('newrelic'); is the first line in your app’s main file? Not requiring the agent prior to any of the modules you’re interested in instrumenting is often the source of instrumentation issues.

If you’re using something like Babel to compile your app’s code, please try adding the --require flag to the command you use to launch your Node process. As an example:

node --require newrelic app.js

The --require option will make sure to preload the newrelic module before any other module. We’ve seen cases where the require('newrelic'); placement gets changed when the code compiles.

Let us know if this helps. If you still see the issue, we may need to open a support ticket so we can gather trace logs from the agent and other info that you may not want to post publicly.


#3

@hakimu Thanks for the reply. I included a permalink in the original post.

We are using babel but after transpiling require('newrelic') remains at the top, certainly it is being loaded before restify.

I can try node --require newrelic app.js but I am doubtful that it is the issue - surely in this case all the routes would be intremented poorly, not just some?


#4

@James.Skinner Sorry I missed the permalink. In addition to the --require flag can you also try updating to the most recent agent version (more info here)?

Let us know if you still see the issue and if so we’ll open a support ticket to grab additional info.


#5

@hakimu I can but we already did an upgrade to try and fix this issue. Problem is that we only see the issue in production, I can’t reproduce locally or in test environments. So we need to wait for a production release, which takes time and by that time there will likely be a newer version available anyway


#6

Hey @james.skinner let us know how you get on when you can test this. We’ll be happy to help further if this is still an issue in your next prod release.


#7

@RyanVeitch Thanks but my point was that when this is still an issue after upgrade the version will already be out of date. Presumably then the advice will be to upgrade again and see if that fixes it? So unless a related bug has been fixed which I can’t see in the release notes then please can we look into the root cause now?

In the meantime I will kick off the upgrade either way and continue to try and reproduce it locally

Thanks


#8

Sure @James.Skinner - Sorry I misunderstood your previous message. I’ll get this passed on to our Node experts for further review.


#9

Great, thanks. We are also 3 major version versions behind the latest of the restify framework which could be a factor.


#10

Hi @James.Skinner, to me this looks like NormalizedUri behaviour in the agent. By default it renames transactions not affected by other naming logic, so setting enforce_backstop: false in your newrelic.js file may help here. You can find more info here in our docs :slight_smile:


#11

:+1: Thanks, will give it a try


#12

Hey @James.Skinner - How did your tests go with @rdouglas’s advice?


#13

Finally managed to get this change out the door and it fixed the issue :slight_smile:

I cant say if the version bump (to 4.9.0) or the config update to add enforce_backstop: false did the trick but is working now. Thank you all for the help


#14

That’s great to hear, thanks for confirming. Feel free to post back here if you run into any other trouble :smiley: