Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot 向XDB公开Spring引导指标以实现grafana可视化_Spring Boot_Cloud Foundry_Influxdb_Grafana - Fatal编程技术网

Spring boot 向XDB公开Spring引导指标以实现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的数

我在CloudFoundry上运行了一个Spring启动应用程序,它分别通过/metrics和/health端点公开度量和健康信息。我想将这些指标作为一个连续的流发布到一个XDB用户提供的服务中,以便在grafana仪表板上可视化。我正在寻找任何资源,解释数据流将如何工作,并将感谢任何建议


谢谢。

据我所知,没有现成的解决方案。 但是,您可以为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类型的数据源
  • 创建新的仪表板和图形面板
  • 配置“图形”面板并选择要在“度量”设置中显示的字段
  • 您将在面板上看到数据。

    InfluxDB(与普罗米修斯不同)是一个基于推送的系统。它无法轮询HTTP端点以收集度量。您的应用程序需要连续/定期将数据推送到InfuxDB实例中

    为了将应用程序推入InfluxB,其他人建议使用influxdbjava等库

    还有一个更好的解决方案

    您可以查看一个由Spring团队开发的新库,名为

    测微计是一个度量集合库,支持大量TSDB(流入就是其中之一)。它最早是在Spring2中引入的,并从那时起被移植到Spring1.3+


    千分尺开箱即用。这是超级容易的。您可以阅读有关所有功能的信息

    出于某种原因,您是否特别需要将数据导入到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"