【问题标题】:Gathering Metrics From Cluster从集群收集指标
【发布时间】:2017-12-30 17:56:55
【问题描述】:

谁能建议从节点集群(每个节点都是带有 Java 应用程序的 Tomcat Docker 容器)收集指标的最佳模式?

我们计划使用 ELK 堆栈(ElasticSearch、Logstash、Kibana)作为可视化工具,但我们的问题是如何将指标传递给 Kibana?

我们正在使用 DropWizard 指标库,它提供每个实例的指标(仪表、计时器、直方图)。

显然,应该按实例收集一些指标(例如 cpu、内存等)——按集群聚合它们没有任何意义。

但对于诸如平均 API 响应时间、数据库调用持续时间等指标,我们需要一个清晰的全局图 - 即不是每个具体实例。

这就是我们犹豫的地方。我们应该:

  1. 只需将简单的仪表值发送到 ElasticSearch 并允许 Kibana 计算平均值、百分位数等。在这种方法中,所有聚合都发生在 Kibana 中。
  2. 使用每个实例的计时器和直方图并改为发送它们 - 但由于此数据已按实例聚合(即计时器已提供百分位数和 1 分钟、5 分钟和 15 分钟的速率) - Kibana 应如何处理此问题以显示全局图片?聚合已经聚合的数据是否有意义?

提前致谢,

【问题讨论】:

    标签: java elasticsearch kibana metrics codahale-metrics


    【解决方案1】:

    你会想要使用Metricbeat。它支持system levelDocker APIDropwizard 的模块。这将为您收集事件(无需任何预聚合)。

    对于聚合和可视化,我将使用 time-series visual builder,您可以在其中聚合每个容器、节点、服务、所有内容……它应该非常灵活,可以为您获得正确的数据粒度。

    【讨论】:

    • 我们可以直接向 ElasticSearch 发送数据——没有任何必要使用 metricbeats。问题主要是关于为集群发送和聚合数据的最佳实践。
    猜你喜欢
    • 2017-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-15
    • 2023-02-02
    • 1970-01-01
    相关资源
    最近更新 更多