You can create one by searching for Infrastructure - Custom Resources - 'instrumentations'.
You can create it by clicking the Create button, selecting the namespace where you want to collect logs, and modifying the form below.
The above CRD is applied on a namespace basis, and automatic container logs can be collected for other languages in the same namespace.
apiVersion: opentelemetry.io/v1alpha1
kind: Instrumentation
metadata:
name: {Instrumentation name}
spec:
exporter:
endpoint: {log-agent Service address}:4318
python:
image: ghcr.io/open-telemetry/opentelemetry-operator/autoinstrumentation-python:0.44b0
env:
- name: OTEL_LOGS_EXPORTER
value: otlp_proto_http
- name: OTEL_EXPORTER_OTLP_LOGS_ENDPOINT
value: {log-agent Service address}:4318/v1/logs
- name: OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED
value: 'true'
# Used when you want to collect all Java applications for which the anotation value of the namespace is 'true'.
- name: OTEL_EXPORTER_OTLP_LOGS_HEADERS
value: app_token={Application Token},app_name={Application Name}
log-agent Service Address : Infrastructure - Cluster - Add-ons - Click 'log-agent' and check the service name.
( http port = 4318 , grpc port = 4317)
2) Add annotations to the applications you want to collect
Add annotations to the workloads in the namespace for which you want to collect logs.
Application - Service Map - Service Map to collect logs - Workload - Select the application to collect logs - Click the "Settings" button.
Change the Yaml view and add the following annotations to the template - metadata - annotations section.