{"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\/pt\/step-by-step-guide-for-running-couchbase-autonomous-operator-2-0-with-prometheus-part-2\/","title":{"rendered":"Operador aut\u00f4nomo 2.0 do Couchbase com o Prometheus - Parte 2"},"content":{"rendered":"<h3><span style=\"font-weight: 400\">Pr\u00e9-requisitos<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Conforme mencionado em <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/step-by-step-guide-for-running-couchbase-autonomous-operator-2-0-with-prometheus-part-1\/\">Parte 1<\/a> do blog, precisamos executar o Prometheus e o Grafana no ambiente Kubernetes em nosso Amazon EKS. A maneira recomendada \u00e9 usar o <\/span><a href=\"https:\/\/github.com\/coreos\/kube-prometheus\"><span style=\"font-weight: 400\">Kube-Prometheus<\/span><\/a><span style=\"font-weight: 400\">um projeto de c\u00f3digo aberto. Isso n\u00e3o apenas simplificar\u00e1 a implanta\u00e7\u00e3o, mas tamb\u00e9m adicionar\u00e1 muito mais componentes, como o <\/span><a href=\"https:\/\/prometheus.io\/docs\/guides\/node-exporter\/\"><span style=\"font-weight: 400\">Exportador de n\u00f3s do Prometheus<\/span><\/a><span style=\"font-weight: 400\"> que monitora as m\u00e9tricas do host Linux e \u00e9 normalmente usado em um ambiente Kubernetes.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Clonar o <a href=\"https:\/\/github.com\/coreos\/kube-prometheus\">https:\/\/github.com\/coreos\/kube-prometheus<\/a> do Github, mas n\u00e3o crie nenhum manifesto ainda.<\/span><\/p>\n<p><span style=\"font-weight: 400\"><strong>Componentes inclu\u00eddos neste pacote<\/strong>:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">O <\/span><a href=\"https:\/\/github.com\/coreos\/prometheus-operator\"><span style=\"font-weight: 400\">Operador do Prometheus<\/span><\/a><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Altamente dispon\u00edvel <\/span><a href=\"https:\/\/prometheus.io\/\"><span style=\"font-weight: 400\">Prometeu<\/span><\/a><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Altamente dispon\u00edvel <\/span><a href=\"https:\/\/github.com\/prometheus\/alertmanager\"><span style=\"font-weight: 400\">Gerenciador 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 n\u00f3s do 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 Prometheus para APIs de m\u00e9tricas do Kubernetes<\/span><\/a><\/li>\n<li style=\"font-weight: 400\"><a href=\"https:\/\/github.com\/kubernetes\/kube-state-metrics\"><span style=\"font-weight: 400\">m\u00e9tricas do estado do cubo<\/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=\"Listagem 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>Observa\u00e7\u00e3o<\/strong>:<\/span><\/p>\n<p><span style=\"font-weight: 400\">Este tutorial funciona com base no fato de que os manifestos que trazem os recursos relevantes para o Prometheus Operator ainda est\u00e3o localizados na pasta <\/span><b>manifestos<\/b><span style=\"font-weight: 400\">.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Caso tenham sido feitas altera\u00e7\u00f5es, fa\u00e7a os devidos ajustes, pois o reposit\u00f3rio \u00e9 experimental e est\u00e1 sujeito a altera\u00e7\u00f5es.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h3><span style=\"font-weight: 400\">Criar o Couchbase ServiceMonitor<\/span><\/h3>\n<p><span style=\"font-weight: 400\">O ServiceMonitor diz ao Prometheus para monitorar um recurso de servi\u00e7o que define os pontos de extremidade que o Prometheus coleta para obter m\u00e9tricas de entrada fornecidas pelo couchbase-exporter. Esse arquivo,<strong>couchbase-serviceMonitor.yaml<\/strong>deve ser\u00a0<strong>kube-prometheus\/manifests<\/strong> diret\u00f3rio.\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>Legenda<\/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\">Criar o servi\u00e7o de m\u00e9tricas do 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>deve ser\u00a0<strong>kube-prometheus\/manifests<\/strong> diret\u00f3rio.\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>Legenda<\/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\">Mantenha essa porta como seu valor padr\u00e3o de 9091, pois essa \u00e9 a porta para a qual o Couchbase Exporter exportar\u00e1.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Um n\u00edvel adicional de granularidade ao seu seletor pode ser adicionado no caso de voc\u00ea ter mais de um cluster do Couchbase em execu\u00e7\u00e3o no mesmo namespace.<\/span><\/li>\n<\/ol>\n<h3>Descoberta do Prometheus Dynamic Service<\/h3>\n<p>O Prometheus descobre os pontos de extremidade de monitoramento dinamicamente, fazendo a correspond\u00eancia entre os r\u00f3tulos no ServiceMonitor e os servi\u00e7os que especificam o cluster e os pontos de extremidade, a porta 9091 em nosso 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\">Criar os Manifestos<\/span><\/p>\n<p><span style=\"font-weight: 400\">Siga o comando espec\u00edfico fornecido no <\/span><a href=\"https:\/\/github.com\/coreos\/kube-prometheus\/blob\/master\/README.md\"><span style=\"font-weight: 400\">LEIAME do Github<\/span><\/a><span style=\"font-weight: 400\"> para exibir nossos recursos criados junto com os outros manifestos padr\u00e3o fornecidos.<\/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 \/>\nVamos come\u00e7ar.<\/p>\n<h4><span style=\"font-weight: 400\">Crie o namespace e os CRDs do Kubernetes<\/span><\/h4>\n<pre class=\"theme:dark-terminal toolbar:1 show-lang:2 show-plain:3 lang:zsh decode:true\" title=\"Espa\u00e7os de nomes e CRDs do 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\">Aguarde alguns minutos antes da pr\u00f3xima etapa, mas pode ser necess\u00e1rio executar o comando v\u00e1rias vezes para que todos os componentes sejam criados com \u00eaxito.<\/span><\/p>\n<h4><span style=\"font-weight: 400\">Criar os recursos restantes<\/span><\/h4>\n<pre class=\"theme:dark-terminal toolbar:1 show-lang:2 show-plain:3 lang:zsh decode:true\" title=\"Recursos remanescentes\">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\">Verificar os namespaces de monitoramento<\/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=\"Monitoramento de namespaces\">$ 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\">Verifique se o ServiceMonitor foi criado.<\/span><\/h3>\n<pre class=\"theme:dark-terminal toolbar:1 show-lang:2 show-plain:3 lang:zsh decode:true\" title=\"Verificar 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\">Verifique se o nosso servi\u00e7o foi criado.<\/span><\/h3>\n<pre class=\"theme:dark-terminal toolbar:1 show-lang:2 show-plain:3 lang:default decode:true\" title=\"Servi\u00e7os de verifica\u00e7\u00e3o\">$ 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\">Na sa\u00edda acima, vemos n\u00e3o apenas os servi\u00e7os, mas tamb\u00e9m as portas. Usaremos essas informa\u00e7\u00f5es para encaminhar essas portas, como fizemos com a interface do usu\u00e1rio de administra\u00e7\u00e3o do Couchbase, para acessar esses servi\u00e7os.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Para verificar se tudo est\u00e1 funcionando corretamente com a implanta\u00e7\u00e3o do Prometheus Operator, execute o seguinte comando para visualizar os 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\">Encaminhamento de portas<\/span><\/h3>\n<p><span style=\"font-weight: 400\">J\u00e1 encaminhamos a porta 8091 da interface de usu\u00e1rio de administra\u00e7\u00e3o do Couchbase de um n\u00f3 do Couchbase anteriormente, mas estou apresentando isso novamente, desta vez do ponto de vista do servi\u00e7o.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Al\u00e9m dessa porta, na verdade precisamos apenas do acesso ao servi\u00e7o Grafana, a porta 3000. No entanto, vamos acessar a porta 9090 do servi\u00e7o Prometheus tamb\u00e9m. Em seguida, podemos dar uma olhada em todas as m\u00e9tricas dos diferentes exportadores e experimentar um pouco de PromQL, a Prometheus Query Language.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Agora, os tr\u00eas itens acima devem ser suficientes. No entanto, h\u00e1 algumas vantagens adicionais em dar uma olhada nas m\u00e9tricas de cada servi\u00e7o individual tamb\u00e9m. O exportador do Couchbase exp\u00f5e as m\u00e9tricas do Couchbase na porta 9091. Portanto, podemos encaminhar essas portas tamb\u00e9m. Observe que voc\u00ea realmente precisa apenas de acesso ao Grafana.<\/span><\/p>\n<pre class=\"theme:dark-terminal toolbar:1 show-lang:2 show-plain:3 lang:default decode:true\" title=\"Encaminhamento de portas\">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\">Confira os alvos da Prometheus<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Acesso: <\/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 os alvos do Prometheus devem ser UP. H\u00e1 muitos deles, pois o Kube-Prometheus implantou v\u00e1rios exportadores.<\/span><\/p>\n<h3><span style=\"font-weight: 400\">Confira as m\u00e9tricas brutas do Couchbase<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Acesso: <\/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 do 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\">Essa sa\u00edda \u00e9 \u00fatil porque voc\u00ea pode pesquisar rapidamente na lista.<\/span><\/p>\n<h3><span style=\"font-weight: 400\">Experimente uma 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\">Na interface do usu\u00e1rio acima, clique em <\/span><b>Gr\u00e1fico<\/b><span style=\"font-weight: 400\"> Primeiro.<\/span><\/p>\n<p><span style=\"font-weight: 400\">A caixa suspensa fornece a lista de m\u00e9tricas extra\u00eddas. Essa \u00e9 a lista completa de <\/span><b>todos<\/b><span style=\"font-weight: 400\"> as m\u00e9tricas coletadas por <\/span><b>todos<\/b><span style=\"font-weight: 400\"> os exportadores e essa \u00e9 uma lista bastante assustadora.  Um m\u00e9todo para restringir a lista apenas \u00e0s m\u00e9tricas do Couchbase \u00e9, obviamente, acessar o endpoint 9091, conforme descrito anteriormente.<\/span><\/p>\n<h3><span style=\"font-weight: 400\">Confira o Grafana<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Acesso: <\/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\">O nome de usu\u00e1rio e a senha s\u00e3o: admin\/admin<\/span><\/p>\n<p><span style=\"font-weight: 400\">A implanta\u00e7\u00e3o do Grafana no kube-prometheus <\/span><b>j\u00e1<\/b><span style=\"font-weight: 400\"> tem a fonte de dados do Prometheus definida e um grande conjunto de <\/span><b>Pain\u00e9is padr\u00e3o<\/b><span style=\"font-weight: 400\">. Vamos dar uma olhada no <\/span><b>Painel de controle do n\u00f3 padr\u00e3o<\/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\">Criar um painel Grafana de amostra para monitorar as m\u00e9tricas do Couchbase<\/span><\/h3>\n<p><span style=\"font-weight: 400\">N\u00e3o criaremos um painel completo, mas uma pequena amostra com alguns pain\u00e9is para mostrar como isso \u00e9 feito. Esse painel monitorar\u00e1 o n\u00famero de itens em um bucket e o n\u00famero de opera\u00e7\u00f5es GET e SET.<\/span><\/p>\n<p><span style=\"font-weight: 400\"><strong>Observa\u00e7\u00e3o<\/strong>: Tenha o aplicativo pillow-fight em execu\u00e7\u00e3o, conforme descrito na Parte 1. Isso gerar\u00e1 as opera\u00e7\u00f5es que estamos interessados em monitorar.<\/span><\/p>\n<h4><span style=\"font-weight: 400\">M\u00e9tricas da Prometheus<\/span><\/h4>\n<p><span style=\"font-weight: 400\">Acesso: <\/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 interessados nos itens atuais em um bucket. H\u00e1 duas m\u00e9tricas que fornecem isso: por cluster e por n\u00f3. Vamos usar a m\u00e9trica por n\u00f3. Assim, permitiremos que o Prometheus manipule todas as agrega\u00e7\u00f5es, de acordo com as pr\u00e1ticas recomendadas. Outra vantagem \u00e9 que podemos at\u00e9 mesmo mostrar os itens atuais no bucket, por n\u00f3, apenas para verificar se nosso conjunto de dados est\u00e1 distorcido.<\/span><\/p>\n<h4><span style=\"font-weight: 400\">Vamos dar uma olhada em um elemento:<\/span><\/h4>\n<pre class=\"theme:dark-terminal toolbar:1 show-lang:2 show-plain:3 lang:zsh decode:true\" title=\"Exemplo de m\u00e9trica de 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\">No exemplo acima, estamos interessados nesses r\u00f3tulos: <\/span><span style=\"font-weight: 400\">balde<\/span><span style=\"font-weight: 400\">, parte de <\/span><span style=\"font-weight: 400\">n\u00f3<\/span><span style=\"font-weight: 400\"> (a parte do meio, <\/span><i><span style=\"font-weight: 400\">cb-exemplo<\/span><\/i><span style=\"font-weight: 400\"> que \u00e9 o nome do cluster, e <\/span><span style=\"font-weight: 400\">c\u00e1psula<\/span><span style=\"font-weight: 400\">. Tamb\u00e9m estamos interessados em <\/span><span style=\"font-weight: 400\">servi\u00e7o<\/span><span style=\"font-weight: 400\"> para filtrar. Isso nos ajudar\u00e1 a projetar um painel no qual poderemos visualizar as m\u00e9tricas por bucket, n\u00f3 ou cluster.<\/span><\/p>\n<h3><span style=\"font-weight: 400\">O painel de amostra<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Vamos criar um novo painel de amostra em branco.<\/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\">Adi\u00e7\u00e3o de vari\u00e1veis<\/span><\/h4>\n<p><span style=\"font-weight: 400\">Como queremos as m\u00e9tricas por bucket, n\u00f3 e cluster, vamos adicionar essas vari\u00e1veis para que possam ser selecionadas em uma caixa suspensa.<\/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\">O exemplo acima cria a vari\u00e1vel bucket. Observe a express\u00e3o Query e Regex.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Vamos criar mais 2 para que tenhamos 3 vari\u00e1veis:<\/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\">A consulta n\u00e3o muda para esses 3, mas aqui est\u00e3o as express\u00f5es 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\">Criando um painel<\/span><\/h3>\n<h4><span style=\"font-weight: 400\">Criar 3 pain\u00e9is para itens atuais, GETs e SETs<\/span><\/h4>\n<p><span style=\"font-weight: 400\">Voc\u00ea pode duplicar cada painel e edit\u00e1-los. Estas s\u00e3o as 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\">Painel de itens: sum(cbpernodebucket_curr_items{bucket=~\"$bucket\",pod=~\"$node\"}) by (bucket)<\/span><\/p>\n<p><span style=\"font-weight: 400\">GETs Panel: sum(cbpernodebucket_cmd_get{bucket=~\"$bucket\",pod=~\"$node\"}) by (bucket)<\/span><\/p>\n<p><span style=\"font-weight: 400\">SETs Panel: sum(cbpernodebucket_cmd_set{bucket=~\"$bucket\",pod=~\"$node\"}) by (bucket)<\/span><\/p>\n<h3><span style=\"font-weight: 400\">A amostra completa do painel do Grafana<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Esta \u00e9 a apar\u00eancia do nosso painel de amostra final.<\/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\">Limpeza<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Por fim, limpe sua implanta\u00e7\u00e3o:<\/span><\/p>\n<pre class=\"theme:dark-terminal toolbar:1 show-lang:2 show-plain:3 lang:default decode:true\" title=\"Limpeza\">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\/pt\/downloads\/?family=kubernetes&amp;product=open-source-kubernetes-developer\">Fa\u00e7a o download do Couchbase Autonomous Operator 2.0 Beta para Kubernetes<\/a><\/li>\n<li><a href=\"https:\/\/docs.couchbase.com\/operator\/2.0\/overview.html\">Introdu\u00e7\u00e3o ao 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\u00f4nomo do Couchbase no EKS<\/a><\/li>\n<li>Compartilhe suas ideias sobre o <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/forums\/c\/couchbase-server\/Kubernetes\/\">F\u00f3runs do 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 v26.0 (Yoast SEO v26.0) - 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\/pt\/step-by-step-guide-for-running-couchbase-autonomous-operator-2-0-with-prometheus-part-2\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\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\/pt\/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\":\"pt-BR\",\"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\":\"pt-BR\",\"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\":\"pt-BR\",\"@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\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@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\":\"pt-BR\",\"@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\/pt\/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":"Um guia passo a passo para executar o Operador Aut\u00f4nomo do Couchbase com o Prometheus no Amazon EKS e visualizar com o 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\/pt\/step-by-step-guide-for-running-couchbase-autonomous-operator-2-0-with-prometheus-part-2\/","og_locale":"pt_BR","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\/pt\/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":"pt-BR","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":"Um guia passo a passo para executar o Operador Aut\u00f4nomo do Couchbase com o Prometheus no Amazon EKS e visualizar com o 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":"pt-BR","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":"pt-BR","@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":"Blog do Couchbase","description":"Couchbase, o banco de dados 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":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"Blog do Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@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":"pt-BR","@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\/pt\/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","author_category":"","last_name":"Doddi","first_name":"Prasad","job_title":"","user_url":"","description":"Prasad \u00e9 gerente de produto s\u00eanior de suporte, gerenciabilidade e ferramentas do Couchbase. Antes do Couchbase, ele trabalhou na IBM em v\u00e1rios departamentos, incluindo desenvolvimento, controle de qualidade, suporte e vendas t\u00e9cnicas. Prasad tem mestrado em Engenharia Qu\u00edmica pela Clarkson University. Eng. pela Clarkson University, NY."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/8442","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/users\/57747"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=8442"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/8442\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/10442"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=8442"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=8442"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=8442"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=8442"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}