Extended Event Packages

I continue blogging on extended events. Today, I will discuss about the top level containers (Package) that gives access to one or more smaller items inside of extended Events

Extended Event Packages Definition

In the Extended Events Engine, Packages are registered inside the modules and contain the information about what Extended Events objects the module contains. You can think of packages as containers for metadata information. Packages are the top level containers of metadata for the other objects that exist inside of Extended Events. 

Packages do not define a functional boundary of usage in Extended Events. It means that you can take objects from one package and use them with objects from another package as a part of defining your event session. A package can contain any or all of the following objects;

  • Events
  • Targets
  • Actions
  • Types
  • Predicates
  • Maps

If you run the DMV sys.dm_xe_packages ,  it will show you how to view information about the packages that have been loaded into the Extended Events engine.

SELECT	dxp.name AS packagename
		,REVERSE(LEFT(REVERSE(olm.name),CHARINDEX('\',REVERSE(olm.name))-1)) AS dllname
		,dxp.description AS packageDesc
		,[olm].[name] AS [module]
		,dxp.module_guid
		,dxp.capabilities_desc
FROM sys.dm_xe_packages dxp
INNER JOIN sys.dm_os_loaded_modules olm
ON dxp.module_address = olm.base_address
WHERE   ([dxp].[capabilities] IS NULL OR [dxp].[capabilities] & 1 = 0)
ORDER BY [dxp].[name] ;

Here is the output of the above query

Happy reading!

Leave a comment

Your email address will not be published. Required fields are marked *