6장. OpenTelemetry Collector에 추적, 로그 및 메트릭 전송
OpenTelemetry의 Red Hat 빌드를 설정하고 사용하여 추적, 로그 및 메트릭을 OpenTelemetry Collector 또는 TempoStack 인스턴스로 보낼 수 있습니다.
사이드카 삽입을 사용하거나 사용하지 않고 추적 및 메트릭을 OpenTelemetry 수집기로 보낼 수 있습니다.
6.1. 사이드카 삽입을 사용하여 추적 및 메트릭을 OpenTelemetry 수집기로 전송 링크 복사링크가 클립보드에 복사되었습니다!
사이드카 삽입을 사용하여 OpenTelemetryCollector 인스턴스로 Telemetry 데이터를 보낼 수 있습니다.
OpenTelemetry Operator의 Red Hat 빌드는 배포 워크로드에 사이드카 주입을 허용하고 계측을 자동으로 구성하여 원격 측정 데이터를 OpenTelemetry Collector로 전송할 수 있도록 합니다.
사전 요구 사항
- Red Hat OpenShift 분산 추적 플랫폼(Tempo)이 설치되고 TempoStack 인스턴스가 배포됩니다.
웹 콘솔 또는 OpenShift CLI(
oc)를 통해 클러스터에 액세스할 수 있습니다.-
cluster-admin역할의 클러스터 관리자로 웹 콘솔에 로그인되어 있습니다. -
cluster-admin역할의 클러스터 관리자가 활성 OpenShift CLI(oc) 세션입니다. -
Red Hat OpenShift Dedicated의 경우
dedicated-admin역할의 계정이 있어야 합니다.
-
프로세스
OpenTelemetry Collector 인스턴스에 대한 프로젝트를 만듭니다.
apiVersion: project.openshift.io/v1 kind: Project metadata: name: observability서비스 계정을 생성합니다.
apiVersion: v1 kind: ServiceAccount metadata: name: otel-collector-sidecar namespace: observabilityk8sattributes및resourcedetection프로세서에 대한 서비스 계정에 권한을 부여합니다.apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: otel-collector rules: - apiGroups: ["", "config.openshift.io"] resources: ["pods", "namespaces", "infrastructures", "infrastructures/status"] verbs: ["get", "watch", "list"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: otel-collector subjects: - kind: ServiceAccount name: otel-collector-sidecar namespace: observability roleRef: kind: ClusterRole name: otel-collector apiGroup: rbac.authorization.k8s.ioOpenTelemetry Collector를 사이드카로 배포합니다.
apiVersion: opentelemetry.io/v1beta1 kind: OpenTelemetryCollector metadata: name: otel namespace: observability spec: serviceAccount: otel-collector-sidecar mode: sidecar config: serviceAccount: otel-collector-sidecar receivers: otlp: protocols: grpc: {} http: {} processors: batch: {} memory_limiter: check_interval: 1s limit_percentage: 50 spike_limit_percentage: 30 resourcedetection: detectors: [openshift] timeout: 2s exporters: otlp: endpoint: "tempo-<example>-gateway:8090"1 tls: insecure: true service: pipelines: traces: receivers: [otlp] processors: [memory_limiter, resourcedetection, batch] exporters: [otlp]- 1
- 이는 Tempo Operator를 사용하여
<example>배포된 TempoStack 인스턴스의 게이트웨이를 가리킵니다.
-
otel-collector-sidecar서비스 계정을 사용하여 배포를 생성합니다. -
Deployment오브젝트에sidecar.opentelemetry.io/inject: "true"주석을 추가합니다. 이렇게 하면 워크로드에서 OpenTelemetryCollector 인스턴스로 데이터를 보내는 데 필요한 모든 환경 변수가 삽입됩니다.