【问题标题】:How can we collect performance metrics from CAdvisor docker container?我们如何从 CAdvisor docker 容器中收集性能指标?
【发布时间】:2015-04-27 15:04:59
【问题描述】:

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

提前致谢。

【问题讨论】:

    标签: docker cadvisor


    【解决方案1】:

    正如其他答案所提到的,cAdvisor 不提供自己的性能数据 API,而是公开指标,如果想要获得“实时”之外的性能数据,通常会在单独的数据库中处理这些指标。例如,cAdvisor 原生导出 Prometheus 指标:

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

    Prometheus 指标类型:

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

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

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

    【讨论】:

    • 我想获取每个容器的内存使用情况。 cadvisor可以吗? (一个单一的值/容器)
    【解决方案2】:

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

    REST API:

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 感谢您的出色回答。所以肯定,CAdvisor 不提供 API 来获取性能数据,对吗?我认为它必须与 influxdb 或 ELK 集成才能访问这些数据。
      • 这是我的理解,但我可能错了。
      猜你喜欢
      • 1970-01-01
      • 2019-04-30
      • 1970-01-01
      • 2020-12-20
      • 1970-01-01
      • 1970-01-01
      • 2020-07-25
      • 2019-07-24
      • 1970-01-01
      相关资源
      最近更新 更多