Creation of Monitoring Dashboard - Per Specific Application Group (Web Apps or Function Apps)

NewDBA 101 Reputation points
2024-04-19T13:00:20.8166667+00:00

We have multiple Azure Applications ( various Web Apps or Function Apps for different purposes like APIs etc ...) hosted in tenant. At the moment all the logs of these azure app services are configured or routed to one Application Insight (say X). Now we are planning to have a dedicated monitoring dashboard for each specific intended applications by routing all logs of specific applications to its own application insights. Can anyone who has done like this please advice best way to have the details monitored like Failures , Dependencies failures , exceptions failures etc .... via a Dashboard. Can we use Azure Grafana or Azure Dashbaords ?

Please advice. Kind Regards

Azure Monitor
Azure Monitor
An Azure service that is used to collect, analyze, and act on telemetry data from Azure and on-premises environments.
2,807 questions
0 comments No comments
{count} votes

Accepted answer
  1. Sina Salam 3,801 Reputation points
    2024-04-19T15:06:58.31+00:00

    Hello NewDBA,

    Welcome to the Microsoft Q&A and thank you for posting your questions here.

    Problem

    Based on your explanation and questions, I understand that you have multiple Azure applications, including various Web Apps and Function Apps, hosted in a tenant. Currently, all logs from these applications are routed to a single Application Insight instance (let's call it X). However, you're planning to improve monitoring by setting up dedicated monitoring dashboards for each application. This involves routing logs from each application to its own Application Insights instance and creating dashboards to monitor events such as failures, dependency failures, and exceptions.

    Scenarios

    Based on your explanation and questions to capture your given scenario, I created a unique scenario for your case to provide more understanding:

    You work as a cloud engineer for a company that utilizes Azure services extensively. Your company hosts multiple Azure applications, including Web Apps and Function Apps, to serve various purposes such as APIs. Currently, all the logs from these applications are consolidated into a single Application Insights instance (X), making it challenging to monitor individual application performance and health effectively.

    To address this issue, your team decides to implement dedicated monitoring for each application. This involves setting up separate Application Insights instances for each application and configuring logging to route data accordingly. Each Application Insights instance will collect logs specific to its corresponding application, allowing for more granular monitoring and analysis.

    As part of this initiative, you need to create monitoring dashboards tailored to each application's requirements. These dashboards should provide insights into critical events such as failures, dependency failures, exceptions, and other performance metrics. Your goal is to design comprehensive dashboards that enable proactive monitoring, quick identification of issues, and efficient troubleshooting.

    Solution

    To answer your questions:

    1. Best Way to Monitor Events via Dashboard: To effectively monitor events like failures, dependency failures, exceptions, etc., via a dashboard, you can follow these steps:
      1. Configure Application Insights for Each Application: Set up dedicated Application Insights instances for each Azure application. This ensures that logs and telemetry data are collected separately for each application, providing more granular insights.
      2. Define Metrics and Alerts: Identify key metrics and events that you want to monitor, such as error rates, response times, dependency failures, etc. Configure alerts based on these metrics to receive notifications when thresholds are breached.
      3. Create Custom Dashboards: Use Azure Dashboards or Azure Monitor Workbooks to create custom dashboards for each application. Include widgets that visualize important metrics and events, such as graphs showing error rates over time, breakdowns of dependency failures, top exceptions, etc.
      4. Monitor and Analyze: Regularly monitor the dashboards to track the performance and health of each application. Analyze trends and patterns to identify areas for optimization and improvement.
    2. Using Azure Grafana or Azure Dashboards: Both Azure Grafana and Azure Dashboards are viable options for creating monitoring dashboards, but they offer different features and capabilities:
      1. Azure Dashboards: Azure Dashboards provide a user-friendly interface for creating and customizing dashboards using pre-built widgets. They integrate seamlessly with other Azure services, making it easy to visualize metrics and logs from Application Insights. Azure Dashboards are well-suited for creating simple, straightforward dashboards with basic visualization options.
      2. Azure Grafana: Grafana is a more advanced dashboarding tool that offers extensive customization options and support for a wide range of data sources, including Azure Monitor. With Grafana, you can create highly customizable dashboards with advanced visualizations and analytics capabilities. It's ideal for users who require more flexibility and sophistication in their monitoring dashboards.

    Finally

    There are some other rising questions and with the summary below you can effectively set up dedicated monitoring for each Azure application, configure custom dashboards to visualize relevant metrics and events, and utilize tools like Azure Dashboards or Azure Grafana for monitoring and analysis.

    1. Setting up Dedicated Application Insights Instances: Best practices include creating a separate Application Insights instance for each Azure application to ensure isolation and granularity in monitoring. Use the Azure portal or Azure CLI to create instances with unique names and associate them with their respective applications.
    2. Configuring Logging for Each Application: Configure logging for Web Apps by updating the "ApplicationInsights:InstrumentationKey" setting in Application Settings. For Function Apps, modify the code to initialize the Application Insights SDK with the correct instrumentation key for each dedicated instance.
    3. Defining Metrics and Events for Monitoring: Metrics and events to include in monitoring dashboards should cover key aspects such as request count, response time, error rate, dependency failures, exceptions, etc. Use telemetry data and custom logging to capture relevant events within each application.
    4. Creating Monitoring Dashboards: Utilize Azure Dashboards or Azure Monitor Workbooks to create customized dashboards for each application. Add widgets to visualize identified metrics and events, customize layouts, and design dashboards according to specific monitoring requirements.
    5. Visualization and Analysis: Leverage built-in visualization options provided by Azure Dashboards or Azure Monitor Workbooks to create interactive charts, graphs, and tables. Use query languages like KQL for deeper analysis of telemetry data and implement alert rules for proactive monitoring.
    6. Using Azure Grafana or Azure Dashboards: Ultimately, the choice between Azure Dashboards and Azure Grafana depends on your specific requirements, preferences, and level of expertise. Both tools can be used to create effective monitoring dashboards for your Azure applications, so you may want to evaluate them based on factors such as ease of use, customization options, and integration capabilities.

    References

    To learn and read more about how to configure monitoring for applications, dashboards, application insights and many other related issues. Kindly use the links beside this page at the right.

    Accept Answer

    I hope this is helpful! Do not hesitate to let me know if you have any other questions.

    Please remember to "Accept Answer" if answer helped, so that others in the community facing similar issues can easily find the solution.

    Best Regards,

    Sina Salam

    1 person found this answer helpful.
    0 comments No comments

0 additional answers

Sort by: Most helpful