Description
Bug report
No BufferPoolRate information when running sql server input against a case sensitive instance
System info:
SQL Server Collation: Latin1_General_BIN (Case sensitive)
Telegraf Version: Telegraf v1.4.2
OS: Windows
Steps to reproduce:
- Add a connection to a case sensitive sql server
- Run telegraf
Expected behavior:
Rretrieve information on specified query below
Actual behavior:
Following query returns no rows on a case sensitive sql server:
SELECT 'Buffer pool rate (bytes/sec)', BufferPoolRate = (1.0cntr_value * 8 * 1024) /
(SELECT 1.0cntr_value FROM sys.dm_os_performance_counters WHERE object_name like '%Buffer Manager%' AND lower(counter_name) = 'Page life expectancy')
FROM sys.dm_os_performance_counters
WHERE object_name like '%Buffer Manager%'
AND counter_name = 'database pages'
Additional info:
Problem with lower and 'database pages' syntax.
This query is contained in sql server input plugin between rows 247 and 251
Proposal:
Replace this query:
SELECT 'Buffer pool rate (bytes/sec)', BufferPoolRate = (1.0cntr_value * 8 * 1024) /
(SELECT 1.0cntr_value FROM sys.dm_os_performance_counters WHERE object_name like '%Buffer Manager%' AND lower(counter_name) = 'Page life expectancy')
FROM sys.dm_os_performance_counters
WHERE object_name like '%Buffer Manager%'
AND counter_name = 'database pages'
By this one:
SELECT 'Buffer pool rate (bytes/sec)', BufferPoolRate = (1.0cntr_value * 8 * 1024) /
(SELECT 1.0cntr_value FROM sys.dm_os_performance_counters WHERE object_name like '%Buffer Manager%' AND counter_name = 'Page life expectancy')
FROM sys.dm_os_performance_counters
WHERE object_name like '%Buffer Manager%'
AND counter_name = 'Database pages'
Regards,
Valérian