{"id":8442,"date":"2020-04-21T06:15:14","date_gmt":"2020-04-21T13:15:14","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=8442"},"modified":"2025-06-13T22:08:23","modified_gmt":"2025-06-14T05:08:23","slug":"step-by-step-guide-for-running-couchbase-autonomous-operator-2-0-with-prometheus-part-2","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/step-by-step-guide-for-running-couchbase-autonomous-operator-2-0-with-prometheus-part-2\/","title":{"rendered":"Couchbase Autonomous Operator 2.0 con Prometheus - Parte 2"},"content":{"rendered":"<h3><span style=\"font-weight: 400\">Requisitos previos<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Como se menciona en <a href=\"https:\/\/www.couchbase.com\/blog\/es\/step-by-step-guide-for-running-couchbase-autonomous-operator-2-0-with-prometheus-part-1\/\">Parte 1<\/a> del blog, necesitamos ejecutar Prometheus y Grafana en el entorno Kubernetes en nuestro Amazon EKS. La forma recomendada es utilizar <\/span><a href=\"https:\/\/github.com\/coreos\/kube-prometheus\"><span style=\"font-weight: 400\">Kube-Prometheus<\/span><\/a><span style=\"font-weight: 400\">un proyecto de c\u00f3digo abierto. Esto no s\u00f3lo simplificar\u00e1 el despliegue, sino que a\u00f1ade muchos m\u00e1s componentes, como el <\/span><a href=\"https:\/\/prometheus.io\/docs\/guides\/node-exporter\/\"><span style=\"font-weight: 400\">Exportador de nodos Prometheus<\/span><\/a><span style=\"font-weight: 400\"> que supervisa las m\u00e9tricas del host Linux y se utiliza normalmente en un entorno Kubernetes.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Clonar el <a href=\"https:\/\/github.com\/coreos\/kube-prometheus\">https:\/\/github.com\/coreos\/kube-prometheus<\/a> de Github, pero no crees ning\u00fan manifiesto todav\u00eda.<\/span><\/p>\n<p><span style=\"font-weight: 400\"><strong>Componentes incluidos en este paquete<\/strong>:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">En <\/span><a href=\"https:\/\/github.com\/coreos\/prometheus-operator\"><span style=\"font-weight: 400\">Operador de Prometheus<\/span><\/a><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Alta disponibilidad <\/span><a href=\"https:\/\/prometheus.io\/\"><span style=\"font-weight: 400\">Prometeo<\/span><\/a><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Alta disponibilidad <\/span><a href=\"https:\/\/github.com\/prometheus\/alertmanager\"><span style=\"font-weight: 400\">Gestor de alertas<\/span><\/a><\/li>\n<li style=\"font-weight: 400\"><a href=\"https:\/\/github.com\/prometheus\/node_exporter\"><span style=\"font-weight: 400\">Exportador de nodos Prometheus<\/span><\/a><\/li>\n<li style=\"font-weight: 400\"><a href=\"https:\/\/github.com\/DirectXMan12\/k8s-prometheus-adapter\"><span style=\"font-weight: 400\">Adaptador de Prometheus para las API de m\u00e9tricas de Kubernetes<\/span><\/a><\/li>\n<li style=\"font-weight: 400\"><a href=\"https:\/\/github.com\/kubernetes\/kube-state-metrics\"><span style=\"font-weight: 400\">kube-state-metrics<\/span><\/a><\/li>\n<li style=\"font-weight: 400\"><a href=\"https:\/\/grafana.com\/\"><span style=\"font-weight: 400\">Grafana<\/span><\/a><\/li>\n<\/ul>\n<pre class=\"theme:dark-terminal toolbar:1 show-lang:2 show-plain:3 lang:default decode:true\" title=\"Listado kube-prometheus\">\u279c  kube-prometheus git:(master) \u2717 ls\r\nDCO    README.md examples jsonnet scripts\r\nLICENSE build.sh experimental jsonnetfile.json sync-to-internal-registry.jsonnet\r\nMakefile code-of-conduct.md go.mod jsonnetfile.lock.json test.sh\r\nNOTICE docs go.sum kustomization.yaml tests\r\nOWNERS example.jsonnet hack manifests<\/pre>\n<p><span style=\"font-weight: 400\"><strong>Nota<\/strong>:<\/span><\/p>\n<p><span style=\"font-weight: 400\">Este tutorial funciona sobre la base de que los manifiestos que traen los recursos pertinentes para Prometheus Operator todav\u00eda se encuentran en la carpeta <\/span><b>manifiestos<\/b><span style=\"font-weight: 400\">.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Si se han producido cambios, le rogamos que se adapte a ellos, ya que el repositorio es experimental y est\u00e1 sujeto a cambios.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h3><span style=\"font-weight: 400\">Crear el Couchbase ServiceMonitor<\/span><\/h3>\n<p><span style=\"font-weight: 400\">ServiceMonitor indica a Prometheus que supervise un recurso de servicio que define los puntos finales que Prometheus rastrea para las m\u00e9tricas entrantes proporcionadas por couchbase-exporter. Este archivo,<strong>couchbase-serviceMonitor.yaml<\/strong>, debe ser\u00a0<strong>kube-prometheus\/manifestos<\/strong> directorio.\u00a0<\/span><\/p>\n<pre class=\"theme:dark-terminal toolbar:1 show-lang:2 show-plain:3 lang:yaml decode:true\" title=\"kube-prometheus\/manifests\/couchbase-serviceMonitor.yaml\">apiVersion: monitoring.coreos.com\/v1\r\nkind: ServiceMonitor\r\nmetadata:\r\n\u00a0\u00a0name: couchbase\r\n\u00a0\u00a0namespace: default # &lt;1&gt;\r\n\u00a0\u00a0labels:\r\n\u00a0\u00a0\u00a0\u00a0app: couchbase\r\nspec:\r\n\u00a0\u00a0endpoints:\r\n\u00a0\u00a0- port: metrics \u00a0 \u00a0 \u00a0 # &lt;2&gt;\r\n\u00a0\u00a0\u00a0\u00a0interval: 5s\u00a0 \u00a0 \u00a0 \u00a0 # &lt;3&gt;\r\n\u00a0\u00a0namespaceSelector:\r\n\u00a0\u00a0\u00a0\u00a0matchNames:\r\n\u00a0\u00a0\u00a0\u00a0- default # &lt;4&gt;\r\n\u00a0\u00a0selector:\r\n\u00a0\u00a0\u00a0\u00a0matchLabels:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0app: couchbase # &lt;5&gt;\r\n<\/pre>\n<p><span style=\"font-weight: 400\"><strong>Leyenda<\/strong>:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">You may wish to include our Couchbase `ServiceMonitor` in the `monitoring` namespace along with the other `ServiceMonitors`. For examples of this tutorial we have just left it in the `default` namespace for ease of use.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">The `port` can be a string value and will work for different port numbers of the service as long as the name matches.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">`interval` tells Prometheus how often to scrape the endpoint. Here we want to match the namespace of the `Service` will we be creating in the next step,<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">note that the namespace our `Service` will be running in must be the same namespace of the Couchbase Cluster we wish to scrape metrics from.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Similar to the `namespaceSelector`, this is a simple `labelSelector` that will select the service we will be creating.<\/span><\/li>\n<\/ol>\n<h3><span style=\"font-weight: 400\">Crear el servicio de m\u00e9tricas Couchbase<\/span><\/h3>\n<p><span style=\"font-weight: 400\">The `Service` will define the port that we described in our ServiceMonitor at `spec.endpoint[0].port` earlier. his file,<strong>couchbase-service.yaml<\/strong>, debe ser\u00a0<strong>kube-prometheus\/manifestos<\/strong> directorio.\u00a0<\/span><\/p>\n<pre class=\"theme:dark-terminal toolbar:1 show-lang:2 show-plain:3 lang:yaml decode:true\" title=\"kube-prometheus\/manifests\/couchbase-service.yaml\">apiVersion: v1\r\nkind: Service\r\nmetadata:\r\n\u00a0\u00a0name: couchbase-metrics\r\n\u00a0\u00a0namespace: default # &lt;1&gt;\r\n\u00a0\u00a0labels:\r\n\u00a0\u00a0\u00a0\u00a0app: couchbase\r\nspec:\r\n\u00a0\u00a0ports:\r\n\u00a0\u00a0- name: metrics\r\n\u00a0\u00a0\u00a0\u00a0port: 9091 # &lt;2&gt;\r\n\u00a0\u00a0\u00a0\u00a0protocol: TCP\r\n\u00a0\u00a0selector:\r\n\u00a0\u00a0\u00a0\u00a0app: couchbase\r\n\u00a0\u00a0\u00a0\u00a0couchbase_cluster: cb-example # &lt;3&gt;<\/pre>\n<p><span style=\"font-weight: 400\"><strong>Leyenda<\/strong>:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">As mentioned previously, make sure that the `Service` is in the same namespace as the Couchbase cluster that you wish to scrape metrics from, otherwise no pods will be selected and no endpoints will be displayed in Prometheus Targets. Also make sure this value matches up with `spec.namespaceSelector` in the `ServiceMonitor`.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Mantenga este puerto en su valor por defecto de 9091 ya que este es el puerto al que exportar\u00e1 Couchbase Exporter.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Se puede a\u00f1adir un nivel m\u00e1s de granularidad a tu selector en el caso de que tengas m\u00e1s de un Cluster Couchbase funcionando en el mismo espacio de nombres.<\/span><\/li>\n<\/ol>\n<h3>Descubrimiento de servicios din\u00e1micos Prometheus<\/h3>\n<p>Prometheus descubre los puntos finales de monitorizaci\u00f3n, din\u00e1micamente, haciendo coincidir las etiquetas del ServiceMonitor con los Servicios que especifican el cl\u00faster y los puntos finales, Puerto 9091 en nuestro caso.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8458\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/Blog-2-services-300x46.png\" alt=\"\" width=\"848\" height=\"130\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-services-300x46.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-services-1024x156.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-services-768x117.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-services-20x3.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-services.png 1312w\" sizes=\"auto, (max-width: 848px) 100vw, 848px\" \/><\/p>\n<p><span style=\"color: #343e47;font-family: Lato, 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size: 40px\">Crear los manifiestos<\/span><\/p>\n<p><span style=\"font-weight: 400\">Siga el comando espec\u00edfico dado en el <\/span><a href=\"https:\/\/github.com\/coreos\/kube-prometheus\/blob\/master\/README.md\"><span style=\"font-weight: 400\">L\u00c9EME de Github<\/span><\/a><span style=\"font-weight: 400\"> para que aparezcan nuestros recursos creados junto con los dem\u00e1s manifiestos predeterminados proporcionados.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Components such as Prometheus, AlertManager, NodeExporter and Grafana should then startup and we can confirm this by inspecting the pods in the namespace `monitoring`.<br \/>\n<\/span><br \/>\nComencemos.<\/p>\n<h4><span style=\"font-weight: 400\">Crear el espacio de nombres Kubernetes y CRDs<\/span><\/h4>\n<pre class=\"theme:dark-terminal toolbar:1 show-lang:2 show-plain:3 lang:zsh decode:true\" title=\"Espacios de nombres y CRD de Kubernetes\">kube-prometheus git:(master) $ kubectl create -f manifests\/setup\r\n\r\nnamespace\/monitoring created\r\ncustomresourcedefinition.apiextensions.k8s.io\/alertmanagers.monitoring.coreos.com created\r\ncustomresourcedefinition.apiextensions.k8s.io\/podmonitors.monitoring.coreos.com created\r\ncustomresourcedefinition.apiextensions.k8s.io\/prometheuses.monitoring.coreos.com created\r\ncustomresourcedefinition.apiextensions.k8s.io\/prometheusrules.monitoring.coreos.com created\r\ncustomresourcedefinition.apiextensions.k8s.io\/servicemonitors.monitoring.coreos.com created\r\ncustomresourcedefinition.apiextensions.k8s.io\/thanosrulers.monitoring.coreos.com created\r\nclusterrole.rbac.authorization.k8s.io\/prometheus-operator created\r\nclusterrolebinding.rbac.authorization.k8s.io\/prometheus-operator created\r\ndeployment.apps\/prometheus-operator created\r\nservice\/prometheus-operator created\r\nserviceaccount\/prometheus-operator created<\/pre>\n<p><span style=\"font-weight: 400\">Espere unos minutos antes del siguiente paso, pero puede ser necesario ejecutar el comando varias veces para que todos los componentes se creen correctamente.<\/span><\/p>\n<h4><span style=\"font-weight: 400\">Crear los recursos restantes<\/span><\/h4>\n<pre class=\"theme:dark-terminal toolbar:1 show-lang:2 show-plain:3 lang:zsh decode:true\" title=\"Recursos restantes\">kube-prometheus git:(master) $ kubectl create -f manifests\/\r\n\r\nalertmanager.monitoring.coreos.com\/main created\r\nsecret\/alertmanager-main created\r\nservice\/alertmanager-main created\r\nserviceaccount\/alertmanager-main created\r\nservicemonitor.monitoring.coreos.com\/alertmanager created\r\nservice\/couchbase-metrics created\r\nservicemonitor.monitoring.coreos.com\/couchbase created\r\n...\r\nservicemonitor.monitoring.coreos.com\/kubelet created<\/pre>\n<h3><span style=\"font-weight: 400\">Comprobar los espacios de nombres de supervisi\u00f3n<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Components such as Prometheus, AlertManager, NodeExporter and Grafana should then startup and we can confirm this by inspecting the pods in the namespace `monitoring`.<\/span><\/p>\n<pre class=\"theme:dark-terminal toolbar:1 show-lang:2 show-plain:3 lang:default decode:true\" title=\"Supervisi\u00f3n de los espacios de nombres\">$ kubectl get pods -n monitoring\r\n\r\nNAME \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 READY STATUS RESTARTS AGE\r\nalertmanager-main-0\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 2\/2 Running 0 69m\r\nalertmanager-main-1\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 2\/2 Running 0 69m\r\nalertmanager-main-2\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 2\/2 Running 0 69m\r\ngrafana-75d8c76bdd-4l284 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 1\/1 Running 0 69m\r\nkube-state-metrics-54dc88ccd8-nntts\u00a0 \u00a0 3\/3 Running 0 69m\r\nnode-exporter-pk65z\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 2\/2 Running 0 69m\r\nnode-exporter-s9k9n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 2\/2 Running 0 69m\r\nnode-exporter-vhjpw\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 2\/2 Running 0 69m\r\nprometheus-adapter-8667948d79-vfcbv\u00a0 \u00a0 1\/1 Running 0 69m\r\nprometheus-k8s-0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 3\/3 Running 1 69m\r\nprometheus-k8s-1 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 3\/3 Running 0 69m\r\nprometheus-operator-696554666f-9cnnv \u00a0 2\/2 Running 0 89m<\/pre>\n<h3><span style=\"font-weight: 400\">Comprueba que nuestro ServiceMonitor ha sido creado.<\/span><\/h3>\n<pre class=\"theme:dark-terminal toolbar:1 show-lang:2 show-plain:3 lang:zsh decode:true\" title=\"Comprobar ServiceMonitors\">$ kubectl get servicemonitors --all-namespaces\r\n\r\nNAMESPACE\u00a0 \u00a0 NAME \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 AGE\r\ndefault\u00a0 \u00a0 \u00a0 couchbase \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 2m33s\r\nmonitoring \u00a0 alertmanager \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 2m33s\r\nmonitoring \u00a0 coredns \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 2m22s\r\nmonitoring \u00a0 grafana \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 2m26s\r\nmonitoring \u00a0 kube-apiserver\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 2m22s\r\nmonitoring \u00a0 kube-controller-manager \u00a0 2m22s\r\nmonitoring \u00a0 kube-scheduler\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 2m21s\r\nmonitoring \u00a0 kube-state-metrics\u00a0 \u00a0 \u00a0 \u00a0 2m25s\r\nmonitoring \u00a0 kubelet \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 2m21s\r\nmonitoring \u00a0 node-exporter \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 2m25s\r\nmonitoring \u00a0 prometheus \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 2m22s\r\nmonitoring \u00a0 prometheus-operator \u00a0 \u00a0 \u00a0 2m23s<\/pre>\n<h3><span style=\"font-weight: 400\">Comprobar que nuestro Servicio ha sido creado.<\/span><\/h3>\n<pre class=\"theme:dark-terminal toolbar:1 show-lang:2 show-plain:3 lang:default decode:true\" title=\"Servicios de cheques\">$ kubectl get svc --all-namespaces\r\n\r\nNAMESPACE \u00a0 \u00a0 NAME \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 PORT(S)\r\ndefault \u00a0 \u00a0 \u00a0 cb-example \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 8091\/TCP,8092\/TCP,8093\/TCP,\r\ndefault \u00a0 \u00a0 \u00a0 cb-example-srv \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 11210\/TCP,11207\/TCP\r\ndefault \u00a0 \u00a0 \u00a0 couchbase-metrics\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 9091\/TCP\r\ndefault \u00a0 \u00a0 \u00a0 couchbase-operator \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 8080\/TCP,8383\/TCP\r\ndefault \u00a0 \u00a0 \u00a0 couchbase-operator-admission \u00a0 443\/TCP\r\ndefault \u00a0 \u00a0 \u00a0 kubernetes \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 443\/TCP\r\nkube-system \u00a0 kube-dns \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 53\/UDP,53\/TCP\r\nkube-system \u00a0 kubelet \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 10250\/TCP,10255\/TCP,4194\/TCP,...\r\nmonitoring\u00a0 \u00a0 alertmanager-main\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 9093\/TCP\r\nmonitoring\u00a0 \u00a0 alertmanager-operated\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 9093\/TCP,9094\/TCP,9094\/UDP\r\nmonitoring\u00a0 \u00a0 grafana \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 3000\/TCP\r\nmonitoring\u00a0 \u00a0 kube-state-metrics \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 8443\/TCP,9443\/TCP\u00a0\r\nmonitoring\u00a0 \u00a0 node-exporter \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 9100\/TCP\r\nmonitoring\u00a0 \u00a0 prometheus-adapter \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 443\/TCP\r\nmonitoring\u00a0 \u00a0 prometheus-k8s \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 9090\/TCP\r\nmonitoring\u00a0 \u00a0 prometheus-operated\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 9090\/TCP\r\nmonitoring\u00a0 \u00a0 prometheus-operator\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 8443\/TCP<\/pre>\n<p><span style=\"font-weight: 400\">En la salida anterior, no s\u00f3lo vemos los servicios, sino tambi\u00e9n los puertos. Usaremos esta informaci\u00f3n para reenviar estos puertos, como hicimos con la interfaz de administraci\u00f3n de Couchbase, para acceder a estos servicios.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Para comprobar que todo funciona correctamente con la implantaci\u00f3n de Prometheus Operator, ejecute el siguiente comando para ver los registros:<\/span><\/p>\n<pre class=\"theme:dark-terminal toolbar:1 show-lang:2 show-plain:3 lang:zsh decode:true\">$ kubectl logs -f deployments\/prometheus-operator -n monitoring prometheus-operator<\/pre>\n<h3><span style=\"font-weight: 400\">Reenv\u00edo de puertos<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Ya hemos reenviado el puerto 8091 de Couchbase Admin UI desde un nodo de Couchbase anteriormente, pero voy a dar esto de nuevo, esta vez desde el punto de vista del servicio.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Adem\u00e1s de ese puerto, en realidad s\u00f3lo necesitamos el acceso al servicio Grafana, Puerto 3000. Sin embargo, vamos a acceder al servicio Prometheus Puerto 9090 tambi\u00e9n. Entonces podemos echar un vistazo a todas las m\u00e9tricas de los diferentes exportadores y probar un poco de PromQL, el Prometheus Query Language tambi\u00e9n.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Ahora bien, las 3 anteriores deber\u00edan ser suficientes. Sin embargo, hay alguna ventaja adicional de echar un vistazo a las m\u00e9tricas de cada servicio individual tambi\u00e9n. El exportador de Couchbase expone las m\u00e9tricas de Couchbase en el puerto 9091. Por lo tanto, podemos reenviar esos puertos tambi\u00e9n. Ten en cuenta que s\u00f3lo necesitas acceso a Grafana.<\/span><\/p>\n<pre class=\"theme:dark-terminal toolbar:1 show-lang:2 show-plain:3 lang:default decode:true\" title=\"Reenv\u00edo de puertos\">kubectl --namespace default port-forward svc\/cb-example 8091 &amp;\r\nkubectl --namespace monitoring port-forward svc\/prometheus-k8s 9090 &amp;\r\nkubectl --namespace monitoring port-forward svc\/grafana 3000 &amp;\r\nkubectl --namespace monitoring port-forward svc\/alertmanager-main 9093 &amp;\r\nkubectl --namespace monitoring port-forward svc\/node-exporter 9100 &amp;\r\nkubectl --namespace default port-forward svc\/couchbase-metrics 9091 &amp;<\/pre>\n<h3><span style=\"font-weight: 400\">Echa un vistazo a Prometheus Targets<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Acceso: <\/span><span style=\"font-weight: 400\">https:\/\/localhost:9090\/targets<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8443\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/Blog-2-targets-300x189.png\" alt=\"\" width=\"911\" height=\"574\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-targets-300x189.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-targets-1024x646.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-targets-768x484.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-targets-1536x969.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-targets-20x13.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-targets-1320x833.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-targets.png 1560w\" sizes=\"auto, (max-width: 911px) 100vw, 911px\" \/><\/p>\n<p><span style=\"font-weight: 400\">Todos los objetivos de Prometheus deber\u00edan estar ARRIBA. Hay bastantes de estos desde Kube-Prometheus desplegado un mont\u00f3n de exportadores.<\/span><\/p>\n<h3><span style=\"font-weight: 400\">Consulta las m\u00e9tricas de Couchbase sin procesar<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Acceso: <\/span><span style=\"font-weight: 400\">https:\/\/localhost:9091\/metrics<\/span><\/p>\n<pre class=\"theme:dark-terminal toolbar:1 show-lang:2 show-plain:3 lang:zsh decode:true\" title=\"M\u00e9tricas de Couchbase\"># HELP cbbucketinfo_basic_dataused_bytes basic_dataused\r\n# TYPE cbbucketinfo_basic_dataused_bytes gauge\r\ncbbucketinfo_basic_dataused_bytes{bucket=\"pillow\"} 1.84784896e+08\r\ncbbucketinfo_basic_dataused_bytes{bucket=\"travel-sample\"} 1.51648256e+08\r\n# HELP cbbucketinfo_basic_diskfetches basic_diskfetches\r\n# TYPE cbbucketinfo_basic_diskfetches gauge\r\ncbbucketinfo_basic_diskfetches{bucket=\"pillow\"} 0\r\ncbbucketinfo_basic_diskfetches{bucket=\"travel-sample\"} 0\r\n# HELP cbbucketinfo_basic_diskused_bytes basic_diskused\r\n# TYPE cbbucketinfo_basic_diskused_bytes gauge\r\ncbbucketinfo_basic_diskused_bytes{bucket=\"pillow\"} 1.98967788e+08\r\ncbbucketinfo_basic_diskused_bytes{bucket=\"travel-sample\"} 1.91734038e+08<\/pre>\n<p><span style=\"font-weight: 400\">Esta salida es \u00fatil, ya que permite buscar r\u00e1pidamente en la lista.<\/span><\/p>\n<h3><span style=\"font-weight: 400\">Prueba una consulta PromQL b\u00e1sica<\/span><\/h3>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8444\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/Blog-2-PromQL-300x127.png\" alt=\"\" width=\"907\" height=\"384\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-PromQL-300x127.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-PromQL-1024x435.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-PromQL-768x326.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-PromQL-1536x652.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-PromQL-20x8.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-PromQL-1320x560.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-PromQL.png 1560w\" sizes=\"auto, (max-width: 907px) 100vw, 907px\" \/><\/p>\n<p><span style=\"font-weight: 400\">En la interfaz de usuario anterior, haga clic en <\/span><b>Gr\u00e1fico<\/b><span style=\"font-weight: 400\"> primero.<\/span><\/p>\n<p><span style=\"font-weight: 400\">El cuadro desplegable le ofrece la lista de m\u00e9tricas raspadas. Esta es la lista completa de <\/span><b>todos<\/b><span style=\"font-weight: 400\"> las m\u00e9tricas raspadas por <\/span><b>todos<\/b><span style=\"font-weight: 400\"> los exportadores y esa es una lista bastante desalentadora.  Un m\u00e9todo para reducir la lista a s\u00f3lo m\u00e9tricas Couchbase, es, por supuesto, acceder al punto final 9091 como se describi\u00f3 anteriormente.<\/span><\/p>\n<h3><span style=\"font-weight: 400\">Eche un vistazo a Grafana<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Acceso: <\/span><span style=\"font-weight: 400\">https:\/\/localhost:<\/span><span style=\"font-weight: 400\">3000<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8445\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/Blog-2-Grafana-300x127.png\" alt=\"\" width=\"909\" height=\"385\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-Grafana-300x127.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-Grafana-1024x435.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-Grafana-768x326.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-Grafana-1536x652.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-Grafana-20x8.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-Grafana-1320x560.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-Grafana.png 1560w\" sizes=\"auto, (max-width: 909px) 100vw, 909px\" \/><\/p>\n<p><span style=\"font-weight: 400\">El nombre de usuario y la contrase\u00f1a son: admin\/admin<\/span><\/p>\n<p><span style=\"font-weight: 400\">El despliegue kube-prometheus de Grafana <\/span><b>ya<\/b><span style=\"font-weight: 400\"> tiene definida la fuente de datos Prometheus y un amplio conjunto de <\/span><b>Cuadros de mando por defecto<\/b><span style=\"font-weight: 400\">. Echemos un vistazo al <\/span><b>Cuadro de mandos del nodo por defecto<\/b><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8446\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/Blog-2-default-node-grafana-300x146.png\" alt=\"\" width=\"902\" height=\"439\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-default-node-grafana-300x146.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-default-node-grafana-1024x499.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-default-node-grafana-768x374.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-default-node-grafana-1536x748.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-default-node-grafana-20x10.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-default-node-grafana-1320x643.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-default-node-grafana.png 1560w\" sizes=\"auto, (max-width: 902px) 100vw, 902px\" \/><\/p>\n<h3><span style=\"font-weight: 400\">Crear un panel de Grafana de ejemplo para supervisar las m\u00e9tricas de Couchbase<\/span><\/h3>\n<p><span style=\"font-weight: 400\">No vamos a construir un Dashboard completo, sino una peque\u00f1a muestra con algunos paneles para mostrar c\u00f3mo se hace. Este dashboard monitorizar\u00e1 el n\u00famero de elementos en un bucket y el n\u00famero de operaciones GET y SET.<\/span><\/p>\n<p><span style=\"font-weight: 400\"><strong>Nota<\/strong>: Por favor, ejecute la aplicaci\u00f3n de lucha de almohadas tal y como se describe en la Parte 1. Esto generar\u00e1 las operaciones que nos interesa monitorizar.<\/span><\/p>\n<h4><span style=\"font-weight: 400\">M\u00e9tricas Prometheus<\/span><\/h4>\n<p><span style=\"font-weight: 400\">Acceso: <\/span><span style=\"font-weight: 400\">https:\/\/localhost:9091\/<\/span><span style=\"font-weight: 400\">gr\u00e1fico<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8447\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/Blog-2-Prom-CB-metrics-300x137.png\" alt=\"\" width=\"909\" height=\"415\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-Prom-CB-metrics-300x137.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-Prom-CB-metrics-1024x467.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-Prom-CB-metrics-768x351.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-Prom-CB-metrics-1536x701.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-Prom-CB-metrics-20x9.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-Prom-CB-metrics-1320x602.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-Prom-CB-metrics.png 1560w\" sizes=\"auto, (max-width: 909px) 100vw, 909px\" \/><\/p>\n<p><span style=\"font-weight: 400\">Estamos interesados en los elementos actuales de un cubo. Hay un par de m\u00e9tricas que proporcionan esto, a nivel de cluster y por nodo. Vamos a utilizar la m\u00e9trica por nodo. As\u00ed permitiremos que Prometheus gestione todas las agregaciones, seg\u00fan las mejores pr\u00e1cticas. Otra ventaja es que incluso podemos mostrar los elementos actuales en el cubo, por nodo, s\u00f3lo para comprobar si nuestro conjunto de datos est\u00e1 sesgado.<\/span><\/p>\n<h4><span style=\"font-weight: 400\">Veamos un elemento:<\/span><\/h4>\n<pre class=\"theme:dark-terminal toolbar:1 show-lang:2 show-plain:3 lang:zsh decode:true\" title=\"Muestra de la m\u00e9trica Couchase\">cbpernodebucket_curr_items{bucket=\"pillow\",endpoint=\"metrics\",instance=\"192.168.2.93:9091\",job=\"couchbase-metrics\",namespace=\"default\",node=\"cb-example-0000.cb-example.default.svc:8091\",pod=\"cb-example-0000\",service=\"couchbase-metrics\"}<\/pre>\n<p><span style=\"font-weight: 400\">En el ejemplo anterior, nos interesan estas etiquetas: <\/span><span style=\"font-weight: 400\">cubo<\/span><span style=\"font-weight: 400\">parte de <\/span><span style=\"font-weight: 400\">nodo<\/span><span style=\"font-weight: 400\"> (la parte central, <\/span><i><span style=\"font-weight: 400\">cb-ejemplo<\/span><\/i><span style=\"font-weight: 400\"> que es el nombre del cluster, y <\/span><span style=\"font-weight: 400\">vaina<\/span><span style=\"font-weight: 400\">. Tambi\u00e9n estamos interesados en <\/span><span style=\"font-weight: 400\">servicio<\/span><span style=\"font-weight: 400\"> para filtrar. Esto nos ayudar\u00e1 a dise\u00f1ar un panel de control en el que podremos ver las m\u00e9tricas por bucket, nodo o cl\u00faster.<\/span><\/p>\n<h3><span style=\"font-weight: 400\">El cuadro de mandos de muestra<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Vamos a crear un nuevo salpicadero de muestra en blanco.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8448\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/Blog2-grafana-sample-300x177.png\" alt=\"\" width=\"912\" height=\"538\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog2-grafana-sample-300x177.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog2-grafana-sample-1024x605.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog2-grafana-sample-768x454.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog2-grafana-sample-1536x908.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog2-grafana-sample-20x12.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog2-grafana-sample-1320x780.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog2-grafana-sample.png 1560w\" sizes=\"auto, (max-width: 912px) 100vw, 912px\" \/><\/p>\n<h4><span style=\"font-weight: 400\">A\u00f1adir variables<\/span><\/h4>\n<p><span style=\"font-weight: 400\">Como queremos las m\u00e9tricas por cubo, nodo y cluster, vamos a a\u00f1adir estas variables para que se puedan seleccionar en un desplegable.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8449\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/Blog2-var-1-300x292.png\" alt=\"\" width=\"892\" height=\"868\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog2-var-1-300x292.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog2-var-1-1024x997.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog2-var-1-768x748.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog2-var-1-50x50.png 50w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog2-var-1-20x20.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog2-var-1.png 1132w\" sizes=\"auto, (max-width: 892px) 100vw, 892px\" \/><\/p>\n<p><span style=\"font-weight: 400\">El ejemplo anterior crea la variable bucket. Observe la expresi\u00f3n Query y Regex.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Vamos a crear 2 m\u00e1s para tener 3 variables:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8450\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/Blog-2-all-vars-300x194.png\" alt=\"\" width=\"892\" height=\"577\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-all-vars-300x194.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-all-vars-1024x661.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-all-vars-768x496.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-all-vars-20x13.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-all-vars.png 1094w\" sizes=\"auto, (max-width: 892px) 100vw, 892px\" \/><\/p>\n<p><span style=\"font-weight: 400\">La consulta no cambia para estos 3, pero aqu\u00ed est\u00e1n las expresiones Regex:<\/span><\/p>\n<pre class=\"theme:dark-terminal toolbar:1 show-lang:2 show-plain:3 lang:default decode:true\">Query: {service=\"couchbase-metrics\"}\r\n\r\n$node: Regex= .*pod=\"(.*?)\".*\r\n$bucket: Regex= .*bucket=\"(.*?)\".*\r\n$cluster: Regex=.*node=\\\".*\\.(.*)\\..*\\..*:8091\\\".*<\/pre>\n<h3><span style=\"font-weight: 400\">Creaci\u00f3n de un panel<\/span><\/h3>\n<h4><span style=\"font-weight: 400\">Crear 3 paneles para elementos actuales, GETs y SETs<\/span><\/h4>\n<p><span style=\"font-weight: 400\">Puede duplicar cada panel y editarlos. Estas son las consultas:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8451\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/Blog-2-GETs-300x239.png\" alt=\"\" width=\"890\" height=\"709\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-GETs-300x239.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-GETs-1024x817.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-GETs-768x613.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-GETs-20x16.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog-2-GETs.png 1050w\" sizes=\"auto, (max-width: 890px) 100vw, 890px\" \/><\/p>\n<p><span style=\"font-weight: 400\">Panel Items: sum(cbpernodebucket_curr_items{bucket=~\"$bucket\",pod=~\"$node\"}) by (bucket)<\/span><\/p>\n<p><span style=\"font-weight: 400\">Panel GETs: sum(cbpernodebucket_cmd_get{bucket=~\"$bucket\",pod=~\"$node\"}) by (bucket)<\/span><\/p>\n<p><span style=\"font-weight: 400\">Panel SETs: sum(cbpernodebucket_cmd_set{bucket=~\"$bucket\",pod=~\"$node\"}) by (bucket)<\/span><\/p>\n<h3><span style=\"font-weight: 400\">El ejemplo completo de Grafana Dashboard<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Este es el aspecto final de nuestro panel de control de muestra.<\/span><\/p>\n<h1><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8433\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/Blog2-Grafana-Final-300x81.png\" alt=\"\" width=\"885\" height=\"239\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog2-Grafana-Final-300x81.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog2-Grafana-Final-1024x275.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog2-Grafana-Final-768x206.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog2-Grafana-Final-20x5.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Blog2-Grafana-Final.png 1594w\" sizes=\"auto, (max-width: 885px) 100vw, 885px\" \/><\/h1>\n<h3><span style=\"font-weight: 400\">Limpieza<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Por \u00faltimo, limpie su despliegue:<\/span><\/p>\n<pre class=\"theme:dark-terminal toolbar:1 show-lang:2 show-plain:3 lang:default decode:true\" title=\"Limpieza\">kube-prometheus git:(master) $ kubectl delete --ignore-not-found=true -f manifests\/ -f manifests\/setup\r\n\r\ncao-2 $ kubectl delete -f pillowfight-data-loader.yaml\r\ncao-2 $ kubectl delete -f my-cluster.yaml\r\ncao-2 $ bin\/cbopcfg | kubectl delete -f -\r\ncao-2 $ kubectl delete -f crd.yaml\r\ncao-2 $ eksctl delete cluster --region=us-east-1 --name=prasadCAO2<\/pre>\n<h4>Recursos:<\/h4>\n<ul>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/es\/downloads\/?family=kubernetes&amp;product=open-source-kubernetes-developer\">Descargar Couchbase Autonomous Operator 2.0 Beta para Kubernetes<\/a><\/li>\n<li><a href=\"https:\/\/docs.couchbase.com\/operator\/2.0\/overview.html\">Introducci\u00f3n a Couchbase Autonomous Operator 2.0 Beta<\/a><\/li>\n<li>Tutorial - <a href=\"https:\/\/docs.couchbase.com\/operator\/2.0\/tutorial-eks.html\">Operador aut\u00f3nomo de Couchbase en EKS<\/a><\/li>\n<li>Comparta su opini\u00f3n sobre el <a href=\"https:\/\/www.couchbase.com\/blog\/es\/forums\/c\/couchbase-server\/Kubernetes\/\">Foros de Couchbase<\/a><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>Prerequisites As mentioned in Part 1 of the blog, we need to run Prometheus and Grafana in the Kubernetes environment on our Amazon EKS. The recommended way is to use Kube-Prometheus, an Open Source project. Not only will this simplify [&hellip;]<\/p>","protected":false},"author":57747,"featured_media":10442,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1815,1821,9284,2225,1816,2322,2334],"tags":[9243,2384,1545,1335,2383],"ppma_author":[9106],"class_list":["post-8442","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-best-practices-and-tutorials","category-couchbase-architecture","category-couchbase-autonomous-operator","category-cloud","category-couchbase-server","category-kubernetes","category-monitoring","tag-cloud-native-database","tag-grafana","tag-kubernetes","tag-monitoring","tag-prometheus"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.7.1 (Yoast SEO v25.7) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Couchbase Autonomous Operator 2.0 with Prometheus - Part 2 - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"A step by step guide for running the Couchbase Autonomous Operator with Prometheus on Amazon EKS and visualizing with Grafana\" \/>\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\/step-by-step-guide-for-running-couchbase-autonomous-operator-2-0-with-prometheus-part-2\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Couchbase Autonomous Operator 2.0 with Prometheus - Part 2\" \/>\n<meta property=\"og:description\" content=\"A step by step guide for running the Couchbase Autonomous Operator with Prometheus on Amazon EKS and visualizing with Grafana\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/step-by-step-guide-for-running-couchbase-autonomous-operator-2-0-with-prometheus-part-2\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-04-21T13:15:14+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T05:08:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/background-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"667\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Prasad Doddi\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Prasad Doddi\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/step-by-step-guide-for-running-couchbase-autonomous-operator-2-0-with-prometheus-part-2\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/step-by-step-guide-for-running-couchbase-autonomous-operator-2-0-with-prometheus-part-2\/\"},\"author\":{\"name\":\"Prasad Doddi\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/7870a85b21341a1cdbdd737ba6e6e077\"},\"headline\":\"Couchbase Autonomous Operator 2.0 with Prometheus &#8211; Part 2\",\"datePublished\":\"2020-04-21T13:15:14+00:00\",\"dateModified\":\"2025-06-14T05:08:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/step-by-step-guide-for-running-couchbase-autonomous-operator-2-0-with-prometheus-part-2\/\"},\"wordCount\":1343,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/step-by-step-guide-for-running-couchbase-autonomous-operator-2-0-with-prometheus-part-2\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/background-1.png\",\"keywords\":[\"Cloud-Native Database\",\"Grafana\",\"kubernetes\",\"monitoring\",\"Prometheus\"],\"articleSection\":[\"Best Practices and Tutorials\",\"Couchbase Architecture\",\"Couchbase Autonomous Operator\",\"Couchbase Capella\",\"Couchbase Server\",\"Kubernetes\",\"Monitoring\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/step-by-step-guide-for-running-couchbase-autonomous-operator-2-0-with-prometheus-part-2\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/step-by-step-guide-for-running-couchbase-autonomous-operator-2-0-with-prometheus-part-2\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/step-by-step-guide-for-running-couchbase-autonomous-operator-2-0-with-prometheus-part-2\/\",\"name\":\"Couchbase Autonomous Operator 2.0 with Prometheus - Part 2 - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/step-by-step-guide-for-running-couchbase-autonomous-operator-2-0-with-prometheus-part-2\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/step-by-step-guide-for-running-couchbase-autonomous-operator-2-0-with-prometheus-part-2\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/background-1.png\",\"datePublished\":\"2020-04-21T13:15:14+00:00\",\"dateModified\":\"2025-06-14T05:08:23+00:00\",\"description\":\"A step by step guide for running the Couchbase Autonomous Operator with Prometheus on Amazon EKS and visualizing with Grafana\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/step-by-step-guide-for-running-couchbase-autonomous-operator-2-0-with-prometheus-part-2\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/step-by-step-guide-for-running-couchbase-autonomous-operator-2-0-with-prometheus-part-2\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/step-by-step-guide-for-running-couchbase-autonomous-operator-2-0-with-prometheus-part-2\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/background-1.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/background-1.png\",\"width\":1200,\"height\":667},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/step-by-step-guide-for-running-couchbase-autonomous-operator-2-0-with-prometheus-part-2\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Couchbase Autonomous Operator 2.0 with Prometheus &#8211; Part 2\"}]},{\"@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\/7870a85b21341a1cdbdd737ba6e6e077\",\"name\":\"Prasad Doddi\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/eefad0ed7be820b285621aa4d67f7578\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a9ce547feba43afcbcf1425142725c663678810966eaa0ddc7d38702e647ee63?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a9ce547feba43afcbcf1425142725c663678810966eaa0ddc7d38702e647ee63?s=96&d=mm&r=g\",\"caption\":\"Prasad Doddi\"},\"description\":\"Prasad is a Senior Product Manager in Couchbase Cloud. Prior to Couchbase, he worked at IBM in various departments including Development, QA, Support and Technical Sales. Prasad holds a master\u2019s degree in Chem. Engg. from Clarkson University, NY.\",\"sameAs\":[\"www.linkedin.com\/in\/krishna-prasad-doddi\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/prasad-doddi\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Couchbase Autonomous Operator 2.0 with Prometheus - Part 2 - The Couchbase Blog","description":"A step by step guide for running the Couchbase Autonomous Operator with Prometheus on Amazon EKS and visualizing with Grafana","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\/step-by-step-guide-for-running-couchbase-autonomous-operator-2-0-with-prometheus-part-2\/","og_locale":"es_MX","og_type":"article","og_title":"Couchbase Autonomous Operator 2.0 with Prometheus - Part 2","og_description":"A step by step guide for running the Couchbase Autonomous Operator with Prometheus on Amazon EKS and visualizing with Grafana","og_url":"https:\/\/www.couchbase.com\/blog\/es\/step-by-step-guide-for-running-couchbase-autonomous-operator-2-0-with-prometheus-part-2\/","og_site_name":"The Couchbase Blog","article_published_time":"2020-04-21T13:15:14+00:00","article_modified_time":"2025-06-14T05:08:23+00:00","og_image":[{"width":1200,"height":667,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/background-1.png","type":"image\/png"}],"author":"Prasad Doddi","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Prasad Doddi","Est. reading time":"10 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/step-by-step-guide-for-running-couchbase-autonomous-operator-2-0-with-prometheus-part-2\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/step-by-step-guide-for-running-couchbase-autonomous-operator-2-0-with-prometheus-part-2\/"},"author":{"name":"Prasad Doddi","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/7870a85b21341a1cdbdd737ba6e6e077"},"headline":"Couchbase Autonomous Operator 2.0 with Prometheus &#8211; Part 2","datePublished":"2020-04-21T13:15:14+00:00","dateModified":"2025-06-14T05:08:23+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/step-by-step-guide-for-running-couchbase-autonomous-operator-2-0-with-prometheus-part-2\/"},"wordCount":1343,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/step-by-step-guide-for-running-couchbase-autonomous-operator-2-0-with-prometheus-part-2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/background-1.png","keywords":["Cloud-Native Database","Grafana","kubernetes","monitoring","Prometheus"],"articleSection":["Best Practices and Tutorials","Couchbase Architecture","Couchbase Autonomous Operator","Couchbase Capella","Couchbase Server","Kubernetes","Monitoring"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/step-by-step-guide-for-running-couchbase-autonomous-operator-2-0-with-prometheus-part-2\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/step-by-step-guide-for-running-couchbase-autonomous-operator-2-0-with-prometheus-part-2\/","url":"https:\/\/www.couchbase.com\/blog\/step-by-step-guide-for-running-couchbase-autonomous-operator-2-0-with-prometheus-part-2\/","name":"Couchbase Autonomous Operator 2.0 with Prometheus - Part 2 - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/step-by-step-guide-for-running-couchbase-autonomous-operator-2-0-with-prometheus-part-2\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/step-by-step-guide-for-running-couchbase-autonomous-operator-2-0-with-prometheus-part-2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/background-1.png","datePublished":"2020-04-21T13:15:14+00:00","dateModified":"2025-06-14T05:08:23+00:00","description":"A step by step guide for running the Couchbase Autonomous Operator with Prometheus on Amazon EKS and visualizing with Grafana","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/step-by-step-guide-for-running-couchbase-autonomous-operator-2-0-with-prometheus-part-2\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/step-by-step-guide-for-running-couchbase-autonomous-operator-2-0-with-prometheus-part-2\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/step-by-step-guide-for-running-couchbase-autonomous-operator-2-0-with-prometheus-part-2\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/background-1.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/background-1.png","width":1200,"height":667},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/step-by-step-guide-for-running-couchbase-autonomous-operator-2-0-with-prometheus-part-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Couchbase Autonomous Operator 2.0 with Prometheus &#8211; Part 2"}]},{"@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\/7870a85b21341a1cdbdd737ba6e6e077","name":"Prasad Doddi","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/eefad0ed7be820b285621aa4d67f7578","url":"https:\/\/secure.gravatar.com\/avatar\/a9ce547feba43afcbcf1425142725c663678810966eaa0ddc7d38702e647ee63?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a9ce547feba43afcbcf1425142725c663678810966eaa0ddc7d38702e647ee63?s=96&d=mm&r=g","caption":"Prasad Doddi"},"description":"Prasad is a Senior Product Manager in Couchbase Cloud. Prior to Couchbase, he worked at IBM in various departments including Development, QA, Support and Technical Sales. Prasad holds a master\u2019s degree in Chem. Engg. from Clarkson University, NY.","sameAs":["www.linkedin.com\/in\/krishna-prasad-doddi"],"url":"https:\/\/www.couchbase.com\/blog\/es\/author\/prasad-doddi\/"}]}},"authors":[{"term_id":9106,"user_id":57747,"is_guest":0,"slug":"prasad-doddi","display_name":"Prasad Doddi","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/a9ce547feba43afcbcf1425142725c663678810966eaa0ddc7d38702e647ee63?s=96&d=mm&r=g","first_name":"Prasad","last_name":"Doddi","user_url":"","author_category":"","description":"Prasad es Gerente Senior de Producto para Couchbase Supportability, Manageability and Tools. Antes de Couchbase, trabaj\u00f3 en IBM en varios departamentos, incluyendo Desarrollo, QA, Soporte y Ventas T\u00e9cnicas. Prasad tiene un m\u00e1ster en Chem. Engg. de la Universidad de Clarkson, NY."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/8442","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\/57747"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=8442"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/8442\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/10442"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=8442"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=8442"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=8442"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=8442"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}