You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4753 lines
200 KiB
4753 lines
200 KiB
zabbix_export:
|
|
version: '7.0'
|
|
template_groups:
|
|
- uuid: 748ad4d098d447d492bb935c907f652f
|
|
name: Templates/Databases
|
|
templates:
|
|
- uuid: 001a1677f6a949b6bddfdb2926023300
|
|
template: 'MSSQL by ODBC'
|
|
name: 'MSSQL by ODBC'
|
|
description: |
|
|
1. Create an MSSQL user for monitoring.
|
|
View Server State and View Any Definition permissions should be granted to the user.
|
|
Grant this user read permissions to the sysjobschedules, sysjobhistory, sysjobs tables.
|
|
For more information, see MSSQL documentation.
|
|
2. Set the user name and password in host macros ({$MSSQL.USER} and {$MSSQL.PASSWORD}).
|
|
Do not forget to install Microsoft ODBC driver on Zabbix server or Zabbix proxy.
|
|
See Microsoft documentation for instructions: https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver16.
|
|
Note! Credentials in the odbc.ini do not work for MSSQL.
|
|
3. For named instance set the value of {$MSSQL.INSTANCE} macro as MSSQL$instance name.
|
|
The "Service's TCP port state" item uses {HOST.CONN} and {$MSSQL.PORT} macros to check the availability of the MSSQL instance.
|
|
|
|
Generated by official Zabbix template tool "Templator" 2.0.0
|
|
vendor:
|
|
name: Zabbix
|
|
version: 7.0-0
|
|
groups:
|
|
- name: Templates/Databases
|
|
items:
|
|
- uuid: cae1f9b034b04357b038212b04cac794
|
|
name: 'MSSQL: Get job status'
|
|
type: ODBC
|
|
key: 'db.odbc.get[get_job_status,"{$MSSQL.DSN}"]'
|
|
delay: 10m
|
|
history: '0'
|
|
trends: '0'
|
|
value_type: TEXT
|
|
params: |
|
|
SELECT sj.name AS JobName,
|
|
sj.enabled AS Enabled,
|
|
sjs.last_run_outcome AS RunStatus,
|
|
sjs.last_outcome_message AS LastRunStatusMessage,
|
|
sjs.last_run_duration/10000*3600 + sjs.last_run_duration/100%100*60 + sjs.last_run_duration%100 AS RunDuration,
|
|
CASE sjs.last_run_date
|
|
WHEN 0 THEN NULL
|
|
ELSE msdb.dbo.agent_datetime(sjs.last_run_date,sjs.last_run_time)
|
|
END AS LastRunDateTime,
|
|
sja.next_scheduled_run_date AS NextRunDateTime
|
|
FROM msdb..sysjobs AS sj
|
|
LEFT JOIN msdb..sysjobservers AS sjs
|
|
ON sj.job_id = sjs.job_id
|
|
LEFT JOIN (
|
|
SELECT job.job_id,
|
|
max(act.session_id) AS s_id,
|
|
max(act.next_scheduled_run_date) AS next_scheduled_run_date
|
|
FROM msdb..sysjobs AS job
|
|
LEFT JOIN msdb..sysjobactivity AS act
|
|
ON act.job_id = job.job_id
|
|
GROUP BY job.job_id ) AS sja
|
|
ON sja.job_id = sj.job_id
|
|
WHERE Enabled = 1
|
|
username: '{$MSSQL.USER}'
|
|
password: '{$MSSQL.PASSWORD}'
|
|
description: 'The item gets sql agent job status.'
|
|
tags:
|
|
- tag: component
|
|
value: raw
|
|
- uuid: 9b106ca122fb4b75a761e80f4239f906
|
|
name: 'MSSQL: Get last backup'
|
|
type: ODBC
|
|
key: 'db.odbc.get[get_last_backup,"{$MSSQL.DSN}"]'
|
|
delay: 10m
|
|
history: '0'
|
|
trends: '0'
|
|
value_type: TEXT
|
|
params: |
|
|
SELECT bs.database_name as dbname,
|
|
[type],
|
|
DATEDIFF(SECOND, bs.backup_finish_date, getdate()) as timesincelastbackup,
|
|
(DATEDIFF(SECOND, bs.backup_start_date, bs.backup_finish_date)) as duration
|
|
FROM msdb.dbo.backupset as bs
|
|
WHERE bs.database_name not in (
|
|
SELECT AGDatabases.database_name AS Databasename
|
|
FROM sys.dm_hadr_availability_group_states States
|
|
INNER JOIN master.sys.availability_groups Groups
|
|
ON States.group_id = Groups.group_id
|
|
INNER JOIN sys.availability_databases_cluster AGDatabases
|
|
ON Groups.group_id = AGDatabases.group_id
|
|
WHERE primary_replica != @@Servername OR primary_replica is NULL
|
|
)
|
|
GROUP BY bs.database_name,
|
|
backup_finish_date,
|
|
[type],
|
|
backup_start_date
|
|
HAVING backup_finish_date = (
|
|
SELECT MAX(backup_finish_date)
|
|
FROM msdb.dbo.backupset
|
|
WHERE database_name = bs.database_name
|
|
AND bs.type = [type]
|
|
)
|
|
ORDER BY bs.database_name
|
|
username: '{$MSSQL.USER}'
|
|
password: '{$MSSQL.PASSWORD}'
|
|
description: 'The item gets information about backup processes.'
|
|
tags:
|
|
- tag: component
|
|
value: raw
|
|
- uuid: ff07b83d161c4e0fbddf8c2e2c282258
|
|
name: 'MSSQL: Get performance counters'
|
|
type: ODBC
|
|
key: 'db.odbc.get[get_status_variables,"{$MSSQL.DSN}"]'
|
|
delay: 0;m0-59
|
|
history: '0'
|
|
trends: '0'
|
|
value_type: TEXT
|
|
params: |
|
|
SELECT object_name,
|
|
counter_name,
|
|
instance_name,
|
|
cntr_value
|
|
FROM sys.dm_os_performance_counters
|
|
UNION SELECT '{$MSSQL.INSTANCE}' AS object_name,
|
|
'Version' AS counter_name,
|
|
@@version AS instance_name,
|
|
0 AS cntr_value
|
|
UNION SELECT '{$MSSQL.INSTANCE}' AS object_name,
|
|
'Uptime' AS counter_name,
|
|
'' AS instance_name,
|
|
DATEDIFF(second, sqlserver_start_time, GETDATE()) AS cntr_value
|
|
FROM sys.dm_os_sys_info
|
|
UNION SELECT '{$MSSQL.INSTANCE}:Databases' AS object_name,
|
|
'State' AS counter_name,
|
|
name AS instance_name,
|
|
state AS cntr_value
|
|
FROM sys.databases
|
|
UNION SELECT a.object_name,
|
|
'BufferCacheHitRatio' AS counter_name,
|
|
'' AS instance_name,
|
|
cast(a.cntr_value * ISNULL((100.0 / NULLIF(b.cntr_value,0)),0) AS dec(3, 0)) AS cntr_value
|
|
FROM sys.dm_os_performance_counters a
|
|
JOIN (
|
|
SELECT cntr_value,
|
|
OBJECT_NAME
|
|
FROM sys.dm_os_performance_counters
|
|
WHERE counter_name = 'Buffer cache hit ratio base'
|
|
AND OBJECT_NAME = '{$MSSQL.INSTANCE}:Buffer Manager'
|
|
) b
|
|
ON a.OBJECT_NAME = b.OBJECT_NAME
|
|
WHERE a.counter_name = 'Buffer cache hit ratio'
|
|
AND a.OBJECT_NAME = '{$MSSQL.INSTANCE}:Buffer Manager'
|
|
UNION SELECT a.object_name,
|
|
'WorktablesFromCacheRatio' AS counter_name,
|
|
'' AS instance_name,
|
|
cast(a.cntr_value * ISNULL((100.0 / NULLIF(b.cntr_value,0)),0) AS dec(3, 0)) AS cntr_value
|
|
FROM sys.dm_os_performance_counters a
|
|
JOIN (
|
|
SELECT cntr_value,
|
|
OBJECT_NAME
|
|
FROM sys.dm_os_performance_counters
|
|
WHERE counter_name = 'Worktables From Cache Base'
|
|
AND OBJECT_NAME = '{$MSSQL.INSTANCE}:Access Methods'
|
|
) b
|
|
ON a.OBJECT_NAME = b.OBJECT_NAME
|
|
WHERE a.counter_name = 'Worktables From Cache Ratio'
|
|
AND a.OBJECT_NAME = '{$MSSQL.INSTANCE}:Access Methods'
|
|
UNION SELECT a.object_name,
|
|
'CacheHitRatio' AS counter_name,
|
|
'_Total' AS instance_name,
|
|
cast(a.cntr_value * ISNULL((100.0 / NULLIF(b.cntr_value,0)),0) AS dec(3, 0)) AS cntr_value
|
|
FROM sys.dm_os_performance_counters a
|
|
JOIN (
|
|
SELECT cntr_value,
|
|
OBJECT_NAME
|
|
FROM sys.dm_os_performance_counters
|
|
WHERE counter_name = 'Cache Hit Ratio base'
|
|
AND OBJECT_NAME = '{$MSSQL.INSTANCE}:Plan Cache'
|
|
AND instance_name = '_Total'
|
|
) b
|
|
ON a.OBJECT_NAME = b.OBJECT_NAME
|
|
WHERE a.counter_name = 'Cache Hit Ratio'
|
|
AND a.OBJECT_NAME = '{$MSSQL.INSTANCE}:Plan Cache'
|
|
AND instance_name = '_Total'
|
|
username: '{$MSSQL.USER}'
|
|
password: '{$MSSQL.PASSWORD}'
|
|
description: 'The item gets server global status information.'
|
|
tags:
|
|
- tag: component
|
|
value: raw
|
|
- uuid: c0400032a74549078448a928f17d3128
|
|
name: 'MSSQL: Get Access Methods counters'
|
|
type: DEPENDENT
|
|
key: mssql.access_methods.raw
|
|
delay: '0'
|
|
history: '0'
|
|
trends: '0'
|
|
value_type: TEXT
|
|
description: 'The item gets server information about access methods.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.object_name==''{$MSSQL.INSTANCE}:Access Methods'')]'
|
|
error_handler: DISCARD_VALUE
|
|
master_item:
|
|
key: 'db.odbc.get[get_status_variables,"{$MSSQL.DSN}"]'
|
|
tags:
|
|
- tag: component
|
|
value: raw
|
|
- uuid: 9a83826b50ac4928b9a716cf94ed6b61
|
|
name: 'MSSQL: Auto-param attempts per second'
|
|
type: DEPENDENT
|
|
key: mssql.autoparam_attempts_sec.rate
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
description: 'Number of auto-parameterization attempts per second. The total should be the sum of the failed, safe, and unsafe auto-parameterizations. Auto-parameterization occurs when an instance of SQL Server tries to parameterize a Transact-SQL request by replacing some literals with parameters to me reuse of the resulting cached execution plan across multiple similar-looking requests possible. Note that auto-parameterizations are also known as simple parameterizations in the newer versions of SQL Server. This counter does not include forced parameterizations.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Auto-Param Attempts/sec'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: mssql.sql_statistics.raw
|
|
tags:
|
|
- tag: component
|
|
value: performance
|
|
- uuid: 1d49af2907d541719e4482439de3ef40
|
|
name: 'MSSQL: Average latch wait time'
|
|
type: CALCULATED
|
|
key: mssql.average_latch_wait_time
|
|
delay: 0;m0-59s3
|
|
history: 7d
|
|
value_type: FLOAT
|
|
units: ms
|
|
params: |
|
|
(last(//mssql.average_latch_wait_time_raw) - last(//mssql.average_latch_wait_time_raw,#2)) /
|
|
(last(//mssql.average_latch_wait_time_base) - last(//mssql.average_latch_wait_time_base,#2) +
|
|
(last(//mssql.average_latch_wait_time_base) - last(//mssql.average_latch_wait_time_base,#2)=0))
|
|
description: 'Average latch wait time (in milliseconds) for latch requests that had to wait.'
|
|
tags:
|
|
- tag: component
|
|
value: wait-time
|
|
- uuid: f9d78cd9c941471287a24ca94005e9ac
|
|
name: 'MSSQL: Average latch wait time base'
|
|
type: DEPENDENT
|
|
key: mssql.average_latch_wait_time_base
|
|
delay: '0'
|
|
history: 7d
|
|
description: 'For internal use only.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Average Latch Wait Time Base'')].cntr_value.first()'
|
|
master_item:
|
|
key: mssql.latches_info.raw
|
|
tags:
|
|
- tag: component
|
|
value: wait-time
|
|
- uuid: 7248e70669674ef5a7a85deb20b1fe8e
|
|
name: 'MSSQL: Average latch wait time raw'
|
|
type: DEPENDENT
|
|
key: mssql.average_latch_wait_time_raw
|
|
delay: '0'
|
|
history: 7d
|
|
units: ms
|
|
description: 'Average latch wait time (in milliseconds) for latch requests that had to wait.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Average Latch Wait Time (ms)'')].cntr_value.first()'
|
|
master_item:
|
|
key: mssql.latches_info.raw
|
|
tags:
|
|
- tag: component
|
|
value: wait-time
|
|
- uuid: 2915866b5891480aafd73463aca88a21
|
|
name: 'MSSQL: Total average wait time'
|
|
type: CALCULATED
|
|
key: mssql.average_wait_time
|
|
delay: 0;m0-59s3
|
|
history: 7d
|
|
value_type: FLOAT
|
|
units: ms
|
|
params: |
|
|
(last(//mssql.average_wait_time_raw) - last(//mssql.average_wait_time_raw,#2)) /
|
|
(last(//mssql.average_wait_time_base) - last(//mssql.average_wait_time_base,#2) +
|
|
(last(//mssql.average_wait_time_base) - last(//mssql.average_wait_time_base,#2)=0))
|
|
description: 'The average wait time, in milliseconds, for each lock request that had to wait.'
|
|
tags:
|
|
- tag: component
|
|
value: wait-time
|
|
triggers:
|
|
- uuid: fad2c1e9d0ba45bcbb47ccbb327f0b98
|
|
expression: 'min(/MSSQL by ODBC/mssql.average_wait_time,5m)>{$MSSQL.AVERAGE_WAIT_TIME.MAX}'
|
|
name: 'MSSQL: Total average wait time for locks is high'
|
|
event_name: 'MSSQL: Total average wait time for locks is high (over {$MSSQL.AVERAGE_WAIT_TIME.MAX}ms for 5m)'
|
|
priority: WARNING
|
|
description: 'An average wait time longer than 500ms may indicate excessive blocking. This value should generally correlate to ''Lock Waits/sec'' and move up or down with it accordingly.'
|
|
tags:
|
|
- tag: scope
|
|
value: performance
|
|
- uuid: 2a63096aa40a4374bdd7426b9fe0767e
|
|
name: 'MSSQL: Total average wait time base'
|
|
type: DEPENDENT
|
|
key: mssql.average_wait_time_base
|
|
delay: '0'
|
|
history: 7d
|
|
description: 'For internal use only.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Average Wait Time Base'')].cntr_value.first()'
|
|
master_item:
|
|
key: mssql.locks_info.raw
|
|
tags:
|
|
- tag: component
|
|
value: wait-time
|
|
- uuid: f0cd7858dabf4b7da93314dc9a8ddeaa
|
|
name: 'MSSQL: Total average wait time raw'
|
|
type: DEPENDENT
|
|
key: mssql.average_wait_time_raw
|
|
delay: '0'
|
|
history: 7d
|
|
units: ms
|
|
description: 'Average amount of wait time (in milliseconds) for each lock request that resulted in a wait. Information for all locks.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Average Wait Time (ms)'')].cntr_value.first()'
|
|
master_item:
|
|
key: mssql.locks_info.raw
|
|
tags:
|
|
- tag: component
|
|
value: wait-time
|
|
- uuid: 00b6e46811fd43a396e2a38dd976d220
|
|
name: 'MSSQL: Batch requests per second'
|
|
type: DEPENDENT
|
|
key: mssql.batch_requests_sec.rate
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
units: rps
|
|
description: 'Number of Transact-SQL command batches received per second. This statistic is affected by all constraints (such as I/O, number of users, cache size, complexity of requests, and so on). High batch requests mean good throughput.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Batch Requests/sec'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: mssql.sql_statistics.raw
|
|
tags:
|
|
- tag: component
|
|
value: performance
|
|
- uuid: ed950d204a1f40a6925856828c7807aa
|
|
name: 'MSSQL: Buffer cache hit ratio'
|
|
type: DEPENDENT
|
|
key: mssql.buffer_cache_hit_ratio
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
units: '%'
|
|
description: 'Indicates the percentage of pages found in the buffer cache without having to read from disk. The ratio is the total number of cache hits divided by the total number of cache lookups over the last few thousand page accesses. After a long period of time, the ratio changes very little. Since reading from the cache is much less expensive than reading from the disk, a higher value is preferred for this item. To increase the buffer cache hit ratio, consider increasing the amount of memory available to SQL Server or using the buffer pool extension feature.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''BufferCacheHitRatio'')].cntr_value.first()'
|
|
master_item:
|
|
key: mssql.buffer_manager.raw
|
|
tags:
|
|
- tag: component
|
|
value: cache
|
|
triggers:
|
|
- uuid: f84fa297023a4aee903e4d32bbad9360
|
|
expression: 'max(/MSSQL by ODBC/mssql.buffer_cache_hit_ratio,5m)<{$MSSQL.BUFFER_CACHE_RATIO.MIN.CRIT}'
|
|
name: 'MSSQL: Percentage of the buffer cache efficiency is low'
|
|
event_name: 'MSSQL: Percentage of the buffer cache efficiency is low (below {$MSSQL.BUFFER_CACHE_RATIO.MIN.CRIT}% for 5m)'
|
|
priority: HIGH
|
|
description: 'Too low buffer cache hit ratio.'
|
|
tags:
|
|
- tag: scope
|
|
value: performance
|
|
- uuid: 42e5bf05da06425282134d3cf806d023
|
|
expression: 'max(/MSSQL by ODBC/mssql.buffer_cache_hit_ratio,5m)<{$MSSQL.BUFFER_CACHE_RATIO.MIN.WARN}'
|
|
name: 'MSSQL: Percentage of the buffer cache efficiency is low'
|
|
event_name: 'MSSQL: Percentage of the buffer cache efficiency is low (below {$MSSQL.BUFFER_CACHE_RATIO.MIN.WARN}% for 5m)'
|
|
priority: WARNING
|
|
description: 'Low buffer cache hit ratio.'
|
|
dependencies:
|
|
- name: 'MSSQL: Percentage of the buffer cache efficiency is low'
|
|
expression: 'max(/MSSQL by ODBC/mssql.buffer_cache_hit_ratio,5m)<{$MSSQL.BUFFER_CACHE_RATIO.MIN.CRIT}'
|
|
tags:
|
|
- tag: scope
|
|
value: performance
|
|
- uuid: eadb0b4b4eed412c9a29137a2f4232fd
|
|
name: 'MSSQL: Get Buffer Manager counters'
|
|
type: DEPENDENT
|
|
key: mssql.buffer_manager.raw
|
|
delay: '0'
|
|
history: '0'
|
|
trends: '0'
|
|
value_type: TEXT
|
|
description: 'The item gets server information about buffer pool.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.object_name==''{$MSSQL.INSTANCE}:Buffer Manager'')]'
|
|
error_handler: DISCARD_VALUE
|
|
master_item:
|
|
key: 'db.odbc.get[get_status_variables,"{$MSSQL.DSN}"]'
|
|
tags:
|
|
- tag: component
|
|
value: raw
|
|
- uuid: 1900fc83a4d74c599f5f3438450b5d8b
|
|
name: 'MSSQL: Cache hit ratio'
|
|
type: DEPENDENT
|
|
key: mssql.cache_hit_ratio
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
units: '%'
|
|
description: 'Ratio between cache hits and lookups.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''CacheHitRatio'')].cntr_value.first()'
|
|
master_item:
|
|
key: mssql.cache_info.raw
|
|
tags:
|
|
- tag: component
|
|
value: cache
|
|
- uuid: b9bab8e37b9c46acbf9c64073bfcf0e6
|
|
name: 'MSSQL: Get Cache counters'
|
|
type: DEPENDENT
|
|
key: mssql.cache_info.raw
|
|
delay: '0'
|
|
history: '0'
|
|
trends: '0'
|
|
value_type: TEXT
|
|
description: 'The item gets server information about cache.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.object_name==''{$MSSQL.INSTANCE}:Plan Cache'' && @.instance_name==''_Total'')]'
|
|
error_handler: DISCARD_VALUE
|
|
master_item:
|
|
key: 'db.odbc.get[get_status_variables,"{$MSSQL.DSN}"]'
|
|
tags:
|
|
- tag: component
|
|
value: raw
|
|
- uuid: 064e1279ae0a4260ab02c08cd3c3f77d
|
|
name: 'MSSQL: Cache objects in use'
|
|
type: DEPENDENT
|
|
key: mssql.cache_objects_in_use
|
|
delay: '0'
|
|
history: 7d
|
|
description: 'Number of cache objects in use.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Cache Objects in use'')].cntr_value.first()'
|
|
master_item:
|
|
key: mssql.cache_info.raw
|
|
tags:
|
|
- tag: component
|
|
value: cache
|
|
- uuid: de8c0d7f9c0b42438560dc28e47fdd19
|
|
name: 'MSSQL: Cache object counts'
|
|
type: DEPENDENT
|
|
key: mssql.cache_object_counts
|
|
delay: '0'
|
|
history: 7d
|
|
description: 'Number of cache objects in the cache.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Cache Object Counts'')].cntr_value.first()'
|
|
master_item:
|
|
key: mssql.cache_info.raw
|
|
tags:
|
|
- tag: component
|
|
value: cache
|
|
- uuid: ae2d22cd04ed452dbdb04ae3f71b8586
|
|
name: 'MSSQL: Cache pages'
|
|
type: DEPENDENT
|
|
key: mssql.cache_pages
|
|
delay: '0'
|
|
history: 7d
|
|
description: 'Number of 8-kilobyte (KB) pages used by cache objects.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Cache Pages'')].cntr_value.first()'
|
|
master_item:
|
|
key: mssql.cache_info.raw
|
|
tags:
|
|
- tag: component
|
|
value: cache
|
|
- tag: component
|
|
value: page
|
|
- uuid: d72b6aadab0c4d6d83bc72da0ce661c3
|
|
name: 'MSSQL: Checkpoint pages per second'
|
|
type: DEPENDENT
|
|
key: mssql.checkpoint_pages_sec.rate
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
description: 'Indicates the number of pages flushed to disk per second by a checkpoint or other operation which required all dirty pages to be flushed.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Checkpoint pages/sec'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: mssql.buffer_manager.raw
|
|
tags:
|
|
- tag: component
|
|
value: page
|
|
- tag: component
|
|
value: performance
|
|
- uuid: 9c1ca822375644669821fe1bea4c5f2a
|
|
name: 'MSSQL: Database pages'
|
|
type: DEPENDENT
|
|
key: mssql.database_pages
|
|
delay: '0'
|
|
history: 7d
|
|
description: 'Indicates the number of pages in the buffer pool with database content.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Database pages'')].cntr_value.first()'
|
|
master_item:
|
|
key: mssql.buffer_manager.raw
|
|
tags:
|
|
- tag: component
|
|
value: page
|
|
- uuid: 871e3520aac84c18bcaf2f3a0d565b79
|
|
name: 'MSSQL: Total data file size'
|
|
type: DEPENDENT
|
|
key: mssql.data_files_size
|
|
delay: '0'
|
|
history: 7d
|
|
units: B
|
|
description: 'Total size of all data files.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Data File(s) Size (KB)'')].cntr_value.first()'
|
|
- type: MULTIPLIER
|
|
parameters:
|
|
- '1024'
|
|
master_item:
|
|
key: mssql.db_info.raw
|
|
tags:
|
|
- tag: component
|
|
value: application
|
|
- uuid: 9f7bc0b3ae25483cb7290ef6feaa5c84
|
|
name: 'MSSQL: Get DB counters'
|
|
type: DEPENDENT
|
|
key: mssql.db_info.raw
|
|
delay: '0'
|
|
history: '0'
|
|
trends: '0'
|
|
value_type: TEXT
|
|
description: 'The item gets summary information about databases.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.object_name==''{$MSSQL.INSTANCE}:Databases'' && @.instance_name==''_Total'')]'
|
|
error_handler: DISCARD_VALUE
|
|
master_item:
|
|
key: 'db.odbc.get[get_status_variables,"{$MSSQL.DSN}"]'
|
|
tags:
|
|
- tag: component
|
|
value: raw
|
|
- uuid: 4cdecc74a6e44b57b17f44988d3ffa21
|
|
name: 'MSSQL: Total errors per second'
|
|
type: DEPENDENT
|
|
key: mssql.errors_sec.rate
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
description: 'Number of errors per second.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Errors/sec'' && @.instance_name==''_Total'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: mssql.sql_errors.raw
|
|
tags:
|
|
- tag: component
|
|
value: error
|
|
- tag: component
|
|
value: performance
|
|
- uuid: 5ed7f6931c42424f8ec3dbe2e6c46f03
|
|
name: 'MSSQL: Failed auto-params per second'
|
|
type: DEPENDENT
|
|
key: mssql.failed_autoparams_sec.rate
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
description: 'Number of failed auto-parameterization attempts per second. This number should be small. Note that auto-parameterizations are also known as simple parameterizations in the newer versions of SQL Server.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Failed Auto-Params/sec'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: mssql.sql_statistics.raw
|
|
tags:
|
|
- tag: component
|
|
value: performance
|
|
- uuid: cee8f4d47d41463299c50b5c7925a650
|
|
name: 'MSSQL: Forwarded records per second'
|
|
type: DEPENDENT
|
|
key: mssql.forwarded_records_sec.rate
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
description: 'Number of records per second fetched through forwarded record pointers.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Forwarded Records/sec'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: mssql.access_methods.raw
|
|
tags:
|
|
- tag: component
|
|
value: performance
|
|
- uuid: 22d1a41352c4477ba3db5d1a9e038597
|
|
name: 'MSSQL: Free list stalls per second'
|
|
type: DEPENDENT
|
|
key: mssql.free_list_stalls_sec.rate
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
units: rps
|
|
description: 'Indicates the number of requests per second that had to wait for a free page.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Free list stalls/sec'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: mssql.buffer_manager.raw
|
|
tags:
|
|
- tag: component
|
|
value: performance
|
|
triggers:
|
|
- uuid: f055a294ef3b43dd8958e77c303a5fee
|
|
expression: 'min(/MSSQL by ODBC/mssql.free_list_stalls_sec.rate,5m)>{$MSSQL.FREE_LIST_STALLS.MAX}'
|
|
name: 'MSSQL: Number of rps waiting for a free page is high'
|
|
event_name: 'MSSQL: Number of rps waiting for a free page is high (over {$MSSQL.FREE_LIST_STALLS.MAX} for 5m)'
|
|
priority: WARNING
|
|
description: 'Some requests have to wait for a free page.'
|
|
tags:
|
|
- tag: scope
|
|
value: performance
|
|
- uuid: ace67686bb93456c80b40be1f33c173f
|
|
name: 'MSSQL: Full scans per second'
|
|
type: DEPENDENT
|
|
key: mssql.full_scans_sec.rate
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
description: 'Number of unrestricted full scans per second. These can be either base-table or full-index scans. Values greater than 1 or 2 indicate that there are table / Index page scans. If that is combined with high CPU, this counter requires further investigation, otherwise, if the full scans are on small tables, it can be ignored.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Full Scans/sec'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: mssql.access_methods.raw
|
|
tags:
|
|
- tag: component
|
|
value: performance
|
|
- uuid: 6c17a38a9e9246ecbad3a6b2cb83c6cc
|
|
name: 'MSSQL: Get General Statistics counters'
|
|
type: DEPENDENT
|
|
key: mssql.general_statistics.raw
|
|
delay: '0'
|
|
history: '0'
|
|
trends: '0'
|
|
value_type: TEXT
|
|
description: 'The item gets general statistic information.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.object_name==''{$MSSQL.INSTANCE}:General Statistics'')]'
|
|
error_handler: DISCARD_VALUE
|
|
master_item:
|
|
key: 'db.odbc.get[get_status_variables,"{$MSSQL.DSN}"]'
|
|
tags:
|
|
- tag: component
|
|
value: raw
|
|
- uuid: f2539791f65a40569bcf6b1c89647904
|
|
name: 'MSSQL: Granted Workspace Memory'
|
|
type: DEPENDENT
|
|
key: mssql.granted_workspace_memory
|
|
delay: '0'
|
|
history: 7d
|
|
units: B
|
|
description: 'Specifies the total amount of memory currently granted to executing processes, such as hash, sort, bulk copy, and index creation operations.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Granted Workspace Memory (KB)'')].cntr_value.first()'
|
|
- type: MULTIPLIER
|
|
parameters:
|
|
- '1024'
|
|
master_item:
|
|
key: mssql.mem_manager.raw
|
|
tags:
|
|
- tag: component
|
|
value: memory
|
|
- uuid: 585f1a22108143d8b39337900da8860c
|
|
name: 'MSSQL: Index searches per second'
|
|
type: DEPENDENT
|
|
key: mssql.index_searches_sec.rate
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
description: 'Number of index searches per second. These are used to start a range scan, reposition a range scan, revalidate a scan point, fetch a single index record, and search down the index to locate where to insert a new row.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Index Searches/sec'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: mssql.access_methods.raw
|
|
tags:
|
|
- tag: component
|
|
value: performance
|
|
- uuid: eafdabca35bd40a58432dd36a210a4e4
|
|
name: 'MSSQL: Errors per second (Info errors)'
|
|
type: DEPENDENT
|
|
key: mssql.info_errors_sec.rate
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
description: 'Number of errors per second.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Errors/sec'' && @.instance_name==''Info Errors'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: mssql.sql_errors.raw
|
|
tags:
|
|
- tag: component
|
|
value: error
|
|
- tag: component
|
|
value: performance
|
|
- uuid: b68d1f8108d7494b9d4d891911708c72
|
|
name: 'MSSQL: Errors per second (Kill connection errors)'
|
|
type: DEPENDENT
|
|
key: mssql.kill_connection_errors_sec.rate
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
description: 'Number of errors per second.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Errors/sec'' && @.instance_name==''Kill Connection Errors'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: mssql.sql_errors.raw
|
|
tags:
|
|
- tag: component
|
|
value: error
|
|
- tag: component
|
|
value: performance
|
|
- uuid: 04714203d50645fdb4c69e333facd60e
|
|
name: 'MSSQL: Get Latches counters'
|
|
type: DEPENDENT
|
|
key: mssql.latches_info.raw
|
|
delay: '0'
|
|
history: '0'
|
|
trends: '0'
|
|
value_type: TEXT
|
|
description: 'The item gets server information about latches.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.object_name==''{$MSSQL.INSTANCE}:Latches'')]'
|
|
error_handler: DISCARD_VALUE
|
|
master_item:
|
|
key: 'db.odbc.get[get_status_variables,"{$MSSQL.DSN}"]'
|
|
tags:
|
|
- tag: component
|
|
value: raw
|
|
- uuid: c1242c5530654057bca59cb9ad12c319
|
|
name: 'MSSQL: Latch waits per second'
|
|
type: DEPENDENT
|
|
key: mssql.latch_waits_sec.rate
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
units: rps
|
|
description: 'The number of latch requests that could not be granted immediately. Latches are lightweight means of holding a very transient server resource, such as an address in memory.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Latch Waits/sec'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: mssql.latches_info.raw
|
|
tags:
|
|
- tag: component
|
|
value: performance
|
|
- tag: component
|
|
value: wait-time
|
|
- uuid: 66cc84326bd146ac89f91ddeaa61f63a
|
|
name: 'MSSQL: Lazy writes per second'
|
|
type: DEPENDENT
|
|
key: mssql.lazy_writes_sec.rate
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
description: 'Indicates the number of buffers written per second by the buffer manager''s lazy writer. The lazy writer is a system process that flushes out batches of dirty, aged buffers (buffers that contain changes that must be written back to disk before the buffer can be reused for a different page) and makes them available to user processes. The lazy writer eliminates the need to perform frequent checkpoints in order to create available buffers.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Lazy writes/sec'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: mssql.buffer_manager.raw
|
|
tags:
|
|
- tag: component
|
|
value: performance
|
|
triggers:
|
|
- uuid: 8aa547cda82f4dfcaef5ca0467590f64
|
|
expression: 'min(/MSSQL by ODBC/mssql.lazy_writes_sec.rate,5m)>{$MSSQL.LAZY_WRITES.MAX}'
|
|
name: 'MSSQL: Number of buffers written per second by the lazy writer is high'
|
|
event_name: 'MSSQL: Number of buffers written per second by the lazy writer is high (over {$MSSQL.LAZY_WRITES.MAX} for 5m)'
|
|
priority: WARNING
|
|
description: 'The number of buffers written per second by the buffer manager''s lazy writer exceeds the threshold.'
|
|
tags:
|
|
- tag: scope
|
|
value: performance
|
|
- uuid: 1b39ade916d243299f6350faaee167c8
|
|
name: 'MSSQL: Get Locks counters'
|
|
type: DEPENDENT
|
|
key: mssql.locks_info.raw
|
|
delay: '0'
|
|
history: '0'
|
|
trends: '0'
|
|
value_type: TEXT
|
|
description: 'The item gets server information about locks.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.object_name==''{$MSSQL.INSTANCE}:Locks'' && @.instance_name==''_Total'')]'
|
|
error_handler: DISCARD_VALUE
|
|
master_item:
|
|
key: 'db.odbc.get[get_status_variables,"{$MSSQL.DSN}"]'
|
|
tags:
|
|
- tag: component
|
|
value: raw
|
|
- uuid: 1b4c71c016504eb08b1a49146095c231
|
|
name: 'MSSQL: Total lock requests per second'
|
|
type: DEPENDENT
|
|
key: mssql.lock_requests_sec.rate
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
units: rps
|
|
description: 'Number of new locks and lock conversions per second requested from the lock manager.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Lock Requests/sec'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: mssql.locks_info.raw
|
|
tags:
|
|
- tag: component
|
|
value: lock
|
|
- tag: component
|
|
value: performance
|
|
triggers:
|
|
- uuid: be4e0b1aec8d494b984be248424d69cf
|
|
expression: 'min(/MSSQL by ODBC/mssql.lock_requests_sec.rate,5m)>{$MSSQL.LOCK_REQUESTS.MAX}'
|
|
name: 'MSSQL: Total number of locks per second is high'
|
|
event_name: 'MSSQL: Total number of locks per second is high (over {$MSSQL.LOCK_REQUESTS.MAX} for 5m)'
|
|
priority: WARNING
|
|
description: 'Number of new locks and lock conversions per second requested from the lock manager is high.'
|
|
tags:
|
|
- tag: scope
|
|
value: performance
|
|
- uuid: 0ac1aab7013249c6a0beb89217bf52c6
|
|
name: 'MSSQL: Total lock requests per second that timed out'
|
|
type: DEPENDENT
|
|
key: mssql.lock_timeouts_sec.rate
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
units: rps
|
|
description: 'Number of timed out lock requests per second, including requests for NOWAIT locks.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Lock Timeouts/sec'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: mssql.locks_info.raw
|
|
tags:
|
|
- tag: component
|
|
value: lock
|
|
- tag: component
|
|
value: performance
|
|
triggers:
|
|
- uuid: 9b62d84b8d9c4209b894151f59c42b27
|
|
expression: 'min(/MSSQL by ODBC/mssql.lock_timeouts_sec.rate,5m)>{$MSSQL.LOCK_TIMEOUTS.MAX}'
|
|
name: 'MSSQL: Total lock requests per second that timed out is high'
|
|
event_name: 'MSSQL: Total lock requests per second that timed out is high (over {$MSSQL.LOCK_TIMEOUTS.MAX} for 5m)'
|
|
priority: WARNING
|
|
description: 'The total number of timed out lock requests per second, including requests for NOWAIT locks, is high.'
|
|
tags:
|
|
- tag: scope
|
|
value: performance
|
|
- uuid: 77be28b4732d4665a4e880f2ea309245
|
|
name: 'MSSQL: Total lock requests per second that required waiting'
|
|
type: DEPENDENT
|
|
key: mssql.lock_waits_sec.rate
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
units: rps
|
|
description: 'Number of lock requests per second that required the caller to wait.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Lock Waits/sec'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: mssql.locks_info.raw
|
|
tags:
|
|
- tag: component
|
|
value: lock
|
|
- tag: component
|
|
value: performance
|
|
triggers:
|
|
- uuid: 879748a03c89495398b41fc1dbeba9ed
|
|
expression: 'min(/MSSQL by ODBC/mssql.lock_waits_sec.rate,5m)>0'
|
|
name: 'MSSQL: Some blocking is occurring for 5m'
|
|
priority: AVERAGE
|
|
description: 'Values greater than zero indicate at least some blocking is occurring, while a value of zero can quickly eliminate blocking as a potential root-cause problem.'
|
|
tags:
|
|
- tag: scope
|
|
value: performance
|
|
- uuid: bf4ef99559f94147b9b64144f6b795c0
|
|
name: 'MSSQL: Lock wait time'
|
|
type: DEPENDENT
|
|
key: mssql.lock_wait_time
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
units: ms
|
|
description: 'Average of total wait time (in milliseconds) for locks in the last second.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Lock Wait Time (ms)'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: mssql.locks_info.raw
|
|
tags:
|
|
- tag: component
|
|
value: lock
|
|
- uuid: c7856bdb5285421cb79cec0782fa1188
|
|
name: 'MSSQL: Logins per second'
|
|
type: DEPENDENT
|
|
key: mssql.logins_sec.rate
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
description: 'Total number of logins started per second. This does not include pooled connections. Any value over 2 may indicate insufficient connection pooling.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Logins/sec'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: mssql.general_statistics.raw
|
|
tags:
|
|
- tag: component
|
|
value: performance
|
|
- uuid: cf4af2cbeaff42b2a71c91544286998f
|
|
name: 'MSSQL: Logouts per second'
|
|
type: DEPENDENT
|
|
key: mssql.logouts_sec.rate
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
description: 'Total number of logout operations started per second. Any value over 2 may indicate insufficient connection pooling.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Logouts/sec'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: mssql.general_statistics.raw
|
|
tags:
|
|
- tag: component
|
|
value: performance
|
|
- uuid: e0620ce52e6d4269b9d12e82c749a146
|
|
name: 'MSSQL: Total log file size'
|
|
type: DEPENDENT
|
|
key: mssql.log_files_size
|
|
delay: '0'
|
|
history: 7d
|
|
units: B
|
|
description: 'Total size of all the transaction log files.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Log File(s) Size (KB)'')].cntr_value.first()'
|
|
- type: MULTIPLIER
|
|
parameters:
|
|
- '1024'
|
|
master_item:
|
|
key: mssql.db_info.raw
|
|
tags:
|
|
- tag: component
|
|
value: log
|
|
- uuid: 636e7c85a79947a39f7b176e8e3c5b82
|
|
name: 'MSSQL: Total log file used size'
|
|
type: DEPENDENT
|
|
key: mssql.log_files_used_size
|
|
delay: '0'
|
|
history: 7d
|
|
units: B
|
|
description: 'The cumulative used size of all the log files in the database.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Log File(s) Used Size (KB)'')].cntr_value.first()'
|
|
- type: MULTIPLIER
|
|
parameters:
|
|
- '1024'
|
|
master_item:
|
|
key: mssql.db_info.raw
|
|
tags:
|
|
- tag: component
|
|
value: log
|
|
- uuid: 28c1045fb77249aea23f55f48dd89c69
|
|
name: 'MSSQL: Maximum workspace memory'
|
|
type: DEPENDENT
|
|
key: mssql.maximum_workspace_memory
|
|
delay: '0'
|
|
history: 7d
|
|
units: B
|
|
description: 'Indicates the maximum amount of memory available for executing processes, such as hash, sort, bulk copy, and index creation operations.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Maximum Workspace Memory (KB)'')].cntr_value.first()'
|
|
- type: MULTIPLIER
|
|
parameters:
|
|
- '1024'
|
|
master_item:
|
|
key: mssql.mem_manager.raw
|
|
tags:
|
|
- tag: component
|
|
value: memory
|
|
- uuid: d39c5f2b89de4bc88c7724a8e2b270d7
|
|
name: 'MSSQL: Memory grants outstanding'
|
|
type: DEPENDENT
|
|
key: mssql.memory_grants_outstanding
|
|
delay: '0'
|
|
history: 7d
|
|
description: 'Specifies the total number of processes that have successfully acquired a workspace memory grant.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Memory Grants Outstanding'')].cntr_value.first()'
|
|
master_item:
|
|
key: mssql.mem_manager.raw
|
|
tags:
|
|
- tag: component
|
|
value: memory
|
|
- uuid: cb468e25c20f43f08fcefd45354ff882
|
|
name: 'MSSQL: Memory grants pending'
|
|
type: DEPENDENT
|
|
key: mssql.memory_grants_pending
|
|
delay: '0'
|
|
history: 7d
|
|
description: 'Specifies the total number of processes waiting for a workspace memory grant.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Memory Grants Pending'')].cntr_value.first()'
|
|
master_item:
|
|
key: mssql.mem_manager.raw
|
|
tags:
|
|
- tag: component
|
|
value: memory
|
|
- uuid: 982b21186af84be2a34f76e5bccb7a27
|
|
name: 'MSSQL: Get Memory counters'
|
|
type: DEPENDENT
|
|
key: mssql.mem_manager.raw
|
|
delay: '0'
|
|
history: '0'
|
|
trends: '0'
|
|
value_type: TEXT
|
|
description: 'The item gets memory information.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.object_name==''{$MSSQL.INSTANCE}:Memory Manager'')]'
|
|
error_handler: DISCARD_VALUE
|
|
master_item:
|
|
key: 'db.odbc.get[get_status_variables,"{$MSSQL.DSN}"]'
|
|
tags:
|
|
- tag: component
|
|
value: raw
|
|
- uuid: 18c0d77ded2b4533a559643006a93406
|
|
name: 'MSSQL: Total lock requests per second that have deadlocks'
|
|
type: DEPENDENT
|
|
key: mssql.number_deadlocks_sec.rate
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
units: rps
|
|
description: 'Number of lock requests per second that resulted in a deadlock.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Number of Deadlocks/sec'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: mssql.locks_info.raw
|
|
tags:
|
|
- tag: component
|
|
value: deadlock
|
|
- tag: component
|
|
value: performance
|
|
triggers:
|
|
- uuid: a8f77c32a7194af9b2674f0931c25212
|
|
expression: 'min(/MSSQL by ODBC/mssql.number_deadlocks_sec.rate,5m)>{$MSSQL.DEADLOCKS.MAX}'
|
|
name: 'MSSQL: Number of deadlock is high'
|
|
event_name: 'MSSQL: Number of deadlock is high (over {$MSSQL.DEADLOCKS.MAX} for 5m)'
|
|
priority: AVERAGE
|
|
description: 'Too many deadlocks are occurring currently.'
|
|
tags:
|
|
- tag: scope
|
|
value: performance
|
|
- uuid: bbb7fcac41b2403ab0b0c76f3437e81f
|
|
name: 'MSSQL: Errors per second (DB offline errors)'
|
|
type: DEPENDENT
|
|
key: mssql.offline_errors_sec.rate
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
description: 'Number of errors per second.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Errors/sec'' && @.instance_name==''DB Offline Errors'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: mssql.sql_errors.raw
|
|
tags:
|
|
- tag: component
|
|
value: error
|
|
- tag: component
|
|
value: performance
|
|
- uuid: 94a869db684046d9b65db9ee022a9c9e
|
|
name: 'MSSQL: Page life expectancy'
|
|
type: DEPENDENT
|
|
key: mssql.page_life_expectancy
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
units: s
|
|
description: 'Indicates the number of seconds a page will stay in the buffer pool without references.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Page life expectancy'')].cntr_value.first()'
|
|
master_item:
|
|
key: mssql.buffer_manager.raw
|
|
tags:
|
|
- tag: component
|
|
value: page
|
|
triggers:
|
|
- uuid: 4eb155a86f8b4441a6707e8a3816a068
|
|
expression: 'max(/MSSQL by ODBC/mssql.page_life_expectancy,15m)<{$MSSQL.PAGE_LIFE_EXPECTANCY.MIN}'
|
|
name: 'MSSQL: Page life expectancy is low'
|
|
event_name: 'MSSQL: Page life expectancy is low (less {$MSSQL.PAGE_LIFE_EXPECTANCY.MIN}min for 15m)'
|
|
priority: HIGH
|
|
description: 'The page stays in the buffer pool without references of less time than the threshold value.'
|
|
tags:
|
|
- tag: scope
|
|
value: performance
|
|
- uuid: 628f787578e04b83882aca052a7f976a
|
|
name: 'MSSQL: Page lookups per second'
|
|
type: DEPENDENT
|
|
key: mssql.page_lookups_sec.rate
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
units: rps
|
|
description: 'Indicates the number of requests per second to find a page in the buffer pool.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Page lookups/sec'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: mssql.buffer_manager.raw
|
|
tags:
|
|
- tag: component
|
|
value: performance
|
|
- uuid: 433257a5dfe4488c8073db03bfb05315
|
|
name: 'MSSQL: Page reads per second'
|
|
type: DEPENDENT
|
|
key: mssql.page_reads_sec.rate
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
description: 'Indicates the number of physical database page reads that are issued per second. This statistic displays the total number of physical page reads across all databases. Because physical I/O is expensive, you may be able to minimize the cost, either by using a larger data cache, intelligent indexes, and more efficient queries, or by changing the database design.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Page reads/sec'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: mssql.buffer_manager.raw
|
|
tags:
|
|
- tag: component
|
|
value: page
|
|
- tag: component
|
|
value: performance
|
|
triggers:
|
|
- uuid: c0b765b22b264d7c9086edc5cda35592
|
|
expression: 'min(/MSSQL by ODBC/mssql.page_reads_sec.rate,5m)>{$MSSQL.PAGE_READS.MAX}'
|
|
name: 'MSSQL: Number of physical database page reads per second is high'
|
|
event_name: 'MSSQL: Number of physical database page reads per second is high (over {$MSSQL.PAGE_READS.MAX} for 5m)'
|
|
priority: WARNING
|
|
description: 'The physical database page reads are issued too frequently.'
|
|
tags:
|
|
- tag: scope
|
|
value: performance
|
|
- uuid: fc3dd6a1bf1242769e2b58f25421a19d
|
|
name: 'MSSQL: Page splits per second'
|
|
type: DEPENDENT
|
|
key: mssql.page_splits_sec.rate
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
description: 'Number of page splits per second that occur as the result of overflowing index pages.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Page Splits/sec'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: mssql.access_methods.raw
|
|
tags:
|
|
- tag: component
|
|
value: page
|
|
- tag: component
|
|
value: performance
|
|
- uuid: a8b3639fe7b44d88a75e724c083518b5
|
|
name: 'MSSQL: Page writes per second'
|
|
type: DEPENDENT
|
|
key: mssql.page_writes_sec.rate
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
description: 'Indicates the number of physical database page writes that are issued per second.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Page writes/sec'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: mssql.buffer_manager.raw
|
|
tags:
|
|
- tag: component
|
|
value: page
|
|
- tag: component
|
|
value: performance
|
|
triggers:
|
|
- uuid: 548941f4a7cc4cadba64d8efd46655da
|
|
expression: 'min(/MSSQL by ODBC/mssql.page_writes_sec.rate,5m)>{$MSSQL.PAGE_WRITES.MAX}'
|
|
name: 'MSSQL: Number of physical database page writes per second is high'
|
|
event_name: 'MSSQL: Number of physical database page writes per second is high (over {$MSSQL.PAGE_WRITES.MAX} for 5m)'
|
|
priority: WARNING
|
|
description: 'The physical database page writes are issued too frequently.'
|
|
tags:
|
|
- tag: scope
|
|
value: performance
|
|
- uuid: 76918163a16e4ad786bed2040acc8061
|
|
name: 'MSSQL: Percent of Adhoc queries running'
|
|
type: CALCULATED
|
|
key: mssql.percent_of_adhoc_queries
|
|
delay: 0;m0-59s3
|
|
history: 7d
|
|
value_type: FLOAT
|
|
units: '%'
|
|
params: |
|
|
last(//mssql.sql_compilations_sec.rate) * 100 /
|
|
(last(//mssql.batch_requests_sec.rate) + (last(//mssql.batch_requests_sec.rate)=0))
|
|
description: 'The ratio of SQL compilations per second to Batch requests per second in percentage.'
|
|
tags:
|
|
- tag: component
|
|
value: application
|
|
triggers:
|
|
- uuid: c5c1840220cd44fcaa7b47e0d52309bb
|
|
expression: 'min(/MSSQL by ODBC/mssql.percent_of_adhoc_queries,15m) > {$MSSQL.PERCENT_COMPILATIONS.MAX}'
|
|
name: 'MSSQL: Percent of adhoc queries running is high'
|
|
event_name: 'MSSQL: Percent of adhoc queries running is over {$MSSQL.PERCENT_COMPILATIONS.MAX}% for 15m'
|
|
priority: WARNING
|
|
description: 'The lower this value is the better. High values often indicate excessive adhoc querying and should be as low as possible. If excessive adhoc querying is happening, try rewriting the queries as procedures or invoke the queries using sp_executeSQL. When rewriting isn''t possible, consider using a plan guide or setting the database to parameterization forced mode.'
|
|
tags:
|
|
- tag: scope
|
|
value: performance
|
|
- uuid: ceab0472883f47b0a18b04fc6f7438ab
|
|
name: 'MSSQL: Percent of Recompiled Transact-SQL Objects'
|
|
type: CALCULATED
|
|
key: mssql.percent_recompilations_to_compilations
|
|
delay: 0;m0-59s3
|
|
history: 7d
|
|
value_type: FLOAT
|
|
units: '%'
|
|
params: |
|
|
last(//mssql.sql_recompilations_sec.rate) * 100 /
|
|
(last(//mssql.sql_compilations_sec.rate) + (last(//mssql.sql_compilations_sec.rate)=0))
|
|
description: 'The ratio of SQL re-compilations per second to SQL compilations per second in percentage.'
|
|
tags:
|
|
- tag: component
|
|
value: application
|
|
triggers:
|
|
- uuid: d5bad8ead8704e00bf332032e22ebfdd
|
|
expression: 'min(/MSSQL by ODBC/mssql.percent_recompilations_to_compilations,15m) > {$MSSQL.PERCENT_RECOMPILATIONS.MAX}'
|
|
name: 'MSSQL: Percent of times statement recompiles is high'
|
|
event_name: 'MSSQL: Percent of times statement recompiles is over {$MSSQL.PERCENT_RECOMPILATIONS.MAX}% for 15m'
|
|
priority: WARNING
|
|
description: 'This number should be at or near zero, since recompiles can cause deadlocks and exclusive compile locks. This counter''s value should follow in proportion to "Batch Requests/sec" and "SQL Compilations/sec".'
|
|
tags:
|
|
- tag: scope
|
|
value: performance
|
|
- uuid: 5c0bee24f9494bb49860171ff875caf7
|
|
name: 'MSSQL: Number of blocked processes'
|
|
type: DEPENDENT
|
|
key: mssql.processes_blocked
|
|
delay: '0'
|
|
history: 7d
|
|
description: 'Number of currently blocked processes.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Processes blocked'')].cntr_value.first()'
|
|
master_item:
|
|
key: mssql.general_statistics.raw
|
|
tags:
|
|
- tag: component
|
|
value: application
|
|
- uuid: fc14b0c814234b12a3943eb0435cd28c
|
|
name: 'MSSQL: Read-ahead pages per second'
|
|
type: DEPENDENT
|
|
key: mssql.readahead_pages_sec.rate
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
description: 'Indicates the number of pages read per second in anticipation of use.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Readahead pages/sec'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: mssql.buffer_manager.raw
|
|
tags:
|
|
- tag: component
|
|
value: page
|
|
- tag: component
|
|
value: performance
|
|
- uuid: be47be0cbb924982aaf9573c5a233144
|
|
name: 'MSSQL: Safe auto-params per second'
|
|
type: DEPENDENT
|
|
key: mssql.safe_autoparams_sec.rate
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
description: 'Number of safe auto-parameterization attempts per second. Safe refers to a determination that a cached execution plan can be shared between different similar-looking Transact-SQL statements. SQL Server makes many auto-parameterization attempts some of which turn out to be safe and others fail. Note that auto-parameterizations are also known as simple parameterizations in the newer versions of SQL Server. This does not include forced parameterizations.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Safe Auto-Params/sec'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: mssql.sql_statistics.raw
|
|
tags:
|
|
- tag: component
|
|
value: performance
|
|
- uuid: 9ce27df57ebc4ecca1a4741e66c9fba0
|
|
name: 'MSSQL: Full scans to Index searches ratio'
|
|
type: CALCULATED
|
|
key: mssql.scan_to_search
|
|
delay: 0;m0-59s3
|
|
history: 7d
|
|
value_type: FLOAT
|
|
params: 'last(//mssql.full_scans_sec.rate) / (last(//mssql.index_searches_sec.rate) + (last(//mssql.index_searches_sec.rate)=0))'
|
|
description: 'The ratio of Full scans per second to Index searches per second. The threshold recommendation is strictly for OLTP workloads.'
|
|
tags:
|
|
- tag: component
|
|
value: application
|
|
triggers:
|
|
- uuid: 3c22a74a94d641389b57a6013ddd10cb
|
|
expression: 'min(/MSSQL by ODBC/mssql.scan_to_search,15m) > 0.001'
|
|
name: 'MSSQL: Number of index and table scans exceeds index searches in the last 15m'
|
|
priority: WARNING
|
|
description: 'Index searches are preferable to index and table scans. For OLTP applications, optimize for more index searches and less scans (preferably, 1 full scan for every 1000 index searches). Index and table scans are expensive I/O operations.'
|
|
tags:
|
|
- tag: scope
|
|
value: performance
|
|
- uuid: e9ea451a38424f6b9da59b8bbb068b51
|
|
name: 'MSSQL: SQL compilations per second'
|
|
type: DEPENDENT
|
|
key: mssql.sql_compilations_sec.rate
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
description: 'Number of SQL compilations per second. Indicates the number of times the compile code path is entered. Includes runs caused by statement-level recompilations in SQL Server. After SQL Server user activity is stable, this value reaches a steady state.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''SQL Compilations/sec'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: mssql.sql_statistics.raw
|
|
tags:
|
|
- tag: component
|
|
value: performance
|
|
- uuid: c7e0a26bf403482daec65a4b3cd0fd18
|
|
name: 'MSSQL: Get SQL Errors counters'
|
|
type: DEPENDENT
|
|
key: mssql.sql_errors.raw
|
|
delay: '0'
|
|
history: '0'
|
|
trends: '0'
|
|
value_type: TEXT
|
|
description: 'The item gets SQL errors information.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.object_name==''{$MSSQL.INSTANCE}:SQL Errors'')]'
|
|
error_handler: DISCARD_VALUE
|
|
master_item:
|
|
key: 'db.odbc.get[get_status_variables,"{$MSSQL.DSN}"]'
|
|
tags:
|
|
- tag: component
|
|
value: raw
|
|
- uuid: a72415acabda46309c4dbc692e026cc2
|
|
name: 'MSSQL: SQL re-compilations per second'
|
|
type: DEPENDENT
|
|
key: mssql.sql_recompilations_sec.rate
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
description: 'Number of statement recompiles per second. Counts the number of times statement recompiles are triggered. Generally, you want the recompiles to be low.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''SQL Re-Compilations/sec'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: mssql.sql_statistics.raw
|
|
tags:
|
|
- tag: component
|
|
value: performance
|
|
- uuid: ca60d01d14d04566bf1a5e6b3b819538
|
|
name: 'MSSQL: Get SQL Statistics counters'
|
|
type: DEPENDENT
|
|
key: mssql.sql_statistics.raw
|
|
delay: '0'
|
|
history: '0'
|
|
trends: '0'
|
|
value_type: TEXT
|
|
description: 'The item gets SQL statistic information.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.object_name==''{$MSSQL.INSTANCE}:SQL Statistics'')]'
|
|
error_handler: DISCARD_VALUE
|
|
master_item:
|
|
key: 'db.odbc.get[get_status_variables,"{$MSSQL.DSN}"]'
|
|
tags:
|
|
- tag: component
|
|
value: raw
|
|
- uuid: 595aa3989b4e41cc8649827525adc0a0
|
|
name: 'MSSQL: Table lock escalations per second'
|
|
type: DEPENDENT
|
|
key: mssql.table_lock_escalations.rate
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
description: 'Number of times locks on a table were escalated to the TABLE or HoBT granularity.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Table Lock Escalations/sec'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: mssql.access_methods.raw
|
|
tags:
|
|
- tag: component
|
|
value: lock
|
|
- tag: component
|
|
value: performance
|
|
- uuid: 37269b33e05349a1bfd05e4e493da6d4
|
|
name: 'MSSQL: Target pages'
|
|
type: DEPENDENT
|
|
key: mssql.target_pages
|
|
delay: '0'
|
|
history: 7d
|
|
description: 'The optimal number of pages in the buffer pool.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Target pages'')].cntr_value.first()'
|
|
master_item:
|
|
key: mssql.buffer_manager.raw
|
|
tags:
|
|
- tag: component
|
|
value: page
|
|
- uuid: 2679f7e843e549ce9468f6cab05a71d5
|
|
name: 'MSSQL: Target server memory'
|
|
type: DEPENDENT
|
|
key: mssql.target_server_memory
|
|
delay: '0'
|
|
history: 7d
|
|
units: B
|
|
description: 'Indicates the ideal amount of memory the server can consume.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Target Server Memory (KB)'')].cntr_value.first()'
|
|
- type: MULTIPLIER
|
|
parameters:
|
|
- '1024'
|
|
master_item:
|
|
key: mssql.mem_manager.raw
|
|
tags:
|
|
- tag: component
|
|
value: memory
|
|
- uuid: 8c7d63f3689f464394a6035a3cad4009
|
|
name: 'MSSQL: Total latch wait Time'
|
|
type: DEPENDENT
|
|
key: mssql.total_latch_wait_time
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
units: ms
|
|
description: 'Total latch wait time (in milliseconds) for latch requests in the last second. This value should stay stable compared to the number of latch waits per second.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Total Latch Wait Time (ms)'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: mssql.latches_info.raw
|
|
tags:
|
|
- tag: component
|
|
value: wait-time
|
|
- uuid: 9112ed9b9d3741018d40f2dc892fa0f6
|
|
name: 'MSSQL: Total server memory'
|
|
type: DEPENDENT
|
|
key: mssql.total_server_memory
|
|
delay: '0'
|
|
history: 7d
|
|
units: B
|
|
description: 'Specifies the amount of memory the server has committed using the memory manager.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Total Server Memory (KB)'')].cntr_value.first()'
|
|
- type: MULTIPLIER
|
|
parameters:
|
|
- '1024'
|
|
master_item:
|
|
key: mssql.mem_manager.raw
|
|
tags:
|
|
- tag: component
|
|
value: memory
|
|
- uuid: 273b373d8b41411fafcfd1e93bb8ce2c
|
|
name: 'MSSQL: Total transactions number'
|
|
type: DEPENDENT
|
|
key: mssql.transactions
|
|
delay: '0'
|
|
history: 7d
|
|
description: 'The number of currently active transactions of all types.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.object_name==''{$MSSQL.INSTANCE}:Transactions'' && @.counter_name==''Transactions'')].cntr_value.first()'
|
|
master_item:
|
|
key: 'db.odbc.get[get_status_variables,"{$MSSQL.DSN}"]'
|
|
tags:
|
|
- tag: component
|
|
value: transaction
|
|
- uuid: 127e1f73ce414eeb87d2cbfef46ccdef
|
|
name: 'MSSQL: Total transactions per second'
|
|
type: DEPENDENT
|
|
key: mssql.transactions_sec.rate
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
description: 'Total number of transactions started for all databases per second.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Transactions/sec'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: mssql.db_info.raw
|
|
tags:
|
|
- tag: component
|
|
value: performance
|
|
- tag: component
|
|
value: transaction
|
|
- uuid: ef6450dfcb9a476ca1bf97524e05d43d
|
|
name: 'MSSQL: Unsafe auto-params per second'
|
|
type: DEPENDENT
|
|
key: mssql.unsafe_autoparams_sec.rate
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
description: 'Number of unsafe auto-parameterization attempts per second. For example, the query has some characteristics that prevent the cached plan from being shared. These are designated as unsafe. This does not count the number of forced parameterizations.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Unsafe Auto-Params/sec'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: mssql.sql_statistics.raw
|
|
tags:
|
|
- tag: component
|
|
value: performance
|
|
- uuid: 27449e795c0a4e4e90c9ee6b6bf3df90
|
|
name: 'MSSQL: Uptime'
|
|
type: DEPENDENT
|
|
key: mssql.uptime
|
|
delay: '0'
|
|
history: 2w
|
|
trends: '0'
|
|
units: uptime
|
|
description: 'MS SQL Server uptime in ''N days, hh:mm:ss'' format.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.object_name==''{$MSSQL.INSTANCE}'' && @.counter_name==''Uptime'')].cntr_value.first()'
|
|
master_item:
|
|
key: 'db.odbc.get[get_status_variables,"{$MSSQL.DSN}"]'
|
|
tags:
|
|
- tag: component
|
|
value: application
|
|
triggers:
|
|
- uuid: 0321c9f671394cb180fdce53b4033cf4
|
|
expression: 'nodata(/MSSQL by ODBC/mssql.uptime,30m)=1'
|
|
name: 'MSSQL: Failed to fetch info data'
|
|
event_name: 'MSSQL: Failed to fetch info data (or no data for 30m)'
|
|
priority: INFO
|
|
description: 'Zabbix has not received any data for items for the last 30 minutes.'
|
|
dependencies:
|
|
- name: 'MSSQL: Service is unavailable'
|
|
expression: 'last(/MSSQL by ODBC/net.tcp.service[tcp,{HOST.CONN},{$MSSQL.PORT}])=0'
|
|
tags:
|
|
- tag: scope
|
|
value: availability
|
|
- uuid: aa10f863608a494281f41e12f0d2b1a5
|
|
expression: 'last(/MSSQL by ODBC/mssql.uptime)<10m'
|
|
name: 'MSSQL: Service has been restarted'
|
|
event_name: 'MSSQL: Service has been restarted (uptime < 10m)'
|
|
priority: INFO
|
|
description: 'Uptime is less than 10 minutes.'
|
|
manual_close: 'YES'
|
|
tags:
|
|
- tag: scope
|
|
value: notice
|
|
- uuid: 4e13bfc5927a421fb2996eec7e013448
|
|
name: 'MSSQL: Number users connected'
|
|
type: DEPENDENT
|
|
key: mssql.user_connections
|
|
delay: '0'
|
|
history: 7d
|
|
description: 'Number of users connected to MS SQL Server.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''User Connections'')].cntr_value.first()'
|
|
master_item:
|
|
key: mssql.general_statistics.raw
|
|
tags:
|
|
- tag: component
|
|
value: application
|
|
- uuid: 5942cad838e8430a9ff71293dec52af8
|
|
name: 'MSSQL: Errors per second (User errors)'
|
|
type: DEPENDENT
|
|
key: mssql.user_errors_sec.rate
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
description: 'Number of errors per second.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Errors/sec'' && @.instance_name==''User Errors'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: mssql.sql_errors.raw
|
|
tags:
|
|
- tag: component
|
|
value: error
|
|
- tag: component
|
|
value: performance
|
|
- uuid: 7013504d4a6c4b40a0aab11dab15d107
|
|
name: 'MSSQL: Version'
|
|
type: DEPENDENT
|
|
key: mssql.version
|
|
delay: '0'
|
|
history: 2w
|
|
trends: '0'
|
|
value_type: CHAR
|
|
description: 'MS SQL Server version.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.object_name==''{$MSSQL.INSTANCE}'' && @.counter_name==''Version'')].instance_name.first()'
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1d
|
|
master_item:
|
|
key: 'db.odbc.get[get_status_variables,"{$MSSQL.DSN}"]'
|
|
tags:
|
|
- tag: component
|
|
value: application
|
|
triggers:
|
|
- uuid: 4ece2c9172714c68b8345834cc37d927
|
|
expression: 'last(/MSSQL by ODBC/mssql.version,#1)<>last(/MSSQL by ODBC/mssql.version,#2) and length(last(/MSSQL by ODBC/mssql.version))>0'
|
|
name: 'MSSQL: Version has changed'
|
|
event_name: 'MSSQL: Version has changed (new version value received: {ITEM.VALUE})'
|
|
priority: INFO
|
|
description: 'MSSQL version has changed. Acknowledge to close the problem manually.'
|
|
manual_close: 'YES'
|
|
tags:
|
|
- tag: scope
|
|
value: notice
|
|
- uuid: ea84affd97864dfaad7edf31e16e1300
|
|
name: 'MSSQL: Work files created per second'
|
|
type: DEPENDENT
|
|
key: mssql.workfiles_created_sec.rate
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
description: 'Number of work files created per second. For example, work files can be used to store temporary results for hash joins and hash aggregates.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Workfiles Created/sec'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: mssql.access_methods.raw
|
|
tags:
|
|
- tag: component
|
|
value: performance
|
|
triggers:
|
|
- uuid: 2f7e2dd4a94e4e92b468f4e2e2364f71
|
|
expression: 'min(/MSSQL by ODBC/mssql.workfiles_created_sec.rate,5m)>{$MSSQL.WORK_FILES.MAX}'
|
|
name: 'MSSQL: Number of work files created per second is high'
|
|
event_name: 'MSSQL: Number of work files created per second is high (over {$MSSQL.WORK_FILES.MAX} for 5m)'
|
|
priority: AVERAGE
|
|
description: 'Too many work files created per second to store temporary results for hash joins and hash aggregates.'
|
|
tags:
|
|
- tag: scope
|
|
value: performance
|
|
- uuid: a38e7fdf994842558227dfad03e9943b
|
|
name: 'MSSQL: Work tables created per second'
|
|
type: DEPENDENT
|
|
key: mssql.worktables_created_sec.rate
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
description: 'Number of work tables created per second. For example, work tables can be used to store temporary results for query spool, lob variables, XML variables, and cursors.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Worktables Created/sec'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: mssql.access_methods.raw
|
|
tags:
|
|
- tag: component
|
|
value: performance
|
|
triggers:
|
|
- uuid: 0214004de3084ce6b35d5bba53a66947
|
|
expression: 'min(/MSSQL by ODBC/mssql.worktables_created_sec.rate,5m)>{$MSSQL.WORK_TABLES.MAX}'
|
|
name: 'MSSQL: Number of work tables created per second is high'
|
|
event_name: 'MSSQL: Number of work tables created per second is high (over {$MSSQL.WORK_TABLES.MAX} for 5m)'
|
|
priority: AVERAGE
|
|
description: 'Too many work tables created per second to store temporary results for query spool, lob variables, XML variables, and cursors.'
|
|
tags:
|
|
- tag: scope
|
|
value: performance
|
|
- uuid: d93779b26c1a4784be31d32130eebf92
|
|
name: 'MSSQL: Worktables from cache ratio'
|
|
type: DEPENDENT
|
|
key: mssql.worktables_from_cache_ratio
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
units: '%'
|
|
description: 'Percentage of work tables created where the initial two pages of the work table were not allocated but were immediately available from the work table cache.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''WorktablesFromCacheRatio'')].cntr_value.first()'
|
|
master_item:
|
|
key: mssql.access_methods.raw
|
|
tags:
|
|
- tag: component
|
|
value: cache
|
|
triggers:
|
|
- uuid: 98dee2bc42484988b208e100cc25ae05
|
|
expression: 'max(/MSSQL by ODBC/mssql.worktables_from_cache_ratio,5m)<{$MSSQL.WORKTABLES_FROM_CACHE_RATIO.MIN.CRIT}'
|
|
name: 'MSSQL: Percentage of work tables available from the work table cache is low'
|
|
event_name: 'MSSQL: Percentage of work tables available from the work table cache is low (below {$MSSQL.WORKTABLES_FROM_CACHE_RATIO.MIN.CRIT}% for 5m)'
|
|
priority: HIGH
|
|
description: 'A value less than 90% may indicate insufficient memory, since execution plans are being dropped, or on 32-bit systems, may indicate the need for an upgrade to a 64-bit system'
|
|
tags:
|
|
- tag: scope
|
|
value: performance
|
|
- uuid: c0302965c2574b43955a1d37a8fce9eb
|
|
name: 'MSSQL: Service''s TCP port state'
|
|
type: SIMPLE
|
|
key: 'net.tcp.service[tcp,{HOST.CONN},{$MSSQL.PORT}]'
|
|
delay: 30s
|
|
history: 7d
|
|
description: 'Test the availability of MS SQL Server on a TCP port.'
|
|
valuemap:
|
|
name: 'Service state'
|
|
preprocessing:
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 10m
|
|
tags:
|
|
- tag: component
|
|
value: network
|
|
triggers:
|
|
- uuid: 152af5cc3ce04d4aa8ab255c37aed6c6
|
|
expression: 'last(/MSSQL by ODBC/net.tcp.service[tcp,{HOST.CONN},{$MSSQL.PORT}])=0'
|
|
name: 'MSSQL: Service is unavailable'
|
|
priority: DISASTER
|
|
description: 'The TCP port of the MS SQL Server service is currently unavailable.'
|
|
tags:
|
|
- tag: scope
|
|
value: availability
|
|
discovery_rules:
|
|
- uuid: 2a5ddb4df6e14ebd94517cbd2a1f8295
|
|
name: 'Availability groups discovery'
|
|
type: ODBC
|
|
key: 'db.odbc.discovery[availability_groups,"{$MSSQL.DSN}"]'
|
|
delay: 1h
|
|
params: |
|
|
SELECT name as group_name
|
|
FROM sys.availability_groups
|
|
username: '{$MSSQL.USER}'
|
|
password: '{$MSSQL.PASSWORD}'
|
|
description: 'Discovery of the existing availability groups.'
|
|
item_prototypes:
|
|
- uuid: 7cdafac918494002a219345f648747ba
|
|
name: 'MSSQL AG ''{#GROUP_NAME}'': Get replica states'
|
|
type: ODBC
|
|
key: 'db.odbc.get[{#GROUP_NAME}_replica_states,"{$MSSQL.DSN}"]'
|
|
history: '0'
|
|
trends: '0'
|
|
value_type: TEXT
|
|
params: |
|
|
SELECT
|
|
ag.name as group_name,
|
|
ISNULL(ags.primary_recovery_health, 2) as primary_recovery_health,
|
|
ISNULL(ags.primary_replica, 'Unknown') as primary_replica,
|
|
ISNULL(
|
|
ags.secondary_recovery_health, 2
|
|
) as secondary_recovery_health,
|
|
ags.synchronization_health as synchronization_health
|
|
FROM
|
|
sys.dm_hadr_availability_group_states ags
|
|
JOIN sys.availability_groups ag ON ag.group_id = ags.group_id
|
|
and ag.name = '{#GROUP_NAME}'
|
|
username: '{$MSSQL.USER}'
|
|
password: '{$MSSQL.PASSWORD}'
|
|
description: 'Getting replica states - name, primary and secondary health, synchronization health.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.first()
|
|
error_handler: DISCARD_VALUE
|
|
tags:
|
|
- tag: availability-group
|
|
value: '{#GROUP_NAME}'
|
|
- tag: component
|
|
value: raw
|
|
- uuid: 381c88cf5b0c47319b036e79265b0a20
|
|
name: 'MSSQL AG ''{#GROUP_NAME}'': Primary replica recovery health'
|
|
type: DEPENDENT
|
|
key: 'mssql.primary_recovery_health["{#GROUP_NAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
description: |
|
|
Indicates the recovery health of the primary replica:
|
|
0 = In progress
|
|
1 = Online
|
|
2 = Unavailable
|
|
valuemap:
|
|
name: 'MSSQL AG Recovery health'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.primary_recovery_health
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
master_item:
|
|
key: 'db.odbc.get[{#GROUP_NAME}_replica_states,"{$MSSQL.DSN}"]'
|
|
tags:
|
|
- tag: availability-group
|
|
value: '{#GROUP_NAME}'
|
|
- tag: component
|
|
value: availability-group
|
|
trigger_prototypes:
|
|
- uuid: c472a4f8400e451db529d5e12b863216
|
|
expression: 'last(/MSSQL by ODBC/mssql.primary_recovery_health["{#GROUP_NAME}"])=0'
|
|
name: 'MSSQL AG ''{#GROUP_NAME}'': Primary replica recovery health in progress'
|
|
priority: WARNING
|
|
description: 'The primary replica is in the synchronization process.'
|
|
tags:
|
|
- tag: availability-group
|
|
value: '{#GROUP_NAME}'
|
|
- tag: scope
|
|
value: notice
|
|
- uuid: df51dcd0ef864705bc542e1233c1135b
|
|
name: 'MSSQL AG ''{#GROUP_NAME}'': Primary replica name'
|
|
type: DEPENDENT
|
|
key: 'mssql.primary_replica["{#GROUP_NAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
trends: '0'
|
|
value_type: CHAR
|
|
description: 'Name of the server instance that is hosting the current primary replica.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.primary_replica
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 3h
|
|
master_item:
|
|
key: 'db.odbc.get[{#GROUP_NAME}_replica_states,"{$MSSQL.DSN}"]'
|
|
tags:
|
|
- tag: availability-group
|
|
value: '{#GROUP_NAME}'
|
|
- tag: component
|
|
value: availability-group
|
|
- uuid: d2e76a734bd84484b6bd59b33c921f34
|
|
name: 'MSSQL AG ''{#GROUP_NAME}'': Secondary replica recovery health'
|
|
type: DEPENDENT
|
|
key: 'mssql.secondary_recovery_health["{#GROUP_NAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
description: |
|
|
Indicates the recovery health of a secondary replica:
|
|
0 = In progress
|
|
1 = Online
|
|
2 = Unavailable
|
|
valuemap:
|
|
name: 'MSSQL AG Recovery health'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.secondary_recovery_health
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
master_item:
|
|
key: 'db.odbc.get[{#GROUP_NAME}_replica_states,"{$MSSQL.DSN}"]'
|
|
tags:
|
|
- tag: availability-group
|
|
value: '{#GROUP_NAME}'
|
|
- tag: component
|
|
value: availability-group
|
|
trigger_prototypes:
|
|
- uuid: 1fbf51eb9f8b432c8e0d9ec3af1cab44
|
|
expression: 'last(/MSSQL by ODBC/mssql.secondary_recovery_health["{#GROUP_NAME}"])=0'
|
|
name: 'MSSQL AG ''{#GROUP_NAME}'': Secondary replica recovery health in progress'
|
|
priority: WARNING
|
|
description: 'The secondary replica is in the synchronization process.'
|
|
tags:
|
|
- tag: availability-group
|
|
value: '{#GROUP_NAME}'
|
|
- tag: scope
|
|
value: notice
|
|
- uuid: fe59d23d0ba44777b0abf1a35b2c014e
|
|
name: 'MSSQL AG ''{#GROUP_NAME}'': Synchronization health'
|
|
type: DEPENDENT
|
|
key: 'mssql.synchronization_health["{#GROUP_NAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
description: |
|
|
Reflects a rollup of the synchronization_health of all availability replicas in the availability group:
|
|
0: Not healthy. None of the availability replicas have a healthy synchronization.
|
|
1: Partially healthy. The synchronization of some, but not all, availability replicas is healthy.
|
|
2: Healthy. The synchronization of every availability replica is healthy.
|
|
valuemap:
|
|
name: 'MSSQL AG Synchronization health'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.synchronization_health
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
master_item:
|
|
key: 'db.odbc.get[{#GROUP_NAME}_replica_states,"{$MSSQL.DSN}"]'
|
|
tags:
|
|
- tag: availability-group
|
|
value: '{#GROUP_NAME}'
|
|
- tag: component
|
|
value: availability-group
|
|
trigger_prototypes:
|
|
- uuid: 2ee92e5ea41744ac9e27ffaa4313bdec
|
|
expression: 'last(/MSSQL by ODBC/mssql.synchronization_health["{#GROUP_NAME}"])=0'
|
|
name: 'MSSQL AG ''{#GROUP_NAME}'': All replicas unhealthy'
|
|
priority: DISASTER
|
|
description: 'None of the availability replicas have a healthy synchronization.'
|
|
tags:
|
|
- tag: availability-group
|
|
value: '{#GROUP_NAME}'
|
|
- tag: scope
|
|
value: availability
|
|
- uuid: fd24c78f1db24186932d17d1145b6e92
|
|
expression: 'last(/MSSQL by ODBC/mssql.synchronization_health["{#GROUP_NAME}"])=1'
|
|
name: 'MSSQL AG ''{#GROUP_NAME}'': Some replicas unhealthy'
|
|
priority: HIGH
|
|
description: 'The synchronization health of some, but not all, availability replicas is healthy.'
|
|
tags:
|
|
- tag: availability-group
|
|
value: '{#GROUP_NAME}'
|
|
- tag: scope
|
|
value: availability
|
|
preprocessing:
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1d
|
|
- uuid: 2e38ea24c9bf4a5480df0816b7c659b3
|
|
name: 'Database discovery'
|
|
type: ODBC
|
|
key: 'db.odbc.discovery[dbname,"{$MSSQL.DSN}"]'
|
|
delay: 1h
|
|
params: |
|
|
SELECT name as dbname
|
|
FROM sys.databases
|
|
username: '{$MSSQL.USER}'
|
|
password: '{$MSSQL.PASSWORD}'
|
|
filter:
|
|
evaltype: AND
|
|
conditions:
|
|
- macro: '{#DBNAME}'
|
|
value: '{$MSSQL.DBNAME.MATCHES}'
|
|
formulaid: A
|
|
- macro: '{#DBNAME}'
|
|
value: '{$MSSQL.DBNAME.NOT_MATCHES}'
|
|
operator: NOT_MATCHES_REGEX
|
|
formulaid: B
|
|
description: 'Scanning databases in DBMS.'
|
|
item_prototypes:
|
|
- uuid: 9c9dab20d8fa46f888c6aa7c7c9bf1b9
|
|
name: 'MSSQL DB ''{#DBNAME}'': Last diff backup duration'
|
|
type: DEPENDENT
|
|
key: 'mssql.backup.diff.duration["{#DBNAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
units: s
|
|
description: 'Duration of the last differential backup.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.type==''I'')].duration.first()'
|
|
error_handler: CUSTOM_VALUE
|
|
error_handler_params: '0'
|
|
master_item:
|
|
key: 'mssql.backup.raw["{#DBNAME}"]'
|
|
tags:
|
|
- tag: component
|
|
value: database
|
|
- tag: database
|
|
value: '{#DBNAME}'
|
|
- uuid: bd663e1e9b40469cb4ca430186b049db
|
|
name: 'MSSQL DB ''{#DBNAME}'': Last diff backup (time ago)'
|
|
type: DEPENDENT
|
|
key: 'mssql.backup.diff["{#DBNAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
units: s
|
|
description: 'The amount of time since the last differential backup.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.type==''I'')].timesincelastbackup.first()'
|
|
error_handler: CUSTOM_VALUE
|
|
error_handler_params: '0'
|
|
master_item:
|
|
key: 'mssql.backup.raw["{#DBNAME}"]'
|
|
tags:
|
|
- tag: component
|
|
value: database
|
|
- tag: database
|
|
value: '{#DBNAME}'
|
|
trigger_prototypes:
|
|
- uuid: 036892c6b9de41c698a4e9acd5457e6a
|
|
expression: 'last(/MSSQL by ODBC/mssql.backup.diff["{#DBNAME}"])>{$MSSQL.BACKUP_DIFF.CRIT:"{#DBNAME}"}'
|
|
name: 'MSSQL DB ''{#DBNAME}'': Diff backup is old'
|
|
event_name: 'MSSQL DB ''{#DBNAME}'': Diff backup older than {$MSSQL.BACKUP_DIFF.CRIT:"{#DBNAME}"}'
|
|
opdata: 'Time since last backup: {ITEM.LASTVALUE1}'
|
|
priority: HIGH
|
|
description: 'The differential backup has not been executed for a long time.'
|
|
manual_close: 'YES'
|
|
tags:
|
|
- tag: database
|
|
value: '{#DBNAME}'
|
|
- tag: scope
|
|
value: availability
|
|
- uuid: 9a294163ee034fc6a58f5534a7d79aac
|
|
expression: 'last(/MSSQL by ODBC/mssql.backup.diff["{#DBNAME}"])>{$MSSQL.BACKUP_DIFF.WARN:"{#DBNAME}"}'
|
|
name: 'MSSQL DB ''{#DBNAME}'': Diff backup is old'
|
|
event_name: 'MSSQL DB ''{#DBNAME}'': Diff backup older than {$MSSQL.BACKUP_DIFF.WARN:"{#DBNAME}"}'
|
|
opdata: 'Time since last backup: {ITEM.LASTVALUE1}'
|
|
priority: WARNING
|
|
description: 'The differential backup has not been executed for a long time.'
|
|
manual_close: 'YES'
|
|
dependencies:
|
|
- name: 'MSSQL DB ''{#DBNAME}'': Diff backup is old'
|
|
expression: 'last(/MSSQL by ODBC/mssql.backup.diff["{#DBNAME}"])>{$MSSQL.BACKUP_DIFF.CRIT:"{#DBNAME}"}'
|
|
tags:
|
|
- tag: database
|
|
value: '{#DBNAME}'
|
|
- tag: scope
|
|
value: availability
|
|
- uuid: 52929d988ad34aac945ff2ce9e448261
|
|
name: 'MSSQL DB ''{#DBNAME}'': Last full backup duration'
|
|
type: DEPENDENT
|
|
key: 'mssql.backup.full.duration["{#DBNAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
units: s
|
|
description: 'Duration of the last full backup.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.type==''D'')].duration.first()'
|
|
error_handler: CUSTOM_VALUE
|
|
error_handler_params: '0'
|
|
master_item:
|
|
key: 'mssql.backup.raw["{#DBNAME}"]'
|
|
tags:
|
|
- tag: component
|
|
value: database
|
|
- tag: database
|
|
value: '{#DBNAME}'
|
|
- uuid: 06d0ac1eeca843a289defa1cf1d728a3
|
|
name: 'MSSQL DB ''{#DBNAME}'': Last full backup (time ago)'
|
|
type: DEPENDENT
|
|
key: 'mssql.backup.full["{#DBNAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
units: s
|
|
description: 'The amount of time since the last full backup.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.type==''D'')].timesincelastbackup.first()'
|
|
error_handler: CUSTOM_VALUE
|
|
error_handler_params: '0'
|
|
master_item:
|
|
key: 'mssql.backup.raw["{#DBNAME}"]'
|
|
tags:
|
|
- tag: component
|
|
value: database
|
|
- tag: database
|
|
value: '{#DBNAME}'
|
|
trigger_prototypes:
|
|
- uuid: 09c8e059ffa44d0eb1be626b5d820dc9
|
|
expression: 'last(/MSSQL by ODBC/mssql.backup.full["{#DBNAME}"])>{$MSSQL.BACKUP_FULL.CRIT:"{#DBNAME}"}'
|
|
name: 'MSSQL DB ''{#DBNAME}'': Full backup is old'
|
|
event_name: 'MSSQL DB ''{#DBNAME}'': Full backup older than {$MSSQL.BACKUP_FULL.CRIT:"{#DBNAME}"}'
|
|
opdata: 'Time since last backup: {ITEM.LASTVALUE1}'
|
|
priority: HIGH
|
|
description: 'The full backup has not been executed for a long time.'
|
|
manual_close: 'YES'
|
|
tags:
|
|
- tag: database
|
|
value: '{#DBNAME}'
|
|
- tag: scope
|
|
value: availability
|
|
- uuid: b380d76b1055482ca8cd69c90611f1a5
|
|
expression: 'last(/MSSQL by ODBC/mssql.backup.full["{#DBNAME}"])>{$MSSQL.BACKUP_FULL.WARN:"{#DBNAME}"}'
|
|
name: 'MSSQL DB ''{#DBNAME}'': Full backup is old'
|
|
event_name: 'MSSQL DB ''{#DBNAME}'': Full backup older than {$MSSQL.BACKUP_FULL.WARN:"{#DBNAME}"}'
|
|
opdata: 'Time since last backup: {ITEM.LASTVALUE1}'
|
|
priority: WARNING
|
|
description: 'The full backup has not been executed for a long time.'
|
|
manual_close: 'YES'
|
|
dependencies:
|
|
- name: 'MSSQL DB ''{#DBNAME}'': Full backup is old'
|
|
expression: 'last(/MSSQL by ODBC/mssql.backup.full["{#DBNAME}"])>{$MSSQL.BACKUP_FULL.CRIT:"{#DBNAME}"}'
|
|
tags:
|
|
- tag: scope
|
|
value: availability
|
|
- uuid: 218241c7c5a648a59021999f97516349
|
|
name: 'MSSQL DB ''{#DBNAME}'': Last log backup duration'
|
|
type: DEPENDENT
|
|
key: 'mssql.backup.log.duration["{#DBNAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
units: s
|
|
description: 'Duration of the last log backup.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.type==''L'')].duration.first()'
|
|
error_handler: CUSTOM_VALUE
|
|
error_handler_params: '0'
|
|
master_item:
|
|
key: 'mssql.backup.raw["{#DBNAME}"]'
|
|
tags:
|
|
- tag: component
|
|
value: database
|
|
- tag: database
|
|
value: '{#DBNAME}'
|
|
- uuid: c5e796bc904848efb2557c8a9a07b828
|
|
name: 'MSSQL DB ''{#DBNAME}'': Last log backup'
|
|
type: DEPENDENT
|
|
key: 'mssql.backup.log["{#DBNAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
units: s
|
|
description: 'The amount of time since the last log backup.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.type==''L'')].timesincelastbackup.first()'
|
|
error_handler: CUSTOM_VALUE
|
|
error_handler_params: '0'
|
|
master_item:
|
|
key: 'mssql.backup.raw["{#DBNAME}"]'
|
|
tags:
|
|
- tag: component
|
|
value: database
|
|
- tag: database
|
|
value: '{#DBNAME}'
|
|
trigger_prototypes:
|
|
- uuid: 4a6e76dc9a5148649d07e35e962b5893
|
|
expression: 'last(/MSSQL by ODBC/mssql.backup.log["{#DBNAME}"])>{$MSSQL.BACKUP_LOG.CRIT:"{#DBNAME}"}'
|
|
name: 'MSSQL DB ''{#DBNAME}'': Log backup is old'
|
|
event_name: 'MSSQL DB ''{#DBNAME}'': Log backup older than {$MSSQL.BACKUP_LOG.CRIT:"{#DBNAME}"}'
|
|
opdata: 'Time since last backup: {ITEM.LASTVALUE1}'
|
|
priority: HIGH
|
|
description: 'The log backup has not been executed for a long time.'
|
|
manual_close: 'YES'
|
|
tags:
|
|
- tag: database
|
|
value: '{#DBNAME}'
|
|
- tag: scope
|
|
value: availability
|
|
- uuid: 6000420450cf453bae3652c7f7d05e2b
|
|
expression: 'last(/MSSQL by ODBC/mssql.backup.log["{#DBNAME}"])>{$MSSQL.BACKUP_LOG.WARN:"{#DBNAME}"}'
|
|
name: 'MSSQL DB ''{#DBNAME}'': Log backup is old'
|
|
event_name: 'MSSQL DB ''{#DBNAME}'': Log backup older than {$MSSQL.BACKUP_LOG.WARN:"{#DBNAME}"}'
|
|
opdata: 'Time since last backup: {ITEM.LASTVALUE1}'
|
|
priority: WARNING
|
|
description: 'The log backup has not been executed for a long time.'
|
|
manual_close: 'YES'
|
|
dependencies:
|
|
- name: 'MSSQL DB ''{#DBNAME}'': Log backup is old'
|
|
expression: 'last(/MSSQL by ODBC/mssql.backup.log["{#DBNAME}"])>{$MSSQL.BACKUP_LOG.CRIT:"{#DBNAME}"}'
|
|
tags:
|
|
- tag: database
|
|
value: '{#DBNAME}'
|
|
- tag: scope
|
|
value: availability
|
|
- uuid: a6a276b5a8ce4b00b277e507ea7b15ee
|
|
name: 'MSSQL DB ''{#DBNAME}'': Get last backup'
|
|
type: DEPENDENT
|
|
key: 'mssql.backup.raw["{#DBNAME}"]'
|
|
delay: '0'
|
|
history: '0'
|
|
trends: '0'
|
|
value_type: TEXT
|
|
description: 'The item gets information about backup processes for {#DBNAME}.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.dbname==''{#DBNAME}'')]'
|
|
error_handler: DISCARD_VALUE
|
|
master_item:
|
|
key: 'db.odbc.get[get_last_backup,"{$MSSQL.DSN}"]'
|
|
tags:
|
|
- tag: component
|
|
value: raw
|
|
- tag: database
|
|
value: '{#DBNAME}'
|
|
- uuid: f4f218f22d6d48419260003880b38abd
|
|
name: 'MSSQL DB ''{#DBNAME}'': Active transactions'
|
|
type: DEPENDENT
|
|
key: 'mssql.db.active_transactions["{#DBNAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
description: 'Number of active transactions for the database.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Active Transactions'')].cntr_value.first()'
|
|
master_item:
|
|
key: 'mssql.db.perf_raw["{#DBNAME}"]'
|
|
tags:
|
|
- tag: component
|
|
value: database
|
|
- tag: database
|
|
value: '{#DBNAME}'
|
|
- uuid: ff3916f807784639a1821229d4d722d8
|
|
name: 'MSSQL DB ''{#DBNAME}'': Data file size'
|
|
type: DEPENDENT
|
|
key: 'mssql.db.data_files_size["{#DBNAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
units: B
|
|
description: 'Cumulative size of all the data files in the database including any automatic growth. Monitoring this counter is useful, for example, for determining the correct size of tempdb.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Data File(s) Size (KB)'')].cntr_value.first()'
|
|
- type: MULTIPLIER
|
|
parameters:
|
|
- '1024'
|
|
master_item:
|
|
key: 'mssql.db.perf_raw["{#DBNAME}"]'
|
|
tags:
|
|
- tag: component
|
|
value: database
|
|
- tag: database
|
|
value: '{#DBNAME}'
|
|
- uuid: 0d7bdf4c18fa49e79926e6f6d078d50f
|
|
name: 'MSSQL DB ''{#DBNAME}'': Log bytes flushed per second'
|
|
type: DEPENDENT
|
|
key: 'mssql.db.log_bytes_flushed_sec.rate["{#DBNAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
units: Bps
|
|
description: 'Total number of log bytes flushed per second. Useful for determining trends and utilization of the transaction log.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Log Bytes Flushed/sec'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: 'mssql.db.perf_raw["{#DBNAME}"]'
|
|
tags:
|
|
- tag: component
|
|
value: database
|
|
- tag: database
|
|
value: '{#DBNAME}'
|
|
- uuid: 85536311e68047a6a8bf13c51c8d0647
|
|
name: 'MSSQL DB ''{#DBNAME}'': Log file size'
|
|
type: DEPENDENT
|
|
key: 'mssql.db.log_files_size["{#DBNAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
units: B
|
|
description: 'Cumulative size of all the transaction log files in the database.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Log File(s) Size (KB)'')].cntr_value.first()'
|
|
- type: MULTIPLIER
|
|
parameters:
|
|
- '1024'
|
|
master_item:
|
|
key: 'mssql.db.perf_raw["{#DBNAME}"]'
|
|
tags:
|
|
- tag: component
|
|
value: database
|
|
- tag: database
|
|
value: '{#DBNAME}'
|
|
- uuid: 75fd2f42e274471c97cb23dc740863b8
|
|
name: 'MSSQL DB ''{#DBNAME}'': Log file used size'
|
|
type: DEPENDENT
|
|
key: 'mssql.db.log_files_used_size["{#DBNAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
units: B
|
|
description: 'Cumulative used size of all the log files in the database.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Log File(s) Used Size (KB)'')].cntr_value.first()'
|
|
- type: MULTIPLIER
|
|
parameters:
|
|
- '1024'
|
|
master_item:
|
|
key: 'mssql.db.perf_raw["{#DBNAME}"]'
|
|
tags:
|
|
- tag: component
|
|
value: database
|
|
- tag: database
|
|
value: '{#DBNAME}'
|
|
- uuid: c10b6f364aa547d8b4abe431ae27d70b
|
|
name: 'MSSQL DB ''{#DBNAME}'': Log flushes per second'
|
|
type: DEPENDENT
|
|
key: 'mssql.db.log_flushes_sec.rate["{#DBNAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
description: 'Number of log flushes per second.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Log Flushes/sec'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: 'mssql.db.perf_raw["{#DBNAME}"]'
|
|
tags:
|
|
- tag: component
|
|
value: database
|
|
- tag: database
|
|
value: '{#DBNAME}'
|
|
- uuid: 5404c8682b294a06a3027dc10d0b43fc
|
|
name: 'MSSQL DB ''{#DBNAME}'': Log flush waits per second'
|
|
type: DEPENDENT
|
|
key: 'mssql.db.log_flush_waits_sec.rate["{#DBNAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
description: 'Number of commits per second waiting for the log flush.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Log Flush Waits/sec'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: 'mssql.db.perf_raw["{#DBNAME}"]'
|
|
tags:
|
|
- tag: component
|
|
value: database
|
|
- tag: database
|
|
value: '{#DBNAME}'
|
|
trigger_prototypes:
|
|
- uuid: b351fc1128c24faf88d36717d0a0d1a5
|
|
expression: 'min(/MSSQL by ODBC/mssql.db.log_flush_waits_sec.rate["{#DBNAME}"],5m)>{$MSSQL.LOG_FLUSH_WAITS.MAX:"{#DBNAME}"}'
|
|
name: 'MSSQL DB ''{#DBNAME}'': Number of commits waiting for the log flush is high'
|
|
event_name: 'MSSQL DB ''{#DBNAME}'': Number of commits waiting for the log flush is high (over {$MSSQL.LOG_FLUSH_WAITS.MAX:"{#DBNAME}"}/sec for 5m)'
|
|
priority: WARNING
|
|
description: 'Too many commits are waiting for the log flush.'
|
|
tags:
|
|
- tag: database
|
|
value: '{#DBNAME}'
|
|
- tag: scope
|
|
value: performance
|
|
- uuid: f1abdb0800534f6bbf9f1403e7dea9e4
|
|
name: 'MSSQL DB ''{#DBNAME}'': Log flush wait time'
|
|
type: DEPENDENT
|
|
key: 'mssql.db.log_flush_wait_time["{#DBNAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
units: ms
|
|
description: 'Total wait time (in milliseconds) to flush the log. On an AlwaysOn secondary database, this value indicates the wait time for log records to be hardened to disk.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Log Flush Wait Time'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: 'mssql.db.perf_raw["{#DBNAME}"]'
|
|
tags:
|
|
- tag: component
|
|
value: database
|
|
- tag: database
|
|
value: '{#DBNAME}'
|
|
trigger_prototypes:
|
|
- uuid: 80351c56215148b8ab75d95dc81ff0d0
|
|
expression: 'min(/MSSQL by ODBC/mssql.db.log_flush_wait_time["{#DBNAME}"],5m)>{$MSSQL.LOG_FLUSH_WAIT_TIME.MAX:"{#DBNAME}"}'
|
|
name: 'MSSQL DB ''{#DBNAME}'': Total wait time to flush the log is high'
|
|
event_name: 'MSSQL DB ''{#DBNAME}'': Total wait time to flush the log is high (over {$MSSQL.LOG_FLUSH_WAIT_TIME.MAX:"{#DBNAME}"}ms for 5m)'
|
|
priority: WARNING
|
|
description: 'The wait time to flush the log is too long.'
|
|
tags:
|
|
- tag: database
|
|
value: '{#DBNAME}'
|
|
- tag: scope
|
|
value: performance
|
|
- uuid: fdb24058e54243e8b5a888ec40d506e9
|
|
name: 'MSSQL DB ''{#DBNAME}'': Log growths'
|
|
type: DEPENDENT
|
|
key: 'mssql.db.log_growths["{#DBNAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
description: 'Total number of times the transaction log for the database has been expanded.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Log Growths'')].cntr_value.first()'
|
|
master_item:
|
|
key: 'mssql.db.perf_raw["{#DBNAME}"]'
|
|
tags:
|
|
- tag: component
|
|
value: database
|
|
- tag: database
|
|
value: '{#DBNAME}'
|
|
- uuid: a1a96d8bfef740ec9c8eadd9704ab605
|
|
name: 'MSSQL DB ''{#DBNAME}'': Log shrinks'
|
|
type: DEPENDENT
|
|
key: 'mssql.db.log_shrinks["{#DBNAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
description: 'Total number of times the transaction log for the database has been shrunk.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Log Shrinks'')].cntr_value.first()'
|
|
master_item:
|
|
key: 'mssql.db.perf_raw["{#DBNAME}"]'
|
|
tags:
|
|
- tag: component
|
|
value: database
|
|
- tag: database
|
|
value: '{#DBNAME}'
|
|
- uuid: 26d1515df1be450e861e4f7a9f76b03d
|
|
name: 'MSSQL DB ''{#DBNAME}'': Log truncations'
|
|
type: DEPENDENT
|
|
key: 'mssql.db.log_truncations["{#DBNAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
description: 'Number of times the transaction log has been shrunk.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Log Truncations'')].cntr_value.first()'
|
|
master_item:
|
|
key: 'mssql.db.perf_raw["{#DBNAME}"]'
|
|
tags:
|
|
- tag: component
|
|
value: database
|
|
- tag: database
|
|
value: '{#DBNAME}'
|
|
- uuid: 9f9cda56992841408ab8307b7019b76f
|
|
name: 'MSSQL DB ''{#DBNAME}'': Percent log used'
|
|
type: DEPENDENT
|
|
key: 'mssql.db.percent_log_used["{#DBNAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
units: '%'
|
|
description: 'Percentage of space in the log that is in use.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Percent Log Used'')].cntr_value.first()'
|
|
master_item:
|
|
key: 'mssql.db.perf_raw["{#DBNAME}"]'
|
|
tags:
|
|
- tag: component
|
|
value: database
|
|
- tag: database
|
|
value: '{#DBNAME}'
|
|
trigger_prototypes:
|
|
- uuid: f02958e3ee174c6dbe900e3dd92cacdc
|
|
expression: 'min(/MSSQL by ODBC/mssql.db.percent_log_used["{#DBNAME}"],5m)>{$MSSQL.PERCENT_LOG_USED.MAX:"{#DBNAME}"}'
|
|
name: 'MSSQL DB ''{#DBNAME}'': Percent of log using is high'
|
|
event_name: 'MSSQL DB ''{#DBNAME}'': Percent of log using is high (over {$MSSQL.PERCENT_LOG_USED.MAX:"{#DBNAME}"}% for 5m)'
|
|
priority: WARNING
|
|
description: 'There''s not enough space left in the log.'
|
|
tags:
|
|
- tag: database
|
|
value: '{#DBNAME}'
|
|
- tag: scope
|
|
value: performance
|
|
- uuid: 74b107e240274c69ae1e8f0632b67e14
|
|
name: 'MSSQL DB ''{#DBNAME}'': Get performance counters'
|
|
type: DEPENDENT
|
|
key: 'mssql.db.perf_raw["{#DBNAME}"]'
|
|
delay: '0'
|
|
history: '0'
|
|
trends: '0'
|
|
value_type: TEXT
|
|
description: 'The item gets server status information for {#DBNAME}.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.object_name==''{$MSSQL.INSTANCE}:Databases'' && @.instance_name==''{#DBNAME}'')]'
|
|
error_handler: DISCARD_VALUE
|
|
master_item:
|
|
key: 'db.odbc.get[get_status_variables,"{$MSSQL.DSN}"]'
|
|
tags:
|
|
- tag: component
|
|
value: raw
|
|
- tag: database
|
|
value: '{#DBNAME}'
|
|
- uuid: fe7d7c3e0aab43d79c00eaceb39c8c6c
|
|
name: 'MSSQL DB ''{#DBNAME}'': State'
|
|
type: DEPENDENT
|
|
key: 'mssql.db.state["{#DBNAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
description: |
|
|
0 = ONLINE
|
|
1 = RESTORING
|
|
2 = RECOVERING | SQL Server 2008 and later
|
|
3 = RECOVERY_PENDING | SQL Server 2008 and later
|
|
4 = SUSPECT
|
|
5 = EMERGENCY | SQL Server 2008 and later
|
|
6 = OFFLINE | SQL Server 2008 and later
|
|
7 = COPYING | Azure SQL Database Active Geo-Replication
|
|
10 = OFFLINE_SECONDARY | Azure SQL Database Active Geo-Replication
|
|
valuemap:
|
|
name: 'MSSQL DB state'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''State'')].cntr_value.first()'
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 15m
|
|
master_item:
|
|
key: 'mssql.db.perf_raw["{#DBNAME}"]'
|
|
tags:
|
|
- tag: component
|
|
value: database
|
|
- tag: database
|
|
value: '{#DBNAME}'
|
|
trigger_prototypes:
|
|
- uuid: 6b8c8cf8e0d24b7f8d9aa7469a0facd4
|
|
expression: 'last(/MSSQL by ODBC/mssql.db.state["{#DBNAME}"])>1'
|
|
name: 'MSSQL DB ''{#DBNAME}'': State is {ITEM.VALUE}'
|
|
priority: HIGH
|
|
description: 'The DB has a non-working state.'
|
|
tags:
|
|
- tag: database
|
|
value: '{#DBNAME}'
|
|
- tag: scope
|
|
value: availability
|
|
- uuid: 267b1d54c40641f5aeb4e3e7adfa4680
|
|
name: 'MSSQL DB ''{#DBNAME}'': Transactions per second'
|
|
type: DEPENDENT
|
|
key: 'mssql.db.transactions_sec.rate["{#DBNAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
value_type: FLOAT
|
|
description: 'Number of transactions started for the database per second.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.counter_name==''Transactions/sec'')].cntr_value.first()'
|
|
- type: CHANGE_PER_SECOND
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: 'mssql.db.perf_raw["{#DBNAME}"]'
|
|
tags:
|
|
- tag: component
|
|
value: database
|
|
- tag: database
|
|
value: '{#DBNAME}'
|
|
graph_prototypes:
|
|
- uuid: ac52c952ba954065bbbb5c722630cd0b
|
|
name: 'MSSQL DB ''{#DBNAME}'': Log size'
|
|
graph_items:
|
|
- color: 199C0D
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: 'mssql.db.log_files_size["{#DBNAME}"]'
|
|
- sortorder: '1'
|
|
color: F63100
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: 'mssql.db.log_files_used_size["{#DBNAME}"]'
|
|
- uuid: 49d3be5c3ce34cfc9c13456a2ae301f6
|
|
name: 'MSSQL DB ''{#DBNAME}'': Number of Log changes'
|
|
graph_items:
|
|
- color: 199C0D
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: 'mssql.db.log_growths["{#DBNAME}"]'
|
|
- sortorder: '1'
|
|
color: F63100
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: 'mssql.db.log_shrinks["{#DBNAME}"]'
|
|
- sortorder: '2'
|
|
color: 00611C
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: 'mssql.db.log_truncations["{#DBNAME}"]'
|
|
- uuid: 9553b9169f5e441abecfde1c07ca1a4e
|
|
name: 'MSSQL DB ''{#DBNAME}'': Size'
|
|
graph_items:
|
|
- color: 199C0D
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: 'mssql.db.data_files_size["{#DBNAME}"]'
|
|
preprocessing:
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1d
|
|
- uuid: 6d972c575a944d49badfc2e6a614f686
|
|
name: 'Job discovery'
|
|
type: ODBC
|
|
key: 'db.odbc.discovery[jobname,"{$MSSQL.DSN}"]'
|
|
delay: 1h
|
|
params: 'SELECT name AS jobname FROM msdb..sysjobs WHERE enabled = 1'
|
|
username: '{$MSSQL.USER}'
|
|
password: '{$MSSQL.PASSWORD}'
|
|
filter:
|
|
evaltype: AND
|
|
conditions:
|
|
- macro: '{#JOBNAME}'
|
|
value: '{$MSSQL.JOB.MATCHES}'
|
|
formulaid: A
|
|
- macro: '{#JOBNAME}'
|
|
value: '{$MSSQL.JOB.NOT_MATCHES}'
|
|
operator: NOT_MATCHES_REGEX
|
|
formulaid: B
|
|
description: 'Scanning jobs in DBMS.'
|
|
item_prototypes:
|
|
- uuid: 4e1e21603b01420f9b25e85f5987e7ec
|
|
name: 'MSSQL Job ''{#JOBNAME}'': Enabled'
|
|
type: DEPENDENT
|
|
key: 'mssql.job.enabled["{#JOBNAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
description: |
|
|
The job state possible values:
|
|
0 = Disabled
|
|
1 = Enabled
|
|
valuemap:
|
|
name: 'MSSQL - Yes / No'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.Enabled
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 15m
|
|
master_item:
|
|
key: 'mssql.job.status_raw["{#JOBNAME}"]'
|
|
tags:
|
|
- tag: component
|
|
value: mssql-job
|
|
- tag: mssql-job
|
|
value: '{#JOBNAME}'
|
|
- uuid: 3ceba63a77e24628a2ee9439d574bac5
|
|
name: 'MSSQL Job ''{#JOBNAME}'': Last run date-time'
|
|
type: DEPENDENT
|
|
key: 'mssql.job.lastrundatetime["{#JOBNAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
trends: '0'
|
|
value_type: TEXT
|
|
description: 'The last date-time of the job run.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.LastRunDateTime
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1d
|
|
master_item:
|
|
key: 'mssql.job.status_raw["{#JOBNAME}"]'
|
|
tags:
|
|
- tag: component
|
|
value: mssql-job
|
|
- tag: mssql-job
|
|
value: '{#JOBNAME}'
|
|
- uuid: b9984c1238554a559b444853e9f66653
|
|
name: 'MSSQL Job ''{#JOBNAME}'': Last run status message'
|
|
type: DEPENDENT
|
|
key: 'mssql.job.lastrunstatusmessage["{#JOBNAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
trends: '0'
|
|
value_type: TEXT
|
|
description: 'The informational message about the last run of the job.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.LastRunStatusMessage
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 15m
|
|
master_item:
|
|
key: 'mssql.job.status_raw["{#JOBNAME}"]'
|
|
tags:
|
|
- tag: component
|
|
value: mssql-job
|
|
- tag: mssql-job
|
|
value: '{#JOBNAME}'
|
|
- uuid: 1c725adad98f44158b43127d4c5fb0f3
|
|
name: 'MSSQL Job ''{#JOBNAME}'': Next run date-time'
|
|
type: DEPENDENT
|
|
key: 'mssql.job.nextrundatetime["{#JOBNAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
trends: '0'
|
|
value_type: TEXT
|
|
description: 'The next date-time of the job run.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.NextRunDateTime
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 15m
|
|
master_item:
|
|
key: 'mssql.job.status_raw["{#JOBNAME}"]'
|
|
tags:
|
|
- tag: component
|
|
value: mssql-job
|
|
- tag: mssql-job
|
|
value: '{#JOBNAME}'
|
|
- uuid: eaa43a261e114979af236698ea7ae32c
|
|
name: 'MSSQL Job ''{#JOBNAME}'': Run status'
|
|
type: DEPENDENT
|
|
key: 'mssql.job.runstatus["{#JOBNAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
description: |
|
|
The job status possible values:
|
|
0 ⇒ Failed
|
|
1 ⇒ Succeeded
|
|
2 ⇒ Retry
|
|
3 ⇒ Canceled
|
|
4 ⇒ Running
|
|
valuemap:
|
|
name: 'MSSQL Job Run Status'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.RunStatus
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 15m
|
|
master_item:
|
|
key: 'mssql.job.status_raw["{#JOBNAME}"]'
|
|
tags:
|
|
- tag: component
|
|
value: mssql-job
|
|
- tag: mssql-job
|
|
value: '{#JOBNAME}'
|
|
trigger_prototypes:
|
|
- uuid: 304f468605164fd2baa1905cedf2c897
|
|
expression: 'last(/MSSQL by ODBC/mssql.job.runstatus["{#JOBNAME}"])=0'
|
|
name: 'MSSQL Job ''{#JOBNAME}'': Failed to run'
|
|
priority: WARNING
|
|
description: 'The last run of the job has failed.'
|
|
manual_close: 'YES'
|
|
tags:
|
|
- tag: mssql-job
|
|
value: '{#JOBNAME}'
|
|
- tag: scope
|
|
value: performance
|
|
- uuid: 69da58fe4c7e42028fa96388df526103
|
|
name: 'MSSQL Job ''{#JOBNAME}'': Run duration'
|
|
type: DEPENDENT
|
|
key: 'mssql.job.run_duration["{#JOBNAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
units: s
|
|
description: 'Duration of the last run job.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.RunDuration
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 15m
|
|
master_item:
|
|
key: 'mssql.job.status_raw["{#JOBNAME}"]'
|
|
tags:
|
|
- tag: component
|
|
value: mssql-job
|
|
- tag: mssql-job
|
|
value: '{#JOBNAME}'
|
|
trigger_prototypes:
|
|
- uuid: 7e45cb8f41114388ac8772006d929da2
|
|
expression: 'last(/MSSQL by ODBC/mssql.job.run_duration["{#JOBNAME}"])>{$MSSQL.BACKUP_DURATION.WARN:"{#JOBNAME}"}'
|
|
name: 'MSSQL Job ''{#JOBNAME}'': Job duration is high'
|
|
event_name: 'MSSQL Job ''{#JOBNAME}'': Job duration is greater than {$MSSQL.BACKUP_DURATION.WARN:"{#JOBNAME}"}'
|
|
opdata: 'Job duration: {ITEM.LASTVALUE1}'
|
|
priority: WARNING
|
|
description: 'The job is taking too long.'
|
|
manual_close: 'YES'
|
|
tags:
|
|
- tag: mssql-job
|
|
value: '{#JOBNAME}'
|
|
- tag: scope
|
|
value: performance
|
|
- uuid: 3660503b46be4c92a7b1d5040bc8cd0d
|
|
name: 'MSSQL Job ''{#JOBNAME}'': Get job status'
|
|
type: DEPENDENT
|
|
key: 'mssql.job.status_raw["{#JOBNAME}"]'
|
|
delay: '0'
|
|
history: '0'
|
|
trends: '0'
|
|
value_type: TEXT
|
|
description: 'The item gets sql agent job {#JOBNAME} status.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$[?(@.JobName==''{#JOBNAME}'')].first()'
|
|
error_handler: DISCARD_VALUE
|
|
master_item:
|
|
key: 'db.odbc.get[get_job_status,"{$MSSQL.DSN}"]'
|
|
tags:
|
|
- tag: component
|
|
value: raw
|
|
- tag: mssql-job
|
|
value: '{#JOBNAME}'
|
|
preprocessing:
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1d
|
|
- uuid: f7395d344b67423dadcefe3f94ad159d
|
|
name: 'Local database discovery'
|
|
type: ODBC
|
|
key: 'db.odbc.discovery[local_db,"{$MSSQL.DSN}"]'
|
|
delay: 1h
|
|
params: |
|
|
SELECT ag.name AS group_name,
|
|
arcs.replica_server_name AS replica_name,
|
|
db_name(drs.database_id) AS dbname,
|
|
drs.is_local
|
|
FROM sys.dm_hadr_database_replica_states drs
|
|
JOIN sys.dm_hadr_availability_replica_cluster_states arcs
|
|
ON arcs.replica_id = drs.replica_id
|
|
JOIN sys.availability_groups ag
|
|
ON ag.group_id = arcs.group_id
|
|
JOIN sys.dm_hadr_availability_replica_states ars
|
|
ON ars.replica_id = arcs.replica_id
|
|
WHERE drs.is_local = 1
|
|
username: '{$MSSQL.USER}'
|
|
password: '{$MSSQL.PASSWORD}'
|
|
description: 'Discovery of the local availability databases.'
|
|
item_prototypes:
|
|
- uuid: 7eda3060b4bc446fb458bec5967b7d3c
|
|
name: 'MSSQL AG ''{#GROUP_NAME}'' Local DB ''{#DBNAME}'': Get local DB states'
|
|
type: ODBC
|
|
key: 'db.odbc.get["{#GROUP_NAME}_{#DBNAME}_local_db.states","{$MSSQL.DSN}"]'
|
|
history: '0'
|
|
trends: '0'
|
|
value_type: TEXT
|
|
params: |
|
|
SELECT
|
|
drs.database_state as database_state,
|
|
drs.is_suspended as is_suspended,
|
|
drs.synchronization_health as synchronization_health,
|
|
ag.name as group_name,
|
|
arcs.replica_server_name as replica_name,
|
|
db_name(drs.database_id) as dbname
|
|
FROM
|
|
sys.dm_hadr_database_replica_states drs
|
|
JOIN sys.dm_hadr_availability_replica_cluster_states arcs ON arcs.replica_id = drs.replica_id
|
|
AND arcs.replica_server_name = '{#REPLICA_NAME}'
|
|
JOIN sys.availability_groups ag ON ag.group_id = arcs.group_id
|
|
AND ag.name = '{#GROUP_NAME}'
|
|
JOIN sys.dm_hadr_availability_replica_states ars ON ars.replica_id = arcs.replica_id
|
|
AND db_name(drs.database_id) = '{#DBNAME}'
|
|
username: '{$MSSQL.USER}'
|
|
password: '{$MSSQL.PASSWORD}'
|
|
description: 'Getting the states of the local availability database.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.first()
|
|
error_handler: DISCARD_VALUE
|
|
tags:
|
|
- tag: availability-group
|
|
value: '{#GROUP_NAME}'
|
|
- tag: component
|
|
value: raw
|
|
- tag: local-db
|
|
value: '{#DBNAME}'
|
|
- uuid: 7e4baf2802394b93bf5770f4f72d7f05
|
|
name: 'MSSQL AG ''{#GROUP_NAME}'' Local DB ''{#DBNAME}'': Suspended'
|
|
type: DEPENDENT
|
|
key: 'mssql.local_db.is_suspended["{#DBNAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
description: |
|
|
Database state:
|
|
0 = Resumed
|
|
1 = Suspended
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.is_suspended
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
master_item:
|
|
key: 'db.odbc.get["{#GROUP_NAME}_{#DBNAME}_local_db.states","{$MSSQL.DSN}"]'
|
|
tags:
|
|
- tag: availability-group
|
|
value: '{#GROUP_NAME}'
|
|
- tag: component
|
|
value: local-db
|
|
- tag: local-db
|
|
value: '{#DBNAME}'
|
|
- uuid: f8111429599e49bd947a12b9771d1a3d
|
|
name: 'MSSQL AG ''{#GROUP_NAME}'' Local DB ''{#DBNAME}'': State'
|
|
type: DEPENDENT
|
|
key: 'mssql.local_db.state["{#DBNAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
description: |
|
|
0 = Online
|
|
1 = Restoring
|
|
2 = Recovering
|
|
3 = Recovery pending
|
|
4 = Suspect
|
|
5 = Emergency
|
|
6 = Offline
|
|
valuemap:
|
|
name: 'MSSQL DB state'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.database_state
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
master_item:
|
|
key: 'db.odbc.get["{#GROUP_NAME}_{#DBNAME}_local_db.states","{$MSSQL.DSN}"]'
|
|
tags:
|
|
- tag: availability-group
|
|
value: '{#GROUP_NAME}'
|
|
- tag: component
|
|
value: local-db
|
|
- tag: local-db
|
|
value: '{#DBNAME}'
|
|
trigger_prototypes:
|
|
- uuid: 78923c9c52e74c80a77d418afe9e438d
|
|
expression: 'last(/MSSQL by ODBC/mssql.local_db.state["{#DBNAME}"])>0'
|
|
name: 'MSSQL AG ''{#GROUP_NAME}'' Local DB ''{#DBNAME}'': "{#DBNAME}" is {ITEM.VALUE}'
|
|
priority: WARNING
|
|
description: 'The local availability database has a non-working state.'
|
|
tags:
|
|
- tag: availability-group
|
|
value: '{#GROUP_NAME}'
|
|
- tag: local-db
|
|
value: '{#DBNAME}'
|
|
- tag: scope
|
|
value: availability
|
|
- uuid: e7d7fbac95e94c45b6515c8e1b7baf1a
|
|
name: 'MSSQL AG ''{#GROUP_NAME}'' Local DB ''{#DBNAME}'': Synchronization health'
|
|
type: DEPENDENT
|
|
key: 'mssql.local_db.synchronization_health["{#DBNAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
description: |
|
|
Reflects the intersection of the synchronization state of a database that is joined to the availability group on the availability replica and the availability mode of the availability replica (synchronous-commit or asynchronous-commit mode):
|
|
0 = Not healthy. The synchronization_state of the database is 0 (NOT SYNCHRONIZING).
|
|
1 = Partially healthy. A database on a synchronous-commit availability replica is considered partially healthy if synchronization_state is 1 (SYNCHRONIZING).
|
|
2 = Healthy. A database on an synchronous-commit availability replica is considered healthy if synchronization_state is 2 (SYNCHRONIZED), and a database on an asynchronous-commit availability replica is considered healthy if synchronization_state is 1 (SYNCHRONIZING).
|
|
valuemap:
|
|
name: 'MSSQL AG Synchronization health'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.synchronization_health
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
master_item:
|
|
key: 'db.odbc.get["{#GROUP_NAME}_{#DBNAME}_local_db.states","{$MSSQL.DSN}"]'
|
|
tags:
|
|
- tag: availability-group
|
|
value: '{#GROUP_NAME}'
|
|
- tag: component
|
|
value: local-db
|
|
- tag: local-db
|
|
value: '{#DBNAME}'
|
|
trigger_prototypes:
|
|
- uuid: e51c10f9d86d458da9fdb7e21b4e0102
|
|
expression: 'last(/MSSQL by ODBC/mssql.local_db.synchronization_health["{#DBNAME}"])=0'
|
|
name: 'MSSQL AG ''{#GROUP_NAME}'' Local DB ''{#DBNAME}'': "{#DBNAME}" is Not healthy'
|
|
priority: HIGH
|
|
description: 'The synchronization state of the local availability database is NOT SYNCHRONIZING.'
|
|
tags:
|
|
- tag: availability-group
|
|
value: '{#GROUP_NAME}'
|
|
- tag: local-db
|
|
value: '{#DBNAME}'
|
|
- tag: scope
|
|
value: availability
|
|
- uuid: dc636f10f12c4f1ead597eca778561ec
|
|
expression: 'last(/MSSQL by ODBC/mssql.local_db.synchronization_health["{#DBNAME}"])=1'
|
|
name: 'MSSQL AG ''{#GROUP_NAME}'' Local DB ''{#DBNAME}'': "{#DBNAME}" is Partially healthy'
|
|
priority: AVERAGE
|
|
description: 'A database on a synchronous-commit availability replica is considered partially healthy if synchronization state is SYNCHRONIZING.'
|
|
tags:
|
|
- tag: availability-group
|
|
value: '{#GROUP_NAME}'
|
|
- tag: local-db
|
|
value: '{#DBNAME}'
|
|
- tag: scope
|
|
value: availability
|
|
preprocessing:
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1d
|
|
- uuid: 8354506d23b241c689079eb8ff1acb72
|
|
name: 'Mirroring discovery'
|
|
type: ODBC
|
|
key: 'db.odbc.discovery[mirrors,"{$MSSQL.DSN}"]'
|
|
delay: 1h
|
|
params: |
|
|
SELECT db_name(database_id) as dbname
|
|
FROM sys.database_mirroring
|
|
WHERE mirroring_state_desc IS NOT NULL
|
|
username: '{$MSSQL.USER}'
|
|
password: '{$MSSQL.PASSWORD}'
|
|
description: |
|
|
To see the row for a database other than master or tempdb, you must
|
|
either be the database owner or have at least ALTER ANY DATABASE or VIEW ANY
|
|
DATABASE server-level permission or CREATE DATABASE permission in the master
|
|
database. To see non-NULL values on a mirror database, you must be a member
|
|
of the sysadmin fixed server role.
|
|
item_prototypes:
|
|
- uuid: 082fb332849e4633a169f1a6dbe3a8c5
|
|
name: 'MSSQL Mirroring ''{#DBNAME}'': Get the mirror state'
|
|
type: ODBC
|
|
key: 'db.odbc.get["{#DBNAME}_mirroring_state","{$MSSQL.DSN}"]'
|
|
history: '0'
|
|
trends: '0'
|
|
value_type: TEXT
|
|
params: |
|
|
SELECT
|
|
ISNULL(m.mirroring_role, 0) as mirroring_role,
|
|
ISNULL(m.mirroring_role_sequence, 0) as mirroring_role_sequence,
|
|
ISNULL(m.mirroring_state, 7) as mirroring_state,
|
|
ISNULL(m.mirroring_witness_state, 3) as mirroring_witness_state,
|
|
ISNULL(m.mirroring_safety_level, 3) as mirroring_safety_level,
|
|
db_name(m.database_id) as dbname
|
|
FROM
|
|
sys.database_mirroring as m
|
|
WHERE
|
|
db_name(m.database_id) = '{#DBNAME}'
|
|
AND m.mirroring_state_desc IS NOT NULL
|
|
username: '{$MSSQL.USER}'
|
|
password: '{$MSSQL.PASSWORD}'
|
|
description: 'Getting mirrors state'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.first()
|
|
error_handler: DISCARD_VALUE
|
|
tags:
|
|
- tag: component
|
|
value: mssql-mirroring
|
|
- tag: mssql-mirroring
|
|
value: '{#DBNAME}'
|
|
- uuid: faccb61c8215482ab375c03444a0e8fd
|
|
name: 'MSSQL Mirroring ''{#DBNAME}'': Role'
|
|
type: DEPENDENT
|
|
key: 'mssql.mirroring.role["{#DBNAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
description: |
|
|
Current role of the local database plays in the database mirroring session.
|
|
1 = Principal
|
|
2 = Mirror
|
|
valuemap:
|
|
name: 'MSSQL Mirroring Role'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.mirroring_role
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
master_item:
|
|
key: 'db.odbc.get["{#DBNAME}_mirroring_state","{$MSSQL.DSN}"]'
|
|
tags:
|
|
- tag: component
|
|
value: mssql-mirroring
|
|
- tag: mssql-mirroring
|
|
value: '{#DBNAME}'
|
|
- uuid: 19cdd945ced447d28b7480c07c1f61bc
|
|
name: 'MSSQL Mirroring ''{#DBNAME}'': Role sequence'
|
|
type: DEPENDENT
|
|
key: 'mssql.mirroring.role_sequence["{#DBNAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
description: 'The number of times that mirroring partners have switched the principal and mirror roles due to a failover or forced service.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.mirroring_role_sequence
|
|
- type: SIMPLE_CHANGE
|
|
parameters:
|
|
- ''
|
|
master_item:
|
|
key: 'db.odbc.get["{#DBNAME}_mirroring_state","{$MSSQL.DSN}"]'
|
|
tags:
|
|
- tag: component
|
|
value: mssql-mirroring
|
|
- tag: mssql-mirroring
|
|
value: '{#DBNAME}'
|
|
- uuid: bedb23d788074424afdb2751c8a7e2b7
|
|
name: 'MSSQL Mirroring ''{#DBNAME}'': Safety level'
|
|
type: DEPENDENT
|
|
key: 'mssql.mirroring.safety_level["{#DBNAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
description: |
|
|
Safety setting for updates on the mirror database:
|
|
0 = Unknown state
|
|
1 = Off [asynchronous]
|
|
2 = Full [synchronous]
|
|
valuemap:
|
|
name: 'MSSQL Safety level'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.mirroring_safety_level
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
master_item:
|
|
key: 'db.odbc.get["{#DBNAME}_mirroring_state","{$MSSQL.DSN}"]'
|
|
tags:
|
|
- tag: component
|
|
value: mssql-mirroring
|
|
- tag: mssql-mirroring
|
|
value: '{#DBNAME}'
|
|
- uuid: 5df06f00a6194242af45ff5cccf43988
|
|
name: 'MSSQL Mirroring ''{#DBNAME}'': State'
|
|
type: DEPENDENT
|
|
key: 'mssql.mirroring.state["{#DBNAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
description: |
|
|
State of the mirror database and of the database mirroring session.
|
|
0 = Suspended
|
|
1 = Disconnected from the other partner
|
|
2 = Synchronizing
|
|
3 = Pending Failover
|
|
4 = Synchronized
|
|
5 = The partners are not synchronized. Failover is not possible now.
|
|
6 = The partners are synchronized. Failover is potentially possible. For information about the requirements for the failover, see Database Mirroring Operating Modes.
|
|
valuemap:
|
|
name: 'MSSQL Mirroring State'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.mirroring_state
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
master_item:
|
|
key: 'db.odbc.get["{#DBNAME}_mirroring_state","{$MSSQL.DSN}"]'
|
|
tags:
|
|
- tag: component
|
|
value: mssql-mirroring
|
|
- tag: mssql-mirroring
|
|
value: '{#DBNAME}'
|
|
trigger_prototypes:
|
|
- uuid: 323543b0df0e474abf9190a9630242b1
|
|
expression: 'last(/MSSQL by ODBC/mssql.mirroring.state["{#DBNAME}"])=3'
|
|
name: 'MSSQL Mirroring ''{#DBNAME}'': "{#DBNAME}" is {ITEM.VALUE}'
|
|
priority: WARNING
|
|
description: 'The state of the mirror database and of the database mirroring session is "Pending Failover".'
|
|
tags:
|
|
- tag: mssql-mirroring
|
|
value: '{#DBNAME}'
|
|
- tag: scope
|
|
value: availability
|
|
- uuid: 9a2bcdfb32654a55b8a75c8bf4331950
|
|
expression: 'last(/MSSQL by ODBC/mssql.mirroring.state["{#DBNAME}"])=5'
|
|
name: 'MSSQL Mirroring ''{#DBNAME}'': "{#DBNAME}" is {ITEM.VALUE}'
|
|
priority: HIGH
|
|
description: 'The state of the mirror database and of the database mirroring session is "Not synchronized". The partners are not synchronized. A failover is not possible now.'
|
|
tags:
|
|
- tag: mssql-mirroring
|
|
value: '{#DBNAME}'
|
|
- tag: scope
|
|
value: availability
|
|
- uuid: c673a7c4820840528a4aa1771a5a56d4
|
|
expression: 'last(/MSSQL by ODBC/mssql.mirroring.state["{#DBNAME}"])>=0 and last(/MSSQL by ODBC/mssql.mirroring.state["{#DBNAME}"])<=2'
|
|
name: 'MSSQL Mirroring ''{#DBNAME}'': "{#DBNAME}" is {ITEM.VALUE}'
|
|
priority: INFO
|
|
description: 'The state of the mirror database and of the database mirroring session is "Suspended", "Disconnected from the other partner", or "Synchronizing".'
|
|
tags:
|
|
- tag: mssql-mirroring
|
|
value: '{#DBNAME}'
|
|
- tag: scope
|
|
value: availability
|
|
- uuid: 7e4763d493a745e99082ca71a54c23c2
|
|
name: 'MSSQL Mirroring ''{#DBNAME}'': Witness state'
|
|
type: DEPENDENT
|
|
key: 'mssql.mirroring.witness_state["{#DBNAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
description: |
|
|
State of the witness in the database mirroring session of the database:
|
|
0 = Unknown
|
|
1 = Connected
|
|
2 = Disconnected
|
|
valuemap:
|
|
name: 'MSSQL Witness state'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.mirroring_witness_state
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
master_item:
|
|
key: 'db.odbc.get["{#DBNAME}_mirroring_state","{$MSSQL.DSN}"]'
|
|
tags:
|
|
- tag: component
|
|
value: mssql-mirroring
|
|
- tag: mssql-mirroring
|
|
value: '{#DBNAME}'
|
|
trigger_prototypes:
|
|
- uuid: ec374424b79346c99f1d815e0815c799
|
|
expression: 'last(/MSSQL by ODBC/mssql.mirroring.witness_state["{#DBNAME}"])=2'
|
|
name: 'MSSQL Mirroring ''{#DBNAME}'': "{#DBNAME}" Witness is disconnected'
|
|
priority: WARNING
|
|
description: 'The state of the witness in the database mirroring session of the database is "Disconnected".'
|
|
tags:
|
|
- tag: mssql-mirroring
|
|
value: '{#DBNAME}'
|
|
- tag: scope
|
|
value: availability
|
|
graph_prototypes:
|
|
- uuid: 9bf9203bd4b449b39e288fbb79f9d627
|
|
name: 'MSSQL Mirroring ''{#DBNAME}'': States'
|
|
graph_items:
|
|
- color: 199C0D
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: 'mssql.mirroring.state["{#DBNAME}"]'
|
|
- sortorder: '1'
|
|
color: F63100
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: 'mssql.mirroring.witness_state["{#DBNAME}"]'
|
|
preprocessing:
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1d
|
|
- uuid: f9691782f89c459c849c00c68775b4bd
|
|
name: 'Non-local database discovery'
|
|
type: ODBC
|
|
key: 'db.odbc.discovery[non-local_db,"{$MSSQL.DSN}"]'
|
|
delay: 1h
|
|
params: |
|
|
SELECT ag.name AS group_name,
|
|
arcs.replica_server_name AS replica_name,
|
|
db_name(drs.database_id) AS dbname,
|
|
drs.is_local
|
|
FROM sys.dm_hadr_database_replica_states drs
|
|
JOIN sys.dm_hadr_availability_replica_cluster_states arcs
|
|
ON arcs.replica_id = drs.replica_id
|
|
JOIN sys.availability_groups ag
|
|
ON ag.group_id = arcs.group_id
|
|
JOIN sys.dm_hadr_availability_replica_states ars
|
|
ON ars.replica_id = arcs.replica_id
|
|
WHERE drs.is_local = 0
|
|
username: '{$MSSQL.USER}'
|
|
password: '{$MSSQL.PASSWORD}'
|
|
description: 'Discovery of the non-local (not local to the SQL Server instance) availability databases.'
|
|
item_prototypes:
|
|
- uuid: da05efa5ffab475fa95718e8e0069c80
|
|
name: 'MSSQL AG ''{#GROUP_NAME}'' Non-Local DB ''*{#REPLICA_NAME}*{#DBNAME}'': Get non-local DB states'
|
|
type: ODBC
|
|
key: 'db.odbc.get["{#GROUP_NAME}*{#REPLICA_NAME}*{#DBNAME}_non-local_db.states","{$MSSQL.DSN}"]'
|
|
history: '0'
|
|
trends: '0'
|
|
value_type: TEXT
|
|
params: |
|
|
SELECT
|
|
ISNULL(drs.log_send_queue_size, 0) as log_send_queue_size,
|
|
ISNULL(drs.redo_queue_size, 0) as redo_queue_size,
|
|
ag.name as group_name,
|
|
arcs.replica_server_name as replica_name,
|
|
db_name(drs.database_id) as dbname
|
|
FROM
|
|
sys.dm_hadr_database_replica_states drs
|
|
JOIN sys.dm_hadr_availability_replica_cluster_states arcs ON arcs.replica_id = drs.replica_id
|
|
AND arcs.replica_server_name = '{#REPLICA_NAME}'
|
|
JOIN sys.availability_groups ag ON ag.group_id = arcs.group_id
|
|
AND ag.name = '{#GROUP_NAME}'
|
|
JOIN sys.dm_hadr_availability_replica_states ars ON ars.replica_id = arcs.replica_id
|
|
AND db_name(drs.database_id) = '{#DBNAME}'
|
|
username: '{$MSSQL.USER}'
|
|
password: '{$MSSQL.PASSWORD}'
|
|
description: 'Getting the states of the non-local availability database.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.first()
|
|
error_handler: DISCARD_VALUE
|
|
tags:
|
|
- tag: availability-group
|
|
value: '{#GROUP_NAME}'
|
|
- tag: component
|
|
value: raw
|
|
- tag: non-local-db
|
|
value: '{#DBNAME}'
|
|
- uuid: 32d3797d6b22413e98aa206d3092947f
|
|
name: 'MSSQL AG ''{#GROUP_NAME}'' Non-Local DB ''*{#REPLICA_NAME}*{#DBNAME}'': Log queue size'
|
|
type: DEPENDENT
|
|
key: 'mssql.non-local_db.log_send_queue_size["{#GROUP_NAME}*{#REPLICA_NAME}*{#DBNAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
units: B
|
|
description: 'Amount of the log records of the primary database that has not been sent to the secondary databases.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.log_send_queue_size
|
|
- type: MULTIPLIER
|
|
parameters:
|
|
- '1024'
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
master_item:
|
|
key: 'db.odbc.get["{#GROUP_NAME}*{#REPLICA_NAME}*{#DBNAME}_non-local_db.states","{$MSSQL.DSN}"]'
|
|
tags:
|
|
- tag: availability-group
|
|
value: '{#GROUP_NAME}'
|
|
- tag: component
|
|
value: non-local-db
|
|
- tag: non-local-db
|
|
value: '{#DBNAME}'
|
|
trigger_prototypes:
|
|
- uuid: def3b1d47dac4d039bffcc78f955b433
|
|
expression: 'last(/MSSQL by ODBC/mssql.non-local_db.log_send_queue_size["{#GROUP_NAME}*{#REPLICA_NAME}*{#DBNAME}"],#1)>last(/MSSQL by ODBC/mssql.non-local_db.log_send_queue_size["{#GROUP_NAME}*{#REPLICA_NAME}*{#DBNAME}"],#2) and last(/MSSQL by ODBC/mssql.non-local_db.log_send_queue_size["{#GROUP_NAME}*{#REPLICA_NAME}*{#DBNAME}"],#2)>last(/MSSQL by ODBC/mssql.non-local_db.log_send_queue_size["{#GROUP_NAME}*{#REPLICA_NAME}*{#DBNAME}"],#3)'
|
|
name: 'MSSQL AG ''{#GROUP_NAME}'' Non-Local DB ''*{#REPLICA_NAME}*{#DBNAME}'': Log queue size is growing'
|
|
priority: HIGH
|
|
description: 'The log records of the primary database are not sent to the secondary databases.'
|
|
tags:
|
|
- tag: availability-group
|
|
value: '{#GROUP_NAME}'
|
|
- tag: non-local-db
|
|
value: '{#DBNAME}'
|
|
- tag: scope
|
|
value: capacity
|
|
- uuid: 66d9735553754192bb9acf7b27c1501f
|
|
name: 'MSSQL AG ''{#GROUP_NAME}'' Non-Local DB ''*{#REPLICA_NAME}*{#DBNAME}'': Redo log queue size'
|
|
type: DEPENDENT
|
|
key: 'mssql.non-local_db.redo_queue_size["{#GROUP_NAME}*{#REPLICA_NAME}*{#DBNAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
units: B
|
|
description: 'Amount of log records in the log files of the secondary replica that has not yet been redone.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.redo_queue_size
|
|
- type: MULTIPLIER
|
|
parameters:
|
|
- '1024'
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
master_item:
|
|
key: 'db.odbc.get["{#GROUP_NAME}*{#REPLICA_NAME}*{#DBNAME}_non-local_db.states","{$MSSQL.DSN}"]'
|
|
tags:
|
|
- tag: availability-group
|
|
value: '{#GROUP_NAME}'
|
|
- tag: component
|
|
value: non-local-db
|
|
- tag: non-local-db
|
|
value: '{#DBNAME}'
|
|
trigger_prototypes:
|
|
- uuid: 2102f244f58b4fe981d569fe0fe599a9
|
|
expression: 'last(/MSSQL by ODBC/mssql.non-local_db.redo_queue_size["{#GROUP_NAME}*{#REPLICA_NAME}*{#DBNAME}"],#1)>last(/MSSQL by ODBC/mssql.non-local_db.redo_queue_size["{#GROUP_NAME}*{#REPLICA_NAME}*{#DBNAME}"],#2) and last(/MSSQL by ODBC/mssql.non-local_db.redo_queue_size["{#GROUP_NAME}*{#REPLICA_NAME}*{#DBNAME}"],#2)>last(/MSSQL by ODBC/mssql.non-local_db.redo_queue_size["{#GROUP_NAME}*{#REPLICA_NAME}*{#DBNAME}"],#3)'
|
|
name: 'MSSQL AG ''{#GROUP_NAME}'' Non-Local DB ''*{#REPLICA_NAME}*{#DBNAME}'': Redo log queue size is growing'
|
|
priority: HIGH
|
|
description: 'The log records in the log files of the secondary replica have not yet been redone.'
|
|
tags:
|
|
- tag: availability-group
|
|
value: '{#GROUP_NAME}'
|
|
- tag: non-local-db
|
|
value: '{#DBNAME}'
|
|
- tag: scope
|
|
value: capacity
|
|
preprocessing:
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1d
|
|
- uuid: 8c279cd6442f48bb9c6001ea6d3acfa0
|
|
name: 'Replication discovery'
|
|
type: ODBC
|
|
key: 'db.odbc.discovery[replicas,"{$MSSQL.DSN}"]'
|
|
delay: 1h
|
|
params: |
|
|
SELECT ag.name as group_name,
|
|
arcs.replica_server_name as replica_name
|
|
FROM sys.dm_hadr_availability_replica_cluster_states as arcs
|
|
JOIN sys.availability_groups ag
|
|
ON ag.group_id = arcs.group_id
|
|
JOIN sys.dm_hadr_availability_replica_states ars
|
|
ON ars.replica_id = arcs.replica_id
|
|
username: '{$MSSQL.USER}'
|
|
password: '{$MSSQL.PASSWORD}'
|
|
description: 'Discovery of the database replicas.'
|
|
item_prototypes:
|
|
- uuid: 287c420d8d5346d7a21de580ce1836eb
|
|
name: 'MSSQL AG ''{#GROUP_NAME}'' Replica ''{#REPLICA_NAME}'': Get the replica state'
|
|
type: ODBC
|
|
key: 'db.odbc.get["{#GROUP_NAME}_{#REPLICA_NAME}_replica.state","{$MSSQL.DSN}"]'
|
|
history: '0'
|
|
trends: '0'
|
|
value_type: TEXT
|
|
params: |
|
|
SELECT
|
|
ars.connected_state as connected_state,
|
|
ars.is_local as is_local,
|
|
arcs.join_state as join_state,
|
|
ISNULL(ars.operational_state, 6) as operational_state,
|
|
ISNULL(ars.recovery_health, 2) as recovery_health,
|
|
ars.role as role,
|
|
ars.synchronization_health as synchronization_health,
|
|
ag.name as group_name,
|
|
arcs.replica_server_name as replica_name
|
|
FROM
|
|
sys.dm_hadr_availability_replica_cluster_states as arcs
|
|
JOIN sys.availability_groups ag ON ag.group_id = arcs.group_id
|
|
AND ag.name = '{#GROUP_NAME}'
|
|
JOIN sys.dm_hadr_availability_replica_states ars ON ars.replica_id = arcs.replica_id
|
|
AND arcs.replica_server_name = '{#REPLICA_NAME}'
|
|
username: '{$MSSQL.USER}'
|
|
password: '{$MSSQL.PASSWORD}'
|
|
description: 'Getting the database replica states.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.first()
|
|
error_handler: DISCARD_VALUE
|
|
tags:
|
|
- tag: availability-group
|
|
value: '{#GROUP_NAME}'
|
|
- tag: component
|
|
value: raw
|
|
- tag: replica
|
|
value: '{#REPLICA_NAME}'
|
|
- uuid: 7403de703b024d428edfc59f3aa9181b
|
|
name: 'MSSQL AG ''{#GROUP_NAME}'' Replica ''{#REPLICA_NAME}'': Connected state'
|
|
type: DEPENDENT
|
|
key: 'mssql.replica.connected_state["{#GROUP_NAME}_{#REPLICA_NAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
description: |
|
|
Whether a secondary replica is currently connected to the primary replica:
|
|
0 : Disconnected. The response of an availability replica to the DISCONNECTED state depends on its role:
|
|
On the primary replica, if a secondary replica is disconnected, its secondary databases are marked as NOT SYNCHRONIZED on the primary replica, which waits for the secondary to reconnect;
|
|
On a secondary replica, upon detecting that it is disconnected, the secondary replica attempts to reconnect to the primary replica.
|
|
1 : Connected. Each primary replica tracks the connection state for every secondary replica in the same availability group. Secondary replicas track the connection state of only the primary replica.
|
|
valuemap:
|
|
name: 'MSSQL AG Connected state'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.connected_state
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
master_item:
|
|
key: 'db.odbc.get["{#GROUP_NAME}_{#REPLICA_NAME}_replica.state","{$MSSQL.DSN}"]'
|
|
tags:
|
|
- tag: availability-group
|
|
value: '{#GROUP_NAME}'
|
|
- tag: component
|
|
value: replica
|
|
- tag: replica
|
|
value: '{#REPLICA_NAME}'
|
|
- uuid: 51cb8f4fe5954c0ea21eff6102034862
|
|
name: 'MSSQL AG ''{#GROUP_NAME}'' Replica ''{#REPLICA_NAME}'': Is local'
|
|
type: DEPENDENT
|
|
key: 'mssql.replica.is_local["{#GROUP_NAME}_{#REPLICA_NAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
description: |
|
|
Whether the replica is local:
|
|
0 = Indicates a remote secondary replica in an availability group whose primary replica is hosted by the local server instance. This value occurs only on the primary replica location.
|
|
1 = Indicates a local replica. On secondary replicas, this is the only available value for the availability group to which the replica belongs.
|
|
valuemap:
|
|
name: 'MSSQL - Yes / No'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.is_local
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
master_item:
|
|
key: 'db.odbc.get["{#GROUP_NAME}_{#REPLICA_NAME}_replica.state","{$MSSQL.DSN}"]'
|
|
tags:
|
|
- tag: availability-group
|
|
value: '{#GROUP_NAME}'
|
|
- tag: component
|
|
value: replica
|
|
- tag: replica
|
|
value: '{#REPLICA_NAME}'
|
|
- uuid: ec1b71f75c4247c28d5830bd8004f0ac
|
|
name: 'MSSQL AG ''{#GROUP_NAME}'' Replica ''{#REPLICA_NAME}'': Join state'
|
|
type: DEPENDENT
|
|
key: 'mssql.replica.join_state["{#GROUP_NAME}_{#REPLICA_NAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
description: |
|
|
0 = Not joined
|
|
1 = Joined, standalone instance
|
|
2 = Joined, failover cluster instance
|
|
valuemap:
|
|
name: 'MSSQL AG Join state'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.join_state
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
master_item:
|
|
key: 'db.odbc.get["{#GROUP_NAME}_{#REPLICA_NAME}_replica.state","{$MSSQL.DSN}"]'
|
|
tags:
|
|
- tag: availability-group
|
|
value: '{#GROUP_NAME}'
|
|
- tag: component
|
|
value: replica
|
|
- tag: replica
|
|
value: '{#REPLICA_NAME}'
|
|
- uuid: ad3e6d5bf510496eb050b9a05f8341e1
|
|
name: 'MSSQL AG ''{#GROUP_NAME}'' Replica ''{#REPLICA_NAME}'': Operational state'
|
|
type: DEPENDENT
|
|
key: 'mssql.replica.operational_state["{#GROUP_NAME}_{#REPLICA_NAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
description: |
|
|
Current operational state of the replica:
|
|
0 = Pending failover
|
|
1 = Pending
|
|
2 = Online
|
|
3 = Offline
|
|
4 = Failed
|
|
5 = Failed, no quorum
|
|
6 = Not local
|
|
valuemap:
|
|
name: 'MSSQL AG Operational state'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.operational_state
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
master_item:
|
|
key: 'db.odbc.get["{#GROUP_NAME}_{#REPLICA_NAME}_replica.state","{$MSSQL.DSN}"]'
|
|
tags:
|
|
- tag: availability-group
|
|
value: '{#GROUP_NAME}'
|
|
- tag: component
|
|
value: replica
|
|
- tag: replica
|
|
value: '{#REPLICA_NAME}'
|
|
trigger_prototypes:
|
|
- uuid: 0192e9d5795a4d46acb8de29f710edcd
|
|
expression: 'last(/MSSQL by ODBC/mssql.replica.operational_state["{#GROUP_NAME}_{#REPLICA_NAME}"])=0 or last(/MSSQL by ODBC/mssql.replica.operational_state["{#GROUP_NAME}_{#REPLICA_NAME}"])=1 or last(/MSSQL by ODBC/mssql.replica.operational_state["{#GROUP_NAME}_{#REPLICA_NAME}"])=3'
|
|
name: 'MSSQL AG ''{#GROUP_NAME}'' Replica ''{#REPLICA_NAME}'': {#REPLICA_NAME} is {ITEM.VALUE}'
|
|
priority: WARNING
|
|
description: 'The operational state of the replica in a given availability group is "Pending" or "Offline".'
|
|
tags:
|
|
- tag: availability-group
|
|
value: '{#GROUP_NAME}'
|
|
- tag: replica
|
|
value: '{#REPLICA_NAME}'
|
|
- tag: scope
|
|
value: availability
|
|
- uuid: 3f2006b9ae114e01b442b34fec9373d3
|
|
expression: 'last(/MSSQL by ODBC/mssql.replica.operational_state["{#GROUP_NAME}_{#REPLICA_NAME}"])=4'
|
|
name: 'MSSQL AG ''{#GROUP_NAME}'' Replica ''{#REPLICA_NAME}'': {#REPLICA_NAME} is {ITEM.VALUE}'
|
|
priority: AVERAGE
|
|
description: 'The operational state of the replica in a given availability group is "Failed".'
|
|
tags:
|
|
- tag: availability-group
|
|
value: '{#GROUP_NAME}'
|
|
- tag: replica
|
|
value: '{#REPLICA_NAME}'
|
|
- tag: scope
|
|
value: availability
|
|
- uuid: 94ea79848a5048d8ae417df709b8d612
|
|
expression: 'last(/MSSQL by ODBC/mssql.replica.operational_state["{#GROUP_NAME}_{#REPLICA_NAME}"])=5'
|
|
name: 'MSSQL AG ''{#GROUP_NAME}'' Replica ''{#REPLICA_NAME}'': {#REPLICA_NAME} is {ITEM.VALUE}'
|
|
priority: HIGH
|
|
description: 'The operational state of the replica in a given availability group is "Failed, no quorum".'
|
|
tags:
|
|
- tag: availability-group
|
|
value: '{#GROUP_NAME}'
|
|
- tag: replica
|
|
value: '{#REPLICA_NAME}'
|
|
- tag: scope
|
|
value: availability
|
|
- uuid: 2a58cab2197348d997bdb69bb128414d
|
|
name: 'MSSQL AG ''{#GROUP_NAME}'' Replica ''{#REPLICA_NAME}'': Recovery health'
|
|
type: DEPENDENT
|
|
key: 'mssql.replica.recovery_health["{#GROUP_NAME}_{#REPLICA_NAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
description: |
|
|
Rollup of the database_state column of the sys.dm_hadr_database_replica_states dynamic management view:
|
|
0 : In progress. At least one joined database has a database state other than ONLINE
|
|
(database_state is not 0).
|
|
1 : Online. All the joined databases have a database state of ONLINE (database_state is 0).
|
|
valuemap:
|
|
name: 'MSSQL AG Recovery health'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.recovery_health
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
master_item:
|
|
key: 'db.odbc.get["{#GROUP_NAME}_{#REPLICA_NAME}_replica.state","{$MSSQL.DSN}"]'
|
|
tags:
|
|
- tag: availability-group
|
|
value: '{#GROUP_NAME}'
|
|
- tag: component
|
|
value: replica
|
|
- tag: replica
|
|
value: '{#REPLICA_NAME}'
|
|
trigger_prototypes:
|
|
- uuid: 58f508b855364d769e2be977793a03c8
|
|
expression: 'last(/MSSQL by ODBC/mssql.replica.recovery_health["{#GROUP_NAME}_{#REPLICA_NAME}"])=0'
|
|
name: 'MSSQL AG ''{#GROUP_NAME}'' Replica ''{#REPLICA_NAME}'': {#REPLICA_NAME} Recovery in progress'
|
|
priority: INFO
|
|
description: 'At least one joined database has a database state other than ONLINE.'
|
|
tags:
|
|
- tag: availability-group
|
|
value: '{#GROUP_NAME}'
|
|
- tag: replica
|
|
value: '{#REPLICA_NAME}'
|
|
- tag: scope
|
|
value: notice
|
|
- uuid: 5139a4cef5ac46d2ab34cd8bda1c84ac
|
|
name: 'MSSQL AG ''{#GROUP_NAME}'' Replica ''{#REPLICA_NAME}'': Role'
|
|
type: DEPENDENT
|
|
key: 'mssql.replica.role["{#GROUP_NAME}_{#REPLICA_NAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
description: |
|
|
Current Always On availability groups role of a local replica or a connected remote replica:
|
|
0 = Resolving
|
|
1 = Primary
|
|
2 = Secondary
|
|
valuemap:
|
|
name: 'MSSQL AG Role'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.role
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
master_item:
|
|
key: 'db.odbc.get["{#GROUP_NAME}_{#REPLICA_NAME}_replica.state","{$MSSQL.DSN}"]'
|
|
tags:
|
|
- tag: availability-group
|
|
value: '{#GROUP_NAME}'
|
|
- tag: component
|
|
value: replica
|
|
- tag: replica
|
|
value: '{#REPLICA_NAME}'
|
|
- uuid: 5655f95df0e043acba246f65e4905b0d
|
|
name: 'MSSQL AG ''{#GROUP_NAME}'' Replica ''{#REPLICA_NAME}'': Sync health'
|
|
type: DEPENDENT
|
|
key: 'mssql.replica.synchronization_health["{#GROUP_NAME}_{#REPLICA_NAME}"]'
|
|
delay: '0'
|
|
history: 7d
|
|
description: |
|
|
Reflects a rollup of the database synchronization state (synchronization_state)of all joined availability databases (also known as replicas) and the availability mode of the replica (synchronous-commit or asynchronous-commit mode). The rollup will reflect the least healthy accumulated state of the databases on the replica:
|
|
0 : Not healthy. At least one joined database is in the NOT SYNCHRONIZING state.
|
|
1 : Partially healthy. Some replicas are not in the target synchronization state: synchronous-commit replicas should be synchronized, and asynchronous-commit replicas should be synchronizing.
|
|
2 : Healthy. All replicas are in the target synchronization state: synchronous-commit replicas are synchronized, and asynchronous-commit replicas are synchronizing.
|
|
valuemap:
|
|
name: 'MSSQL AG Synchronization health'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.synchronization_health
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
master_item:
|
|
key: 'db.odbc.get["{#GROUP_NAME}_{#REPLICA_NAME}_replica.state","{$MSSQL.DSN}"]'
|
|
tags:
|
|
- tag: availability-group
|
|
value: '{#GROUP_NAME}'
|
|
- tag: component
|
|
value: replica
|
|
- tag: replica
|
|
value: '{#REPLICA_NAME}'
|
|
trigger_prototypes:
|
|
- uuid: f2f4d198ad2242088d867abe6fac4ecd
|
|
expression: 'last(/MSSQL by ODBC/mssql.replica.synchronization_health["{#GROUP_NAME}_{#REPLICA_NAME}"])=0'
|
|
name: 'MSSQL AG ''{#GROUP_NAME}'' Replica ''{#REPLICA_NAME}'': {#REPLICA_NAME} is Not healthy'
|
|
priority: AVERAGE
|
|
description: 'At least one joined database is in the NOT SYNCHRONIZING state.'
|
|
tags:
|
|
- tag: availability-group
|
|
value: '{#GROUP_NAME}'
|
|
- tag: replica
|
|
value: '{#REPLICA_NAME}'
|
|
- tag: scope
|
|
value: availability
|
|
- uuid: 070af612aa7248588fc058d8f9fb9929
|
|
expression: 'last(/MSSQL by ODBC/mssql.replica.synchronization_health["{#GROUP_NAME}_{#REPLICA_NAME}"])=1'
|
|
name: 'MSSQL AG ''{#GROUP_NAME}'' Replica ''{#REPLICA_NAME}'': {#REPLICA_NAME} is Partially healthy'
|
|
priority: WARNING
|
|
description: 'Some replicas are not in the target synchronization state: synchronous-commit replicas should be synchronized, and asynchronous-commit replicas should be synchronizing.'
|
|
tags:
|
|
- tag: availability-group
|
|
value: '{#GROUP_NAME}'
|
|
- tag: replica
|
|
value: '{#REPLICA_NAME}'
|
|
- tag: scope
|
|
value: availability
|
|
trigger_prototypes:
|
|
- uuid: 7c6afc5596e94af0979bd20d5ef542ea
|
|
expression: 'last(/MSSQL by ODBC/mssql.replica.connected_state["{#GROUP_NAME}_{#REPLICA_NAME}"])=0 and last(/MSSQL by ODBC/mssql.replica.role["{#GROUP_NAME}_{#REPLICA_NAME}"])=2'
|
|
name: 'MSSQL AG ''{#GROUP_NAME}'' Replica ''{#REPLICA_NAME}'': {#REPLICA_NAME} is disconnected'
|
|
priority: WARNING
|
|
description: |
|
|
The response of an availability replica to the DISCONNECTED state depends on its role:
|
|
On the primary replica, if a secondary replica is disconnected, its secondary databases are marked as NOT SYNCHRONIZED on the primary replica, which waits for the secondary to reconnect; On a secondary replica, upon detecting that it is disconnected, the secondary replica attempts to reconnect to the primary replica.
|
|
tags:
|
|
- tag: availability-group
|
|
value: '{#GROUP_NAME}'
|
|
- tag: replica
|
|
value: '{#REPLICA_NAME}'
|
|
- tag: scope
|
|
value: availability
|
|
preprocessing:
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1d
|
|
tags:
|
|
- tag: class
|
|
value: database
|
|
- tag: target
|
|
value: mssql
|
|
macros:
|
|
- macro: '{$MSSQL.AVERAGE_WAIT_TIME.MAX}'
|
|
value: '500'
|
|
description: 'The maximum average wait time in ms - for the trigger expression.'
|
|
- macro: '{$MSSQL.BACKUP_DIFF.CRIT}'
|
|
value: 6d
|
|
description: 'The maximum days without a differential backup - for the High trigger expression.'
|
|
- macro: '{$MSSQL.BACKUP_DIFF.WARN}'
|
|
value: 3d
|
|
description: 'The maximum days without a differential backup - for the Warning trigger expression.'
|
|
- macro: '{$MSSQL.BACKUP_DURATION.WARN}'
|
|
value: 1h
|
|
description: 'The maximum job duration - for the Warning trigger expression.'
|
|
- macro: '{$MSSQL.BACKUP_FULL.CRIT}'
|
|
value: 10d
|
|
description: 'The maximum days without a full backup - for the High trigger expression.'
|
|
- macro: '{$MSSQL.BACKUP_FULL.WARN}'
|
|
value: 9d
|
|
description: 'The maximum days without a full backup - for the Warning trigger expression.'
|
|
- macro: '{$MSSQL.BACKUP_LOG.CRIT}'
|
|
value: 8h
|
|
description: 'The maximum days without a log backup - for the High trigger expression.'
|
|
- macro: '{$MSSQL.BACKUP_LOG.WARN}'
|
|
value: 4h
|
|
description: 'The maximum days without a log backup - for the Warning trigger expression.'
|
|
- macro: '{$MSSQL.BUFFER_CACHE_RATIO.MIN.CRIT}'
|
|
value: '30'
|
|
description: 'The minimum % buffer cache hit ratio - for the High trigger expression.'
|
|
- macro: '{$MSSQL.BUFFER_CACHE_RATIO.MIN.WARN}'
|
|
value: '50'
|
|
description: 'The minimum % buffer cache hit ratio - for the Warning trigger expression.'
|
|
- macro: '{$MSSQL.DBNAME.MATCHES}'
|
|
value: '.*'
|
|
description: 'This macro is used in database discovery. It can be overridden on a host or linked template level.'
|
|
- macro: '{$MSSQL.DBNAME.NOT_MATCHES}'
|
|
value: master|tempdb|model|msdb
|
|
description: 'This macro is used in database discovery. It can be overridden on a host or linked template level.'
|
|
- macro: '{$MSSQL.DEADLOCKS.MAX}'
|
|
value: '1'
|
|
description: 'The maximum deadlocks per second - for the trigger expression.'
|
|
- macro: '{$MSSQL.DSN}'
|
|
value: '<Put your DSN here>'
|
|
description: 'System data source name.'
|
|
- macro: '{$MSSQL.FREE_LIST_STALLS.MAX}'
|
|
value: '2'
|
|
description: 'The maximum free list stalls per second - for the trigger expression.'
|
|
- macro: '{$MSSQL.INSTANCE}'
|
|
value: SQLServer
|
|
description: 'The instance name for the default instance is SQLServer. For named instance set the macro value as MSSQL$instance name.'
|
|
- macro: '{$MSSQL.JOB.MATCHES}'
|
|
value: '.*'
|
|
description: 'This macro is used in job discovery. It can be overridden on a host or linked template level.'
|
|
- macro: '{$MSSQL.JOB.NOT_MATCHES}'
|
|
value: CHANGE_IF_NEEDED
|
|
description: 'This macro is used in job discovery. It can be overridden on a host or linked template level.'
|
|
- macro: '{$MSSQL.LAZY_WRITES.MAX}'
|
|
value: '20'
|
|
description: 'The maximum lazy writes per second - for the trigger expression.'
|
|
- macro: '{$MSSQL.LOCK_REQUESTS.MAX}'
|
|
value: '1000'
|
|
description: 'The maximum lock requests per second - for the trigger expression.'
|
|
- macro: '{$MSSQL.LOCK_TIMEOUTS.MAX}'
|
|
value: '1'
|
|
description: 'The maximum lock timeouts per second - for the trigger expression.'
|
|
- macro: '{$MSSQL.LOG_FLUSH_WAITS.MAX}'
|
|
value: '1'
|
|
description: 'The maximum log flush waits per second - for the trigger expression.'
|
|
- macro: '{$MSSQL.LOG_FLUSH_WAIT_TIME.MAX}'
|
|
value: '1'
|
|
description: 'The maximum log flush wait time in ms - for the trigger expression.'
|
|
- macro: '{$MSSQL.PAGE_LIFE_EXPECTANCY.MIN}'
|
|
value: '300'
|
|
description: 'The minimum page life expectancy - for the trigger expression.'
|
|
- macro: '{$MSSQL.PAGE_READS.MAX}'
|
|
value: '90'
|
|
description: 'The maximum page reads per second - for the trigger expression.'
|
|
- macro: '{$MSSQL.PAGE_WRITES.MAX}'
|
|
value: '90'
|
|
description: 'The maximum page writes per second - for the trigger expression.'
|
|
- macro: '{$MSSQL.PASSWORD}'
|
|
value: '<Put your password here>'
|
|
description: 'MSSQL user password.'
|
|
- macro: '{$MSSQL.PERCENT_COMPILATIONS.MAX}'
|
|
value: '10'
|
|
description: 'The maximum percentage of Transact-SQL compilations - for the trigger expression.'
|
|
- macro: '{$MSSQL.PERCENT_LOG_USED.MAX}'
|
|
value: '80'
|
|
description: 'The maximum percentage of log used - for the trigger expression.'
|
|
- macro: '{$MSSQL.PERCENT_READAHEAD.MAX}'
|
|
value: '20'
|
|
description: 'The maximum percentage of pages read/sec in anticipation of use - for the trigger expression.'
|
|
- macro: '{$MSSQL.PERCENT_RECOMPILATIONS.MAX}'
|
|
value: '10'
|
|
description: 'The maximum percentage of Transact-SQL recompilations - for the trigger expression.'
|
|
- macro: '{$MSSQL.PORT}'
|
|
value: '1433'
|
|
description: 'MSSQL TCP port.'
|
|
- macro: '{$MSSQL.USER}'
|
|
value: '<Put your username here>'
|
|
description: 'MSSQL username.'
|
|
- macro: '{$MSSQL.WORKTABLES_FROM_CACHE_RATIO.MIN.CRIT}'
|
|
value: '90'
|
|
description: 'The minimum percentage of the worktables from cache ratio - for the High trigger expression.'
|
|
- macro: '{$MSSQL.WORK_FILES.MAX}'
|
|
value: '20'
|
|
description: 'The maximum number of work files created per second - for the trigger expression.'
|
|
- macro: '{$MSSQL.WORK_TABLES.MAX}'
|
|
value: '20'
|
|
description: 'The maximum number of work tables created per second - for the trigger expression.'
|
|
dashboards:
|
|
- uuid: 168d5d7b54374d8a951818ba619e0319
|
|
name: 'MSSQL: Overview'
|
|
pages:
|
|
- name: Main
|
|
widgets:
|
|
- type: graph
|
|
width: '12'
|
|
height: '5'
|
|
fields:
|
|
- type: GRAPH
|
|
name: graphid
|
|
value:
|
|
host: 'MSSQL by ODBC'
|
|
name: 'MSSQL: Errors'
|
|
- type: graph
|
|
x: '12'
|
|
width: '12'
|
|
height: '5'
|
|
fields:
|
|
- type: GRAPH
|
|
name: graphid
|
|
value:
|
|
host: 'MSSQL by ODBC'
|
|
name: 'MSSQL: Locks'
|
|
- type: graph
|
|
'y': '5'
|
|
width: '12'
|
|
height: '5'
|
|
fields:
|
|
- type: GRAPH
|
|
name: graphid
|
|
value:
|
|
host: 'MSSQL by ODBC'
|
|
name: 'MSSQL: Server memory'
|
|
- type: graph
|
|
x: '12'
|
|
'y': '5'
|
|
width: '12'
|
|
height: '5'
|
|
fields:
|
|
- type: GRAPH
|
|
name: graphid
|
|
value:
|
|
host: 'MSSQL by ODBC'
|
|
name: 'MSSQL: Memory/cache load'
|
|
- type: graph
|
|
'y': '10'
|
|
width: '12'
|
|
height: '5'
|
|
fields:
|
|
- type: GRAPH
|
|
name: graphid
|
|
value:
|
|
host: 'MSSQL by ODBC'
|
|
name: 'MSSQL: Waits per second'
|
|
- type: graph
|
|
x: '12'
|
|
'y': '10'
|
|
width: '12'
|
|
height: '5'
|
|
fields:
|
|
- type: GRAPH
|
|
name: graphid
|
|
value:
|
|
host: 'MSSQL by ODBC'
|
|
name: 'MSSQL: Wait times'
|
|
- type: graph
|
|
'y': '15'
|
|
width: '12'
|
|
height: '5'
|
|
fields:
|
|
- type: GRAPH
|
|
name: graphid
|
|
value:
|
|
host: 'MSSQL by ODBC'
|
|
name: 'MSSQL: Database pages'
|
|
- type: graph
|
|
x: '12'
|
|
'y': '15'
|
|
width: '12'
|
|
height: '5'
|
|
fields:
|
|
- type: GRAPH
|
|
name: graphid
|
|
value:
|
|
host: 'MSSQL by ODBC'
|
|
name: 'MSSQL: Cache objects'
|
|
- type: graph
|
|
'y': '20'
|
|
width: '12'
|
|
height: '5'
|
|
fields:
|
|
- type: GRAPH
|
|
name: graphid
|
|
value:
|
|
host: 'MSSQL by ODBC'
|
|
name: 'MSSQL: Transactions'
|
|
- type: graph
|
|
x: '12'
|
|
'y': '20'
|
|
width: '12'
|
|
height: '5'
|
|
fields:
|
|
- type: GRAPH
|
|
name: graphid
|
|
value:
|
|
host: 'MSSQL by ODBC'
|
|
name: 'MSSQL: Compilations'
|
|
- type: graph
|
|
'y': '25'
|
|
width: '12'
|
|
height: '5'
|
|
fields:
|
|
- type: GRAPH
|
|
name: graphid
|
|
value:
|
|
host: 'MSSQL by ODBC'
|
|
name: 'MSSQL: Pages'
|
|
- type: graph
|
|
x: '12'
|
|
'y': '25'
|
|
width: '12'
|
|
height: '5'
|
|
fields:
|
|
- type: GRAPH
|
|
name: graphid
|
|
value:
|
|
host: 'MSSQL by ODBC'
|
|
name: 'MSSQL: Page life expectancy'
|
|
- type: graph
|
|
'y': '30'
|
|
width: '12'
|
|
height: '5'
|
|
fields:
|
|
- type: GRAPH
|
|
name: graphid
|
|
value:
|
|
host: 'MSSQL by ODBC'
|
|
name: 'MSSQL: Memory grants outstanding and pending'
|
|
- type: graph
|
|
x: '12'
|
|
'y': '30'
|
|
width: '12'
|
|
height: '5'
|
|
fields:
|
|
- type: GRAPH
|
|
name: graphid
|
|
value:
|
|
host: 'MSSQL by ODBC'
|
|
name: 'MSSQL: Processes blocked'
|
|
- type: graph
|
|
'y': '35'
|
|
width: '12'
|
|
height: '5'
|
|
fields:
|
|
- type: GRAPH
|
|
name: graphid
|
|
value:
|
|
host: 'MSSQL by ODBC'
|
|
name: 'MSSQL: Access methods'
|
|
- type: graph
|
|
x: '12'
|
|
'y': '35'
|
|
width: '12'
|
|
height: '5'
|
|
fields:
|
|
- type: GRAPH
|
|
name: graphid
|
|
value:
|
|
host: 'MSSQL by ODBC'
|
|
name: 'MSSQL: Auto-params'
|
|
- type: graph
|
|
'y': '40'
|
|
width: '12'
|
|
height: '5'
|
|
fields:
|
|
- type: GRAPH
|
|
name: graphid
|
|
value:
|
|
host: 'MSSQL by ODBC'
|
|
name: 'MSSQL: Logins per second and Logouts per second'
|
|
- name: Databases
|
|
widgets:
|
|
- type: graphprototype
|
|
width: '12'
|
|
height: '15'
|
|
fields:
|
|
- type: INTEGER
|
|
name: columns
|
|
value: '1'
|
|
- type: INTEGER
|
|
name: rows
|
|
value: '3'
|
|
- type: GRAPH_PROTOTYPE
|
|
name: graphid
|
|
value:
|
|
host: 'MSSQL by ODBC'
|
|
name: 'MSSQL DB ''{#DBNAME}'': Size'
|
|
- type: graphprototype
|
|
x: '12'
|
|
width: '12'
|
|
height: '15'
|
|
fields:
|
|
- type: INTEGER
|
|
name: columns
|
|
value: '1'
|
|
- type: INTEGER
|
|
name: rows
|
|
value: '3'
|
|
- type: GRAPH_PROTOTYPE
|
|
name: graphid
|
|
value:
|
|
host: 'MSSQL by ODBC'
|
|
name: 'MSSQL DB ''{#DBNAME}'': Log size'
|
|
valuemaps:
|
|
- uuid: c66ee50a8b3f4b6788b732bb8a6b514e
|
|
name: 'MSSQL - Yes / No'
|
|
mappings:
|
|
- value: '0'
|
|
newvalue: 'No'
|
|
- value: '1'
|
|
newvalue: 'Yes'
|
|
- uuid: bfbb00eb85d747dabeda2954a5d659b7
|
|
name: 'MSSQL AG Connected state'
|
|
mappings:
|
|
- value: '0'
|
|
newvalue: Disconnected
|
|
- value: '1'
|
|
newvalue: Connected
|
|
- uuid: 47413c135c094cdc8b59f18a9b195a78
|
|
name: 'MSSQL AG Join state'
|
|
mappings:
|
|
- value: '0'
|
|
newvalue: 'Not joined'
|
|
- value: '1'
|
|
newvalue: 'Joined, standalone instance'
|
|
- value: '2'
|
|
newvalue: 'Joined, failover cluster instance'
|
|
- uuid: a570f341d9a8470797aecfebd376b2b8
|
|
name: 'MSSQL AG Operational state'
|
|
mappings:
|
|
- value: '0'
|
|
newvalue: 'Pending failover'
|
|
- value: '1'
|
|
newvalue: Pending
|
|
- value: '2'
|
|
newvalue: Online
|
|
- value: '3'
|
|
newvalue: Offline
|
|
- value: '4'
|
|
newvalue: Failed
|
|
- value: '5'
|
|
newvalue: 'Failed, no quorum'
|
|
- value: '6'
|
|
newvalue: 'Replica is not local'
|
|
- uuid: 4ec6a96ff6c64756b2f27e47972fd9f6
|
|
name: 'MSSQL AG Recovery health'
|
|
mappings:
|
|
- value: '0'
|
|
newvalue: 'In progress'
|
|
- value: '1'
|
|
newvalue: Online
|
|
- value: '2'
|
|
newvalue: 'Replica is not local'
|
|
- uuid: 596556fba6064efb8155233371eb2950
|
|
name: 'MSSQL AG Role'
|
|
mappings:
|
|
- value: '0'
|
|
newvalue: Resolving
|
|
- value: '1'
|
|
newvalue: Primary
|
|
- value: '2'
|
|
newvalue: Secondary
|
|
- uuid: 2ab0923b3ce14ffc9dd454114f6b15be
|
|
name: 'MSSQL AG Synchronization health'
|
|
mappings:
|
|
- value: '0'
|
|
newvalue: 'Not healthy'
|
|
- value: '1'
|
|
newvalue: 'Partially healthy'
|
|
- value: '2'
|
|
newvalue: Healthy
|
|
- uuid: bac1a10dad134d50add5bc9550e2ebf3
|
|
name: 'MSSQL DB state'
|
|
mappings:
|
|
- value: '0'
|
|
newvalue: ONLINE
|
|
- value: '1'
|
|
newvalue: RESTORING
|
|
- value: '2'
|
|
newvalue: RECOVERING
|
|
- value: '3'
|
|
newvalue: RECOVERY_PENDING
|
|
- value: '4'
|
|
newvalue: SUSPECT
|
|
- value: '5'
|
|
newvalue: EMERGENCY
|
|
- value: '6'
|
|
newvalue: OFFLINE
|
|
- value: '7'
|
|
newvalue: COPYING
|
|
- value: '10'
|
|
newvalue: OFFLINE_SECONDARY
|
|
- uuid: eefa6e0e6f8b4facbc12004437b7ee8f
|
|
name: 'MSSQL Job Run Status'
|
|
mappings:
|
|
- value: '0'
|
|
newvalue: Failed
|
|
- value: '1'
|
|
newvalue: Succeeded
|
|
- value: '2'
|
|
newvalue: Retry
|
|
- value: '3'
|
|
newvalue: Canceled
|
|
- value: '4'
|
|
newvalue: Running
|
|
- value: '5'
|
|
newvalue: Unknown
|
|
- uuid: 09aaa82ccd6a444b80d5d3bb182fbafd
|
|
name: 'MSSQL Mirroring Role'
|
|
mappings:
|
|
- value: '0'
|
|
newvalue: 'Database is inaccessible or is not mirrored'
|
|
- value: '1'
|
|
newvalue: Principal
|
|
- value: '2'
|
|
newvalue: Mirror
|
|
- uuid: f1c105c262c5476798a93eaa4c46fbda
|
|
name: 'MSSQL Mirroring State'
|
|
mappings:
|
|
- value: '0'
|
|
newvalue: Suspended
|
|
- value: '1'
|
|
newvalue: 'Disconnected from the other partner'
|
|
- value: '2'
|
|
newvalue: Synchronizing
|
|
- value: '3'
|
|
newvalue: 'Pending Failover'
|
|
- value: '4'
|
|
newvalue: Synchronized
|
|
- value: '5'
|
|
newvalue: 'The partners are not synchronized. Failover is not possible now.'
|
|
- value: '6'
|
|
newvalue: 'The partners are synchronized. Failover is potentially possible.'
|
|
- value: '7'
|
|
newvalue: 'Database is inaccessible or is not mirrored'
|
|
- uuid: e70421b2c3db4ce1937791bdb432040e
|
|
name: 'MSSQL Safety level'
|
|
mappings:
|
|
- value: '0'
|
|
newvalue: 'Unknown state'
|
|
- value: '1'
|
|
newvalue: 'Off [asynchronous]'
|
|
- value: '2'
|
|
newvalue: 'Full [synchronous]'
|
|
- value: '3'
|
|
newvalue: 'Database is inaccessible or is not mirrored'
|
|
- uuid: aa9de6e21d08486db04f29e10d11a94c
|
|
name: 'MSSQL Witness state'
|
|
mappings:
|
|
- value: '0'
|
|
newvalue: Unknown
|
|
- value: '1'
|
|
newvalue: Connected
|
|
- value: '2'
|
|
newvalue: Disconnected
|
|
- value: '3'
|
|
newvalue: 'No witness exists'
|
|
- uuid: 03cde96b90a641598db572a662dc2064
|
|
name: 'Service state'
|
|
mappings:
|
|
- value: '0'
|
|
newvalue: Down
|
|
- value: '1'
|
|
newvalue: Up
|
|
triggers:
|
|
- uuid: a1397bd4e9334a24a34dba0687b263e6
|
|
expression: 'last(/MSSQL by ODBC/mssql.forwarded_records_sec.rate) * 100 > 10 * last(/MSSQL by ODBC/mssql.batch_requests_sec.rate)'
|
|
name: 'MSSQL: Too frequently using pointers'
|
|
priority: WARNING
|
|
description: 'Rows with varchar columns can experience expansion when varchar values are updated with a longer string. In the case where the row cannot fit in the existing page, the row migrates and access to the row will traverse a pointer. This only happens on heaps (tables without clustered indexes). Evaluate clustered index for heap tables. In cases where clustered indexes cannot be used, drop non-clustered indexes, build a clustered index to reorg pages and rows, drop the clustered index, then recreate non-clustered indexes.'
|
|
tags:
|
|
- tag: scope
|
|
value: performance
|
|
- uuid: 2a58729eb605461b853ec4e855878226
|
|
expression: 'last(/MSSQL by ODBC/mssql.readahead_pages_sec.rate) > {$MSSQL.PERCENT_READAHEAD.MAX} / 100 * last(/MSSQL by ODBC/mssql.page_reads_sec.rate)'
|
|
name: 'MSSQL: Too many physical reads occurring'
|
|
priority: WARNING
|
|
description: 'If this value makes up even a sizeable minority of the total Page Reads/sec (say, greater than 20% of the total page reads), you may have too many physical reads occurring.'
|
|
tags:
|
|
- tag: scope
|
|
value: performance
|
|
graphs:
|
|
- uuid: d2db0e08beb6445a8b5dd9fb46249265
|
|
name: 'MSSQL: Access methods'
|
|
graph_items:
|
|
- color: 199C0D
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.forwarded_records_sec.rate
|
|
- sortorder: '1'
|
|
color: F63100
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.full_scans_sec.rate
|
|
- sortorder: '2'
|
|
color: 00611C
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.index_searches_sec.rate
|
|
- sortorder: '3'
|
|
color: F7941D
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.page_splits_sec.rate
|
|
- sortorder: '4'
|
|
color: FC6EA3
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.workfiles_created_sec.rate
|
|
- sortorder: '5'
|
|
color: 6C59DC
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.worktables_created_sec.rate
|
|
- uuid: f22186d86d9346fe9e1f3292e1f0017c
|
|
name: 'MSSQL: Auto-params'
|
|
graph_items:
|
|
- color: 199C0D
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.autoparam_attempts_sec.rate
|
|
- sortorder: '1'
|
|
color: F63100
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.failed_autoparams_sec.rate
|
|
- sortorder: '2'
|
|
color: 00611C
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.safe_autoparams_sec.rate
|
|
- sortorder: '3'
|
|
color: F7941D
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.unsafe_autoparams_sec.rate
|
|
- uuid: 24ef7368fb364616892c4928ba6167c6
|
|
name: 'MSSQL: Cache objects'
|
|
graph_items:
|
|
- color: 199C0D
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.cache_object_counts
|
|
- sortorder: '1'
|
|
color: F63100
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.cache_objects_in_use
|
|
- uuid: 1f713999d38745b6bb2828e397a32970
|
|
name: 'MSSQL: Compilations'
|
|
graph_items:
|
|
- color: 199C0D
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.sql_compilations_sec.rate
|
|
- sortorder: '1'
|
|
color: F63100
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.sql_compilations_sec.rate
|
|
- uuid: 91af398cfb86472ba4a69e3df0816be7
|
|
name: 'MSSQL: Database pages'
|
|
graph_items:
|
|
- color: 199C0D
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.database_pages
|
|
- sortorder: '1'
|
|
color: F63100
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.target_pages
|
|
- uuid: 0c9aaf223d6f4ba9bd17b0289af4bbe2
|
|
name: 'MSSQL: Errors'
|
|
graph_items:
|
|
- color: 199C0D
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.errors_sec.rate
|
|
- sortorder: '1'
|
|
color: F63100
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.offline_errors_sec.rate
|
|
- sortorder: '2'
|
|
color: 00611C
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.info_errors_sec.rate
|
|
- sortorder: '3'
|
|
color: F7941D
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.kill_connection_errors_sec.rate
|
|
- sortorder: '4'
|
|
color: FC6EA3
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.user_errors_sec.rate
|
|
- uuid: e35985317393409b9a764adcb05f07d0
|
|
name: 'MSSQL: Locks'
|
|
graph_items:
|
|
- color: 199C0D
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.lock_requests_sec.rate
|
|
- sortorder: '1'
|
|
color: F63100
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.lock_timeouts_sec.rate
|
|
- sortorder: '2'
|
|
color: 00611C
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.number_deadlocks_sec.rate
|
|
- sortorder: '3'
|
|
color: F7941D
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.lock_waits_sec.rate
|
|
- sortorder: '4'
|
|
color: FC6EA3
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.average_wait_time
|
|
- uuid: 8796ad9cc04f48cdbe8ef2cb5f429997
|
|
name: 'MSSQL: Logins per second and Logouts per second'
|
|
graph_items:
|
|
- color: 199C0D
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.logins_sec.rate
|
|
- sortorder: '1'
|
|
color: F63100
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.logouts_sec.rate
|
|
- uuid: bc588f8933d846a19accdb66eb29ccb9
|
|
name: 'MSSQL: Memory/cache load'
|
|
graph_items:
|
|
- color: 199C0D
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.cache_hit_ratio
|
|
- sortorder: '1'
|
|
color: F63100
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.buffer_cache_hit_ratio
|
|
- uuid: 3d431f6cc6d34ef5820f2a24f3872b41
|
|
name: 'MSSQL: Memory grants outstanding and pending'
|
|
graph_items:
|
|
- color: 199C0D
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.memory_grants_outstanding
|
|
- sortorder: '1'
|
|
color: F63100
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.memory_grants_pending
|
|
- uuid: 0f0bc58e0c18421591d265f81c000021
|
|
name: 'MSSQL: Page life expectancy'
|
|
graph_items:
|
|
- color: 199C0D
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.page_life_expectancy
|
|
- uuid: 2b1d0e42f61a4312998775d21f7cabb7
|
|
name: 'MSSQL: Pages'
|
|
graph_items:
|
|
- color: 199C0D
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.page_lookups_sec.rate
|
|
- sortorder: '1'
|
|
color: F63100
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.page_reads_sec.rate
|
|
- sortorder: '2'
|
|
color: 00611C
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.page_writes_sec.rate
|
|
- sortorder: '3'
|
|
color: F7941D
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.readahead_pages_sec.rate
|
|
- sortorder: '4'
|
|
color: FC6EA3
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.checkpoint_pages_sec.rate
|
|
- sortorder: '5'
|
|
color: 6C59DC
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.free_list_stalls_sec.rate
|
|
- sortorder: '6'
|
|
color: C7A72D
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.lazy_writes_sec.rate
|
|
- uuid: 2e9273b0472c4a3e9049bea3548301d5
|
|
name: 'MSSQL: Processes blocked'
|
|
graph_items:
|
|
- color: 199C0D
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.processes_blocked
|
|
- uuid: f124ce3778bd4722bf0d2d598ac31b0f
|
|
name: 'MSSQL: Server memory'
|
|
graph_items:
|
|
- color: 199C0D
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.target_server_memory
|
|
- sortorder: '1'
|
|
color: F63100
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.total_server_memory
|
|
- sortorder: '2'
|
|
color: 00611C
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.granted_workspace_memory
|
|
- sortorder: '3'
|
|
color: F7941D
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.maximum_workspace_memory
|
|
- uuid: 59ffd52c5c334d20870fc209c6c61398
|
|
name: 'MSSQL: Transactions'
|
|
graph_items:
|
|
- color: 199C0D
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.transactions_sec.rate
|
|
- sortorder: '1'
|
|
color: F63100
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.batch_requests_sec.rate
|
|
- uuid: 6979c0bcba0e4ac08c6bfefa0c648d40
|
|
name: 'MSSQL: Waits per second'
|
|
graph_items:
|
|
- color: 199C0D
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.latch_waits_sec.rate
|
|
- sortorder: '1'
|
|
color: F63100
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.lock_waits_sec.rate
|
|
- uuid: 41cc736d93ce45d6aeb6dede77c97f08
|
|
name: 'MSSQL: Wait times'
|
|
graph_items:
|
|
- color: 199C0D
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.average_latch_wait_time
|
|
- sortorder: '1'
|
|
color: F63100
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.total_latch_wait_time
|
|
- sortorder: '2'
|
|
color: 00611C
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.average_wait_time
|
|
- sortorder: '3'
|
|
color: F7941D
|
|
item:
|
|
host: 'MSSQL by ODBC'
|
|
key: mssql.lock_wait_time
|