From 6fde9fe04f86a3376fc657f10b8aa32e4bc97436 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期一, 27 四月 2026 17:50:15 +0800
Subject: [PATCH] feat: add auto tune console page
---
src/main/java/com/zy/ai/service/impl/AutoTuneCoordinatorServiceImpl.java | 30 ++++++++++++++++++++++++------
1 files changed, 24 insertions(+), 6 deletions(-)
diff --git a/src/main/java/com/zy/ai/service/impl/AutoTuneCoordinatorServiceImpl.java b/src/main/java/com/zy/ai/service/impl/AutoTuneCoordinatorServiceImpl.java
index 8b26ec5..e6420de 100644
--- a/src/main/java/com/zy/ai/service/impl/AutoTuneCoordinatorServiceImpl.java
+++ b/src/main/java/com/zy/ai/service/impl/AutoTuneCoordinatorServiceImpl.java
@@ -75,6 +75,15 @@
return AutoTuneCoordinatorResult.skipped("interval_not_reached");
}
+ return runAgentWithLock(AutoTuneTriggerType.AUTO.getCode(), intervalMinutes, true);
+ }
+
+ @Override
+ public AutoTuneCoordinatorResult runManualAutoTune() {
+ return runAgentWithLock(AutoTuneTriggerType.MANUAL.getCode(), null, false);
+ }
+
+ private AutoTuneCoordinatorResult runAgentWithLock(String triggerType, Integer intervalMinutes, boolean writeGuard) {
String lockKey = RedisKeyType.AI_AUTO_TUNE_RUNNING_LOCK.key;
String lockToken = UUID.randomUUID().toString();
if (!redisUtil.trySetStringIfAbsent(lockKey, lockToken, RUNNING_LOCK_SECONDS)) {
@@ -83,13 +92,15 @@
AutoTuneAgentService.AutoTuneAgentResult agentResult = null;
try {
- safeMarkLastTriggerGuard(intervalMinutes);
- agentResult = autoTuneAgentService.runAutoTune(AutoTuneTriggerType.AUTO.getCode());
+ if (writeGuard && intervalMinutes != null) {
+ safeMarkLastTriggerGuard(intervalMinutes);
+ }
+ agentResult = autoTuneAgentService.runAutoTune(triggerType);
safeWriteOperateLog(agentResult);
return AutoTuneCoordinatorResult.triggered(agentResult);
} catch (Exception exception) {
log.error("Auto tune coordinator failed to run agent", exception);
- agentResult = failedAgentResult(exception);
+ agentResult = failedAgentResult(triggerType, exception);
safeWriteOperateLog(agentResult);
return AutoTuneCoordinatorResult.triggered(agentResult);
} finally {
@@ -173,10 +184,10 @@
String.valueOf(System.currentTimeMillis()), expireSeconds);
}
- private AutoTuneAgentService.AutoTuneAgentResult failedAgentResult(Exception exception) {
+ private AutoTuneAgentService.AutoTuneAgentResult failedAgentResult(String triggerType, Exception exception) {
AutoTuneAgentService.AutoTuneAgentResult result = new AutoTuneAgentService.AutoTuneAgentResult();
result.setSuccess(false);
- result.setTriggerType(AutoTuneTriggerType.AUTO.getCode());
+ result.setTriggerType(triggerType);
result.setSummary("鑷姩璋冨弬鍚庡彴浠诲姟鎵ц寮傚父: " + exception.getMessage());
result.setToolCallCount(0);
result.setLlmCallCount(0);
@@ -200,7 +211,7 @@
return;
}
OperateLog operateLog = new OperateLog();
- operateLog.setAction("ai_auto_tune_background_scheduler");
+ operateLog.setAction(resolveOperateLogAction(agentResult));
operateLog.setUserId(SYSTEM_USER_ID);
operateLog.setIp("system");
operateLog.setRequest(JSON.toJSONString(buildRequestSummary(agentResult)));
@@ -209,6 +220,13 @@
operateLogService.save(operateLog);
}
+ private String resolveOperateLogAction(AutoTuneAgentService.AutoTuneAgentResult agentResult) {
+ if (agentResult != null && AutoTuneTriggerType.MANUAL.getCode().equals(agentResult.getTriggerType())) {
+ return "ai_auto_tune_manual_trigger";
+ }
+ return "ai_auto_tune_background_scheduler";
+ }
+
private Map<String, Object> buildRequestSummary(AutoTuneAgentService.AutoTuneAgentResult agentResult) {
Map<String, Object> request = new LinkedHashMap<>();
request.put("trigger", agentResult.getTriggerType());
--
Gitblit v1.9.1