{"id":6344,"date":"2019-02-05T12:46:26","date_gmt":"2019-02-05T20:46:26","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=6344"},"modified":"2019-03-04T06:33:06","modified_gmt":"2019-03-04T14:33:06","slug":"couchbase-monitoring-integration-with-prometheus-and-grafana","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/couchbase-monitoring-integration-with-prometheus-and-grafana\/","title":{"rendered":"Couchbase Monitoring Integration with Prometheus and Grafana"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Couchbase is an enterprise data platform that enables performance at scale by combining a unique memory-first architecture with N1QL \u2013which combines the agility of SQL with the power of JSON \u2013 amongst other built-in features as as Full-Text Search, Eventing, Analytics, and Global Secondary Indexing.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Enterprises that aim at providing a modern, reliable, and customized user experience across their technology offerings typically provision several clusters of Couchbase nodes. These different clusters offer the same performance at scale across different verticals, use cases, and mission-critical systems, in addition to simply having additional clusters that serve as disaster recovery\/backup mechanisms. While Couchbase\u2019s intuitive user interface allows seamless and easy management of the clusters and data buckets \u2013 by offering several one-click functionality for the various maintenance and administration tasks (i.e. rebalance, adding a node, failover, etc) \u2013 it is becoming more and more important to have a holistic view of the entire Couchbase ecosystem. This is especially true in cases where a given organization deploys multiple clusters for geo-locality of data or for supporting several microservices that span different segments, cost centers, or verticals.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Getting Started: Exporting Performance Metrics<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Using <\/span><a href=\"https:\/\/github.com\/totvslabs\/couchbase-exporter\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Couchbase Exporter<\/span><\/a><span style=\"font-weight: 400;\"> (that was developed by our community partner <\/span><a href=\"https:\/\/www.totvs.com\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">TOTVS Labs<\/span><\/a><span style=\"font-weight: 400;\">) in combination with <\/span><a href=\"https:\/\/prometheus.io\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Prometheus<\/span><\/a><span style=\"font-weight: 400;\">, and <\/span><a href=\"https:\/\/grafana.com\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Grafana<\/span><\/a><span style=\"font-weight: 400;\">, it is now possible to export the key performance metrics of one or more clusters and visualize their various performance aspects through a graphical dashboard. The following snapshot illustrates a sample monitoring dashboard for 2 Couchbase clusters:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-6354\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/02\/cb-monitoring-1.png\" alt=\"\" width=\"935\" height=\"491\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-1.png 935w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-1-300x158.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-1-768x403.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-1-20x11.png 20w\" sizes=\"auto, (max-width: 935px) 100vw, 935px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Below are the detailed instructions on how to install and configure Couchbase Exporter, Prometheus, and Grafana:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">First, let\u2019s start with installing the required open source components needed to make all this work. <\/span><\/p>\n<h4>Couchbase Exporter<\/h4>\n<p><span style=\"font-weight: 400;\">Install Couchbase Exporter either by cloning the GitHub repo <\/span><a href=\"https:\/\/github.com\/totvslabs\/couchbase-exporter\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">https:\/\/github.com\/totvslabs\/couchbase-exporter<\/span><\/a><span style=\"font-weight: 400;\"> and building from source, or by downloading the binary of the latest release from <\/span><a href=\"https:\/\/github.com\/totvslabs\/couchbase-exporter\/releases\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">https:\/\/github.com\/totvslabs\/couchbase-exporter\/releases<\/span><\/a><span style=\"font-weight: 400;\"> &#8211; Once installed, a separate Couchbase Exporter process needs to be ran for each Couchbase Server cluster to be monitored using the following syntax:<\/span><\/p>\n<pre class=\"lang:sh decode:true\">.\/couchbase-exporter --couchbase.username Administrator --couchbase.password password --web.listen-address=\":9420\" --couchbase.url=\"https:\/\/52.38.xx.xx:8091\"<\/pre>\n<p><span style=\"font-weight: 400;\">By default, Couchbase Exporter will run on port 9420 and will attempt to connect to the <\/span><span style=\"font-weight: 400;\">Couchbase Server running on <\/span><a href=\"https:\/\/localhost:8091\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">https:\/\/localhost:8091<\/span><\/a><span style=\"font-weight: 400;\">, however, for most users, it is best to specify a free port number as well as the Couchbase Cluster in question explicitly (the IP address of any node of an existing cluster will suffice). For the purposes of this tutorial, I will be running 2 instances of Couchbase Exporter against 2 AWS EC2 Demo clusters located at the time of writing at 52.38.xx.xx and 52.40.xx.xx. The second instance of Couchbase Exporter is started using the following:<\/span><\/p>\n<pre class=\"lang:sh decode:true\">$ .\/couchbase-exporter --couchbase.username Administrator --couchbase.password password --web.listen-address=\":9421\" --couchbase.url=\"https:\/\/52.40.xx.xx:8091\"<\/pre>\n<p><span style=\"font-weight: 400;\">Here are the screenshots of running these 2 Couchbase Exporter instances. Note <\/span><span style=\"font-weight: 400;\">these instances are now running on <\/span><a href=\"https:\/\/localhost:9420\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">https:\/\/localhost:9420<\/span><\/a><span style=\"font-weight: 400;\"> and\u00a0<\/span><a href=\"https:\/\/localhost:9421\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">https:\/\/localhost:9421<\/span><\/a><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\">respectively. These 2 URLs will be used later on to configure Prometheus.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-6355\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/02\/cb-monitoring-2.png\" alt=\"\" width=\"936\" height=\"120\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-2.png 936w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-2-300x38.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-2-768x98.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-2-20x3.png 20w\" sizes=\"auto, (max-width: 936px) 100vw, 936px\" \/> <img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-6356\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/02\/cb-monitoring-3.png\" alt=\"\" width=\"934\" height=\"120\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-3.png 934w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-3-300x39.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-3-768x99.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-3-20x3.png 20w\" sizes=\"auto, (max-width: 934px) 100vw, 934px\" \/><\/p>\n<h4>Prometheus<\/h4>\n<p><span style=\"font-weight: 400;\">Install Prometheus with your installation method of choice following the steps outlined in <\/span><a href=\"https:\/\/prometheus.io\/docs\/prometheus\/latest\/installation\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">https:\/\/prometheus.io\/docs\/prometheus\/latest\/installation\/<\/span><\/a><span style=\"font-weight: 400;\"> \u2013 Once installed, you may now edit the prometheus.yml file that is available in the same directory as the Prometheus binary. This YAML file needs to be modified to specify the Couchbase Exporter targets that were configured in step 1. In this example, we will modify the scrape_configs section of the YAML file as follows:<\/span><\/p>\n<pre class=\"lang:yaml decode:true\">scrape_configs:\r\n\u00a0# The job name is added as a label `job=&lt;job_name&gt;` to any timeseries scraped from this config.\r\n\u00a0- job_name: 'couchbase'\r\n\r\n\u00a0\u00a0\u00a0# metrics_path defaults to '\/metrics'\r\n\u00a0\u00a0\u00a0# scheme defaults to 'http'.\r\n\u00a0\u00a0\u00a0static_configs:\r\n\r\n\u00a0\u00a0\u00a0- targets: ['localhost:9420', 'localhost:9421']<\/pre>\n<p><span style=\"font-weight: 400;\">Once the scrape_configs section is modified to point to the Couchbase Exporter instances, now we can start Prometheus as follows:<\/span><\/p>\n<pre class=\"lang:sh decode:true\">$. \/prometheus --config.file=prometheus.yml<\/pre>\n<p><span style=\"font-weight: 400;\">Now Prometheus should be started and accessible via port 9090 (i.e. <\/span><a href=\"https:\/\/localhost:9090\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">https:\/\/localhost:9090<\/span><\/a><span style=\"font-weight: 400;\">)<\/span><\/p>\n<h4>Grafana<\/h4>\n<p><span style=\"font-weight: 400;\">Install Grafana with your installation method of choice following the steps outlined in <\/span><a href=\"https:\/\/docs.grafana.org\/installation\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">https:\/\/docs.grafana.org\/installation\/<\/span><\/a><span style=\"font-weight: 400;\"> \u2013 Once installed, you should be able to start Grafana (i.e. <span class=\"lang:sh decode:true crayon-inline \">$ sudo service grafana-server start<\/span>\u00a0<\/span><span style=\"font-weight: 400;\">) and access it on port 3000 (i.e. <\/span><a href=\"https:\/\/localhost:3000\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">https:\/\/localhost:3000<\/span><\/a><span style=\"font-weight: 400;\">) \u2013 Default username and password are <\/span><b>admin\/admin<\/b><span style=\"font-weight: 400;\">, however, it is highly recommended to set these credentials according to your organization\u2019s security policy.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Now that Grafana has been installed and started, let\u2019s add and configure the Prometheus data source as follows:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-6357\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/02\/cb-monitoring-4.png\" alt=\"\" width=\"873\" height=\"808\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-4.png 873w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-4-300x278.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-4-768x711.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-4-20x20.png 20w\" sizes=\"auto, (max-width: 873px) 100vw, 873px\" \/><\/p>\n<h2><span style=\"font-weight: 400;\">Visualizing the Performance Metrics:<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Now that Couchbase Exporter, Prometheus, and Grafana have been properly installed and configured, we will now proceed to import a sample Grafana dashboard using <a href=\"https:\/\/github.com\/couchbaselabs\/blog-source-code\/blob\/master\/Meliani\/GrafanaDashboard.json\" target=\"_blank\" rel=\"noopener\">this sample JSON<\/a><\/span><span style=\"font-weight: 400;\">. This is a sample dashboard for illustrative purposes only and does not constitute a recommendation on what metrics to monitor for your particular use case. Your organization is likely to need a custom dashboard with specific Couchbase metrics relevant to your individual use case and therefore this example does not necessarily fit that particular purpose.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-6358\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/02\/cb-monitoring-5.png\" alt=\"\" width=\"875\" height=\"467\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-5.png 875w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-5-300x160.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-5-768x410.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-5-20x11.png 20w\" sizes=\"auto, (max-width: 875px) 100vw, 875px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Once the dashboard is imported, you should be able to load it in Grafana. The following screenshot depicts the state of the 2 clusters configured in step 1.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-6359\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/02\/cb-monitoring-6.png\" alt=\"\" width=\"933\" height=\"493\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-6.png 933w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-6-300x159.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-6-768x406.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-6-20x11.png 20w\" sizes=\"auto, (max-width: 933px) 100vw, 933px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">You may have noticed that the bucket RAM usage for the second cluster is showing N\/A. This correctly reflects the fact that the second cluster does not have any buckets at the moment. Let\u2019s go ahead and add sample buckets to that cluster. Once added, the dashboard is refreshed to show the updated bucket RAM usage at 15.5% (this percentage will vary based on the RAM allocated to the cluster):<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-6360\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/02\/cb-monitoring-7.png\" alt=\"\" width=\"936\" height=\"489\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-7.png 936w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-7-300x157.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-7-768x401.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-7-20x10.png 20w\" sizes=\"auto, (max-width: 936px) 100vw, 936px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Each cluster was initially configured to have 3 nodes. Let\u2019s go ahead and add a 4th node to the second cluster. Once a node is added, the refreshed dashboard will show the following:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-6361\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/02\/cb-monitoring-8.png\" alt=\"\" width=\"936\" height=\"492\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-8.png 936w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-8-300x158.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-8-768x404.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-8-20x11.png 20w\" sizes=\"auto, (max-width: 936px) 100vw, 936px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Since the 4th node was added, and the cluster has not been rebalanced, the server\u00a0<\/span><span style=\"font-weight: 400;\">count has been updated to show 4 nodes in total, however, the rebalance status is <\/span><span style=\"font-weight: 400;\">correctly showing the rebalance not being complete. Let\u2019s go ahead and trigger a <\/span><span style=\"font-weight: 400;\">rebalance. Once the rebalance is triggered through he Couchbase UI, the refreshed <\/span><span style=\"font-weight: 400;\">dashboard will showing the following:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-6362\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/02\/cb-monitoring-9.png\" alt=\"\" width=\"933\" height=\"496\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-9.png 933w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-9-300x159.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-9-768x408.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-9-818x434.png 818w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-9-20x11.png 20w\" sizes=\"auto, (max-width: 933px) 100vw, 933px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">As you can see, the rebalance indicator is now showing 26.4% progress. Once the <\/span><span style=\"font-weight: 400;\">rebalance is complete, the refreshed dashboard will show the following:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-6363\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/02\/cb-monitoring-10.png\" alt=\"\" width=\"935\" height=\"493\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-10.png 935w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-10-300x158.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-10-768x405.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/cb-monitoring-10-20x11.png 20w\" sizes=\"auto, (max-width: 935px) 100vw, 935px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">The rebalance is now complete, and you may notice now that the bucket RAM usage shows 21.3%, to reflect the additional node\u2019s capacity being added to the cluster, therefore reducing the actual overall usage of the 3 samples buckets.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Recap:<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">In this blog, we have installed Prometheus, Grafana, and Couchbase Exporter in order to monitor multiple Couchbase clusters. The Grafana dashboard allows visually monitoring key metrics and performance indicators for Couchbase Server clusters in one central place. In addition, Prometheus allows configuration of alerting rules that would send notifications to a user or mailing list about certain conditions for when a given metric falls or exceeds a certain threshold.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Below are the resources used throughout this blog:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\"><a href=\"https:\/\/github.com\/totvslabs\/couchbase-exporter\"><span style=\"font-weight: 400;\">Couchbase Exporter source<\/span><\/a><\/li>\n<li style=\"font-weight: 400;\"><a href=\"https:\/\/github.com\/totvslabs\/couchbase-exporter\/releases\"><span style=\"font-weight: 400;\">Couchbase Exporter binaries<\/span><\/a><\/li>\n<li style=\"font-weight: 400;\"><a href=\"https:\/\/prometheus.io\/\"><span style=\"font-weight: 400;\">Prometheus<\/span><\/a><\/li>\n<li style=\"font-weight: 400;\"><a href=\"https:\/\/grafana.com\/\"><span style=\"font-weight: 400;\">Grafana<\/span><\/a><\/li>\n<li style=\"font-weight: 400;\"><a href=\"https:\/\/github.com\/totvslabs\/couchbase-exporter\/blob\/master\/prometheus\/rules\/couchbase.rules.yml\"><span style=\"font-weight: 400;\">Sample Couchbase Rules for Prometheus<\/span><\/a><\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Couchbase is an enterprise data platform that enables performance at scale by combining a unique memory-first architecture with N1QL \u2013which combines the agility of SQL with the power of JSON \u2013 amongst other built-in features as as Full-Text Search, Eventing, [&hellip;]<\/p>\n","protected":false},"author":31426,"featured_media":6367,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1816,2334],"tags":[],"ppma_author":[9078],"class_list":["post-6344","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server","category-monitoring"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.8 (Yoast SEO v25.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Couchbase Monitoring Integration with Prometheus and Grafana<\/title>\n<meta name=\"description\" content=\"Check out detailed instructions on how to install and configure Couchbase Exporter, Prometheus &amp; Grafana in order to monitor multiple Couchbase clusters.\" \/>\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.couchbase.com\/blog\/couchbase-monitoring-integration-with-prometheus-and-grafana\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Couchbase Monitoring Integration with Prometheus and Grafana\" \/>\n<meta property=\"og:description\" content=\"Check out detailed instructions on how to install and configure Couchbase Exporter, Prometheus &amp; Grafana in order to monitor multiple Couchbase clusters.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/couchbase-monitoring-integration-with-prometheus-and-grafana\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-02-05T20:46:26+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-03-04T14:33:06+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/02\/shutterstock_515324131.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1000\" \/>\n\t<meta property=\"og:image:height\" content=\"667\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Karim Meliani, Principal Product Manager, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Karim Meliani, Principal Product Manager, Couchbase\" \/>\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.couchbase.com\/blog\/couchbase-monitoring-integration-with-prometheus-and-grafana\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-monitoring-integration-with-prometheus-and-grafana\/\"},\"author\":{\"name\":\"Karim Meliani, Principal Product Manager, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/ce10eae3225b2eb1626cde4b52da4316\"},\"headline\":\"Couchbase Monitoring Integration with Prometheus and Grafana\",\"datePublished\":\"2019-02-05T20:46:26+00:00\",\"dateModified\":\"2019-03-04T14:33:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-monitoring-integration-with-prometheus-and-grafana\/\"},\"wordCount\":1095,\"commentCount\":4,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-monitoring-integration-with-prometheus-and-grafana\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/shutterstock_515324131.jpg\",\"articleSection\":[\"Couchbase Server\",\"Monitoring\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/couchbase-monitoring-integration-with-prometheus-and-grafana\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-monitoring-integration-with-prometheus-and-grafana\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/couchbase-monitoring-integration-with-prometheus-and-grafana\/\",\"name\":\"Couchbase Monitoring Integration with Prometheus and Grafana\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-monitoring-integration-with-prometheus-and-grafana\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-monitoring-integration-with-prometheus-and-grafana\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/shutterstock_515324131.jpg\",\"datePublished\":\"2019-02-05T20:46:26+00:00\",\"dateModified\":\"2019-03-04T14:33:06+00:00\",\"description\":\"Check out detailed instructions on how to install and configure Couchbase Exporter, Prometheus & Grafana in order to monitor multiple Couchbase clusters.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-monitoring-integration-with-prometheus-and-grafana\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/couchbase-monitoring-integration-with-prometheus-and-grafana\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-monitoring-integration-with-prometheus-and-grafana\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/shutterstock_515324131.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/shutterstock_515324131.jpg\",\"width\":1000,\"height\":667},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-monitoring-integration-with-prometheus-and-grafana\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Couchbase Monitoring Integration with Prometheus and Grafana\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/ce10eae3225b2eb1626cde4b52da4316\",\"name\":\"Karim Meliani, Principal Product Manager, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/5f3fa3191d49cd1f9ba0fe810aba7bc2\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/57567a07acf790a6ba48644451dbbdf2f76a63f18b695e1cf138a6c1041e08c6?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/57567a07acf790a6ba48644451dbbdf2f76a63f18b695e1cf138a6c1041e08c6?s=96&d=mm&r=g\",\"caption\":\"Karim Meliani, Principal Product Manager, Couchbase\"},\"description\":\"As a Principal Product Manager and former Senior Solutions Engineer at Couchbase, Karim Meliani is responsible for setting the strategy, roadmap, feature definition, and development of Couchbase product features. Prior to joining Couchbase, he worked as a Lead Software Engineer and Architect in various industries.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/author\/karim-meliani\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Couchbase Monitoring Integration with Prometheus and Grafana","description":"Check out detailed instructions on how to install and configure Couchbase Exporter, Prometheus & Grafana in order to monitor multiple Couchbase clusters.","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.couchbase.com\/blog\/couchbase-monitoring-integration-with-prometheus-and-grafana\/","og_locale":"en_US","og_type":"article","og_title":"Couchbase Monitoring Integration with Prometheus and Grafana","og_description":"Check out detailed instructions on how to install and configure Couchbase Exporter, Prometheus & Grafana in order to monitor multiple Couchbase clusters.","og_url":"https:\/\/www.couchbase.com\/blog\/couchbase-monitoring-integration-with-prometheus-and-grafana\/","og_site_name":"The Couchbase Blog","article_published_time":"2019-02-05T20:46:26+00:00","article_modified_time":"2019-03-04T14:33:06+00:00","og_image":[{"width":1000,"height":667,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/02\/shutterstock_515324131.jpg","type":"image\/jpeg"}],"author":"Karim Meliani, Principal Product Manager, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Karim Meliani, Principal Product Manager, Couchbase","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-monitoring-integration-with-prometheus-and-grafana\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-monitoring-integration-with-prometheus-and-grafana\/"},"author":{"name":"Karim Meliani, Principal Product Manager, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/ce10eae3225b2eb1626cde4b52da4316"},"headline":"Couchbase Monitoring Integration with Prometheus and Grafana","datePublished":"2019-02-05T20:46:26+00:00","dateModified":"2019-03-04T14:33:06+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-monitoring-integration-with-prometheus-and-grafana\/"},"wordCount":1095,"commentCount":4,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-monitoring-integration-with-prometheus-and-grafana\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/shutterstock_515324131.jpg","articleSection":["Couchbase Server","Monitoring"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/couchbase-monitoring-integration-with-prometheus-and-grafana\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-monitoring-integration-with-prometheus-and-grafana\/","url":"https:\/\/www.couchbase.com\/blog\/couchbase-monitoring-integration-with-prometheus-and-grafana\/","name":"Couchbase Monitoring Integration with Prometheus and Grafana","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-monitoring-integration-with-prometheus-and-grafana\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-monitoring-integration-with-prometheus-and-grafana\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/shutterstock_515324131.jpg","datePublished":"2019-02-05T20:46:26+00:00","dateModified":"2019-03-04T14:33:06+00:00","description":"Check out detailed instructions on how to install and configure Couchbase Exporter, Prometheus & Grafana in order to monitor multiple Couchbase clusters.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-monitoring-integration-with-prometheus-and-grafana\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/couchbase-monitoring-integration-with-prometheus-and-grafana\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-monitoring-integration-with-prometheus-and-grafana\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/shutterstock_515324131.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/shutterstock_515324131.jpg","width":1000,"height":667},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-monitoring-integration-with-prometheus-and-grafana\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Couchbase Monitoring Integration with Prometheus and Grafana"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"The Couchbase Blog","description":"Couchbase, the NoSQL Database","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"The Couchbase Blog","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/ce10eae3225b2eb1626cde4b52da4316","name":"Karim Meliani, Principal Product Manager, Couchbase","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/5f3fa3191d49cd1f9ba0fe810aba7bc2","url":"https:\/\/secure.gravatar.com\/avatar\/57567a07acf790a6ba48644451dbbdf2f76a63f18b695e1cf138a6c1041e08c6?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/57567a07acf790a6ba48644451dbbdf2f76a63f18b695e1cf138a6c1041e08c6?s=96&d=mm&r=g","caption":"Karim Meliani, Principal Product Manager, Couchbase"},"description":"As a Principal Product Manager and former Senior Solutions Engineer at Couchbase, Karim Meliani is responsible for setting the strategy, roadmap, feature definition, and development of Couchbase product features. Prior to joining Couchbase, he worked as a Lead Software Engineer and Architect in various industries.","url":"https:\/\/www.couchbase.com\/blog\/author\/karim-meliani\/"}]}},"authors":[{"term_id":9078,"user_id":31426,"is_guest":0,"slug":"karim-meliani","display_name":"Karim Meliani, Principal Product Manager, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/57567a07acf790a6ba48644451dbbdf2f76a63f18b695e1cf138a6c1041e08c6?s=96&d=mm&r=g","author_category":"","last_name":"Meliani, Principal Product Manager, Couchbase","first_name":"Karim","job_title":"","user_url":"","description":"As a Principal Product Manager and former Senior Solutions Engineer at Couchbase, Karim Meliani is responsible for setting the strategy, roadmap, feature definition, and development of Couchbase product features. Prior to joining Couchbase, he worked as a Lead Software Engineer and Architect in various industries."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/6344","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/users\/31426"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/comments?post=6344"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/6344\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media\/6367"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media?parent=6344"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/categories?post=6344"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/tags?post=6344"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=6344"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}