How to collect IOPS information in Azure SQL MI

Li, Jindong 46 Reputation points
2025-03-06T14:09:39.3966667+00:00

Hello all,

I have a question about collect IOPS information for Azure SQL MI. Is there any way to collect IOPS for Azure SQL MI?

Thanks

Azure SQL Database
{count} votes

2 answers

Sort by: Most helpful
  1. Stanislav Zhelyazkov 26,781 Reputation points MVP
    2025-03-06T14:31:49.0933333+00:00

    Hi,

    It is a bit unclear what do you mean exactly bu IOPS information and what do you mean by collecting it? Collecting where?

    By default Azure SQL MI offers metrics like io_bytes_read, io_bytes_written and io_requests which can be viewed in Metrics blade. You can use diagnostic settings to send those to other destinations.

    Additionally if you need more data you can try using database watcher. According to the documentation it has Storage IO data set which collects cumulative IOPS, throughput, and latency statistics for each database file.

    Please "Accept the answer" if the information helped you. This will help us and others in the community as well.

    0 comments No comments

  2. Adithya Prasad K 165 Reputation points Microsoft External Staff
    2025-03-06T14:57:40.91+00:00

    Hi Li, Jindong,

    Thank you for reaching out and posting the query.
    We understand that you're looking for a way to collect IOPS (Input/Output Operations Per Second) information for Azure SQL Managed Instances (MI). Fortunately, there are several methods available to monitor and collect IOPS metrics for Azure SQL MI, leveraging Azure's built-in monitoring tools and services
    Collecting IOPS Information in Azure SQL Managed Instance :To collect IOPS (Input/Output Operations Per Second) information in Azure SQL Managed Instance (SQL MI), you can utilize several built-in metrics and tools provided by Azure. Here’s a structured approach to gather this information:

    1. Default Metrics Available
      Azure SQL MI provides several default metrics that can help you monitor IOPS:
      io_bytes_read: The total number of bytes read from the database.
      io_bytes_written: The total number of bytes written to the database.
      io_requests: The total number of I/O requests made.
      You can view these metrics in the Metrics blade of the Azure portal. For more details, refer to the Azure SQL Managed Instance Monitoring Reference.
    2. Using Diagnostic Settings
      To send these metrics to other destinations for further analysis, you can configure diagnostic settings. This allows you to export the metrics to services like Azure Monitor, Log Analytics, or Event Hubs. More information can be found in the Diagnostic Settings Documentation.
    3. Database Watcher for Detailed Insights
      If you require more detailed data regarding IOPS, consider using the Database Watcher feature. This tool provides a comprehensive overview of database performance, including:
      Cumulative IOPS
      Throughput
      Latency statistics for each database file
      For further details on how to use Database Watcher, refer to the Database Watcher Overview and the Data Sets Documentation.

    By utilizing the default metrics, diagnostic settings, and Database Watcher, you can effectively collect and analyze IOPS information for Azure SQL Managed Instance. This will help you monitor performance and optimize your database operations.

    0 comments No comments

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.