4장. 수집기 구성


4.1. 수집기 구성

Red Hat build of OpenTelemetry Operator는 OpenTelemetry 리소스의 Red Hat 빌드를 생성하고 배포할 때 사용할 아키텍처 및 구성 설정을 정의하는 CRD(사용자 정의 리소스 정의) 파일을 사용합니다. 기본 구성을 설치하거나 파일을 수정할 수 있습니다.

4.1.1. 배포 모드

OpenTelemetryCollector 사용자 정의 리소스를 사용하면 OpenTelemetry 수집기에 대해 다음 배포 모드 중 하나를 지정할 수 있습니다.

Deployment
기본값입니다.
StatefulSet
예를 들어 수집기의 File Storage Extension 또는 Tail Sampling Processor를 사용할 때 상태 저장 워크로드를 실행해야 하는 경우 StatefulSet 배포 모드를 사용합니다.
DaemonSet
예를 들어 수집기의 Filelog Receiver를 사용하여 컨테이너 로그를 읽는 등 모든 노드에서 Telemetry 데이터를 스크랩해야 하는 경우 DaemonSet 배포 모드를 사용합니다.
사이드카

컨테이너 내부의 로그 파일에 액세스해야 하는 경우 수집기를 사이드카로 삽입하고 수집기의 Filelog Receiver 및 emptyDir 과 같은 공유 볼륨을 사용합니다.

localhost 를 통해 Telemetry 데이터를 보내도록 애플리케이션을 구성해야 하는 경우 수집기를 사이드카로 삽입하고 암호화되고 인증된 연결을 통해 원격 분석 데이터를 외부 서비스로 전달하도록 수집기를 설정합니다. 수집기는 사이드카와 삽입될 때 애플리케이션과 동일한 Pod에서 실행됩니다.

참고

사이드카 배포 모드를 선택한 경우 OpenTelemetryCollector 사용자 정의 리소스 CR에서 spec.mode: sidecar 필드를 설정하는 것 외에도 sidecar.opentelemetry.io/inject 주석을 Pod 주석 또는 네임스페이스 주석으로 설정해야 합니다. Pod 및 네임 스페이스 모두에 이 주석을 설정하면 pod 주석이 false 또는 OpenTelemetryCollector CR 이름으로 설정된 경우 우선합니다.

pod 주석으로 sidecar.opentelemetry.io/inject 주석은 여러 값을 지원합니다.

apiVersion: v1
kind: Pod
metadata:
  ...
  annotations:
    sidecar.opentelemetry.io/inject: "<supported_value>" 
1

...
Copy to Clipboard Toggle word wrap
1
지원되는 값:
false
수집기를 삽입하지 않습니다. 주석이 없는 경우 이는 기본값입니다.
true
동일한 네임스페이스에서 OpenTelemetryCollector CR의 구성으로 수집기를 삽입합니다.
<collector_name>
동일한 네임스페이스에서 < collector_name > OpenTelemetryCollector CR의 구성으로 수집기를 삽입합니다.
<namespace>/<collector_name>
< namespace> 네임스페이스에서 < collector_name > OpenTelemetryCollector CR의 구성으로 수집기를 삽입합니다.

4.1.2. OpenTelemetry 수집기 구성 옵션

OpenTelemetry 수집기는 Telemetry 데이터에 액세스하는 5가지 유형의 구성 요소로 구성됩니다.

  • 수신자
  • 프로세서
  • 내보내기
  • 커넥터
  • 확장

사용자 정의 리소스 YAML 파일에서 구성 요소의 여러 인스턴스를 정의할 수 있습니다. 구성하는 경우 YAML 파일의 spec.config.service 섹션에 정의된 파이프라인을 통해 이러한 구성 요소를 활성화해야 합니다. 필요한 구성 요소만 활성화하는 것이 좋습니다.

OpenTelemetry Collector 사용자 정의 리소스 파일의 예

