RATATOSKRATATOSK
로그인

릴리즈

CNCF graduated·incubating 프로젝트 릴리즈 노트의 AI 분석.

프로젝트: OpenTelemetry해제 ×

OpenTelemetry

Observability어제2026년 7월 7일

OpenTelemetry Collector v0.156.0은 버그 수정 중심 릴리스로, 운영자에게 직접 영향을 주는 변경이 하나 있습니다. memory_limiter 프로세서가 연속 강제 GC 대신 지수 백오프로 전환되며, 상한을 두 개의 새 설정 필드로 제어할 수 있습니다. 그 외에 otlp_http 영구 오류 처리, 리시버 기동 순서, env 변수 nil 해석, 재시도 설정 유효성 검사도 수정됐습니다.

  • enhancementmemory_limiter GC 백오프, 새 설정 필드로 조정 가능

    memory_limiter 프로세서가 GC를 실행해도 효과가 없을 때(소프트 리밋 초과 상태 유지 + 회수율 5% 미만) 지수 백오프로 GC 호출을 줄입니다. 백오프 상한은 max_gc_interval_when_soft_limited와 max_gc_interval_when_hard_limited로 조정하며, 기본값은 각각 30s입니다. GC 빈도를 직접 조정해온 환경이라면 이 두 필드를 검토하세요.

주요 변경 (7)
  • memory_limiter 프로세서: 비효율적인 GC에 지수 백오프 적용. 상한은 max_gc_interval_when_soft_limited·max_gc_interval_when_hard_limited(기본값 각 30s)로 제어
  • otlp_http 익스포터: 잘린 2xx 응답 바디 파싱 오류를 영구 오류로 처리해 재시도 시 중복 전송 방지
  • pkg/service: 모든 컴포넌트 시작 완료 후 리시버를 기동하도록 수정(OTLP 등 구현 공유 리시버의 레이스 조건 해소)
  • env 프로바이더: ${env:VAR:-} 구문에서 미설정 변수가 nil 대신 빈 문자열로 해석되도록 수정
  • configretry BackOffConfig 필드, Enabled 플래그와 무관하게 항상 유효성 검사
  • memory_limiter 프로세서가 componentstatus 헬스 이벤트를 발행하도록 개선
  • mdatagen 개선: 리소스 속성에 안정성 레벨·시맨틱 컨벤션 참조 추가, go_struct에 field_name 옵션, enum 유효성 검사기 지원, 기본 타입 내보내기 스키마에 명명된 Go 타입 생성
원문

OpenTelemetry

Observability2026년 6월 24일

v0.155.0은 운영자 입장에서 대응이 필요한 릴리스입니다. 안정화됐던 feature gate 7개가 제거되고, memory_limiter 메트릭 이름이 바뀌었으며, 설정/서비스 API 2개가 스냅샷 기반으로 대체 예정입니다. 나머지는 mdatagen과 새로 옮겨온 schemagen CLI 관련 도구 작업입니다.

  • breaking안정화된 feature gate 7개 제거

    confighttp.framedSnappy, configoptional.AddEnabledField, confmap.newExpandedValueSanitizer, exporter.PersistRequestContext, otelcol.printInitialConfig, telemetry.UseLocalHostAsDefaultMetricsAddress, pdata.enableRefCounting 중 하나라도 --feature-gates 플래그나 설정에 남아있다면 해당됩니다. v0.155.0에서 이 게이트들이 완전히 제거되어 참조가 남아있으면 시작 자체가 실패합니다. 업그레이드 전에 CLI 인자와 설정에서 모두 제거하세요.

  • breakingmemory_limiter 메트릭 이름에 접두사 추가

    memory_limiter 프로세서의 otelcol_processor_* 메트릭을 대시보드나 알림 규칙에서 사용 중이라면 해당됩니다. 다른 프로세서와 구분하기 위해 otelcol_processor_memory_limiter_* 로 이름이 바뀌었습니다. 대시보드와 알림 규칙, 메트릭 쿼리를 새 이름으로 수정해야 합니다.

  • breakingmdatagen의 reaggregation_enabled 설정 제거

    mdatagen metadata.yaml에서 reaggregation_enabled를 쓰던 커스텀 컴포넌트가 해당됩니다. 이 설정이 제거되고 이제 항상 메트릭별 재집계 설정이 생성됩니다. 기존 파일에 필드가 남아있어도 값은 무시되므로, 생성된 결과가 기대와 일치하는지 확인하세요.

  • breakingConfig watcher API deprecated, 스냅샷 기반으로 전환 권고

    service.Settings.CollectorConf나 extensioncapabilities.ConfigWatcher를 쓰는 익스텐션이나 코어 코드가 해당됩니다. 각각 service.Settings.ConfigSnapshot과 extensioncapabilities.ConfigSnapshotWatcher로 대체되며 deprecated 처리됐습니다. 즉시 강제되진 않지만 스냅샷 기반 API로 이전을 준비하세요.

