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

时间:2015-04-27 15:04:59

标签: docker cadvisor

抱歉,我刚刚开始学习码头工具。对于你们中的一些人来说,我的问题似乎很愚蠢。 事实上,我想知道是否有办法收集来自" CAdvisor"容器(不是来自cgroup 在运行时?我的意思是,从内存使用或网络流量等cadvisor设计的曲线中提取性能值。 我需要记录这些值并将它们保存在数据库中,以便我可以对这些生成的值执行统计分析(比如在t = 50s时比较两个docker容器的内存消耗)。

提前致谢。

3 个答案:

答案 0 :(得分:4)

正如其他答案所提到的,cAdvisor没有提供自己的性能数据API,而是公开了通常在单独的数据库中处理的指标,如果想要获得超过"实时" 。例如,cAdvisor本地导出Prometheus指标:

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

普罗米修斯指标类型:

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

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

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

答案 1 :(得分:1)

我认为您可以使用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

答案 2 :(得分:1)

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

REST Api:

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

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