Skip to content

Commit ecd99b9

Browse files
committed
feat: log Inquire_V2(userId, query) and openAI response(id)
1 parent d05dada commit ecd99b9

File tree

13 files changed

+62
-21
lines changed

13 files changed

+62
-21
lines changed

contextTracing

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@
8585
[V] fix MarketChild exists - 주의 관찰 및 개선 필요함
8686

8787

88-
[] OpenTelemetry 이용해서 Context 추적가능하게 로깅하기 (어디까지나 임시조치임. 전문 계측 도구를 통해 분석하는게 바람직할것임.)
88+
[V] OpenTelemetry 이용해서 Context 추적가능하게 로깅하기 (어디까지나 임시조치임. 전문 계측 도구를 통해 분석하는게 바람직할것임.)
8989
[V] OpenTelemetry 를 서버에 적용
9090
[V] Fix - MarketChild 로 Trace Context 전파 잘 되도록
9191
=> 차일드 컨텍스트 전파 잘된다 확인.
@@ -97,4 +97,9 @@
9797
[V] HttpLogger 에 trace_id 포함하기
9898
(MarketChild 는 uvicorn.access 로거를 메인 로거로 쓰고있는데 이거 엉망이구만! 일단 대충 미들웨어로 로거 하나 더 달아줌)
9999

100-
[] 언제 어떤 작업에서든 trace_id 를 포함해서 로깅할 수 있도록 하기
100+
[V] 언제 어떤 작업에서든 trace_id 를 포함해서 로깅할 수 있도록 하기
101+
[V] 필요한 부분 로깅하기, CustomConsoleSpanExporter 비활성하기
102+
103+
[] openAI 에도 SDK 사용해서 트레이싱 세팅할 수 있다. 세팅하고 Product > YahooFinanceTickerService 에서 req_id 로깅하는 부분 지우기.
104+
105+
[] 계측 도구 exporter 로 연결해서 사용해보기?

market/src/app/middleware/httpLogger.middleware.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,7 @@ import {
88
Response,
99
NextFunction
1010
} from 'express';
11-
import {
12-
trace,
13-
context
14-
} from '@opentelemetry/api';
11+
import { getTraceId } from 'src/openTelemetry';
1512

1613
@Injectable()
1714
export class HttpLoggerMiddleware
@@ -39,7 +36,7 @@ export class HttpLoggerMiddleware
3936
const
4037
{ method, originalUrl } = req,
4138
{ statusCode } = res,
42-
traceId = trace.getSpan(context.active())?.spanContext().traceId;
39+
traceId = getTraceId();
4340

4441
if (
4542
originalUrl === '/health' &&
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import {
2+
trace,
3+
context,
4+
SpanContext
5+
} from '@opentelemetry/api';
6+
7+
export const getSpanContext = (): SpanContext | undefined => trace.getSpan(context.active())?.spanContext();
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { getSpanContext } from "./getSpanContext"
2+
3+
export const getSpanId = (): string | undefined => getSpanContext()?.spanId;
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { getSpanContext } from "./getSpanContext";
2+
3+
export const getTraceId = (): string | undefined => getSpanContext()?.traceId;

market/src/openTelemetry/index.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
11
import { NodeSDK } from '@opentelemetry/sdk-node';
22
import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node';
33
import { W3CTraceContextPropagator } from '@opentelemetry/core';
4-
import { SimpleSpanProcessor } from '@opentelemetry/sdk-trace-base';
5-
import { DebuggerConsoleSpanExporter } from './debuggerConsoleSpanExporter';
4+
// import { SimpleSpanProcessor } from '@opentelemetry/sdk-trace-base';
5+
// import { DebuggerConsoleSpanExporter } from './debuggerConsoleSpanExporter';
66

77
const sdk = new NodeSDK({
8-
spanProcessor: new SimpleSpanProcessor(new DebuggerConsoleSpanExporter()),
8+
// spanProcessor: new SimpleSpanProcessor(new DebuggerConsoleSpanExporter()),
99
instrumentations: [ getNodeAutoInstrumentations() ],
1010
textMapPropagator: new W3CTraceContextPropagator(),
1111
});
1212

1313
sdk.start();
1414

15-
console.log('OpenTelemetry initialized');
15+
console.log('OpenTelemetry initialized');
16+
17+
export { getSpanId } from './getSpanId';
18+
export { getTraceId } from './getTraceId';

product/src/app/middleware/httpLogger.middleware.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,7 @@ import {
88
Response,
99
NextFunction
1010
} from 'express';
11-
import {
12-
trace,
13-
context
14-
} from '@opentelemetry/api';
11+
import { getTraceId } from 'src/openTelemetry';
1512

1613
@Injectable()
1714
export class HttpLoggerMiddleware
@@ -39,7 +36,7 @@ export class HttpLoggerMiddleware
3936
const
4037
{ method, originalUrl } = req,
4138
{ statusCode } = res,
42-
traceId = trace.getSpan(context.active())?.spanContext().traceId;
39+
traceId = getTraceId();
4340

4441
if (
4542
originalUrl === '/health' &&

product/src/kakaoChatbot/kakaoChatbot.service.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import {
2424
} from 'src/common/interface';
2525
import { chatbotListMenuButtons } from './const';
2626
import * as F from '@fxts/core';
27+
import { getTraceId } from 'src/openTelemetry';
2728

2829
@Injectable()
2930
export class KakaoChatbotService {
@@ -47,6 +48,9 @@ export class KakaoChatbotService {
4748
const userId = await this.authSrv.getUserId(skillPayload);
4849
const query = this.getQueryToInqire(skillPayload);
4950

51+
// temp
52+
this.logger.verbose(`${getTraceId()} | ${userId} | ${query}`);
53+
5054
switch (query) {
5155
case chatbotListMenuButtons.inquireSubscribedAsset.title:
5256
return this.inquireSubscribedAsset(skillPayload, userId);
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import {
2+
trace,
3+
context,
4+
SpanContext
5+
} from '@opentelemetry/api';
6+
7+
export const getSpanContext = (): SpanContext | undefined => trace.getSpan(context.active())?.spanContext();
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { getSpanContext } from "./getSpanContext"
2+
3+
export const getSpanId = (): string | undefined => getSpanContext()?.spanId;

0 commit comments

Comments
 (0)