Search code examples
azureazure-logic-appsazure-monitoring

Azure Consumption Logic Apps - Monitor for potentially dropped HTTP requests


We have a production consumption Logic App that receives messages from a webhook in another cloud application via the 'When an HTTP Request is Received' trigger.

We have had a few instances of 'dropped requests' from the application that have been difficult to diagnose from the application and Logic Apps. The only thing we have to go on is that another service that the webhooks send messages to is receiving messages that Logic App is not.

I would like to understand if there is a way to use Azure Monitor/Logs to monitor inbound requests made to Azure/Logic Apps that may never trigger the Logic App.

Please let me know if anyone has done this before or if I am looking for something that does not exist.


Solution

  • ASFAIK, there is no way to capture logs in Azure monitor or Log analytics workspace that did not even trigger the logic app. Because in this scenario, request itself did not reach the logic app and it is not possible to trace those logs from Azure.

    • Using Diagnostic setting, you can capture all logs from logic app and send the log details to log analytics workspace. enter image description here
    • As shown above, you can capture either success or failure details of logic app without reaching Azure logic app I don't think it is possible to capture logs.
    • Even in Azure monitor also you can run queries like total billable execution, Diagnostics and Errors.
        AzureDiagnostics
        | where ResourceProvider == "*********"
        | where Category == "WorkflowRuntime" 
        | where OperationName has "workflowTriggerStarted" or OperationName has "workflowActionStarted" 
        | summarize dcount(resource_runId_s) by OperationName, resource_workflowName_s
    

    enter image description here

    • In above cases the request reached to logic app so tracing is possible.
    • As you are sending request from webhook to logic app, I will suggest you configure logs from webhook.