我有一个在 Cloud Foundry 上运行的 Spring Boot 应用程序,它分别通过 /metrics 和 /health 端点公开指标和健康信息。我想将这些指标作为连续流发布到 influxDB 用户提供的服务,以便在 grafana 仪表板上进行可视化。我正在寻找任何解释数据流如何工作的资源,并希望得到任何建议。
谢谢。
我有一个在 Cloud Foundry 上运行的 Spring Boot 应用程序,它分别通过 /metrics 和 /health 端点公开指标和健康信息。我想将这些指标作为连续流发布到 influxDB 用户提供的服务,以便在 grafana 仪表板上进行可视化。我正在寻找任何解释数据流如何工作的资源,并希望得到任何建议。
谢谢。
据我所知,没有现成的解决方案。但是,您可以做的是为 InfluxDB实现自定义导出器。
可以在此处找到有关如何在 Spring Boot 中执行此操作的详细信息。本质上,您需要实现的是一个将 Spring Boot 指标数据转换为 InfluxDB 的线路协议的导出器
另一种可能的解决方案是将Spring Boot 指标放入 Dropwizard 指标中,然后使用此外部库将 Dropwizard 指标报告到 InfluxDB(或使用已经是 InfluxDB 后端的 dropwizard 指标的主分支)。
最后,如果您想放弃 InfluxDB 而是将数据保存到 Graphite 的存储(Whisper 数据库)中,您应该查看this或this。一旦数据在 Graphite 中,Grafana 可以轻松地将其可视化,如下所示
可以编写一个电报插件来将指标发送到 InfluxDB。否则,influxdb-java库可能会简化直接从 Spring Boot 发出指标的过程。
InfluxDB(与 Prometheus 不同)是一个基于推送的系统。它不能轮询 HTTP 端点来收集指标。您的应用程序需要连续/定期将数据推送到 InfuxDB 实例。
为了将应用程序推送到 InfluxB,其他人建议使用诸如 influxdb-java、metrics-influxdb等库。
还有一种(更好的 IMO)解决方案。
你可以看看 Spring 团队开发的一个名为micrometer的新库。
Micrometer 是一个度量收集库,支持大量的 TSDB(Influx 就是其中之一)。它是在 Spring 2 中首次引入的,此后一直向后移植到 Spring 1.3+。
Micrometer开箱即用地发布所有默认执行器指标。上手超级容易。您可以在此处阅读有关所有功能的信息。
Telegraf 满足您的要求。它从 jolokia 中提取数据并保存到 InfluxDB。
您需要做的就是为 SpringbootApplication 启用执行器和 jolokia,很容易将依赖项添加到您的 maven:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.jolokia</groupId>
<artifactId>jolokia-core</artifactId>
</dependency>
在此之后,您需要配置 telegraf 以连接您的 Web 服务器和 influxDB,这是一个示例配置:
[tags]
dc = "local-1"
[agent]
interval = "10s"
[[inputs.jolokia]]
context = "/jolokia"
[[inputs.jolokia.servers]]
name = "catalog"
host = "{web server ip address}"
port = "{web server port}"
[[inputs.jolokia.metrics]]
name = "metrics"
mbean = "org.springframework.boot:name=metricsEndpoint,type=Endpoint"
attribute = "Data"
[outputs]
[outputs.influxdb]
url = "{http://influxdb:port}"
database = "telegraf"
precision = "s"
确保上层配置的网络可用,然后您将在 influxDB 中获取数据。
配置grafana显示存储在influxDB中的数据:
您将在面板上看到数据。
influxdb 有两种实现方式:-
a) 对于 influxdb 版本 <= 0.8.8,您可以使用 metrics-influxdb jar 将您的应用时间序列数据放在正在运行的 influxdb 服务器上。
b) 对于 influxdb 版本 > 0.8.8,您可以使用 influxdb-java jar 将您的应用时间序列数据放在正在运行的 influxdb 服务器上。
现在关于如何使用 grafana 安装和管理 influxdb,您可以点击以下有用的链接:-
http://www.philiotoole.com/influxdb-and-grafana-howto/
http://blog.sflow.com/2014/12/ influxdb-and-grafana.html
https://devops.profitbricks.com/tutorials/creating-a-grafana-and-influxdb-docker-container/
https://influxdb.com/docs/v0.6/ui/grafana .html