{"id":2223,"date":"2017-01-03T22:27:33","date_gmt":"2017-01-03T22:27:33","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2223"},"modified":"2023-06-22T03:44:39","modified_gmt":"2023-06-22T10:44:39","slug":"monitoring-docker-containers-docker-stats-cadvisor-universal-control-plane","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/monitoring-docker-containers-docker-stats-cadvisor-universal-control-plane\/","title":{"rendered":"Monitoramento de cont\u00eaineres do Docker - docker stats, cAdvisor, plano de controle universal"},"content":{"rendered":"<p>H\u00e1 v\u00e1rias maneiras de monitorar os cont\u00eaineres do Docker. Este blog explicar\u00e1 algumas op\u00e7\u00f5es simples e f\u00e1ceis de usar:<\/p>\n<ol>\n<li><a href=\"https:\/\/docs.docker.com\/engine\/reference\/commandline\/stats\/\"><code>estat\u00edsticas da plataforma<\/code> comando<\/a><\/li>\n<li><a href=\"https:\/\/docs.docker.com\/engine\/reference\/api\/docker_remote_api\/\">API remota do Docker<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/google\/cadvisor\">cAdvisor<\/a>\n<ol>\n<li><a href=\"https:\/\/prometheus.io\/\">Prometeu<\/a><\/li>\n<li><a href=\"https:\/\/influxdata.com\/\">InfluxDB<\/a><\/li>\n<\/ol>\n<\/li>\n<li><a href=\"https:\/\/www.docker.com\/products\/docker-universal-control-plane\">Plano de controle universal do Docker<\/a><\/li>\n<\/ol>\n<p>Vamos dar uma olhada em cada uma delas.<\/p>\n<p>Usaremos um <a href=\"https:\/\/developer.couchbase.com\/server\">Servidor Couchbase<\/a>\u00a0para coletar os dados de monitoramento. Vamos iniciar o servidor como:<\/p>\n<pre class=\"lang:default decode:true\">docker run -d -p 8091-8093:8091-8093 -p 11210:11210 --name couchbase arungupta\/couchbase<\/pre>\n<p><code>arungupta\/couchbase<\/code> A imagem \u00e9 explicada em\u00a0<a href=\"https:\/\/github.com\/arun-gupta\/docker-images\/tree\/master\/couchbase\">github.com\/arun-gupta\/docker-images\/tree\/master\/couchbase<\/a>. Ele funciona:<\/p>\n<ul>\n<li>Configura a mem\u00f3ria para o servi\u00e7o de \u00edndice e dados<\/li>\n<li>Configura o servidor Couchbase para o servi\u00e7o de \u00edndice, dados e consulta<\/li>\n<li>Configura as credenciais de nome de usu\u00e1rio e senha<\/li>\n<\/ul>\n<p>Agora vamos coletar dados de monitoramento.<\/p>\n<h2>estat\u00edsticas da plataforma<\/h2>\n<p><code>estat\u00edsticas da plataforma<\/code> exibir uma transmiss\u00e3o ao vivo das estat\u00edsticas de uso de recursos do(s) cont\u00eainer(es) a seguir:<\/p>\n<ul>\n<li>Uso da CPU %<\/li>\n<li>Uso de mem\u00f3ria, limite, uso de %<\/li>\n<li>E\/S de rede<\/li>\n<li>E\/S de disco<\/li>\n<\/ul>\n<p>As estat\u00edsticas s\u00e3o atualizadas a cada segundo. Aqui est\u00e1 um exemplo de sa\u00edda:<\/p>\n<pre class=\"lang:default decode:true\">CONTAINER           CPU %               MEM USAGE \/ LIMIT     MEM %               NET I\/O               BLOCK I\/O\r\n4827f0139b1f        10.94%              706.2 MB \/ 1.045 GB   67.61%              299.7 kB \/ 2.473 MB   456 MB \/ 327.3 MB<\/pre>\n<p>Por padr\u00e3o, esse comando exibe estat\u00edsticas de todos os cont\u00eaineres em execu\u00e7\u00e3o. Uma lista de nomes ou IDs de cont\u00eaineres pode ser especificada, separada por um espa\u00e7o, para restringir o fluxo a um subconjunto de cont\u00eaineres em execu\u00e7\u00e3o. Por exemplo, estat\u00edsticas apenas para o cont\u00eainer<br \/>\nO cont\u00eainer do Couchbase pode ser visto como:<\/p>\n<pre class=\"lang:default decode:true\">docker stats couchbase<\/pre>\n<p>onde <code>couchbase<\/code> \u00e9 o nome do cont\u00eainer. E o resultado \u00e9 semelhante:<\/p>\n<pre class=\"lang:default decode:true\">CONTAINER           CPU %               MEM USAGE \/ LIMIT     MEM %               NET I\/O             BLOCK I\/O\r\ncouchbase           12.50%              708.2 MB \/ 1.045 GB   67.80%              301 kB \/ 2.477 MB   456 MB \/ 327.6 MB<\/pre>\n<p><code>--no-stream<\/code> pode ser especificada quando apenas o primeiro instant\u00e2neo \u00e9 exibido e os resultados n\u00e3o s\u00e3o transmitidos. A op\u00e7\u00e3o <a href=\"https:\/\/logentries.com\/doc\/docker-logentries-container\/\">Cont\u00eainer Docker Logentries<\/a>\u00a0pode ser usado para coletar<br \/>\nesses dados.<\/p>\n<h2>API remota do Docker<\/h2>\n<p>O daemon do Docker fornece um <a href=\"https:\/\/docs.docker.com\/engine\/reference\/api\/docker_remote_api\/\">API REST remota.<\/a>\u00a0Essa API \u00e9 usada pelo cliente para se comunicar com o mecanismo. Essa API tamb\u00e9m pode ser invocada por outras ferramentas, como<br \/>\n<a href=\"https:\/\/curl.haxx.se\/\">enrolar<\/a> ou <a href=\"https:\/\/chrome.google.com\/webstore\/detail\/postman\/fhbjgbiflinjbdggehcddcbncdddomop?hl=en\">Cliente REST do Postman para Chrome<\/a>.<\/p>\n<p>Se voc\u00ea estiver criando daemons do Docker usando o Docker Machine no OSX Mavericks, fazer com que essa API funcione \u00e9 um pouco complicado. Se voc\u00ea estiver no Mac, siga as instru\u00e7\u00f5es em <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/enabling-docker-remote-api-docker-machine-mac-osx\/\">Ativar a API remota do Docker<\/a>\u00a0para<br \/>\ngarantir que o curl possa invocar essa API REST. A API que fornece estat\u00edsticas sobre o cont\u00eainer \u00e9\u00a0<code>\/containers\/{id}\/stats<\/code> ou <code>\/containers\/{name}\/stats.<\/code><\/p>\n<p>Em seguida, mais estat\u00edsticas sobre o cont\u00eainer podem ser obtidas como:<\/p>\n<pre class=\"lang:default decode:true\">~ &gt; curl https:\/\/192.168.99.100:2376\/containers\/42d1414883af\/stats --cert $DOCKER_CERT_PATH\/cert2.p12 --pass mypass --key $DOCKER_CERT_PATH\/key.pem --cacert $DOCKER_CERT_PATH\/ca.pem<\/pre>\n<p>O seguinte resultado (formatado) \u00e9 exibido:<\/p>\n<pre class=\"lang:default decode:true\">{\r\n    \"read\": \"2016-02-07T13:26:56.142981314Z\",\r\n    \"precpu_stats\": {\r\n        \"cpu_usage\": {\r\n            \"total_usage\": 0,\r\n            \"percpu_usage\": null,\r\n            \"usage_in_kernelmode\": 0,\r\n            \"usage_in_usermode\": 0\r\n        },\r\n        \"system_cpu_usage\": 0,\r\n        \"throttling_data\": {\r\n            \"periods\": 0,\r\n            \"throttled_periods\": 0,\r\n            \"throttled_time\": 0\r\n        }\r\n    },\r\n    \"cpu_stats\": {\r\n        \"cpu_usage\": {\r\n            \"total_usage\": 242581854769,\r\n            \"percpu_usage\": [242581854769],\r\n            \"usage_in_kernelmode\": 33910000000,\r\n            \"usage_in_usermode\": 123040000000\r\n        },\r\n        \"system_cpu_usage\": 3367860000000,\r\n        \"throttling_data\": {\r\n            \"periods\": 0,\r\n            \"throttled_periods\": 0,\r\n            \"throttled_time\": 0\r\n        }\r\n    },\r\n    \"memory_stats\": {\r\n        \"usage\": 693821440,\r\n        \"max_usage\": 818733056,\r\n        \"stats\": {\r\n            \"active_anon\": 282038272,\r\n            \"active_file\": 28938240,\r\n            \"cache\": 82534400,\r\n            \"hierarchical_memory_limit\": 9223372036854771712,\r\n            \"hierarchical_memsw_limit\": 9223372036854771712,\r\n            \"inactive_anon\": 329543680,\r\n            \"inactive_file\": 53284864,\r\n            \"mapped_file\": 26558464,\r\n            \"pgfault\": 809513,\r\n            \"pgmajfault\": 2559,\r\n            \"pgpgin\": 1015608,\r\n            \"pgpgout\": 940757,\r\n            \"rss\": 611270656,\r\n            \"rss_huge\": 136314880,\r\n            \"swap\": 249049088,\r\n            \"total_active_anon\": 282038272,\r\n            \"total_active_file\": 28938240,\r\n            \"total_cache\": 82534400,\r\n            \"total_inactive_anon\": 329543680,\r\n            \"total_inactive_file\": 53284864,\r\n            \"total_mapped_file\": 26558464,\r\n            \"total_pgfault\": 809513,\r\n            \"total_pgmajfault\": 2559,\r\n            \"total_pgpgin\": 1015608,\r\n            \"total_pgpgout\": 940757,\r\n            \"total_rss\": 611270656,\r\n            \"total_rss_huge\": 136314880,\r\n            \"total_swap\": 249049088,\r\n            \"total_unevictable\": 0,\r\n            \"total_writeback\": 0,\r\n            \"unevictable\": 0,\r\n            \"writeback\": 0\r\n        },\r\n        \"failcnt\": 0,\r\n        \"limit\": 1044574208\r\n    },\r\n    \"blkio_stats\": {\r\n        \"io_service_bytes_recursive\": [{\r\n                \"major\": 8,\r\n                \"minor\": 0,\r\n                \"op\": \"Read\",\r\n                \"value\": 301649920\r\n            }, {\r\n                \"major\": 8,\r\n                \"minor\": 0,\r\n                \"op\": \"Write\",\r\n                \"value\": 248315904\r\n            }, {\r\n                \"major\": 8,\r\n                \"minor\": 0,\r\n                \"op\": \"Sync\",\r\n                \"value\": 201003008\r\n            }, {\r\n                \"major\": 8,\r\n                \"minor\": 0,\r\n                \"op\": \"Async\",\r\n                \"value\": 348962816\r\n            }, {\r\n                \"major\": 8,\r\n                \"minor\": 0,\r\n                \"op\": \"Total\",\r\n                \"value\": 549965824\r\n            }],\r\n        \"io_serviced_recursive\": [{\r\n                \"major\": 8,\r\n                \"minor\": 0,\r\n                \"op\": \"Read\",\r\n                \"value\": 41771\r\n            }, {\r\n                \"major\": 8,\r\n                \"minor\": 0,\r\n                \"op\": \"Write\",\r\n                \"value\": 72796\r\n            }, {\r\n                \"major\": 8,\r\n                \"minor\": 0,\r\n                \"op\": \"Sync\",\r\n                \"value\": 61246\r\n            }, {\r\n                \"major\": 8,\r\n                \"minor\": 0,\r\n                \"op\": \"Async\",\r\n                \"value\": 53321\r\n            }, {\r\n                \"major\": 8,\r\n                \"minor\": 0,\r\n                \"op\": \"Total\",\r\n                \"value\": 114567\r\n            }],\r\n        \"io_queue_recursive\": [],\r\n        \"io_service_time_recursive\": [],\r\n        \"io_wait_time_recursive\": [],\r\n        \"io_merged_recursive\": [],\r\n        \"io_time_recursive\": [],\r\n        \"sectors_recursive\": []\r\n    },\r\n    \"pids_stats\": {},\r\n    \"networks\": {\r\n        \"eth0\": {\r\n            \"rx_bytes\": 40192,\r\n            \"rx_packets\": 285,\r\n            \"rx_errors\": 0,\r\n            \"rx_dropped\": 0,\r\n            \"tx_bytes\": 222138,\r\n            \"tx_packets\": 150,\r\n            \"tx_errors\": 0,\r\n            \"tx_dropped\": 0\r\n        }\r\n    }\r\n}<\/pre>\n<p>H\u00e1 muito mais detalhes sobre mem\u00f3ria, disco e rede. Um novo conjunto de m\u00e9tricas \u00e9 enviado a cada segundo.<\/p>\n<h2>cAdvisor<\/h2>\n<p><a href=\"https:\/\/github.com\/google\/cadvisor\">cAdvisor<\/a> ou Container Advisor fornecem m\u00e9tricas de host e cont\u00eaineres. Ele \u00e9 um daemon em execu\u00e7\u00e3o que coleta, agrega, processa e exporta informa\u00e7\u00f5es sobre os cont\u00eaineres em execu\u00e7\u00e3o. Vamos iniciar o cAdvisor<br \/>\ncont\u00eainer:<\/p>\n<pre class=\"lang:default decode:true\">docker run -d --name=cadvisor -p 8080:8080 --volume=\/var\/run:\/var\/run:rw --volume=\/sys:\/sys:ro --volume=\/var\/lib\/docker\/:\/var\/lib\/docker:ro google\/cadvisor:latest<\/pre>\n<p>O painel do cAdvisor mostra apenas os dados dos \u00faltimos 60 segundos. No entanto, v\u00e1rios back-ends, como o Prometheus e o InfluxDB,<br \/>\nque permite o armazenamento, a recupera\u00e7\u00e3o e a an\u00e1lise de longo prazo.<\/p>\n<p class=\"p1\">Uso <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.1\/cli\/cbq-tool.html\">Ferramenta de consulta do Couchbase<\/a>\u00a0para se conectar ao servidor Couchbase:<\/p>\n<pre class=\"lang:default decode:true\">~ &gt; docker run -it --link couchbase:db arungupta\/couchbase cbq --engine https:\/\/db:8093\r\nCouchbase query shell connected to https:\/\/db:8093\/ . Type Ctrl-D to exit.\r\ncbq&gt;<\/pre>\n<p>Invocar um <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/n1ql\/\">Consulta N1QL<\/a>:<\/p>\n<pre class=\"lang:default decode:true\">cbq&gt; select * from `travel-sample` limit 1;\r\n{\r\n    \"requestID\": \"7af2d1b1-c37e-4c75-a913-cfaa99dcabdd\",\r\n    \"signature\": {\r\n        \"*\": \"*\"\r\n    },\r\n    \"results\": [\r\n        {\r\n            \"travel-sample\": {\r\n                \"callsign\": \"MILE-AIR\",\r\n                \"country\": \"United States\",\r\n                \"iata\": \"Q5\",\r\n                \"icao\": \"MLA\",\r\n                \"id\": 10,\r\n                \"name\": \"40-Mile Air\",\r\n                \"type\": \"airline\"\r\n            }\r\n        }\r\n    ],\r\n    \"status\": \"success\",\r\n    \"metrics\": {\r\n        \"elapsedTime\": \"10.292951ms\",\r\n        \"executionTime\": \"10.232921ms\",\r\n        \"resultCount\": 1,\r\n        \"resultSize\": 300\r\n    }\r\n}\r\n<\/pre>\n<p>O cAdvisor armazena apenas um minuto de dados e aqui est\u00e1 uma captura do painel:<br \/>\n<a href=\"\/wp-content\/original-assets\/april-2016\/monitoring-docker-containers---docker-stats-cadvisor-universal-control-plane\/cadvisor-cpu-usage-1024x701.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-13639\" src=\"\/wp-content\/original-assets\/april-2016\/monitoring-docker-containers---docker-stats-cadvisor-universal-control-plane\/cadvisor-cpu-usage-1024x701.png\" alt=\"cadvisor-cpu-usage\" width=\"604\" height=\"413\" \/><\/a><\/p>\n<p>E uso de mem\u00f3ria:<\/p>\n<p><a href=\"\/wp-content\/original-assets\/april-2016\/monitoring-docker-containers---docker-stats-cadvisor-universal-control-plane\/cadvisor-total-memory-usage-1024x429.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-13640\" src=\"\/wp-content\/original-assets\/april-2016\/monitoring-docker-containers---docker-stats-cadvisor-universal-control-plane\/cadvisor-total-memory-usage-1024x429.png\" alt=\"cadvisor-total-memory-usage\" width=\"604\" height=\"253\" \/><\/a><\/p>\n<p>H\u00e1 muitas ferramentas que podem usar os dados gerados pelo cAdvisor e exibi-los em um bom painel. Mais detalhes est\u00e3o dispon\u00edveis em\u00a0<a href=\"https:\/\/github.com\/google\/cadvisor\/tree\/master\/docs\">github.com\/google\/cadvisor\/tree\/master\/docs<\/a>.<\/p>\n<h2>Plano de controle universal do Docker<\/h2>\n<p>O Docker Universal Control Plane (DUCP) permite gerenciar e implantar aplicativos distribu\u00eddos Dockerizados, tudo de dentro do firewall. Ele se integra aos principais sistemas, como LDAP\/AD, para gerenciar usu\u00e1rios e fornece uma interface para que as equipes de opera\u00e7\u00f5es de TI<br \/>\nimplementar e gerenciar. RBAC, integra\u00e7\u00e3o SSO com o Docker Trusted Registry, interface de usu\u00e1rio da Web simples e f\u00e1cil de usar s\u00e3o alguns dos principais recursos. Leia mais <a href=\"https:\/\/www.docker.com\/products\/docker-universal-control-plane\">Vis\u00e3o geral do produto<\/a>\u00a0para uma completa<br \/>\nconjunto de recursos.<\/p>\n<p><a href=\"https:\/\/docs.docker.com\/ucp\/evaluation-install\/\">Plano de controle universal do Docker com a m\u00e1quina do Docker<\/a>\u00a0\u00e9 a maneira mais f\u00e1cil de experimentar isso em seu computador local. As instru\u00e7\u00f5es s\u00e3o muito detalhadas e funcionam imediatamente. Veja a seguir<br \/>\nalgumas imagens ap\u00f3s a implanta\u00e7\u00e3o de uma imagem do Couchbase.<\/p>\n<p>A instala\u00e7\u00e3o do DUCP consiste em um controlador DUCP e um ou mais hosts. Eles s\u00e3o configurados em um <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/deploy-docker-compose-services-swarm\/\">Docker Swarm<\/a> cluster. Em seguida, os cont\u00eaineres s\u00e3o iniciados nesses clusters:<\/p>\n<div><a href=\"\/wp-content\/original-assets\/april-2016\/monitoring-docker-containers---docker-stats-cadvisor-universal-control-plane\/ducp-image-1024x397.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-13820\" src=\"\/wp-content\/original-assets\/april-2016\/monitoring-docker-containers---docker-stats-cadvisor-universal-control-plane\/ducp-image-1024x397.png\" alt=\"Docker Universal Control Plane Image\" width=\"604\" height=\"234\" \/><\/a><\/div>\n<div>O mapeamento de portas \u00e9 facilmente definido:<\/div>\n<div><a href=\"\/wp-content\/original-assets\/april-2016\/monitoring-docker-containers---docker-stats-cadvisor-universal-control-plane\/ducp-port-mapping-1024x459.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-13821\" src=\"\/wp-content\/original-assets\/april-2016\/monitoring-docker-containers---docker-stats-cadvisor-universal-control-plane\/ducp-port-mapping-1024x459.png\" alt=\"Docker Universal Control Port Mapping\" width=\"604\" height=\"271\" \/><\/a><\/div>\n<div>Quando o cont\u00eainer estiver em execu\u00e7\u00e3o, as estat\u00edsticas de monitoramento poder\u00e3o ser vistas:<br \/>\n<a href=\"\/wp-content\/original-assets\/april-2016\/monitoring-docker-containers---docker-stats-cadvisor-universal-control-plane\/ducp-stats-1024x593.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-13822\" src=\"\/wp-content\/original-assets\/april-2016\/monitoring-docker-containers---docker-stats-cadvisor-universal-control-plane\/ducp-stats-1024x593.png\" alt=\"Docker Universal Control Monitoring Stats\" width=\"604\" height=\"350\" \/><\/a><\/div>\n<div>E, finalmente, o belo painel de instrumentos:<\/div>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-13819\" src=\"\/wp-content\/original-assets\/april-2016\/monitoring-docker-containers---docker-stats-cadvisor-universal-control-plane\/ducp-dashboard-1024x724.png\" alt=\"Docker Universal Control Plane Dashboard\" width=\"604\" height=\"427\" \/><\/p>\n<p>A <a href=\"https:\/\/docs.docker.com\/ucp\/evaluation-install\/#step-10-download-a-client-bundle\">pacote de clientes<\/a> \u00e9 fornecido e mostra as informa\u00e7\u00f5es sobre o cluster do Docker Swarm como:<\/p>\n<pre class=\"lang:default decode:true\">Containers: 10\r\n Running: 10\r\n Paused: 0\r\n Stopped: 0\r\nImages: 15\r\nServer Version: swarm\/1.1.3\r\nRole: primary\r\nStrategy: spread\r\nFilters: health, port, dependency, affinity, constraint\r\nNodes: 2\r\n node1: 192.168.99.101:12376\r\n  \u2514 Status: Healthy\r\n  \u2514 Containers: 7\r\n  \u2514 Reserved CPUs: 0 \/ 1\r\n  \u2514 Reserved Memory: 0 B \/ 2.004 GiB\r\n  \u2514 Labels: executiondriver=native-0.2, kernelversion=4.1.19-boot2docker, operatingsystem=Boot2Docker 1.10.3 (TCL 6.4.1); master : 625117e - Thu Mar 10 22:09:02 UTC 2016, provider=virtualbox, storagedriver=aufs\r\n  \u2514 Error: (none)\r\n  \u2514 UpdatedAt: 2016-04-09T00:12:53Z\r\n node2: 192.168.99.102:12376\r\n  \u2514 Status: Healthy\r\n  \u2514 Containers: 3\r\n  \u2514 Reserved CPUs: 0 \/ 1\r\n  \u2514 Reserved Memory: 0 B \/ 2.004 GiB\r\n  \u2514 Labels: executiondriver=native-0.2, kernelversion=4.1.19-boot2docker, operatingsystem=Boot2Docker 1.10.3 (TCL 6.4.1); master : 625117e - Thu Mar 10 22:09:02 UTC 2016, provider=virtualbox, storagedriver=aufs\r\n  \u2514 Error: (none)\r\n  \u2514 UpdatedAt: 2016-04-09T00:12:48Z\r\nCluster Managers: 1\r\n 192.168.99.101: Healthy\r\n  \u2514 Orca Controller: https:\/\/192.168.99.101:443\r\n  \u2514 Swarm Manager: tcp:\/\/192.168.99.101:3376\r\n  \u2514 KV: etcd:\/\/192.168.99.101:12379\r\nPlugins: \r\n Volume: \r\n Network: \r\nKernel Version: 4.1.19-boot2docker\r\nOperating System: linux\r\nArchitecture: amd64\r\nCPUs: 2\r\nTotal Memory: 4.008 GiB\r\nName: ucp-controller-node1\r\nID: 6LTO:GVZJ:2M6Z:DONM:ZAKR:2JIL:ZWJG:KY7R:G3EL:AS2Y:X22F:RXM3\r\nLabels:\r\n com.docker.ucp.license_key=XXXXXXXXXXXXXXXXXXXXXXXX\r\n com.docker.ucp.license_max_engines=1\r\n com.docker.ucp.license_expires=XXXXXXXXXXXXXXXXXXXXXXXX<\/pre>\n<p>H\u00e1 muitas ferramentas que fornecem dados de monitoramento:<\/p>\n<ul>\n<li><a href=\"https:\/\/sysdig.com\/\">Nuvem Sysdig<\/a><\/li>\n<li><a href=\"https:\/\/blog.scoutapp.com\/articles\/2015\/03\/16\/monitoring-docker\">Docker-Scout<\/a><\/li>\n<li><a href=\"https:\/\/www.datadoghq.com\/blog\/monitor-docker-datadog\/\">Dados do c\u00e3o<\/a><\/li>\n<li><a href=\"https:\/\/ruxit.com\/docker-monitoring\/\">Ruxit<\/a><\/li>\n<li><a href=\"https:\/\/newrelic.com\/docker\">NewRelic<\/a><\/li>\n<li><a href=\"https:\/\/logentries.com\/doc\/docker\/\">Registros<\/a><\/li>\n<\/ul>\n<p><a href=\"https:\/\/docs.docker.com\/engine\/reference\/commandline\/stats\/\">estat\u00edsticas da plataforma<\/a> e <a href=\"https:\/\/docs.docker.com\/engine\/reference\/api\/docker_remote_api\/\">API remota do Docker<\/a>\u00a0s\u00e3o, sem d\u00favida, os mais f\u00e1ceis de lhe dar uma primeira vis\u00e3o geral de<br \/>\nseus dados de monitoramento.<\/p>\n<p>E, a partir da\u00ed, tudo fica mais interessante!<\/p>","protected":false},"excerpt":{"rendered":"<p>There are multiple ways\u00a0to monitor Docker containers. This blog will explain a few\u00a0simple and easy to use options: docker stats command Docker Remote API cAdvisor Prometheus InfluxDB Docker Universal Control Plane Lets take a look at each one of them. [&hellip;]<\/p>","protected":false},"author":58,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1816],"tags":[],"ppma_author":[8933],"class_list":["post-2223","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Monitoring Docker Containers - docker stats, cAdvisor, Universal Control Plane - The Couchbase Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/pt\/monitoring-docker-containers-docker-stats-cadvisor-universal-control-plane\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Monitoring Docker Containers - docker stats, cAdvisor, Universal Control Plane\" \/>\n<meta property=\"og:description\" content=\"There are multiple ways\u00a0to monitor Docker containers. This blog will explain a few\u00a0simple and easy to use options: docker stats command Docker Remote API cAdvisor Prometheus InfluxDB Docker Universal Control Plane Lets take a look at each one of them. [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/monitoring-docker-containers-docker-stats-cadvisor-universal-control-plane\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-01-03T22:27:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-22T10:44:39+00:00\" \/>\n<meta name=\"author\" content=\"Arun Gupta, VP, Developer Advocacy, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@arungupta\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Arun Gupta, VP, Developer Advocacy, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/monitoring-docker-containers-docker-stats-cadvisor-universal-control-plane\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/monitoring-docker-containers-docker-stats-cadvisor-universal-control-plane\/\"},\"author\":{\"name\":\"Arun Gupta, VP, Developer Advocacy, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/39d8caed0f536489b6aa6e8d31ee631f\"},\"headline\":\"Monitoring Docker Containers &#8211; docker stats, cAdvisor, Universal Control Plane\",\"datePublished\":\"2017-01-03T22:27:33+00:00\",\"dateModified\":\"2023-06-22T10:44:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/monitoring-docker-containers-docker-stats-cadvisor-universal-control-plane\/\"},\"wordCount\":700,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/monitoring-docker-containers-docker-stats-cadvisor-universal-control-plane\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"Couchbase Server\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/monitoring-docker-containers-docker-stats-cadvisor-universal-control-plane\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/monitoring-docker-containers-docker-stats-cadvisor-universal-control-plane\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/monitoring-docker-containers-docker-stats-cadvisor-universal-control-plane\/\",\"name\":\"Monitoring Docker Containers - docker stats, cAdvisor, Universal Control Plane - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/monitoring-docker-containers-docker-stats-cadvisor-universal-control-plane\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/monitoring-docker-containers-docker-stats-cadvisor-universal-control-plane\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2017-01-03T22:27:33+00:00\",\"dateModified\":\"2023-06-22T10:44:39+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/monitoring-docker-containers-docker-stats-cadvisor-universal-control-plane\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/monitoring-docker-containers-docker-stats-cadvisor-universal-control-plane\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/monitoring-docker-containers-docker-stats-cadvisor-universal-control-plane\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/monitoring-docker-containers-docker-stats-cadvisor-universal-control-plane\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Monitoring Docker Containers &#8211; docker stats, cAdvisor, Universal Control Plane\"}]},{\"@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\/39d8caed0f536489b6aa6e8d31ee631f\",\"name\":\"Arun Gupta, VP, Developer Advocacy, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8900a75409c646948fe0bd80f6240337\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g\",\"caption\":\"Arun Gupta, VP, Developer Advocacy, Couchbase\"},\"description\":\"Arun Gupta is the vice president of developer advocacy at Couchbase. He has built and led developer communities for 10+ years at Sun, Oracle, and Red Hat. He has deep expertise in leading cross-functional teams to develop and execute strategy, planning and execution of content, marketing campaigns, and programs. Prior to that he led engineering teams at Sun and is a founding member of the Java EE team. Gupta has authored more than 2,000 blog posts on technology. He has extensive speaking experience in more than 40 countries on myriad topics and is a JavaOne Rock Star for three years in a row. Gupta also founded the Devoxx4Kids chapter in the US and continues to promote technology education among children. An author of several books on technology, an avid runner, a globe trotter, a Java Champion, a JUG leader, NetBeans Dream Team member, and a Docker Captain, he is easily accessible at @arungupta.\",\"sameAs\":[\"https:\/\/x.com\/arungupta\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/arun-gupta\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Monitoring Docker Containers - docker stats, cAdvisor, Universal Control Plane - The Couchbase Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/pt\/monitoring-docker-containers-docker-stats-cadvisor-universal-control-plane\/","og_locale":"pt_BR","og_type":"article","og_title":"Monitoring Docker Containers - docker stats, cAdvisor, Universal Control Plane","og_description":"There are multiple ways\u00a0to monitor Docker containers. This blog will explain a few\u00a0simple and easy to use options: docker stats command Docker Remote API cAdvisor Prometheus InfluxDB Docker Universal Control Plane Lets take a look at each one of them. [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/monitoring-docker-containers-docker-stats-cadvisor-universal-control-plane\/","og_site_name":"The Couchbase Blog","article_published_time":"2017-01-03T22:27:33+00:00","article_modified_time":"2023-06-22T10:44:39+00:00","author":"Arun Gupta, VP, Developer Advocacy, Couchbase","twitter_card":"summary_large_image","twitter_creator":"@arungupta","twitter_misc":{"Written by":"Arun Gupta, VP, Developer Advocacy, Couchbase","Est. reading time":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/monitoring-docker-containers-docker-stats-cadvisor-universal-control-plane\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/monitoring-docker-containers-docker-stats-cadvisor-universal-control-plane\/"},"author":{"name":"Arun Gupta, VP, Developer Advocacy, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/39d8caed0f536489b6aa6e8d31ee631f"},"headline":"Monitoring Docker Containers &#8211; docker stats, cAdvisor, Universal Control Plane","datePublished":"2017-01-03T22:27:33+00:00","dateModified":"2023-06-22T10:44:39+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/monitoring-docker-containers-docker-stats-cadvisor-universal-control-plane\/"},"wordCount":700,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/monitoring-docker-containers-docker-stats-cadvisor-universal-control-plane\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":["Couchbase Server"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/monitoring-docker-containers-docker-stats-cadvisor-universal-control-plane\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/monitoring-docker-containers-docker-stats-cadvisor-universal-control-plane\/","url":"https:\/\/www.couchbase.com\/blog\/monitoring-docker-containers-docker-stats-cadvisor-universal-control-plane\/","name":"Monitoring Docker Containers - docker stats, cAdvisor, Universal Control Plane - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/monitoring-docker-containers-docker-stats-cadvisor-universal-control-plane\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/monitoring-docker-containers-docker-stats-cadvisor-universal-control-plane\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2017-01-03T22:27:33+00:00","dateModified":"2023-06-22T10:44:39+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/monitoring-docker-containers-docker-stats-cadvisor-universal-control-plane\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/monitoring-docker-containers-docker-stats-cadvisor-universal-control-plane\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/monitoring-docker-containers-docker-stats-cadvisor-universal-control-plane\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/monitoring-docker-containers-docker-stats-cadvisor-universal-control-plane\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Monitoring Docker Containers &#8211; docker stats, cAdvisor, Universal Control Plane"}]},{"@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\/39d8caed0f536489b6aa6e8d31ee631f","name":"Arun Gupta, vice-presidente de defesa do desenvolvedor, Couchbase","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8900a75409c646948fe0bd80f6240337","url":"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g","caption":"Arun Gupta, VP, Developer Advocacy, Couchbase"},"description":"Arun Gupta \u00e9 o vice-presidente de defesa do desenvolvedor na Couchbase. Ele criou e liderou comunidades de desenvolvedores por mais de 10 anos na Sun, Oracle e Red Hat. Ele tem grande experi\u00eancia na lideran\u00e7a de equipes multifuncionais para desenvolver e executar estrat\u00e9gias, planejamento e execu\u00e7\u00e3o de conte\u00fado, campanhas de marketing e programas. Antes disso, liderou equipes de engenharia na Sun e \u00e9 membro fundador da equipe Java EE. Gupta \u00e9 autor de mais de 2.000 postagens em blogs sobre tecnologia. Ele tem uma vasta experi\u00eancia em palestras em mais de 40 pa\u00edses sobre uma infinidade de t\u00f3picos e \u00e9 um JavaOne Rock Star h\u00e1 tr\u00eas anos consecutivos. Gupta tamb\u00e9m fundou o cap\u00edtulo Devoxx4Kids nos EUA e continua a promover a educa\u00e7\u00e3o tecnol\u00f3gica entre as crian\u00e7as. Autor de v\u00e1rios livros sobre tecnologia, corredor \u00e1vido, viajante do mundo inteiro, campe\u00e3o de Java, l\u00edder de JUG, membro do NetBeans Dream Team e capit\u00e3o do Docker, ele pode ser facilmente acessado em @arungupta.","sameAs":["https:\/\/x.com\/arungupta"],"url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/arun-gupta\/"}]}},"authors":[{"term_id":8933,"user_id":58,"is_guest":0,"slug":"arun-gupta","display_name":"Arun Gupta, VP, Developer Advocacy, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g","author_category":"","last_name":"Gupta","first_name":"Arun","job_title":"","user_url":"","description":"Arun Gupta \u00e9 o vice-presidente de defesa do desenvolvedor na Couchbase. Ele criou e liderou comunidades de desenvolvedores por mais de 10 anos na Sun, Oracle e Red Hat. Ele tem grande experi\u00eancia na lideran\u00e7a de equipes multifuncionais para desenvolver e executar estrat\u00e9gias, planejamento e execu\u00e7\u00e3o de conte\u00fado, campanhas de marketing e programas. Antes disso, liderou equipes de engenharia na Sun e \u00e9 membro fundador da equipe Java EE.\r\n\r\nGupta \u00e9 autor de mais de 2.000 postagens em blogs sobre tecnologia. Ele tem uma vasta experi\u00eancia em palestras em mais de 40 pa\u00edses sobre diversos t\u00f3picos e \u00e9 um JavaOne Rock Star h\u00e1 tr\u00eas anos consecutivos. Gupta tamb\u00e9m fundou o cap\u00edtulo Devoxx4Kids nos EUA e continua a promover a educa\u00e7\u00e3o tecnol\u00f3gica entre as crian\u00e7as. Autor de v\u00e1rios livros sobre tecnologia, corredor \u00e1vido, viajante do mundo inteiro, campe\u00e3o de Java, l\u00edder de JUG, membro do NetBeans Dream Team e capit\u00e3o do Docker, ele pode ser facilmente acessado em @arungupta."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/2223","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\/58"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=2223"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/2223\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=2223"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=2223"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=2223"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=2223"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}