java - 从集群收集指标

标签 java elasticsearch kibana metrics codahale-metrics

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

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

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

显然,一些指​​标应该针对每个实例进行收集(例如 CPU、内存等)——按集群聚合它们没有任何意义。

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

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

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

提前致谢,

最佳答案

您将需要使用Metricbeat 。它支持 system level 的模块, Docker API ,和Dropwizard 。这将为您收集事件(没有任何预聚合)。

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

关于java - 从集群收集指标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48036480/

相关文章:

java - Java 路径中的星号

java - 如何递归执行插入排序

elasticsearch - 如何将 html 文件的转储索引到 elasticsearch?

python - 使用 Python 插入 Elasticsearch 数据

Java 在新线程中运行静态方法

java - 使用 Spring MVC 应用程序实现 Tiles 3

elasticsearch - 提高跨度附近

scala - 使用Scala将地理变量传递给Kibana

elasticsearch - ElasticSearch-在query_string中使用 “now”范围返回0次匹配

elasticsearch - ElasticSearch-模式中的字段类型不匹配