{"id":23719,"date":"2023-03-23T10:31:00","date_gmt":"2023-03-23T09:31:00","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/?p=23719"},"modified":"2023-03-31T14:22:27","modified_gmt":"2023-03-31T12:22:27","slug":"high-availability-and-hierarchical-federation-with-prometheus","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/high-availability-and-hierarchical-federation-with-prometheus\/","title":{"rendered":"High Availability and Hierarchical Federation with Prometheus"},"content":{"rendered":"\n<p>When we talk about setting up infrastructure, there comes the point where we need to ask ourselves about its reliability and robustness. The same applies to monitoring, which is why it&#8217;s totally normal to wonder about the solutions offered by Prometheus.<\/p>\n\n\n\n<p>For example, is it possible to implement high availability with Prometheus? And what should we do when Prometheus starts showing signs of fatigue? Would deploying a new Prometheus server be enough, or would we risk becoming scattered with an accumulation of servers?<\/p>\n\n\n\n<p>These are the kinds of questions that I&#8217;ll be exploring in this post. So, let&#8217;s dive in and see what we can learn!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">High Availability<\/h2>\n\n\n\n<p>First things first, let&#8217;s tackle the question of high availability.<br>Unlike Alertmanager, which allows clustering and communication between multiple instances, Prometheus doesn&#8217;t extend the same privilege. However, the truth is, clustering Prometheus is not needed to achieve high availability. This tool has been ingeniously engineered to maintain high availability without requiring server communication. <\/p>\n\n\n\n<p>In fact, setting up a highly available Prometheus system is a breeze just by running multiple Prometheus servers with identical configurations.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"425\" height=\"291\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/HA-Prometheus.drawio.svg\" alt=\"\" class=\"wp-image-23826\" \/><\/figure>\n\n\n\n<p>Without further ado, I&#8217;ll explain how to set up this HA in a few steps, if you don&#8217;t mind.<\/p>\n\n\n\n<p>Let&#8217;s assume that we have two Prometheus servers, Prometheus_DC1 and Prometheus_DC2.<br>To set up the HA, we have to copy all Prometheus configurations from Prometheus_DC1 to Prometheus_DC2 :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Copy the Prometheus configuration file <code>\/etc\/prometheus\/prometheus.yml<\/code> from the Prometheus_DC1 to Prometheus_DC2.<\/li>\n\n\n\n<li>Copy the rules configuration <code>\/etc\/prometheus\/rules\/rules.yaml <\/code> from the Prometheus_DC1 to Prometheus_DC2<\/li>\n\n\n\n<li>On Prometheus_DC2, enable the Prometheus service, and start it.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nsudo systemctl enable prometheus\nsudo systemctl start prometheus\n<\/pre><\/div>\n\n\n<p>And that&#8217;s it. We don&#8217;t need anything else to configure HA at the Prometheus level. If we wish, we can add a load balancer configured in round-robin. It can be helpful if we&#8217;re using Grafana.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Federation<\/h2>\n\n\n\n<p>When we start monitoring with Prometheus, we typically begin with one server per datacenter or environment, which is sufficient due to its efficiency and lower failure rates. However, as operational overhead and performance issues arise, it may be necessary to split the Prometheus server into separate servers for network, infrastructure, and application monitoring, known as vertical sharding. Teams can also run their own Prometheus servers for greater flexibility and control over target labels and scrape intervals. Social factors often lead to Prometheus servers being split before performance concerns arise.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">But how do we aggregate all this data?<\/h3>\n\n\n\n<p>To perform global aggregations, federation allows for a global Prometheus server to pull aggregated metrics from datacenter Prometheus servers. This ensures reliability and simplicity in monitoring systems, particularly for graphing and alerting purposes.<\/p>\n\n\n\n<p>We can easily share our metric data with Federation across different Prometheus servers. <\/p>\n\n\n\n<p>For informational purposes, there are two types of Federation<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Hierarchical Federation<\/li>\n<\/ul>\n\n\n\n<p>This means we have bigger Prometheus servers that collect time-series data from smaller ones. We have a top-down approach where data is gathered from different levels.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"921\" height=\"381\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/Hierarchical-Federation-1-1.svg\" alt=\"\" class=\"wp-image-23921\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Cross-Service Federation<\/li>\n<\/ul>\n\n\n\n<p>This method involves one Prometheus server monitoring a particular service or group of services, gathering specific time-series data from another server that is monitoring a different set of services. <br>By doing this, we can run queries and alerts on the merged data from both servers.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"901\" height=\"351\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/Cross_Service_Federation_final-2.svg\" alt=\"\" class=\"wp-image-23920\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Implementing a hierarchical Federation<\/h2>\n\n\n\n<p>For this blog, we will assume a configuration with two servers to be monitored &#8211; one in Basel and the other in Zurich, each hosting a node_exporter. <br>These servers will be monitored by dedicated Prometheus servers named dc1 and dc2, respectively. Finally, the metrics from these two Prometheus servers will be aggregated by a federation server.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"601\" height=\"411\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/Hierarchical-Federation-finalstep.svg\" alt=\"\" class=\"wp-image-23918\" \/><\/figure>\n\n\n\n<p>From the Prometheus user interface, we can observe that the &#8220;Office Server&#8221; jobs gather metrics from the Basel and Zurich servers through their respective endpoints http:\/dbi-basel-srv1:9100\/metrics and http:\/dbi-zurich-srv1:9100\/metrics, via the Prometheus servers DC1 and DC2.<br>Prometheus DC1:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"366\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/Capture-decran-2023-03-21-a-11.34.17-1024x366.png\" alt=\"\" class=\"wp-image-23760\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/Capture-decran-2023-03-21-a-11.34.17-1024x366.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/Capture-decran-2023-03-21-a-11.34.17-300x107.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/Capture-decran-2023-03-21-a-11.34.17-768x275.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/Capture-decran-2023-03-21-a-11.34.17.png 1365w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Prometheus DC2:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"378\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/Capture-decran-2023-03-21-a-11.35.36-1024x378.png\" alt=\"\" class=\"wp-image-23757\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/Capture-decran-2023-03-21-a-11.35.36-1024x378.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/Capture-decran-2023-03-21-a-11.35.36-300x111.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/Capture-decran-2023-03-21-a-11.35.36-768x283.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/Capture-decran-2023-03-21-a-11.35.36.png 1345w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Now, we can log in to our third Prometheus server (the Federate one) and edit the Prometheus configuration file <code>\/etc\/prometheus\/prometheus.yml<\/code>.<br>Add the following block at the bottom of the file, just after the static configuration of the &#8220;Prometheus&#8221; job name.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n# Federation configuration\n  - job_name: &#039;federation&#039;\n    scrape_interval: 15s\n    honor_labels: true\n    metrics_path: &#039;\/federate&#039;\n    params:\n      &#039;match&#x5B;]&#039;:\n        - &#039;{job!~&quot;prometheus&quot;}&#039;\n    static_configs:\n    - targets:\n      - &#039;prometheus-dc-1:9090&#039;\n      - &#039;prometheus-dc-2:9090&#039;\n<\/pre><\/div>\n\n\n<p>The configuration file should look like below:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># my global config\nglobal:\n  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.\n  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.\n  # scrape_timeout is set to the global default (10s).\n\n# Alertmanager configuration\nalerting:\n  alertmanagers:\n  - static_configs:\n    - targets:\n      # - alertmanager:9093\n\n# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.\nrule_files:\n  # - \"first_rules.yml\"\n  # - \"second_rules.yml\"\n\n# A scrape configuration containing exactly one endpoint to scrape:\n# Here it's Prometheus itself.\nscrape_configs:\n  # The job name is added as a label `job=&lt;job_name&gt;` to any timeseries scraped from this config.\n  - job_name: 'prometheus'\n\n    # metrics_path defaults to '\/metrics'\n    # scheme defaults to 'http'.\n\n    static_configs:\n    - targets: &#091;'localhost:9090']\n\n# Federation configuration\n  - job_name: 'federation'\n    scrape_interval: 15s\n    honor_labels: true\n    metrics_path: '\/federate'\n    params:\n      'match&#091;]':\n        - '{job!~\"prometheus\"}'\n    static_configs:\n    - targets:\n      - 'prometheus-dc-1:9090'\n      - 'prometheus-dc-2:9090'<\/code><\/pre>\n\n\n\n<p>Once configured, we enable the Federal Prometheus Server<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nsudo systemctl enable prometheus\n<\/pre><\/div>\n\n\n<p>And start Prometheus<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nsudo systemctl start prometheus\n<\/pre><\/div>\n\n\n<p>We can access&nbsp;Federal Prometheus Server through the web UI at&nbsp;http:\/\/&lt;Federated Prometheus Server Public IP&gt;:9090.<\/p>\n\n\n\n<p><br>Then, click on status and finally on target.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"440\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/Capture-decran-2023-03-21-a-11.36.48-1024x440.png\" alt=\"\" class=\"wp-image-23758\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/Capture-decran-2023-03-21-a-11.36.48-1024x440.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/Capture-decran-2023-03-21-a-11.36.48-300x129.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/Capture-decran-2023-03-21-a-11.36.48-768x330.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/Capture-decran-2023-03-21-a-11.36.48.png 1308w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Under the job named &#8216;federate&#8217;, we see that our two Prometheus servers have been scrapped appropriately.<\/p>\n\n\n\n<p>Now we can go to the expression browser and type the command <code>up<\/code>. It should display the instance from the Basel and Zurich Servers.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"362\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/Capture-decran-2023-03-21-a-11.40.25-1024x362.png\" alt=\"\" class=\"wp-image-23759\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/Capture-decran-2023-03-21-a-11.40.25-1024x362.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/Capture-decran-2023-03-21-a-11.40.25-300x106.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/Capture-decran-2023-03-21-a-11.40.25-768x272.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/Capture-decran-2023-03-21-a-11.40.25-1536x544.png 1536w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/Capture-decran-2023-03-21-a-11.40.25.png 1661w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Now we know how to set up HA, which can be easily combined with Federation. One doesn&#8217;t prevent the other. <br>The ball is in your court.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Learn about Prometheus and how to setup high availability and federation.<\/p>\n","protected":false},"author":40,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1320],"tags":[2889,84,143,2234],"type_dbi":[],"class_list":["post-23719","post","type-post","status-publish","format-standard","hentry","category-devops","tag-federation","tag-high-availability","tag-monitoring","tag-prometheus"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>High Availability and Hierarchical Federation with Prometheus - dbi Blog<\/title>\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.dbi-services.com\/blog\/high-availability-and-hierarchical-federation-with-prometheus\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"High Availability and Hierarchical Federation with Prometheus\" \/>\n<meta property=\"og:description\" content=\"Learn about Prometheus and how to setup high availability and federation.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/high-availability-and-hierarchical-federation-with-prometheus\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2023-03-23T09:31:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-03-31T12:22:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/HA-Prometheus.drawio.svg\" \/>\n<meta name=\"author\" content=\"Middleware Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Middleware Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/high-availability-and-hierarchical-federation-with-prometheus\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/high-availability-and-hierarchical-federation-with-prometheus\\\/\"},\"author\":{\"name\":\"Middleware Team\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/8d8563acfc6e604cce6507f45bac0ea1\"},\"headline\":\"High Availability and Hierarchical Federation with Prometheus\",\"datePublished\":\"2023-03-23T09:31:00+00:00\",\"dateModified\":\"2023-03-31T12:22:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/high-availability-and-hierarchical-federation-with-prometheus\\\/\"},\"wordCount\":802,\"commentCount\":1,\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/high-availability-and-hierarchical-federation-with-prometheus\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2023\\\/03\\\/HA-Prometheus.drawio.svg\",\"keywords\":[\"Federation\",\"High availability\",\"Monitoring\",\"Prometheus\"],\"articleSection\":[\"DevOps\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/high-availability-and-hierarchical-federation-with-prometheus\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/high-availability-and-hierarchical-federation-with-prometheus\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/high-availability-and-hierarchical-federation-with-prometheus\\\/\",\"name\":\"High Availability and Hierarchical Federation with Prometheus - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/high-availability-and-hierarchical-federation-with-prometheus\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/high-availability-and-hierarchical-federation-with-prometheus\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2023\\\/03\\\/HA-Prometheus.drawio.svg\",\"datePublished\":\"2023-03-23T09:31:00+00:00\",\"dateModified\":\"2023-03-31T12:22:27+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/8d8563acfc6e604cce6507f45bac0ea1\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/high-availability-and-hierarchical-federation-with-prometheus\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/high-availability-and-hierarchical-federation-with-prometheus\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/high-availability-and-hierarchical-federation-with-prometheus\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2023\\\/03\\\/HA-Prometheus.drawio.svg\",\"contentUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2023\\\/03\\\/HA-Prometheus.drawio.svg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/high-availability-and-hierarchical-federation-with-prometheus\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"High Availability and Hierarchical Federation with Prometheus\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/8d8563acfc6e604cce6507f45bac0ea1\",\"name\":\"Middleware Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ddcae7ba0f9d1a0e7ae707f0e689e4a9c95bb48ec49c8e6d9cc86d43f4121cb6?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ddcae7ba0f9d1a0e7ae707f0e689e4a9c95bb48ec49c8e6d9cc86d43f4121cb6?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ddcae7ba0f9d1a0e7ae707f0e689e4a9c95bb48ec49c8e6d9cc86d43f4121cb6?s=96&d=mm&r=g\",\"caption\":\"Middleware Team\"},\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/middleware-team\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"High Availability and Hierarchical Federation with Prometheus - dbi Blog","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.dbi-services.com\/blog\/high-availability-and-hierarchical-federation-with-prometheus\/","og_locale":"en_US","og_type":"article","og_title":"High Availability and Hierarchical Federation with Prometheus","og_description":"Learn about Prometheus and how to setup high availability and federation.","og_url":"https:\/\/www.dbi-services.com\/blog\/high-availability-and-hierarchical-federation-with-prometheus\/","og_site_name":"dbi Blog","article_published_time":"2023-03-23T09:31:00+00:00","article_modified_time":"2023-03-31T12:22:27+00:00","og_image":[{"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/HA-Prometheus.drawio.svg","type":"","width":"","height":""}],"author":"Middleware Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Middleware Team","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/high-availability-and-hierarchical-federation-with-prometheus\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/high-availability-and-hierarchical-federation-with-prometheus\/"},"author":{"name":"Middleware Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d8563acfc6e604cce6507f45bac0ea1"},"headline":"High Availability and Hierarchical Federation with Prometheus","datePublished":"2023-03-23T09:31:00+00:00","dateModified":"2023-03-31T12:22:27+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/high-availability-and-hierarchical-federation-with-prometheus\/"},"wordCount":802,"commentCount":1,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/high-availability-and-hierarchical-federation-with-prometheus\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/HA-Prometheus.drawio.svg","keywords":["Federation","High availability","Monitoring","Prometheus"],"articleSection":["DevOps"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/high-availability-and-hierarchical-federation-with-prometheus\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/high-availability-and-hierarchical-federation-with-prometheus\/","url":"https:\/\/www.dbi-services.com\/blog\/high-availability-and-hierarchical-federation-with-prometheus\/","name":"High Availability and Hierarchical Federation with Prometheus - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/high-availability-and-hierarchical-federation-with-prometheus\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/high-availability-and-hierarchical-federation-with-prometheus\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/HA-Prometheus.drawio.svg","datePublished":"2023-03-23T09:31:00+00:00","dateModified":"2023-03-31T12:22:27+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d8563acfc6e604cce6507f45bac0ea1"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/high-availability-and-hierarchical-federation-with-prometheus\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/high-availability-and-hierarchical-federation-with-prometheus\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/high-availability-and-hierarchical-federation-with-prometheus\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/HA-Prometheus.drawio.svg","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/HA-Prometheus.drawio.svg"},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/high-availability-and-hierarchical-federation-with-prometheus\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"High Availability and Hierarchical Federation with Prometheus"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d8563acfc6e604cce6507f45bac0ea1","name":"Middleware Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/ddcae7ba0f9d1a0e7ae707f0e689e4a9c95bb48ec49c8e6d9cc86d43f4121cb6?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/ddcae7ba0f9d1a0e7ae707f0e689e4a9c95bb48ec49c8e6d9cc86d43f4121cb6?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ddcae7ba0f9d1a0e7ae707f0e689e4a9c95bb48ec49c8e6d9cc86d43f4121cb6?s=96&d=mm&r=g","caption":"Middleware Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/middleware-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/23719","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/40"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=23719"}],"version-history":[{"count":12,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/23719\/revisions"}],"predecessor-version":[{"id":24247,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/23719\/revisions\/24247"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=23719"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=23719"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=23719"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=23719"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}