apiVersion: opentelemetry.io/v1beta1
kind: OpenTelemetryCollector
metadata:
  name: cluster-collector
  namespace: tracing-system
spec:
  mode: deployment
  observability:
    metrics:
      enableMetrics: true
  config:
    receivers:
      otlp:
        protocols:
          grpc: {}
          http: {}
    processors: {}
    exporters:
      otlp:
        endpoint: otel-collector-headless.tracing-system.svc:4317
        tls:
          ca_file: "/var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt"
      prometheus:
        endpoint: 0.0.0.0:8889
        resource_to_telemetry_conversion:
          enabled: true # by default resource attributes are dropped
    service: 
1

      pipelines:
        traces:
          receivers: [otlp]
          processors: []
          exporters: [otlp]
        metrics:
          receivers: [otlp]
          processors: []
          exporters: [prometheus]
Copy to Clipboard Toggle word wrap

1
구성 요소가 구성되었지만 service 섹션에 정의되지 않은 경우 구성 요소가 활성화되지 않습니다.
Expand
표 4.1. Operator에서 OpenTelemetry Collector를 정의하는 데 사용하는 매개변수
매개변수설명기본
receivers:
Copy to Clipboard Toggle word wrap

수신자는 데이터가 수집기로 들어오는 방법입니다. 기본적으로 수신자는 설정되어 있지 않습니다. 구성이 유효한 것으로 간주되려면 하나 이상의 사용 가능한 수신자가 있어야 합니다. 파이프라인에 추가되면 수신자가 활성화됩니다.

otlp,jaeger,prometheus,zipkin,kafka,opencensus

없음

processors:
Copy to Clipboard Toggle word wrap

프로세서는 내보낸 데이터를 통해 실행됩니다. 기본적으로 프로세서는 사용할 수 없습니다.

batch,memory_limiter,resourcedetection,attributes,span,k8sattributes,filter,routing

없음

exporters:
Copy to Clipboard Toggle word wrap

내보내기는 하나 이상의 백엔드 또는 대상에 데이터를 보냅니다. 기본적으로 내보내기는 구성되지 않습니다. 구성이 유효한 것으로 간주되려면 하나 이상의 활성화된 내보내기가 있어야 합니다. 파이프라인에 내보내기를 추가하여 사용할 수 있습니다. 내보내기는 기본 설정과 함께 사용할 수 있지만 대상 및 보안 설정을 지정하려면 많은 구성이 필요합니다.

otlp,otlphttp,debug,prometheus,kafka

없음

connectors:
Copy to Clipboard Toggle word wrap

Connectors는 데이터를 end-of-pipeline 내보내기 도구로 사용하고 데이터를 초기-op-pipeline 수신자로 내보내 파이프라인 쌍을 결합합니다. 커넥터를 사용하여 소비된 데이터를 요약, 복제 또는 라우팅할 수 있습니다.

spanmetrics

없음

extensions:
Copy to Clipboard Toggle word wrap

Telemetry 데이터를 처리하지 않는 작업의 선택적 구성 요소입니다.

bearertokenauth,oauth2client,pprof,health_check,memory_ballast,zpages

없음

service:
  pipelines:
Copy to Clipboard Toggle word wrap

구성 요소는 services.pipeline 의 파이프라인에 추가하여 활성화됩니다.

  
service:
  pipelines:
    traces:
      receivers:
Copy to Clipboard Toggle word wrap

service.pipelines.traces 에서 추적을 위해 수신자를 활성화합니다.

 

없음

service:
  pipelines:
    traces:
      processors:
Copy to Clipboard Toggle word wrap

service.pipelines.traces 에서 추적을 위해 프로세서를 활성화합니다.

 

없음

service:
  pipelines:
    traces:
      exporters:
Copy to Clipboard Toggle word wrap

service.pipelines.traces 에서 추적을 위해 내보내기를 활성화합니다.

 

없음

service:
  pipelines:
    metrics:
      receivers:
