5.2. OpenTelemetry 계측 구성 옵션


OpenTelemetry의 Red Hat 빌드는 OpenTelemetry 자동 계측 라이브러리를 워크로드에 주입하고 구성합니다. 현재 OpenTelemetry의 Red Hat 빌드는 Go, Java, Node.js, Python, .NET 및 Apache HTTP Server( httpd )에 대한 계측 라이브러리 삽입을 지원합니다.

중요

OpenTelemetry Operator의 Red Hat 빌드는 계측 라이브러리의 주입 메커니즘만 지원하고 계측 라이브러리나 업스트림 이미지는 지원하지 않습니다. 고객은 자체 계측 이미지를 구축하거나 커뮤니티 이미지를 사용할 수 있습니다.

5.2.1. 계측 옵션

계측 옵션은 계측 사용자 정의 리소스(CR)에 지정됩니다.

샘플 계측 CR

apiVersion: opentelemetry.io/v1alpha1
kind: Instrumentation
metadata:
  name: instrumentation
spec:
  env:
    - name: OTEL_EXPORTER_OTLP_TIMEOUT
      value: "20"
  exporter:
    endpoint: http://production-collector.observability.svc.cluster.local:4317
  propagators:
    - tracecontext
    - baggage
  sampler:
    type: parentbased_traceidratio
    argument: "1"
  python: 
1

    env: 
2

      - name: OTEL_EXPORTER_OTLP_ENDPOINT
        value: http://production-collector.observability.svc.cluster.local:4318
  dotnet: 
3

    env: 
4

      - name: OTEL_EXPORTER_OTLP_ENDPOINT
        value: http://production-collector.observability.svc.cluster.local:4318
  go: 
5

    env: 
6

      - name: OTEL_EXPORTER_OTLP_ENDPOINT
        value: http://production-collector.observability.svc.cluster.local:4318

1
Python 자동 계측은 기본적으로 HTTP(HTTP/proto 또는 HTTP/protobuf)를 통한 프로토콜 버퍼를 사용합니다.
2
엔드포인트가 :4317 로 설정된 경우 필수입니다.
3
.NET 자동 계측은 기본적으로 HTTP(HTTP/proto 또는 HTTP/protobuf)를 통한 프로토콜 버퍼를 사용합니다.
4
엔드포인트가 :4317 로 설정된 경우 필수입니다.
5
Go 자동 계측은 기본적으로 HTTP(HTTP/proto 또는 HTTP/protobuf)를 통한 프로토콜 버퍼를 사용합니다.
6
엔드포인트가 :4317 로 설정된 경우 필수입니다.

프로토콜 버퍼에 대한 자세한 내용은 개요 (프로토콜 버퍼 문서)를 참조하세요.

Expand
표 5.1. Operator가 계측을 정의하는 데 사용하는 매개변수
매개변수설명

env

모든 계측 유형에 대한 공통 환경 변수 정의.

 

exporter

내보내기 구성.

 

propagators

Propagators는 프로세스 간 컨텍스트 전파 구성을 정의합니다.

tracecontext, baggage, b3, b3multi, jaeger, ottrace, none

resource

리소스 속성 구성.

 

sampler

샘플링 구성.

 

apacheHttpd

Apache HTTP 서버 계측을 위한 구성입니다.

 

dotnet

.NET 계측을 위한 구성입니다.

 

Go

Go 계측을 위한 구성.

 

java

Java 계측을 위한 구성.

 

nodejs

Node.js 계측을 위한 구성.

 

python

Python 계측을 위한 구성.

프로그래밍 언어에 따라 환경 변수가 원격 측정 구성에 작동하지 않을 수 있습니다. 환경 변수 구성을 지원하지 않는 SDK의 경우, 비슷한 구성을 코드에 직접 추가해야 합니다. 자세한 내용은 Environment Variable Specification (OpenTelemetry문서)을 참조하세요.

Expand
표 5.2. 자동 계측을 위한 기본 프로토콜
자동 계측기본 프로토콜

Java 1.x

otlp/grpc

Java 2.x

otlp/http

Python

otlp/http

.NET

otlp/http

Go

otlp/http

Apache HTTP Server

otlp/grpc

