1. Image creation via SDK
1) Build/Pipeline - Build details of the Python application for which you want to collect logs from the build.
2) Click on the image build task to edit
Copy ...
# 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
...
1) Logging - Copy the token of the application created in Application Management
2) In Container Details - Settings - Environment Variables tab, set environment variables as follows
Copy apiVersion : apps/v1
kind : Deployment
...
spec :
...
template :
spec :
containers :
- env :
# opentelemetry collector svc address (eg. http://log-agent-cocktail-log-agent.cocktail-addon:4318)
- name : OTEL_EXPORTER_OTLP_ENDPOINT
value : { log-agent Service address } :4318
# Log service address of opentelemetry collector (eg. http://log-agent-cocktail-log-agent.cocktail-addon:4318/v1/logs)
- name : OTEL_EXPORTER_OTLP_LOGS_ENDPOINT
value : { log-agent Service address } :4318/v1/logs
# Settings using opelemetry protocol
- name : OTEL_LOGS_EXPORTER
value : otlp_proto_http
# Application Name
- name : OTEL_SERVICE_NAME
value : { Application Name }
# Settings for authentication
- name : OTEL_EXPORTER_OTLP_LOGS_HEADERS
value : app_token={Application Token},app_name={Application Name}
image : { python-application image }
imagePullPolicy : Always
...
1) Logging - Application Log - Search for the application you set in the application list