首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

容器监控的基石Prometheus 2.0到来(1)

容器监控的基石Prometheus 2.0到来(1)

Kubernetes使得复杂环境的管理变得容易,但是为了确保可用性,对Kubernetes组件以及群集上运行的所有应用程序进行操作深入分析至关重要。在CoreOS,我们相信监控是良好生产环境的基石,这也是我们投入开发Prometheus监控系统(https://prometheus.io/)的原因。作为一个由Cloud Native Computing Foundation(CNCF)支持的项目,Prometheus迅速获得了基础设施及应用监控方面的热度,今天是它更进一步的时候。

CoreOS将Prometheus作为我们企业级Kubernetes平台Tectonic的集成组件,并且我们也一直在努力提升其对Kubernetes用户的价值。今年早些时候,我们分享了关于下一代Prometheus(version 2.0)的新存储层方面的工作。为了稳固这项工作,我们和Prometheus团队以及我们的用户进行了更加密切的合作。在3个alpha版本,6个beta版本以及3个RC版本之后,今天Prometheus 2.0正式宣布稳定版本。感谢Brian Brazil和Goutham Veeramachaneni,他们在这项工作中付出巨大。在我们探索该发行版的优点之前,让我们回过头来,先探讨一下我们为何需要一个新的存储层。



时间序列和动态环境

Prometheus关于监控的理念鼓励在堆栈的每一层都采用高度详细的度量工具。容器的状态,通过的请求流,甚至是运行于其中的应用的深层信息都通过度量工具对外可见。Prometheus带来了一款强力的查询语言帮助将度量数据汇总转换成行动方案。

Prometheus通过时间序列的方式收集和存储数据,它是通过固定间隔收集到的带有时间戳数据的序列。这种设计可以使运行中的容器轻松产生成千的时间序列。随着容器的规模从成百扩展到成千,在集群中很可能产生数百万被跟踪的时间序列。

为上百万的时间序列持续写入数据显然是一项技术难题。更糟糕的是,Kubernetes使得持续销毁和创建容器变得十分容易。该项模型对于持续部署,自动扩容以及批处理作业调度而言是极为强大的,因此只会随着时间的推移而变得越来越普遍。

每个容器都有一个独一无二的标识符,所有其时间序列均包含该标识符,以达到最佳的视角。因此当被跟踪的活跃时间序列总数大致固定时,Prometheus中可以对外访问的所有历史时间序列数据是持续增长的。允许查询十亿级的时间序列是一项全新的挑战,但我们决定让Prometheus很好地支持该特性。

新的存储引擎就是用来解决这项挑战的。受到全文搜索的启发,它使用倒排索引以提供对于Prometheus时间序列可能拥有的任意纬度进行快速检索。新的磁盘格式确保相关的时间序列数据良好分布,另外write-ahead日志也使得Prometheus 2.0n能够从崩溃中恢复。

Prometheus同样变得更易操作了。Prometheus 1.x的用户应该对调整期望负载的存储配置十分熟悉。然而,有了新的存储层之后,这些控制就不再需要了。
返回列表