Splunk AppDynamics

Unable to set a custom attribute after initial load for Next.js web app (RUM)

Ben_Howl
New Member

Hey all,

Tech stack: Next.js 13 (pages router)

I've been following the guide https://docs.appdynamics.com/display/GOVAPM234/Add+Custom+User+Data+to+a+Page+Browser+Snapshot to set custom attributes.  

On the initial page I load the AppDynamics script provided below

window['adrum-start-time'] = new Date().getTime()
;((config) => {
  config.appKey = 'XXX'
  config.adrumExtUrlHttp = 'http://cdn.appdynamics.com'
  config.adrumExtUrlHttps = 'https://cdn.appdynamics.com'
  config.beaconUrlHttp = 'http://syd-col.eum-appdynamics.com'
  config.beaconUrlHttps = 'https://syd-col.eum-appdynamics.com'
  config.useHTTPSAlways = true
  config.xd = { enable: true }
  config.resTiming = { bufSize: 200, clearResTimingOnBeaconSend: true }
  config.maxUrlLength = 512;
  config.userEventInfo = {
    PageView: getAppDynamicsUserInfo(),
    VPageView: getAppDynamicsUserInfo(),
  }
})(window['adrum-config'] || (window['adrum-config'] = {}))
getAppDynamicsUserInfo is a function attached to window and will return the attribute sessionId always and if available, another attribute called customerId.

On the initial page load, the sessionId is sent and viewable on AppDynamics Analyze view. When I get to the page where the customerId is available, it is not sent to AppDynamics. 

If I inspect window["adrum-config"] or use ADRUM.conf.userConf, I can see both sessionId and customerId.

In the above script I've tried just setting PageView and just setting VPageView

In terms of methods of loading the above script, I've used the Next.js Script component and tried the following:

  • Load the above as an external script file on different pages (different react components)
  • Load the above in different versions of the same script file (different names) on different pages
  • Added the above script into a React component and loaded the component on different pages

I've also tried to use the AJAX method to intercept http calls. It intercepts the http call but does not result in sending the user data to AppDynamics. 

In addition to trying to set it via config.userInfo as above, I've tried to use the following options as well. 

(function (info) {
   info.PageView = getAppDynamicsUserInfo
   info.VPageView = getAppDynamicsUserInfo
})(config.userEventInfo || (config.userEventInfo = {}))

(function (info) {
   info.PageView = getAppDynamicsUserInfo()
   info.VPageView = getAppDynamicsUserInfo()
})(config.userEventInfo || (config.userEventInfo = {}))

​

Any help is appreciated, thank you 🙂 

Labels (1)
0 Karma

iamryan
Community Manager
Community Manager

HI @Ben.Howl,

Thanks for asking your question on the Community. It's been a few days and the Community has not jumped in, I wanted to let you know you can always contact AppD Support or even your AppD CSM.

How do I submit a Support ticket? An FAQ 

If you find a solution or any other bit of help to this question, it would be helpful if you could come back and share that as a reply. 

0 Karma
Get Updates on the Splunk Community!

Fueling your curiosity with new Splunk ILT and eLearning courses

At Splunk Education, we’re driven by curiosity—both ours and yours! That’s why we’re committed to delivering ...

Splunk AI Assistant for SPL 1.1.0 | Now Personalized to Your Environment for Greater ...

Splunk AI Assistant for SPL has transformed how users interact with Splunk, making it easier than ever to ...

Unleash Unified Security and Observability with Splunk Cloud Platform

     Now Available on Microsoft AzureOn Demand Now Step boldly into the AI revolution with enhanced security ...