5.2.2. OpenTelemetry SDK 변수 구성

OpenTelemetry Collector 사용자 지정 리소스에서 instrumentation.opentelemetry.io/inject-sdk 주석을 사용하면 OpenTelemetry Operator의 Red Hat 빌드가 Instrumentation CR에 따라 다음 OpenTelemetry SDK 환경 변수 중 일부를 사용자의 포드에 주입하도록 지시할 수 있습니다.

  • OTEL_SERVICE_NAME
  • OTEL_TRACES_SAMPLER
  • OTEL_TRACES_SAMPLER_ARG
  • OTEL_PROPAGATORS
  • OTEL_RESOURCE_ATTRIBUTES
  • OTEL_EXPORTER_OTLP_ENDPOINT
  • OTEL_EXPORTER_OTLP_CERTIFICATE
  • OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE
  • OTEL_EXPORTER_OTLP_CLIENT_KEY
Expand
표 5.3. instrumentation.opentelemetry.io/inject-sdk 주석에 대한 값
현재의설명

"true"

현재 네임스페이스의 기본 이름으로 Instrumentation 리소스를 주입합니다.

"false"

계측 리소스를 주입하지 않습니다.

"<instrumentation_name>"

현재 네임스페이스에서 삽입할 Instrumentation 리소스의 이름을 지정합니다.

"<namespace>/<instrumentation_name>"

다른 네임스페이스에서 주입할 Instrumentation 리소스의 이름을 지정합니다.

5.2.3. 내보내기 구성

계측 사용자 정의 리소스는 신호당 하나 이상의 내보내기 기능을 설정하는 것을 지원하지만, 자동 계측은 OTLP 내보내기 기능만 구성합니다. 따라서 수집기의 OTLP 수신기를 가리키도록 엔드포인트를 구성해야 합니다.

구성 맵을 사용한 샘플 내보내기 TLS CA 구성

apiVersion: opentelemetry.io/v1alpha1
kind: Instrumentation
# ...
spec
# ...
  exporter:
    endpoint: https://production-collector.observability.svc.cluster.local:4317  
1

    tls:
      configMapName: ca-bundle  
2

      ca_file: service-ca.crt 
3

# ...

1
HTTPS 체계와 TLS를 사용하여 OTLP 엔드포인트를 지정합니다.
2
구성 맵의 이름을 지정합니다. 구성 맵은 자동 계측을 주입하는 Pod의 네임스페이스에 이미 존재해야 합니다.
3
구성 맵에 있는 CA 인증서를 가리키거나, 인증서가 이미 워크로드 파일 시스템에 있는 경우 인증서의 절대 경로를 가리킵니다.

비밀을 사용한 샘플 내보내기 mTLS 구성

apiVersion: opentelemetry.io/v1alpha1
kind: Instrumentation
# ...
spec
# ...
  exporter:
    endpoint: https://production-collector.observability.svc.cluster.local:4317  
1

    tls:
      secretName: serving-certs 
2

      ca_file: service-ca.crt 
3

      cert_file: tls.crt 
4

      key_file: tls.key 
5

# ...

1
HTTPS 체계와 TLS를 사용하여 OTLP 엔드포인트를 지정합니다.
2
ca_file , cert_filekey_file 값에 대한 비밀 이름을 지정합니다. Secret은 자동 계측을 주입하는 Pod의 네임스페이스에 이미 존재해야 합니다.
3
Secret에 있는 CA 인증서를 가리키거나, 인증서가 이미 워크로드 파일 시스템에 있는 경우 인증서의 절대 경로를 가리킵니다.
4
Secret에 있는 클라이언트 인증서를 가리키거나, 인증서가 이미 워크로드 파일 시스템에 있는 경우 인증서의 절대 경로를 가리킵니다.
5
Secret에 있는 클라이언트 키를 가리키거나, 키가 이미 워크로드 파일 시스템에 있는 경우 키의 절대 경로를 가리킵니다.
참고

CA 인증서는 구성 맵이나 비밀로 제공할 수 있습니다. 두 가지 모두에 제공하는 경우 구성 맵이 Secret보다 우선순위가 높습니다.

구성 맵과 계측 CR을 사용한 CA 번들 주입을 위한 구성 예