Copy to Clipboard Toggle word wrap

service.pipelines.metrics 에 추가하여 메트릭의 수신자를 활성화합니다.

 

없음

service:
  pipelines:
    metrics:
      processors:
Copy to Clipboard Toggle word wrap

service.pipelines.metrics 에 추가하여 metircs의 프로세서를 활성화합니다.

 

없음

service:
  pipelines:
    metrics:
      exporters:
Copy to Clipboard Toggle word wrap

service.pipelines.metrics 에서 메트릭에 내보내기를 활성화합니다.

 

없음

4.1.3. 프로파일 신호

프로필 신호는 코드 실행 및 리소스 사용을 관찰하기 위한 새로운 원격 분석 데이터 형식입니다.

중요

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

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

프로필 신호를 사용하면 비효율적인 코드를 특정 함수에 정확하게 지정할 수 있습니다. 이러한 프로파일링을 사용하면 성능 병목 현상과 리소스의 비효율성을 특정 코드 라인으로 정확하게 식별할 수 있습니다. 이러한 고성능 프로파일 데이터를 추적, 메트릭 및 로그와 연계하여 프로덕션 환경에서 포괄적인 성능 분석 및 대상 코드 최적화를 가능하게 합니다.

프로파일링은 애플리케이션 또는 운영 체제를 대상으로 할 수 있습니다.

  • 프로파일링을 사용하여 애플리케이션을 관찰하면 개발자가 코드 성능을 검증하고 회귀를 방지하고 메모리 및 CPU 사용과 같은 리소스 사용을 모니터링하여 비효율적인 코드를 식별하고 개선할 수 있습니다.
  • 프로파일링을 사용하여 운영 체제를 관찰하면 인프라, 시스템 호출, 커널 작업, I/O 대기 시간에 대한 인사이트를 제공할 수 있으므로 인프라 최적화로 효율성 및 비용 절감이 가능합니다.

활성화된 프로필 신호가 있는 OpenTelemetry 수집기 사용자 정의 리소스

apiVersion: opentelemetry.io/v1beta1
kind: OpenTelemetryCollector
metadata:
name: otel-profiles-collector
  namespace: otel-profile
spec:
 args:
   feature-gates: service.profilesSupport 
1

  config:
    receivers:
      otlp: 
2

        protocols:
          grpc:
           endpoint: '0.0.0.0:4317'
          http:
           endpoint: '0.0.0.0:4318'
    exporters:
       otlp/pyroscope:
           endpoint: "pyroscope.pyroscope-monitoring.svc.cluster.local:4317" 
3

    service:
      pipelines: 
4

         profiles:
           receivers: [otlp]
           exporters: [otlp/pyroscope]
# ...
Copy to Clipboard Toggle word wrap

1
다음과 같이 feature-gates 필드를 설정하여 프로필을 활성화합니다.
2
OTLP를 통해 프로필 데이터를 수신하도록 OpenTelemetry 수집기를 설정하도록 OTLP 수신기를 구성합니다.
3
스토리지와 같이 프로필을 내보낼 위치를 구성합니다.
4
수신된 프로필 데이터를 Grafana Pyroscope와 같은 OTLP 호환 프로파일링 백엔드로 전달하는 구성을 포함하여 프로파일링 파이프라인을 정의합니다.

4.1.4. 필요한 RBAC 리소스 자동 생성

일부 수집기 구성 요소에는 RBAC 리소스를 구성해야 합니다.

프로세스

  • OpenTelemetry Operator의 Red Hat 빌드가 자동으로 생성할 수 있도록 opentelemetry-operator-controller-manage 서비스 계정에 다음 권한을 추가합니다.

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: generate-processors-rbac
    rules:
    - apiGroups:
      - rbac.authorization.k8s.io
      resources:
      - clusterrolebindings
      - clusterroles
      verbs:
      - create
      - delete
      - get
      - list
      - patch
      - update
      - watch
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: generate-processors-rbac
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: generate-processors-rbac
    subjects:
    - kind: ServiceAccount
      name: opentelemetry-operator-controller-manager
      namespace: openshift-opentelemetry-operator
    Copy to Clipboard Toggle word wrap