주요 변경 (8)
  • 안정화됐던 feature gate 7개가 완전히 제거됨: confighttp.framedSnappy, configoptional.AddEnabledField, confmap.newExpandedValueSanitizer, exporter.PersistRequestContext, otelcol.printInitialConfig, telemetry.UseLocalHostAsDefaultMetricsAddress, pdata.enableRefCounting. 이제 이 게이트들을 참조하면 실패합니다.
  • memory_limiter 프로세서 메트릭 이름이 otelcol_processor_memory_limiter_* 접두사로 바뀌어 기존 대시보드와 알림이 깨집니다.
  • mdatagen의 reaggregation_enabled 메타데이터 설정이 제거되고, 이제 메트릭별 재집계 설정이 무조건 생성됩니다(기존 파일은 허용되지만 값은 무시됨).
  • service.Settings.CollectorConf와 extensioncapabilities.ConfigWatcher가 deprecated되고 ConfigSnapshot, ConfigSnapshotWatcher로 대체됨.
  • schemagen CLI가 opentelemetry-collector-contrib에서 이 저장소의 cmd/schemagen으로 이전됐고, 수작업 스키마 조각을 병합하는 overlayFile, 커스텀 Go 패키지 패턴을 지정하는 -p 플래그, component|package 강제 지정용 -m 플래그가 추가되고 외부 패키지 대상 모드 감지 버그도 수정됨.
  • mdatagen이 버전별 메트릭을 지원해 새 시맨틱 컨벤션으로 메트릭 이름/타입/속성 이전을 도와주며, 마지막 feature gate 제거 시 남던 잔여 파일 문제와 생성된 식별자의 약어 대문자화 오류도 고쳐짐.
  • pdata JSONUnmarshaler에 DisallowUnknownFields 옵션(기본값 false)이 추가되어, 켜면 알려지지 않은 OTLP JSON 필드를 에러로 처리할 수 있음(단, 활성화 시 하위 호환성은 떨어짐).
  • 미들웨어 설정(pkg/config/configmiddleware)이 스키마 기반 정의로 이전됨.
원문

OpenTelemetry

Observability2026년 6월 9일

OTel Collector v0.154.0은 exporterhelper 시작 시 nil 포인터 패닉을 수정하고, --skip-get-modules 동작 방식을 변경합니다. TLS·CORS 설정 옵션도 소폭 추가됐습니다.

  • securityinclude_insecure_cipher_suites는 기본 비활성 — 건드리지 마세요

    새로 추가된 configtls 옵션으로 취약한 암호 스위트를 다시 활성화할 수 있지만, 기본값은 비활성입니다. 레거시 피어 연동이 불가피한 경우가 아니라면 운영 환경에서 true로 설정하지 마세요. 불가피하게 켜야 한다면 임시 조치로 간주하고 추적 관리하세요.

  • breaking--skip-get-modules를 쓰는 빌드 파이프라인 점검 필요

    OCB 기반 빌드 스크립트에서 --skip-get-modules 실행 시 go.mod가 암묵적으로 재생성되는 동작에 의존했다면, 이제 그 동작은 사라졌습니다. CI 파이프라인을 확인하고, 필요하다면 go mod tidy 단계를 명시적으로 추가하세요.

  • enhancementsending_queue에 sizer를 설정한다면 즉시 업그레이드

    sending_queue.sizer를 사용하면서 batch.enabled: false로 설정한 경우, 컬렉터가 시작 시 패닉으로 죽는 문제가 이번 릴리스에서 수정됐습니다. 해당 구성을 사용 중이라면 v0.154.0으로 업그레이드하세요.

주요 변경 (5)
  • cmd/builder: --skip-get-modules가 이제 go.mod를 재생성하지 않음 — 문서대로 모듈 작업을 완전히 건너뜀
  • pkg/exporterhelper: sending_queue.sizer 설정 시 batch.enabled: false이면 컬렉터 시작 중 nil 포인터 패닉이 발생하던 버그 수정
  • pkg/config/configtls: include_insecure_cipher_suites 옵션 추가, 기본값은 비활성화
  • pkg/confighttp: CORSConfig에 ExposedHeaders 필드 추가 — Access-Control-Expose-Headers 응답 헤더 제어 가능
  • cmd/mdatagen: 생성된 config 구조체에서 minimum, maximum, exclusiveMinimum, exclusiveMaximum 등 숫자 유효성 검사기 지원
