Skip to content

SQL filter with JOIN does not work

Hi,

I have a SQL query with a JOIN in it which doesn't return metrics.

This works

<add name="Sonar_MSSQL_VirtualFile" type="sql"
	filter="SELECT DB_NAME(vfs.database_id) AS 'database',
			vfs.file_id as 'fileid',
			vfs.io_stall_read_ms,
			vfs.io_stall_write_ms
		FROM sys.dm_io_virtual_file_stats(null,null) AS vfs;">
	<Tags>
		<add name="database" value="database"/>
		<add name="fileid" value="fileid"/>
	</Tags>
	<Values>
	</Values>
</add>

this not:

<add name="Sonar_MSSQL_VirtualFile" type="sql"
	filter="SELECT DB_NAME(vfs.database_id) AS 'database',
		vfs.file_id as 'fileid',
		vfs.io_stall_read_ms,
		vfs.io_stall_write_ms
	FROM sys.dm_io_virtual_file_stats(null,null) AS vfs
		INNER JOIN sys.master_files AS mf ON vfs.database_id = mf.database_id AND vfs.file_id = mf.file_id;">
	<Tags>
		<add name="database" value="database"/>
		<add name="fileid" value="fileid"/>
	</Tags>
	<Values>
	</Values>
</add>

There are no errors in the sonar logs. The only metric I can see is Sonar_MSSQL_VirtualFile_sonar_scrape_duration_milliseconds.

The goal is to have the physical_name from sys.master_files.

Many thanks Frank