{"id":586,"date":"2013-06-18T08:29:35","date_gmt":"2013-06-18T15:29:35","guid":{"rendered":"http:\/\/3.209.169.194\/blogs\/erin\/?p=586"},"modified":"2017-09-25T19:23:20","modified_gmt":"2017-09-26T02:23:20","slug":"the-accidental-dba-baselines","status":"publish","type":"post","link":"https:\/\/www.sqlskills.com\/blogs\/erin\/the-accidental-dba-baselines\/","title":{"rendered":"The Accidental DBA (Day 18 of 30): Baselines"},"content":{"rendered":"<p><em>This month the SQLskills team is presenting a series of blog posts aimed at helping Accidental\/Junior DBAs &#8216;keep the SQL Server lights on&#8217;. It&#8217;s a little taster to let you know what we cover in our\u00a0<a href=\"https:\/\/www.sqlskills.com\/sql-server-training\/ie0\/?utm_source=accidentaldba&amp;utm_medium=blogs&amp;utm_campaign=training\" target=\"_blank\">Immersion Event for The Accidental\/Junior DBA<\/a>, which we present\u00a0<a href=\"https:\/\/www.sqlskills.com\/sql-server-training\/immersion-events-schedule\/?utm_source=accidentaldba&amp;utm_medium=blogs&amp;utm_campaign=training\" target=\"_blank\" class=\"broken_link\">several times each year<\/a>. You can find all the other posts in this series at\u00a0<a href=\"https:\/\/www.SQLskills.com\/help\/accidentaldba?utm_source=accidentaldba&amp;utm_medium=blogs&amp;utm_campaign=training\" target=\"_blank\">http:\/\/www.SQLskills.com\/help\/AccidentalDBA<\/a>. Enjoy!<\/em><\/p>\n<p>Baselines are a part of our normal, daily life.\u00a0 It usually takes 25 minutes to get to work?\u00a0 Baseline.\u00a0 You need 7 hours of sleep each night to feel human and be productive?\u00a0 Baseline.\u00a0 Your weight is\u2026\u00a0 Ok, we won\u2019t go there, but you get my point.\u00a0 Your database server is no different, it has baselines as well.\u00a0 As a DBA it\u2019s critical that you know what they are and how to use them.<\/p>\n<p><strong>The why\u2026<\/strong><\/p>\n<p>\u201cBut wait,\u201d you say, \u201cwhy do I need baselines for my server?\u00a0 It\u2019s always working so there\u2019s no commute, it hopefully never sleeps, and its weight never changes (so unfair).\u201d\u00a0 You need them; trust me.\u00a0 A baseline of your database server:<\/p>\n<ul>\n<li>Helps you find what\u2019s changed <i>before<\/i> it becomes a problem<\/li>\n<li>Allows you to proactively tune your databases<\/li>\n<li>Allows you to use historical information when troubleshooting a problem<\/li>\n<li>Provides data to use for trending of the environment <i>and<\/i> data<\/li>\n<li>Captures data \u2013 actual numbers \u2013 to provide to management, and both server <i>and<\/i> storage administrators, for resource and capacity planning<\/li>\n<\/ul>\n<p>There are many, viable reasons to capture baselines.\u00a0 The challenge is the time it takes to figure out where to store the information, what to capture, and when to capture it.\u00a0 You also need to create methods to report on it and really <i>use<\/i> that data.<\/p>\n<p><strong>Where to store your baseline data<\/strong><\/p>\n<p>You\u2019re a DBA or developer, and you know T-SQL, so the most obvious place to store your baseline information is in a database.\u00a0 This is your chance to not only exercise your database design skills, but put your DBA skills to work for your <i>own<\/i> database.\u00a0 Beyond design, you also need space for the database, you need to schedule regular backups, and you also want to verify integrity and perform index and statistics maintenance regularly.\u00a0 Most of the posts that have appeared in this <a href=\"https:\/\/www.sqlskills.com\/help\/accidentaldba\/?utm_source=accidentaldba&amp;utm_medium=blogs&amp;utm_campaign=training\" target=\"_blank\">Accidental DBA series<\/a> are applicable for <i>this<\/i> database, as well as your Productions databases.<\/p>\n<p>To get you started, here\u2019s a CREATE DATABASE script that you can use to create a database to hold your baseline data (adjust file locations as necessary, and file size and growth settings as you see fit):<\/p>\n<pre class=\"brush: sql; title: ; notranslate\" title=\"\">\r\nUSE &#x5B;master];\r\nGO\r\n\r\nCREATE DATABASE &#x5B;BaselineData] ON PRIMARY\r\n( NAME = N'BaselineData',\r\n  FILENAME = N'M:\\UserDBs\\BaselineData.mdf',\r\n  SIZE = 512MB,\r\n  FILEGROWTH = 512MB\r\n) LOG ON\r\n( NAME = N'BaselineData_log',\r\n  FILENAME = N'M:\\UserDBs\\BaselineData_log.ldf',\r\n  SIZE = 128MB,\r\n  FILEGROWTH = 512MB\r\n);\r\n\r\nALTER DATABASE &#x5B;BaselineData] SET RECOVERY SIMPLE;\r\n<\/pre>\n<p><strong>What to capture<\/strong><\/p>\n<p>Now that you have a place to store your data, you need to decide what information to collect.\u00a0 It\u2019s very easy to start capturing baseline data with SQL Server, particularly in version 2005 and higher.\u00a0 DMVs and catalog views provide a plethora of information to accumulate and mine.\u00a0 Windows Performance Monitor is a built-in utility used to log metrics related to not just SQL Server but also the resources it uses such as CPU, memory, and disk.\u00a0 Finally, SQL Trace and Extended Events can capture real-time query activity, which can be saved to a file and reviewed later for analysis or comparison.<\/p>\n<p>It\u2019s easy to get overwhelmed with all the options available, so I recommend starting with one or two data points and then adding on over time.\u00a0 Data file sizes are a great place to start.\u00a0 Acquiring more space for a database isn\u2019t always a quick operation; it really depends on how your IT department is organized \u2013 and also depends on your company having unused storage available.\u00a0 As a DBA, you want to avoid the situation where your drives are full, and you also want to make sure your data files aren\u2019t auto-growing.<\/p>\n<p>With the statements below, you can create a simple table that will list each drive and the amount of free space, as well as the snapshot date:<\/p>\n<pre class=\"brush: sql; title: ; notranslate\" title=\"\">\r\nUSE &#x5B;BaselineData];\r\nGO\r\nIF EXISTS ( SELECT\u00a0 1\r\n     FROM\u00a0\u00a0\u00a0 &#x5B;sys].&#x5B;tables]\r\n     WHERE\u00a0\u00a0 &#x5B;name] = N'FreeSpace' )\r\n  DROP TABLE &#x5B;dbo].&#x5B;FileInfo]\r\n\r\nCREATE TABLE &#x5B;dbo].&#x5B;FreeSpace] (\r\n   &#x5B;LogicalVolume] NVARCHAR(256),\r\n   &#x5B;MBAvailable] BIGINT,\r\n   &#x5B;CaptureDate] SMALLDATETIME\r\n)\r\nON &#x5B;PRIMARY];\r\nGO\r\n<\/pre>\n<p>Then you can set up a SQL Agent job to capture the data at a regular interval with the query below:<\/p>\n<pre class=\"brush: sql; title: ; notranslate\" title=\"\">\r\nINSERT INTO &#x5B;dbo].&#x5B;FreeSpace](\r\n   &#x5B;LogicalVolume],\r\n   &#x5B;AvailableBytes],\r\n   &#x5B;CaptureDate]\r\n)\r\nSELECT DISTINCT\r\n   (&#x5B;vs].&#x5B;logical_volume_name]),\r\n   (&#x5B;vs].&#x5B;available_bytes] \/ 1048576),\r\n   GETDATE()\r\nFROM &#x5B;sys].&#x5B;master_files] AS &#x5B;f]\r\nCROSS APPLY &#x5B;sys].&#x5B;dm_os_volume_stats](&#x5B;f].&#x5B;database_id],&#x5B;f].&#x5B;file_id]) AS &#x5B;vs];\r\nGO\r\n<\/pre>\n<p>There is a catch with the above query \u2013 it\u2019s only applicable if you\u2019re running SQL Server 2008 R2 SP1 and higher (including SQL Server 2012).\u00a0 If you\u2019re using a previous version, you can use xp_fixeddrives to capture the data:<\/p>\n<pre class=\"brush: sql; title: ; notranslate\" title=\"\">\r\nINSERT INTO &#x5B;dbo].&#x5B;FreeSpace](\r\n   &#x5B;LogicalVolume],\r\n   &#x5B;MBAvailable]\r\n)\r\nEXEC xp_fixeddrives;\r\n\r\nUPDATE &#x5B;dbo].&#x5B;FreeSpace]\r\nSET &#x5B;CaptureDate] = GETDATE()\r\nWHERE &#x5B;CaptureDate] IS NULL;\r\nGO\r\n<\/pre>\n<p>Capturing free space is a great start, but if you\u2019ve pre-sized your database files (which is recommended) the free space value probably won\u2019t change for quite a while.\u00a0 Therefore, it\u2019s a good idea to capture file sizes and available space within as well.\u00a0 You can find scripts to capture this information in my Capturing <a href=\"http:\/\/www.sqlservercentral.com\/articles\/baselines\/96059\/\">Baselines on SQL Server: Where\u2019s My Space?<\/a> article.<\/p>\n<p><strong>When to capture<\/strong><\/p>\n<p>Deciding when you will collect data will depend on the data itself.\u00a0 For the file and disk information, the data doesn\u2019t change often enough that you need it to collect hourly.\u00a0 Daily is sufficient \u2013 perhaps even weekly if the systems are low volume.\u00a0 If you\u2019re capturing Performance Monitor data, however, then you would collect at shorter intervals, perhaps every 1 minute or every 5 minutes.\u00a0 For any data collection, you have to find the right balance between capturing it often enough to accumulate the interesting data points, and not gathering so much data that it becomes unwieldy and hard to find what\u2019s really of value.<\/p>\n<p>Separate from the interval at which to capture, for some data you also need to consider the timeframes.\u00a0 Performance Monitor is a great example.\u00a0 You may decide to collect counters every 5 minutes, but then you have to determine whether you want to sample 24&#215;7, only on weekdays, or only during business hours.\u00a0\u00a0 Or perhaps you only want to capture metrics during peak usage times.\u00a0 When in doubt, start small.\u00a0 While you can always change your collection interval and timeframe later on, it\u2019s much easier to start small to avoid getting overwhelmed, rather than collect everything and then try to figure out what to remove.<\/p>\n<p><strong>Using baseline data<\/strong><\/p>\n<p>Once you\u2019ve set up your process for data capture, what\u2019s next?\u00a0 It\u2019s very easy to sit back and let the data accumulate, but you need to be proactive.\u00a0 You won\u2019t want to keep data forever, so put a job in place that will delete data after a specified time.\u00a0 For the free space example above, it might make sense to add a clustered index on the [CaptureDate] column, and then purge data older than three months (or six months \u2013 how long you keep the data will depend on how you\u2019re using it).<\/p>\n<p>Finally, you need to use that data in some way.\u00a0 You can simply report on it \u2013 the query below will give you free disk information for a selected volume for the past 30 days:<\/p>\n<pre class=\"brush: sql; title: ; notranslate\" title=\"\">\r\nSELECT\r\n   &#x5B;LogicalVolume],\r\n   &#x5B;MBAvailable],\r\n   &#x5B;CaptureDate]\r\nFROM &#x5B;dbo].&#x5B;FreeSpace]\r\nWHERE &#x5B;LogicalVolume] = 'C'\r\n   AND &#x5B;CaptureDate] &gt; GETDATE() - 30\r\nORDER BY &#x5B;CaptureDate];\r\nGO\r\n<\/pre>\n<p>This type of query is great for trending and analysis, but to take full advantage of the data, as part of your daily Agent job, set up a second step that queries the current day\u2019s values and if there is less than 10GB of free space, send you an email to notify you that disk space is low.<\/p>\n<p><strong>Getting started<\/strong><\/p>\n<p>At this point you should have a basic understanding of baselines, and you have a few queries to get you started.\u00a0 If you want to learn more you can peruse my <a title=\"SQL Server Baselines Series on SQLServerCentral.com\" href=\"https:\/\/www.sqlskills.com\/blogs\/erin\/sql-server-baselines-series-on-sqlservercentral-com\/\">Baselines series<\/a> on <a href=\"http:\/\/www.sqlservercentral.com\/Authors\/Articles\/Erin_Stellato\/351331\/\">SQLServerCentral.com<\/a>, and for an in-depth review, you can head over to Pluralsight to view my <a title=\"SQL Server Benchmarking and Baselines on Pluralsight\" href=\"http:\/\/app.pluralsight.com\/courses\/sqlserver-benchmarking\">SQL Server: Benchmarking and Baselines<\/a> course.\u00a0 Once you\u2019ve set up your baselines, you will be ready to explore quick methods to review or process the data.\u00a0 There are many free tools that a DBA can use to not only see what happens in real-time, but also review captured data for analysis and trending.\u00a0 In tomorrow\u2019s post, we\u2019ll look at a few of those utilities in more detail.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This month the SQLskills team is presenting a series of blog posts aimed at helping Accidental\/Junior DBAs &#8216;keep the SQL Server lights on&#8217;. It&#8217;s a little taster to let you know what we cover in our\u00a0Immersion Event for The Accidental\/Junior DBA, which we present\u00a0several times each year. You can find all the other posts in [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,29],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.9.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>The Accidental DBA (Day 18 of 30): Baselines - Erin Stellato<\/title>\n<meta name=\"description\" content=\"This quick primer on SQL Server baselines reviews why they&#039;re important and what you need to know to get started (including a few scripts to capture data!)\" \/>\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\/erin\/the-accidental-dba-baselines\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Accidental DBA (Day 18 of 30): Baselines - Erin Stellato\" \/>\n<meta property=\"og:description\" content=\"This quick primer on SQL Server baselines reviews why they&#039;re important and what you need to know to get started (including a few scripts to capture data!)\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqlskills.com\/blogs\/erin\/the-accidental-dba-baselines\/\" \/>\n<meta property=\"og:site_name\" content=\"Erin Stellato\" \/>\n<meta property=\"article:published_time\" content=\"2013-06-18T15:29:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-09-26T02:23:20+00:00\" \/>\n<meta name=\"author\" content=\"Erin Stellato\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Erin Stellato\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/the-accidental-dba-baselines\/\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/the-accidental-dba-baselines\/\",\"name\":\"The Accidental DBA (Day 18 of 30): Baselines - Erin Stellato\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/#website\"},\"datePublished\":\"2013-06-18T15:29:35+00:00\",\"dateModified\":\"2017-09-26T02:23:20+00:00\",\"author\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/#\/schema\/person\/76170223ffffa1df03fd9be5b66cb158\"},\"description\":\"This quick primer on SQL Server baselines reviews why they're important and what you need to know to get started (including a few scripts to capture data!)\",\"breadcrumb\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/the-accidental-dba-baselines\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sqlskills.com\/blogs\/erin\/the-accidental-dba-baselines\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/the-accidental-dba-baselines\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The Accidental DBA (Day 18 of 30): Baselines\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/#website\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/\",\"name\":\"Erin Stellato\",\"description\":\"The SQL Sequel\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/#\/schema\/person\/76170223ffffa1df03fd9be5b66cb158\",\"name\":\"Erin Stellato\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0c8b485bd54ea26b57e99f79b525f409?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0c8b485bd54ea26b57e99f79b525f409?s=96&d=mm&r=g\",\"caption\":\"Erin Stellato\"},\"sameAs\":[\"http:\/\/3.209.169.194\/blogs\/erin\"],\"url\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/author\/erin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"The Accidental DBA (Day 18 of 30): Baselines - Erin Stellato","description":"This quick primer on SQL Server baselines reviews why they're important and what you need to know to get started (including a few scripts to capture data!)","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\/erin\/the-accidental-dba-baselines\/","og_locale":"en_US","og_type":"article","og_title":"The Accidental DBA (Day 18 of 30): Baselines - Erin Stellato","og_description":"This quick primer on SQL Server baselines reviews why they're important and what you need to know to get started (including a few scripts to capture data!)","og_url":"https:\/\/www.sqlskills.com\/blogs\/erin\/the-accidental-dba-baselines\/","og_site_name":"Erin Stellato","article_published_time":"2013-06-18T15:29:35+00:00","article_modified_time":"2017-09-26T02:23:20+00:00","author":"Erin Stellato","twitter_misc":{"Written by":"Erin Stellato","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.sqlskills.com\/blogs\/erin\/the-accidental-dba-baselines\/","url":"https:\/\/www.sqlskills.com\/blogs\/erin\/the-accidental-dba-baselines\/","name":"The Accidental DBA (Day 18 of 30): Baselines - Erin Stellato","isPartOf":{"@id":"https:\/\/www.sqlskills.com\/blogs\/erin\/#website"},"datePublished":"2013-06-18T15:29:35+00:00","dateModified":"2017-09-26T02:23:20+00:00","author":{"@id":"https:\/\/www.sqlskills.com\/blogs\/erin\/#\/schema\/person\/76170223ffffa1df03fd9be5b66cb158"},"description":"This quick primer on SQL Server baselines reviews why they're important and what you need to know to get started (including a few scripts to capture data!)","breadcrumb":{"@id":"https:\/\/www.sqlskills.com\/blogs\/erin\/the-accidental-dba-baselines\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqlskills.com\/blogs\/erin\/the-accidental-dba-baselines\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqlskills.com\/blogs\/erin\/the-accidental-dba-baselines\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqlskills.com\/blogs\/erin\/"},{"@type":"ListItem","position":2,"name":"The Accidental DBA (Day 18 of 30): Baselines"}]},{"@type":"WebSite","@id":"https:\/\/www.sqlskills.com\/blogs\/erin\/#website","url":"https:\/\/www.sqlskills.com\/blogs\/erin\/","name":"Erin Stellato","description":"The SQL Sequel","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sqlskills.com\/blogs\/erin\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.sqlskills.com\/blogs\/erin\/#\/schema\/person\/76170223ffffa1df03fd9be5b66cb158","name":"Erin Stellato","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqlskills.com\/blogs\/erin\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0c8b485bd54ea26b57e99f79b525f409?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0c8b485bd54ea26b57e99f79b525f409?s=96&d=mm&r=g","caption":"Erin Stellato"},"sameAs":["http:\/\/3.209.169.194\/blogs\/erin"],"url":"https:\/\/www.sqlskills.com\/blogs\/erin\/author\/erin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-json\/wp\/v2\/posts\/586"}],"collection":[{"href":"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-json\/wp\/v2\/comments?post=586"}],"version-history":[{"count":0,"href":"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-json\/wp\/v2\/posts\/586\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-json\/wp\/v2\/media?parent=586"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-json\/wp\/v2\/categories?post=586"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-json\/wp\/v2\/tags?post=586"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}