AIOps 一场颠覆传统运维的盛筵
855
2022-09-22
Docker 监控- Prometheus VS Cloud Insight(docker -v)
Prometheis
Prometheus 由 SoundCloud 发明,适合于监控基于容器的基础架构。Prometheus 特点是高维度数据模型,时间序列是通过一个度量值名字和一套键值对识别。灵活的查询语言允许查询和绘制数据。它采用了先进的度量标准类型像汇总(summaries),从指定时间跨度的总数构建比率或者是在任何异常的时候报警并且没有任何依赖,中断期间使它成为一个可靠的系统进行调试。
Prometheus 支持维度数据,你可以拥有全局和简单的指标名像 container_memory_usage_bytes ,使用多个维度来标识你服务的指定实例。
如果你使用指标名字直接作为一个查询表达式,它将返回有这个使用这个指标名字作为标签的所有时间序列。
为了帮助你使得这数据更有意义,你可以过滤(filter) and/or 聚合(aggregate) 这些指标。
使用 Prometheus 的查询语言,你可以对你想的任何维度的数据切片和切块。如果你对一个给定名字的所有容器感兴趣,你可以使用一个表达式像 container_memory_usage_bytes{name="consul-server"},这个将仅仅显示 name == "consul-server"的时间序列。
像多维度的数据模型,来实现数据聚合、分组、过滤,不单单是 Prometheus。OpenTSDB 和 InfluxDB 这些时间序列数据库和系统监控工具的结合,让系统监控这件事情变得更加的多元。
现在我们来对比 Prometheus 和 Cloud Insight 在数据聚合、分组(切片)上的展现效果和功能。
数据聚合
根据不同的 Container Name 或 Image Name 对内存使用量或 Memeory Cache 进行聚合。
数据分组(切片)
根据不同的 Container Name 或 Image Name 对内存使用量或 Memeory Cache进行分组(切片)。
Cloud Insight
Cloud Insight 监控 Docker 试验
我们用 AcmeAir 作为试验的应用,AcmeAir 是一款由原 IBM 新技术架构部资深工程师 Andrew Spyker,利用 Netflix 开源的 Netflix OSS 打造的开源电子商务应用。
我们添加了以下指标:
docker.cpu.userdocker.cpu.sysytemdocker.containers.runningjvm.heap_memoryjvm.nonheapmemoryjvm.gc.cms.countjvm.heapmemorymaxjvm.gc.parnew.time
应用 Acme 部署在四台 servers 上,我们开启四台 servers, 然后用 JMeter 给应用加压。
随着时间 JMeter 不断给应用加压,当 users 人数达到188时,我们再来看一下仪表盘的视图。
总结
Docker 兼容相比其他的数据库、系统、中间件监控,要复杂一些。由于需要表征不同 Container 的性能消耗,来了解不同应用的运行情况,所以数据的聚合、切片(分组)和过滤,在 Docker 监控中成为了必备功能。
所以我们推荐使用了时间序列数据库,或者类似设计逻辑的监控方案,如:Prometheus 和 Cloud Insight。
而 Docker 单方面的监控,可能不太满足一些大型公司的需求,如果一个工具在监控 Docker 同时能够监控其他组件,那就更好了。
发表评论
暂时没有评论,来抢沙发吧~