Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sql server remodel #3618

Merged
merged 21 commits into from
Feb 1, 2018
Merged
Changes from 1 commit
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
32d31ca
Adding code to handle multiple query versions as well as one-time que…
m82labs Oct 2, 2017
439932c
Merge remote-tracking branch 'upstream/master' into SqlServer-Remodel
m82labs Nov 12, 2017
212ca49
Added new queries, a queryVersion config option, and altered the quer…
m82labs Nov 12, 2017
4d886e7
Added config option to specify if AzureDB resource metrics should be …
m82labs Nov 12, 2017
63fa41c
Fixed NULL values returned in performance metrics query.
m82labs Nov 12, 2017
9d9a09d
Added logic to handle errors if "azuerDB" is set to true, but the ins…
m82labs Nov 12, 2017
a4e26ac
Added ability to exclude queries.
m82labs Nov 25, 2017
c81b10b
Added DatabaseIO replacement query.
m82labs Nov 25, 2017
6697655
Added DatabaseIO replacement query.
m82labs Nov 25, 2017
dba7f5b
Syntax fixes, added database properties.
m82labs Dec 4, 2017
c7cef49
Merge remote-tracking branch 'upstream/master' into SqlServer-Remodel
mwilkinson-chub Dec 4, 2017
f0e7cd8
Added memory clerk query.
mwilkinson-chub Dec 4, 2017
3299d63
Added instance and server name. Added comment, added server properties.
mwilkinson-chub Dec 10, 2017
28e0ae6
Added 'instance' and 'server' to all queries.
m82labs Dec 12, 2017
81e2848
Fixed a typo in the memory clerk query.
mwilkinson-chub Dec 12, 2017
b2bffda
Merge remote-tracking branch 'upstream/master' into SqlServer-Remodel
mwilkinson-chub Dec 22, 2017
1fccf86
Updated readme.
mwilkinson-chub Dec 22, 2017
ffb0809
Made a few changes to make this work better for Azure SQL DB customers.
mwilkinson-chub Dec 22, 2017
cb3dba5
Merge remote-tracking branch 'upstream/master' into SqlServer-Remodel
m82labs Jan 16, 2018
fdc0331
Added buffer cache hit ratio, free list stalls, and memory grants pen…
m82labs Jan 16, 2018
5e79fdd
Merge branch 'master' of github.com:influxdata/telegraf into SqlServe…
mwilkinson-chub Jan 26, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Added DatabaseIO replacement query.
  • Loading branch information
m82labs committed Nov 25, 2017
commit c81b10b7ea99ed98f9bb9902df101981f7d1ed44
41 changes: 41 additions & 0 deletions plugins/inputs/sqlserver/sqlserver.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ func initQueries(s *SQLServer) {
if s.QueryVersion == 2 {
queries["PerformanceCounters"] = Query{Script: sqlPerformanceCountersV2, ResultByRow: true}
queries["WaitStatsCategorized"] = Query{Script: sqlWaitStatsCategorizedV2, ResultByRow: false}
queries["DatabaseIO"] = Query{Script: sqlDatabaseIO, ResultByRow: false}
} else {
queries["PerformanceCounters"] = Query{Script: sqlPerformanceCounters, ResultByRow: true}
queries["WaitStatsCategorized"] = Query{Script: sqlWaitStatsCategorized, ResultByRow: false}
Expand Down Expand Up @@ -225,6 +226,45 @@ func init() {
}

// Queries - V2
const sqlDatabaseIO = `SELECT
'sqlserver_database_io' As [measurement],
REPLACE(@@SERVERNAME,'\',':') AS [server],
DB_NAME([vfs].[database_id]) [database_name],
--virtual file latency
CASE
WHEN SUM([num_of_reads]) = 0 THEN 0
ELSE (SUM(CAST([io_stall_read_ms] AS numeric(6,3)))/SUM([num_of_reads]))
END [read_latency_ms],
CASE
WHEN SUM([io_stall_write_ms]) = 0 THEN 0
ELSE (SUM(CAST([io_stall_write_ms] AS numeric(6,3)))/SUM([num_of_writes]))
END [write_latency_ms],
CASE
WHEN (SUM([num_of_reads]) = 0 AND SUM([num_of_writes]) = 0) THEN 0
ELSE (SUM(CAST([io_stall] AS numeric(6,3)))/(SUM([num_of_reads] + [num_of_writes])))
END [io_latency_ms],
--avg bytes per IOP
CASE
WHEN SUM([num_of_reads]) = 0 THEN 0
ELSE (SUM([num_of_bytes_read])/SUM([num_of_reads]))
END [avg_bytes_per_read],
CASE
WHEN SUM([io_stall_write_ms]) = 0 THEN 0
ELSE (SUM([num_of_bytes_written])/SUM([num_of_writes]))
END [avg_bytes_per_write],
CASE
WHEN (SUM([num_of_reads]) = 0 AND SUM([num_of_writes]) = 0) THEN 0
ELSE (SUM([num_of_bytes_read] + [num_of_bytes_written])/SUM([num_of_reads] + [num_of_writes]))
END [avg_bytes_per_io],
SUM([vfs].[size_on_disk_bytes])/1024/1024. [size_on_disk_MB]
FROM [sys].[dm_io_virtual_file_stats](NULL,NULL) AS vfs
INNER JOIN [sys].[master_files] [mf]
ON [vfs].[database_id] = [mf].[database_id]
AND [vfs].[file_id] = [mf].[file_id]
GROUP BY
DB_NAME([vfs].[database_id]);
`

const sqlPerformanceCountersV2 string = `DECLARE @PCounters TABLE
(
object_name nvarchar(128),
Expand Down Expand Up @@ -326,6 +366,7 @@ WHERE (
)

SELECT 'sqlserver_performance' AS [measurement],
REPLACE(@@SERVERNAME,'\',':') AS [server]
pc.object_name AS [object],
pc.counter_name AS [counter],
CASE pc.instance_name WHEN '_Total' THEN 'Total' ELSE ISNULL(pc.instance_name,'') END AS [instance],
Expand Down