원문

OpenTelemetry

Observability2026년 5월 25일

v0.153.0은 피처 게이트 7개를 안정화(브레이킹)하고, gRPC Snappy 압축의 심각한 메모리 손상 버그를 수정하며, mdatagen에 여러 개선 사항을 추가했습니다.

  • securitygRPC + Snappy 사용 중이라면 즉시 업그레이드

    configgrpc의 Snappy 버그는 단순 성능 문제가 아니라 프로세스를 강제 종료시키는 메모리 손상 수준의 결함입니다. exporter나 receiver 설정에 compression: snappy가 있다면 이번 릴리스를 최우선으로 적용하세요.

  • breaking업그레이드 전 피처 게이트 오버라이드 설정 전수 점검 필요

    안정화된 7개 게이트는 이제 영구 동작으로 고정되어 토글이 불가합니다. collector 설정이나 시작 플래그에 configoptional.AddEnabledField, confmap.newExpandedValueSanitizer, exporter.PersistRequestContext, otelcol.printInitialConfig, pdata.useCustomProtoEncoding, telemetry.UseLocalHostAsDefaultMetricsAddress, pdata.enableRefCounting 중 하나라도 남아 있으면 collector 기동에 실패합니다. 특히 UseLocalHostAsDefaultMetricsAddress 변경이 팀에 가장 많은 영향을 줄 수 있는데, 메트릭 엔드포인트가 기본적으로 localhost에만 바인딩되므로 외부에서 스크래핑하는 구성을 재검토해야 합니다.

  • breakingmdatagen 리어그리게이션 설정 생성이 기본 활성화로 변경

    커스텀 collector 컴포넌트를 mdatagen으로 관리 중이라면 리어그리게이션 설정 필드가 이제 기본으로 생성됩니다. 기존 동작(enabled 필드만 포함)을 유지하려면 metadata.yaml에 reaggregation_enabled: false를 명시해야 합니다. 업그레이드 후 mdatagen을 실행하고 생성된 결과물을 커밋 전에 반드시 검토하세요.

주요 변경 (5)
  • telemetry.UseLocalHostAsDefaultMetricsAddress, otelcol.printInitialConfig, pdata.enableRefCounting 등 피처 게이트 7개 안정화 및 제거 — 해당 게이트를 참조하는 설정은 즉시 오류 발생
  • configgrpc Snappy 압축의 메모리 손상 및 치명적 오류 수정 — gRPC + Snappy 조합 사용 시 즉시 업그레이드 필요
  • pdata.useCustomProtoEncoding 피처 게이트 완전 제거 — 더 이상 비활성화 경로 없음, 커스텀 프로토 인코딩이 항상 적용됨
  • mdatagen이 README.md에 설정 문서 테이블을 자동 생성하며, 리어그리게이션 설정 생성이 기본값으로 변경
  • xextension/storage에 Walker 인터페이스 추가 — 스토리지 마이그레이션 및 TTL 기반 가비지 컬렉션 패턴 구현 가능
원문

OpenTelemetry

Observability2026년 5월 20일

v0.152.1은 버그 수정이 중심인 릴리스로, snappy 압축 해제 보안 수정과 Prometheus 메트릭 이름 회귀 버그 수정이 실무적으로 가장 중요합니다.

  • securityconfighttp snappy 수정으로 압축 페이로드 메모리 노출 위험 해소

    `pkg/confighttp`에서 snappy 압축 해제 관련 버그 세 건이 수정됐습니다. 압축 해제 라이브러리의 패닉을 잡아 HTTP 400을 반환하고, `max_request_body_size`를 버퍼 할당 전에 체크하도록 바뀌었습니다. 특히 크기 제한을 버퍼 할당 전에 적용하는 변경은, 악의적으로 조작된 압축 페이로드로 메모리를 급격히 소비시키는 공격을 막습니다. 신뢰할 수 없는 출처에서 OTLP HTTP 압축 요청을 받는다면 즉시 업그레이드하세요.

  • breaking텔레메트리 host를 명시 설정했다면 Prometheus 메트릭 이름 변경 확인 필요

    텔레메트리 설정의 `host` 필드를 명시적으로 지정했던 경우, Prometheus 메트릭 이름이 이 릴리스 전후로 달라질 수 있습니다. 버그로 인해 `WithoutScopeInfo`, `WithoutUnits`, `WithoutTypeSuffix`가 기본값 `true` 대신 `false`로 동작했기 때문에, scope 레이블이나 suffix가 붙은 이름으로 메트릭이 노출됐을 가능성이 있습니다. 업그레이드 후 메트릭 이름이 다시 바뀔 수 있으니, 관련 대시보드와 알람 쿼리를 확인하세요.

  • enhancementexporter in-flight 메트릭을 대시보드에 추가하세요

    `pkg/exporterhelper`에 `otelcol_exporter_in_flight_requests` UpDownCounter 메트릭이 추가됐습니다. exporter별 동시 요청 수를 직접 볼 수 있어서, 워커 풀 포화 여부를 기존보다 훨씬 쉽게 파악할 수 있습니다. 업그레이드 후 대시보드에 추가해 두세요.

