我们如何从 CAdvisor docker 容器中收集性能指标?

How can we collect performance metrics from CAdvisor docker container?

抱歉我才刚开始学docker。对于你们中的一些人来说,我的问题可能看起来很愚蠢。 事实上,我想知道是否有一种方法可以在运行时从 "CAdvisor" 容器( 而不是来自 cgroup 收集性能指标] ?我的意思是,从 cadvisor 设计的曲线中提取性能值,例如内存使用或网络流量。 我需要记录这些值并将它们保存在数据库中,这样我就可以对这些生成的值进行统计分析(比如比较两个 docker 容器在 t=50 秒时的内存消耗)。

提前致谢。

我认为您可以使用 https://github.com/tutumcloud/container-metrics for this. Basically what that would be doing is using influxdb http://influxdb.com/ 作为时间序列数据存储。

此处提供了更多信息:http://blog.tutum.co/2014/08/25/panamax-docker-application-template-with-cadvisor-elasticsearch-grafana-and-influxdb/

几个人似乎正在研究 ELK 堆栈(Elastic Search、Logstash、Kibana)以在此处可视化其中的一些数据:https://github.com/google/cadvisor/issues/634

cAdvisor 确实提供了一个休息端点来实时获取任何统计信息。默认情况下,它保留最近两分钟的数据。您可以将其配置为保留更多或更少。它还支持存储后端,以将统计信息转储到 influxdb 数据库。

休息 Api:

例如。 /api/v1.3/个容器 文档:https://github.com/google/cadvisor/blob/master/docs/api.md

关于设置 InfluxDB 的文档: https://github.com/google/cadvisor/blob/master/docs/influxdb.md

正如其他答案所提到的,cAdvisor 不提供自己的性能数据 API,而是公开指标,如果想要获得超出 "real time" 的性能数据,这些指标通常在单独的数据库中处理.例如,cAdvisor 原生导出 Prometheus 指标:

http://prometheus.io/docs/instrumenting/exporters/

Prometheus 指标类型:

http://prometheus.io/docs/concepts/metric_types/

Prometheus 支持相当丰富的函数式表达式语言,可用于查询和可视化:

http://prometheus.io/docs/querying/basics/