Skip to content

Commit 8378704

Browse files
committed
fix: AiCaller Observation Add #105
1 parent 1409f9f commit 8378704

1 file changed

Lines changed: 10 additions & 3 deletions

File tree

src/main/java/sopt/comfit/report/infra/service/RetryableAiCallerService.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import com.fasterxml.jackson.core.JsonProcessingException;
44
import com.fasterxml.jackson.databind.JsonNode;
55
import com.fasterxml.jackson.databind.ObjectMapper;
6+
import io.micrometer.observation.Observation;
7+
import io.micrometer.observation.ObservationRegistry;
68
import lombok.RequiredArgsConstructor;
79
import lombok.extern.slf4j.Slf4j;
810
import org.springframework.stereotype.Component;
@@ -34,6 +36,7 @@ public class RetryableAiCallerService {
3436
private final JsonUtils jsonUtils;
3537
private static final int MAX_RETRY = 2;
3638
private final ContextAwareExecutor contextAwareExecutor;
39+
private final ObservationRegistry observationRegistry;
3740

3841
// Feign 동기 호출
3942
public String callSync(String prompt) {
@@ -107,9 +110,13 @@ public String callSyncWithField(String prompt, String taskName, String requiredF
107110
try {
108111
log.info("{} 호출 시작", taskName);
109112

110-
String content = openAiFeignClient
111-
.createReport(CreateReportAiRequestDto.from(prompt))
112-
.getContent();
113+
// 부모 Span(job.process) 아래에 AI 호출 구간을 child Span으로 기록
114+
String content = Observation.createNotStarted("ai.call", observationRegistry)
115+
.contextualName(taskName)
116+
.observe(() -> openAiFeignClient
117+
.createReport(CreateReportAiRequestDto.from(prompt))
118+
.getContent());
119+
113120
String cleaned = jsonUtils.clean(content);
114121
validateJsonSyncWithField(cleaned, requiredField);
115122

0 commit comments

Comments
 (0)