apiVersion: v1
kind: ConfigMap
metadata:
  name: otelcol-cabundle
  namespace: tutorial-application
  annotations:
    service.beta.openshift.io/inject-cabundle: "true"
# ...
---
apiVersion: opentelemetry.io/v1alpha1
kind: Instrumentation
metadata:
  name: my-instrumentation
spec:
  exporter:
    endpoint: https://simplest-collector.tracing-system.svc.cluster.local:4317
    tls:
      configMapName: otelcol-cabundle
      ca: service-ca.crt
# ...

5.2.4. Apache HTTP 서버 자동 계측 구성

중요

Apache HTTP 서버 자동 계측은 기술 미리 보기 기능에 불과합니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat Technology Preview 기능의 지원 범위에 대한 자세한 내용은 다음 링크를 참조하세요.

Expand
표 5.4. .spec.apacheHttpd 필드에 대한 매개변수
이름설명기본

attrs

Apache HTTP 서버에 특정한 속성입니다.

 

configPath

Apache HTTP 서버 구성의 위치.

/usr/local/apache2/conf

env

Apache HTTP 서버에 특정한 환경 변수.

 

image

Apache SDK와 자동 계측 기능을 갖춘 컨테이너 이미지입니다.

 

resourceRequirements

컴퓨팅 리소스 요구 사항

 

version

Apache HTTP 서버 버전.

2.4

주입을 활성화하기 위한 PodSpec 주석

instrumentation.opentelemetry.io/inject-apache-httpd: "true"

5.2.5. .NET 자동 계측 구성

중요

Python 자동 계측은 기술 미리 보기 기능에 불과합니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat Technology Preview 기능의 지원 범위에 대한 자세한 내용은 다음 링크를 참조하세요.

중요

기본적으로 이 기능은 지원되지 않는 업스트림 계측 라이브러리를 주입합니다.

Expand
이름설명

env

.NET에 특정한 환경 변수.

image

.NET SDK와 자동 계측 기능을 갖춘 컨테이너 이미지입니다.

resourceRequirements

컴퓨팅 리소스 요구 사항

.NET 자동 계측의 경우, 내보내기 프로그램의 엔드포인트가 4317 로 설정된 경우 필수 OTEL_EXPORTER_OTLP_ENDPOINT 환경 변수를 설정해야 합니다. .NET 자동 계측은 기본적으로 http/proto를 사용하고 원격 측정 데이터는 4318 포트로 설정해야 합니다.

주입을 활성화하기 위한 PodSpec 주석

instrumentation.opentelemetry.io/inject-dotnet: "true"

5.2.6. Go 자동 계측 구성

중요

Python 자동 계측은 기술 미리 보기 기능에 불과합니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat Technology Preview 기능의 지원 범위에 대한 자세한 내용은 다음 링크를 참조하세요.

중요

기본적으로 이 기능은 지원되지 않는 업스트림 계측 라이브러리를 주입합니다.

Expand
이름설명

env

Go에 특화된 환경 변수.

image

Go SDK와 자동 계측을 갖춘 컨테이너 이미지입니다.

resourceRequirements

컴퓨팅 리소스 요구 사항

주입을 활성화하기 위한 PodSpec 주석

instrumentation.opentelemetry.io/inject-go: "true"
instrumentation.opentelemetry.io/otel-go-auto-target-exe: "/<path>/<to>/<container>/<executable>" 
1

1
필수 OTEL_GO_AUTO_TARGET_EXE 환경 변수의 값을 설정합니다.

OpenShift 클러스터에서 Go 자동 계측에 필요한 권한

apiVersion: security.openshift.io/v1
kind: SecurityContextConstraints
metadata:
  name: otel-go-instrumentation-scc
allowHostDirVolumePlugin: true
allowPrivilegeEscalation: true
allowPrivilegedContainer: true
allowedCapabilities:
- "SYS_PTRACE"
fsGroup:
  type: RunAsAny
runAsUser:
  type: RunAsAny
seLinuxContext:
  type: RunAsAny
seccompProfiles:
- '*'
supplementalGroups:
  type: RunAsAny

작은 정보

OpenShift 클러스터에서 Go 자동 계측에 대한 권한을 적용하기 위한 CLI 명령은 다음과 같습니다.

