{"id":81888,"date":"2020-05-17T13:42:23","date_gmt":"2020-05-17T11:42:23","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/thanos-masshtabiruemyj-prometheus"},"modified":"2020-05-17T13:42:23","modified_gmt":"2020-05-17T11:42:23","slug":"thanos-masshtabiruemyj-prometheus","status":"publish","type":"post","link":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/thanos-masshtabiruemyj-prometheus","title":{"rendered":"Thanos \u2014 un Prometheus escalable","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><b><i>La traducci\u00f3n del art\u00edculo ha sido preparada especialmente para los estudiantes del curso <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/jYQP\/\">\u00abPr\u00e1cticas y herramientas de DevOps\u00bb<\/a><\/noindex>.<\/i><\/b><\/p>\n<p>\n<i><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/fabxc\">Fabian Reinartz<\/a><\/noindex> \u2014 desarrollador de software, aficionado a Go y amante de resolver problemas complejos. Tambi\u00e9n es mantenedor de Prometheus y cofundador de Kubernetes SIG instrumentation. Anteriormente fue ingeniero de producci\u00f3n en SoundCloud y lider\u00f3 el equipo de monitoreo en CoreOS. Actualmente trabaja en Google.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Bplotka\">Bartek Plotka<\/a><\/noindex> \u2014 ingeniero de infraestructura en Improbable. Est\u00e1 interesado en nuevas tecnolog\u00edas y en los problemas de sistemas distribuidos. Tiene experiencia en programaci\u00f3n de bajo nivel en Intel, experiencia como contribuyente en Mesos y experiencia en SRE a nivel mundial en Improbable. Se dedica a mejorar el mundo de los microservicios. Sus tres pasiones: Golang, c\u00f3digo abierto y voleibol.<\/i><\/p>\n<p>Al observar nuestro producto insignia SpatialOS, puedes deducir que Improbable necesita una infraestructura de nube de alta din\u00e1mica a escala global con docenas de cl\u00fasteres de Kubernetes. Fuimos uno de los primeros en comenzar a usar el sistema de monitoreo <noindex><a rel=\"nofollow\" href=\"https:\/\/prometheus.io\/\">Prometheus<\/a><\/noindex>. Prometheus es capaz de rastrear millones de m\u00e9tricas en tiempo real y viene con un poderoso lenguaje de consultas que permite extraer la informaci\u00f3n necesaria.<\/p>\n<p>La simplicidad y confiabilidad de Prometheus es una de sus principales ventajas. Sin embargo, al alcanzar cierta escala, nos encontramos con varias desventajas. Para abordar estos problemas, desarrollamos <noindex><a rel=\"nofollow\" href=\"https:\/\/thanos.io\/\">Thanos<\/a><\/noindex> \u2014 un proyecto de c\u00f3digo abierto creado por Improbable, para la transformaci\u00f3n fluida de los cl\u00fasteres existentes de Prometheus en un \u00fanico sistema de monitoreo con almacenamiento ilimitado de datos hist\u00f3ricos. Thanos est\u00e1 disponible en Github <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/improbable-eng\/thanos\">aqu\u00ed<\/a><\/noindex>.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/gdk.improbable.io\/l\/169082\/2020-01-10\/2j9yxq\">Mantente al tanto de las \u00faltimas noticias de Improbable.<\/a><\/noindex><\/p>\n<h2>Nuestros objetivos con Thanos<\/h2>\n<p>\nA cierta escala, surgen problemas que superan las capacidades de un Prometheus vanilla. \u00bfC\u00f3mo almacenar de manera confiable y econ\u00f3mica petabytes de datos hist\u00f3ricos? \u00bfEs posible hacerlo sin comprometer los tiempos de respuesta de las consultas? \u00bfSe puede acceder a todas las m\u00e9tricas ubicadas en diferentes servidores de Prometheus mediante una sola solicitud API? \u00bfEs posible combinar de alguna manera los datos replicados recopilados con Prometheus HA?<\/p>\n<p>Para abordar estas preguntas, creamos Thanos. En las siguientes secciones describimos c\u00f3mo abordamos estas cuestiones y explicamos los objetivos que perseguimos.<\/p>\n<h4>Solicitar datos de m\u00faltiples instancias de Prometheus (consulta global)<\/h4>\n<p>\nPrometheus ofrece un enfoque funcional para el sharding. Incluso un solo servidor de Prometheus proporciona suficiente escalabilidad para liberar a los usuarios de las complejidades del sharding horizontal en pr\u00e1cticamente todos los casos de uso.<\/p>\n<p>Aunque este es un excelente modelo de implementaci\u00f3n, a menudo se requiere acceder a los datos de diferentes servidores de Prometheus a trav\u00e9s de una \u00fanica API o interfaz de usuario \u2014 vista global. Por supuesto, es posible mostrar m\u00faltiples consultas en un \u00fanico panel de Grafana, pero cada consulta solo puede ejecutarse en un servidor de Prometheus. Por otro lado, con Thanos puedes consultar y agregar datos de varios servidores de Prometheus, ya que todos son accesibles desde un \u00fanico punto final.<\/p>\n<p>Anteriormente, para obtener una vista global en Improbable, organizamos nuestras instancias de Prometheus en una jerarqu\u00eda de <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/prometheus\/prometheus\/blob\/master\/docs\/federation.md#hierarchical-federation\">Federaci\u00f3n Jer\u00e1rquica<\/a><\/noindex>. Esto signific\u00f3 crear un meta-servidor Prometheus que recolecta parte de las m\u00e9tricas de cada servidor \"leaf\".<\/p>\n<p><img decoding=\"async\" alt=\"Thanos \u2014 un Prometheus escalable\" src=\"\/wp-content\/uploads\/2020\/05\/82590f017734f5dc1038a0e13f772d2a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEste enfoque result\u00f3 problem\u00e1tico. Condujo a una configuraci\u00f3n m\u00e1s complicada, a la adici\u00f3n de un posible punto de falla adicional y a la aplicaci\u00f3n de reglas complejas para proporcionar al punto final federado solo los datos necesarios. Adem\u00e1s, la federaci\u00f3n de este tipo no permite obtener una verdadera vista global, ya que no todos los datos est\u00e1n disponibles desde una \u00fanica solicitud API.<\/p>\n<p>Esto est\u00e1 estrechamente relacionado con una \u00fanica representaci\u00f3n de los datos recopilados en servidores Prometheus de alta disponibilidad (high-availability, HA). El modelo HA de Prometheus recopila datos de manera independiente dos veces, lo cual es tan sencillo que no podr\u00eda ser m\u00e1s f\u00e1cil. Sin embargo, utilizar una representaci\u00f3n combinada y desduplicada de ambos flujos ser\u00eda mucho m\u00e1s conveniente.<\/p>\n<p>Por supuesto, existe la necesidad de servidores Prometheus de alta disponibilidad. En Improbable, tomamos muy en serio la monitorizaci\u00f3n de datos cada minuto, pero tener una \u00fanica instancia de Prometheus en el cl\u00faster representa un \u00fanico punto de falla. Cualquier error de configuraci\u00f3n o fallo de hardware puede potencialmente llevar a la p\u00e9rdida de datos importantes. Incluso una implementaci\u00f3n simple puede causar peque\u00f1os fallos en la recolecci\u00f3n de m\u00e9tricas, ya que el reinicio puede tardar significativamente m\u00e1s que el intervalo de scraping.<\/p>\n<h4>Almacenamiento confiable de datos hist\u00f3ricos<\/h4>\n<p>\nUn almacenamiento econ\u00f3mico, r\u00e1pido y a largo plazo para m\u00e9tricas es nuestro sue\u00f1o (compartido por la mayor\u00eda de los usuarios de Prometheus). En Improbable, nos vimos obligados a configurar el tiempo de retenci\u00f3n de m\u00e9tricas en nueve d\u00edas (para Prometheus 1.8). Esto impone limitaciones evidentes sobre cu\u00e1n lejos podemos mirar hacia atr\u00e1s.<\/p>\n<p>Prometheus 2.0 ha mejorado en este aspecto, ya que la cantidad de series temporales ya no afecta al rendimiento general del servidor (ver <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=nDalewt4BOw\">la presentaci\u00f3n principal de KubeCon sobre Prometheus 2<\/a><\/noindex>). Sin embargo, Prometheus almacena datos en disco local. Aunque una compresi\u00f3n de datos de alta eficiencia puede reducir significativamente el uso del SSD local, todav\u00eda existe un l\u00edmite en la cantidad de datos hist\u00f3ricos que se pueden almacenar.<\/p>\n<p>Adem\u00e1s, en Improbable nos preocupamos por la confiabilidad, la simplicidad y el costo. Los discos locales grandes son m\u00e1s dif\u00edciles de operar y respaldar. Cuestan m\u00e1s y requieren m\u00e1s herramientas de respaldo, lo que lleva a una complejidad innecesaria.<\/p>\n<h4>Submuestreo<\/h4>\n<p>\nUna vez que comenzamos a trabajar con datos hist\u00f3ricos, nos dimos cuenta de que hay complicaciones fundamentales con O-grande, que hacen que las consultas sean cada vez m\u00e1s lentas si estamos trabajando con datos de semanas, meses y a\u00f1os.<\/p>\n<p>La soluci\u00f3n est\u00e1ndar a este problema es <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Decimation_(signal_processing)\">el submuestreo<\/a><\/noindex> (downsampling) \u2014 reducir la frecuencia de muestreo de la se\u00f1al. Con la reducci\u00f3n de la frecuencia de muestreo, podemos 'escalar hacia abajo' a un rango de tiempo mayor y mantener la misma cantidad de muestras, lo que permitir\u00e1 mantener la capacidad de respuesta de las consultas.<\/p>\n<p>El submuestreo de datos antiguos es un requisito inevitable para cualquier soluci\u00f3n de almacenamiento a largo plazo y va m\u00e1s all\u00e1 del Prometheus est\u00e1ndar.<\/p>\n<h4>Objetivos adicionales<\/h4>\n<p>\nUno de los objetivos iniciales del proyecto Thanos era la integraci\u00f3n sin problemas con cualquier instalaci\u00f3n existente de Prometheus. El segundo objetivo era la f\u00e1cil operaci\u00f3n con una barrera de entrada m\u00ednima. Cualquier dependencia debe ser f\u00e1cil de satisfacer tanto para usuarios peque\u00f1os como grandes, lo que tambi\u00e9n implica un costo base insignificante.<\/p>\n<h2>Arquitectura de Thanos<\/h2>\n<p>\nDespu\u00e9s de que enumeramos nuestros objetivos en la secci\u00f3n anterior, trabajemos en ellos y veamos c\u00f3mo Thanos aborda estos problemas.<\/p>\n<h4>Vista global<\/h4>\n<p>\nPara obtener una vista global sobre las instancias existentes de Prometheus, necesitamos vincular un \u00fanico punto de entrada de solicitudes con todos los servidores. Esto es precisamente lo que hace el componente Thanos. <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/blog\/2015\/06\/the-distributed-system-toolkit-patterns#example-1-sidecar-containers\">Sidecar<\/a><\/noindex>. Se implementa junto a cada servidor de Prometheus y funciona como un proxy, sirviendo datos locales de Prometheus a trav\u00e9s de la interfaz gRPC del Store API, lo que permite seleccionar datos de series temporales por etiquetas y rango de tiempo.<\/p>\n<p>Por otro lado, est\u00e1 el componente Querier, escalable horizontalmente y sin estado, que hace un poco m\u00e1s que simplemente responder a las solicitudes PromQL a trav\u00e9s del est\u00e1ndar API HTTP de Prometheus. Los componentes Querier, Sidecar y otros de Thanos interact\u00faan a trav\u00e9s del <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Gossip_protocol\">protocolo gossip.<\/a><\/noindex>.<\/p>\n<p><img decoding=\"async\" alt=\"Thanos \u2014 un Prometheus escalable\" src=\"\/wp-content\/uploads\/2020\/05\/fbcf1e756f5da4e8529f17abd4cedd00.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<ol>\n<li>El Querier, al recibir una solicitud, se conecta al servidor correspondiente del Store API, es decir, a nuestros Sidecars, y obtiene los datos de series temporales de los servidores de Prometheus correspondientes.<\/li>\n<li>Despu\u00e9s de esto, combina las respuestas y ejecuta la consulta PromQL sobre ellas. El Querier puede combinar tanto datos no superpuestos como datos duplicados de servidores HA de Prometheus.<\/li>\n<\/ol>\n<p>\nEsto resuelve gran parte de nuestro rompecabezas: combinar datos de servidores de Prometheus aislados en una \u00fanica vista. De hecho, Thanos se puede utilizar solo por esta capacidad. \u00a1No se requieren cambios en los servidores Prometheus existentes!<\/p>\n<h4>\u00a1Almacenamiento ilimitado!<\/h4>\n<p>\nSin embargo, tarde o temprano querramos conservar datos que excedan el tiempo de almacenamiento normal de Prometheus. Para almacenar datos hist\u00f3ricos hemos elegido un almacenamiento de objetos. Est\u00e1 ampliamente disponible en cualquier nube, as\u00ed como en centros de datos locales y es muy econ\u00f3mico. Adem\u00e1s, pr\u00e1cticamente cualquier almacenamiento de objetos es accesible a trav\u00e9s de la API S3 bien conocida.<\/p>\n<p>Prometheus escribe datos de la memoria a disco aproximadamente cada dos horas. Un bloque de datos guardados contiene todos los datos para un intervalo de tiempo fijo y es inmutable. Esto es muy conveniente, ya que Thanos Sidecar puede simplemente observar el cat\u00e1logo de datos de Prometheus y, a medida que se generan nuevos bloques, cargarlos en los buckets del almacenamiento de objetos.<\/p>\n<p><img decoding=\"async\" alt=\"Thanos \u2014 un Prometheus escalable\" src=\"\/wp-content\/uploads\/2020\/05\/2be803d8d7e0ce9a5ffa441b7778a40b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLa carga en el almacenamiento de objetos inmediatamente despu\u00e9s de escribir en disco tambi\u00e9n permite mantener la simplicidad del \u201cscraper\u201d (Prometheus y Thanos Sidecar). Esto simplifica el mantenimiento, el costo y el dise\u00f1o del sistema.<\/p>\n<p>Como pueden ver, la copia de seguridad de datos se realiza de manera muy sencilla. Pero, \u00bfqu\u00e9 pasa con las consultas de datos en el almacenamiento de objetos?<\/p>\n<p>El componente Thanos Store act\u00faa como un proxy para acceder a los datos del almacenamiento de objetos. Al igual que Thanos Sidecar, participa en el cl\u00faster de gossip y implementa la API Store. De este modo, los Querier existentes pueden tratarlo como un Sidecar, como otra fuente de datos de series temporales, sin necesidad de configuraci\u00f3n especial.<\/p>\n<p><img decoding=\"async\" alt=\"Thanos \u2014 un Prometheus escalable\" src=\"\/wp-content\/uploads\/2020\/05\/5a437ae1bf8a6f79b8d24aeb9dde2d17.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLos bloques de datos de series temporales consisten en varios archivos grandes. Cargarlos a demanda ser\u00eda bastante ineficiente, y el almacenamiento en cach\u00e9 local requerir\u00eda una enorme memoria y espacio en disco.<\/p>\n<p>En su lugar, el Store Gateway sabe c\u00f3mo manejar el formato de almacenamiento de Prometheus. Gracias a un planificador de consultas inteligente y al almacenamiento en cach\u00e9 de solo las partes indexadas necesarias de los bloques, se ha vuelto posible reducir consultas complejas a un n\u00famero m\u00ednimo de solicitudes HTTP a los archivos del almacenamiento de objetos. De esta forma, se puede reducir el n\u00famero de solicitudes en cuatro a seis \u00f3rdenes de magnitud y alcanzar tiempos de respuesta que son, en general, dif\u00edciles de distinguir de las consultas de datos en un SSD local.<\/p>\n<p><img decoding=\"async\" alt=\"Thanos \u2014 un Prometheus escalable\" src=\"\/wp-content\/uploads\/2020\/05\/ebcbe1ee16dbac18daa474e7cb4b12b2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nComo se muestra en el diagrama anterior, Thanos Querier reduce significativamente el costo de una solicitud de datos en el almacenamiento de objetos al utilizar el formato de almacenamiento de Prometheus y alinear los datos relacionados. Usando este enfoque, podemos combinar muchas solicitudes individuales en un n\u00famero m\u00ednimo de operaciones en bloque.<\/p>\n<h4>Compactaci\u00f3n y downsampling<\/h4>\n<p>\nUna vez que un nuevo bloque de datos de series temporales se ha cargado con \u00e9xito en el almacenamiento de objetos, lo consideramos como datos \"hist\u00f3ricos\", que est\u00e1n disponibles de inmediato a trav\u00e9s del Store Gateway.<\/p>\n<p>Sin embargo, despu\u00e9s de un tiempo, los bloques de una misma fuente (Prometheus con Sidecar) se acumulan y ya no utilizan todo el potencial de indexaci\u00f3n. Para abordar este problema, introdujimos otro componente llamado Compactor. Simplemente aplica el mecanismo de compactaci\u00f3n local de Prometheus a los datos hist\u00f3ricos en el almacenamiento de objetos y puede ejecutarse como una simple tarea por lotes peri\u00f3dica.<\/p>\n<p><img decoding=\"async\" alt=\"Thanos \u2014 un Prometheus escalable\" src=\"\/wp-content\/uploads\/2020\/05\/c7dd83dab074a4c5f93069a4bc152342.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nGracias a la compresi\u00f3n eficiente, realizar una consulta al almacenamiento durante un per\u00edodo prolongado no presenta problemas en t\u00e9rminos de tama\u00f1o de los datos. Sin embargo, el costo potencial de descomprimir mil millones de valores y procesarlos a trav\u00e9s del controlador de consultas inevitablemente llevar\u00e1 a un aumento dr\u00e1stico en el tiempo de ejecuci\u00f3n de la consulta. Por otro lado, dado que cada p\u00edxel de la pantalla corresponde a cientos de puntos de datos, se vuelve imposible incluso visualizar los datos en resoluci\u00f3n completa. Por lo tanto, el downsamping no solo es posible, sino que tampoco dar\u00e1 lugar a una p\u00e9rdida de precisi\u00f3n notable. <\/p>\n<p><img decoding=\"async\" alt=\"Thanos \u2014 un Prometheus escalable\" src=\"\/wp-content\/uploads\/2020\/05\/5f36a05aba3fbffa905b6a8da482ab3d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPara el downsamping de datos, Compactor agrega continuamente los datos con una resoluci\u00f3n de cinco minutos y una hora. Para cada fragmento sin procesar, codificado con la compresi\u00f3n TSDB XOR, se almacenan diversos tipos de datos agregados, como min, max o sum para un bloque. Esto permite que Querier seleccione autom\u00e1ticamente el agregado que sea adecuado para la consulta PromQL dada. <\/p>\n<p>Para utilizar datos con menor precisi\u00f3n, el usuario no necesita ninguna configuraci\u00f3n especial. Querier cambia autom\u00e1ticamente entre diferentes resoluciones y datos sin procesar a medida que el usuario acerca o aleja. Si lo desea, el usuario puede controlar esto directamente a trav\u00e9s del par\u00e1metro \"step\" en la consulta. <\/p>\n<p>Dado que el costo de almacenamiento de un GB es bajo, por defecto Thanos conserva los datos originales, los datos con resoluci\u00f3n de cinco minutos y de una hora. No es necesario eliminar los datos originales.<\/p>\n<h2>Reglas de grabaci\u00f3n<\/h2>\n<p>\nIncluso con Thanos, las reglas de grabaci\u00f3n son una parte esencial de la pila de monitoreo. Reducen la complejidad, la latencia y el costo de las consultas. Tambi\u00e9n son convenientes para los usuarios para obtener datos agregados por m\u00e9tricas. Thanos se basa en instancias de Prometheus de vanilla, por lo que es completamente aceptable almacenar las reglas de grabaci\u00f3n y las reglas de alerta en el servidor Prometheus existente. Sin embargo, en algunos casos, esto puede no ser suficiente:<\/p>\n<ul>\n<li>Alertas globales y reglas (por ejemplo, notificaciones cuando un servicio no funciona en m\u00e1s de dos de tres cl\u00fasteres).<\/li>\n<li>Regla para datos fuera del almacenamiento local.<\/li>\n<li>El deseo de almacenar todas las reglas y alertas en un solo lugar.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Thanos \u2014 un Prometheus escalable\" src=\"\/wp-content\/uploads\/2020\/05\/ab48e044b952bd891932b99e248120fa.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPara todos estos casos, Thanos incluye un componente separado llamado Ruler, que calcula reglas y alertas a trav\u00e9s de Thanos Queries. Proporcionando una StoreAPI bien conocida, el nodo Query puede acceder a m\u00e9tricas frescas calculadas. M\u00e1s tarde, tambi\u00e9n se almacenan en un almacenamiento de objetos y se hacen accesibles a trav\u00e9s de Store Gateway.<\/p>\n<h2>El poder de Thanos<\/h2>\n<p>\nThanos es lo suficientemente flexible como para adaptarse a tus requisitos. Esto es especialmente \u00fatil al migrar desde un Prometheus simple. Recordemos r\u00e1pidamente, con un peque\u00f1o ejemplo, lo que hemos aprendido sobre los componentes de Thanos. Aqu\u00ed se explica c\u00f3mo trasladar tu Prometheus 'vanilla' al mundo del 'almacenamiento ilimitado de m\u00e9tricas':<\/p>\n<p><img decoding=\"async\" alt=\"Thanos \u2014 un Prometheus escalable\" src=\"\/wp-content\/uploads\/2020\/05\/f6ee4185af57d2a1869890014e6a0062.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<ol>\n<li>Agrega Thanos Sidecar a tus servidores Prometheus, por ejemplo, un contenedor vecino en un pod de Kubernetes.<\/li>\n<li>Despliegue varias r\u00e9plicas de Thanos Querier para habilitar la visualizaci\u00f3n de datos. En esta etapa, es f\u00e1cil configurar el gossip entre Scraper y Querier. Para verificar la interacci\u00f3n de los componentes, utiliza la m\u00e9trica 'thanos_cluster_members'.<\/li>\n<\/ol>\n<p>\n\u00a1Solo estos dos pasos son suficientes para proporcionar una vista global y una deduplicaci\u00f3n de datos sin costuras de las posibles r\u00e9plicas HA de Prometheus! Simplemente conecta tus dashboards al punto final HTTP de Querier o utiliza la interfaz de Thanos UI directamente.<\/p>\n<p>Sin embargo, si necesitas respaldo de m\u00e9tricas y almacenamiento a largo plazo, tendr\u00e1s que realizar tres pasos adicionales:<\/p>\n<ol>\n<li>Crea un bucket en AWS S3 o GCS. Configura Sidecar para copiar datos a estos buckets. Ahora puedes minimizar el almacenamiento de datos local.<\/li>\n<li>Despliega Store Gateway y con\u00e9ctalo al cl\u00faster gossip existente. \u00a1Ahora puedes enviar consultas a los datos en los respaldos!<\/li>\n<li>Despliega Compactor para mejorar la eficiencia de las consultas durante periodos prolongados, utilizando compactaci\u00f3n y downsampling.<\/li>\n<\/ol>\n<p>\nSi deseas saber m\u00e1s, no dudes en consultar nuestras <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/improbable-eng\/thanos\/tree\/master\/kube\">ejemplos de manifiesto de kubernetes<\/a><\/noindex> y <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/improbable-eng\/thanos\/blob\/master\/docs\/getting-started.md\">empezando<\/a><\/noindex>!<\/p>\n<p>En solo cinco pasos hemos transformado Prometheus en un sistema de monitoreo confiable con vista global, almacenamiento ilimitado y potencial alta disponibilidad de m\u00e9tricas.<\/p>\n<h3>\u00a1Se necesita tu colaboraci\u00f3n en el pull request!<\/h3>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/improbable-eng\/thanos\">Thanos<\/a><\/noindex> desde el principio fue un proyecto de c\u00f3digo abierto. La integraci\u00f3n sin fisuras con Prometheus y la posibilidad de usar solo una parte de Thanos lo convierten en una excelente opci\u00f3n para escalar el sistema de monitoreo sin complicaciones.<\/p>\n<p>Siempre estamos abiertos a Pull Requests y Issues en GitHub. Al mismo tiempo, no dudes en contactarnos a trav\u00e9s de Issues de GitHub o slack.<noindex><a rel=\"nofollow\" href=\"https:\/\/join.slack.com\/t\/improbable-eng\/shared_invite\/enQtMzQ1ODcyMzQ5MjM4LWY5ZWZmNGM2ODc5MmViNmQ3ZTA3ZTY3NzQwOTBlMTkzZmIxZTIxODk0OWU3YjZhNWVlNDU3MDlkZGViZjhkMjc\"> Improbable-eng #thanos<\/a><\/noindex>, si tienes preguntas o comentarios, o quieres compartir tu experiencia de uso. Si te gusta lo que hacemos en Improbable, no dudes en contactarnos \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/improbable.io\/careers\/\">siempre tenemos vacantes disponibles.<\/a><\/noindex>!<\/p>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/jYQP\/\">Descubre m\u00e1s sobre el curso.<br \/>\n<\/a><\/noindex><\/p>\n<p>Fuente: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/502122\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u043a\u0443\u0440\u0441\u0430 \u00abDevOps \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b\u00bb. \u0424\u0430\u0431\u0438\u0430\u043d \u0420\u0435\u0439\u043d\u0430\u0440\u0446 (Fabian Reinartz) \u2014 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f, \u0444\u0430\u043d\u0430\u0442 Go \u0438 \u043b\u044e\u0431\u0438\u0442\u0435\u043b\u044c \u0440\u0435\u0448\u0430\u0442\u044c \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438. \u0422\u0430\u043a\u0436\u0435 \u043e\u043d \u043c\u044d\u0439\u043d\u0442\u0435\u0439\u043d\u0435\u0440 Prometheus \u0438 \u0441\u043e\u0443\u0447\u0440\u0435\u0434\u0438\u0442\u0435\u043b\u044c Kubernetes SIG instrumentation. \u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u043c \u043e\u043d \u0431\u044b\u043b production-\u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u043c \u0432 SoundCloud \u0438 \u0432\u043e\u0437\u0433\u043b\u0430\u0432\u043b\u044f\u043b \u0433\u0440\u0443\u043f\u043f\u0443 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0432 CoreOS. \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 Google. \u0411\u0430\u0440\u0442\u0435\u043a [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":81889,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-81888","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u043a\u0443\u0440\u0441\u0430 \u00abDevOps \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b\u00bb.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/thanos-masshtabiruemyj-prometheus\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Thanos \u2014 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u044b\u0439 Prometheus | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u043a\u0443\u0440\u0441\u0430 \u00abDevOps \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b\u00bb.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/thanos-masshtabiruemyj-prometheus\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-05-17T11:42:23+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-17T11:42:23+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Thanos \u2014 Prometheus escalable | ProHoster","description":"La traducci\u00f3n del art\u00edculo ha sido preparada especialmente para los estudiantes del curso \"Pr\u00e1cticas y herramientas DevOps\".","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/thanos-masshtabiruemyj-prometheus","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Thanos \u2014 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u044b\u0439 Prometheus | ProHoster","og:description":"\u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u043a\u0443\u0440\u0441\u0430 \u00abDevOps \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b\u00bb.","og:url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/thanos-masshtabiruemyj-prometheus","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-05-17T11:42:23+00:00","article:modified_time":"2020-05-17T11:42:23+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"81888","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 15:48:24","updated":"2022-09-30 01:06:17","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/81888","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=81888"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/81888\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/81889"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=81888"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=81888"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=81888"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}