我们如何从CAdvisor泊坞窗容器收集性能指标?

对不起,我刚刚开始学习docker。 我的问题对你们中的一些人来说似乎很愚蠢。 事实上,我想知道在运行时是否有方法从“CAdvisor”容器( 而不是从cgroup )收集性能指标? 我的意思是,从cadvisordevise的曲线中提取性能值,如内存使用率或networkingstream量。 我需要logging这些值并将它们保存到数据库中,以便我可以对这些生成的值执行统计分析(比如在t = 50s时比较两个docker集装箱的内存消耗)。

提前致谢。

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

REST Api:

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

build立InfluxDB的文档: https : //github.com/google/cadvisor/blob/master/docs/influxdb.md

正如其他答案所述,cAdvisor不提供自己的性能数据API,而是暴露一些通常在独立数据库中处理的度量,如果想要超出“实时”的性能数据。 例如,cAdvisor本地输出Prometheus指标:

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

普罗米修斯公制types:

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

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

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

我想你可以使用https://github.com/tutumcloud/container-metrics 。 基本上这样做是使用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