주요 변경 (7)
  • exporter당 동시 export 요청 수를 추적하는 `otelcol_exporter_in_flight_requests` 메트릭 신규 추가
  • `pkg/confighttp` snappy 압축 해제 버그 3건 수정: 패닉 복구(400 반환), body 정리, 할당 전 크기 제한 적용
  • `pcommon.Value.AsString`이 map·slice 값에서 `<`, `>`, `&`를 HTML 이스케이프하지 않도록 변경 — 이스케이프된 출력에 의존하는 코드가 있다면 확인 필요
  • 정상적인 클라이언트 연결 해제 시 발생하던 gRPC `connection reset by peer` 메시지가 더 이상 WARN 레벨로 출력되지 않음
  • 텔레메트리 host 명시 설정 시 Prometheus 기본값이 잘못 적용되던 버그 수정
  • 트레이스 프로세서가 없을 때 noop tracer provider 반환으로 불필요한 오버헤드 제거
  • API: `xconfmap.Validator` deprecated — `confmap.Validator`와 `confmap.Validate`로 마이그레이션 필요
원문

OpenTelemetry

Observability2026년 5월 11일

v0.152.0에서는 telemetry host를 커스텀 설정할 때 Prometheus 메트릭 이름이 바뀌던 버그를 수정하고, 맵·슬라이스 값의 AsString HTML 이스케이프 동작을 변경했습니다. 익스포터 in-flight 요청 메트릭도 추가됐습니다.

  • breakingtelemetry host를 커스텀 설정했다면 Prometheus 메트릭 이름 검증 필요

    telemetry 섹션에서 host를 직접 지정한 Collector를 운영 중이라면, 업그레이드 후 Prometheus 메트릭 이름을 반드시 확인하세요. 이전 버전에서는 WithoutScopeInfo, WithoutUnits, WithoutTypeSuffix 필드가 잘못된 기본값(false)으로 설정되어 메트릭 이름 형식이 묵시적 기본 설정과 달라졌습니다. 이번 패치로 올바른 기본값이 적용되므로, 메트릭 이름 기반의 대시보드나 알럿이 있다면 업그레이드 전후 이름을 비교하세요.

  • breakingAsString 출력 변경 — 맵·슬라이스 값을 파싱하는 로직 점검

    pcommon.Value.AsString이 맵·슬라이스 값 내의 <, >, & 문자를 더 이상 HTML 이스케이프하지 않습니다. 파이프라인 다운스트림에서 &lt; 같은 이스케이프된 문자열을 파싱하거나 기대하는 로직이 있다면 업그레이드 후 동작이 달라집니다. attribute processor, 로그 파서, 익스포터 등에서 맵·슬라이스의 문자열 표현을 사용하는 부분을 점검하세요.

  • enhancementotelcol_exporter_in_flight_requests를 대시보드에 추가

    otelcol_exporter_in_flight_requests UpDownCounter가 익스포터별로 동시에 진행 중인 export 요청 수를 추적합니다. 별도 설정 없이 자동으로 노출되므로, Collector 대시보드에 추가해 워커 풀 포화 상태를 조기에 감지할 수 있습니다.

주요 변경 (5)
  • 익스포터별 동시 in-flight 요청 수를 추적하는 otelcol_exporter_in_flight_requests 메트릭 추가
  • pcommon.Value.AsString의 맵·슬라이스 값에서 HTML 이스케이프 제거 — ValueTypeStr과 동작 통일
  • telemetry host 명시 설정 시 Prometheus 기본값이 잘못 적용되던 버그 수정
  • snappy 디코딩 전에 max_request_body_size 적용, 디컴프레션 라이브러리 패닉 시 HTTP 400 반환으로 변경
  • 정상 클라이언트 연결 종료 시 gRPC 'connection reset by peer' 로그가 WARN으로 출력되던 문제 수정
