{"id":474,"date":"2012-07-26T00:53:56","date_gmt":"2012-07-26T00:53:56","guid":{"rendered":"\/blogs\/jonathan\/post\/Tracking-Extended-Events-for-a-SQL-Agent-Job.aspx"},"modified":"2017-04-13T14:40:53","modified_gmt":"2017-04-13T18:40:53","slug":"tracking-extended-events-for-a-sql-agent-job","status":"publish","type":"post","link":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/tracking-extended-events-for-a-sql-agent-job\/","title":{"rendered":"Tracking Extended Events for a SQL Agent Job"},"content":{"rendered":"<p>This blog post is courtesy of a question I received from Chris Adkin (<a href=\"https:\/\/mobile.twitter.com\/ChrisAdkin8\" target=\"_blank\">Twitter<\/a>) by email.&#160; Chris was trying to use Extended Events to <a href=\"https:\/\/www.sqlskills.com\/blogs\/jonathan\/an-xevent-a-day-30-of-31-tracking-session-and-statement-level-waits\/\" target=\"_blank\">track session level wait information<\/a>, but he had a new twist that I\u2019ve never been asked about before, he wanted to track all of the waits for a specific SQL Agent job anytime it executed.&#160; I knew immediately when I read the email that this was definitely possible, but it required some additional information about SQL Agent.&#160; <\/p>\n<p>Initially it might seem like this would be a good scenario to filter on sqlserver.session_id, but that won\u2019t work because the session_id is not guaranteed to be the same across executions.&#160; I thought about using one job step to ALTER the event session, but that won\u2019t be guaranteed to catch everything for the next step in the job.&#160; Then I thought back to a few years ago and I wanted to track long running Agent jobs on my servers, and then I remembered that you can do this with the program_name or in Extended Events, the sqlserver.client_app_name global predicate field.&#160; To demonstrate this, I created a job on my VM that calls a simple WAITFOR DELAY in the first job step and then I ran the job and queried sys.dm_exec_sessions to get the program name.<\/p>\n<blockquote>\n<p>SQLAgent &#8211; TSQL JobStep (Job 0x<font style=\"background-color: #00ff00\">6F<\/font><font style=\"background-color: #ffff00\">4E<\/font><font style=\"background-color: #ffc000\">49<\/font><font style=\"background-color: #ff0000\">36<\/font><font style=\"background-color: #9b00d3\">76<\/font><font style=\"background-color: #0000ff\">7B<\/font><font style=\"background-color: #4f81bd\">EA<\/font><font style=\"background-color: #9bbb59\">4C<\/font><font style=\"background-color: #f79646\">BE08<\/font><font style=\"background-color: #c0504d\">8245356A5C54<\/font> : Step 1)<\/p>\n<\/blockquote>\n<p>If we take this and compare it to the job_id in msdb.dbo.sysjobs for the job, we can see that the guid for the job_id has been transposed to create the program_name being used:<\/p>\n<blockquote>\n<p><font style=\"background-color: #ff0000\">36<\/font><font style=\"background-color: #ffc000\">49<\/font><font style=\"background-color: #ffff00\">4E<\/font><font style=\"background-color: #00ff00\">6F<\/font>&#8211;<font style=\"background-color: #0000ff\">7B<\/font><font style=\"background-color: #9b00d3\">76<\/font>&#8211;<font style=\"background-color: #9bbb59\">4C<\/font><font style=\"background-color: #4f81bd\">EA<\/font>&#8211;<font style=\"background-color: #f79646\">BE08<\/font>&#8211;<font style=\"background-color: #c0504d\">8<\/font><font style=\"background-color: #c0504d\">245356A5C54<\/font><\/p>\n<\/blockquote>\n<p>So with this information, we now define a predicate that will allow our Event Session to collect events specifically for our job execution as follows:<\/p>\n<div>\n<blockquote>\n<pre class=\"code\"><span style=\"color: blue\">DECLARE <\/span>@JobName <span style=\"color: blue\">NVARCHAR<\/span><span style=\"color: gray\">(<\/span>128<span style=\"color: gray\">) = <\/span><span style=\"color: red\">'Test'<\/span><span style=\"color: gray\">;\r\n\r\n<\/span><span style=\"color: blue\">DECLARE <\/span>@Predicate <span style=\"color: blue\">NVARCHAR<\/span><span style=\"color: gray\">(<\/span><span style=\"color: magenta\">MAX<\/span><span style=\"color: gray\">)=<\/span><span style=\"color: red\">''<\/span><span style=\"color: gray\">;\r\n<\/span><span style=\"color: blue\">DECLARE <\/span>@sqlcmd <span style=\"color: blue\">NVARCHAR<\/span><span style=\"color: gray\">(<\/span><span style=\"color: magenta\">MAX<\/span><span style=\"color: gray\">)=<\/span><span style=\"color: red\">''<\/span><span style=\"color: gray\">;\r\n\r\n<\/span><span style=\"color: blue\">SET <\/span>@sqlcmd <span style=\"color: gray\">=<\/span><span style=\"color: red\">'IF EXISTS(SELECT * FROM sys.server_event_sessions WHERE name=''TrackResourceWaits'')\r\n    DROP EVENT SESSION [TrackResourceWaits] ON SERVER;\r\nCREATE EVENT SESSION [TrackResourceWaits] ON SERVER \r\nADD EVENT  sqlos.wait_info\r\n(   WHERE\r\n        (opcode = 1 --End Events Only\r\n            AND duration &gt; 0 -- had to accumulate 100ms of time\r\n            AND ({0})\r\n        ))\r\nADD TARGET package0.asynchronous_bucketizer\r\n(     SET filtering_event_name=''sqlos.wait_info'',\r\n        source_type=0, -- specifies bucketing on column \r\n        source=''wait_type'' -- Bucket by wait_type\r\n),\r\nADD TARGET package0.ring_buffer(SET max_memory=4096)'<\/span><span style=\"color: gray\">;\r\n\r\n<\/span><span style=\"color: blue\">SELECT <\/span>@Predicate <span style=\"color: gray\">= <\/span>@Predicate <span style=\"color: gray\">+ \r\n    <\/span><span style=\"color: red\">'sqlserver.client_app_name = ''' <\/span><span style=\"color: gray\">+\r\n    <\/span><span style=\"color: red\">'SQLAgent - TSQL JobStep (Job 0x'<\/span><span style=\"color: gray\">+\r\n    <\/span><span style=\"color: magenta\">SUBSTRING<\/span><span style=\"color: gray\">(<\/span>job_id<span style=\"color: gray\">,<\/span>7<span style=\"color: gray\">,<\/span>2<span style=\"color: gray\">) +\r\n    <\/span><span style=\"color: magenta\">SUBSTRING<\/span><span style=\"color: gray\">(<\/span>job_id<span style=\"color: gray\">,<\/span>5<span style=\"color: gray\">,<\/span>2<span style=\"color: gray\">) +\r\n    <\/span><span style=\"color: magenta\">SUBSTRING<\/span><span style=\"color: gray\">(<\/span>job_id<span style=\"color: gray\">,<\/span>3<span style=\"color: gray\">,<\/span>2<span style=\"color: gray\">) +\r\n    <\/span><span style=\"color: magenta\">SUBSTRING<\/span><span style=\"color: gray\">(<\/span>job_id<span style=\"color: gray\">,<\/span>1<span style=\"color: gray\">,<\/span>2<span style=\"color: gray\">) +\r\n    <\/span><span style=\"color: magenta\">SUBSTRING<\/span><span style=\"color: gray\">(<\/span>job_id<span style=\"color: gray\">,<\/span>12<span style=\"color: gray\">,<\/span>2<span style=\"color: gray\">) +\r\n    <\/span><span style=\"color: magenta\">SUBSTRING<\/span><span style=\"color: gray\">(<\/span>job_id<span style=\"color: gray\">,<\/span>10<span style=\"color: gray\">,<\/span>2<span style=\"color: gray\">) +\r\n    <\/span><span style=\"color: magenta\">SUBSTRING<\/span><span style=\"color: gray\">(<\/span>job_id<span style=\"color: gray\">,<\/span>17<span style=\"color: gray\">,<\/span>2<span style=\"color: gray\">) +\r\n    <\/span><span style=\"color: magenta\">SUBSTRING<\/span><span style=\"color: gray\">(<\/span>job_id<span style=\"color: gray\">,<\/span>15<span style=\"color: gray\">,<\/span>2<span style=\"color: gray\">) +\r\n    <\/span><span style=\"color: magenta\">SUBSTRING<\/span><span style=\"color: gray\">(<\/span>job_id<span style=\"color: gray\">,<\/span>20<span style=\"color: gray\">,<\/span>4<span style=\"color: gray\">) +\r\n    <\/span><span style=\"color: magenta\">SUBSTRING<\/span><span style=\"color: gray\">(<\/span>job_id<span style=\"color: gray\">,<\/span>25<span style=\"color: gray\">,<\/span>12<span style=\"color: gray\">) + \r\n    <\/span><span style=\"color: red\">' : Step ' <\/span><span style=\"color: gray\">+ \r\n    <\/span><span style=\"color: magenta\">CAST<\/span><span style=\"color: gray\">(<\/span>step_id <span style=\"color: blue\">AS VARCHAR<\/span><span style=\"color: gray\">(<\/span>3<span style=\"color: gray\">)) + \r\n    <\/span><span style=\"color: red\">')'' OR '\r\n<\/span><span style=\"color: blue\">FROM<\/span><span style=\"color: gray\">( <\/span><span style=\"color: blue\">SELECT <\/span><span style=\"color: magenta\">CAST<\/span><span style=\"color: gray\">(<\/span>j<span style=\"color: gray\">.<\/span>job_id <span style=\"color: blue\">AS VARCHAR<\/span><span style=\"color: gray\">(<\/span>50<span style=\"color: gray\">)) <\/span><span style=\"color: blue\">AS <\/span>job_id<span style=\"color: gray\">,\r\n            <\/span>js<span style=\"color: gray\">.<\/span>step_id\r\n        <span style=\"color: blue\">FROM <\/span>msdb<span style=\"color: gray\">.<\/span>dbo<span style=\"color: gray\">.<\/span>sysjobs <span style=\"color: blue\">AS <\/span>j\r\n        <span style=\"color: gray\">INNER JOIN <\/span>msdb<span style=\"color: gray\">.<\/span>dbo<span style=\"color: gray\">.<\/span>sysjobsteps <span style=\"color: blue\">AS <\/span>js\r\n            <span style=\"color: blue\">ON <\/span>j<span style=\"color: gray\">.<\/span>job_id <span style=\"color: gray\">= <\/span>js<span style=\"color: gray\">.<\/span>job_id\r\n        <span style=\"color: blue\">WHERE <\/span>j<span style=\"color: gray\">.<\/span>name <span style=\"color: gray\">= <\/span>@JobName<span style=\"color: gray\">) <\/span><span style=\"color: blue\">AS <\/span>tab<span style=\"color: gray\">;\r\n\r\n<\/span><span style=\"color: green\">-- Append the predicate into the SQL command\r\n<\/span><span style=\"color: blue\">SET <\/span>@sqlcmd <span style=\"color: gray\">= <\/span><span style=\"color: magenta\">REPLACE<\/span><span style=\"color: gray\">(<\/span>@sqlcmd<span style=\"color: gray\">, <\/span><span style=\"color: red\">'{0}'<\/span><span style=\"color: gray\">, LEFT(<\/span>@Predicate<span style=\"color: gray\">, <\/span><span style=\"color: magenta\">LEN<\/span><span style=\"color: gray\">(<\/span>@Predicate<span style=\"color: gray\">)-<\/span>3<span style=\"color: gray\">));\r\n\r\n<\/span><span style=\"color: green\">-- Create the Event Session\r\n<\/span><span style=\"color: blue\">EXEC<\/span><span style=\"color: gray\">(<\/span>@sqlcmd<span style=\"color: gray\">);<\/span><\/pre>\n<\/blockquote>\n<p>  Now as I pointed out in my original post about collecting session level wait stats, this doesn\u2019t necessarily provide actionable data since it doesn\u2019t tell us about the other activity on the server that may be causing specific waits to occur.&#160; For example, if you run this and see that there are high I\/O waits, but concurrently at the same time there is a DBCC CHECKDB running on the server that is saturating the I\/O subsystem, all we know about for the data collected is that there were high I\/O waits, it doesn\u2019t tell us why they might exist.&#160; For some wait types this might be very actionable, but I would use caution tracking session or task specific waits because the same waits will not occur on different hardware, or under different conditions on the same exact hardware.&#160; <\/div>\n","protected":false},"excerpt":{"rendered":"<p>This blog post is courtesy of a question I received from Chris Adkin (Twitter) by email.&#160; Chris was trying to use Extended Events to track session level wait information, but he had a new twist that I\u2019ve never been asked about before, he wanted to track all of the waits for a specific SQL Agent [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23,38,39],"tags":[],"class_list":["post-474","post","type-post","status-publish","format-standard","hentry","category-extended-events","category-sql-server-2008","category-sql-server-2012"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Tracking Extended Events for a SQL Agent Job - Jonathan Kehayias<\/title>\n<meta name=\"description\" content=\"Demonstrates how to use Extended Events to track events from SQL Agent Job executions.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.sqlskills.com\/blogs\/jonathan\/tracking-extended-events-for-a-sql-agent-job\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tracking Extended Events for a SQL Agent Job - Jonathan Kehayias\" \/>\n<meta property=\"og:description\" content=\"Demonstrates how to use Extended Events to track events from SQL Agent Job executions.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqlskills.com\/blogs\/jonathan\/tracking-extended-events-for-a-sql-agent-job\/\" \/>\n<meta property=\"og:site_name\" content=\"Jonathan Kehayias\" \/>\n<meta property=\"article:published_time\" content=\"2012-07-26T00:53:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-04-13T18:40:53+00:00\" \/>\n<meta name=\"author\" content=\"Jonathan Kehayias\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jonathan Kehayias\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/tracking-extended-events-for-a-sql-agent-job\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/tracking-extended-events-for-a-sql-agent-job\\\/\"},\"author\":{\"name\":\"Jonathan Kehayias\",\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/#\\\/schema\\\/person\\\/01c10d94f3648654ef706d5e6305f69c\"},\"headline\":\"Tracking Extended Events for a SQL Agent Job\",\"datePublished\":\"2012-07-26T00:53:56+00:00\",\"dateModified\":\"2017-04-13T18:40:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/tracking-extended-events-for-a-sql-agent-job\\\/\"},\"wordCount\":468,\"commentCount\":2,\"articleSection\":[\"Extended Events\",\"SQL Server 2008\",\"SQL Server 2012\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/tracking-extended-events-for-a-sql-agent-job\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/tracking-extended-events-for-a-sql-agent-job\\\/\",\"url\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/tracking-extended-events-for-a-sql-agent-job\\\/\",\"name\":\"Tracking Extended Events for a SQL Agent Job - Jonathan Kehayias\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/#website\"},\"datePublished\":\"2012-07-26T00:53:56+00:00\",\"dateModified\":\"2017-04-13T18:40:53+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/#\\\/schema\\\/person\\\/01c10d94f3648654ef706d5e6305f69c\"},\"description\":\"Demonstrates how to use Extended Events to track events from SQL Agent Job executions.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/tracking-extended-events-for-a-sql-agent-job\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/tracking-extended-events-for-a-sql-agent-job\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/tracking-extended-events-for-a-sql-agent-job\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Extended Events\",\"item\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/category\\\/extended-events\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Tracking Extended Events for a SQL Agent Job\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/#website\",\"url\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/\",\"name\":\"Jonathan Kehayias - The Rambling DBA\",\"description\":\"The Rambling DBA\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/#\\\/schema\\\/person\\\/01c10d94f3648654ef706d5e6305f69c\",\"name\":\"Jonathan Kehayias\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/86630e27f5deecc5c393ea57fc7c3b6a068949f4fd6b5309f81de5a276f12855?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/86630e27f5deecc5c393ea57fc7c3b6a068949f4fd6b5309f81de5a276f12855?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/86630e27f5deecc5c393ea57fc7c3b6a068949f4fd6b5309f81de5a276f12855?s=96&d=mm&r=g\",\"caption\":\"Jonathan Kehayias\"},\"sameAs\":[\"http:\\\/\\\/3.209.169.194\\\/blogs\\\/jonathan\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Tracking Extended Events for a SQL Agent Job - Jonathan Kehayias","description":"Demonstrates how to use Extended Events to track events from SQL Agent Job executions.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/tracking-extended-events-for-a-sql-agent-job\/","og_locale":"en_US","og_type":"article","og_title":"Tracking Extended Events for a SQL Agent Job - Jonathan Kehayias","og_description":"Demonstrates how to use Extended Events to track events from SQL Agent Job executions.","og_url":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/tracking-extended-events-for-a-sql-agent-job\/","og_site_name":"Jonathan Kehayias","article_published_time":"2012-07-26T00:53:56+00:00","article_modified_time":"2017-04-13T18:40:53+00:00","author":"Jonathan Kehayias","twitter_misc":{"Written by":"Jonathan Kehayias","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/tracking-extended-events-for-a-sql-agent-job\/#article","isPartOf":{"@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/tracking-extended-events-for-a-sql-agent-job\/"},"author":{"name":"Jonathan Kehayias","@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/#\/schema\/person\/01c10d94f3648654ef706d5e6305f69c"},"headline":"Tracking Extended Events for a SQL Agent Job","datePublished":"2012-07-26T00:53:56+00:00","dateModified":"2017-04-13T18:40:53+00:00","mainEntityOfPage":{"@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/tracking-extended-events-for-a-sql-agent-job\/"},"wordCount":468,"commentCount":2,"articleSection":["Extended Events","SQL Server 2008","SQL Server 2012"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.sqlskills.com\/blogs\/jonathan\/tracking-extended-events-for-a-sql-agent-job\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/tracking-extended-events-for-a-sql-agent-job\/","url":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/tracking-extended-events-for-a-sql-agent-job\/","name":"Tracking Extended Events for a SQL Agent Job - Jonathan Kehayias","isPartOf":{"@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/#website"},"datePublished":"2012-07-26T00:53:56+00:00","dateModified":"2017-04-13T18:40:53+00:00","author":{"@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/#\/schema\/person\/01c10d94f3648654ef706d5e6305f69c"},"description":"Demonstrates how to use Extended Events to track events from SQL Agent Job executions.","breadcrumb":{"@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/tracking-extended-events-for-a-sql-agent-job\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqlskills.com\/blogs\/jonathan\/tracking-extended-events-for-a-sql-agent-job\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/tracking-extended-events-for-a-sql-agent-job\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/"},{"@type":"ListItem","position":2,"name":"Extended Events","item":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/category\/extended-events\/"},{"@type":"ListItem","position":3,"name":"Tracking Extended Events for a SQL Agent Job"}]},{"@type":"WebSite","@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/#website","url":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/","name":"Jonathan Kehayias - The Rambling DBA","description":"The Rambling DBA","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/#\/schema\/person\/01c10d94f3648654ef706d5e6305f69c","name":"Jonathan Kehayias","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/86630e27f5deecc5c393ea57fc7c3b6a068949f4fd6b5309f81de5a276f12855?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/86630e27f5deecc5c393ea57fc7c3b6a068949f4fd6b5309f81de5a276f12855?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/86630e27f5deecc5c393ea57fc7c3b6a068949f4fd6b5309f81de5a276f12855?s=96&d=mm&r=g","caption":"Jonathan Kehayias"},"sameAs":["http:\/\/3.209.169.194\/blogs\/jonathan"]}]}},"_links":{"self":[{"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/posts\/474","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/comments?post=474"}],"version-history":[{"count":0,"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/posts\/474\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/media?parent=474"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/categories?post=474"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/tags?post=474"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}