이 문서에서는 Google 기반의 OpenTelemetry Collector를 설명하고, Collector를 배포하여 계측된 애플리케이션에서 OpenTelemetry 프로토콜(OTLP) trace, 측정항목, 로그를 수집하고 해당 데이터를 Google Cloud Observability 및 기타 백엔드로 내보내는 방법을 설명합니다.
Google 기반의 OpenTelemetry Collector는 업스트림 OpenTelemetry Collector 구성요소로 빌드된 업스트림 OpenTelemetry Collector의 프로덕션에 즉시 사용 가능한 오픈소스 빌드입니다. Cloud Native Computing Foundation의 일부인 OpenTelemetry는 애플리케이션 모니터링을 위한 분산 trace, 측정항목, 로그를 수집할 수 있는 오픈소스 API, 라이브러리, SDK를 제공합니다.
Google 기반의 OpenTelemetry Collector를 사용하면 OpenTelemetry SDK를 사용하여 계측된 애플리케이션에서 상관관계가 있는 OTLP trace, 측정항목, 로그를 Google Cloud Observability 및 기타 백엔드로 전송할 수 있습니다. Collector는 Google Cloud 리소스의 메타데이터도 캡처하므로 애플리케이션 성능 데이터와 인프라 원격 분석 데이터의 상관관계를 파악할 수 있습니다. Google 기반의 Collector를 Google Cloud Observability와 함께 사용하면 애플리케이션과 인프라의 성능을 개선할 수 있는 인사이트를 얻을 수 있습니다. Collector에 대한 자세한 내용은 Google 기반의 OpenTelemetry Collector 설명을 참조하세요.
Google 기반의 OpenTelemetry Collector 사용
Google 기반의 Collector를 사용하여 Kubernetes(Google Kubernetes Engine 포함), Container-Optimized OS 또는 독립형 컨테이너에서 실행되는 애플리케이션에서 원격 분석 데이터를 수집할 수 있습니다. 이 섹션의 문서에서는 다음 환경에서 Google 기반의 Collector를 구성하고 배포하는 방법을 설명합니다.
Collector를 사용할 수 있는 애플리케이션이 없는 경우 Google 기반의 Collector를 사용하여 OpenTelemetry 데모를 배포할 수 있습니다. 자세한 내용은 OpenTelemetry 데모 사용해 보기를 참조하세요.
OpenTelemetry 계측을 사용하여 애플리케이션에서 trace, 측정항목, 로그를 생성하는 방법에 대한 자세한 내용은 다음 문서를 참조하세요.
Google 기반의 OpenTelemetry Collector 설명
Google 기반의 OpenTelemetry Collector는 업스트림 OpenTelemetry 구성요소 및 도구를 사용하여 빌드되지만, Google 빌드-테스트-출시 인프라 (Artifact Registry)에서 완전히 빌드되고 검색됩니다. Google 기반의 Collector는 업스트림 저장소의 OpenTelemetry Collector 빌드와 호환됩니다. 또한 Kubernetes 및 GKE를 비롯한 모든 컨테이너 기반 시스템에 유연하게 배포할 수 있도록 Docker 이미지로 호스팅됩니다.
Google 기반의 Collector는 Google Cloud에서 풍부한 모니터링 가능성 환경을 위해 대부분의 사용자가 필요로 하는 구성요소가 포함된 Google에서 선별한 패키지를 제공합니다. 구성요소를 선택하고 수동으로 자체 Collector를 빌드할 필요가 없습니다. Google 기반의 Collector를 사용하면 다음과 같은 작업을 할 수 있습니다.
- 애플리케이션 성능 데이터와 인프라 원격 분석 데이터의 상관관계를 파악할 수 있도록 Google Cloud 리소스의 메타데이터를 수집합니다.
- OpenTelemetry를 기본적으로 지원하는 백엔드를 비롯한 내보내기 도구를 사용하여 원격 분석 데이터를 Google Cloud Observability 또는 원하는 백엔드로 라우팅합니다.
- 상태 점검 및 일괄 처리를 비롯한 권장 구성과 권장사항 자체 모니터링을 통해 온보딩을 간소화합니다.
- Kubernetes 및 GKE를 비롯한 모든 컨테이너 기반 시스템에 유연하게 배포할 수 있도록 호스팅된 Docker 이미지를 사용합니다.
권장사항
OpenTelemetry는 OpenTelemetry Collector 구성 및 Collector 확장을 위한 권장사항 목록을 유지관리합니다. 이 섹션에서는 몇 가지 추가 권장사항을 제시합니다.
상태 점검 확장 프로그램 사용
상태 점검 확장 프로그램은 프로브를 통해 OpenTelemetry Collector의 상태를 확인하기 위해 프로브할 수 있는 HTTP URL을 사용 설정합니다. 이 확장 프로그램을 사용하면 다음과 같은 이점이 있습니다.
- 조기 문제 감지: 상태 점검은 Collector 상태의 사전 예방적 모니터링을 지원하므로 잠재적인 문제가 원격 분석 데이터에 부정적인 영향을 미치기 전에 이러한 문제를 감지할 수 있습니다. 이 예방 조치는 모니터링 가능성 파이프라인의 안정성을 보장하는 데 도움이 됩니다.
- 문제 해결 개선: 문제가 발생하면 상태 점검을 통해 Collector의 현재 상태에 대한 유용한 인사이트를 얻을 수 있습니다. 이 정보는 진단 및 해결 프로세스를 간소화하여 다운타임을 줄이고 문제 해결에 필요한 노력을 간소화합니다.
- 안정성 향상: Collector의 상태를 지속적으로 모니터링하여 일관된 작동을 보장하고 예기치 않은 장애를 방지합니다. 이러한 사전 예방적 조치로 모니터링 가능성 시스템의 전반적인 안정성이 향상되고 데이터 손실 위험이나 원격 분석 데이터의 격차가 최소화됩니다.
Kubernetes 및 GKE에서 상태 점검 확장 프로그램은 Kubernetes 활성 프로브 및 준비 프로브와 호환됩니다. 이러한 프로브 설정에 대한 자세한 내용은 Kubernetes 권장사항: 준비 및 활성 프로브로 상태 점검 설정을 참조하세요.
Cloud Run에서 단일 상태 점검 확장 프로그램은 Cloud Run 서비스 구성에서 시작 프로브 및 활성 프로브의 엔드포인트 역할을 할 수 있습니다.
일괄 처리 프로세서 사용
일괄 처리 프로세서는 trace, 측정항목 또는 로그를 수집하여 전송을 위해 배치로 결합합니다. 일괄 처리 프로세서를 사용하면 다음과 같은 이점이 있습니다.
- 발신 연결 최소화: OpenTelemetry Collector는 데이터 전송을 배치로 그룹화하여 발신 연결 수를 크게 줄입니다. 이 통합된 접근 방식은 할당량 사용량을 줄이고 전체 네트워크 비용을 절감할 잠재력이 있습니다.
- 데이터 압축 개선: 일괄 처리를 사용하면 더 효율적으로 데이터를 압축할 수 있어 전송되는 데이터의 전체 크기가 줄어듭니다.
- 일괄 처리 전략의 유연성: 크기 기반 일괄 처리와 시간 기반 일괄 처리를 모두 지원하므로 다양한 시나리오에 맞게 최적화할 수 있는 유연성을 제공합니다. 크기 기반 일괄 처리는 배치가 전송되기 전에 특정 크기에 도달하도록 보장하는 반면, 시간 기반 일괄 처리는 특정 시간 간격이 경과한 후에 배치를 전송합니다. 이러한 유연성을 통해 데이터의 특정 특성과 애플리케이션의 특정 요구사항에 맞게 일괄 처리 전략을 세부 조정할 수 있습니다.
googlesecretmanager
제공자 사용
googlesecretmanager
제공자를 사용하면 민감한 정보를 안전하게 저장, 액세스, 관리하도록 특별히 설계된 서비스인 Secret Manager에 구성 파일에 필요한 민감한 정보를 저장할 수 있습니다. googlesecretmanager
제공자를 사용하면 다음과 같은 이점이 있습니다.
- 보안 강화: 구성 파일에 비밀번호와 같은 민감한 정보가 포함되지 않습니다.
- 노출 위험 감소: Collector 초기화 중에 Secret Manager가 보안 비밀을 가져오므로 로그에 일반 텍스트 보안 비밀이 실수로 기록되는 것을 방지할 수 있습니다.
이 제공자 사용에 대한 자세한 내용은 Collector 구성에서 보안 비밀 관리를 참조하세요.
출시 노트
Google 기반의 OpenTelemetry Collector는 업스트림 OpenTelemetry Collector와 동기화되어 버전이 관리됩니다. 현재 버전은 v0.128.0입니다. Artifact Registry에 저장된 해당 Docker 이미지는 us-docker.pkg.dev/cloud-ops-agents-artifacts/google-cloud-opentelemetry-collector/otelcol-google:0.128.0입니다. 새 버전마다 Google Cloud 사용자와 가장 관련성이 높은 변경사항이 이 페이지에 포함되어 있습니다.
0.128.0:
- Google 기반의 OpenTelemetry Collector: OpenTelemetry Collector Core 및 OpenTelemetry Collector Contrib 버전 v0.128.0으로 업데이트
- OpenTelemetry Collector Core 저장소: 출시 노트(v0.127.0)
- OpenTelemetry Collector Contrib 저장소: 출시 노트(v0.127.0)
0.127.0:
- Google 기반의 OpenTelemetry Collector: OpenTelemetry Collector Core 및 OpenTelemetry Collector Contrib 버전 v0.127.0으로 업데이트
- OpenTelemetry Collector Core 저장소: 출시 노트(v0.127.0)
- OpenTelemetry Collector Contrib 저장소: 출시 노트(v0.127.0)
0.126.0:
- Google 기반의 OpenTelemetry Collector: OpenTelemetry Collector Core 및 OpenTelemetry Collector Contrib 버전 v0.126.0으로 업데이트
- 추가된 새 구성요소:
- 프로세서:
metricstarttime
- 제공자:
googlesecretmanager
. 이 제공자를 사용하여 Collector 구성에서 일반 텍스트 보안 비밀을 삭제하는 방법에 대한 자세한 내용은 Collector 구성에서 보안 비밀 관리를 참조하세요.
- 프로세서:
- OpenTelemetry Collector Core 저장소:
- OpenTelemetry Collector Contrib 저장소:
0.124.1:
- Google 기반의 OpenTelemetry Collector: OpenTelemetry Collector Core 버전 v0.124.0 및 OpenTelemetry Collector Contrib 버전 v0.124.1로 업데이트
- 추가된 새 구성요소:
- 수신자:
dockerstats
,jmx
,redis
,statsd
,syslog
- 프로세서:
metricsgeneration
- 수신자:
- OpenTelemetry Collector Core 저장소:
- OpenTelemetry Collector Contrib 저장소:
0.122.1:
- Google 기반의 OpenTelemetry Collector: OpenTelemetry Collector Core 버전 v0.122.1 및 OpenTelemetry Collector Contrib v0.122.0으로 업데이트
- 추가된 새 구성요소:
googleclientauthextension
- 알려진 문제 권고사항:
- Collector 자체 원격 분석의 OTLP 내보내기를 사용하는 경우 다음 OpenTelemetry Collector 문제를 참조하세요. https://github.com/open-telemetry/opentelemetry-collector/issues/12701
- OpenTelemetry Collector Core 저장소: 출시 노트
- OpenTelemetry Collector Contrib 저장소: 출시 노트
0.121.0:
지원 용이성
기능 요청, 버그 신고, 일반적인 질문 등 모든 Google 기반의 OpenTelemetry Collector 클라이언트 측 문제의 경우 적절한 GitHub 저장소에서 문제를 엽니다. 이러한 저장소는 Google에서 모니터링하며, 문제는 최선의 방식으로 분류 및 해결됩니다.
다음과 관련된 문제의 경우 Google 기반의 OpenTelemetry Collector 패키징 저장소:
- 패키징
- Google Cloud에 배포
- Google Cloud내 인증
- 새로운 OpenTelemetry 구성요소 추가 요청
다음과 관련된 문제의 경우 OpenTelemetry Collector Contrib 저장소:
- Google 전용 OpenTelemetry 구성요소 예시:
googlecloudexporter
googlemanagedprometheusexporter
googleclientauthextension
resourcedetectionprocessor
- 업스트림 커뮤니티에서 관리하는 서드 파티 OpenTelemetry 구성요소
서버 오류나 할당량과 같이 Google 기반의 OpenTelemetry Collector의 Google Cloud Observability 서비스 및 API 사용과 관련된 문제의 경우 Cloud Customer Care에 문의하세요.
가격 책정
Google 기반의 OpenTelemetry Collector를 배포하고 사용하는 데는 요금이 부과되지 않습니다.
Google Cloud에 원격 분석 데이터를 전송하면 수집량에 따라 요금이 청구됩니다. trace, 로그, Google Cloud Managed Service for Prometheus 측정항목 수집과 관련된 비용에 대한 자세한 내용은 Google Cloud Observability 가격 책정을 참조하세요.
OpenTelemetry 데모 사용해 보기
이 섹션에서는 Google 기반의 OpenTelemetry Collector를 사용하여 Google Cloud용 OpenTelemetry 데모를 배포하고 실행하는 방법을 설명합니다.
이 섹션은 선택사항입니다. Google 기반의 Collector를 자체 배포에 통합할 준비가 되었다면 다음 문서를 참조하세요.
- Google Kubernetes Engine에 Collector 배포
- Container-Optimized OS에 Collector 배포
- Cloud Run에 Collector 배포
시작하기 전에
OpenTelemetry 데모에는 워크로드 아이덴티티 제휴가 구성된 Kubernetes 클러스터가 필요합니다. OpenTelemetry 데모를 위한 워크로드 아이덴티티 제휴 설정에 대한 자세한 내용은 워크로드 아이덴티티 기본 요건을 참조하세요.
Google 기반의 Collector를 사용하도록 데모 업데이트
기본적으로 OpenTelemetry 데모에서는 업스트림 OpenTelemetry Collector를 사용합니다. 대신 Google 기반의 OpenTelemetry Collector를 사용하려면 다음을 수행합니다.
OpenTelemetry 데모 저장소를 클론합니다.
git clone https://github.com/GoogleCloudPlatform/opentelemetry-demo.git
kubernetes
디렉터리로 이동합니다.cd kubernetes
opentelemetry-demo.yaml
파일을 수정하여 사용할 Collector 이미지의 줄을 바꿉니다. 버전은 다를 수 있지만 줄은 다음과 같습니다.image: "otel/opentelemetry-collector-contrib:0.108.0"
줄이 다음과 같아지도록
image:
필드의 값을us-docker.pkg.dev/cloud-ops-agents-artifacts/google-cloud-opentelemetry-collector/otelcol-google:0.128.0
으로 바꾸고 파일을 저장합니다.image: "us-docker.pkg.dev/cloud-ops-agents-artifacts/google-cloud-opentelemetry-collector/otelcol-google:0.128.0"
데모 배포
업데이트된 opentelemetry-demo.yaml
파일을 적용하여 데모를 배포합니다.
kubectl apply --namespace otel-demo -f opentelemetry-demo.yaml
데모에 연결
업데이트된 구성을 적용한 후 데이터를 로컬 포트로 전달할 수 있습니다. 예를 들어 localhost:8080
에서 데모에 연결하려면 다음 명령어를 실행합니다.
kubectl port-forward --n otel-demo svc/opentelemetry-demo-frontendproxy 8080:8080
그런 다음 브라우저를 사용하여 localhost:8080
에서 데모에 연결할 수 있습니다.
원격 분석 보기
OpenTelemetry 데모는 Google 기반의 OpenTelemetry Collector를 사용하여 측정항목, trace, 로그를 Google Cloud 로 전송합니다. 데모에서 전송하는 특정 원격 분석에 대한 자세한 내용은 데모 문서의 원격 분석 확인을 참조하세요.
측정항목 보기
Google 기반의 OpenTelemetry Collector는 측정항목 탐색기를 사용하여 볼 수 있는 Prometheus 측정항목을 수집합니다. 수집되는 측정항목은 앱의 계측에 따라 달라지지만 Google 기반의 Collector는 자체 측정항목도 작성합니다.
Google 기반의 OpenTelemetry Collector에서 수집한 측정항목을 보려면 다음을 수행합니다.-
Google Cloud 콘솔에서 leaderboard 측정항목 탐색기 페이지로 이동합니다.
검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Monitoring인 결과를 선택합니다.
- Google Cloud 콘솔의 툴바에서 Google Cloud 프로젝트를 선택합니다. App Hub 구성의 경우 App Hub 호스트 프로젝트나 앱 지원 폴더의 관리 프로젝트를 선택합니다.
- 측정항목 요소에서 측정항목 선택 메뉴를 펼치고 필터 표시줄에
Prometheus Target
을 입력한 후 하위 메뉴를 사용하여 특정 리소스 유형과 측정항목을 선택합니다.- 활성 리소스 메뉴에서 Prometheus 대상을 선택합니다.
- 측정항목을 선택하려면 활성 측정항목 카테고리 및 활성 측정항목 메뉴를 사용합니다.
Google 기반의 OpenTelemetry Collector에서 수집한 측정항목에는
prometheus.googleapis.com
프리픽스가 있습니다. - 적용을 클릭합니다.
- 데이터를 보는 방법을 구성합니다.
측정항목의 측정값이 누적되면 측정항목 탐색기는 측정된 데이터를 정렬 기간에 따라 자동으로 정규화하므로 차트에 비율이 표시됩니다. 자세한 내용은 종류, 유형, 변환을 참조하세요.
counter
측정항목과 같이 정수 값 또는 Double 값이 측정되면 측정항목 탐색기가 모든 시계열을 자동으로 합산합니다. 이 동작을 변경하려면 집계 항목의 첫 번째 메뉴를 없음으로 설정합니다.차트 구성에 대한 자세한 내용은 측정항목 탐색기 사용 시 측정항목 선택을 참조하세요.
trace 보기
trace 데이터를 보려면 다음을 수행합니다.
-
Google Cloud 콘솔에서 Trace 탐색기 페이지로 이동합니다.
검색창을 사용하여 이 페이지를 찾을 수도 있습니다.
- Google Cloud 콘솔의 툴바에서 Google Cloud 프로젝트를 선택합니다. App Hub 구성의 경우 App Hub 호스트 프로젝트 또는 앱 지원 폴더의 관리 프로젝트를 선택합니다.
- 페이지의 테이블 섹션에서 행을 선택합니다.
trace 세부정보 패널의 Gantt 차트에서 스팬을 선택합니다.
trace 요청에 대한 정보가 표시된 패널이 열립니다. 이러한 세부정보에는 메서드, 상태 코드, 바이트 수, 호출자의 사용자 에이전트가 포함됩니다.
이 trace와 연결된 로그를 보려면 로그 및 이벤트 탭을 선택합니다.
탭에는 개별 로그가 표시됩니다. 로그 항목의 세부정보를 보려면 로그 항목을 펼칩니다. 로그 보기를 클릭하고 로그 탐색기를 사용하여 로그를 볼 수도 있습니다.
Cloud Trace 탐색기 사용에 대한 자세한 내용은 trace 찾기 및 탐색을 참조하세요.
로그 보기
로그 탐색기에서 로그를 검사할 수 있으며 연결된 trace가 있는 경우 이를 볼 수도 있습니다.
-
Google Cloud 콘솔에서 로그 탐색기 페이지로 이동합니다.
검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Logging인 결과를 선택합니다.
계측된 앱에서 로그 항목을 찾습니다. 세부정보를 보려면 로그 항목을 펼칩니다.
trace 메시지가 있는 로그 항목에서
Traces를 클릭한 후 trace 세부정보 보기를 선택합니다.
trace 세부정보 패널이 열리고 선택한 trace가 표시됩니다.
로그 탐색기 사용에 대한 자세한 내용은 로그 탐색기를 사용하여 로그 보기를 참조하세요.