bin/xetemplates/xe_log_io_tracking.xml
<event_sessions xmlns="http://schemas.microsoft.com/sqlserver/2008/07/extendedeventconfig">
<event_session name="log_io" maxMemory="4" eventRetentionMode="allowSingleEventLoss" trackCausality="false" dispatchLatency="30" maxEventSize="0" memoryPartitionMode="none"> <templateCategory> <!-- _locID_text="templateCategory" _locComment = "" -->System Monitoring</templateCategory> <templateName> <!-- _locID_text = "templateName" _locComment = "" -->Database Log File IO Tracking</templateName> <templateDescription> <!-- _locID_text = "templateDescription" _locComment = "" -->This template monitors the IO for database log files on a server by tracking asynchronous IO, database log flushes, file writes, spinlock backoffs of type LOGFLUSHQ and waits of type WRITELOG. This template collects data in two ways: raw data is collected to a ring buffer and spinlock backoff information is aggregated based on the input buffer (sql_text). The session is filtered for a single log file per database; if you have multiple log files you can modify the filter for the file_write_completed and file_written events to include more than just file_id = 2.</templateDescription> <event package="sqlos" name="async_io_completed" /> <event package="sqlos" name="async_io_requested" /> <event package="sqlos" name="spinlock_backoff"> <action package="sqlserver" name="sql_text" /> <predicate> <leaf> <comparator name="equal_uint64" package="package0"></comparator> <event name="spinlock_backoff" package="sqlos" field="type"></event> <value>85</value> </leaf> </predicate> </event> <event package="sqlos" name="wait_info"> <action package="sqlserver" name="client_app_name" /> <action package="sqlserver" name="is_system" /> <action package="sqlserver" name="session_id" /> <predicate> <and> <leaf> <comparator name="equal_uint64" package="package0"></comparator> <event name="wait_info" package="sqlos" field="opcode"></event> <value>1</value> </leaf> <leaf> <comparator name="equal_uint64" package="package0"></comparator> <event name="wait_info" package="sqlos" field="wait_type"></event> <value>182</value> </leaf> </and> </predicate> </event> <event package="sqlserver" name="databases_log_flush" /> <event package="sqlserver" name="file_write_completed"> <parameter name="collect_path" value="1" /> <predicate> <leaf> <comparator name="equal_uint64" package="package0"></comparator> <event name="file_write_completed" package="sqlserver" field="file_id"></event> <value>2</value> </leaf> </predicate> </event> <event package="sqlserver" name="file_written"> <parameter name="collect_path" value="1" /> <predicate> <leaf> <comparator name="equal_uint64" package="package0"></comparator> <event name="file_written" package="sqlserver" field="file_id"></event> <value>2</value> </leaf> </predicate> </event> <target package="package0" name="histogram"> <parameter name="filtering_event_name" value="sqlos.spinlock_backoff" /> <parameter name="source" value="sqlserver.sql_text" /> </target> <target package="package0" name="ring_buffer" /> </event_session> </event_sessions> |