Расширение Microsoft SQL Server: различия между версиями
(Новая страница: «Улучшите мониторинг работоспособности и производительности ваших серверов '''Microsoft SQL'''....») |
|||
| (не показана 1 промежуточная версия этого же участника) | |||
| Строка 11: | Строка 11: | ||
* Мониторинг памяти [[Файл:(B8BF0605-4BCF-4F06-989C-F818BD7D31BB).png|граница]] | * Мониторинг памяти [[Файл:(B8BF0605-4BCF-4F06-989C-F818BD7D31BB).png|граница]] | ||
== | == Старт == | ||
=== Активация === | === Активация === | ||
| Строка 928: | Строка 928: | ||
Резервные копии Azure отслеживаются путем запроса представления <code>sys.db_database_backups</code>, которое в настоящее время доступно для всех уровней служб базы данных SQL Azure, за исключением Hyperscaler. | Резервные копии Azure отслеживаются путем запроса представления <code>sys.db_database_backups</code>, которое в настоящее время доступно для всех уровней служб базы данных SQL Azure, за исключением Hyperscaler. | ||
=== | === Always On === | ||
Чтобы получить информацию о каждой реплике в заданной группе доступности, подключите расширение к экземпляру сервера, на котором размещена первичная реплика. При подключении к экземпляру сервера, на котором размещена вторичная реплика группы доступности, расширение возвращает только локальную информацию для этой группы доступности. | Чтобы получить информацию о каждой реплике в заданной группе доступности, подключите расширение к экземпляру сервера, на котором размещена первичная реплика. При подключении к экземпляру сервера, на котором размещена вторичная реплика группы доступности, расширение возвращает только локальную информацию для этой группы доступности. | ||
Текущая версия на 22:59, 11 сентября 2025
Улучшите мониторинг работоспособности и производительности ваших серверов Microsoft SQL.
Обзор
Мониторинг баз данных Microsoft SQL Server основан на подходе удалённого мониторинга, реализованном в виде расширения Ключ-АСТРОМ АктивныйШлюз. Это расширение запрашивает ключевые показатели производительности и работоспособности баз данных MS SQL, расширяя вашу прозрачность и позволяя ИИ выявлять аномалии и анализировать проблемы.
- Получите обзор мониторинга вашего SQL Server с помощью новых панелей мониторинга, которые поставляются вместе с расширением после активации.

- Просматривайте самые большие файлы в среде SQL Server с помощью логов, принимаемых расширением.

- Просматривайте самые долго выполняющиеся запросы в среде SQL Server с помощью логов, полученных расширением.

- Вид фрагмента

- Диаграммы блокировок и SQL-операторов

- Мониторинг памяти

