Melody 监控(四十九)

当新的世界出现,请立即向他奔去

上一章简单介绍了Spring Boot Actuator详解(四十八), 如果没有看过,请观看上一章

一. JavaMelody

一.一 什么是 Java Melody

JavaMelody是一个方便的JavaJavaEE Web 应用程序监控工具

它允许自动存储由 Web 应用程序的实际操作产生的统计数据和错误,以供以后评估。

JavaMelody 很容易集成到应用程序本身中,因此无需安装或修改 Web 服务器配置。

需要注意的是,JavaMelody 工具并不是用来产生数据的,它的功能是对应用程序的实际运行进行测量和统计
它主要基于用户自己使用应用程序的请求统计和演化图的管理。如您所见,它主要用于质量或生产环境。

JavaMelody 在开源许可下分发,可以安全地在生产环境中的应用程序中使用。
JavaMelody 很容易集成到大多数应用程序中(不需要配置文件或数据库)并且相当轻量级。
JavaMelody 可以安全地激活,因为它在工具和我们的应用程序之间创建了一个几乎透明的层。
它不会在性能方面产生任何类型的下降。

一.二 JavaMelody 为我们提供了哪些信息?

正如我们在介绍中所讨论的,JavaMelody 是一种工具,

用于根据用户的使用情况测量和计算有关应用程序实际性能的统计信息。

它允许优化应用程序,有助于:

  1. 获取有关平均响应时间和执行次数的数据。
  2. 在趋势不好时做出决定,避免出现重大问题。
  3. 找出响应时间最有限的原因。
  4. 验证优化产生的实际改进。

统计图表:

包含的图表显示了以下指标随时间的演变:

  • http 查询、sql 查询、jsf 或 strut 操作、jsf 页面或业务外观方法产生的执行次数、平均执行时间和错误百分比。
  • java内存
  • 中央处理器 Java。
  • 用户会话数和 jdbc 连接数。

image-20230608170152614

指标统计:

预定义计数器(http 查询、sql 查询、jsf 或 strut 操作、jsf 页面或业务外观方法)的统计信息包含在以下信息中:

执行次数、平均执行时间、CPU 时间和错误百分比的摘要。
这些请求超过某个阈值的时间百分比。
对于每个 http 请求,它指示响应流的大小、平均 sql 执行次数和平均 sql 时间。

image-20230608170231358

系统信息:

image-20230608170330965

二. 与老系统整合,添加监控

二.一 pom.xml 添加依赖

  <!--添加 javamelody监控-->
        <dependency>
            <groupId>net.bull.javamelody</groupId>
            <artifactId>javamelody-spring-boot-starter</artifactId>
            <version>1.91.0</version>
        </dependency>

二.二 application.yml 配置

# javamelody 监控
javamelody:
  # 启用JavaMelody自动配置(可选,默认值:true)
  enabled: true
  # 要从监视中排除的数据源名称(可选,以逗号分隔)
  #  excluded-datasources: secretSource,topSecretSource
  # 启用对Spring服务和控制器的监视(可选,默认值:true)
  spring-monitoring-enabled: true
  # JavaMelody的初始化参数(可选)
  # See: https://github.com/javamelody/javamelody/wiki/UserGuide#6-optional-parameters
  init-parameters:
    # 记录http请求
    log: true
    # 从监视中排除图像,css,字体和js网址
    url-exclude-pattern: (/webjars/.*|/css/.*|/images/.*|/fonts/.*|/js/.*)
    # 汇总http请求中的数字
    #http-transform-pattern: \d+
    # 添加基本身份验证,没有生效
    # authorized-users: admin:{SHA-256}6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090
    # authorized-users: admin:abc123
    # 更改默认存储目录:
    #storage-directory: /tmp/javamelody
    # 更改默认的“ / monitoring”路径:
    #monitoring-path: /admin/performance

二.三 启动验证

端口是 8082 , 项目路径为 /

http://localhost:8082/monitoring 查看监控

请添加图片描述

二.四 相应配置

二.四.一 修改访问路径

init-parameters:
    # 记录http请求
    log: true
    # 从监视中排除图像,css,字体和js网址
    url-exclude-pattern: (/webjars/.*|/css/.*|/images/.*|/fonts/.*|/js/.*)
    # 汇总http请求中的数字
    #http-transform-pattern: \d+
    # 更改默认的“ / monitoring”路径:
    monitoring-path: /admin/performance

之前的链接会变成 404

image-20230608170933662

采用新地址进行访问:

http://localhost:8082/admin/performance

image-20230608171027407

二.五 在放置到 linux 遇到的问题

二.五.一 与 Spring Security 关联时

image-20230608171855086

image-20230608171919831

二.五.二 监控资源后端报错 500

image-20230608172012636

发现,没有字体

解决方案: 安装 FontConfig 组件

yum install fontconfig
fc-cache --force

重启 Java 应用, 这个时候就会展示出来了, 但会发现,图片是乱码的.

二.五.三 解决图片乱码问题

参考教程: https://blog.csdn.net/Darling_qi/article/details/120485688

主要原因是 Linux 系统不支持中文

  1. 安装 Linux 字体程序
yum -y install fontconfig
  1. 查看已经安装的字体 和支持中文的字体
查看已安装的字体:fc-list
查看已安装的中文字体:fc-list :lang=zh
  1. 安装中文字体

在 /usr/share/fonts 目录下处理, 如果没有的话,创建该目录

mkdir -p /usr/share/fonts
  1. 引入字体文件

在 windows 系统中, 找到 msyh.ttc和msyhbd.ttc 2个文件

image-20230608172638067

直接将字体文件上传到该目录下即可

  1. 安装字体索引
yum install mkfontscale
  1. 生成字体索引
mkfontscale
  1. 验证结果

image-20230608172753010

重启 Java 应用,发现中文字体是正常的,乱码问题解决。

image-20230608172922028


谢谢您的观看,如果喜欢,请关注我,再次感谢 !!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

两个蝴蝶飞

你的鼓励,是老蝴蝶更努力写作的

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值