본 가이드는 기존의 파이썬 애플리케이션이 칵테일 클라우드의 빌드 작업을 거친 애플리케이션을 위한 가이드입니다.
...
# flask 애플리케이션용 opentelemetry Sdk 다운로드
RUN pip install --upgrade pip && pip install opentelemetry-distro && opentelemetry-bootstrap -a install && pip install flask
# Log를 Export할 필수설정
ENV OTEL_EXPORTER_OTLP_ENDPOINT=$OTEL_EXPORTER_OTLP_ENDPOINT
ENV OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=$OTEL_EXPORTER_OTLP_LOGS_ENDPOINT
ENV OTEL_EXPORTER_OTLP_LOGS_HEADERS=$OTEL_EXPORTER_OTLP_LOGS_HEADERS
ENV OTEL_SERVICE_NAME=$OTEL_SERVICE_NAME
ENV OTEL_LOGS_EXPORTER=$OTEL_LOGS_EXPORTER
# Python 애플리케이션 로깅을 위한 필수 설정
ENV OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED=true
# metric과 trace를 수집하지 않기 위한 none 처리
ENV OTEL_METRICS_EXPORTER=none
ENV OTEL_TRACES_EXPORTER=none
...
apiVersion: apps/v1
kind: Deployment
...
spec:
...
template:
spec:
containers:
- env:
- name: OTEL_EXPORTER_OTLP_ENDPOINT
value: http://cocktail-telemetry-collector.cocktail-addon:4318
- name: OTEL_EXPORTER_OTLP_LOGS_ENDPOINT
value: http://cocktail-telemetry-collector.cocktail-addon:4318/v1/logs
# opelemetry protocal을 사용하는 설정
# otlp가 아닌 otlp_proto_http 확인
- name: OTEL_LOGS_EXPORTER
value: otlp_proto_http
# Application 이름
- name: OTEL_SERVICE_NAME
value: {애플리케이션 이름}
# 인증을 위한 설정
- name: OTEL_EXPORTER_OTLP_LOGS_HEADERS
value: app_token={애플리케이션 토큰},app_name={애플리케이션 이름}
image: {python-application image}
imagePullPolicy: Always
...