苍南县龙港哪里有做网站,望野博物馆观后感,微信公众号平台登录入口,营销网站设计实验Java web应用性能分析之【java进程问题分析概叙】-CSDN博客
Java web应用性能分析之【java进程问题分析工具】-CSDN博客
Java web应用性能分析之【jvisualvm远程连接云服务器】-CSDN博客
Java web应用性能分析之【java进程问题分析定位】-CSDN博客
Java web应用性能分析之【…
Java web应用性能分析之【java进程问题分析概叙】-CSDN博客
Java web应用性能分析之【java进程问题分析工具】-CSDN博客
Java web应用性能分析之【jvisualvm远程连接云服务器】-CSDN博客
Java web应用性能分析之【java进程问题分析定位】-CSDN博客
Java web应用性能分析之【系统监控工具prometheus】-CSDN博客 由于篇幅限制前面只是整理了prometheus的工作原理而Java服务级监控用于对每个应用占用的CPU、内存、线程池的线程数量、restful调用数量和响应时间、JVM状态、GC信息等进行监控并可将指标信息同步至Prometheus中集中展示和报警。 springbootprometheusGrafana三者关系如下 1.监控信息springboot 添加actuatormicrometer-registry-prometheus依赖提供当前springboot进程的运行数据信息以micrometer格式展示出来http://localhost:8080/actuator/prometheus。还可以在在Spring Boot自定义业务指标并对关键指标进行监控和告警。 2.提取监控信息简陋的展示prometheus中metrics_pathstatic_configs添加http://localhost:8080/actuator/prometheus的监控数据源配置prometheus就会按照一定的时间间隔scrape_intervalscrape_timeout拉取对应springboot进程的运行数据信息热更新prometheus配置 curl -X POST http://localhost:9090/-/reload此时就可以在prometheus的简陋界面查看到springboot的监控信息。 3.展示监控信息在Grafana导入关联Prometheus数据源即可在Grafana大屏上看到已收集到相关数据包括系统启动时间、运行时间、tomcat 连接池信息、JVM相关信息等。 1.下载安装prometheus
下载地址Download | Prometheus 版本选择LTS版2.45.5 https://github.com/prometheus/prometheus/releases/download/v2.45.5/prometheus-2.45.5.linux-amd64.tar.gz 业务是go开发的所以解压即可用 启动命令 ./prometheus --config.fileprometheus.yml 可以配置到操作系统中自动启动这里就不做说明。 访问9090端口上的prometheus 2.springboot添加actuatormicrometer-registry-prometheus依赖
注意事项 不同版本的springboot有对应不同版本的micrometer-registry-prometheus
我这里用的是Spring-Boot-2.2-Release对应的版本是1.3
Spring Boot 2.2 Release Notes · spring-projects/spring-boot Wiki · GitHub
在springboot中导入的依赖如下 !--prometheus监控 --!-- Spring Boot Actuator for Prometheus --
!-- dependency--
!-- groupIdorg.springframework.boot/groupId--
!-- artifactIdspring-boot-starter-actuator/artifactId--
!-- /dependency--!-- Spring Boot Prometheus Exporter https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.2-Release-Notes https://mvnrepository.com/artifact/io.micrometer/micrometer-registry-prometheus/1.3.20 --dependencygroupIdio.micrometer/groupIdartifactIdmicrometer-registry-prometheus/artifactIdversion1.3.1/version/dependencydependencygroupIdio.prometheus/groupIdartifactIdsimpleclient_servlet/artifactIdversion0.6.0/version/dependencydependencygroupIdio.prometheus/groupIdartifactIdsimpleclient/artifactIdversion0.6.0/version/dependencydependencygroupIdio.prometheus/groupIdartifactIdsimpleclient_common/artifactIdversion0.6.0/version/dependencydependencygroupIdio.prometheus/groupIdartifactIdsimpleclient_hotspot/artifactIdversion0.6.0/version/dependency
监控配置
package com.zxx.study.web.config;import io.micrometer.core.instrument.MeterRegistry;
import org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;/*** 监控配置* author zhouxx* Description:* date 2024/6/5 1:43*/
Configuration
public class MicrometerConfig {// Value(${spring.application.name})
// private String applicationName;BeanMeterRegistryCustomizerMeterRegistry configurer( Value(${spring.application.name}) String applicationName) {return (registry) - registry.config().commonTags(application, applicationName);}
}
配置文件
spring:application:name: mydemo
server:port: 6001address: 0.0.0.0#默认立即关闭、graceful优雅关闭待正在执行的用户完成操作后关闭shutdown: graceful
upload:file-path: C:\\upload\\image#端口暴漏 management.endpoints.web.exposure.includeprometheus
management:metrics:export:prometheus:enabled: true#actuator端口 如果不配置做默认使用上面8080端口server:port: 10011
# address: 127.0.0.1endpoints:enabled-by-default: trueweb:exposure:#默认值访问health,info端点 用*可以包含全部端点include: *#修改访问路径 2.0之前默认是/; 2.0默认是/actuator可以通过这个属性值修改base-path: /actuator
# cors:
# allowed-origins: http://localhost:8080
# allowed-methods: GET,POSTendpoint:beans:enabled: trueshutdown:enabled: true #打开shutdown端点health:show-details: always #获得健康检查中所有指标的详细信息# 日志记录logfile:external-file: ./logs/mydemo/mydemomor.logprometheus:enabled: true# 自定义应用信息http://localhost:8080/actuator/info
info:app:name: mydemodescription: study demoversion: 1.0.0
# # 数据信息从maven获取
#info.build.artifactproject.artifactId
#info.build.nameproject.name
#info.build.descriptionproject.description
#info.build.versionproject.version
logging:config: classpath:logback-spring.xmlpattern:console: %clr(%d{yyyy-MM-dd} [%thread] %-5level %logger{50} - %msg%n)file: %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} %msg%n
## level:
## # trace 打印sql
## com.zxx.study.web.mapper: trace
集成页面http://39.99.211.248:10011/actuator/prometheus 至此springboot中嵌入的prometheus已经完成接下来只需要在prometheus server中添加这个监控数据拉取配置即可。
添加配置如下 效果 即可在prometheus server的页面上看到“mydemo”的监控 简陋的监控页面“jvm_memory_used_bytes” 备注这里看到的时分秒不准确在后面的grafana中显示正常
3.Grafana导入Prometheus数据源展示监控信息
下载地址Grafana | 查询、可视化、警报观测平台
下载和安装 在这里我下载的是windows版因为服务器上资源不足就安装在笔记本上做演示。
查找 dashboards的id按照提示查找即可如下
Grafana dashboards | Grafana Labs
JVM (Micrometer) | Grafana Labs 添加Prometheus成功后效果如下可以详细查看到“jvm”监控 4701
毕竟是专业的监控工具比jvm自带的要全很多但是这个也有个不足Prometheus中配置的是每5秒拉取一次监控数据有一定的延后性。