4.1.5. 대상 Al Cryostat

대상 Al history는 OpenTelemetry 수집기 인스턴스의 배포된 플릿에서 대상을 스크랩하는 OpenTelemetry Operator의 선택적 구성 요소입니다. 대상은 Prometheus PodMonitorServiceMonitor CR(사용자 정의 리소스)과 통합됩니다. Target Al Cryostat가 활성화되면 OpenTelemetry Operator는 Target Al Cryostat 서비스에 연결된 활성화된 prometheus 수신자에 http_sd_config 필드를 추가합니다.

중요

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

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

활성화된 Target Alllector CR을 사용하는 OpenTelemetryCollector CR의 예

apiVersion: opentelemetry.io/v1beta1
kind: OpenTelemetryCollector
metadata:
  name: otel
  namespace: observability
spec:
  mode: statefulset 
1

  targetAllocator:
    enabled: true 
2

    serviceAccount: 
3

    prometheusCR:
      enabled: true 
4

      scrapeInterval: 10s
      serviceMonitorSelector: 
5

        name: app1
      podMonitorSelector: 
6

        name: app2
  config:
    receivers:
      prometheus: 
7

        config:
          scrape_configs: []
    processors:
    exporters:
      debug: {}
    service:
      pipelines:
        metrics:
          receivers: [prometheus]
          processors: []
          exporters: [debug]
# ...
Copy to Clipboard Toggle word wrap

1
대상이 활성화된 경우 배포 모드를 상태 저장 세트로 설정해야 합니다.
2
Target Al Cryostat를 활성화합니다. 기본값은 false입니다.
3
Target Al Cryostat 배포의 서비스 계정 이름입니다. 서비스 계정에는 ServiceMonitor,PodMonitor 사용자 정의 리소스 및 클러스터의 기타 오브젝트를 가져오려면 RBAC가 있어야 스크랩된 메트릭에 라벨을 올바르게 설정해야 합니다. 기본 서비스 이름은 < collector_name>-targetal Cryostat입니다.
4
Prometheus PodMonitorServiceMonitor 사용자 정의 리소스와의 통합을 활성화합니다.
5
Prometheus ServiceMonitor 사용자 정의 리소스의 라벨 선택기입니다. 비어 있는 경우 모든 서비스 모니터를 활성화합니다.
6
Prometheus PodMonitor 사용자 정의 리소스의 라벨 선택기입니다. 비어 있는 경우 모든 Pod 모니터를 활성화합니다.
7
최소 빈 scrape_config: [] 구성 옵션이 있는 Prometheus 수신자.

Target Al Cryostat 배포에서는 Kubernetes API를 사용하여 클러스터에서 관련 개체를 가져오므로 사용자 지정 RBAC 구성이 필요합니다.

Target Al Cryostat 서비스 계정에 대한 RBAC 구성

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: otel-targetallocator
rules:
  - apiGroups: [""]
    resources:
      - services
      - pods
      - namespaces
    verbs: ["get", "list", "watch"]
  - apiGroups: ["monitoring.coreos.com"]
    resources:
      - servicemonitors
      - podmonitors
      - scrapeconfigs
      - probes
    verbs: ["get", "list", "watch"]
  - apiGroups: ["discovery.k8s.io"]
    resources:
      - endpointslices
    verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: otel-targetallocator
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: otel-targetallocator
subjects:
  - kind: ServiceAccount
    name: otel-targetallocator 
1

    namespace: observability 
2

# ...
Copy to Clipboard Toggle word wrap

1
Target Al Cryostat 서비스 계정의 이름입니다.
2
Target Al Cryostat 서비스 계정의 네임스페이스입니다.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat