OpenTelemetry
v0.165.0Observability互換性に影響する API の削除を含む保守リリースです。可観測性と設定機能の拡張に加え、正確性の修正と、リソース枯渇やスタックオーバーフローにつながる入力への対策が含まれます。
要対応 (1)
securityproto 復元時の再帰深度制限
pkg/pdataでAnyValue、ArrayValue、KeyValueList、KeyValueを proto から復元する際の再帰深度に 100 の上限を追加しました。悪意のある深い入れ子のペイロードによるスタックオーバーフローを防ぎます。
影響確認 (2)
security
pkg/confighttpの zstd デコーダーウィンドウ制限pkg/confighttpを使用している場合に適用されます。pkg/confighttpの zstd デコーダーが確保するウィンドウを、ライブラリの既定値ではなくmax_request_body_sizeに基づいて制限します。小さなリクエスト本文から過大なメモリ確保を引き起こす入力に対処します。breaking
pkg/confighttpの非推奨フィールド削除IdleConnTimeout、MaxIdleConns、MaxIdleConnsPerHost、DisableKeepAlivesのいずれかを設定している場合に適用されます。pkg/confighttpから、非推奨のIdleConnTimeout、MaxIdleConns、MaxIdleConnsPerHost、DisableKeepAlivesフィールドを削除しました。
事前準備 (1)
deprecated
componentstatus.の非推奨化Watcher componentstatus.を使用している場合に適用されます。Watcher componentstatus.を非推奨とし、後継としてWatcher extensioncapabilities.を案内します。ComponentStatusWatcher
その他の記録済み変更 15 件すべてsecurity fixes 1 · additions 4 · constraints 4 · fixes 3 · value changes 3
security fixes (1)
- -
pkg/configgrpc: Bound the zstd decoder window by the configured maximum receive message size instead of the library default. (#16280) A zstd frame declares its window in the header and the decoder allocated it before producing any output, so a small crafted message could drive a large allocation regardless ofmax_recv_msg_size_mib. The decoder is also returned to its pool as soon as gRPC is done with a message.
additions (4)
- -
pkg/xreceiverhelper: Add xreceiverhelper with anObsReportthat reports profile sample metrics per sample type. (#16251)ObsReport.records theEndProfilesOpBySampleType otelcol_receiver_{accepted,refused,failed}_profile_samplesmetrics with an additionalsample_typeattribute, formatted as "type:unit", as a single payload can hold multiple profiles with different sample types. UseProfileSampleCountsByTypeto compute the sample counts before the profiles are passed to the next consumer, as the data may be mutated downstream. The OTLP receiver now usesEndProfilesOpBySampleType. - -
pkg/service: Warn at startup when a pipeline combines the batch processor with exporterhelper batching. (#15965) Detection does not cross connectors or inspect exporter wrappers that hide exporterhelper's batching capability. - -
processor/memory_limiter: Addgarbage_collectorconfig section to allow disabling forced garbage collection viaenabledfield. (#15081) - -
processor/queue_batch: Report queue and batch metrics as processor metrics (#14038)
constraints (4)
- -
pkg/configmiddleware: allow to override the dialer used by confighttp.ToClient and configgrpc.ToClient (#16019) - -
pkg/featuregate: Allow underscores in feature gate IDs. (#16243) - -
pkg/service: Service now supports configuring additional resource detectors for internal telemetry as per the update to otelconf v0.26.0. (#15869) - -
pkg/confighttp: Accept Content-Encoding: identity as equivalent to no encoding. (#15122)
fixes (3)
- -
pkg/exporterhelper: Fix aCannot unref freed datapanic when a persistent sending queue forwards requests into another pipeline (#15256) - -
pkg/exporterhelper: Withwait_for_result, canceling a request that the sending queue already accepted no longer returns early (#16255) Previously a canceled context made it returncontext.while the request was still delivered, so callers could report a failure for data that had been sent. Canceling still takes effect while nothing has been done with the request.Canceled - -
pkg/service: Skip graph nodes that have not been built during shutdown to prevent a panic when a partial receiver reload fails to build a receiver. (#16261)
value changes (3)
- -
pkg/xprocessorhelper: Instrumentxprocessorhelper.withNewProfiles otelcol_processor_incoming_items,otelcol_processor_outgoing_items, andotelcol_processor_internal_duration, consistent with the other signal constructors. (#15523) - -
processor/queue_batch: Promote the queue_batch processor to beta for traces, metrics, and logs, and to alpha for profiles. (#12022) - -
pkg/confighttp: Mark confighttp as stable (#9380)
対応が必要なリリースが出たときに、週次メールでお知らせします。 今回のセキュリティパッチと破壊的変更も、その一例です。