【运维监控】influxdb 2.0+grafana 监控java 虚拟机以及方法耗时情况(完整版)

news2024/11/17 10:06:09

关于java应用的监控本系列有文章如下:
【运维监控】influxdb 2.0+telegraf 监控tomcat 8.5运行情况
【运维监控】influxdb 2.0+grafana 监控java 虚拟机以及方法耗时情况
【运维监控】Prometheus+grafana监控tomcat运行情况
【运维监控】Prometheus+grafana监控spring boot 3运行情况

  • 本示例是通过java的代理运行java应用,同时将java虚拟机运行的数据以及应用对应的方法耗时信息数据存储到influxdb中。
  • 本示例使用到的Java应用需要读者自行创建,通过influxdb的客户端收集java应用的虚拟机、方法耗时则由github上提供的开源jar完成。
  • 本示例使用的grafana模板同样由grafana对应的开源模板提供。
  • 本示例分为四个部分,即部署influxdb、创建java应用及配置、部署grafana和集成。
  • 本示例的influxdb和grafana都部署在server2上,实际上你的环境可能不是这样部署的,同时java应用的部署服务器则可随意指定的,故没有说明。

该文章太长,故分成2个部分
【运维监控】influxdb 2.0+grafana 监控java 虚拟机以及方法耗时情况(1)
【运维监控】influxdb 2.0+grafana 监控java 虚拟机以及方法耗时情况(2)
【运维监控】influxdb 2.0+grafana 监控java 虚拟机以及方法耗时情况(完整版)

一、部署influxdb

1、下载

下载地址:https://docs.influxdata.com/influxdb/v2/install/?t=Linux#manually-download-and-install-the-influxd-binary
下载版本:influxdb2-2.7.10_linux_amd64.tar.gz

2、解压

[alanchan@server2 influxdb2-2.7.10]$ tar -zxvf ./influxdb2-2.7.10_linux_amd64.tar.gz
[alanchan@server2 influxdb2-2.7.10]$ cd /usr/local/bigdata/influxdb2-2.7.10
[alanchan@server2 influxdb2-2.7.10]$ ll
total 8
drwxr-xr-x 3 alanchan root 4096 Aug 16 20:25 etc
drwxr-xr-x 5 alanchan root 4096 Aug 16 20:25 usr
[alanchan@server2 local]$ cd /usr/local/bigdata/influxdb2-2.7.10/usr/bin
[alanchan@server2 bin]$ ll
total 117040
-rwxr-xr-x 1 alanchan root 119847176 Aug 16 20:26 influxd

3、启动

[alanchan@server2 bin]$ nohup ./influxd

4、验证

验证方式可以查看进程也可以通过浏览器进行,本示例介绍的是浏览器,也即通过web UI的方式。
在浏览器输入地址:http://server2:8086/
展示出如下图,则说明部署及启动成功。
在这里插入图片描述

5、配置influxdb

在上面启动成功后,则接下来需要进行influxdb的初始化配置,包含用户名、密码、org name、bucket。根据自己的需要填写相应的内容即可,该处的内容后在后面集成grafana的时候有用。
在这里插入图片描述
作者填写后的内容如下图所示。
在这里插入图片描述
填写完成后点击continue按钮,则进入下图所示页面。

  • 特别提醒,下图中所示的token非常有用,在与grafana集成的时候要用到。当然,后面也可以进行二次生成,但意义已经不同,建议此处将其保存下来。

在这里插入图片描述

auaiRUmK30GknpatPFig0TM2i7-8jvsQ_kqIBLF2nNOnmza-nFt2w9XIbOHbfAxaWA13kRefqfAxL2rmivRt7w==

然后点击快速开始,进入下面页面,可以看到数据探索,已经可以看到我们初始化的bucket了。
在这里插入图片描述

6、简单试用

选择init_bucket,选择相应的字段,然后提交查看数据即可。
在这里插入图片描述
选择Dashboard,查看influxdb默认的dashboard,图示如下。
在这里插入图片描述
至此,已经完成了influxdb的部署及简单验证。

二、创建java应用及配置

本处使用的是一个简单java应用(为了验证其监控情况,建议使用较为复杂一点的应用以便观察效果,作者使用的是一个网络爬虫应用),然后通过github上的一个开源监控程序进行收集java虚拟机以及方法耗时信息。

1、创建java应用

此处使用的是非spring boot,一般普通的java应用即可。此处略。
通过maven打包成jar包,本示例的名称是spider-baidu.jar 。

