In this article, we will explore Azure Distributed Transaction Performance Monitoring using Serverless360’s new feature called BAM Duration Monitoring.
Our primary focus will be effectively monitoring a long-running business process implemented using the dynamic combination of Logic Apps and Data Factory. By leveraging the capabilities of these two powerful tools, we can gain valuable insights into the duration and performance of our business processes, enabling us to optimize their efficiency and overall success.
Challenges in Azure Distributed Transaction Performance Monitoring
Let’s envision a business scenario with a Service Bus triggered Logic App and Data Factory working together. The Logic App checks if a file exists in SharePoint, and if it does, we need to import it into the Dataverse. When dealing with many records, performing the task within a Logic App using a loop might be inefficient. However, Data Factory allows us to take advantage of the Dataverse’s bulk import capabilities and handle the processing of large files more efficiently. We utilize the Logic App to trigger the Data Factory to accomplish this.
The Data Factory then imports the file and performs a bulk upload of the data into the Dataverse. Considering that many records could be processed, this scenario highlights the advantages of combining Logic Apps and Data Factory.
The unknown issue
In this business scenario, there is a waiting period after triggering the pipeline from Logic Apps to import a file into Dataverse. However, we may encounter a couple of unknown issues during this process. Firstly, the pipeline could encounter an error, failing to reach the expected completed state. Secondly, the pipeline may take longer than the anticipated duration to complete the next expected run.
For example, if the standard process duration is 20 minutes, but the pipeline has been running for an hour without failing, traditional monitoring mechanisms may not recognize this as an error. This poses a challenge in determining whether the extended processing time is within an acceptable range or if there is an underlying issue causing the delay.
Unfortunately, Azure monitoring has a gap in providing easy visibility to identify if the processing time has exceeded expectations. This lack of monitoring capability makes it challenging to determine whether the delay is within an acceptable range or if intervention is needed.
Azure Distributed Transaction Performance Monitoring using BAM Duration Monitoring
To address the above issue, Serverless360 Azure distributed tracing tool provides a unique feature called BAM Duration Monitoring. We can create a business representation using the following task as stages,
- Send/ Receive message
- File verification
- Pipeline run initiation
- Pipeline run completion.
In the Logic App, we can send events to the BAM module to track the above stages with real-time execution. This provides both support and business users visibility into the process, enabling them to troubleshoot and perform necessary actions such as reprocessing.
However, the critical aspect we are interested in is the execution time between the pipeline initiation and completion. Using BAM, we can monitor the time delay between these two stages. If the duration exceeds a predefined threshold, we can trigger actions such as sending email notifications or alerts to the support team, indicating that a pipeline run takes longer than the expected completion time. This enables timely identification and resolution of potential issues in the process flow.
This section provides you with a comprehensive list of transactions and their corresponding stages in the Business Process. You can configure warning and error threshold values, specifying the time grain in minutes or hours (as depicted in the screenshot). The threshold values range from 1 to 1000, granting you precise control over monitoring.
To monitor the execution time of specific transactions or stages, select the ones you wish to track. By setting threshold values, you can define the conditions that trigger alerts when the execution time exceeds the specified limits. Additionally, we offer a valuable feature that allows you to write notes intended for the support operator. These notes are attached to the alerts generated, providing the support operator a clear understanding of the situation. This enhances their decision-making process, enabling them to take necessary actions swiftly and efficiently.
Transaction Duration Monitoring
Transaction duration monitoring will monitor all the stages in a particular transaction and trigger an alert when any stage gets violated with the threshold values.
Stage Duration Monitoring
Suppose we need to monitor the execution time of a particular stage in the business process. In that case, we should use stage duration monitoring to send an alert when the configured stage gets violated with the threshold values.
In conclusion, Serverless360 BAM’s duration monitoring feature is valuable when effectively monitoring long-running background processes. This feature allows users to access violated instances within the portal by simply clicking on the Transaction/Stage name in alerts. This ease of access enables quick troubleshooting and identification of any issues. The significance of duration monitoring lies in its ability to address the challenge of monitoring such processes, which Azure lacks an out-of-the-box solution. Serverless360 provides a functional and user-friendly solution to this problem by Azure Distributed transaction performance monitoring. This feature allows businesses to gain valuable insights into their long-running processes, optimize their performance, and ensure smooth operations.