Skip to content

Just My Blog

Just great and interesting articles and more!

  • Home
  • Tips & Tricks
  • Toggle search form

Cloud flow monitoring in Application Insights

Posted on 27 Sep 20231 Nov 2024 By Frans van Es

If you’re interested in Power Automate Analytics and other monitoring options, check this article.

It is good to know if your cloud flows are running as expected, without issues. But, how do you know? Currently, there’s no real dashboard to monitor the cloud flows. So, let’s use the Data Export option to export flow runs into Azure Application Insights, which can be included into an Azure Dashboard.

Let’s start

The data export of flow runs is an OOTB option within Dynamics CRM, and has better performance than a self-built function app which use APIs. This OOTB option actually picks up all the runs. Alas, it does currently only show the guids of the runs, which is not very informative. BUT with some of Kusto Query Language, I wrote some queries which are now used to find bad performing or failing runs.

warning
WARNING

This option is currently in Public Preview for both Managed and Unmanaged environments.
It will initially become GA for Managed environments, for Unmanaged environments it might be as well. Microsoft has not yet decided.

Please upvote this idea to have this functionality kept on Unmanaged Environments as well!

Other previews will arrive this year, like table Flow Runs, which will contain flow run metadata. Also Power Automate Analytics will receive AI updates.

Setting up

Prerequisites:

  • an Azure Application Insights instance for the Data Export
  • You must be a member of one of these roles: Power Platform admin, Dynamics 365 admin, or Microsoft 365 Global admin.

Power Platform Admin Center

Go to https://admin.powerplatform.microsoft.com/home

  • Under tab “App Insights”, you will find existing data exports
  • Select “+ New data export”
  • Select “Power Automate”, and check only “Cloud flow runs” to limit the amount of storage needed
  • Name the export package, eg. “Cloud flow runs demo”

Press “Next”.

Now, you select a (managed) environment which contains the cloud flows.

Press “Next”.

Now, refer to your existing Application Insights instance, and select it here.

Press “Next” for the last step.

Now, you can review your settings.

Press “Create” to start the Data Export.

It will take several minutes or hours, depending on the amount of cloud flow runs that are present in the select instance.

Checking Application Insights

If you go to your Application Insights resource, and check Performance, you will see the flow runs showing up. Alas, it doesn’t show the names of the flows but just their guids.

O dear. Worry not, I have found a better way. Read on.

Better way to monitor

Now you can create queries using KQL (Kusto Query Language) to get a good overview of the flow runs.

First go to your Application Insights resource to which Data Export was done. Click on Logs.

Example 1 – Top 10 of flows which have the highest failure rate

let dataset = app("appinsight-my-flowruns-test").requests
| where resultCode != "Other";
dataset
| extend FlowDisplayName = tostring(parse_json(tostring(customDimensions.Data)).FlowDisplayName)
| project FlowDisplayName, success
| summarize SuccessfulRuns = countif(success == true), FailedRuns = countif(success == false) by FlowDisplayName
| where FlowDisplayName != ""
| extend FailureRate = round((todouble(FailedRuns)/(FailedRuns+SuccessfulRuns)) * 100, 2)
| top 10 by FailureRate

Output shows which flows need your attention.

Example 2 – Failing cloud flow runs for specific cloud flow

app("appinsight-my-flowruns-test").requests
| where timestamp > todatetime("2024-04-30 11:00") and timestamp < todatetime("2024-04-30 12:00") // Specify UTC times !
| extend FlowDisplayName = tostring(parse_json(tostring(customDimensions.Data)).FlowDisplayName)
| extend FlowRunUrl = strcat("https://make.powerautomate.com/environments/",tostring(customDimensions.environmentId),"/flows/",tostring(customDimensions.resourceId),"/runs/",tostring(parse_json(tostring(customDimensions.Data)).RunId))
| project timestamp, FlowDisplayName, success, duration, FlowRunUrl, resultCode
| where success == false and resultCode != "Other"
| where FlowDisplayName contains "Some important cloud flow" // CHANGE THIS TO SEARCH FOR SPECIFIC FLOW
| order by timestamp asc

Output shows something like this. You can easily right-click on the FlowRunUrl to go straight to the failing flow.

Finding flow runs within specific time frame

You can also use this query for finding flow runs within a specific time frame which have not failed, but are interesting to investigate because you know something went wrong. Just comment out this line:

//| where success == false and resultCode != "Other"

Conclusion

The Data Export Analytics gives you the opportunity to use Azure’s Application Insights to have great monitoring capabilities. By putting these queries in your Azure dashboard, you will have better overview and search options.

Azure, Dynamics CRM Tags:Application Insights, Cloud flows, DevOps, Monitoring

Post navigation

Previous Post: How to add a pre-filter to SSRS Report using FetchXML
Next Post: Create release notes via branch comparison (Part 1)

Categories

  • Azure (2)
  • Azure DevOps (2)
  • Dynamics CRM (4)

Tag cloud

Application Insights (1) Cloud flows (2) DevOps (3) FetchXML (2) Monitoring (2) Reports (1) SSRS (1)

Dynamics CRM Newsfeed

  • The autonomous enterprise: How generative AI is reshaping business applications
  • Enhance supervisor visibility by monitoring waiting chats
  • Use presence-based assignment to reduce customer wait time
  • Boost your team’s performance with the Adherence Tracker
  • Empower your Contact Center workforce with shift bidding and swapping

Copyright © 2024 Just My Blog -

Powered by PressBook WordPress theme