LinShunKang / MyPerf4J

High performance Java APM. Powered by ASM. Try it. Test it. If you feel its better, use it.
BSD 3-Clause "New" or "Revised" License
3.41k stars 540 forks source link

_measurement下没有方法相关的数据,都是jvm_开头的数据,请问如何才能分析方法耗时 #79

Closed chengxuanxie closed 2 years ago

chengxuanxie commented 2 years ago

问题描述

配置后没有生成方法层面的性能数据,请问应该怎么配置? 截图

运行环境

JVM启动参数 java -javaagent:D:/perf/MyPerf4J-ASM-3.3.0-SNAPSHOT.jar -DMyPerf4JPropFile=D:/perf/MyPerf4J.properties -jar .\ict_2022.jar input.txt answer.txt

请把你的JVM启动参数完整的复制出来

配置文件

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

配置监控应用的名称

app_name = ict_2022

###############################################################################

Metrics Configuration

###############################################################################

配置 MetricsExporter 类型

log.stdout: 以标准格式化结构输出到 stdout.log

log.standard: 以标准格式化结构输出到磁盘

log.influxdb: 以 InfluxDB LineProtocol 格式输出到磁盘

http.influxdb: 以 InfluxDB LineProtocol 格式发送至 InfluxDB server,需要另行增加 influxdb 的配置

metrics.exporter = http.influxdb

配置各项监控指标日志的文件路径

如果 metrics.exporter 配置为 log.influxdb,建议把所有的 metrics.log.* 路径配置成一样以方便 Telegraf 收集

metrics.log.method = d:/perf/method.log metrics.log.class_loading = d:/perf/metrics.log metrics.log.gc = d:/perf/metrics.log metrics.log.memory = d:/perf/metrics.log metrics.log.buff_pool = d:/perf/metrics.log metrics.log.thread = d:/perf/metrics.log metrics.log.file_desc = d:/perf/metrics.log metrics.log.compilation = d:/perf/metrics.log influxdb.host = influxdb.port = 8086 influxdb.database=graph influxdb.version = 2.1.1 influxdb.orgName= influxdb.username = influxdb.password =

metrics.time_slice.method = 1000 metrics.method.show_params = true filter.methods.exclude_private = false recorder.mode = ACCURATE

###############################################################################

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 = *;

配置不需要监控的package,可配置多个,用英文';'分隔

filter.packages.exclude = cn.perf4j.demo.dao.DemoDAOImpl

metrics.method.class_level_mapping = HDRF:[*]

异常堆栈

LinShunKang commented 2 years ago

你好,有以下 2 个方向: 1、filter.packages.include 不要配置为 *,而是更细分的 package; 2、需要确定 filter.packages.include 配置覆盖到的 class 的方法有调用。

chengxuanxie commented 2 years ago

你好,有以下 2 个方向: 1、filter.packages.include 不要配置为 *,而是更细分的 package; 2、需要确定 filter.packages.include 配置覆盖到的 class 的方法有调用。

感谢,按你说的方法解决了