{"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\/es\/monitoring-docker-containers-docker-stats-cadvisor-universal-control-plane\/","title":{"rendered":"Monitorizaci\u00f3n de contenedores Docker - docker stats, cAdvisor, Universal Control Plane"},"content":{"rendered":"<p>Existen m\u00faltiples formas de monitorizar los contenedores Docker. Este blog explicar\u00e1 algunas opciones sencillas y f\u00e1ciles de usar:<\/p>\n<ol>\n<li><a href=\"https:\/\/docs.docker.com\/engine\/reference\/commandline\/stats\/\"><code>estad\u00edsticas de docker<\/code> comando<\/a><\/li>\n<li><a href=\"https:\/\/docs.docker.com\/engine\/reference\/api\/docker_remote_api\/\">API remota de Docker<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/google\/cadvisor\">cAdvisor<\/a>\n<ol>\n<li><a href=\"https:\/\/prometheus.io\/\">Prometeo<\/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 control universal de Docker<\/a><\/li>\n<\/ol>\n<p>Veamos cada una de ellas.<\/p>\n<p>Utilizaremos un <a href=\"https:\/\/developer.couchbase.com\/server\">Servidor Couchbase<\/a>\u00a0para recopilar los datos de monitorizaci\u00f3n. Vamos a iniciar el 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> imagen se explica en\u00a0<a href=\"https:\/\/github.com\/arun-gupta\/docker-images\/tree\/master\/couchbase\">github.com\/arun-gupta\/docker-images\/tree\/master\/couchbase<\/a>. Realiza:<\/p>\n<ul>\n<li>Configura la memoria para el servicio de \u00edndices y datos<\/li>\n<li>Configura el servidor Couchbase para el servicio de \u00edndices, datos y consultas.<\/li>\n<li>Establece las credenciales de nombre de usuario y contrase\u00f1a<\/li>\n<\/ul>\n<p>Ahora vamos a recopilar datos de seguimiento.<\/p>\n<h2>estad\u00edsticas de docker<\/h2>\n<p><code>estad\u00edsticas de docker<\/code> mostrar una transmisi\u00f3n en directo de las siguientes estad\u00edsticas de uso de recursos de contenedor(es):<\/p>\n<ul>\n<li>Uso de la CPU %<\/li>\n<li>Uso de memoria, l\u00edmite, uso de %<\/li>\n<li>Red i\/o<\/li>\n<li>Disco i\/o<\/li>\n<\/ul>\n<p>Las estad\u00edsticas se actualizan cada segundo. A continuaci\u00f3n se muestra un ejemplo:<\/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 defecto, este comando muestra las estad\u00edsticas de todos los contenedores en ejecuci\u00f3n. Se puede especificar una lista de nombres o ids de contenedores, separados por un espacio, para restringir el flujo a un subconjunto de contenedores en ejecuci\u00f3n. Por ejemplo, s\u00f3lo se mostrar\u00e1n las estad\u00edsticas de<br \/>\nContenedor Couchbase puede ser visto como:<\/p>\n<pre class=\"lang:default decode:true\">docker stats couchbase<\/pre>\n<p>donde <code>couchbase<\/code> es el nombre del contenedor. Y la salida se ve as\u00ed:<\/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> en la que s\u00f3lo se muestra la primera instant\u00e1nea y no se transmiten los resultados. La direcci\u00f3n <a href=\"https:\/\/logentries.com\/doc\/docker-logentries-container\/\">Contenedor Docker Logentries<\/a>\u00a0puede utilizarse para recoger<br \/>\nestos datos.<\/p>\n<h2>API remota de Docker<\/h2>\n<p>El demonio Docker proporciona un <a href=\"https:\/\/docs.docker.com\/engine\/reference\/api\/docker_remote_api\/\">API REST remota.<\/a>\u00a0El cliente utiliza esta API para comunicarse con el motor. Esta API tambi\u00e9n puede ser invocada por otras herramientas, tales como<br \/>\n<a href=\"https:\/\/curl.haxx.se\/\">rizo<\/a> o <a href=\"https:\/\/chrome.google.com\/webstore\/detail\/postman\/fhbjgbiflinjbdggehcddcbncdddomop?hl=en\">Cliente REST Postman para Chrome<\/a>.<\/p>\n<p>Si est\u00e1s creando demonios Docker usando Docker Machine en OSX Mavericks, entonces conseguir que esta API funcione es un poco complicado. Si est\u00e1s en Mac, sigue las instrucciones en <a href=\"https:\/\/www.couchbase.com\/blog\/es\/enabling-docker-remote-api-docker-machine-mac-osx\/\">Activar la API remota de Docker<\/a>\u00a0a<br \/>\naseg\u00farese de que curl puede invocar esta API REST. La API que proporciona estad\u00edsticas sobre el contenedor es\u00a0<code>\/contenedores\/{id}\/estadisticas<\/code> o <code>\/contenedores\/{nombre}\/estadisticas.<\/code><\/p>\n<p>Entonces se pueden obtener m\u00e1s estad\u00edsticas sobre el contenedor 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>Se muestra el siguiente resultado (formateado):<\/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>Hay muchos m\u00e1s detalles sobre memoria, disco y red. Cada segundo se env\u00eda un nuevo conjunto de m\u00e9tricas.<\/p>\n<h2>cAdvisor<\/h2>\n<p><a href=\"https:\/\/github.com\/google\/cadvisor\">cAdvisor<\/a> o Container Advisor proporcionan m\u00e9tricas de hosts y contenedores. Es un demonio en ejecuci\u00f3n que recopila, agrega, procesa y exporta informaci\u00f3n sobre los contenedores en ejecuci\u00f3n. Iniciemos el cAdvisor<br \/>\ncontenedor:<\/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>El cuadro de mandos de cAdvisor s\u00f3lo muestra datos de los \u00faltimos 60 segundos. Sin embargo m\u00faltiples backends, como Prometheus e InfluxDB,<br \/>\nque permiten el almacenamiento, la recuperaci\u00f3n y el an\u00e1lisis a largo plazo.<\/p>\n<p class=\"p1\">Utilice <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.1\/cli\/cbq-tool.html\">Herramienta de consulta Couchbase<\/a>\u00a0para conectar con el 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 un <a href=\"https:\/\/www.couchbase.com\/blog\/es\/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>cAdvisor s\u00f3lo almacena un minuto de datos y aqu\u00ed tiene una captura del cuadro de mandos:<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>Y el uso de memoria:<\/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>Hay muchas herramientas que pueden utilizar los datos generados por cAdvisor y mostrarlos en un bonito cuadro de mandos. Encontrar\u00e1 m\u00e1s informaci\u00f3n en\u00a0<a href=\"https:\/\/github.com\/google\/cadvisor\/tree\/master\/docs\">github.com\/google\/cadvisor\/tree\/master\/docs<\/a>.<\/p>\n<h2>Plano de control universal de Docker<\/h2>\n<p>Docker Universal Control Plane (DUCP) permite gestionar y desplegar aplicaciones distribuidas Dockerizadas, todo ello desde dentro del cortafuegos. Se integra con sistemas clave como LDAP\/AD para gestionar usuarios y proporciona y una interfaz para que los equipos de operaciones de TI puedan<br \/>\ndesplegar y gestionar. RBAC, integraci\u00f3n SSO con Docker Trusted Registry, interfaz de usuario web sencilla y f\u00e1cil de usar son algunas de las caracter\u00edsticas clave. Leer <a href=\"https:\/\/www.docker.com\/products\/docker-universal-control-plane\">resumen de productos<\/a>\u00a0para completar<br \/>\nconjunto de caracter\u00edsticas.<\/p>\n<p><a href=\"https:\/\/docs.docker.com\/ucp\/evaluation-install\/\">Plan de control universal Docker con Docker Machine<\/a>\u00a0es la forma m\u00e1s f\u00e1cil de experimentar esto en tu m\u00e1quina local. Las instrucciones son muy detalladas y funcionan a la primera. Aqu\u00ed tienes<br \/>\nalgunas im\u00e1genes despu\u00e9s de desplegar una imagen de Couchbase.<\/p>\n<p>La instalaci\u00f3n de DUCP consta de un controlador DUCP y uno o varios hosts. \u00c9stos se configuran en un <a href=\"https:\/\/www.couchbase.com\/blog\/es\/deploy-docker-compose-services-swarm\/\">Enjambre Docker<\/a> cluster. Y luego se inician los contenedores en estos cl\u00fasteres:<\/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>La asignaci\u00f3n de puertos es f\u00e1cil de definir:<\/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>Una vez que el contenedor est\u00e1 funcionando, se pueden ver las estad\u00edsticas de monitorizaci\u00f3n:<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>Y, por \u00faltimo, el salpicadero de aspecto bonito:<\/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\">paquete de clientes<\/a> que muestra la informaci\u00f3n sobre el cl\u00faster 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>Hay muchas herramientas que proporcionan datos de seguimiento:<\/p>\n<ul>\n<li><a href=\"https:\/\/sysdig.com\/\">Nube 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\/\">Perro de datos<\/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\/\">Logentries<\/a><\/li>\n<\/ul>\n<p><a href=\"https:\/\/docs.docker.com\/engine\/reference\/commandline\/stats\/\">estad\u00edsticas de docker<\/a> y <a href=\"https:\/\/docs.docker.com\/engine\/reference\/api\/docker_remote_api\/\">API remota de Docker<\/a>\u00a0son sin duda los m\u00e1s f\u00e1ciles de dar una primera instant\u00e1nea de<br \/>\nsus datos de seguimiento.<\/p>\n<p>Y a partir de ah\u00ed la cosa se pone interesante.<\/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.7.1 (Yoast SEO v25.7) - 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\/es\/monitoring-docker-containers-docker-stats-cadvisor-universal-control-plane\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\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\/es\/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\":\"es\",\"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\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/monitoring-docker-containers-docker-stats-cadvisor-universal-control-plane\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@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\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/39d8caed0f536489b6aa6e8d31ee631f\",\"name\":\"Arun Gupta, VP, Developer Advocacy, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@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\/es\/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\/es\/monitoring-docker-containers-docker-stats-cadvisor-universal-control-plane\/","og_locale":"es_MX","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\/es\/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":"es","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":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/monitoring-docker-containers-docker-stats-cadvisor-universal-control-plane\/"]}]},{"@type":"ImageObject","inLanguage":"es","@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":"El blog de Couchbase","description":"Couchbase, la base de datos NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/39d8caed0f536489b6aa6e8d31ee631f","name":"Arun Gupta, Vicepresidente, Defensa del Desarrollador, Couchbase","image":{"@type":"ImageObject","inLanguage":"es","@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 es vicepresidente de promoci\u00f3n de desarrolladores en Couchbase. Ha creado y dirigido comunidades de desarrolladores durante m\u00e1s de 10 a\u00f1os en Sun, Oracle y Red Hat. Tiene una gran experiencia en liderar equipos multidisciplinares para desarrollar y ejecutar estrategias, planificar y ejecutar contenidos, campa\u00f1as de marketing y programas. Anteriormente dirigi\u00f3 equipos de ingenier\u00eda en Sun y es miembro fundador del equipo Java EE. Gupta es autor de m\u00e1s de 2.000 entradas de blog sobre tecnolog\u00eda. Tiene una amplia experiencia como conferenciante en m\u00e1s de 40 pa\u00edses sobre innumerables temas y es una JavaOne Rock Star desde hace tres a\u00f1os consecutivos. Gupta tambi\u00e9n fund\u00f3 el cap\u00edtulo Devoxx4Kids en Estados Unidos y sigue promoviendo la educaci\u00f3n tecnol\u00f3gica entre los ni\u00f1os. Autor de varios libros sobre tecnolog\u00eda, \u00e1vido corredor, trotamundos, campe\u00f3n de Java, l\u00edder de JUG, miembro del Dream Team de NetBeans y capit\u00e1n de Docker, es f\u00e1cilmente accesible en @arungupta.","sameAs":["https:\/\/x.com\/arungupta"],"url":"https:\/\/www.couchbase.com\/blog\/es\/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","first_name":"Arun","last_name":"Gupta","user_url":"","author_category":"","description":"Arun Gupta es vicepresidente de promoci\u00f3n de desarrolladores en Couchbase. Ha creado y dirigido comunidades de desarrolladores durante m\u00e1s de 10 a\u00f1os en Sun, Oracle y Red Hat. Tiene una gran experiencia en liderar equipos multidisciplinares para desarrollar y ejecutar estrategias, planificar y ejecutar contenidos, campa\u00f1as de marketing y programas. Anteriormente dirigi\u00f3 equipos de ingenier\u00eda en Sun y es miembro fundador del equipo Java EE.\r\n\r\nGupta es autor de m\u00e1s de 2.000 entradas de blog sobre tecnolog\u00eda. Tiene una amplia experiencia como conferenciante en m\u00e1s de 40 pa\u00edses sobre innumerables temas y es una JavaOne Rock Star desde hace tres a\u00f1os consecutivos. Gupta tambi\u00e9n fund\u00f3 el cap\u00edtulo Devoxx4Kids en Estados Unidos y sigue promoviendo la educaci\u00f3n tecnol\u00f3gica entre los ni\u00f1os. Autor de varios libros sobre tecnolog\u00eda, \u00e1vido corredor, trotamundos, campe\u00f3n de Java, l\u00edder de JUG, miembro del Dream Team de NetBeans y capit\u00e1n de Docker, es f\u00e1cilmente accesible en @arungupta."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2223","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/58"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=2223"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2223\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=2223"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=2223"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=2223"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=2223"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}