{"id":8594,"date":"2020-04-30T10:23:14","date_gmt":"2020-04-30T17:23:14","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=8594"},"modified":"2021-02-05T17:46:23","modified_gmt":"2021-02-06T01:46:23","slug":"monitoring-a-nosql-database-with-couchbase-and-prometheus","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/monitoring-a-nosql-database-with-couchbase-and-prometheus\/","title":{"rendered":"Monitorizaci\u00f3n de una base de datos NoSQL con Couchbase y Prometheus"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Couchbase Server currently has a plethora of stats from data access throughput in KV and query to system resources like disk IO and CPU to newer services like eventing. There have been a number of community authored Prometheus Exporters written for Couchbase as well as the <\/span><a href=\"https:\/\/github.com\/couchbaselabs\/couchbase-sync-gateway-exporter\"><span style=\"font-weight: 400;\">exporter<\/span><\/a><span style=\"font-weight: 400;\"> for monitoring Sync Gateway and we are building on that momentum adding it first to Kubernetes and OpenShift officially.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">With the release of Autonomous Operator 2.0, we support Prometheus stats in conjunction with the Operator managed deployments.\u00a0 While not <\/span><i><span style=\"font-weight: 400;\">yet<\/span><\/i><span style=\"font-weight: 400;\"> officially supported, there are also alternative runtime configurations to achieve the same goals.\u00a0 More on that toward the end.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This blog post will walk through how to get the exporter set up along with Prometheus and Grafana, as well as giving a brief overview of how to monitor a <a href=\"https:\/\/www.couchbase.com\/resources\/why-nosql\">NoSQL database<\/a>.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Background<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Couchbase Server already exposes metrics in a JSON format through a rest interface &#8211; so the exporter\u2019s job is to take those metrics and output them in a Prometheus-friendly format.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">It turns REST endpoint statistics from Couchbase Server like these, found in bucket info &#8211;<\/span><\/p>\n<pre class=\"lang:default decode:true\">basicStats: \r\n{\r\n  quotaPercentUsed: 24.55603790283203,\r\n  opsPerSec: 0,\r\n  diskFetches: 0,\r\n  itemCount: 7303,\r\n  diskUsed: 28024334,\r\n  dataUsed: 19720703,\r\n  memUsed: 25748872,\r\n  vbActiveNumNonResident: 0\r\n},\r\n<\/pre>\n<p>Into a format like this<\/p>\n<pre class=\"lang:default highlight:0 decode:true\"># HELP CBBucketInfo_basic_dataused_bytes basic_dataused\r\n# TYPE CBBucketInfo_basic_dataused_bytes gauge\r\nCBBucketInfo_basic_dataused_bytes{bucket=\"beer-sample\"} 1.9720703e+07\r\nCBBucketInfo_basic_dataused_bytes{bucket=\"tester\"} 8.435712e+06\r\n# HELP CBBucketInfo_basic_diskfetches basic_diskfetches\r\n# TYPE CBBucketInfo_basic_diskfetches gauge\r\nCBBucketInfo_basic_diskfetches{bucket=\"beer-sample\"} 0\r\nCBBucketInfo_basic_diskfetches{bucket=\"tester\"} 0\r\n# HELP CBBucketInfo_basic_diskused_bytes basic_diskused\r\n# TYPE CBBucketInfo_basic_diskused_bytes gauge\r\nCBBucketInfo_basic_diskused_bytes{bucket=\"beer-sample\"} 2.8024334e+07\r\nCBBucketInfo_basic_diskused_bytes{bucket=\"tester\"} 8.463402e+06\r\n# HELP CBBucketInfo_basic_itemcount basic_itemcount\r\n# TYPE CBBucketInfo_basic_itemcount gauge\r\nCBBucketInfo_basic_itemcount{bucket=\"beer-sample\"} 7303\r\nCBBucketInfo_basic_itemcount{bucket=\"tester\"} 0\r\n<\/pre>\n<p><span style=\"font-weight: 400;\">Which can be used to create dashboards like this.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8605 size-large\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/Screenshot-2019-10-15-at-15.54.54-1024x523.png\" alt=\"\" width=\"900\" height=\"460\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screenshot-2019-10-15-at-15.54.54-1024x523.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screenshot-2019-10-15-at-15.54.54-300x153.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screenshot-2019-10-15-at-15.54.54-768x392.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screenshot-2019-10-15-at-15.54.54-1536x784.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screenshot-2019-10-15-at-15.54.54-2048x1046.png 2048w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screenshot-2019-10-15-at-15.54.54-20x10.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screenshot-2019-10-15-at-15.54.54-1320x674.png 1320w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">At a component level, it comes together like this:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8610 size-full\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/Untitled-Diagram-1-1.png\" alt=\"\" width=\"721\" height=\"131\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Untitled-Diagram-1-1.png 721w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Untitled-Diagram-1-1-300x55.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Untitled-Diagram-1-1-20x4.png 20w\" sizes=\"auto, (max-width: 721px) 100vw, 721px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8609 size-full\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/Exporter-K8S.png\" alt=\"\" width=\"732\" height=\"402\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Exporter-K8S.png 732w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Exporter-K8S-300x165.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Exporter-K8S-20x11.png 20w\" sizes=\"auto, (max-width: 732px) 100vw, 732px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Let\u2019s go into a little bit more detail about each component.<\/span><\/p>\n<h4><span style=\"font-weight: 400;\">Couchbase Exporter\u00a0<\/span><\/h4>\n<p><span style=\"font-weight: 400;\">At its essence, the Couchbase Exporter provides the first building block in this workflow by providing Prometheus endpoints that are pulled at an interval defined by Prometheus server. <\/span><span style=\"font-weight: 400;\">It does this while also offering options for network security with TLS and mTLS and protection of any potential sensitive data from the exporter via a bearer token.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Whilst running within the Autonomous Operator, the Couchbase Exporter lives as a sidecar on each Kubernetes Pod, maximising local networking when it comes to specific node statistics and reducing the amount of intracluster traffic. As well as providing a degree of redundancy; if one pod goes down, overall cluster statistics and statistics on the active pods persist.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This does mean that each node running Couchbase has to run a copy of the exporter in order for these per-node statistics to be available. Each copy of the exporter will then only pull per-node statistics from the node it is running on. Each one of these exporters will then each run an endpoint available for any Prometheus Server to scrape, once configured.<\/span><\/p>\n<h4><span style=\"font-weight: 400;\">Prometheus<\/span><\/h4>\n<p><span style=\"font-weight: 400;\">Prometheus is an Open Source systems monitoring and alerting toolkit, and the 2nd project to join the CNCF after Kubernetes, so it is a natural fit for Kubernetes environments and widely-adopted.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">It\u2019s more of a protocol and toolkit to populate a\u00a0 time-series database and not a dashboard tool. A lightweight ability to graph statistics is present but it is more common to use Grafana.\u00a0<\/span><\/p>\n<h4><span style=\"font-weight: 400;\">Grafana<\/span><\/h4>\n<p><span style=\"font-weight: 400;\">In order to visualise the data collected by Prometheus we can use the incredibly flexible Grafana which consumes the Prometheus API to create customizable dashboards. Grafana is an open source data visualisation and alerting platform, mostly used to build incredibly comprehensive and user-customizable dashboards.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Dashboards can be pretty specific to what you as a user care about, so you\u2019ll want to customise accordingly.\u00a0 If you want a starting point, there are a few sample Grafana dashboards in the <\/span><a href=\"https:\/\/github.com\/couchbase\/couchbase-exporter\"><span style=\"font-weight: 400;\">couchbase-exporter GitHub repo <\/span><\/a><span style=\"font-weight: 400;\">which will be improved over time.\u00a0 Contributions certainly welcome!<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Installation<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">To get everything working, you will need to set up the four main components in this monitoring pipeline, Couchbase Server itself, the Couchbase Exporter, Prometheus and Grafana.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The exporter is compatible with Couchbase Server versions 5.5.x onwards, but we would recommend to use version 6.0.4 or newer due to the upcoming EOL of 5.x.<\/span><\/p>\n<h4><span style=\"font-weight: 400;\">Grafana Configuration<\/span><\/h4>\n<p><span style=\"font-weight: 400;\">To install and set up Grafana, choose your relevant platform and follow the installation <a href=\"https:\/\/grafana.com\/docs\/grafana\/latest\/installation\/\">guide<\/a>. Once that\u2019s running, when we first load up Grafana at <\/span><span style=\"font-weight: 400;\">https:\/\/localhost:3000<\/span><span style=\"font-weight: 400;\"> it will ask for a username and password, which is \u201cadmin\u201d for both. It will then ask you to set a new password.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The next step is to add Prometheus as a Data Source. Depending on where you are running Prometheus, the HTTP URL address will be localhost or the address where you\u2019ve hosted or exposed it, with the port 9090. Below is an example of Prometheus running in Docker.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8611 \" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/unnamed-2.png\" alt=\"\" width=\"422\" height=\"590\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/unnamed-2.png 366w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/unnamed-2-214x300.png 214w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/unnamed-2-300x420.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/unnamed-2-14x20.png 14w\" sizes=\"auto, (max-width: 422px) 100vw, 422px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Then we can import one of our sample dashboards to visualise our data. <\/span><span style=\"font-weight: 400;\">To import the dashboard of your choice, hover over to the plus icon on the left sidebar and select &#8220;Import&#8221;. As a starting point, <\/span><span style=\"font-weight: 400;\">copy and paste the <\/span><a href=\"https:\/\/github.com\/couchbase\/couchbase-exporter\/blob\/master\/grafana\/grafana-local.json\"><span style=\"font-weight: 400;\">JSON provided in the exporter Grafana folder<\/span><\/a><span style=\"font-weight: 400;\"> and then hit Load.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">You may need to go to Settings -&gt; Variables -&gt; bucket and hit Update for the correct buckets to load and for data to appear.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8612 size-full\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/unnamed-1.png\" alt=\"\" width=\"425\" height=\"336\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/unnamed-1.png 425w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/unnamed-1-300x237.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/unnamed-1-20x16.png 20w\" sizes=\"auto, (max-width: 425px) 100vw, 425px\" \/><\/p>\n<h4><span style=\"font-weight: 400;\">Security<\/span><\/h4>\n<p><span style=\"font-weight: 400;\">The exporter supports communication over TLS and mTLS as well as restricting who sees the metrics information through usage of a bearer token flag. In conjunction with the Couchbase Operator, the bearer token is supplied as a Kubernetes Secret. TLS and mTLS are enabled by enabling these on the <\/span><a href=\"https:\/\/docs.couchbase.com\/operator\/2.0\/howto-tls.html\"><span style=\"font-weight: 400;\">overall cluster<\/span><\/a><span style=\"font-weight: 400;\">. An example of a bearer token as a Secret:<\/span><\/p>\n<pre class=\"lang:default decode:true\">apiVersion: v1\r\nkind: Secret\r\nmetadata:\r\n  name: cb-metrics-token\r\ntype: Opaque\r\nstringData:\r\n  token: your-plain-text-bearer-token-here\r\n<\/pre>\n<p><span style=\"font-weight: 400;\">In standalone, supply the location of a token file using the flag \u201c&#8211;token\u201d, and similar for any PKI resources using the flags \u201c&#8211;key\u201d, \u201c&#8211;cert\u201d and \u201c&#8211;ca\u201d, where \u201c&#8211;key\u201d refers to the private key to be used, \u201c&#8211;cert\u201d the certificate chain, and \u201c&#8211;ca\u201d the top-level certificate authority.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Running Standalone<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">While not officially supported yet, as mentioned it\u2019s certainly possible to run this as a process or as a Docker container alongside your Couchbase Server nodes.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For the exporter, download the source code from the <\/span><a href=\"https:\/\/github.com\/couchbase\/couchbase-exporter\"><span style=\"font-weight: 400;\">couchbase\/couchbase-exporter<\/span><\/a><span style=\"font-weight: 400;\"> GitHub repo.<\/span><\/p>\n<pre class=\"\">git clone https:\/\/github.com\/couchbase\/couchbase-exporter.git<\/pre>\n<p><span style=\"font-weight: 400;\">Alternatively you can pull the official Dockerhub image found <\/span><a href=\"https:\/\/hub.docker.com\/r\/couchbase\/exporter\/\"><span style=\"font-weight: 400;\">here<\/span><\/a><span style=\"font-weight: 400;\">.\u00a0<\/span><\/p>\n<pre class=\"\">docker pull couchbase\/exporter<\/pre>\n<p><span style=\"font-weight: 400;\">However this may not always be up to date whereas the git repository will be.<br \/>\n<\/span><span style=\"font-weight: 400;\">To run the exporter locally simply use the command<\/span><\/p>\n<pre class=\"\">docker run --name couchbase-exporter -d -p 9091:9091 couchbase-exporter:1.0.0<\/pre>\n<p><span style=\"font-weight: 400;\">Follow the instructions found in the README for any more advanced configurations.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">You can run Prometheus both locally and through Docker, much like the exporter.<br \/>\n<\/span><a href=\"https:\/\/prometheus.io\/download\/\"><span style=\"font-weight: 400;\">Download and run Prometheus locally<\/span><\/a><span style=\"font-weight: 400;\">, then use our provided <\/span><a href=\"https:\/\/github.com\/couchbase\/couchbase-exporter\/blob\/master\/prometheus\/prometheus.yml\"><span style=\"font-weight: 400;\">prometheus.yml<\/span><\/a><span style=\"font-weight: 400;\"> which contains the scrape_config job that includes a look-up for <\/span><span style=\"font-weight: 400;\">localhost:9091<\/span><span style=\"font-weight: 400;\"> &#8211; which is where the exporter metrics should be served if running locally. If not, edit the file accordingly if needed so that the scrape_config job includes the correct IP address for the exporter.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">&#8211; job_name: &#8216;couchbase&#8217;<\/span><\/p>\n<p><span style=\"font-weight: 400;\"># both these values can be set to a minimum of 1s granularity if such precision is needed<\/span><br \/>\n<span style=\"font-weight: 400;\"> scrape_interval: \u00a0 \u00a0 60s\u00a0<\/span><br \/>\n<span style=\"font-weight: 400;\"> scrape_timeout:\u00a0 \u00a0 \u00a0 55s<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0metrics_path: \/metrics<\/span><\/p>\n<p><span style=\"font-weight: 400;\"> static_configs:<\/span><br \/>\n<span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0&#8211; targets: <\/span>[&#8216;localhost:9091&#8217;]<\/p>\n<p><span style=\"font-weight: 400;\">To run through Docker, make sure your prometheus.yml file is correct, and then run one of the following commands:<\/span><\/p>\n<pre class=\"lang:default decode:true\">docker run \\\r\n -p 9090:9090 \\\r\n -v \/path\/to\/config\/prometheus.yml:\/etc\/prometheus\/prometheus.yml \\\r\nprom\/prometheus<\/pre>\n<pre class=\"lang:default decode:true\">docker run \\\r\n -p 9090:9090 \\\r\n -v \/path\/to\/config:\/etc\/prometheus \\\r\nprom\/prometheus<\/pre>\n<p><span style=\"font-weight: 400;\">With the flag -d if you wish to run the image detached in the background.<br \/>\n<\/span><span style=\"font-weight: 400;\">Source: <\/span><a href=\"https:\/\/prometheus.io\/docs\/prometheus\/latest\/installation\/#using-docker\"><span style=\"font-weight: 400;\">https:\/\/prometheus.io\/docs\/prometheus\/latest\/installation\/#using-docker<\/span><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Run prometheus and the exporter which hosts metrics at <\/span><span style=\"font-weight: 400;\">localhost:9091\/metrics<\/span><span style=\"font-weight: 400;\">,<\/span> <span style=\"font-weight: 400;\">and the exporter URL should appear on the list of Prometheus targets at <\/span><span style=\"font-weight: 400;\">localhost:9090\/targets<\/span><span style=\"font-weight: 400;\"> and report as UP.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8606 size-large\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/Screenshot-2019-10-15-at-14.47.29-e1588256750770-1024x297.png\" alt=\"\" width=\"900\" height=\"261\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screenshot-2019-10-15-at-14.47.29-e1588256750770-1024x297.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screenshot-2019-10-15-at-14.47.29-e1588256750770-300x87.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screenshot-2019-10-15-at-14.47.29-e1588256750770-768x223.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screenshot-2019-10-15-at-14.47.29-e1588256750770-1536x445.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screenshot-2019-10-15-at-14.47.29-e1588256750770-2048x594.png 2048w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screenshot-2019-10-15-at-14.47.29-e1588256750770-20x6.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screenshot-2019-10-15-at-14.47.29-e1588256750770-1320x383.png 1320w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><br \/>\n<span style=\"font-weight: 400;\">If you are running both the exporter and Prometheus in Docker, the setup is slightly more complicated. Use the commands <\/span><span style=\"font-weight: 400;\">docker network list<\/span><span style=\"font-weight: 400;\"> and <\/span><span style=\"font-weight: 400;\">docker network inspect &lt;network-ID&gt;<\/span><span style=\"font-weight: 400;\"> to find the IPv4 Address of the Couchbase Exporter container and substitute this value for <\/span><span style=\"font-weight: 400;\">localhost<\/span><span style=\"font-weight: 400;\"> in the list of scrape targets.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">What\u2019s Next<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">One of the aims of this project is to provide an official Prometheus Exporter for Couchbase. Because of the Open Source nature of Prometheus and the exporters that existed before, we want to actively encourage community contributions to the project.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For any bugs, issues or feature requests, <\/span><a href=\"https:\/\/issues.couchbase.com\/projects\/PE\/issues\/PE-12?filter=allopenissues\"><span style=\"font-weight: 400;\">please use our JIRA<\/span><\/a><span style=\"font-weight: 400;\">.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">A special mention to Carlos Becker and the rest of the <\/span><a href=\"https:\/\/github.com\/totvslabs\/couchbase-exporter\/graphs\/contributors\"><span style=\"font-weight: 400;\">contributors<\/span><\/a><span style=\"font-weight: 400;\"> on the TOTVS Labs couchbase exporter project as well as the Leansys couchbase exporter for providing the baseline inspiration for this project!<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Further Resources<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">With the release of Autonomous Operator 2.0, <\/span><a href=\"https:\/\/docs.couchbase.com\/operator\/2.0\/tutorial-prometheus.html\"><span style=\"font-weight: 400;\">a tutorial is provided in the docs<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">As of time of writing one of the simplest ways to set up Prometheus and Grafana is to use the Prometheus Operator. The linked tutorial covers the kube-prometheus GitHub project and its corresponding Helm chart.<\/span><\/p>\n<p><a href=\"https:\/\/github.com\/coreos\/kube-prometheus\"><span style=\"font-weight: 400;\">https:\/\/github.com\/coreos\/kube-prometheus<\/span><\/a><\/p>\n<p><a href=\"https:\/\/github.com\/helm\/charts\/tree\/master\/stable\/prometheus-operator\"><span style=\"font-weight: 400;\">https:\/\/github.com\/helm\/charts\/tree\/master\/stable\/prometheus-operator<\/span><\/a><\/p>\n<p><a href=\"https:\/\/github.com\/coreos\/prometheus-operator\"><span style=\"font-weight: 400;\">https:\/\/github.com\/coreos\/prometheus-operator<\/span><\/a><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Couchbase Server currently has a plethora of stats from data access throughput in KV and query to system resources like disk IO and CPU to newer services like eventing. There have been a number of community authored Prometheus Exporters written [&hellip;]<\/p>\n","protected":false},"author":52989,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[2225,2322,2334],"tags":[2384,1335,2383,5261],"ppma_author":[9109],"class_list":["post-8594","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud","category-kubernetes","category-monitoring","tag-grafana","tag-monitoring","tag-prometheus","tag-prometheus-exporter"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Monitoring a NoSQL Database with Couchbase and Prometheus<\/title>\n<meta name=\"description\" content=\"This blog post will walk through how to get Couchbase Server and Couchbase Autonomous Operator set up to work with Prometheus and Grafana using the Couchbase Prometheus Exporter, as well as giving a brief overview of how it all works.\" \/>\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\/es\/monitoring-a-nosql-database-with-couchbase-and-prometheus\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Monitoring a NoSQL Database with Couchbase and Prometheus\" \/>\n<meta property=\"og:description\" content=\"This blog post will walk through how to get Couchbase Server and Couchbase Autonomous Operator set up to work with Prometheus and Grafana using the Couchbase Prometheus Exporter, as well as giving a brief overview of how it all works.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/monitoring-a-nosql-database-with-couchbase-and-prometheus\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-04-30T17:23:14+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-02-06T01:46:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/Screenshot-2019-10-15-at-15.54.54.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2558\" \/>\n\t<meta property=\"og:image:height\" content=\"1306\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Daniel Ma, Software Engineer, 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=\"Daniel Ma, Software Engineer, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/monitoring-a-nosql-database-with-couchbase-and-prometheus\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/monitoring-a-nosql-database-with-couchbase-and-prometheus\\\/\"},\"author\":{\"name\":\"Daniel Ma, Software Engineer, Couchbase\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/person\\\/850774db36d79ffdf1deb36332bf8b50\"},\"headline\":\"Monitoring a NoSQL Database with Couchbase and Prometheus\",\"datePublished\":\"2020-04-30T17:23:14+00:00\",\"dateModified\":\"2021-02-06T01:46:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/monitoring-a-nosql-database-with-couchbase-and-prometheus\\\/\"},\"wordCount\":1381,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/monitoring-a-nosql-database-with-couchbase-and-prometheus\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2022\\\/11\\\/couchbase-nosql-dbaas.png\",\"keywords\":[\"Grafana\",\"monitoring\",\"Prometheus\",\"Prometheus Exporter\"],\"articleSection\":[\"Couchbase Capella\",\"Kubernetes\",\"Monitoring\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/monitoring-a-nosql-database-with-couchbase-and-prometheus\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/monitoring-a-nosql-database-with-couchbase-and-prometheus\\\/\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/monitoring-a-nosql-database-with-couchbase-and-prometheus\\\/\",\"name\":\"Monitoring a NoSQL Database with Couchbase and Prometheus\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/monitoring-a-nosql-database-with-couchbase-and-prometheus\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/monitoring-a-nosql-database-with-couchbase-and-prometheus\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2022\\\/11\\\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2020-04-30T17:23:14+00:00\",\"dateModified\":\"2021-02-06T01:46:23+00:00\",\"description\":\"This blog post will walk through how to get Couchbase Server and Couchbase Autonomous Operator set up to work with Prometheus and Grafana using the Couchbase Prometheus Exporter, as well as giving a brief overview of how it all works.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/monitoring-a-nosql-database-with-couchbase-and-prometheus\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/monitoring-a-nosql-database-with-couchbase-and-prometheus\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/monitoring-a-nosql-database-with-couchbase-and-prometheus\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2022\\\/11\\\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2022\\\/11\\\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/monitoring-a-nosql-database-with-couchbase-and-prometheus\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Monitoring a NoSQL Database with Couchbase and Prometheus\"}]},{\"@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\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@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\\\/850774db36d79ffdf1deb36332bf8b50\",\"name\":\"Daniel Ma, Software Engineer, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/71878b5c3cd90fd28d96a35a848bb171fe71bb455a4ee6f309a7cdc33c521a97?s=96&d=mm&r=g775ba401468b4e2761b5c38744f9b241\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/71878b5c3cd90fd28d96a35a848bb171fe71bb455a4ee6f309a7cdc33c521a97?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/71878b5c3cd90fd28d96a35a848bb171fe71bb455a4ee6f309a7cdc33c521a97?s=96&d=mm&r=g\",\"caption\":\"Daniel Ma, Software Engineer, Couchbase\"},\"description\":\"Software Engineer based in the Manchester office, who has been working on the Couchbase Autonomous Operator for just over one and a half years.\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/es\\\/author\\\/daniel-ma\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Monitorizaci\u00f3n de una base de datos NoSQL con Couchbase y Prometheus","description":"Esta entrada del blog explicar\u00e1 c\u00f3mo configurar Couchbase Server y Couchbase Autonomous Operator para que funcionen con Prometheus y Grafana utilizando Couchbase Prometheus Exporter, adem\u00e1s de ofrecer una breve descripci\u00f3n general de c\u00f3mo funciona todo.","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\/es\/monitoring-a-nosql-database-with-couchbase-and-prometheus\/","og_locale":"es_MX","og_type":"article","og_title":"Monitoring a NoSQL Database with Couchbase and Prometheus","og_description":"This blog post will walk through how to get Couchbase Server and Couchbase Autonomous Operator set up to work with Prometheus and Grafana using the Couchbase Prometheus Exporter, as well as giving a brief overview of how it all works.","og_url":"https:\/\/www.couchbase.com\/blog\/es\/monitoring-a-nosql-database-with-couchbase-and-prometheus\/","og_site_name":"The Couchbase Blog","article_published_time":"2020-04-30T17:23:14+00:00","article_modified_time":"2021-02-06T01:46:23+00:00","og_image":[{"width":2558,"height":1306,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/Screenshot-2019-10-15-at-15.54.54.png","type":"image\/png"}],"author":"Daniel Ma, Software Engineer, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Daniel Ma, Software Engineer, Couchbase","Est. reading time":"8 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/monitoring-a-nosql-database-with-couchbase-and-prometheus\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/monitoring-a-nosql-database-with-couchbase-and-prometheus\/"},"author":{"name":"Daniel Ma, Software Engineer, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/850774db36d79ffdf1deb36332bf8b50"},"headline":"Monitoring a NoSQL Database with Couchbase and Prometheus","datePublished":"2020-04-30T17:23:14+00:00","dateModified":"2021-02-06T01:46:23+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/monitoring-a-nosql-database-with-couchbase-and-prometheus\/"},"wordCount":1381,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/monitoring-a-nosql-database-with-couchbase-and-prometheus\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["Grafana","monitoring","Prometheus","Prometheus Exporter"],"articleSection":["Couchbase Capella","Kubernetes","Monitoring"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/monitoring-a-nosql-database-with-couchbase-and-prometheus\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/monitoring-a-nosql-database-with-couchbase-and-prometheus\/","url":"https:\/\/www.couchbase.com\/blog\/monitoring-a-nosql-database-with-couchbase-and-prometheus\/","name":"Monitorizaci\u00f3n de una base de datos NoSQL con Couchbase y Prometheus","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/monitoring-a-nosql-database-with-couchbase-and-prometheus\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/monitoring-a-nosql-database-with-couchbase-and-prometheus\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2020-04-30T17:23:14+00:00","dateModified":"2021-02-06T01:46:23+00:00","description":"Esta entrada del blog explicar\u00e1 c\u00f3mo configurar Couchbase Server y Couchbase Autonomous Operator para que funcionen con Prometheus y Grafana utilizando Couchbase Prometheus Exporter, adem\u00e1s de ofrecer una breve descripci\u00f3n general de c\u00f3mo funciona todo.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/monitoring-a-nosql-database-with-couchbase-and-prometheus\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/monitoring-a-nosql-database-with-couchbase-and-prometheus\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/monitoring-a-nosql-database-with-couchbase-and-prometheus\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/monitoring-a-nosql-database-with-couchbase-and-prometheus\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Monitoring a NoSQL Database with Couchbase and Prometheus"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"El blog de Couchbase","description":"Couchbase, la base de datos NoSQL","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":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@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\/850774db36d79ffdf1deb36332bf8b50","name":"Daniel Ma, Ingeniero de Software, Couchbase","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/71878b5c3cd90fd28d96a35a848bb171fe71bb455a4ee6f309a7cdc33c521a97?s=96&d=mm&r=g775ba401468b4e2761b5c38744f9b241","url":"https:\/\/secure.gravatar.com\/avatar\/71878b5c3cd90fd28d96a35a848bb171fe71bb455a4ee6f309a7cdc33c521a97?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/71878b5c3cd90fd28d96a35a848bb171fe71bb455a4ee6f309a7cdc33c521a97?s=96&d=mm&r=g","caption":"Daniel Ma, Software Engineer, Couchbase"},"description":"Ingeniero de Software basado en la oficina de Manchester, que ha estado trabajando en el Operador Aut\u00f3nomo Couchbase durante algo m\u00e1s de un a\u00f1o y medio.","url":"https:\/\/www.couchbase.com\/blog\/es\/author\/daniel-ma\/"}]}},"acf":[],"authors":[{"term_id":9109,"user_id":52989,"is_guest":0,"slug":"daniel-ma","display_name":"Daniel Ma, Software Engineer, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/71878b5c3cd90fd28d96a35a848bb171fe71bb455a4ee6f309a7cdc33c521a97?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/8594","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/52989"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=8594"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/8594\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=8594"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=8594"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=8594"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=8594"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}