springboot2输出metrics到influxdb

本文主要研究一下如何将springboot2的metrics输出到influxdb

maven

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-influx</artifactId>
        </dependency>

配置

management:
  metrics:
    export:
      influx:
        enabled: true
        db: springboot
        uri: http://192.168.99.100:8086
#        user-name:
#        password:
        connect-timeout: 1s
        read-timeout: 10s
        auto-create-db: true
        step: 1m
        num-threads: 2
        consistency: one
        compressed: true
        batch-size: 10000

influx

docker run -d --name influx -p 8086:8086 influxdb

启动之后创建数据库

  • 命令行创建
docker exec -it influx influx
create database springboot
  • rest接口创建curl -i -X POST http://192.168.99.100:8086/query --data-urlencode "q=CREATE DATABASE springboot"

返回

HTTP/1.1 200 OK
Content-Type: application/json
Request-Id: f3ce7449-7227-11e8-8002-000000000000
X-Influxdb-Build: OSS
X-Influxdb-Version: 1.5.3
X-Request-Id: f3ce7449-7227-11e8-8002-000000000000
Date: Sun, 17 Jun 2018 12:14:15 GMT
Transfer-Encoding: chunked

{"results":[{"statement_id":0}]}

或者直接配置文件指定auto-create-db=true,就无需额外创建

查看

  • 命令行查看
docker exec -it influx influx
> use springboot
> show MEASUREMENTS
name: measurements
name
----
jvm.buffer.count
jvm.buffer.memory.used
jvm.buffer.total.capacity
jvm.classes.loaded
jvm.classes.unloaded
jvm.gc.live.data.size
jvm.gc.max.data.size
jvm.gc.memory.allocated
jvm.gc.memory.promoted
jvm.gc.pause
jvm.memory.committed
jvm.memory.max
jvm.memory.used
jvm.threads.daemon
jvm.threads.live
jvm.threads.peak
logback.events
process.cpu.usage
process.files.max
process.files.open
process.start.time
process.uptime
system.cpu.count
system.cpu.usage
system.load.average.1m

查看具体指标

> show series from "http.server.requests"
key
---
http.server.requests,exception=None,method=GET,metric_type=histogram,status=200,uri=/actuator/health
> select * from "http.server.requests"
name: http.server.requests
time                count exception mean      method metric_type status sum       upper     uri
----                ----- --------- ----      ------ ----------- ------ ---       -----     ---
1529238292912000000 0     None      0         GET    histogram   200    0         72.601487 /actuator/health
1529238352888000000 2     None      39.154634 GET    histogram   200    78.309267 72.601487 /actuator/health
1529238412886000000 0     None      0         GET    histogram   200    0         72.601487 /actuator/health
1529238472885000000 0     None      0         GET    histogram   200    0         0         /actuator/health
1529238532882000000 0     None      0         GET    histogram   200    0         0         /actuator/health
1529238592879000000 0     None      0         GET    histogram   200    0         0         /actuator/health

注意这里表名要加引号

  • rest接口查看
curl -G 'http://192.168.99.100:8086/query?pretty=true' --data-urlencode "db=springboot" --data-urlencode "q=SELECT \"*\" FROM \"http.server.requests\""
{
    "results": [
        {
            "statement_id": 0
        }
    ]
}

小结

springboot2使用micrometer作为metrics组件,其提供了对influxdb的支持,只需要引入micrometer-registry-influx,然后进行配置即可。

doc

  • Exporting metrics to InfluxDB and Prometheus using Spring Boot Actuator

原文发布于微信公众号 - 码匠的流水账(geek_luandun)

原文发表时间:2018-06-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏散尽浮华

Oracle日常运维操作总结-数据库的启动和关闭

下面是工作中对Oracle日常管理操作的一些总结,都是一些基本的oracle操作和SQL语句写法,在此梳理成手册,希望能帮助到初学者(如有梳理不准确之处,希望指...

2895
来自专栏C/C++基础

MySQL设置远程访问

在MySQL Server端,执行mysql 命令进入mysql 命令模式。使用grant命令用来建立新用户,指定用户口令并增加用户权限。命令格式如下:

1271
来自专栏Python、Flask、Django

Ajax与php进行数据交互

1432
来自专栏全栈架构

elasticsearch5xx使用logstash同步mysql

下载地址:https://www.elastic.co/downloads/logstash

814
来自专栏乐沙弥的世界

MySQL多实例配置(一)

    MySQL数据库的集中化运维,可以通过在一台MySQL数据库服务器上,部署多个MySQL实例。该功能是通过mysqld_multi来实现。mysqld_...

1342
来自专栏解Bug之路

MySql协议讲解-事务协议篇

MySql事务协议主要是通过set autocommit、commit以及rollback这三个报文(命令)来实现的。

662
来自专栏程序员互动联盟

【编程基础】Windows下如何玩转串口编程

问题:有朋友在群里问Windows下如何给单片机发送或者接收数据。 ? 在windows下,各种外设都被看成文件,这个跟Linux下看成设备节点类似,所以串...

3445
来自专栏沈玉琛的专栏

使用Docker快速体验MySQL半同步复制机制

近期研究了下MySQL的半同步复制机制,想要体验一下。搭建环境是件麻烦事,然后就想到用Docker快速搭建环境。

72914
来自专栏Danny的专栏

SQL Server 2008 附加数据库时出错

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/...

1.8K3
来自专栏IT探索

linux下bin安装mysql的问题

“mysqld_safe mysqld from pid file /usr/local/mysql/data/localhost.localdomain.pi...

632

扫码关注云+社区