Skip to content

Commit 323090d

Browse files
committed
fix comment
1 parent 89f1f20 commit 323090d

3 files changed

Lines changed: 92 additions & 29 deletions

File tree

receiver/sqlserverreceiver/queries.go

Lines changed: 31 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1369,32 +1369,53 @@ IF SERVERPROPERTY('EngineEdition') NOT IN (2,3,4,5,8) BEGIN
13691369
RETURN
13701370
END
13711371
1372+
DECLARE
1373+
@SqlStatement AS nvarchar(max)
1374+
,@EngineEdition AS INT = CAST(SERVERPROPERTY('EngineEdition') AS INT)
1375+
,@JoinClause AS nvarchar(max) = ''
1376+
1377+
IF @EngineEdition = 5
1378+
BEGIN
1379+
SET @JoinClause = N'
1380+
INNER JOIN sys.database_files AS mf WITH (NOLOCK)
1381+
ON vfs.[database_id] = DB_ID() AND vfs.[file_id] = mf.[file_id]'
1382+
END
1383+
ELSE
1384+
BEGIN
1385+
SET @JoinClause = N'
1386+
INNER JOIN sys.master_files AS mf WITH (NOLOCK)
1387+
ON vfs.[database_id] = mf.[database_id] AND vfs.[file_id] = mf.[file_id]'
1388+
END
1389+
1390+
SET @SqlStatement = N'
13721391
SELECT
1373-
'sqlserver_disk_io' AS [measurement]
1374-
,REPLACE(@@SERVERNAME,'\',':') AS [sql_instance]
1392+
''sqlserver_disk_io'' AS [measurement]
1393+
,REPLACE(@@SERVERNAME,''\'','':'') AS [sql_instance]
13751394
,HOST_NAME() AS [computer_name]
13761395
,CASE
1377-
WHEN mf.physical_name LIKE '[A-Z]:\%' THEN LEFT(mf.physical_name, 3)
1378-
ELSE '/'
1396+
WHEN mf.physical_name LIKE ''[A-Z]:\%'' THEN LEFT(mf.physical_name, 3)
1397+
ELSE ''/''
13791398
END AS [disk_drive]
13801399
,SUM(vfs.num_of_reads) AS [read_ops]
13811400
,SUM(vfs.num_of_writes) AS [write_ops]
13821401
,SUM(vfs.num_of_bytes_read) AS [read_bytes]
13831402
,SUM(vfs.num_of_bytes_written) AS [write_bytes]
1384-
FROM sys.dm_io_virtual_file_stats(NULL, NULL) vfs
1385-
INNER JOIN sys.master_files mf ON vfs.database_id = mf.database_id AND vfs.file_id = mf.file_id
1403+
FROM sys.dm_io_virtual_file_stats(NULL, NULL) vfs'
1404+
+ @JoinClause + N'
13861405
WHERE 1=1
13871406
{filter_instance_name}
13881407
GROUP BY CASE
1389-
WHEN mf.physical_name LIKE '[A-Z]:\%' THEN LEFT(mf.physical_name, 3)
1390-
ELSE '/'
1408+
WHEN mf.physical_name LIKE ''[A-Z]:\%'' THEN LEFT(mf.physical_name, 3)
1409+
ELSE ''/''
13911410
END
1392-
OPTION(RECOMPILE)
1411+
OPTION(RECOMPILE)'
1412+
1413+
EXEC sp_executesql @SqlStatement
13931414
`
13941415

13951416
func getSQLServerDiskIOQuery(instanceName string) string {
13961417
if instanceName != "" {
1397-
whereClause := fmt.Sprintf("\tAND @@SERVERNAME = '%s'", instanceName)
1418+
whereClause := fmt.Sprintf("\tAND @@SERVERNAME = ''%s''", instanceName)
13981419
r := strings.NewReplacer("{filter_instance_name}", whereClause)
13991420
return r.Replace(sqlServerDiskIOQuery)
14001421
}

receiver/sqlserverreceiver/testdata/diskIOQueryWithInstanceName.txt

Lines changed: 31 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,24 +6,45 @@ IF SERVERPROPERTY('EngineEdition') NOT IN (2,3,4,5,8) BEGIN
66
RETURN
77
END
88

9+
DECLARE
10+
@SqlStatement AS nvarchar(max)
11+
,@EngineEdition AS INT = CAST(SERVERPROPERTY('EngineEdition') AS INT)
12+
,@JoinClause AS nvarchar(max) = ''
13+
14+
IF @EngineEdition = 5
15+
BEGIN
16+
SET @JoinClause = N'
17+
INNER JOIN sys.database_files AS mf WITH (NOLOCK)
18+
ON vfs.[database_id] = DB_ID() AND vfs.[file_id] = mf.[file_id]'
19+
END
20+
ELSE
21+
BEGIN
22+
SET @JoinClause = N'
23+
INNER JOIN sys.master_files AS mf WITH (NOLOCK)
24+
ON vfs.[database_id] = mf.[database_id] AND vfs.[file_id] = mf.[file_id]'
25+
END
26+
27+
SET @SqlStatement = N'
928
SELECT
10-
'sqlserver_disk_io' AS [measurement]
11-
,REPLACE(@@SERVERNAME,'\',':') AS [sql_instance]
29+
''sqlserver_disk_io'' AS [measurement]
30+
,REPLACE(@@SERVERNAME,''\'','':'') AS [sql_instance]
1231
,HOST_NAME() AS [computer_name]
1332
,CASE
14-
WHEN mf.physical_name LIKE '[A-Z]:\%' THEN LEFT(mf.physical_name, 3)
15-
ELSE '/'
33+
WHEN mf.physical_name LIKE ''[A-Z]:\%'' THEN LEFT(mf.physical_name, 3)
34+
ELSE ''/''
1635
END AS [disk_drive]
1736
,SUM(vfs.num_of_reads) AS [read_ops]
1837
,SUM(vfs.num_of_writes) AS [write_ops]
1938
,SUM(vfs.num_of_bytes_read) AS [read_bytes]
2039
,SUM(vfs.num_of_bytes_written) AS [write_bytes]
21-
FROM sys.dm_io_virtual_file_stats(NULL, NULL) vfs
22-
INNER JOIN sys.master_files mf ON vfs.database_id = mf.database_id AND vfs.file_id = mf.file_id
40+
FROM sys.dm_io_virtual_file_stats(NULL, NULL) vfs'
41+
+ @JoinClause + N'
2342
WHERE 1=1
24-
AND @@SERVERNAME = 'instanceName'
43+
AND @@SERVERNAME = ''instanceName''
2544
GROUP BY CASE
26-
WHEN mf.physical_name LIKE '[A-Z]:\%' THEN LEFT(mf.physical_name, 3)
27-
ELSE '/'
45+
WHEN mf.physical_name LIKE ''[A-Z]:\%'' THEN LEFT(mf.physical_name, 3)
46+
ELSE ''/''
2847
END
29-
OPTION(RECOMPILE)
48+
OPTION(RECOMPILE)'
49+
50+
EXEC sp_executesql @SqlStatement

receiver/sqlserverreceiver/testdata/diskIOQueryWithoutInstanceName.txt

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,24 +6,45 @@ IF SERVERPROPERTY('EngineEdition') NOT IN (2,3,4,5,8) BEGIN
66
RETURN
77
END
88

9+
DECLARE
10+
@SqlStatement AS nvarchar(max)
11+
,@EngineEdition AS INT = CAST(SERVERPROPERTY('EngineEdition') AS INT)
12+
,@JoinClause AS nvarchar(max) = ''
13+
14+
IF @EngineEdition = 5
15+
BEGIN
16+
SET @JoinClause = N'
17+
INNER JOIN sys.database_files AS mf WITH (NOLOCK)
18+
ON vfs.[database_id] = DB_ID() AND vfs.[file_id] = mf.[file_id]'
19+
END
20+
ELSE
21+
BEGIN
22+
SET @JoinClause = N'
23+
INNER JOIN sys.master_files AS mf WITH (NOLOCK)
24+
ON vfs.[database_id] = mf.[database_id] AND vfs.[file_id] = mf.[file_id]'
25+
END
26+
27+
SET @SqlStatement = N'
928
SELECT
10-
'sqlserver_disk_io' AS [measurement]
11-
,REPLACE(@@SERVERNAME,'\',':') AS [sql_instance]
29+
''sqlserver_disk_io'' AS [measurement]
30+
,REPLACE(@@SERVERNAME,''\'','':'') AS [sql_instance]
1231
,HOST_NAME() AS [computer_name]
1332
,CASE
14-
WHEN mf.physical_name LIKE '[A-Z]:\%' THEN LEFT(mf.physical_name, 3)
15-
ELSE '/'
33+
WHEN mf.physical_name LIKE ''[A-Z]:\%'' THEN LEFT(mf.physical_name, 3)
34+
ELSE ''/''
1635
END AS [disk_drive]
1736
,SUM(vfs.num_of_reads) AS [read_ops]
1837
,SUM(vfs.num_of_writes) AS [write_ops]
1938
,SUM(vfs.num_of_bytes_read) AS [read_bytes]
2039
,SUM(vfs.num_of_bytes_written) AS [write_bytes]
21-
FROM sys.dm_io_virtual_file_stats(NULL, NULL) vfs
22-
INNER JOIN sys.master_files mf ON vfs.database_id = mf.database_id AND vfs.file_id = mf.file_id
40+
FROM sys.dm_io_virtual_file_stats(NULL, NULL) vfs'
41+
+ @JoinClause + N'
2342
WHERE 1=1
2443

2544
GROUP BY CASE
26-
WHEN mf.physical_name LIKE '[A-Z]:\%' THEN LEFT(mf.physical_name, 3)
27-
ELSE '/'
45+
WHEN mf.physical_name LIKE ''[A-Z]:\%'' THEN LEFT(mf.physical_name, 3)
46+
ELSE ''/''
2847
END
29-
OPTION(RECOMPILE)
48+
OPTION(RECOMPILE)'
49+
50+
EXEC sp_executesql @SqlStatement

0 commit comments

Comments
 (0)