抱歉,我刚刚开始学习码头工具。对于你们中的一些人来说,我的问题似乎很愚蠢。 事实上,我想知道是否有办法收集来自" CAdvisor"容器(不是来自cgroup )在运行时?我的意思是,从内存使用或网络流量等cadvisor设计的曲线中提取性能值。 我需要记录这些值并将它们保存在数据库中,以便我可以对这些生成的值执行统计分析(比如在t = 50s时比较两个docker容器的内存消耗)。
提前致谢。
答案 0 :(得分:4)
正如其他答案所提到的,cAdvisor没有提供自己的性能数据API,而是公开了通常在单独的数据库中处理的指标,如果想要获得超过"实时" 。例如,cAdvisor本地导出Prometheus指标:
http://prometheus.io/docs/instrumenting/exporters/
普罗米修斯指标类型:
http://prometheus.io/docs/concepts/metric_types/
Prometheus支持相当丰富的函数表达式语言,可用于查询和可视化:
答案 1 :(得分:1)
我认为您可以使用https://github.com/tutumcloud/container-metrics。基本上,它将使用Influxdb http://influxdb.com/作为时间序列数据存储。
有几个人似乎正在调查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