Старт
Активация
- Активируйте расширение в : Ключ-АСТРОМ → SQL Server → Добавить в среду.
- Добавьте конфигурацию мониторинга с конечными точками, которые подключаются к отдельным экземплярам SQL Server.
- Более подробную информацию о быстром старте можно найти в документации.
- Включение мониторинга логов активирует логи состояния расширений и позволит отслеживать самые продолжительные запросы и самые большие файлы базы данных.
Варианты использования
- Понимайте влияние нехватки ресурсов, блокировок и других проблем с базой данных на ваше приложение, наблюдая за самим сервером базы данных.
- Отслеживайте состояние и производительность серверов MS SQL
Информация о совместимости
Поддерживаемые типы SQL Server
- SQL Server (редакции: Enterprise, Standard, Developer, Web, Express) на серверах Windows.
- База данных Azure SQL.
- Управляемый экземпляр Azure SQL.
Важное примечание: сообщается, что расширение работает с другими типами SQL Server, такими как AWS RDS или SQL Server на Linux, но официально они не поддерживаются.
Поддерживаемые типы HA или репликации
- Всегда включен
Важное примечание: другие типы репликации и мониторинга высокой доступности, включая модель «издатель/подписчик», пока не поддерживаются.
Поддерживаемые версии SQL Server
Это расширение поддерживает любую версию SQL Server с активной расширенной поддержкой Microsoft. Сведения о сроках жизненного цикла SQL Server см . в официальной документации Microsoft.
Одновременное использование разных версий расширения
- Запуск двух или более различных версий расширения на одном и том же SQL Server не поддерживается.
- Запуск разных основных версий расширения (например, версии 1 и версии 2) на одном клиенте крайне не рекомендуется и не поддерживается . Это нарушит модель топологии.
Совместимость с OneAgent
- Для связи сущности «Экземпляр SQL Server» с сущностью «Хост» они должны иметь один и тот же IP-адрес. Если конфигурация мониторинга SQL Server настроена на другой IP-адрес, два экземпляра не будут связаны друг с другом.
Использование DQL и журналов
Популярные запросы
Как включить?
С помощью набора функций Queries можно включить сбор самых популярных запросов, упорядоченных по общей длительности.
Требования
- Хранилище запросов должно быть включено на экземпляре SQL Server.
- База данных, из которой собираются запросы, определяется:
- Явное имя базы данных, указанное в конечной точке для конфигурации мониторинга; или
- База данных по умолчанию настроена для подключенного пользователя.
Как часто обновляется информация?
Самые популярные запросы выбираются расширением каждые 5 минут.
Как составить список популярных запросов?
При выполнении приведенного ниже запроса в журналах и событиях отображаются самые популярные запросы, наблюдавшиеся за последние 5 минут, с использованием DQL:
| fetch logs, from:now()-60m
| filter matchesValue(dt.extension.name, "com.dynatrace.extension.sql-server") | filter matchesValue(event.group, "longest_queries") | fields total_duration, avg_duration, content, server, instance, num_executions, query_plan | sort asDouble(total_duration) desc |
Описание полей:
total_durationполе представляет собой сумму всех выполнений этого запроса за указанный 5-минутный период в секундахavg_durationпредставляет собой среднее время выполнения этого запроса за заданный 5-минутный период в секундахcontentполе содержит текст SQL-запроса
В Managed клиентах: записи логов можно получить, отфильтровав логи с использованием двух атрибутов.
dt.extension.name:com.dynatrace.extension.sql-server; иevent.group:longest_queries.
Самые большие файлы
Как включить?
Сбор самых больших по размеру файлов базы данных можно осуществить с помощью набора функций Database files.
Как часто обновляется информация?
Самые большие по размеру файлы баз данных по расширению извлекаются каждые 5 минут.
Как составить список самых больших файлов баз данных по размеру?
При выполнении приведенного ниже запроса в журналах и событиях отображаются самые большие файлы базы данных, наблюдавшиеся за последние 5 минут, по размеру с использованием DQL:
| fetch logs, from:now()-5m
| filter matchesValue(dt.extension.name, "com.dynatrace.extension.sql-server") | filter matchesValue(event.group, "largest_files") | fields content, file_size, file_type_desc, file_state_desc, database, server, instance, file_used_space, file_empty_space | sort asDouble(file_size) desc |
Описание полей:
contentполе представляет физическое имя файла, обрабатываемое хост-ОСfile_sizeсообщается в КБfile_used_spaceуказывается в КБ и представляет собой объем пространства, занимаемого выделенными страницами в определенном файлеfile_empty_spaceуказывается в КБ и представляет собой объем свободного места в определенном файле
В Managed клиентах: записи логов можно получить, отфильтровав журналы с использованием двух атрибутов.
dt.extension.name:com.dynatrace.extension.sql-server; иevent.group:largest_files.
Текущие Jobs
Как включить?
С помощью набора функций Jobs можно включить мониторинг текущих заданий.
Как часто обновляется информация?
Текущие задания загружаются расширением каждые 5 минут.
Как составить список текущих мест работы?
Приведенный ниже запрос при выполнении в логах и событиях отображает текущие задания, наблюдаемые за последние 5 минут, с использованием DQL:
| fetch logs, from:now()-5m
| filter matchesValue(dt.extension.name, "com.dynatrace.extension.sql-server") | filter matchesValue(event.group, "current_jobs") | fields job_name, job_status, content, enabled, last_run_outcome, duration, instance, server, start_execution_date, stop_execution_date, job_category, category_name | sort asDouble(duration) desc |
Описание полей:
contentполе представляет собой последнее сообщение о результате выполнения.job_statusиlast_run_outcomeидентичны, за исключением двух ситуаций:- Когда задание
job_statusеще не было выполнено, то равноIdle - Когда задание
job_statusв данный момент выполняется, то равноIn Progress
- Когда задание
durationпредставляет собой полную продолжительность работы в секундах после завершения выполненияcategory_idпредставляет идентификатор категории работыcategory_nameпредставляет собой имя, присвоенное идентификатору категории
В Managed клиентах: записи логов можно получить, отфильтровав логи с использованием двух атрибутов.
dt.extension.name:com.dynatrace.extension.sql-server; иevent.group:current_jobs.
Неудачные Jobs
Как включить?
Мониторинг невыполненных заданий можно включить с помощью набора функций Jobs.
Как часто обновляется информация?
Невыполненные задания извлекаются расширением каждые 5 минут.
Как составить список невыполненных работ?
Приведенный ниже запрос при выполнении в логах и событиях отображает невыполненные задания, зафиксированные за последние 5 минут, с использованием DQL:
| fetch logs, from:now()-5m
| filter matchesValue(dt.extension.name, "com.dynatrace.extension.sql-server") | filter matchesValue(event.group, "failed_jobs") | fields job_name, step_name, outcome, content, duration, instance, server, sql_severity, retries_attempted, start_execution_date, stop_execution_date | sort stop_execution_date desc |
Описание полей:
contentполе представляет собой сообщение последнего выполненного шага и обычно содержит ошибку.outcomeпредставляет собой окончательное сообщение о состоянии задания, составленное агентом SQL Server.durationпредставляет собой полную продолжительность работы в секундах после завершения выполнения
В Managed клиентах: записи логов можно получить, отфильтровав логи с использованием двух атрибутов.
dt.extension.name:com.dynatrace.extension.sql-server; иevent.group:failed_jobs.
Разрешения
Каждый доступный набор функций поддерживается соответствующим набором типов SQL Server. Подробную информацию об отдельных разрешениях, которые необходимо предоставить пользователю расширения для каждого набора функций, см. в разделе « Задействованные представления и таблицы» , а подробную информацию о разрешениях для каждого системного представления см. ниже.
Поддерживаемые системы и используемые системные представления для каждого набора функций
default
Supported on:
- SQL Server (all versions)
- Azure SQL Database
- Azure SQL Managed Instance
- Azure Synapse Analytics
- Analytics Platform System (PDW)
Views and tables involved:
- sys.dm_os_sys_info
- sys.dm_os_performance_counters
- sys.databases
Memory
Supported on:
- SQL Server (all versions)
- Azure SQL Database
- Azure SQL Managed Instance
- Azure Synapse Analytics
- Analytics Platform System (PDW)
Involved Views and Tables:
- sys.dm_os_performance_counters
Locks
Supported on:
- SQL Server (all versions)
- Azure SQL Database
- Azure SQL Managed Instance
- Azure Synapse Analytics
- Analytics Platform System (PDW)
Involved Views and Tables:
- sys.dm_os_performance_counters
Latches
Supported on:
- SQL Server (all versions)
- Azure SQL Database
- Azure SQL Managed Instance
- Azure Synapse Analytics
- Analytics Platform System (PDW)
Involved Views and Tables:
- sys.dm_os_performance_counters
Queries
- Monitoring query performance stats Supported on:
- SQL Server (all versions) Involved Views and Tables:
- sys.dm_os_performance_counters
- Monitoring TOP longest queries Supported on:
- SQL Server (2016 and later)
- Azure SQL Database
- Azure SQL Managed Instance
- Azure Synapse Analytics Involved Views and Tables:
- sys.query_store_runtime_stats
- sys.query_store_plan
- sys.query_store_query
- sys.query_store_query_text
Replication
Supported on:
- SQL Server (all versions)
- Azure SQL Database
- Azure SQL Managed Instance
- Azure Synapse Analytics
- Analytics Platform System (PDW)
Involved Views and Tables:
- sys.dm_os_performance_counters
Sessions
Supported on:
- SQL Server (all versions)
- Azure SQL Database
- Azure SQL Managed Instance
- Azure Synapse Analytics
- Analytics Platform System (PDW)
- SQL analytics endpoint in Microsoft Fabric
- Warehouse in Microsoft Fabric
Involved Views and Tables:
- sys.dm_exec_sessions
Transaction logs
Supported on:
- SQL Server (all versions)
- Azure SQL Database
- Azure SQL Managed Instance
- Azure Synapse Analytics
- Analytics Platform System (PDW)
Involved Views and Tables:
- sys.dm_os_performance_counters
Backups
- Monitoring age of latest backup and individual backups per database Supported on:
- SQL Server (all versions)
- Azure SQL Managed Instance Involved Views and Tables:
- sys.databases
- msdb.dbo.backupset
- msdb.dbo.backupmediafamily
- msdb.dbo.backupmediaset
- Monitoring backup files size per database Supported on:
- SQL Server (all versions) Involved Views and Tables:
- sys.databases
- msdb.dbo.backupset
- msdb.dbo.backupmediafamily
- msdb.dbo.backupmediaset
- msdb.dbo.backupfile
- sys.master_files
- Monitoring individual Azure SQL Database backups Supported on:
- Azure SQL Database Involved Views and Tables:
- sys.db_database_backups
Database files
- Monitoring database files stats Supported on:
- SQL Server (all versions)
- Azure SQL Managed Instance
- Analytics Platform System (PDW) Involved Views and Tables:
- sys.master_files
- Monitoring largest database files on Azure SQL Database Supported on:
- Azure SQL Database Involved Views and Tables:
- sys.database_files
- Monitoring largest database files on other SQL Server types Supported on:
- SQL Server (all versions)
- Azure SQL Managed Instance
- Analytics Platform System (PDW) Involved Views and Tables:
- sys.master_files
Always On
Supported on:
- SQL Server (2016 and later)
Involved Views and Tables:
- sys.availability_groups
- sys.availability_replicas
- sys.availability_databases_cluster
- sys.dm_hadr_availability_group_states
- sys.dm_hadr_availability_replica_states
- sys.dm_hadr_database_replica_states
Jobs
Supported on:
- SQL Server (all versions)
Involved Views and Tables
- msdb.dbo.sysjobs
- msdb.dbo.sysjobsteps
- msdb.dbo.sysjobhistory
- msdb.dbo.sysjobservers
- msdb.dbo.sysjobactivity
- msdb.dbo.systargetservers
- msdb.dbo.syscategories
Required permissions:
Specific permissions required per system view
sys.dm_os_sys_info
- SQL Server (2022 and later)
VIEW SERVER PERFORMANCE STATEpermission.
- SQL Server (up to 2019)
VIEW SERVER STATEpermission.
- Azure SQL Database (Basic, S0, S1 service objectives and for databases in elastic pools)
- Azure SQL Database (All other service objectives)
VIEW DATABASE STATEpermission on the database; or##MS_ServerStateReader##server role.
- Azure SQL Managed Instance
VIEW SERVER STATEpermission.
sys.dm_os_performance_counters
- SQL Server (2022 and later)
VIEW SERVER PERFORMANCE STATEpermission.
- SQL Server (up to 2019)
VIEW SERVER STATEpermission.
- Azure SQL Database (Basic, S0, S1 service objectives and for databases in elastic pools)
- Azure SQL Database (All other service objectives)
VIEW DATABASE STATEpermission on the database; or##MS_ServerStateReader##server role.
- Azure SQL Managed Instance
VIEW SERVER STATEpermission.
sys.databases
- Azure SQL Database
- Connect to
masterdatabase for all databases to be visible. - When connecting to a user database, only the current database and the
masterdatabase are visible.
- Connect to
- Other supported types of SQL Server
- To see just the database extension is connected to:
- No additional permissions are required.
- To see all
ONLINEdatabases:VIEW ANY DATABASE(default permission for the public role)
- To see all
OFFLINEdatabases as well:ALTER ANY DATABASEon server level; orCREATE DATABASEpermission in themasterdatabase.
- To see just the database extension is connected to:
sys.query_store_runtime_stats
- All supported types of SQL Server
VIEW DATABASE STATEpermission.
sys.query_store_plan
- All supported types of SQL Server
VIEW DATABASE STATEpermission.
sys.query_store_query
- All supported types of SQL Server
VIEW DATABASE STATEpermission.
sys.query_store_query_text
- All supported types of SQL Server
VIEW DATABASE STATEpermission.
sys.dm_exec_sessions
- To see the sessions of the user extension connects with:
- No additional permissions are required.
- To see all sessions within the database extension is connected to:
VIEW DATABASE STATEpermission.
- To see all sessions on the server:
- SQL Server (2022 and later)
VIEW SERVER PERFORMANCE STATEpermission.
- SQL Server (up to 2019)
VIEW SERVER STATEpermission.
- SQL Server (2022 and later)
msdb.dbo.backupset
- Available as read-only to any user with public level access to the instance.
msdb.dbo.backupfile
- Available as read-only to any user with public level access to the instance.
msdb.dbo.backupmediafamily
- Available as read-only to any user with public level access to the instance.
msdb.dbo.backupmediaset
- Available as read-only to any user with public level access to the instance.
sys.master_files
- All supported types of SQL Server:
VIEW ANY DEFINITION; orCREATE DATABASE; orALTER ANY DATABASE.
sys.database_files
- All supported types of SQL Server:
- Requires membership in the public role, see Metadata Visibility Configuration.
sys.availability_groups
- All supported types of SQL Server:
VIEW ANY DEFINITIONpermission.
sys.availability_replicas
- All supported types of SQL Server:
VIEW ANY DEFINITIONpermission.
sys.availability_databases_cluster
- All supported types of SQL Server:
- If the user with which extension makes the calls is the owner of the database, no additional permissions are required.
- Otherwise:
VIEW ANY DATABASE; orALTER ANY DATABASE; orCREATE DATABASEpermission inmasteris required.
sys.dm_hadr_availability_group_states
- SQL Server (2022 and later)
VIEW SERVER PERFORMANCE STATEpermission.
- SQL Server (up to 2019)
VIEW SERVER STATEpermission.
sys.dm_hadr_availability_replica_states
- SQL Server (2022 and later)
VIEW SERVER PERFORMANCE STATEpermission.
- SQL Server (up to 2019)
VIEW SERVER STATEpermission.
sys.dm_hadr_database_replica_states
- SQL Server (2022 and later)
VIEW SERVER PERFORMANCE STATEpermission.
- SQL Server (up to 2019)
VIEW SERVER STATEpermission.
sys.db_database_backups
- Azure SQL Database (Basic, S0, S1 service objectives and for databases in elastic pools)
- Server admin account; or
- Microsoft Entra ID admin account; or
- Membership in the
##MS_ServerStateReader##server role.
- Azure SQL Database (All other service objectives)
VIEW DATABASE STATEpermission on the database; or##MS_ServerStateReader##server role.
Потребление лицензии
DDU потребляются по 0,001 DDU из доступной квоты на каждую принятую точку данных. Каждый включенный набор функций увеличивает потребление DDU. Набор функций «по умолчанию» отключить нельзя.
Потребление DDU для каждой метрики (в час) рассчитывается следующим образом: number of unique associated entities * retrieval frequency per hour * 0.001 DDUs per data point
Пример:
- Метрика:
sql-server.databases.backup.size - Связанная сущность: База данных SQL Server
- Количество уникальных связанных сущностей:
- Предположим, мы отслеживаем
2экземпляры, в каждом из которых есть база данных в размере20. - Таким образом, всего существует множество
2 (SQL Server Instances) * 20 (SQL Server Databases in each) = 40уникальных баз данных.
- Предположим, мы отслеживаем
- Частота извлечения в час:
60(метрика извлекается каждую минуту). - Общее потребление DDU для этого показателя в окружающей среде (в час):
40 * 60 * 0.001 = 2.4 DDUs. - Общее потребление DDU для этого показателя в окружающей среде (в год):
2.4 * 24 * 365 = 21,024 DDUs.
Наборы функций
default
sql-server.memory.target- Associated entity: SQL Server Instance
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Instances in environment * 60
sql-server.memory.physical- Associated entity: SQL Server Instance
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Instances in environment * 60
sql-server.databases.state- Associated entity: SQL Server Database
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Databases in environment * 60
sql-server.uptime- Associated entity: SQL Server Instance
- Frequency: 12 times per hour (every 5 minutes)
- Data points per hour:
number of SQL Server Instances in environment * 12
sql-server.databases.transactions.count- Associated entity: SQL Server Database
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Databases in environment * 60
sql-server.memory.total- Associated entity: SQL Server Instance
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Instances in environment * 60
sql-server.cpu.kernelTime.count- Associated entity: SQL Server Instance
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Instances in environment * 60
sql-server.general.userConnections- Associated entity: SQL Server Instance
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Instances in environment * 60
sql-server.general.processesBlocked- Associated entity: SQL Server Instance
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Instances in environment * 60
sql-server.general.logins.count- Associated entity: SQL Server Instance
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Instances in environment * 60
sql-server.cpu.userTime.count- Associated entity: SQL Server Instance
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Instances in environment * 60
sql-server.memory.virtual- Associated entity: SQL Server Instance
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Instances in environment * 60
sql-server.host.cpus- Associated entity: SQL Server Host
- Frequency: 12 times per hour (every 5 minutes)
- Data points per hour:
number of SQL Server Hosts in environment * 12
Always On
sql-server.always-on.ag.secondaryRecoveryHealth- Associated entity: SQL Server Availability Group
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Availability Groups in environment * 60
sql-server.always-on.ag.primaryRecoveryHealth- Associated entity: SQL Server Availability Group
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Availability Groups in environment * 60
sql-server.always-on.ar.failoverMode- Associated entity: SQL Server Availability Replica
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Availability Replicas in environment * 60
sql-server.always-on.ag.synchronizationHealth- Associated entity: SQL Server Availability Group
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Availability Groups in environment * 60
sql-server.always-on.ar.operationalState- Associated entity: SQL Server Availability Replica
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Availability Replicas in environment * 60
sql-server.always-on.ar.connectedState- Associated entity: SQL Server Availability Replica
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Availability Replicas in environment * 60
sql-server.always-on.db.filestreamSendRate- Associated entity: SQL Server Availability Database
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Availability Databases in environment * 60
sql-server.always-on.db.state- Associated entity: SQL Server Availability Database
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Availability Databases in environment * 60
sql-server.always-on.db.synchronizationHealth- Associated entity: SQL Server Availability Database
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Availability Databases in environment * 60
sql-server.always-on.db.logSendQueueSize- Associated entity: SQL Server Availability Database
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Availability Databases in environment * 60
sql-server.always-on.ar.role- Associated entity: SQL Server Availability Replica
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Availability Replicas in environment * 60
sql-server.always-on.db.synchronizationState- Associated entity: SQL Server Availability Database
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Availability Databases in environment * 60
sql-server.always-on.db.redoRate- Associated entity: SQL Server Availability Database
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Availability Databases in environment * 60
sql-server.always-on.db.redoQueueSize- Associated entity: SQL Server Availability Database
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Availability Databases in environment * 60
sql-server.always-on.ar.synchronizationHealth- Associated entity: SQL Server Availability Replica
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Availability Replicas in environment * 60
sql-server.always-on.db.logSendRate- Associated entity: SQL Server Availability Database
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Availability Databases in environment * 60
sql-server.always-on.ar.availabilityMode- Associated entity: SQL Server Availability Replica
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Availability Replicas in environment * 60
sql-server.always-on.ag.automatedBackupPreference- Associated entity: SQL Server Availability Group
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Availability Groups in environment * 60
sql-server.always-on.ar.isLocal- Associated entity: SQL Server Availability Replica
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Availability Replicas in environment * 60
sql-server.always-on.ar.recoveryHealth- Associated entity: SQL Server Availability Replica
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Availability Replicas in environment * 60
Backups
sql-server.databases.backup.age- Associated entity: SQL Server Database
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Databases in environment * 60
sql-server.databases.backup.size- Associated entity: SQL Server Database
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Databases in environment * 60
Database files
sql-server.databases.file.emptySpace- Associated entity: SQL Server Database
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Databases in environment * 60
sql-server.databases.file.size- Associated entity: SQL Server Database
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Databases in environment * 60
sql-server.databases.file.usedSpace- Associated entity: SQL Server Database
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Databases in environment * 60
largest_files- Associated Entity: SQL Server Instance
- Frequency: 12 times per hour (Every 5 minutes)
- Data points per hour:
Up to 100 (num of files) * 12 * avg log size
Latches
sql-server.latches.waits.count- Associated entity: SQL Server Instance
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Instances in environment * 60
sql-server.latches.averageWaitTime.count- Associated entity: SQL Server Instance
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Instances in environment * 60
Locks
sql-server.locks.timeouts.count- Associated entity: SQL Server Instance
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Instances in environment * 60
sql-server.locks.waits.count- Associated entity: SQL Server Instance
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Instances in environment * 60
sql-server.locks.waitTime.count- Associated entity: SQL Server Instance
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Instances in environment * 60
sql-server.locks.deadlocks.count- Associated entity: SQL Server Instance
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Instances in environment * 60
Memory
sql-server.buffers.checkpointPages.count- Associated entity: SQL Server Instance
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Instances in environment * 60
sql-server.memory.grantsOutstanding- Associated entity: SQL Server Instance
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Instances in environment * 60
sql-server.memory.connection- Associated entity: SQL Server Instance
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Instances in environment * 60
sql-server.buffers.pageWrites.count- Associated entity: SQL Server Instance
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Instances in environment * 60
sql-server.buffers.pageLifeExpectancy- Associated entity: SQL Server Instance
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Instances in environment * 60
sql-server.memory.grantsPending- Associated entity: SQL Server Instance
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Instances in environment * 60
sql-server.buffers.cacheHitRatio- Associated entity: SQL Server Instance
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Instances in environment * 60
sql-server.buffers.freeListStalls.count- Associated entity: SQL Server Instance
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Instances in environment * 60
sql-server.buffers.pageReads.count- Associated entity: SQL Server Instance
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Instances in environment * 60
Queries
sql-server.sql.recompilations.count- Associated entity: SQL Server Instance
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Instances in environment * 60
sql-server.sql.compilations.count- Associated entity: SQL Server Instance
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Instances in environment * 60
sql-server.sql.batchRequests.count- Associated entity: SQL Server Instance
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Instances in environment * 60
longest_queries- Associated Entity: SQL Server Instance
- Frequency: 12 times per hour (Every 5 minutes)
- Data points per hour:
Up to 100 (num of queries) * 12 * avg log size
instance_locks_wait_time_type- Associated entity: SQL Server Instance
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Instances in environment * 60
Replication
sql-server.replica.bytesSentToTransport.count- Associated entity: SQL Server Instance
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Instances in environment * 60
sql-server.replica.sends.count- Associated entity: SQL Server Instance
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Instances in environment * 60
sql-server.replica.sendsToTransport.count- Associated entity: SQL Server Instance
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Instances in environment * 60
sql-server.replica.bytesReceived.count- Associated entity: SQL Server Instance
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Instances in environment * 60
sql-server.replica.bytesSent.count- Associated entity: SQL Server Instance
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Instances in environment * 60
sql-server.replica.resentMessages.count- Associated entity: SQL Server Instance
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Instances in environment * 60
sql-server.replica.receives.count- Associated entity: SQL Server Instance
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Instances in environment * 60
Sessions
sql-server.sessions- Associated entity: SQL Server Instance
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Instances in environment * 60
Transaction logs
sql-server.databases.log.flushWaits.count- Associated entity: SQL Server Database
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Databases in environment * 60
sql-server.databases.log.filesUsedSize- Associated entity: SQL Server Database
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Databases in environment * 60
sql-server.databases.log.growths.count- Associated entity: SQL Server Database
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Databases in environment * 60
sql-server.databases.log.truncations.count- Associated entity: SQL Server Database
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Databases in environment * 60
sql-server.databases.log.shrinks.count- Associated entity: SQL Server Database
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Databases in environment * 60
sql-server.databases.log.filesSize- Associated entity: SQL Server Database
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Databases in environment * 60
sql-server.databases.log.percentUsed- Associated entity: SQL Server Database
- Frequency: 60 times per hour (every 1 minute)
- Data points per hour:
number of SQL Server Databases in environment * 60
Jobs
current_jobs- Associated Entity: SQL Server Instance
- Frequency: 12 times per hour (Every 5 minutes)
- Data points per hour:
Number of currently enabled jobs * 12 * avg log size
failed_jobs- Associated Entity: SQL Server Instance
- Frequency: 12 times per hour (Every 5 minutes)
- Data points per hour:
top 100 failed jobs * 12 * avg log size
Locks and waits
all_requests- Associated Entity: SQL Server Instance
- Frequency: 60 times per hour (Every 1 minute)
- Data points per hour:
avg Number of active requests * 60 * avg log size
- note on
current_jobs,failed_jobs,longest_queries,all_requests, andlargest_files: Эти метрики основаны на данных логов. Поскольку каждая среда отличается, расчет необходимо выполнять на стороне клиента. Затем рассчитайте объем полученных данных. В настоящее время на каждый загруженный ГБ потребляется 100 DDU. См. модель потребления DDU для управления логами и аналитики в документации. Если вы используете Log Monitoring Classic: каждая запись логов (строка, сообщение, запись) вычитает 0,005 DDU из доступной квоты. См. DDU для Log Monitoring Classic в документации.
Ограничения
Агрегированные показатели для файлов базы данных
Две метрики ниже
sql-server.databases.file.usedSpacesql-server.databases.file.emptySpace
Данные выводятся только для той базы данных, к которой в данный момент подключено расширение. Это связано с тем, что в отчете sys.allocation_units содержится информация только об используемых страницах той базы данных, которая в данный момент используется в рамках подключения.
Самые загруженные запросы
- Самые популярные запросы собираются только для одной базы данных.
- Невозможно собрать самые популярные запросы для базы данных
master(ограничение самого SQL Server).
Резервные копии Azure
Резервные копии Azure отслеживаются путем запроса представления sys.db_database_backups, которое в настоящее время доступно для всех уровней служб базы данных SQL Azure, за исключением Hyperscaler.
Always On
Чтобы получить информацию о каждой реплике в заданной группе доступности, подключите расширение к экземпляру сервера, на котором размещена первичная реплика. При подключении к экземпляру сервера, на котором размещена вторичная реплика группы доступности, расширение возвращает только локальную информацию для этой группы доступности.
При подключении к вторичной реплике расширение получает данные о состоянии каждой вторичной базы данных на экземпляре сервера. На первичной реплике расширение возвращает данные для каждой первичной базы данных и для соответствующей вторичной базы данных.
В зависимости от действия и состояний более высокого уровня информация о состоянии базы данных может быть недоступна или устаревшей. Более того, значения имеют только локальную значимость. См. ограничения sys.dm_hadr_database_replica_states .
При добавлении базы данных в группу доступности первичная база данных автоматически присоединяется к ней. Вторичные базы данных необходимо вручную подготовить на каждой вторичной реплике, прежде чем их можно будет присоединить к группе доступности.
Если локальный экземпляр сервера не может взаимодействовать с отказоустойчивым кластером WSFC, например, из-за отказа кластера или потери кворума, возвращаются только строки для локальных реплик доступности. Эти строки будут содержать только те столбцы данных, которые локально кэшируются в метаданных.
Поиск неисправностей
- Чтобы устранить неполадки этого расширения, воспользуйтесь руководством(ями) в сообществе Ключ-АСТРОМ.
Часто задаваемые вопросы
Как расширение влияет на целевую базу данных?
- Расширение выполняет только запросы
SELECTдля получения данных мониторинга. База данных никогда не изменяется и не блокируется. - Расширение запрашивает только системные
sys.*представления и базу данныхmsdb(при необходимости). Пользовательские базы данных и объекты остаются неизменными. - Все выполненные запросы являются статическими и кэшируются в целевой базе данных после их первого выполнения.
- Даже при включении всех наборов функций влияние расширения на каждую целевую базу данных незначительно.
Как рассчитать АктивныеШлюзы для этого расширения?
- Каждая конфигурация мониторинга автоматически назначается АктивнымШлюзом в назначенной группе АктивныхШлюзов.
- Все конечные точки в рамках одной конфигурации мониторинга выполняются на одном АктивномШлюзе.
- Миграция конфигурации мониторинга при отказе выполняется автоматически в случае выхода из строя одного из АктивногоШлюза. Миграция выполняется только в пределах одной группы АктивногоШлюза.
- Каждая конфигурация мониторинга может обрабатывать сотни активных конечных точек одновременно на одном АктивномШлюзе с 2 vCPU и 4 ГБ ОЗУ.
- Количество создаваемых конфигураций мониторинга ограничено. Гораздо более производительно и эффективно использовать ресурсы, если в одной конфигурации мониторинга находится много конечных точек, чем создавать слишком много конфигураций.
Существуют ли какие-либо особенности при мониторинге кластеров Always On?
- При мониторинге кластера Always On рекомендуется создать две отдельные конфигурации мониторинга:
- Первая конфигурация мониторинга, в которой включен только набор функций «Always On» и подключены исключительно к первичным репликам внутри кластера.
- Вторая конфигурация мониторинга со всеми включенными наборами функций, за исключением «Always On» (отключена во второй конфигурации мониторинга) с подключением ко всем экземплярам в кластере.
- Такая конфигурация гарантирует, что для каждого экземпляра кластера будет обеспечена полная наблюдаемость инфраструктуры, а данные, относящиеся к Always On, будут надежно собираться с первичных реплик.
- Рекомендуется создать отдельную конфигурацию мониторинга для кластеров Always On и создавать конечные точки только для первичных реплик. Из-за встроенных ограничений Always On вторичные реплики не имеют полной информации обо всем кластере Always On, к которому они принадлежат.
- Подключение к первичной и вторичной реплике в одном кластере Always On при включенном наборе функций «Always On» для обеих реплик приведет к дублированию показателей, а также к искажению мониторинга и крайне не рекомендуется.
Какие схемы аутентификации поддерживаются?
- Поддерживаются следующие типы аутентификации
- Basic authentication
- Kerberos
- NTLM
Поддерживаются ли самоподписанные SSL-сертификаты и хранилища доверенных сертификатов PKCS12?
- Да, сертификаты, подписанные с использованием непубличной цепочки подписей, должны быть добавлены в доверенное хранилище.
- Если сертификат шифрования создается с использованием непублично проверяемого центра сертификации, этот центр сертификации должен быть известен АктивномуШлюзу.
- Пошаговые инструкции см. в разделе Инструкции по добавлению хранилища доверенных сертификатов.
Для чего нужно поле метаданных конечной точки?
- При добавлении текста в это поле каждый экземпляр SQL Server, созданный этой конфигурацией мониторинга, изменяет свой раздел свойств, добавляя эту информацию к сущности.
Как добавить пользовательские интервалы?
- Добавлены два поля
query interval. Если вы хотите, чтобы запросы длительностью в 1 минуту выполнялись с интервалом более 1 минуты, например, каждые 10 минут, введите в это полеheavy query intervalчисло 10. - Поле ввода
heavy query intervalработает так же, за исключением того, что вы меняете частоту запросов, которые запускаются каждые 5 минут. - Для получения более подробной информации см. описание под каждым полем ввода, в котором объясняется, на какие запросы это влияет.
Как просмотреть мои блокировки и ожидания?
- Включите набор функций
Locks and waits. Если вы используете SaaS-решение, у вас появится новая панель управления для просмотра этих данных в едином организованном окне. Если вы используете управляемое решение, вы будете получать журналы и просматривать запросы с блокировками или ожиданиями.