2、下载MyPerf4J

下载地址:https://github.com/LinShunKang/MyPerf4J
下载版本:MyPerf4J-ASM-3.4.0-SNAPSHOT.jar

3、修改监控配置

修改配置前,需要先在influxdb中创建名称为MyPerf4J的bucket。由于本示例展示的是将收集的信息直接存储influxdb,所以日志相关的内容可以不配置。

# MyPerf4J 所有配置请参考:https://github.com/LinShunKang/MyPerf4J/wiki/%E9%85%8D%E7%BD%AE

# 配置监控应用的名称
app_name = spider-baidu-jar-with-dependencies

debug = false

###############################################################################
#                           Metrics Configuration                             #
###############################################################################

# 配置 MetricsExporter 类型,任选其一
#	log.stdout: 	以标准格式化结构输出到 stdout.log
#	log.standard: 	以标准格式化结构输出到磁盘
#	log.influxdb: 	以 InfluxDB LineProtocol 格式输出到磁盘
#	http.influxdb: 	以 InfluxDB LineProtocol 格式发送至 InfluxDB server,需要另行增加 influxdb 的配置

metrics.exporter = http.influxdb

###############################################################################
#                           InfluxDB Configuration                            #
###############################################################################
# 需要提前在influxdb 2.0中创建好database(bucket),该应用程序会直接将metrics的数据写入influxdb2.0中,不需要额外的telegraf
# 启动应用,具体启动参考readme中的说明

influxdb.version = 2.7.10
influxdb.host  = server2
influxdb.port = 8086
influxdb.orgName = alanchan_win
influxdb.database = MyPerf4J
influxdb.username = alanchanchn
influxdb.password = xxxxx

# 1、如果需要在grafana中展示dashboard,需要提前在grafana中创建好influx的数据源。可以验证是否将数据写入了influxdb中
# 2、先在grafana中导入dashboard,其中对应的id分别是15672(method)和15671(jvm)
# 

# 配置各项监控指标日志的文件路径
# 如果 metrics.exporter 配置为 log.influxdb,建议把所有的 metrics.log.* 路径配置成一样以方便 Telegraf 收集
metrics.log.method = D:/app//logs/metrics.log
metrics.log.class_loading = D:/app//logs/metrics.log
metrics.log.gc = D:/app//logs/metrics.log
metrics.log.memory = D:/app//logs/metrics.log
metrics.log.buff_pool = D:/app//logs/metrics.log
metrics.log.thread = D:/app//logs/metrics.log
metrics.log.file_desc = D:/app//logs/metrics.log
metrics.log.compilation = D:/app//logs/metrics.log


###############################################################################
#                           Filter Configuration                              #
###############################################################################

# 配置需要监控的package,可配置多个,用英文';'分隔
#   com.demo.p1 代表包含以 com.demo.p1 为前缀的所有包和类
#   [] 表示集合的概念:例如,com.demo.[p1,p2,p3] 代表包含以 com.demo.p1、com.demo.p2 和 com.demo.p3 为前缀的所有包和类,等价于 com.demo.p1;com.demo.p2;com.demo.p3
#   * 表示通配符:可以指代零个或多个字符,例如,com.*.demo.*
filter.packages.include = org.spider;

# 配置不需要监控的package,可配置多个,用英文';'分隔
filter.packages.exclude = com;bsh;dev;io;javax;junit;junit3.8.1;net;netscape;

4、运行应用

运行环境不管是windows还是linux都可以,本示例的运行环境JDK是17,所以需要增加–add-opens java.base/java.lang=ALL-UNNAMED,完整的运行命令如下。

java -javaagent:MyPerf4J-ASM-3.4.0-SNAPSHOT.jar -DMyPerf4JPropFile=MyPerf4J.properties --add-opens java.base/java.lang=ALL-UNNAMED -jar spider-baidu.jar

5、验证

验证方式有2个方面,一个是验证应用的功能 是否正确;一个是验证是否将java虚拟机和方法耗时是否写入了influxdb中。此处仅仅验证是否将数据写入了influxdb中。
在这里插入图片描述
通过上图可以看到,influxdb已经可以正常的收集到应用的运行数据了。

三、部署grafana

1、部署

1)、下载

下载地址:https://grafana.com/grafana/dashboards/?search=influx&page=6
下载版本:https://dl.grafana.com/oss/release/grafana-11.1.4.linux-amd64.tar.gz

