D365 F&O Monitoring and Telemetry: Cost Saving, Extensibility, Consuming Captured Telemetry5 min read

Dynamics 365 for Finance and Operations (D365 F&O) provides several monitoring and telemetry features to help you monitor and manage your system’s health and performance. 

Some of these features include:

Health check: D365 F&O provides a health check feature that allows you to monitor the status of various components in your system, such as servers, databases, and services. The health check feature provides real-time information about the status of each component and alerts you if there are any issues.

Performance monitor: D365 F&O also includes a performance monitor that allows you to monitor the performance of various system components, such as servers, databases, and services. The performance monitor provides real-time data about the performance of each component and helps you identify any bottlenecks or issues that may be impacting system performance.

Telemetry: D365 F&O includes built-in telemetry features that allow you to monitor usage patterns, system performance, and other key metrics. Telemetry data can be used to identify trends, track system usage, and optimize system performance.

Alerts: D365 F&O allows you to configure alerts that will notify you if certain conditions are met, such as if system resources are running low or if there is an issue with a critical system component.

Logs: D365 F&O includes detailed logging features that allow you to track system events, errors, and other important information. Logs can be used to troubleshoot issues and identify the root cause of system problems.

Overall, these monitoring and telemetry features in D365 F&O can help you proactively manage your system’s health and performance, ensuring that your business operations run smoothly and efficiently.

We’ve already shed some light on application insights for monitoring and telemetry as well as patterns and antipatterns. So here, we’d like to wrap things up with Cost Savings, Extensibility, and scenarios.

Cost Saving

So how can you keep the cost in check for application insights? It can be achieved in different ways:

  1. The first way to consider is the ability to set data daily volume limit. Meaning, if you set the limit to 100GB, once you hit it, telemetry will not add any more. This is useful when you have a high invoice volume.
  2. The 2nd one would be data retention and export of telemetry. There’s also a retention policy that you can put on telemetry and after that, some of the telemetry gets removed based on the data of the retention. If you want to keep the data even after the retention date you are able to do that by exporting the data and offloading it to different storage.
  3. The 3rd one is what we call data sampling and there are three ways of sampling – adaptive, fixed-rate, and ingestion sampling.

Extensibility – logging Custom Events and Metrics

What comes out of the box with it? Obviously, you might want to put extra telemetry for custom processes you have in place. You also want to extend the solution and you want to be able to write some codes and make sure to hook into some of the events and log your own telemetry.

That is definitely something that is possible now through this feature. It allows you to The main entry point for logging your custom telemetry will be the SYS global telemetry class – which will handle the communication to application insights. It provides you with a client that will connect to App Insights. Then, it will provide you the methods like logging custom events and metrics. 

This is the way to go into your own code and make these method call-outs to automatically add telemetry to application insights.

Nota Bene: that is depending of course on whether you have enabled checkboxes specifically for custom events in the configuration UI.

Consuming Captured Telemetry

And the last part we want to touch on is the consumption of captured telemetry. As soon as you start logging your own telemetry and doing some more deep-dive telemetry monitoring – you will want to view the role storage and write queries to actually pull that telemetry. That’s done by using Kusto Query Language (KQL).

Captured telemetry can be consumed by a variety of tools. Initially, that would be the Azure portal. However, if you want to start querying through the application portal, there is also a log option where you can run some of the queries. You can create workbooks that are acting as dashboards to get you all the information. Not to mention, you can connect Azure Data Explorer.


Batch Monitoring – is something we can immediately think of monitoring the number of running times spread out across the time to get insights on batch monitoring. Will we hit throttling issues without telemetry that shows how many running tasks we have?

The second one, which we definitely sure is going to be one of the most used features, is the Form Usage. ‘What are my top ten used forms that are aligning with strategy and which ones are not?’ Thus, You are able to change the performance by changing the design, for example.

The last one on our list would be critical Process Insights. ‘How many invoices are we processing on average?’ Or, given we are posting ledger journals at the end of the month, a lot of companies are posting a lot of invoices. This way, we can see how fast we are processing them. Are we slower or quicker compared to the last month?