Not able to see traffic in New Relic APM

Hi,

I have followed below steps to configure Azure with New Relic.

  • Created Azure Web Job in Visual Studio built on top of .Net Framework

  • Use of following method to handle the exception:-
    NewRelic.Api.Agent.NewRelic.NoticeError( exception $exception[, IDictionary $attributes])

  • Host Webjob in Azure

  • .NET Framework Installation via App Extensions for New Relic in Azure

  • Add following Key Value Pair
    Key Value
    COR_ENABLE_PROFILING 1
    COR_PROFILER {71DA0A04-7777-4EC6-9643-7D28B46A8A41}
    COR_PROFILER_PATH D:\Home\site\wwwroot\newrelic\NewRelic.Profiler.dll
    NEWRELIC_HOME D:\Home\site\wwwroot\newrelic
    NEW_RELIC_LICENSE_KEY YOUR_LICENSE_KEY

  • Restart app

My understanding is that when Azure Web Job will run and any exception come then it will log in New Relic APM.

Can you please tell where it will log in New Relic APM. I cannot see any traffic yet.
Can anyone please help?

Hello @Tanumay.Majumdar

Once your app starts reporting, you should see the data within the APM. In APM, click on Applications, where you will see your app listed and once you click on it, you will see the overview page.

The steps look right but perhaps the custom instrumentation was missed, please see this blog post. https://blog.newrelic.com/product-news/microsoft-azure-webjobs/

Can you confirm that steps 3-7 was carried out, please?
The logs should be in this path. D:\home\LogFiles\NewRelic
Could you please check to see if any logs were generated?

Hope the above resolves the issue

Hi,

I did not carry out steps 3-7 yet.
Will the logs be generated in D:\ of my local machine or is it anywhere else?

Can you please give a reference where New Relic is able to capture the exception from WebJob handled using following code:-

NewRelic.Api.Agent.NewRelic.NoticeError( exception $exception[, IDictionary $attributes])

@Tanumay.Majumdar,

The New Relic logs exist on the Azure instance. You’ll need to use the Kudu command line console within the Azure portal to see the logs. You can navigate to the Kudu console by selecting Advanced Tools from the Azure portal and then using the command console to go to D:\home\LogFiles\NewRelic.

The exceptions generated by NoticeError will appear in the Error Analytics tab of New Relic’s APM UI.

I hope that helps.

2 Likes

Hi,
@Tjd @hdolan,

I have followed your suggestions and also looked at New Relic documentation to log traffic in New Relic APM UI. The logs are appearing in D:\home\LogFiles\NewRelic but application is not appearing in New Relic APM Appication UI. Please find attached performed steps for your reference:-

APM New Relic Azure.pdf (351.8 KB)

Can you please tell me as what am I doing wrong here?

@Tanumay.Majumdar

Thanks for all the info in the pdf document!

In the profiler log you shared I would expect to see lines like these:

Instrumenting method: (Module: ...[APM.NewRelic.Webjob]APM.NewRelic.Webjob.CallingClass1.CallingMethod1()

Instrumenting method: (Module: ...[APM.NewRelic.Webjob]APM.NewRelic.Webjob.CallingClass1.CallingMethod2()

But I don’t see those lines which makes me think the instrumentation file is not quite correct.

Could you change the agent log level to “finest” and restart your application. That will write out a detailed profiler log. You should see your methods in that detailed log even if they are not instrumented and you can compare the signature of your method in the profiler log to the signature specified in your instrumentation file.

The log should also show if it’s finding and parsing your instrumentation file.

This article may help too: Relic Solution: Troubleshooting XML-based Custom Instrumentation Issues

The other thing you can try is to use attribute based instrumentation as described here instead of xml based instrumentation. You would need to include the NewRelic API nuget package to your project and then apply the [Transaction] attribute to your methods. This approach might be a little easier than XML-based instrumentation.

1 Like

Hi @Tjd,

Thanks for your support. Your instructions helped me to resolve the primary issue. I am able to see traffic in New Relic APM now. Currently I am facing below two major issues and need your help again.

Like before I am attaching the screenshot with detail to the problem. Please take a look:-
New Relic APM Transaction.pdf (307.8 KB)

Major issues are:-

  1. Not able to see Transactions for multiple classes.
  2. Not able to see all method exceptions under Error Analytics tab.

I’m wondering if the issue is your app is shutting down before your second transaction can complete. Because the New Relic .NET Agent runs as part of your .NET process, if your process shuts down before a transaction can be sent to New Relic it will be lost. The agent only sends data to New Relic once a minute as well so short lived processes may need some extra configuration:

https://docs.newrelic.com/docs/agents/net-agent/troubleshooting/monitor-short-lived-net-processes

In your example if you move the Thread.Sleep() to after the calling2.CallingMethod2() do you see that transaction show up?