我在Cloud Foundry上运行了一个Spring Boot应用程序,它通过/ metrics& amp; /健康终点分别。我想将这些指标作为连续流发布到flowfDB用户提供的服务,以便在grafana仪表板上进行可视化。我正在寻找解释数据流如何工作的任何资源,并希望得到任何建议。
感谢。
答案 0 :(得分:7)
据我所知,没有现成的解决方案。 但是,您可以为InfluxDB实现自定义Exporter。
可以在here找到有关如何在Spring Boot中执行此操作的详细信息。 实质上,您需要实现的是一个导出器,它将Spring Boot度量数据转换为InfluxDB line protocol
另一种可能的解决方案是获取Spring Boot metrics into Dropwizard metrics,然后使用this外部库将Dropwizard指标报告给InfluxDB(或使用已经成为InfluxDB的dropwizard指标的master分支后端)。
最后,如果您想放弃InfluxDB而是将数据保存到Graphite的存储(Whisper数据库)中,您应该查看this或this。一旦数据在Graphite中,Grafana就可以轻松地将其显示为here
答案 1 :(得分:3)
有可能编写一个telegraf插件来向InfluxDB发布指标。否则,influxdb-java库可能会简化直接从Spring Boot发出指标。
答案 2 :(得分:1)
使用Influxdb可以实现两种实现: -
a)对于Influxdb版本< = 0.8.8,您可以使用metrics-Influxdb jar将您的应用时间序列数据放在正在运行的Influxdb服务器上。
b)对于Influxdb版本> 0.8.8您可以使用Influxdb-java jar将您的应用时间序列数据放在运行的Influxdb服务器上。
现在关于如何安装&使用grafana管理Influxdb,您可以按照以下有用链接: -
http://www.philipotoole.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
答案 3 :(得分:0)
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"
确保上层配置的网络可用,然后您将获得潮流数据库中的数据。
配置grafana以显示存储在InfluxDB中的数据:
您将在面板上看到数据。
答案 4 :(得分:0)
InfluxDB(与Prometheus不同)是基于推送的系统。它无法轮询HTTP端点以收集指标。您的应用程序需要连续/定期将数据推入InfuxDB实例。
为将应用程序推送到InfluxB中,其他人建议使用influxdb-java,metrics-influxdb等库。
还有一个(也是更好的IMO)解决方案。
您可以看看Spring团队开发的名为micrometer的新库。
Micrometer是一个指标收集库,它支持大量的TSDB(Influx是其中之一)。它是在Spring 2中首次引入的,此后一直移植到Spring 1.3 +。
千分尺开箱即用发布all of default actuator metrics。 get started with非常容易。您可以了解所有功能here。