{"id":2937,"date":"2013-06-09T12:05:51","date_gmt":"2013-06-09T11:05:51","guid":{"rendered":"http:\/\/andreas-wolter.com\/?p=2937"},"modified":"2017-11-15T11:41:48","modified_gmt":"2017-11-15T10:41:48","slug":"extended-event-file-target-size-vs-sql-server-trace-trace-file-a-comparison","status":"publish","type":"post","link":"https:\/\/andreas-wolter.com\/en\/extended-event-file-target-size-vs-sql-server-trace-trace-file-a-comparison\/","title":{"rendered":"Extended Event File Target size vs SQL Server Trace trace file &#8211; a comparison"},"content":{"rendered":"\n<style type=\"text\/css\" data-created_by=\"avia_inline_auto\" id=\"style-css-av-av_heading-32e60572a1eba2f8bdb60fa29ddb362c\">\n#top .av-special-heading.av-av_heading-32e60572a1eba2f8bdb60fa29ddb362c{\npadding-bottom:10px;\n}\nbody .av-special-heading.av-av_heading-32e60572a1eba2f8bdb60fa29ddb362c .av-special-heading-tag .heading-char{\nfont-size:25px;\n}\n.av-special-heading.av-av_heading-32e60572a1eba2f8bdb60fa29ddb362c .av-subheading{\nfont-size:15px;\n}\n<\/style>\n<div  class='av-special-heading av-av_heading-32e60572a1eba2f8bdb60fa29ddb362c av-special-heading-h3 blockquote modern-quote  avia-builder-el-0  el_before_av_textblock  avia-builder-el-first '><h3 class='av-special-heading-tag'  itemprop=\"headline\"  >Extended Event File Target size vs SQL Server Trace trace file &#8211; a comparison<\/h3><div class=\"special-heading-border\"><div class=\"special-heading-inner-border\"><\/div><\/div><\/div>\r\n\r\n<section  class='av_textblock_section av-av_textblock-2de302bf1aa3cf4c9157dbe6f50ac7eb '   itemscope=\"itemscope\" itemtype=\"https:\/\/schema.org\/BlogPosting\" itemprop=\"blogPost\" ><div class='avia_textblock'  itemprop=\"text\" ><p>No big science, more out of curiosity this time..<\/p>\n<p>The Extended Events File Target for SQL Server saves data using xml, which as is well known, is a bit \u201cchatty\u201d. A student in my recent <a href=\"http:\/\/www.sarpedonqualitylab.com\/SQL_Master-Classes.htm\" target=\"_blank\" rel=\"noopener\">SQL Server Master-Class<\/a> workshop on extended events came up with the question for how much (more) space he would have to account for using Extended Events with a file target. Although this depends greatly on the specific events and possibly actions, selected, I was a bit curious myself and decided for a small test.<!--more--><\/p>\n<p>Both, the old and <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/ms181091.aspx\" target=\"_blank\" rel=\"noopener\">deprecated <\/a>SQL Server Trace and Extended Events can save the data in a file, so it\u2019s easy to compare what difference in size the new format will make.<\/p>\n<p>I set up a SQL Server Trace that is almost identical to an Extended Events Trace. (You will see why \u201calmost\u201d.)<\/p>\n<p>I had to choose a very simple Trace, so the customizable columns of extended events would not make the comparison unequal and ended up with a trace that captures SP:Starting\/SP:Completed with the following columns:<\/p>\n<\/div><\/section>\r\n\r\n\n<style type=\"text\/css\" data-created_by=\"avia_inline_auto\" id=\"style-css-av-av_image-595bc01d7cd2962463e8e5dd2d1101bc\">\n.avia-image-container.av-av_image-595bc01d7cd2962463e8e5dd2d1101bc img.avia_image{\nbox-shadow:none;\n}\n.avia-image-container.av-av_image-595bc01d7cd2962463e8e5dd2d1101bc .av-image-caption-overlay-center{\ncolor:#ffffff;\n}\n<\/style>\n<div  class='avia-image-container av-av_image-595bc01d7cd2962463e8e5dd2d1101bc av-styling- avia-align-center  avia-builder-el-2  el_after_av_textblock  el_before_av_textblock '   itemprop=\"image\" itemscope=\"itemscope\" itemtype=\"https:\/\/schema.org\/ImageObject\" ><div class=\"avia-image-container-inner\"><div class=\"avia-image-overlay-wrap\"><img decoding=\"async\" class='wp-image-2938 avia-img-lazy-loading-not-2938 avia_image ' src=\"https:\/\/andreas-wolter.com\/wp-content\/uploads\/2017\/10\/1306_SQLTrace_Definition.png\" alt='' title='1306_SQLTrace_Definition'  height=\"53\" width=\"540\"  itemprop=\"thumbnailUrl\" srcset=\"https:\/\/andreas-wolter.com\/wp-content\/uploads\/2017\/10\/1306_SQLTrace_Definition.png 540w, https:\/\/andreas-wolter.com\/wp-content\/uploads\/2017\/10\/1306_SQLTrace_Definition-300x29.png 300w, https:\/\/andreas-wolter.com\/wp-content\/uploads\/2017\/10\/1306_SQLTrace_Definition-450x44.png 450w\" sizes=\"(max-width: 540px) 100vw, 540px\" \/><\/div><\/div><\/div>\r\n\r\n<section  class='av_textblock_section av-av_textblock-2de302bf1aa3cf4c9157dbe6f50ac7eb '   itemscope=\"itemscope\" itemtype=\"https:\/\/schema.org\/BlogPosting\" itemprop=\"blogPost\" ><div class='avia_textblock'  itemprop=\"text\" ><p>You will see why I collect Source\/DatabaseID twice later on. Of course I used a lightweight Server-Trace, although for the purpose of this comparison it would not have mattered.<\/p>\n<p>The SQL Trace Definition:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-2941\" src=\"http:\/\/andreas-wolter.com\/wp-content\/uploads\/2017\/10\/Trace_comparison_screenshot.png\" alt=\"\" width=\"443\" height=\"412\" srcset=\"https:\/\/andreas-wolter.com\/wp-content\/uploads\/2017\/10\/Trace_comparison_screenshot.png 443w, https:\/\/andreas-wolter.com\/wp-content\/uploads\/2017\/10\/Trace_comparison_screenshot-300x279.png 300w\" sizes=\"auto, (max-width: 443px) 100vw, 443px\" \/><\/p>\n<\/div><\/section>\r\n\r\n<section  class='av_textblock_section av-av_textblock-2de302bf1aa3cf4c9157dbe6f50ac7eb '   itemscope=\"itemscope\" itemtype=\"https:\/\/schema.org\/BlogPosting\" itemprop=\"blogPost\" ><div class='avia_textblock'  itemprop=\"text\" ><p>As you might see the trace includes a filter, which is for a specific database ID.<\/p>\n<p>The Extended Event Trace session looks like that:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-2942\" src=\"http:\/\/andreas-wolter.com\/wp-content\/uploads\/2017\/10\/Trace_session_screenshot.png\" alt=\"\" width=\"913\" height=\"160\" srcset=\"https:\/\/andreas-wolter.com\/wp-content\/uploads\/2017\/10\/Trace_session_screenshot.png 913w, https:\/\/andreas-wolter.com\/wp-content\/uploads\/2017\/10\/Trace_session_screenshot-600x105.png 600w, https:\/\/andreas-wolter.com\/wp-content\/uploads\/2017\/10\/Trace_session_screenshot-300x53.png 300w, https:\/\/andreas-wolter.com\/wp-content\/uploads\/2017\/10\/Trace_session_screenshot-768x135.png 768w, https:\/\/andreas-wolter.com\/wp-content\/uploads\/2017\/10\/Trace_session_screenshot-705x124.png 705w, https:\/\/andreas-wolter.com\/wp-content\/uploads\/2017\/10\/Trace_session_screenshot-450x79.png 450w\" sizes=\"auto, (max-width: 913px) 100vw, 913px\" \/><\/p>\n<p>You may know, that Extended Events include certain columns by default, and for module_start\/end, this includes offset and offset_end.<\/p>\n<\/div><\/section>\r\n\r\n\n<style type=\"text\/css\" data-created_by=\"avia_inline_auto\" id=\"style-css-av-av_image-2ed74c0e6fea6a8262f96d40b844a231\">\n.avia-image-container.av-av_image-2ed74c0e6fea6a8262f96d40b844a231 img.avia_image{\nbox-shadow:none;\n}\n.avia-image-container.av-av_image-2ed74c0e6fea6a8262f96d40b844a231 .av-image-caption-overlay-center{\ncolor:#ffffff;\n}\n<\/style>\n<div  class='avia-image-container av-av_image-2ed74c0e6fea6a8262f96d40b844a231 av-styling- avia-align-center  avia-builder-el-5  el_after_av_textblock  el_before_av_textblock '   itemprop=\"image\" itemscope=\"itemscope\" itemtype=\"https:\/\/schema.org\/ImageObject\" ><div class=\"avia-image-container-inner\"><div class=\"avia-image-overlay-wrap\"><img decoding=\"async\" class='wp-image-2944 avia-img-lazy-loading-not-2944 avia_image ' src=\"https:\/\/andreas-wolter.com\/wp-content\/uploads\/2017\/10\/1306_XE_EventsDefinition_Columns.png\" alt='' title='1306_XE_EventsDefinition_Columns'  height=\"255\" width=\"400\"  itemprop=\"thumbnailUrl\" srcset=\"https:\/\/andreas-wolter.com\/wp-content\/uploads\/2017\/10\/1306_XE_EventsDefinition_Columns.png 400w, https:\/\/andreas-wolter.com\/wp-content\/uploads\/2017\/10\/1306_XE_EventsDefinition_Columns-300x191.png 300w\" sizes=\"(max-width: 400px) 100vw, 400px\" \/><\/div><\/div><\/div>\r\n\r\n<section  class='av_textblock_section av-av_textblock-2de302bf1aa3cf4c9157dbe6f50ac7eb '   itemscope=\"itemscope\" itemtype=\"https:\/\/schema.org\/BlogPosting\" itemprop=\"blogPost\" ><div class='avia_textblock'  itemprop=\"text\" ><p>Those two columns are not available for SP_Staring\/SP:Completed in SQL Trace. Since they are both integers, I decided to include another column, DatabaseID, into the SQLTrace. SQL Trace also includes the SPID by default, which cannot be deselected, therefore those two columns should equalize it. Both traces were started before the workload which ran for a while. At the end, the same number of events have been logged by both technologies in parallel.<\/p>\n<p>SQL Trace event count:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-2946\" src=\"http:\/\/andreas-wolter.com\/wp-content\/uploads\/2017\/10\/1306_SQLTrace_EventCounts.png\" alt=\"\" width=\"257\" height=\"49\" \/><\/p>\n<\/div><\/section>\r\n\r\n<section  class='av_textblock_section av-av_textblock-2de302bf1aa3cf4c9157dbe6f50ac7eb '   itemscope=\"itemscope\" itemtype=\"https:\/\/schema.org\/BlogPosting\" itemprop=\"blogPost\" ><div class='avia_textblock'  itemprop=\"text\" ><p>XEvent Trace event count:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-2950\" src=\"http:\/\/andreas-wolter.com\/wp-content\/uploads\/2017\/10\/1306_XE_Counter_Results.png\" alt=\"\" width=\"200\" height=\"63\" \/><\/p>\n<p>100644 + 100644 = 201288, so both captured the exact same events. \ud83d\ude42<\/p>\n<\/div><\/section>\r\n\r\n<section  class='av_textblock_section av-av_textblock-2de302bf1aa3cf4c9157dbe6f50ac7eb '   itemscope=\"itemscope\" itemtype=\"https:\/\/schema.org\/BlogPosting\" itemprop=\"blogPost\" ><div class='avia_textblock'  itemprop=\"text\" ><p>So, and now to the final question: what size are the files?<\/p>\n<p>See yourself:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-2948\" src=\"http:\/\/andreas-wolter.com\/wp-content\/uploads\/2017\/10\/1306_Trace_Files.png\" alt=\"\" width=\"247\" height=\"77\" \/><\/p>\n<\/div><\/section>\r\n\r\n<section  class='av_textblock_section av-av_textblock-2de302bf1aa3cf4c9157dbe6f50ac7eb '   itemscope=\"itemscope\" itemtype=\"https:\/\/schema.org\/BlogPosting\" itemprop=\"blogPost\" ><div class='avia_textblock'  itemprop=\"text\" ><p>Size in Megabytes:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-2953\" src=\"http:\/\/andreas-wolter.com\/wp-content\/uploads\/2017\/10\/1306_Trace_FileSize_Comparison.png\" alt=\"\" width=\"253\" height=\"43\" \/><\/p>\n<p>(The numbers in MB are the real size, whereas windows explorer shows the size on disk.)<br \/>\nThat\u2019s a difference of 5.32MB or in other words 29.13%.<\/p>\n<\/div><\/section>\r\n\r\n<section  class='av_textblock_section av-av_textblock-2de302bf1aa3cf4c9157dbe6f50ac7eb '   itemscope=\"itemscope\" itemtype=\"https:\/\/schema.org\/BlogPosting\" itemprop=\"blogPost\" ><div class='avia_textblock'  itemprop=\"text\" ><p>And this is what one single module_start-event for a function call in XEvents looks like:<\/p>\n<\/div><\/section>\r\n\r\n\n<style type=\"text\/css\" data-created_by=\"avia_inline_auto\" id=\"style-css-av-av_image-8a3b8aba3a568ef85a78cb7dc7244487\">\n.avia-image-container.av-av_image-8a3b8aba3a568ef85a78cb7dc7244487 img.avia_image{\nbox-shadow:none;\n}\n.avia-image-container.av-av_image-8a3b8aba3a568ef85a78cb7dc7244487 .av-image-caption-overlay-center{\ncolor:#ffffff;\n}\n<\/style>\n<div  class='avia-image-container av-av_image-8a3b8aba3a568ef85a78cb7dc7244487 av-styling- avia-align-center  avia-builder-el-11  el_after_av_textblock  el_before_av_textblock '   itemprop=\"image\" itemscope=\"itemscope\" itemtype=\"https:\/\/schema.org\/ImageObject\" ><div class=\"avia-image-container-inner\"><div class=\"avia-image-overlay-wrap\"><img decoding=\"async\" class='wp-image-2955 avia-img-lazy-loading-not-2955 avia_image ' src=\"https:\/\/andreas-wolter.com\/wp-content\/uploads\/2017\/10\/single_module_screenshot.png\" alt='' title='single_module_screenshot'  height=\"207\" width=\"657\"  itemprop=\"thumbnailUrl\" srcset=\"https:\/\/andreas-wolter.com\/wp-content\/uploads\/2017\/10\/single_module_screenshot.png 657w, https:\/\/andreas-wolter.com\/wp-content\/uploads\/2017\/10\/single_module_screenshot-600x189.png 600w, https:\/\/andreas-wolter.com\/wp-content\/uploads\/2017\/10\/single_module_screenshot-300x95.png 300w, https:\/\/andreas-wolter.com\/wp-content\/uploads\/2017\/10\/single_module_screenshot-450x142.png 450w\" sizes=\"(max-width: 657px) 100vw, 657px\" \/><\/div><\/div><\/div>\r\n\r\n<section  class='av_textblock_section av-av_textblock-2de302bf1aa3cf4c9157dbe6f50ac7eb '   itemscope=\"itemscope\" itemtype=\"https:\/\/schema.org\/BlogPosting\" itemprop=\"blogPost\" ><div class='avia_textblock'  itemprop=\"text\" ><p>The content is self-explanatory, as xml is supposed to be, and the overhead in size is no surprise at all.<\/p>\n<p>Keep in mind that this post is purely on comparing file sizes, and not performance or features. There are good reasons that SQL Trace &#038; Profiler have been deprecated, and Extended Events in SQL Server 2012 overcomes SQL Trace &#038; Profiler by far, in performance as well as in flexibility\/usability. For a performance overhead comparison check out my recently published benchmark blog post: &#8220;<a href=\"https:\/\/andreas-wolter.com\/en\/performance-overhead-of-tracing-with-extended-event-targets-vs-sql-trace-under-cpu-load\/\">Performance overhead of tracing with Extended Event targets vs SQL Trace under CPU Load<\/a>&#8220;.<\/p>\n<p>So whenever performance matters, remember to <strong>set session options appropriately<\/strong> and if the amount of events is high, do not use your slowest volume for the file target &#8211; same as for all other tracing activities anyways.<\/p>\n<p>happy tracing,<\/p>\n<p>Andreas<\/p>\n<\/div><\/section>\r\n\r\n<div  class='hr av-av_hr-0ff602b3e980a3377077ff3c1c834df6 hr-default  avia-builder-el-13  el_after_av_textblock  el_before_av_one_full '><span class='hr-inner '><span class=\"hr-inner-style\"><\/span><\/span><\/div>\r\n\r\n\n<style type=\"text\/css\" data-created_by=\"avia_inline_auto\" id=\"style-css-av-av_one_full-97c650ae075063b375f558a776c570f8\">\n#top .flex_column.av-av_one_full-97c650ae075063b375f558a776c570f8{\nmargin-top:40px;\nmargin-bottom:40px;\n}\n.flex_column.av-av_one_full-97c650ae075063b375f558a776c570f8{\nborder-radius:0px 0px 0px 0px;\npadding:0px 0px 0px 0px;\n}\n.responsive #top #wrap_all .flex_column.av-av_one_full-97c650ae075063b375f558a776c570f8{\nmargin-top:40px;\nmargin-bottom:40px;\n}\n<\/style>\n<div  class='flex_column av-av_one_full-97c650ae075063b375f558a776c570f8 av_one_full  avia-builder-el-14  el_after_av_hr  el_before_av_social_share  first flex_column_div av-zero-column-padding  '     ><section  class='av_textblock_section av-av_textblock-2de302bf1aa3cf4c9157dbe6f50ac7eb '   itemscope=\"itemscope\" itemtype=\"https:\/\/schema.org\/BlogPosting\" itemprop=\"blogPost\" ><div class='avia_textblock'  itemprop=\"text\" ><div><\/div>\n<div><\/div>\n<\/div><\/section><\/div>\r\n\r\n<div  class='av-social-sharing-box av-av_social_share-8644d330ffb238fff0cfa858c5295467 av-social-sharing-box-default  avia-builder-el-16  el_after_av_one_full  el_before_av_hr  av-social-sharing-box-fullwidth'><div class=\"av-share-box\"><h5 class='av-share-link-description av-no-toc '>Share<\/h5><ul class=\"av-share-box-list noLightbox\"><li class='av-share-link av-social-link-facebook' ><a target=\"_blank\" aria-label=\"Share on Facebook\" href=\"https:\/\/www.facebook.com\/sharer.php?u=https:\/\/andreas-wolter.com\/en\/extended-event-file-target-size-vs-sql-server-trace-trace-file-a-comparison\/&#038;t=Extended%20Event%20File%20Target%20size%20vs%20SQL%20Server%20Trace%20trace%20file%20%E2%80%93%20a%20comparison\" aria-hidden=\"false\" data-av_icon=\"\ue8f3\" data-av_iconfont=\"entypo-fontello\" title=\"\" data-avia-related-tooltip=\"Share on Facebook\" rel=\"noopener\"><span class='avia_hidden_link_text'>Share on Facebook<\/span><\/a><\/li><li class='av-share-link av-social-link-twitter' ><a target=\"_blank\" aria-label=\"Share on Twitter\" href=\"https:\/\/twitter.com\/share?text=Extended%20Event%20File%20Target%20size%20vs%20SQL%20Server%20Trace%20trace%20file%20%E2%80%93%20a%20comparison&#038;url=https:\/\/andreas-wolter.com\/en\/?p=2937\" aria-hidden=\"false\" data-av_icon=\"\ue8f1\" data-av_iconfont=\"entypo-fontello\" title=\"\" data-avia-related-tooltip=\"Share on Twitter\" rel=\"noopener\"><span class='avia_hidden_link_text'>Share on Twitter<\/span><\/a><\/li><li class='av-share-link av-social-link-linkedin' ><a target=\"_blank\" aria-label=\"Share on LinkedIn\" href=\"https:\/\/linkedin.com\/shareArticle?mini=true&#038;title=Extended%20Event%20File%20Target%20size%20vs%20SQL%20Server%20Trace%20trace%20file%20%E2%80%93%20a%20comparison&#038;url=https:\/\/andreas-wolter.com\/en\/extended-event-file-target-size-vs-sql-server-trace-trace-file-a-comparison\/\" aria-hidden=\"false\" data-av_icon=\"\ue8fc\" data-av_iconfont=\"entypo-fontello\" title=\"\" data-avia-related-tooltip=\"Share on LinkedIn\" rel=\"noopener\"><span class='avia_hidden_link_text'>Share on LinkedIn<\/span><\/a><\/li><\/ul><\/div><\/div>\r\n\r\n\n<style type=\"text\/css\" data-created_by=\"avia_inline_auto\" id=\"style-css-av-av_hr-4474f20d2389e2e5ecf918a02da5132e\">\n#top .hr.hr-invisible.av-av_hr-4474f20d2389e2e5ecf918a02da5132e{\nheight:50px;\n}\n<\/style>\n<div  class='hr av-av_hr-4474f20d2389e2e5ecf918a02da5132e hr-invisible  avia-builder-el-17  el_after_av_social_share  el_before_av_comments_list '><span class='hr-inner '><span class=\"hr-inner-style\"><\/span><\/span><\/div>\r\n\r\n<div  class='av-buildercomment av-av_comments_list-88ce68e426f11248fa394058a3de040f  av-blog-meta-author-disabled av-blog-meta-html-info-disabled'><\/div>","protected":false},"excerpt":{"rendered":"No big science, more out of curiosity this time.. The Extended Events File Target for SQL Server saves data using xml, which as is well known, is a bit \u201cchatty\u201d. A student in my recent SQL Server Master-Class workshop on extended events came up with the question for how much (more) space he would have [&hellip;]","protected":false},"author":4,"featured_media":2948,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[55,131,56],"tags":[18,19,175,182],"class_list":["post-2937","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-extended-events-en","category-sql-trace-profiler","category-tracing-monitoring-en","tag-extended-events-en","tag-performance-analysis-en","tag-sql-trace_profiler-en","tag-tracing-en"],"_links":{"self":[{"href":"https:\/\/andreas-wolter.com\/en\/wp-json\/wp\/v2\/posts\/2937","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/andreas-wolter.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/andreas-wolter.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/andreas-wolter.com\/en\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/andreas-wolter.com\/en\/wp-json\/wp\/v2\/comments?post=2937"}],"version-history":[{"count":8,"href":"https:\/\/andreas-wolter.com\/en\/wp-json\/wp\/v2\/posts\/2937\/revisions"}],"predecessor-version":[{"id":4384,"href":"https:\/\/andreas-wolter.com\/en\/wp-json\/wp\/v2\/posts\/2937\/revisions\/4384"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/andreas-wolter.com\/en\/wp-json\/wp\/v2\/media\/2948"}],"wp:attachment":[{"href":"https:\/\/andreas-wolter.com\/en\/wp-json\/wp\/v2\/media?parent=2937"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/andreas-wolter.com\/en\/wp-json\/wp\/v2\/categories?post=2937"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/andreas-wolter.com\/en\/wp-json\/wp\/v2\/tags?post=2937"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}