원문

OpenTelemetry

Observability2026년 4월 29일

v0.151.0은 OTLP receiver 설정 구조체에서 API 수준의 breaking change가 있고, builder의 go.mod 생성 기본 동작이 바뀝니다. 듀얼스택 gRPC 연결 문제 해결과 pprofile 데이터 손상 버그 수정이 운영 측면에서 가장 주요한 변경입니다.

  • breaking커스텀 콜렉터에서 OTLP receiver 필드 접근 방식 수정 필요

    OTLP receiver의 Config.Protocols가 이제 named field로 바뀌어, cfg.GRPC / cfg.HTTP를 직접 참조하는 코드는 컴파일이 깨집니다. OTLP receiver를 임베드하거나 확장한 커스텀 콜렉터가 있다면 cfg.Protocols.GRPC, cfg.Protocols.HTTP로 변경한 뒤 업그레이드하세요.

  • breaking빌더 생성 결과물을 커밋한다면 go.mod 경로 방식 확인

    cmd/builder가 생성하는 go.mod의 replace 경로가 기본값으로 상대 경로로 바뀌었습니다. 여러 머신에서 동일한 생성 코드를 빌드한다면 이 변경이 유리하지만, 절대 경로를 파싱하는 스크립트나 툴링이 있다면 dist::use_absolute_replace_paths: true를 설정해 기존 동작을 유지하면서 마이그레이션하세요.

  • enhancement듀얼스택 DNS 환경의 gRPC 연결 문제는 passthrough 리졸버로 해결

    grpc.NewClient 전환 이후 듀얼스택 DNS 환경에서 OTLP gRPC 익스포터 연결이 간헐적으로 실패하는 사례가 보고됐습니다. exporter 설정의 endpoint를 passthrough:///host:port 형식으로 바꾸면 해결됩니다. IPv4/IPv6 혼용 환경에서 연결 오류를 겪고 있다면 우선 이 방법을 시도해보세요.

주요 변경 (6)
  • cmd/builder: 생성된 go.mod의 replace 경로가 상대 경로로 변경됨 (절대 경로로 되돌리려면 dist::use_absolute_replace_paths 사용)
  • receiver/otlp API: cfg.GRPC, cfg.HTTP 접근을 cfg.Protocols.GRPC, cfg.Protocols.HTTP로 변경 필요
  • configgrpc: endpoint에 passthrough:/// 리졸버 스킴 지정 가능, 듀얼스택 DNS 문제 해결
  • pkg/pprofile: marshal-unmarshal-merge 후 resource/scope 속성이 손상되는 버그 수정
  • pkg/service: 텔레메트리 설정의 non-string resource attribute가 패닉 대신 에러를 반환하도록 수정
  • confighttp의 framedSnappy feature gate가 stable로 승격
원문

OpenTelemetry

Observability2026년 4월 13일

v0.150.0은 소규모 버그 수정 릴리스입니다. print-config --unredacted 출력 누락, 내부 OTLP 익스포터 헤더 노출, debug 익스포터 인덱스 범위 초과 등 세 가지 버그를 고쳤습니다.

  • securitymarshaled config에서 내부 OTLP 익스포터 헤더 redact 처리

    내부 텔레메트리 OTLP 익스포터의 헤더가 config를 marshal할 때 평문으로 노출됐습니다. 헤더에 인증 토큰이 담길 수 있으므로 설정 스냅샷을 로그나 저장소에 기록하는 팀은 기존 저장본을 점검하세요. 업그레이드 후에는 marshal 시 자동으로 redact됩니다.

  • enhancementprint-config --unredacted 모드의 기본값 누락 버그 수정

    print-config 명령의 --unredacted 모드가 기본값 옵션을 모두 누락했던 버그가 수정됐습니다. confmap.WithUnredacted MarshalOption 도입으로 컴포넌트 기본값이 이제 정상 출력됩니다. 설정 감사나 디버깅에 print-config를 쓴다면 업그레이드 후 재실행해 출력이 완전한지 확인하세요.

주요 변경 (5)
  • 전 컴포넌트 semconv 패키지 1.38.0 → 1.40.0 업데이트
  • debug 익스포터의 프로파일 딕셔너리 인덱스 범위 초과 접근 수정
  • pdata/pprofile: 읽기 전용 입력에 대해 방어적 복사 적용
  • print-config --unredacted가 기본값 필드를 정상 출력하도록 수정
  • config marshal 시 내부 텔레메트리 OTLP 익스포터 헤더 자동 redact
원문