2)、解压

tar -zxvf grafana-11.1.4.linux-amd64.tar.gz
cd /usr/local/bigdata/grafana-v11.1.4/bin

3)、启动

启动命令可以是下面2种。

grafana-server start
或,推荐如下
grafana server start

[alanchan@server2 bin]$ grafana-server status
Deprecation warning: The standalone 'grafana-server' program is deprecated and will be removed in the future. Please update all uses of 'grafana-server' to 'grafana server'
INFO [08-28|00:55:36] Starting Grafana                         logger=settings version=11.1.4 commit=2355de00c61fdd6609a67f35ab506fae87f09a84 branch=HEAD compiled=2024-08-28T00:55:36Z
INFO [08-28|00:55:36] Config loaded from                       logger=settings file=/usr/local/bigdata/grafana-v11.1.4/conf/defaults.ini
INFO [08-28|00:55:36] Target                                   logger=settings target=[all]
INFO [08-28|00:55:36] Path Home                                logger=settings path=/usr/local/bigdata/grafana-v11.1.4
INFO [08-28|00:55:36] Path Data                                logger=settings path=/usr/local/bigdata/grafana-v11.1.4/data
INFO [08-28|00:55:36] Path Logs                                logger=settings path=/usr/local/bigdata/grafana-v11.1.4/data/log
INFO [08-28|00:55:36] Path Plugins                             logger=settings path=/usr/local/bigdata/grafana-v11.1.4/data/plugins
INFO [08-28|00:55:36] Path Provisioning                        logger=settings path=/usr/local/bigdata/grafana-v11.1.4/conf/provisioning
INFO [08-28|00:55:36] App mode production                      logger=settings

2、验证

验证方式可以查看进程也可以通过浏览器进行,本示例介绍的是浏览器,也即通过web UI的方式。
在浏览器输入地址:http://server2:3000/login
展示出如下图,则说明部署及启动成功。

默认密码admin/admin,修改后admin/xxxxxx
在这里插入图片描述
登录进去后,如下图所示。
在这里插入图片描述
以上,则完成了grafana的部署。

四、grafana集成influxdb监控java 虚拟机以及方法耗时情况

1、添加grafana数据源

选择influxdb数据源,如下图所示。
在这里插入图片描述
在下图所示的页面,点击添加数据源按钮。
在这里插入图片描述
点击后进入下面页面中,针对红框内填写必要的信息
在这里插入图片描述
其中查询语言本示例选择的Flux(其中的区别参考官网,不同的类别下面需要填写的信息不同)
填写完成后,示例如下。
在这里插入图片描述
完成上图所示的信息后,继续往下填写,进行授权,如下图所示。
在这里插入图片描述
保存成功的图示如下。
在这里插入图片描述
至此,grafana集成influxdb的工作完成,集成后,Organization名称为alanchan_win的所有bucket都可以在grafana的数据探索中查到数据。示例如下图。
在这里插入图片描述

2、添加grafana的dashboard

1)、选择新建dashboard方式

在grafana的web ui页面中选择dashborad的菜单栏,如下图所示。
在这里插入图片描述
上图按钮提供三个功能,即创建目录、新建dashboard和导入dashboard。新建目录就是将不同的dashboard归类,新建dashboard页面如下图所示。下图中的import dashboard与该按钮下的import是一个功能。
在这里插入图片描述
提供三种功能,即自己创建可视化dashboard、导入panel和导入dashboard。本示例介绍的是导入dashboard。

2)、导入dashboard

导入dashboard需要以下几步:

  • 1、在链接中选择需要的模板
  • 2、选择导入模板的方式,本示例选择复制模板ID方式
  • 3、加载模板ID后进行相应的配置
  • 4、配置完成后,进行模板最后的Load

下面就按照上述的步骤进行操作示例。

