shulieTech / Takin

Takin is an Java-based, open-source system designed to measure online environmental performance test for full-links, Especially for microservices. Through Takin, middlewares and applications can identify real online traffic and test traffic, ensure that they enter the right databases.
Apache License 2.0
1.31k stars 330 forks source link

设置的压测时长是2个小时,压测实况与压测报告当中的容量水位数据会出现前几十分钟缺失 #103

Open huchunyong1987 opened 2 years ago

huchunyong1987 commented 2 years ago

压测概况当中的数据是正常: image 容量水位数据有缺失: image 看了一下influxdb的数据是正常。压测过程中,redis当中的数据也不是从压测开始到压测结束都有暂存。

xuehuilu commented 2 years ago

多压测几次也是一样嘛?前面几十分钟的数据是缺失的?

huchunyong1987 commented 2 years ago

多压测几次也是一样嘛?前面几十分钟的数据是缺失的?

是的,都会有不同程度的数据丢失,前面几十分钟数据,在数据库t_report_machine表里的machine_tps_target_config字段里就是没有前面几十分钟的数据。另外,influxdb的数据是有的,但是redis里的takin:web:report:metric:key:{reportId}里也没有前面几十分钟的数据。

Hezhongqi commented 2 years ago

能看下influxdb中jmeter库中压测数据吗? String measurement = InfluxDBUtil.getMeasurement(sceneId, reportId, customerId); pressure_场景id_报告id_1 select time,avg_tps as avgTps from pressure_场景id_报告id_1 where transaction='all'

Hezhongqi commented 2 years ago

代码在takin-cloud中 trace io.shulie.takin.cloud.biz.service.report.impl.ReportServiceImpl metric -n 5 --skipJDKMethod false

Hezhongqi commented 2 years ago

可以看下这个数据是否也丢失

huchunyong1987 commented 2 years ago

能看下influxdb中jmeter库中压测数据吗? String measurement = InfluxDBUtil.getMeasurement(sceneId, reportId, customerId); pressure_场景id_报告id_1 select time,avg_tps as avgTps from pressure_场景id_报告id_1 where transaction='all'

test-db_jmeter-720.csv 以上就是有问题报告的influxdb当中的数据。

有问题的报告: image 有问题的报告的容量数据: image

Hezhongqi commented 2 years ago

感谢!我们测试复现了,后续发版解决后,通知您!

Hezhongqi commented 2 years ago

watch io.shulie.takin.web.biz.service.report.impl.ReportDataCache listAllMetricsData '{params,returnObj,throwExp}' -n 5 -x 3

Hezhongqi commented 2 years ago

image

Hezhongqi commented 2 years ago

需要增加排序

huchunyong1987 commented 2 years ago

我试一下看看