Spring boot 向XDB公开Spring引导指标以实现grafana可视化
我在CloudFoundry上运行了一个Spring启动应用程序,它分别通过/metrics和/health端点公开度量和健康信息。我想将这些指标作为一个连续的流发布到一个XDB用户提供的服务中,以便在grafana仪表板上可视化。我正在寻找任何资源,解释数据流将如何工作,并将感谢任何建议Spring boot 向XDB公开Spring引导指标以实现grafana可视化,spring-boot,cloud-foundry,influxdb,grafana,Spring Boot,Cloud Foundry,Influxdb,Grafana,我在CloudFoundry上运行了一个Spring启动应用程序,它分别通过/metrics和/health端点公开度量和健康信息。我想将这些指标作为一个连续的流发布到一个XDB用户提供的服务中,以便在grafana仪表板上可视化。我正在寻找任何资源,解释数据流将如何工作,并将感谢任何建议 谢谢。据我所知,没有现成的解决方案。 但是,您可以为XDB实现自定义 有关如何在Spring Boot中执行此操作的详细信息,请参见。 本质上,您需要实现一个导出器,将Spring引导度量数据转换为XDB的数
谢谢。据我所知,没有现成的解决方案。 但是,您可以为XDB实现自定义 有关如何在Spring Boot中执行此操作的详细信息,请参见。 本质上,您需要实现一个导出器,将Spring引导度量数据转换为XDB的数据 另一种可能的解决方案是获取,然后使用外部库将Dropwizard度量报告到InfluxDB中(或者使用Dropwizard度量的分支,该分支已经是InfluxDB后端)
最后,如果您想放弃XDB,而是将数据保存到Graphite的存储器(Whisper数据库)中,您应该签出或。一旦数据以Graphite的形式出现,Grafana就可以很容易地将其可视化,如图所示可以编写一个插件,将度量值发送到XDB。否则,库可能会简化直接从Spring Boot发出度量。XDB有两种可能的实现:- a) 对于influxdb版本0.8.8,您可以使用influxdb java jar将应用程序时间序列数据放在运行influxdb服务器上 现在,关于如何使用grafana安装和管理XDB,您可以按照以下有用的链接进行操作:-
Telegraf满足您的要求。它从jolokia提取数据并保存到XDB 您只需为SpringbootApplication启用actuator和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>
确保上层配置的网络可用,然后您将在XDB中获取数据
配置grafana以显示XDB中存储的数据:
千分尺开箱即用。这是超级容易的。您可以阅读有关所有功能的信息 出于某种原因,您是否特别需要将数据导入到XDB中(除了它非常棒之外)?我这样问是因为有资源可以将度量数据输入Graphite(并将其存储在Whisper db中)。然后,您可以轻松地将grafana指向graphite服务器并可视化数据。添加InfluxDB是完全可以做到的,但我猜这需要大量的手工编码(我不知道有什么现成的解决方案)谢谢-是的,我的Landscape中只有InfluxDB(带有Grafana)绑定。多谢@geoand。我尝试了你的第二个建议,但由于外部库支持XDB 0.8x而不是0.9x,所以我一直坚持使用外部库。在我等待修复这个库的时候,您能否分享您提到的将数据报告到Graphite API的资源(您最初的建议)?不客气!查看我的更新答案以获得额外建议再次感谢。但是,grafana(通过graphite)中只显示了来自Spring Boot应用程序的/metrics端点的counter.*和gauge.*指标。有没有办法将整个指标集(包括jvm参数、cpu util等)作为计划作业公开?我遇到了一些链接,但每个人似乎都有自己的方式(并使用其他库)来实现这一点。建议的前进之路是什么?@citizenBane很高兴看到它正在起作用(至少部分起作用)。对于你的问题,我不能说我有现成的解决方案。看起来您必须将找到的解决方案与现有解决方案进行集成implementation@NikolayChernov谢谢你的报道!固定的
[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"