Skip to content

Commit 1380ac3

Browse files
committed
refactor(metrics):优化指标获取逻辑以支持并行处理
- 移除了重复的 apiDefinitionService.findList 调用- 在 getAllMetrics 方法中引入 CompletableFuture 并行获取指标 - 为 FmMetricsResponse 添加了异步执行上下文支持- 更新了 allOf 中的 future 列表以包含 fmFuture- 使用 fmFuture.get() 替代直接调用 getFmMetrics() 提升性能
1 parent 118daa4 commit 1380ac3

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

src/main/java/tech/wetech/flexmodel/application/MetricsApplicationService.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,6 @@ public class MetricsApplicationService {
6565
public FmMetricsResponse getFmMetrics() {
6666
try {
6767
String tenantId = SessionContextHolder.getTenantId();
68-
69-
apiDefinitionService.findList(tenantId);
70-
7168
List<ApiDefinition> definitions = tenantId != null ? apiDefinitionService.findList(tenantId) : apiDefinitionService.findAll();
7269
List<Datasource> datasources = datasourceService.findAll();
7370
int modelCount = 0;
@@ -917,7 +914,13 @@ private void addCustomMetrics(StringBuilder metrics) {
917914
public AllMetricsResponse getAllMetrics() {
918915
long startTime = System.currentTimeMillis();
919916
try {
917+
String tenantId = SessionContextHolder.getTenantId();
920918
// 并行获取所有指标
919+
CompletableFuture<FmMetricsResponse> fmFuture = CompletableFuture.supplyAsync(()->{
920+
SessionContextHolder.setTenantId(tenantId);
921+
return getFmMetrics();
922+
});
923+
921924
CompletableFuture<JvmMetricsResponse> jvmFuture =
922925
CompletableFuture.supplyAsync(this::getJvmMetrics);
923926

@@ -944,15 +947,15 @@ public AllMetricsResponse getAllMetrics() {
944947

945948
// 等待所有任务完成,设置超时时间为30秒
946949
CompletableFuture<Void> allFutures = CompletableFuture.allOf(
947-
jvmFuture, cpuFuture, memoryFuture, threadsFuture,
950+
fmFuture, jvmFuture, cpuFuture, memoryFuture, threadsFuture,
948951
diskFuture, networkFuture, summaryFuture, prometheusFuture
949952
);
950953

951954
// 等待所有任务完成或超时
952955
allFutures.get(30, TimeUnit.SECONDS);
953956

954957
// 获取结果
955-
FmMetricsResponse fm = this.getFmMetrics();
958+
FmMetricsResponse fm = fmFuture.get();
956959
JvmMetricsResponse jvm = jvmFuture.get();
957960
CpuMetricsResponse cpu = cpuFuture.get();
958961
MemoryMetricsResponse memory = memoryFuture.get();

0 commit comments

Comments
 (0)