点击import a dashboard按钮,进入下面页面。
在这里插入图片描述
在上图中第一个红色框内的链接(https://grafana.com/grafana/dashboards/)提供开源模板,供使用者自行选择需要的内容,本示例选择的是“MyPerf4J-InfluxDBv2.x-JVM”和“MyPerf4J-InfluxDBv2.x-Method”,ID分别是15671和15672。可以选择复制ID或自己下载json,在上图中上传json。本示例是复制ID操作方式。
在这里插入图片描述
点击Load按钮后,则进入下面页面,然后选择上述创建的influxdb-demo数据源,最后导入即可。
在这里插入图片描述
按照上述步骤,将两个模板导入后即完成了集成。

3、验证

说明:读者新建的应用可能不会像作者有这么多数据,可能需要将应用运行一段时间后再观察。
在grafana的dashboard中查看添加的dashboard,选择刚刚添加的2个dashboard即可。
在这里插入图片描述
分别查看对应的dashboard,点击MyPerf4J-InfluxDBv2.x-JVM对应的dashboard,则展示如下页面(便于查看,被作者折叠了)。
在这里插入图片描述
不折叠的情况如下页面。
在这里插入图片描述
点击MyPerf4J-InfluxDBv2.x-Method对应的dashboard,则展示如下页面。
在这里插入图片描述
将鼠标焦点放在具体的图上,则会显示应用对应的方法耗时,如下图所示。
在这里插入图片描述
以上,则完成了集成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2119830.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软考科目傻傻分不清?一次搞懂各科目考核内容!小白不再纠结!

2024年下半年软考报名已经逐步进入尾声了,大部分考生都已完成报名,但有不少小白因为是第一次报考,对各科目傻傻分不清,导致报错了科目…… 这种情况很可能会影响考试,浪费了一次报考机会。而为了尽量避免这一情况再发生…

个人简历 (自己设计的)

欢迎大家来观看。 代码如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" co…

国产“小钢炮”MiniCPM3-4B:小参数,大能量!

前沿科技速递&#x1f680; 在 AI 大模型浪潮中&#xff0c;国内厂商面壁智能再次突破&#xff0c;推出了其最新的“小钢炮”系列——MiniCPM 3.0。这款全新模型不仅实现了在移动设备上运行 GPT-3.5 级别的能力&#xff0c;而且具备超强的推理、检索与代码解释功能。MiniCPM 3.…

Python必知必会:程序员必须知道的22个Python单行代码!

今天给大家分享24个每个Python程序员都必须知道的单行代码&#xff0c;帮你写出更简洁、更优雅、更高效的代码。 1. 列表推导式 列表推导式&#xff08;List Comprehensions&#xff09;可以提供一种简洁的方式创建列表。相较于传统的循环&#xff0c;列表推导式更高效、可读…

240909-ChuanhuChatGPT集成Ollama的环境配置

A. 最终效果 B. 需求文件 requirements.txt (至少需要安装这个&#xff0c;具体参见官网)requirements_advanced.txt &#xff08;如果安装了Ollama&#xff0c;并且可以进行对话&#xff0c;可以不需要安装&#xff0c;具体参见官网&#xff09;requirements_succcess.txt&am…

Qt5.4.1连接odbc驱动操作达梦数据库

Qt5.4.1连接odbc驱动操作达梦数据库 1 环境介绍2 Qt5.4.1 安装2.1 图形化界面安装Qt5.4.12.2 配置Qt5.4.1 环境变量2.3 Qt5.4.1 生成 libqsqlodbc.so 并配置2.3.1 生成Makefile2.3.2 查看 libqsqlodbc.so 文件并配置 3 配置Qt测试用例4 达梦数据库学习使用列表 1 环境介绍 CPU…

SAP加密解密功能设计

SAP加密解密功能设计 【场景】与外围系统对接时&#xff0c;出于信息安全等因素&#xff0c;经常需要对传输的信息做加密解密控制。 1. 公用类zcl_aes_utility *----------------------------------------------------------------------* * CLASS ZCL_AES_UTILITY DEFI…

Ubuntu 22.04 安装增强功能失败

安装的时候&#xff0c;总是失败&#xff0c;然后根据提示查看 log 猜测可能需要安装g12 ubuntu22.04.2 目前(until 23.6.25) gcc 的默认版本是 11.3.0, 有些 c 的特性无法享用.Launchpad toolchain test buildsLanchpad toolchain build 将 Lanchpad 上的 PPA 加入到 apt 搜…

用Python包加速你的视频剪辑:Tailor工具全解析

Tailor是一款视频智能裁剪、视频生成和视频优化的视频剪辑工具。目前的目标是通过人工智能技术减少视频剪辑的繁琐操作&#xff0c;让普通人也能简单实现专业剪辑人的水准&#xff01;长远目标是让视频剪辑实现真正的AIGC&#xff01; 当然&#xff0c;这是一份Python包的列表…

分组注解和自定义注解及分页查询

自定义注解的使用步骤 案例&#xff1a; 此时state需要进行的校验使用普通方式无法满足&#xff0c;需要我们根据需求进行自定义注解 创建一个注解 Documented//元注解 Retention(RetentionPolicy.RUNTIME)//元注解 Constraint(validatedBy {StateValidation.class}//指定提供…

DPDK基础入门(七):网卡性能优化

DPDK的轮询模式 运行在操作系统内核态的网卡驱动程序基本都是基于异步中断处理模式&#xff0c;而DPDK采用了轮询或者轮询混杂中断的模式来进行收包和发包。 任何包进入到网卡&#xff0c;网卡硬件会进行必要的检查、计算、解析和过滤等&#xff0c;最终包会进入物理端口的某…

最高1000万 各地模型和算法备案补贴政策一览

最高1000万 各地模型和算法备案补贴政策一览 2024年7月31日&#xff0c;成都市的人工智能产业再度引起关注。通过国家大模型备案的三家企业——海艺互娱、晓多科技和明途科技&#xff0c;获得了成都市经信局市新经济委的百万奖励。这一奖励源自成都发布的《成都市进一步促进人工…

手把手带你拿捏指针(1)

文章目录 一、内存和地址1.内存编号、地址和指针的关系2.对于编址的理解 二、指针变量和地址1.取地址操作符&2.指针变量3.解引用操作符(*)4.指针变量的大小 三、指针变量类型的意义1.指针解引用2.指针-整数3.void*指针 四、const修饰指针1.const修饰变量2.const修饰指针变量…

避障小车—51单片机

一、小车底盘组装 根据视频的安装步骤安装 二、 电机模块开发 2.1 L9110s概述 接通VCC&#xff0c;GND 模块电源指示灯亮&#xff0c; 以下资料来源官方&#xff0c;但是不对&#xff0c;根据下节课实际调试 IA1输入高电平&#xff0c;IA1输入低电平&#xff0c;【OA1 OB1…

【项目二】C++高性能服务器开发——日志系统(终章)

感谢sylar&#xff0c;感谢开源笔记的所有人~ 知识点备忘录switch结合宏定义简化获取时间戳获取行号获取线程ID 知识点备忘录 上一篇适配器后得到的输出是下面这样&#xff0c;在main函数中定义了需要的一切&#xff0c;和项目所需要的还相差很远&#xff0c;比如日志级别需要…

通过AI来创建一个_____html css网页制作成品 例子演示

使用AI 输入创建一个 html css网页制作成品 例 然后出来 好的&#xff0c;我将为您创建一个简单的HTML和CSS网页制作的示例。这个示例将包括基本的布局、文本样式和一些内联的CSS样式。 { "name": "dalle", "description": "A simple exa…

价值流思维:全面提升业务效率与企业竞争力的核心方法论

价值流驱动的企业架构转型 在数字化浪潮的推动下&#xff0c;企业面临前所未有的竞争压力和业务复杂性。如何在动态市场环境中保持竞争优势&#xff0c;已经成为企业管理者亟待解决的问题。《价值流指南》由The Open Group发布的企业数字化转型专业参考指南&#xff0c;系统化…

为啥有人累死累活,还是穷?

咱们今天不聊怎么发财&#xff0c;来聊聊“为啥有人穷”。一说穷&#xff0c;大家第一反应就是钱不够花&#xff0c;但少有人想到&#xff0c;穷还可能是精神上的、思想上的、道德上的。表面看缺钱&#xff0c;背后往往有更深的原因。 记得《我不是药神》里那假药贩子张长林吗&…

【Redis】Redis 典型应用 - 缓存 (Cache) 原理与策略

目录 Redis 典型应⽤ - 缓存 (cache)什么是缓存使⽤ Redis 作为缓存缓存的更新策略1)定期⽣成2)实时生成 缓存预热&#xff0c;缓存穿透&#xff0c;缓存雪崩 和 缓存击穿关于缓存预热 (Cache preheating)什么是缓存预热 关于缓存穿透 (Cache penetration)什么是缓存穿透为何产…

Kafka API操作

文章目录 1、 Kafka 基础API1_Topic基本操作 DML管理2_生产者3_消费者 sub/assign4_自定义分区策略5_序列化6_拦截器 2、Kafka API高级特性1_Offset自动控制2_Acks & Retries3_幂等性4_事务控制1、生产者事务Only2、消费者&生产者事务3、测试需要的三个消费者案例属性 …