$ oc adm policy add-scc-to-user otel-go-instrumentation-scc -z <service_account>

5.2.7. Java 자동 계측 구성

중요

Python 자동 계측은 기술 미리 보기 기능에 불과합니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat Technology Preview 기능의 지원 범위에 대한 자세한 내용은 다음 링크를 참조하세요.

중요

기본적으로 이 기능은 지원되지 않는 업스트림 계측 라이브러리를 주입합니다.

Expand
이름설명

env

Java에 특화된 환경 변수.

image

Java SDK와 자동 계측 기능을 갖춘 컨테이너 이미지입니다.

resourceRequirements

컴퓨팅 리소스 요구 사항

주입을 활성화하기 위한 PodSpec 주석

instrumentation.opentelemetry.io/inject-java: "true"

5.2.8. Node.js 자동 계측 구성

중요

Node.js 자동 계측은 기술 미리 보기 기능에 불과합니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat Technology Preview 기능의 지원 범위에 대한 자세한 내용은 다음 링크를 참조하세요.

중요

기본적으로 이 기능은 지원되지 않는 업스트림 계측 라이브러리를 주입합니다.

Expand
이름설명

env

Node.js에 특정한 환경 변수.

image

Node.js SDK와 자동 계측 기능을 갖춘 컨테이너 이미지입니다.

resourceRequirements

컴퓨팅 리소스 요구 사항

주입을 활성화하기 위한 PodSpec 주석

instrumentation.opentelemetry.io/inject-nodejs: "true"

5.2.9. Python 자동 계측 구성

중요

Python 자동 계측은 기술 미리 보기 기능에 불과합니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat Technology Preview 기능의 지원 범위에 대한 자세한 내용은 다음 링크를 참조하세요.

중요

기본적으로 이 기능은 지원되지 않는 업스트림 계측 라이브러리를 주입합니다.

Expand
이름설명

env

Python에 특화된 환경 변수.

image

Python SDK와 자동 계측 기능을 갖춘 컨테이너 이미지입니다.

resourceRequirements

컴퓨팅 리소스 요구 사항

Python 자동 계측의 경우, 내보내기 프로그램의 엔드포인트가 4317 로 설정된 경우 OTEL_EXPORTER_OTLP_ENDPOINT 환경 변수를 설정해야 합니다. Python 자동 계측은 기본적으로 http/proto를 사용하고 원격 측정 데이터는 4318 포트로 설정해야 합니다.

주입을 활성화하기 위한 PodSpec 주석

instrumentation.opentelemetry.io/inject-python: "true"

5.2.10. 다중 컨테이너 포드

계측은 Pod 사양에 따라 기본적으로 사용 가능한 첫 번째 컨테이너에 주입됩니다. 주입을 위한 대상 컨테이너 이름을 지정할 수도 있습니다.

Pod 주석

instrumentation.opentelemetry.io/container-names: "<container_1>,<container_2>" 
1

1
여러 컨테이너에 단일 계측을 주입하려면 이 주석을 사용하세요.
참고

Go 자동 계측은 다중 컨테이너 자동 계측 주입을 지원하지 않습니다.

5.2.11. 여러 계측기를 갖춘 다중 컨테이너 포드

다중 컨테이너 포드의 하나 이상의 컨테이너에 애플리케이션 언어에 대한 계측을 주입하려면 다음 주석이 필요합니다.

instrumentation.opentelemetry.io/<application_language>-container-names: "<container_1>,<container_2>" 
1
1
컨테이너당 하나의 언어에 대해서만 계측을 주입할 수 있습니다. 지원되는 <application_language> 값 목록은 다음 표를 참조하세요.
Expand
표 5.5. <application_language>에 지원되는 값
언어<application_language> 에 대한 값

ApacheHTTPD

apache-httpd

DotNet

dotnet

Java

java

NGINX

inject-nginx

NodeJS

nodejs

Python

python

SDK

sdk

5.2.12. 서비스 메시와 함께 계측 CR 사용

Red Hat OpenShift Service Mesh에서 Instrumentation 사용자 정의 리소스(CR)를 사용하는 경우 b3multi 프로퍼게이터를 사용해야 합니다.

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동