{"id":6970,"date":"2021-07-27T16:07:09","date_gmt":"2021-07-27T10:37:09","guid":{"rendered":"https:\/\/opstree.com\/blog\/\/?p=6970"},"modified":"2021-07-27T16:07:09","modified_gmt":"2021-07-27T10:37:09","slug":"introduction-to-prometheus-monitoring","status":"publish","type":"post","link":"https:\/\/opstree.com\/blog\/2021\/07\/27\/introduction-to-prometheus-monitoring\/","title":{"rendered":"Introduction to Prometheus Monitoring"},"content":{"rendered":"\n<p class=\"has-text-align-justify\">Our Team hosted a Workshop on Prometheus which was very insightful and made absolute sense in terms of the Principles and the application part. The audience strength was pretty amazing, besides this, we also received many queries from the people who couldn&#8217;t join because of the Virtual Meet Limit. So, we shared the <a href=\"https:\/\/www.youtube.com\/watch?v=MqO44-ZePsA\" target=\"_blank\" rel=\"noopener\">recording<\/a> and the <a href=\"https:\/\/www.slideshare.net\/OpstreeSolutions\/prometheus-workshop\" target=\"_blank\" rel=\"noopener\">slides<\/a> on social platforms. Here we try to share a glimpse of the workshop while keeping the same essence.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h5 class=\"wp-block-heading\">Why Monitoring?<\/h5>\n\n\n\n<p class=\"has-text-align-justify\">In today\u2019s time, organizations can&#8217;t afford one second of downtime or slow performance of their applications. But, system malfunction can happen anytime and we won\u2019t be able to monitor the complete system for 24&#215;7. To ensure apps are available, performant and secure at all times, engineers rely on the different types of data generated by their applications and the infrastructure supporting them, be it event logs or metrics, or both which enables monitoring of these systems and the identification and resolution of issues.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">What is Monitoring?<\/h5>\n\n\n\n<p class=\"has-text-align-justify\">Monitoring is the process of collecting, aggregating, and analysing those values that help to improve awareness of components, characteristics and behaviour. And, a key advantage of using the monitoring system is that on the basis of historical data, we can predict what system-level changes are needed to be done.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">What do we Monitor?<\/h5>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2021\/06\/image-3.png?w=782\" alt=\"\" class=\"wp-image-7088\" width=\"750\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Prometheus<\/h3>\n\n\n\n<p class=\"has-text-align-justify\">Prometheus&nbsp;is an open-source system monitoring and alerting toolkit originally built at&nbsp;SoundCloud. Prometheus is a time-series database that scrapes the metrics from the HTTP\/HTTPS endpoint. Prometheus provides native support to some services which means that they don\u2019t require any kind of monitoring agent, for example:- Kubernetes, ETCD, SkyDNS.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Features:<\/h5>\n\n\n\n<ul><li>It\u2019s a time-series database, so we can easily take incremental backup of our monitoring data.<\/li><li>A flexible query language in form of PromQL for time series data aggregation and prediction.<\/li><li>Service Discovery feature is offered in Prometheus. By using this feature we don\u2019t have to define static targets in configuration.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">What is TSD?<\/h3>\n\n\n\n<p class=\"has-text-align-justify\"><strong>Time-series data<\/strong>&nbsp;is a sequence of data points collected over time intervals, giving us the ability to&nbsp;track changes over time. Time-series data can track changes over milliseconds, days, or even years. And, a t<strong>ime-series database<\/strong> lets you store large volumes of timestamped data in a format that allows fast insertion and fast retrieval to support complex analysis on that data.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"509\" height=\"372\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2021\/06\/image-4.png?w=509\" alt=\"\" class=\"wp-image-7097\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Prometheus Architecture<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2021\/06\/image-6.png?w=909\" alt=\"\" class=\"wp-image-7100\" width=\"682\" height=\"377\" \/><\/figure>\n\n\n\n<ul><li>Prometheus Server which does the actual monitoring work, consists of three components. A <strong>Data retrieval worker<\/strong> that scrapes the data from the target endpoints, a <strong>TSDB<\/strong> which stores all the collected data metrics and an <strong>HTTP server.<\/strong><\/li><li>Prometheus pulls the metric data from the target from an <code>HTTP<\/code> endpoint which  by default is the <code>hostaddress\/metrics<\/code>, for that to work one target must expose that metric endpoint with data available and should be in time series format.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Pull and Push Model(PushGateway)<\/h3>\n\n\n\n<p class=\"has-text-align-justify\">Prometheus uses a Pull model (also called Scraping) to collect metrics, meaning the Prometheus server will reach out to specified services by calling their configured HTTP endpoint to pull those metrics.<\/p>\n\n\n\n<p class=\"has-text-align-justify\">For example, in the configuration defined in&nbsp;<code>prometheus.yml<\/code>&nbsp;file tells the Prometheus servers to fetch metrics every 15s on the specified endpoint.<\/p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<pre class=\"wp-block-code\"><code>scrape_configs:\n- job_name: 'Node_exporter'\n  scrape_interval: 15s\n  static_configs:\n    - targets: &#091;\"localhost:9100\"]<\/code><\/pre>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/PDSqz51F2ikkLlD9L5mKcBg25bYmme7lSReA8Rzt50KEcCXGLeqPb4KT1NNjlxBLuYLJ8kInJQ2w5st3rnAWLlG0UzyTjbLThBUeS9EQTiP1dFwI2YRmKEWYZE07RFgDyLmTMXCZlDI\" alt=\"\" width=\"416\" height=\"449\" \/><\/figure><\/div>\n\n\n\n<p class=\"has-text-align-justify\">Scraping is good for long-running services since those services will be available for a long time for the Prometheus servers to make a request and collect their metrics. But for short-lived services such as Batch\/Cron Jobs, by the time Prometheus decides to collect metrics, those jobs might long be terminated.<\/p>\n\n\n\n<p class=\"has-text-align-justify\">For these kinds of use cases, <strong>PushGateway<\/strong> comes into the picture which exists to allow ephemeral and batch jobs to expose their metrics to Prometheus.<\/p>\n\n\n\n<p class=\"has-text-align-justify\" id=\"cedb\">So it&#8217;s an intermediary service, where the clients (jobs) can push their metrics as desired before it shuts down and later Prometheus can scrape those metrics from PushGateway as usual. <\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>The Pushgateway is explicitly not an&nbsp;<em>aggregator or distributed counter<\/em>&nbsp;but rather a metrics cache.<\/p><\/blockquote>\n\n\n\n<p class=\"has-text-align-center\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/wVn0tPOz1lBtjetawFPwyVKs6Mr9g3RmOu7BOnD6rbBon8optGKIpBMmeNtU99v0betFVXXEgECp3l8qG3ffJ0xOJCI91NW8XSC5NccutBdSy0BE9POXGkwVKbGUXCD4Y6ClViu3wxU\" style=\"width:600px;\"><\/p>\n<\/div><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Exporters<\/h3>\n\n\n\n<p class=\"has-text-align-justify\">Exporters are kind of monitoring agent for Prometheus which fetches the data from different system and software and converts them into Prometheus time-series format and exposes metrics endpoint.<\/p>\n\n\n\n<p class=\"has-text-align-center\"><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/92QwFudBDj2QFWE598NWshBFzHvEk2scu0L7M8yqhg3EjFFMKHb450iWwDOUvoacXk8F0_ndsych5-1MnGamJeaEwgA8ZeNz-lZH9RsEp-AKJguSfSOkH_OaVSzA49q3EY04KZ1Hsd0\" style=\"width:350px;\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">PromQL<\/h3>\n\n\n\n<p class=\"has-text-align-justify\">PromQL is a Prometheus language for creating and executing queries to extract or aggregate data in Prometheus. It uses Prometheus\u2019s Key Value based data representation and returns the value. Some examples of Prometheus vectors are:-<\/p>\n\n\n\n<ul><li>Range Vector &#8211; To calculate the values in Prometheus for a period of time.<\/li><li>Instant Vector &#8211; It will give the data output for the last time interval.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">AlertManager<\/h3>\n\n\n\n<p class=\"has-text-align-justify\">AlertManager is used to handle alerts for client applications(like Prometheus). It also takes care of alerts deduplicating, grouping and then routes them to different receivers such as E-mail, Slack, Pagerduty. Prometheus AlertManager can be setup as an individual component as well and can be used to send notifications to different mediums by Webhook trigger.<\/p>\n\n\n\n<p class=\"has-text-align-center\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/YyAlyIaJoCgjfgiKnYNQplnTy5xs6KwwunVng6PuuXM7uYsrQWj_w-Wlhw6Y-gnD56eftlqnjKArC_xy6Ktc4ABMuBIUPCOqUiaNnb9jg6rVFAV592m5KtBEOcN9GTmhXFnNrdNqQRI\" style=\"width:380px;\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Service Discovery<\/h3>\n\n\n\n<p class=\"has-text-align-justify\">It\u2019s hard to update the configuration file each time if we have a large infrastructure. To overcome this, Prometheus supports the service discovery feature. In Prometheus service discovery, the machine or agents will automatically get registered to be monitored. No service restart is required in  the case of new monitoring agents. Supports with different services like:- AWS, GCP, Azure, Kubernetes, Consul, Docker, and Digitalocean.<\/p>\n\n\n\n<p class=\"has-text-align-center\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/LaxPhxwDGA5Eno99D-WnyIMxmPHImV9bmJfBI1haQmkOh1GubewH1yuesVlKLlR9cbZyIF9tSpzYtGPs-T8RjzX0L4SISgoS8gXc9xh94WIfS8LfJ34buOudv_SU-YuV7L18qJiu7rY\" style=\"width:500px;\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">In Conclusion<\/h2>\n\n\n\n<p class=\"has-text-align-justify\">We tried to cover the in-depth explanation of why, what and how to part with Prometheus. To bring these things into immediate action and to get started, give it a try with our hands-on <a href=\"https:\/\/github.com\/OT-TRAINING\/Prometheus\/wiki\" target=\"_blank\" rel=\"noopener\">labs<\/a> ready. We don&#8217;t end here! We&#8217;ll be coming   back soon with the different application&#8217;s monitoring of real-time infrastructure with their key metrics, conditions and alerting scenarios!!<\/p>\n\n\n\n<p>Till then Keep Monitoring \ud83d\ude42<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p> <strong>Blog Pundit:<\/strong>  <a href=\"https:\/\/opstree.com\/blog\/\/author\/kapendrasingh\/\">\u00a0<strong><a href=\"https:\/\/opstree.com\/blog\/\/author\/kapendrasingh\/\">\u00a0<strong>Kapendra Singh<\/strong><\/a><\/strong><\/a><\/p>\n\n\n\n<p>Opstree is an End to End DevOps solution provider<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button is-style-fill\"><a class=\"wp-block-button__link\" href=\"https:\/\/www.opstree.com\/contact-us\" target=\"_blank\" rel=\"noreferrer noopener\">CONTACT US<\/a><\/div>\n<\/div>\n\n\n\n<p class=\"has-text-align-center\"><strong>Connect Us <\/strong><\/p>\n\n\n\n<ul class=\"wp-block-social-links aligncenter items-justified-right is-layout-flex wp-block-social-links-is-layout-flex\"><li class=\"wp-social-link wp-social-link-linkedin  wp-block-social-link\"><a href=\"https:\/\/www.linkedin.com\/company\/opstree-solutions\" class=\"wp-block-social-link-anchor\" target=\"_blank\" rel=\"noopener\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">LinkedIn<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-youtube  wp-block-social-link\"><a href=\"https:\/\/www.youtube.com\/channel\/UCeLma6SpNYH7jjYKSBNSexw\" class=\"wp-block-social-link-anchor\" target=\"_blank\" rel=\"noopener\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M21.8,8.001c0,0-0.195-1.378-0.795-1.985c-0.76-0.797-1.613-0.801-2.004-0.847c-2.799-0.202-6.997-0.202-6.997-0.202 h-0.009c0,0-4.198,0-6.997,0.202C4.608,5.216,3.756,5.22,2.995,6.016C2.395,6.623,2.2,8.001,2.2,8.001S2,9.62,2,11.238v1.517 c0,1.618,0.2,3.237,0.2,3.237s0.195,1.378,0.795,1.985c0.761,0.797,1.76,0.771,2.205,0.855c1.6,0.153,6.8,0.201,6.8,0.201 s4.203-0.006,7.001-0.209c0.391-0.047,1.243-0.051,2.004-0.847c0.6-0.607,0.795-1.985,0.795-1.985s0.2-1.618,0.2-3.237v-1.517 C22,9.62,21.8,8.001,21.8,8.001z M9.935,14.594l-0.001-5.62l5.404,2.82L9.935,14.594z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">YouTube<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-github  wp-block-social-link\"><a href=\"https:\/\/github.com\/OpsTree\" class=\"wp-block-social-link-anchor\" target=\"_blank\" rel=\"noopener\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12,2C6.477,2,2,6.477,2,12c0,4.419,2.865,8.166,6.839,9.489c0.5,0.09,0.682-0.218,0.682-0.484 c0-0.236-0.009-0.866-0.014-1.699c-2.782,0.602-3.369-1.34-3.369-1.34c-0.455-1.157-1.11-1.465-1.11-1.465 c-0.909-0.62,0.069-0.608,0.069-0.608c1.004,0.071,1.532,1.03,1.532,1.03c0.891,1.529,2.341,1.089,2.91,0.833 c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091,0.39-1.984,1.03-2.682 C6.546,8.54,6.202,7.524,6.746,6.148c0,0,0.84-0.269,2.75,1.025C10.295,6.95,11.15,6.84,12,6.836 c0.85,0.004,1.705,0.114,2.504,0.336c1.909-1.294,2.748-1.025,2.748-1.025c0.546,1.376,0.202,2.394,0.1,2.646 c0.64,0.699,1.026,1.591,1.026,2.682c0,3.841-2.337,4.687-4.565,4.935c0.359,0.307,0.679,0.917,0.679,1.852 c0,1.335-0.012,2.415-0.012,2.741c0,0.269,0.18,0.579,0.688,0.481C19.138,20.161,22,16.416,22,12C22,6.477,17.523,2,12,2z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">GitHub<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-facebook  wp-block-social-link\"><a href=\"https:\/\/www.facebook.com\/opstree\" class=\"wp-block-social-link-anchor\" target=\"_blank\" rel=\"noopener\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12 2C6.5 2 2 6.5 2 12c0 5 3.7 9.1 8.4 9.9v-7H7.9V12h2.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.3c-1.2 0-1.6.8-1.6 1.6V12h2.8l-.4 2.9h-2.3v7C18.3 21.1 22 17 22 12c0-5.5-4.5-10-10-10z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">Facebook<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-medium  wp-block-social-link\"><a href=\"https:\/\/medium.com\/buildpiper\" class=\"wp-block-social-link-anchor\" target=\"_blank\" rel=\"noopener\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M20.962,7.257l-5.457,8.867l-3.923-6.375l3.126-5.08c0.112-0.182,0.319-0.286,0.527-0.286c0.05,0,0.1,0.008,0.149,0.02 c0.039,0.01,0.078,0.023,0.114,0.041l5.43,2.715l0.006,0.003c0.004,0.002,0.007,0.006,0.011,0.008 C20.971,7.191,20.98,7.227,20.962,7.257z M9.86,8.592v5.783l5.14,2.57L9.86,8.592z M15.772,17.331l4.231,2.115 C20.554,19.721,21,19.529,21,19.016V8.835L15.772,17.331z M8.968,7.178L3.665,4.527C3.569,4.479,3.478,4.456,3.395,4.456 C3.163,4.456,3,4.636,3,4.938v11.45c0,0.306,0.224,0.669,0.498,0.806l4.671,2.335c0.12,0.06,0.234,0.088,0.337,0.088 c0.29,0,0.494-0.225,0.494-0.602V7.231C9,7.208,8.988,7.188,8.968,7.178z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">Medium<\/span><\/a><\/li><\/ul>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Our Team hosted a Workshop on Prometheus which was very insightful and made absolute sense in terms of the Principles and the application part. The audience strength was pretty amazing, besides this, we also received many queries from the people who couldn&#8217;t join because of the Virtual Meet Limit. So, we shared the recording and &hellip; <a href=\"https:\/\/opstree.com\/blog\/2021\/07\/27\/introduction-to-prometheus-monitoring\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Introduction to Prometheus Monitoring&#8221;<\/span><\/a><\/p>\n","protected":false},"author":198919067,"featured_media":29900,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[28070474],"tags":[768739308,768739293,2704,768739287],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2025\/11\/DevSecOps-1.jpg","jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pfDBOm-1Oq","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/6970"}],"collection":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/users\/198919067"}],"replies":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/comments?post=6970"}],"version-history":[{"count":25,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/6970\/revisions"}],"predecessor-version":[{"id":7438,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/6970\/revisions\/7438"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/media\/29900"}],"wp:attachment":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/media?parent=6970"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/categories?post=6970"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/tags?post=6970"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}