)]}'
{
  "log": [
    {
      "commit": "0c0f9b9b833b18c94db3d3154bd42305d9ea8975",
      "tree": "1914332cade3c93536cba680c80f1662d6c5411e",
      "parents": [
        "54b94d57bbe92612969951f3a8f6c5246bbdf49e"
      ],
      "author": {
        "name": "Robert Pająk",
        "email": "pellared@hotmail.com",
        "time": "Fri Oct 30 14:55:04 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 30 14:55:04 2026 +0000"
      },
      "message": "stdoutlog: use non-OTLP representation for log bodies and attributes (#9150)\n\nNaN and infinities in log bodies or attributes currently stop\nstdoutlog\u0027s JSON encoding and leave the rest of the batch unwritten.\nShare the attribute package\u0027s non-OTLP formatting for special floats,\nbytes, arrays, and nested maps.\n\nEncode log bodies directly as JSON values: strings, booleans, finite\nnumbers, arrays, objects, and `null` for empty values. For example, a\nstring body is `\"Body\":\"test\"` and a nested map is a JSON object. Scalar\nstrings and Base64 bytes receive normal JSON transport quoting; special\nfloats become `\"NaN\"`, `\"Infinity\"`, and `\"-Infinity\"`. JSON-looking\nstrings stay strings, and user map entries named `Type` or `Value`\nremain ordinary data.\n\nLog attributes remain an ordered array of single-attribute objects;\nresource and scope attribute sets become JSON objects. Empty sets are\n`{}`, nil resources remain `null`, and populated scope attributes are\nretained.\n\nUse `json.RawMessage` for the private body field and conversion helper\nso every body is encoded JSON before the record is marshaled. Formatting\nremains local to stdoutlog; shared attribute marshaling and other signal\nexporters are unaffected. Ordinary export errors still reach the caller.\n\nFixes #9127.\nFixes #9128.\n\nSix-sample benchmarks below isolate the `json.RawMessage` refactor\nagainst `deb62de8`, which already emits direct non-OTLP bodies. Scalar\nstrings, bytes, special floats, and empty bodies gain one allocation;\nfinite float and float-array cases use three fewer. Short strings\nmeasured 7.5% slower and escaped strings 16.7% slower; the finite float\nand small-array cases measured 8–11% faster in this run. This is an\nexplicit-type refactor with a performance tradeoff.\n\nBenchmark command: `GOMAXPROCS\u003d2 make\nbenchmark/./exporters/stdout/stdoutlog ARGS\u003d\u0027-bench\u003dBenchmarkExporter\n-benchmem -count\u003d6 -benchtime\u003d100ms\u0027`.\n\n\n```text\ngoos: linux\ngoarch: amd64\npkg: go.opentelemetry.io/otel/exporters/stdout/stdoutlog\ncpu: AMD EPYC 7571\n                                      │ before (deb62de8) │   RawMessage Body   │\n                                      │             sec/op              │   sec/op     vs base               │\nExporterObservability/Disabled-2                            8.639µ ± 5%   8.845µ ± 2%        ~ (p\u003d0.143 n\u003d6)\nExporterObservability/UploadSuccess-2                       10.95µ ± 1%   11.07µ ± 1%   +1.07% (p\u003d0.009 n\u003d6)\nExporterBody/short_string-2                                 4.312µ ± 1%   4.634µ ± 2%   +7.47% (p\u003d0.002 n\u003d6)\nExporterBody/escaped_string-2                               4.562µ ± 1%   5.322µ ± 1%  +16.66% (p\u003d0.002 n\u003d6)\nExporterBody/byte_slice-2                                   4.426µ ± 8%   4.686µ ± 1%        ~ (p\u003d0.065 n\u003d6)\nExporterBody/NaN-2                                          4.245µ ± 1%   4.593µ ± 0%   +8.20% (p\u003d0.002 n\u003d6)\nExporterBody/finite_float-2                                 4.892µ ± 1%   4.363µ ± 1%  -10.82% (p\u003d0.002 n\u003d6)\nExporterBody/empty-2                                        3.850µ ± 5%   3.975µ ± 1%        ~ (p\u003d0.061 n\u003d6)\nExporterFloat64Slice/finite/8-2                             6.476µ ± 1%   5.934µ ± 2%   -8.36% (p\u003d0.002 n\u003d6)\nExporterFloat64Slice/finite/1024-2                          175.8µ ± 2%   170.7µ ± 1%   -2.90% (p\u003d0.002 n\u003d6)\nExporterFloat64Slice/nonfinite/8-2                          6.247µ ± 1%   5.611µ ± 1%  -10.19% (p\u003d0.002 n\u003d6)\nExporterFloat64Slice/nonfinite/1024-2                       172.6µ ± 1%   172.0µ ± 1%        ~ (p\u003d0.310 n\u003d6)\ngeomean                                                     9.824µ        9.895µ        +0.72%\n\n                                      │ before (deb62de8) │   RawMessage Body    │\n                                      │              B/op               │     B/op      vs base               │\nExporterObservability/Disabled-2                           1.242Ki ± 0%   1.312Ki ± 0%   +5.66% (p\u003d0.002 n\u003d6)\nExporterObservability/UploadSuccess-2                      1.243Ki ± 0%   1.313Ki ± 0%   +5.66% (p\u003d0.002 n\u003d6)\nExporterBody/short_string-2                                  632.0 ± 0%     704.0 ± 0%  +11.39% (p\u003d0.002 n\u003d6)\nExporterBody/escaped_string-2                                632.0 ± 0%     760.0 ± 0%  +20.25% (p\u003d0.002 n\u003d6)\nExporterBody/byte_slice-2                                    640.0 ± 0%     712.0 ± 0%  +11.25% (p\u003d0.002 n\u003d6)\nExporterBody/NaN-2                                           632.0 ± 0%     704.0 ± 0%  +11.39% (p\u003d0.002 n\u003d6)\nExporterBody/finite_float-2                                  688.0 ± 0%     680.0 ± 0%   -1.16% (p\u003d0.002 n\u003d6)\nExporterBody/empty-2                                         600.0 ± 0%     672.0 ± 0%  +12.00% (p\u003d0.002 n\u003d6)\nExporterFloat64Slice/finite/8-2                              928.0 ± 0%     920.0 ± 0%   -0.86% (p\u003d0.002 n\u003d6)\nExporterFloat64Slice/finite/1024-2                         33.32Ki ± 0%   33.34Ki ± 0%        ~ (p\u003d1.000 n\u003d6)\nExporterFloat64Slice/nonfinite/8-2                           944.0 ± 0%     936.0 ± 0%   -0.85% (p\u003d0.002 n\u003d6)\nExporterFloat64Slice/nonfinite/1024-2                      33.32Ki ± 0%   33.35Ki ± 0%        ~ (p\u003d0.290 n\u003d6)\ngeomean                                                    1.445Ki        1.532Ki        +6.03%\n\n                                      │ before (deb62de8) │   RawMessage Body   │\n                                      │            allocs/op            │  allocs/op   vs base               │\nExporterObservability/Disabled-2                             25.00 ± 0%    26.00 ± 0%   +4.00% (p\u003d0.002 n\u003d6)\nExporterObservability/UploadSuccess-2                        25.00 ± 0%    26.00 ± 0%   +4.00% (p\u003d0.002 n\u003d6)\nExporterBody/short_string-2                                  9.000 ± 0%   10.000 ± 0%  +11.11% (p\u003d0.002 n\u003d6)\nExporterBody/escaped_string-2                                9.000 ± 0%   10.000 ± 0%  +11.11% (p\u003d0.002 n\u003d6)\nExporterBody/byte_slice-2                                    10.00 ± 0%    11.00 ± 0%  +10.00% (p\u003d0.002 n\u003d6)\nExporterBody/NaN-2                                           9.000 ± 0%   10.000 ± 0%  +11.11% (p\u003d0.002 n\u003d6)\nExporterBody/finite_float-2                                 12.000 ± 0%    9.000 ± 0%  -25.00% (p\u003d0.002 n\u003d6)\nExporterBody/empty-2                                         7.000 ± 0%    8.000 ± 0%  +14.29% (p\u003d0.002 n\u003d6)\nExporterFloat64Slice/finite/8-2                             12.000 ± 0%    9.000 ± 0%  -25.00% (p\u003d0.002 n\u003d6)\nExporterFloat64Slice/finite/1024-2                          12.000 ± 0%    9.000 ± 0%  -25.00% (p\u003d0.002 n\u003d6)\nExporterFloat64Slice/nonfinite/8-2                          12.000 ± 0%    9.000 ± 0%  -25.00% (p\u003d0.002 n\u003d6)\nExporterFloat64Slice/nonfinite/1024-2                       12.000 ± 0%    9.000 ± 0%  -25.00% (p\u003d0.002 n\u003d6)\ngeomean                                                      11.88         11.10        -6.57%\n```"
    },
    {
      "commit": "54b94d57bbe92612969951f3a8f6c5246bbdf49e",
      "tree": "65636741b16c7a4c71868f60aee487460c45eb8a",
      "parents": [
        "f2b18dbb35f5ab6848ca90a3a7af7b8952fd74e5"
      ],
      "author": {
        "name": "David Ashpole",
        "email": "dashpole@google.com",
        "time": "Fri Oct 30 14:33:11 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 30 14:33:11 2026 +0000"
      },
      "message": "sdk/metric: refactor expoBuckets to fixed-position circular storage (#9277)\n\nPart of https://github.com/open-telemetry/opentelemetry-go/issues/7796\n\nThis is the first follow-up step after #8077 toward lockless exponential\nhistogram bucket recording (split out from prototype #7535).\n\n### Changes\n\n- **Fixed-Position Circular Buffer (`expoBuckets`)**:\n- Replaces dynamic slice prepend/append shifting in `expoBuckets` with a\npower-of-2 circular buffer (`counts []atomic.Uint64`) indexed via\nbitwise mask (`int(bin) \u0026 (len(counts) - 1)`), tracking the logical\nrange via `[startBin, startBin + length - 1]` with `at(i)`, `bin(bin)`,\nand `endBin()` accessors.\n- Eliminates $O(N)$ element shifts when measurements expand the bucket\nrange toward smaller bins (`bin \u003c startBin`), making in-capacity range\nexpansion $O(1)$ in both directions.\n- Preserves the invariant that all physical slots outside `[startBin,\nstartBin + length - 1]` are zero across capacity doubling, `downscale`,\nand `clear`.\n- Preserves #8077\u0027s behavior of retaining the allocated `counts` backing\nslice across `clear()` calls for cumulative cold-buffer\n(`cp.points[coldIdx]`) reuse.\n- **Zero-Allocation Default Downscaling**:\n- Uses a stack-allocated scratch buffer (`var stackScratch\n[defaultMaxSize/2 + 1]uint64`) in `downscale` to avoid aliasing when\nremapping wrapped circular slots without heap allocations for the\ndefault `maxSize \u003d 160`.\n- **Memory Trade-offs**:\n- **Expected memory overhead in normal use**: **0%** (when buckets grow\nacross multiple measurements, Go\u0027s `append` in `main` already doubles\nthe slice capacity from 128 to 256 slots \u003d `2,048 B`, identical to\n`nextPowerOf2`).\n- **Worst-case memory overhead under default settings (`maxSize \u003d\n160`)**: **~38%–64% higher memory per affected data point** (up to `+896\nB` per bucket: `2,048 B` vs. `1,152–1,408 B` in `main`), which only\noccurs if a bucket\u0027s first two measurements jump directly to a 129–160\nbin span in a single step without intermediate growth.\n- **Worst-case memory overhead with custom `maxSize \u003e 256`**: **up to\n~60%–100% higher bucket slice memory** when the active span lands just\nabove a power of 2 (since `nextPowerOf2` doubles capacity whereas Go\u0027s\n`append` tapers to `~1.25x` growth above 256 elements).\n- **Benchmarks \u0026 Tests**:\n- Updates `BenchmarkPrepend` and `BenchmarkAppend` to use the default\n`maxSize` (`160`) and adds unit and property tests covering wraparound,\ncapacity growth, wrapped downscaling, wrapped merges, and `clear()`\ncapacity retention.\n\n### Benchmarks\n\nComparing `BenchmarkPrepend`, `BenchmarkAppend` (both at `maxSize \u003d\n160`), and `BenchmarkExponentialHistogram` (`-count\u003d6\n-benchtime\u003d200ms`):\n\n```text\ngoos: linux\ngoarch: amd64\npkg: go.opentelemetry.io/otel/sdk/metric/internal/aggregate\ncpu: Intel(R) Xeon(R) CPU @ 2.20GHz\n                                                                │   base.txt    │               new.txt               │\n                                                                │    sec/op     │    sec/op     vs base               │\nPrepend-24                                                        257.13µ ±  7%   21.87µ ±  6%  -91.49% (p\u003d0.002 n\u003d6)\nAppend-24                                                          57.14µ ±  9%   23.93µ ±  7%  -58.12% (p\u003d0.002 n\u003d6)\nExponentialHistogram/Int64/Cumulative/1/Measure-24                 234.4n ± 12%   201.1n ±  9%  -14.17% (p\u003d0.002 n\u003d6)\nExponentialHistogram/Int64/Cumulative/1/ComputeAggregation-24     1176.0n ±  8%   912.6n ± 15%  -22.40% (p\u003d0.002 n\u003d6)\nExponentialHistogram/Int64/Cumulative/10/Measure-24                2.505µ ± 10%   1.979µ ± 10%  -20.98% (p\u003d0.002 n\u003d6)\nExponentialHistogram/Int64/Cumulative/10/ComputeAggregation-24     8.093µ ± 20%   6.839µ ± 15%        ~ (p\u003d0.065 n\u003d6)\nExponentialHistogram/Int64/Cumulative/100/Measure-24               27.28µ ± 14%   19.90µ ± 21%  -27.07% (p\u003d0.004 n\u003d6)\nExponentialHistogram/Int64/Cumulative/100/ComputeAggregation-24    90.37µ ± 15%   71.32µ ± 19%  -21.09% (p\u003d0.009 n\u003d6)\nExponentialHistogram/Int64/Delta/1/Measure-24                      241.2n ±  8%   170.3n ± 11%  -29.39% (p\u003d0.002 n\u003d6)\nExponentialHistogram/Int64/Delta/1/ComputeAggregation-24           814.9n ±  8%   644.5n ± 14%  -20.90% (p\u003d0.002 n\u003d6)\nExponentialHistogram/Int64/Delta/10/Measure-24                     1.949µ ± 13%   1.916µ ±  7%        ~ (p\u003d0.937 n\u003d6)\nExponentialHistogram/Int64/Delta/10/ComputeAggregation-24          3.265µ ± 17%   2.620µ ± 14%  -19.75% (p\u003d0.009 n\u003d6)\nExponentialHistogram/Int64/Delta/100/Measure-24                    25.52µ ± 14%   20.94µ ± 10%  -17.94% (p\u003d0.002 n\u003d6)\nExponentialHistogram/Int64/Delta/100/ComputeAggregation-24         32.60µ ±  9%   23.59µ ± 26%  -27.64% (p\u003d0.002 n\u003d6)\ngeomean                                                            6.439µ         4.183µ        -35.04%\n\n                                                                │    base.txt     │                new.txt                 │\n                                                                │      B/op       │     B/op       vs base                 │\nPrepend-24                                                        3.602Ki ±  0%     2.227Ki ±  0%  -38.18% (p\u003d0.002 n\u003d6)\nAppend-24                                                         4.727Ki ±  0%     2.227Ki ±  0%  -52.89% (p\u003d0.002 n\u003d6)\nExponentialHistogram/Int64/Cumulative/1/Measure-24                  0.000 ±  0%       0.000 ±  0%        ~ (p\u003d1.000 n\u003d6) ¹\nExponentialHistogram/Int64/Cumulative/1/ComputeAggregation-24       40.00 ±  0%       40.00 ±  0%        ~ (p\u003d1.000 n\u003d6) ¹\nExponentialHistogram/Int64/Cumulative/10/Measure-24                 0.000 ±  0%       0.000 ±  0%        ~ (p\u003d1.000 n\u003d6) ¹\nExponentialHistogram/Int64/Cumulative/10/ComputeAggregation-24      112.0 ±  0%       112.0 ±  0%        ~ (p\u003d1.000 n\u003d6) ¹\nExponentialHistogram/Int64/Cumulative/100/Measure-24                9.000 ± 22%       7.000 ± 14%  -22.22% (p\u003d0.006 n\u003d6)\nExponentialHistogram/Int64/Cumulative/100/ComputeAggregation-24     832.0 ±  0%       832.0 ±  0%        ~ (p\u003d1.000 n\u003d6) ¹\nExponentialHistogram/Int64/Delta/1/Measure-24                       0.000 ±  0%       0.000 ±  0%        ~ (p\u003d1.000 n\u003d6) ¹\nExponentialHistogram/Int64/Delta/1/ComputeAggregation-24            192.0 ±  0%       192.0 ±  0%        ~ (p\u003d1.000 n\u003d6) ¹\nExponentialHistogram/Int64/Delta/10/Measure-24                      0.000 ±  0%       0.000 ±  0%        ~ (p\u003d1.000 n\u003d6) ¹\nExponentialHistogram/Int64/Delta/10/ComputeAggregation-24           192.0 ±  0%       192.0 ±  0%        ~ (p\u003d1.000 n\u003d6) ¹\nExponentialHistogram/Int64/Delta/100/Measure-24                     3.000 ± 33%       3.000 ± 33%        ~ (p\u003d0.273 n\u003d6)\nExponentialHistogram/Int64/Delta/100/ComputeAggregation-24          192.0 ±  0%       192.0 ±  0%        ~ (p\u003d1.000 n\u003d6) ¹\ngeomean                                                                         ²                  -10.06%               ²\n¹ all samples are equal\n² summaries must be \u003e0 to compute geomean\n\n                                                                │   base.txt   │               new.txt               │\n                                                                │  allocs/op   │ allocs/op   vs base                 │\nPrepend-24                                                        4.000 ± 0%     3.000 ± 0%  -25.00% (p\u003d0.002 n\u003d6)\nAppend-24                                                         6.000 ± 0%     3.000 ± 0%  -50.00% (p\u003d0.002 n\u003d6)\nExponentialHistogram/Int64/Cumulative/1/Measure-24                0.000 ± 0%     0.000 ± 0%        ~ (p\u003d1.000 n\u003d6) ¹\nExponentialHistogram/Int64/Cumulative/1/ComputeAggregation-24     2.000 ± 0%     2.000 ± 0%        ~ (p\u003d1.000 n\u003d6) ¹\nExponentialHistogram/Int64/Cumulative/10/Measure-24               0.000 ± 0%     0.000 ± 0%        ~ (p\u003d1.000 n\u003d6) ¹\nExponentialHistogram/Int64/Cumulative/10/ComputeAggregation-24    11.00 ± 0%     11.00 ± 0%        ~ (p\u003d1.000 n\u003d6) ¹\nExponentialHistogram/Int64/Cumulative/100/Measure-24              0.000 ± 0%     0.000 ± 0%        ~ (p\u003d1.000 n\u003d6) ¹\nExponentialHistogram/Int64/Cumulative/100/ComputeAggregation-24   101.0 ± 0%     101.0 ± 0%        ~ (p\u003d1.000 n\u003d6) ¹\nExponentialHistogram/Int64/Delta/1/Measure-24                     0.000 ± 0%     0.000 ± 0%        ~ (p\u003d1.000 n\u003d6) ¹\nExponentialHistogram/Int64/Delta/1/ComputeAggregation-24          2.000 ± 0%     2.000 ± 0%        ~ (p\u003d1.000 n\u003d6) ¹\nExponentialHistogram/Int64/Delta/10/Measure-24                    0.000 ± 0%     0.000 ± 0%        ~ (p\u003d1.000 n\u003d6) ¹\nExponentialHistogram/Int64/Delta/10/ComputeAggregation-24         2.000 ± 0%     2.000 ± 0%        ~ (p\u003d1.000 n\u003d6) ¹\nExponentialHistogram/Int64/Delta/100/Measure-24                   0.000 ± 0%     0.000 ± 0%        ~ (p\u003d1.000 n\u003d6) ¹\nExponentialHistogram/Int64/Delta/100/ComputeAggregation-24        2.000 ± 0%     2.000 ± 0%        ~ (p\u003d1.000 n\u003d6) ¹\ngeomean                                                                      ²                -6.77%               ²\n¹ all samples are equal\n² summaries must be \u003e0 to compute geomean\n```"
    },
    {
      "commit": "f2b18dbb35f5ab6848ca90a3a7af7b8952fd74e5",
      "tree": "b43e737118a1d3546c035947796b96ccf0b32dc4",
      "parents": [
        "b5cbe257ccad751e91e26b8add433348f3369f37"
      ],
      "author": {
        "name": "David Ashpole",
        "email": "dashpole@google.com",
        "time": "Fri Oct 30 14:29:13 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 30 14:29:13 2026 +0000"
      },
      "message": "Add experimental metric WithOptIn and View Enabled configuration (#9298)\n\nSupersedes #7721\nPart of open-telemetry/opentelemetry-specification#5384\n\n### Description\n\nImplements the experimental `OptIn` instrument advisory parameter and\nView `enabled` configuration specified in\nopen-telemetry/opentelemetry-specification#4809 using the experimental\n`x` packages (`go.opentelemetry.io/otel/metric/x` and\n`go.opentelemetry.io/otel/sdk/metric/x`):\n\n- **`go.opentelemetry.io/otel/metric/x`**:\n- Adds `WithOptIn() metric.InstrumentOption` to mark synchronous and\nasynchronous instruments as opt-in (disabled by default unless\nexplicitly enabled by a matching View).\n- **`go.opentelemetry.io/otel/sdk/metric/x`**:\n- Adds `Stream` (with `Enabled *bool`), `View`, `NewView`, and\n`WithView` to allow enabling opt-in instruments (`Enabled: new(true)`)\nor disabling instruments (`Enabled: new(false)`) via Views without\nadding unstable fields to `sdkmetric.Stream`.\n- **`go.opentelemetry.io/otel/sdk/metric`**:\n- Resolves streams to `AggregationDrop{}` when `(optIn \u0026\u0026 !isEnabled) ||\nisDisabled`, returning `false` from synchronous `Enabled(ctx)` and\nskipping observable callbacks when all streams for an instrument are\ndropped, while preserving other advisory parameters\n(`WithExplicitBucketBoundaries`, `WithDefaultAttributes`) when an opt-in\ninstrument is enabled by a View.\n\n### Alternatives Considered\n\n- **Tri-state enum vs. `*bool` for `Stream.Enabled`**:\n- Because `Stream` is a struct literal with zero-value defaults, a plain\n`bool` cannot distinguish \"not configured by this view\" (preserve the\ninstrument\u0027s default or opt-in enablement) from `Enabled: false`\n(explicitly disable).\n- We considered a tri-state enum (e.g., `StreamEnabledUnspecified` /\n`StreamEnabledTrue` / `StreamEnabledFalse`), which avoids a pointer\nfield on `Stream`. We opted for `*bool` here as it directly models an\noptional boolean in the specification (`enabled?: boolean`) and avoids\nintroducing new exported enum types/constants (and with Go 1.26\u0027s\n`new(true)` / `new(false)`, callers do not need a helper function).\nHappy to switch to an enum if reviewers prefer avoiding the pointer.\n- **Wrapping `sdkmetric.View` / `sdkmetric.NewView` vs.\n`sdkmetricx.Stream` + `sdkmetricx.NewView`**:\n- Because `sdkmetric.View` returns `sdkmetric.Stream` by value\n(`func(Instrument) (Stream, bool)`), we cannot attach experimental\nfields to `sdkmetric.Stream` via a functional option without either\nexporting a field or setter on `sdkmetric.Stream` or wrapping\n`sdkmetric.View` at registration time (e.g.,\n`sdkmetricx.WithViewEnabled(enabled bool, views ...sdkmetric.View)`).\n- While a wrapper like `WithViewEnabled` avoids duplicating `Stream`,\n`View`, `NewView`, and `WithView` in `sdk/metric/x`, it forces `enabled`\nto be configured at the `MeterProviderOption` level across an entire\n`sdkmetric.View` rather than per-stream inside `Stream` (which is where\n`Enabled` will live on `sdkmetric.Stream` once stabilized). Mirroring\n`Stream`, `View`, `NewView`, and `WithView` in `sdk/metric/x` matches\nthe target stabilized API surface and supports custom `View` functions\nthat set `Enabled` per stream."
    },
    {
      "commit": "b5cbe257ccad751e91e26b8add433348f3369f37",
      "tree": "d468180a327fda9fd4c2cb3d5333e0703ed4f8fe",
      "parents": [
        "67936056c543bf34e3953cb8cb98aa636730c1fd"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Fri Oct 30 10:36:45 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 30 10:36:45 2026 +0000"
      },
      "message": "Update module github.com/prometheus/common to v0.73.1 (#9320)\n\nThis PR contains the following updates:\n\n| Package | Change |\n[Age](https://docs.renovatebot.com/merge-confidence/) |\n[Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|\n[github.com/prometheus/common](https://redirect.github.com/prometheus/common)\n| `v0.73.0` → `v0.73.1` |\n![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fprometheus%2fcommon/v0.73.1?slim\u003dtrue)\n|\n![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fprometheus%2fcommon/v0.73.0/v0.73.1?slim\u003dtrue)\n|\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003eprometheus/common (github.com/prometheus/common)\u003c/summary\u003e\n\n###\n[`v0.73.1`](https://redirect.github.com/prometheus/common/releases/tag/v0.73.1)\n\n[Compare\nSource](https://redirect.github.com/prometheus/common/compare/v0.73.0...v0.73.1)\n\n#### What\u0027s Changed\n\n- build(deps): bump github.com/pandatix/go-abnf from 0.5.1 to 0.5.3 by\n[@\u0026#8203;bwplotka](https://redirect.github.com/bwplotka) in\n[#\u0026#8203;1027](https://redirect.github.com/prometheus/common/pull/1027)\n\n**Full Changelog**:\n\u003chttps://github.com/prometheus/common/compare/v0.73.0...v0.73.1\u003e\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about these\nupdates again.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xODguMiIsInVwZGF0ZWRJblZlciI6IjQ0LjE4OC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "67936056c543bf34e3953cb8cb98aa636730c1fd",
      "tree": "b8db21063579689d22b18af28da7a2c8926d5346",
      "parents": [
        "b1d5b8abaa54482f2f1058015657a48c2c063180"
      ],
      "author": {
        "name": "David Ashpole",
        "email": "dashpole@google.com",
        "time": "Fri Oct 30 10:23:06 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 30 10:23:06 2026 +0000"
      },
      "message": "exporters/prometheus: set created timestamp on counter and histogram metrics (#9297)\n\nPart of #4516\n\nPer the [Prometheus and OpenMetrics compatibility\nspecification](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/compatibility/prometheus_and_openmetrics.md#sums)\n(Sums and Histograms), if `StartTime` is set on monotonic `Sum` or\n`Histogram` data points, it SHOULD be transformed into the Prometheus\ncreated timestamp (`NewConstMetricWithCreatedTimestamp` /\n`NewConstHistogramWithCreatedTimestamp`), matching\n`addExponentialHistogramMetric`.\n\nCo-authored-by: Damien Mathieu \u003c42@dmathieu.com\u003e"
    },
    {
      "commit": "b1d5b8abaa54482f2f1058015657a48c2c063180",
      "tree": "053fa60a9ea00f1ee260366f4331d37be68fb3a2",
      "parents": [
        "288bb349ac9fa1b449dbb00535bc7b06e1f192e4"
      ],
      "author": {
        "name": "David Ashpole",
        "email": "dashpole@google.com",
        "time": "Fri Oct 30 10:03:02 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 30 10:03:02 2026 +0000"
      },
      "message": "exporters/prometheus: order colliding sanitized label values by original key (#9294)\n\nPart of #4516\n\nThe [Prometheus and OpenMetrics compatibility\nspecification](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/compatibility/prometheus_and_openmetrics.md#metric-attributes)\nrequires values of attribute keys that collide after sanitization to be\nconcatenated with `;` *\"ordered by the lexicographical order of the\noriginal keys\"*.\n\n`attribute.Set.Iter()` already iterates attributes in ascending\nlexicographical order of the original keys, whereas calling\n`slices.Sort(vals)` in `getAttrs` and `getScopeAttrs` re-sorted the\ncollided slice by attribute value instead of original key order.\n\nCo-authored-by: Damien Mathieu \u003c42@dmathieu.com\u003e"
    },
    {
      "commit": "288bb349ac9fa1b449dbb00535bc7b06e1f192e4",
      "tree": "98c5970b8e451695e9d829e96519adf68c872cbd",
      "parents": [
        "65bc574f2be703406704c59d727a42cfd9ea6938"
      ],
      "author": {
        "name": "David Ashpole",
        "email": "dashpole@google.com",
        "time": "Fri Oct 30 09:37:50 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 30 09:37:50 2026 +0000"
      },
      "message": "exporters/prometheus: omit empty trace_id and span_id exemplar labels (#9295)\n\nPart of #4516\n\nPer the [Prometheus and OpenMetrics compatibility\nspecification](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/compatibility/prometheus_and_openmetrics.md#exemplar-conversion),\nan exemplar\u0027s `TraceID` and `SpanID` MUST be added as `trace_id` and\n`span_id` exemplar labels *if present*.\n\nPreviously, `addExemplars` unconditionally added `trace_id\u003d\"\"` and\n`span_id\u003d\"\"` (and counted their key runes against\n`prometheus.ExemplarMaxRunes`) even when `exemplar.TraceID` or\n`exemplar.SpanID` was empty (for example, when using `AlwaysOnFilter` or\na custom exemplar filter without an active span context)."
    },
    {
      "commit": "65bc574f2be703406704c59d727a42cfd9ea6938",
      "tree": "6ddd9e320bef30d0bf8b10f889704987245dab4f",
      "parents": [
        "3024d2860521b072b3333b781cdf678a062d9d66"
      ],
      "author": {
        "name": "Sushant Poudel",
        "email": "sushant.poudel2028@gmail.com",
        "time": "Fri Oct 30 09:36:48 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 30 09:36:48 2026 +0000"
      },
      "message": "Report the registered module version from Version() in otlploggrpc (#9232)\n\nFixes #9143\n\n`Version()` returned the literal `0.14.0` while the module release is\n`v0.23.0`, and `client.go:97` builds the default User-Agent from it, so\nthe exporter identified itself as a version it had not been for nine\nreleases.\n\n**This is structural, not a missed edit.** `versions.yaml` publishes a\nmodule\u0027s version through `version-refs`, and for this module that list\ncontains `./internal/version.go` alone — `internal.Version` is already\n`0.23.0`. The public `version.go` is **not** a registered reference, so\nrelease tooling never bumps it and it drifts with nothing to catch it.\nEvery OTLP exporter in the repository has the same shape, which is why\nthe same audit found stale values elsewhere:\n\n| file | reports | module version |\n| --- | --- | --- |\n| `otlploggrpc/version.go` | `0.14.0` | `0.23.0` |\n| `otlploghttp/version.go` | `0.14.0` | `0.23.0` |\n| `otlpmetrichttp/version.go` | `1.43.0` | — (metricgrpc reports\n`1.47.0`) |\n\nSo rather than correct this one literal, `Version()` now reports the\nregistered reference. That leaves the version with one source of truth,\nwhich is the one the release tooling actually writes.\n\n`TestVersionMatchesRegisteredReference` asserts the two agree, so a\nfuture re-introduction is caught rather than drifting for nine releases.\n\n**Verified:** `Version()` returns `0.23.0`, the User-Agent becomes `OTel\nGo OTLP over gRPC logs exporter/0.23.0`, the existing\n`TestVersionSemver` still passes, and the full package suite passes (6\npackages). No import cycle — the public package already imports siblings\nunder `internal/`.\n\n**Scope:** `otlploggrpc` only, matching this issue. `otlploghttp` and\n`otlpmetrichttp` need the same treatment; I am happy to send those as\nfollow-ups, or to fold them in here if you would rather review one\nchange across all three. Say which.\n\nCLA is not signed on my side — flagging so it is not read as a CI\nfailure."
    },
    {
      "commit": "3024d2860521b072b3333b781cdf678a062d9d66",
      "tree": "4886f9201f9e384e8d182c7e388345e6f8a290a2",
      "parents": [
        "73c24babfd982206e57ebce54b388e686fe90177"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Fri Oct 30 08:55:15 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 30 08:55:15 2026 +0000"
      },
      "message": "Update module github.com/xo/terminfo to v1.3.0 (#9319)\n\nThis PR contains the following updates:\n\n| Package | Change |\n[Age](https://docs.renovatebot.com/merge-confidence/) |\n[Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [github.com/xo/terminfo](https://redirect.github.com/xo/terminfo) |\n`v1.2.0` → `v1.3.0` |\n![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fxo%2fterminfo/v1.3.0?slim\u003dtrue)\n|\n![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fxo%2fterminfo/v1.2.0/v1.3.0?slim\u003dtrue)\n|\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003exo/terminfo (github.com/xo/terminfo)\u003c/summary\u003e\n\n###\n[`v1.3.0`](https://redirect.github.com/xo/terminfo/releases/tag/v1.3.0):\nterminfo v1.3.0\n\n[Compare\nSource](https://redirect.github.com/xo/terminfo/compare/v1.2.1...v1.3.0)\n\n#### Added\n\n- `Puts(w, s, lines, baud)` writes a capability with its padding\napplied, as `tputs` in ncurses does. A padding marker, such as the\n`$\u003c100/\u003e` in the `flash` of `xterm`, now becomes a delay and is not\nprinted (D23).\n\n#### Changed\n\n- `Load` returns `ErrFileNotFound` when no directory holds the entry\n(D29).\n- `ColorLevelFromEnv` returns `ColorLevelBasic` for a terminal with 8 to\n255 colors. It returned `ColorLevelNone` for 8 or 16 colors (D24).\n- `StringCaps`, `StringCapsShort`, `ExtStringCaps` and\n`ExtStringCapsShort` leave out each absent capability (D28).\n- `capvals.go` is generated from ncurses 6.6, and names the release\n(D26). The constants did not change.\n\n#### Removed\n\n- `ErrDatabaseDirectoryNotFound`. A caller that compares with it must\ncompare with `ErrFileNotFound` (D29).\n\n#### Project\n\n- CI runs golangci-lint v2.14.0 (D25).\n- The README has the layout, badges and project links of the other xo\npackages.\n\nThe decisions are in\n[docs/PLAN.md](https://redirect.github.com/xo/terminfo/blob/v1.3.0/docs/PLAN.md).\n\n**Full Changelog**:\n\u003chttps://github.com/xo/terminfo/compare/v1.2.1...v1.3.0\u003e\n\n###\n[`v1.2.1`](https://redirect.github.com/xo/terminfo/releases/tag/v1.2.1):\nterminfo v1.2.1\n\n[Compare\nSource](https://redirect.github.com/xo/terminfo/compare/v1.2.0...v1.2.1)\n\n**Full Changelog**:\n\u003chttps://github.com/xo/terminfo/compare/v1.2.0...v1.2.1\u003e\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xODguMiIsInVwZGF0ZWRJblZlciI6IjQ0LjE4OC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "73c24babfd982206e57ebce54b388e686fe90177",
      "tree": "353cb6a9edc93f2d4f78ef5caa2cb12fa0aa4ea7",
      "parents": [
        "37583032f4b5a6b6f9b89fd21894b021228c4f46"
      ],
      "author": {
        "name": "David Ashpole",
        "email": "dashpole@google.com",
        "time": "Thu Oct 29 17:17:49 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 29 17:17:49 2026 +0000"
      },
      "message": "Avoid redundant slice and map allocations in exporters/prometheus (#9248)\n\nReduce per-scrape allocations when translating data point and\ninstrumentation scope attributes in `exporters/prometheus`:\n\n- Replace the unconditional `keysMap :\u003d make(map[string][]string)` and\nper-attribute `[]string{kv.Value.String()}` allocations in `getAttrs`\nand `getScopeAttrs` with direct slice appends in `attrs.Iter()` order,\nallocating a collision map (`dups map[int][]string`) only when sanitized\nlabel names collide.\n- Introduce `getAttrsWithKV` and `appendScopeAttrs` so data point\n`keys`/`values` slices are pre-sized to `attrs.Len() + len(kv.keys)` (or\nreuse `kv.keys`/`kv.vals` directly when `attrs.Len() \u003d\u003d 0`) and scope\nattributes are appended directly into `kv`.\n- Pre-size `positiveBuckets` and `negativeBuckets` in\n`addExponentialHistogramMetric` and `labels` in `attributesToLabels`.\n\n### Benchmark Output\n\n```text\ngoos: linux\ngoarch: amd64\npkg: go.opentelemetry.io/otel/exporters/prometheus\ncpu: Intel(R) Xeon(R) CPU @ 2.20GHz\n                                     │   base.txt    │               new.txt               │\n                                     │    sec/op     │    sec/op     vs base               │\nCollect1/ObservabilityDisabled-24       182.9µ ± 78%   177.2µ ±  4%        ~ (p\u003d0.065 n\u003d6)\nCollect1/ObservabilityEnabled-24        191.7µ ± 71%   174.9µ ±  6%   -8.75% (p\u003d0.009 n\u003d6)\nCollect10/ObservabilityDisabled-24      1.327m ± 59%   1.196m ±  4%   -9.88% (p\u003d0.004 n\u003d6)\nCollect10/ObservabilityEnabled-24       1.312m ± 74%   1.205m ±  9%   -8.12% (p\u003d0.041 n\u003d6)\nCollect100/ObservabilityDisabled-24     12.03m ± 46%   10.73m ± 29%  -10.77% (p\u003d0.041 n\u003d6)\nCollect100/ObservabilityEnabled-24      11.73m ±  6%   10.35m ±  8%  -11.73% (p\u003d0.004 n\u003d6)\nCollect1000/ObservabilityDisabled-24   102.14m ±  7%   91.20m ± 10%  -10.72% (p\u003d0.009 n\u003d6)\nCollect1000/ObservabilityEnabled-24    107.42m ± 10%   90.21m ± 20%  -16.02% (p\u003d0.026 n\u003d6)\ngeomean                                 4.187m         3.770m         -9.95%\n\n                                     │   base.txt   │              new.txt               │\n                                     │     B/op     │     B/op      vs base              │\nCollect1/ObservabilityDisabled-24      62.67Ki ± 0%   61.28Ki ± 0%  -2.22% (p\u003d0.002 n\u003d6)\nCollect1/ObservabilityEnabled-24       62.83Ki ± 0%   61.43Ki ± 0%  -2.24% (p\u003d0.002 n\u003d6)\nCollect10/ObservabilityDisabled-24     358.5Ki ± 0%   345.1Ki ± 0%  -3.73% (p\u003d0.002 n\u003d6)\nCollect10/ObservabilityEnabled-24      359.7Ki ± 0%   346.3Ki ± 0%  -3.72% (p\u003d0.002 n\u003d6)\nCollect100/ObservabilityDisabled-24    3.293Mi ± 0%   3.163Mi ± 0%  -3.95% (p\u003d0.002 n\u003d6)\nCollect100/ObservabilityEnabled-24     3.299Mi ± 0%   3.169Mi ± 0%  -3.96% (p\u003d0.002 n\u003d6)\nCollect1000/ObservabilityDisabled-24   32.61Mi ± 0%   31.30Mi ± 0%  -4.04% (p\u003d0.002 n\u003d6)\nCollect1000/ObservabilityEnabled-24    32.64Mi ± 0%   31.30Mi ± 0%  -4.09% (p\u003d0.002 n\u003d6)\ngeomean                                1.233Mi        1.190Mi       -3.49%\n\n                                     │  base.txt   │              new.txt              │\n                                     │  allocs/op  │  allocs/op   vs base              │\nCollect1/ObservabilityDisabled-24       389.0 ± 0%    351.0 ± 0%  -9.77% (p\u003d0.002 n\u003d6)\nCollect1/ObservabilityEnabled-24        389.0 ± 0%    351.0 ± 0%  -9.77% (p\u003d0.002 n\u003d6)\nCollect10/ObservabilityDisabled-24     4.062k ± 0%   3.709k ± 0%  -8.69% (p\u003d0.002 n\u003d6)\nCollect10/ObservabilityEnabled-24      4.064k ± 0%   3.711k ± 0%  -8.69% (p\u003d0.002 n\u003d6)\nCollect100/ObservabilityDisabled-24    41.38k ± 0%   37.88k ± 0%  -8.47% (p\u003d0.002 n\u003d6)\nCollect100/ObservabilityEnabled-24     41.39k ± 0%   37.88k ± 0%  -8.47% (p\u003d0.002 n\u003d6)\nCollect1000/ObservabilityDisabled-24   414.4k ± 0%   379.1k ± 0%  -8.51% (p\u003d0.002 n\u003d6)\nCollect1000/ObservabilityEnabled-24    414.7k ± 0%   379.1k ± 0%  -8.56% (p\u003d0.002 n\u003d6)\ngeomean                                12.83k        11.69k       -8.87%\n```"
    },
    {
      "commit": "37583032f4b5a6b6f9b89fd21894b021228c4f46",
      "tree": "73cd80b64c5a1cdcd7908e553e2ba7c30efcc13f",
      "parents": [
        "0d772c1a60e72043b9bc1fb5d63632d655e0c22c"
      ],
      "author": {
        "name": "David Ashpole",
        "email": "dashpole@google.com",
        "time": "Thu Oct 29 17:15:55 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 29 17:15:55 2026 +0000"
      },
      "message": "exporters/prometheus: Remove deprecated WithoutUnits and WithoutCounterSuffixes options (#9275)\n\nRemove the deprecated `WithoutUnits` and `WithoutCounterSuffixes`\noptions from `go.opentelemetry.io/otel/exporters/prometheus` in favor of\n`WithTranslationStrategy` (such as\n`otlptranslator.UnderscoreEscapingWithoutSuffixes` or\n`otlptranslator.NoTranslation`).\n\nFixes #7083"
    },
    {
      "commit": "0d772c1a60e72043b9bc1fb5d63632d655e0c22c",
      "tree": "7ed371f380044e2f4c7297675cf8b7345c50d95a",
      "parents": [
        "e70463be25fa20da038e43414535af77b419ee62"
      ],
      "author": {
        "name": "David Ashpole",
        "email": "dashpole@google.com",
        "time": "Thu Oct 29 17:10:36 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 29 17:10:36 2026 +0000"
      },
      "message": "exporters/prometheus: do not emit target_info for empty Resource (#9296)\n\nPart of #4516\n\nPer the [Prometheus and OpenMetrics compatibility\nspecification](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/compatibility/prometheus_and_openmetrics.md#resource-attributes-1),\nan OpenTelemetry `Resource` SHOULD be converted to a `target_info`\nmetric only if the resource is not empty.\n\nSkip creating and emitting `target_info` when `metrics.Resource.Len() \u003d\u003d\n0` (`resource.Empty()`)."
    },
    {
      "commit": "e70463be25fa20da038e43414535af77b419ee62",
      "tree": "fd94bead2e0c9b05978a17934333eeb4c4faa32f",
      "parents": [
        "e159fccbcb27044480a227609941f8ec76443917"
      ],
      "author": {
        "name": "Robert Pająk",
        "email": "pellared@hotmail.com",
        "time": "Thu Oct 29 16:09:31 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 29 16:09:31 2026 +0000"
      },
      "message": "[chore] Improve contribution guidelines for issues and PRs (#9309)\n\nImprove the contribution guidelines for opening issues and pull requests\nand align the agent instructions."
    },
    {
      "commit": "e159fccbcb27044480a227609941f8ec76443917",
      "tree": "9473ea0740dd4e8fb34c5e797b6d69b230b45709",
      "parents": [
        "4cd21a59d6ce75e374095debc86cdcad7ffea04b"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Thu Oct 29 09:23:29 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 29 09:23:29 2026 +0000"
      },
      "message": "Update module github.com/hashicorp/go-uuid to v1.0.4 (#9315)\n\nThis PR contains the following updates:\n\n| Package | Change |\n[Age](https://docs.renovatebot.com/merge-confidence/) |\n[Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|\n[github.com/hashicorp/go-uuid](https://redirect.github.com/hashicorp/go-uuid)\n| `v1.0.3` → `v1.0.4` |\n![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fhashicorp%2fgo-uuid/v1.0.4?slim\u003dtrue)\n|\n![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fhashicorp%2fgo-uuid/v1.0.3/v1.0.4?slim\u003dtrue)\n|\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003ehashicorp/go-uuid (github.com/hashicorp/go-uuid)\u003c/summary\u003e\n\n###\n[`v1.0.4`](https://redirect.github.com/hashicorp/go-uuid/compare/v1.0.3...v1.0.4)\n\n[Compare\nSource](https://redirect.github.com/hashicorp/go-uuid/compare/v1.0.3...v1.0.4)\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xODguMiIsInVwZGF0ZWRJblZlciI6IjQ0LjE4OC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "4cd21a59d6ce75e374095debc86cdcad7ffea04b",
      "tree": "529aee5fa7ec5a9622fa4fdca33bbcb3b0553e72",
      "parents": [
        "c8cfe94aa94ed16bd5aa2a21081f7458e8b36271"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Thu Oct 29 09:08:43 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 29 09:08:43 2026 +0000"
      },
      "message": "Update module github.com/dlclark/regexp2/v2 to v2.12.0 (#9312)\n\nThis PR contains the following updates:\n\n| Package | Change |\n[Age](https://docs.renovatebot.com/merge-confidence/) |\n[Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|\n[github.com/dlclark/regexp2/v2](https://redirect.github.com/dlclark/regexp2)\n| `v2.11.0` → `v2.12.0` |\n![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fdlclark%2fregexp2%2fv2/v2.12.0?slim\u003dtrue)\n|\n![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fdlclark%2fregexp2%2fv2/v2.11.0/v2.12.0?slim\u003dtrue)\n|\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003edlclark/regexp2 (github.com/dlclark/regexp2/v2)\u003c/summary\u003e\n\n###\n[`v2.12.0`](https://redirect.github.com/dlclark/regexp2/compare/v2.11.0...v2.12.0)\n\n[Compare\nSource](https://redirect.github.com/dlclark/regexp2/compare/v2.11.0...v2.12.0)\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xODguMiIsInVwZGF0ZWRJblZlciI6IjQ0LjE4OC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "c8cfe94aa94ed16bd5aa2a21081f7458e8b36271",
      "tree": "4f4795898b1726dbc5e7856c4ea70260cdc0afda",
      "parents": [
        "79a44df7c773eb2d619706b9926156499f899cc3"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Thu Oct 29 09:08:34 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 29 09:08:34 2026 +0000"
      },
      "message": "Update module github.com/prometheus/common to v0.73.0 (#9310)\n\nThis PR contains the following updates:\n\n| Package | Change |\n[Age](https://docs.renovatebot.com/merge-confidence/) |\n[Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|\n[github.com/prometheus/common](https://redirect.github.com/prometheus/common)\n| `v0.72.1` → `v0.73.0` |\n![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fprometheus%2fcommon/v0.73.0?slim\u003dtrue)\n|\n![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fprometheus%2fcommon/v0.72.1/v0.73.0?slim\u003dtrue)\n|\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003eprometheus/common (github.com/prometheus/common)\u003c/summary\u003e\n\n###\n[`v0.73.0`](https://redirect.github.com/prometheus/common/releases/tag/v0.73.0)\n\n[Compare\nSource](https://redirect.github.com/prometheus/common/compare/v0.72.1...v0.73.0)\n\n##### What\u0027s Changed\n\n- expfmt: default to allow-utf-8 escaping for OpenMetrics 2.0 by\n[@\u0026#8203;KR-Ravindra](https://redirect.github.com/KR-Ravindra) in\n[#\u0026#8203;1008](https://redirect.github.com/prometheus/common/pull/1008)\n- expfmt: add FmtOpenMetrics_2_0_0_rc format constant by\n[@\u0026#8203;bwplotka](https://redirect.github.com/bwplotka) in\n[#\u0026#8203;1020](https://redirect.github.com/prometheus/common/pull/1020)\n- expfmt: add ABNF-based OpenMetrics 1.0 parser by\n[@\u0026#8203;bwplotka](https://redirect.github.com/bwplotka) in\n[#\u0026#8203;1015](https://redirect.github.com/prometheus/common/pull/1015)\n\n##### New Contributors\n\n- [@\u0026#8203;KR-Ravindra](https://redirect.github.com/KR-Ravindra) made\ntheir first contribution in\n[#\u0026#8203;1008](https://redirect.github.com/prometheus/common/pull/1008)\n\n**Full Changelog**:\n\u003chttps://github.com/prometheus/common/compare/v0.72.1...v0.73.0\u003e\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about these\nupdates again.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xODguMiIsInVwZGF0ZWRJblZlciI6IjQ0LjE4OC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "79a44df7c773eb2d619706b9926156499f899cc3",
      "tree": "2c620358a6716033af42100a5cde8bc724a8d756",
      "parents": [
        "57d5430ccb68c6ab4ed919d86e0a1bc5387345c3"
      ],
      "author": {
        "name": "Dipanshu singh",
        "email": "161134993+Dipanshusinghh@users.noreply.github.com",
        "time": "Wed Oct 28 19:56:14 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 28 19:56:14 2026 +0000"
      },
      "message": "sdk/metric: preserve ScopeMetrics slice capacity in PeriodicReader pool (#8535)\n\n## Problem\n\n`rmPool` was introduced in #3760 to reuse `ResourceMetrics` allocations\nacross export cycles and reduce GC pressure. However, #8233\ninadvertently defeated this optimization by fully resetting the struct\non release:\n\n```go\n*rm \u003d metricdata.ResourceMetrics{}\n```\n\nThis sets `ScopeMetrics` to `nil` and discards the underlying array\u0027s\ncapacity, forcing a fresh allocation on every subsequent `Get()` —\nsilently negating the pool\u0027s benefit.\n\n## Fixes\n\n- **Retain capacity**: Instead of overwriting the whole struct, reset\nthe slice length to `0` (`rm.ScopeMetrics \u003d rm.ScopeMetrics[:0]`) and\nnil out only the `Resource` pointer. This preserves the backing array so\nfuture collections can reuse it without reallocating.\n- **Fix boundary leak**: Capture the slice length *before* export runs,\nso producer-owned slots are safely cleaned up on release — even if an\nexporter synchronously truncates the slice during export. This prevents\nstale data from leaking across cycles / potential data corruption.\n- **Fix benchmark**: The reader benchmark previously used static\nfixtures that masked the pool\u0027s real behavior. It now grows the pooled\nslice dynamically using `cap()`, so the benchmark actually exercises and\nexposes the allocation savings instead of hiding them.\n\n## Benchmarks\n\n```text\ngoos: windows\ngoarch: amd64\npkg: go.opentelemetry.io/otel/sdk/metric\ncpu: AMD Ryzen 5 5500U with Radeon Graphics\nBenchmarkPeriodicReader_collectAndExport-12    733646    1678 ns/op    320 B/op    6 allocs/op\n```\n\n---------\n\nCo-authored-by: Tyler Yahn \u003cMrAlias@users.noreply.github.com\u003e\nCo-authored-by: Robert Pająk \u003cpellared@hotmail.com\u003e"
    },
    {
      "commit": "57d5430ccb68c6ab4ed919d86e0a1bc5387345c3",
      "tree": "c3505fec5d8565bf404c05414379ab21b7a98980",
      "parents": [
        "6097e8af72ab45da6c2760713f582f42a0269afd"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Wed Oct 28 09:22:47 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 28 09:22:47 2026 +0000"
      },
      "message": "Update module golang.org/x/net to v0.62.0 (#9302)\n\nThis PR contains the following updates:\n\n| Package | Change |\n[Age](https://docs.renovatebot.com/merge-confidence/) |\n[Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [golang.org/x/net](https://pkg.go.dev/golang.org/x/net) | [`v0.61.0` →\n`v0.62.0`](https://cs.opensource.google/go/x/net/+/refs/tags/v0.61.0...refs/tags/v0.62.0)\n|\n![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fnet/v0.62.0?slim\u003dtrue)\n|\n![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fnet/v0.61.0/v0.62.0?slim\u003dtrue)\n|\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xODguMiIsInVwZGF0ZWRJblZlciI6IjQ0LjE4OC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "6097e8af72ab45da6c2760713f582f42a0269afd",
      "tree": "bead6b6a3776d718f6db211ed875854a790d42ae",
      "parents": [
        "834ede370c0d356b4aead8d761ea0604a61ef809"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Wed Oct 28 09:22:43 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 28 09:22:43 2026 +0000"
      },
      "message": "Update module github.com/grpc-ecosystem/grpc-gateway/v2 to v2.33.0 (#9293)\n\nThis PR contains the following updates:\n\n| Package | Change |\n[Age](https://docs.renovatebot.com/merge-confidence/) |\n[Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|\n[github.com/grpc-ecosystem/grpc-gateway/v2](https://redirect.github.com/grpc-ecosystem/grpc-gateway)\n| `v2.32.0` → `v2.33.0` |\n![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgrpc-ecosystem%2fgrpc-gateway%2fv2/v2.33.0?slim\u003dtrue)\n|\n![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fgrpc-ecosystem%2fgrpc-gateway%2fv2/v2.32.0/v2.33.0?slim\u003dtrue)\n|\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003egrpc-ecosystem/grpc-gateway\n(github.com/grpc-ecosystem/grpc-gateway/v2)\u003c/summary\u003e\n\n###\n[`v2.33.0`](https://redirect.github.com/grpc-ecosystem/grpc-gateway/releases/tag/v2.33.0)\n\n[Compare\nSource](https://redirect.github.com/grpc-ecosystem/grpc-gateway/compare/v2.32.0...v2.33.0)\n\n### Notice to all users\n\nThis release contains a security fix that changes the behavior of header\nparsing in the gateway. As part of fixing\n[#\u0026#8203;7281](https://redirect.github.com/grpc-ecosystem/grpc-gateway/issues/7281),\nthe decision was made to stop automatically adding client headers with\nthe `Grpc-Metadata-` prefix into the grpc metadata by default. This\nbehavior can be restored using the new mux option\n`WithLegacyHeaderMatching`. See\n\u003chttps://grpc-ecosystem.github.io/grpc-gateway/docs/operations/security_considerations/#request-headers-become-grpc-metadata-under-a-prefix\u003e\nfor more information.\n\n#### Changes\n\n- reject non-decimal float spellings in query and path params by\n[@\u0026#8203;itecz26](https://redirect.github.com/itecz26) in\n[#\u0026#8203;7512](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7512)\n- docs: link example repositories in README by\n[@\u0026#8203;wangyusheng1985](https://redirect.github.com/wangyusheng1985)\nin\n[#\u0026#8203;7517](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7517)\n- docs: update outdated local proxy documentation\n([#\u0026#8203;912](https://redirect.github.com/grpc-ecosystem/grpc-gateway/issues/912))\nby [@\u0026#8203;Asthenia0412](https://redirect.github.com/Asthenia0412) in\n[#\u0026#8203;7521](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7521)\n- reject field\\[key] syntax for non-map fields in query params by\n[@\u0026#8203;itecz26](https://redirect.github.com/itecz26) in\n[#\u0026#8203;7522](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7522)\n- keep remote address in x-forwarded-for when a client value is invalid\nby [@\u0026#8203;itecz26](https://redirect.github.com/itecz26) in\n[#\u0026#8203;7531](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7531)\n- let WithMetadata annotators override client-forwarded metadata by\n[@\u0026#8203;itecz26](https://redirect.github.com/itecz26) in\n[#\u0026#8203;7532](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7532)\n- try GET first for path length fallback so it isn\u0027t lost to map order\nby [@\u0026#8203;cvas22](https://redirect.github.com/cvas22) in\n[#\u0026#8203;7535](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7535)\n- runtime: make strict deep wildcard matching a ServeMux option by\n[@\u0026#8203;movsb](https://redirect.github.com/movsb) in\n[#\u0026#8203;7533](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7533)\n- apply middlewares to health endpoint regardless of option order by\n[@\u0026#8203;cvas22](https://redirect.github.com/cvas22) in\n[#\u0026#8203;7537](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7537)\n- keep the Authorization header first in authorization metadata by\n[@\u0026#8203;itecz26](https://redirect.github.com/itecz26) in\n[#\u0026#8203;7540](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7540)\n- accept form content types with parameters in the path length fallback\nby [@\u0026#8203;spicysharkco](https://redirect.github.com/spicysharkco) in\n[#\u0026#8203;7538](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7538)\n- keep matching other patterns when the last segment is a bare verb by\n[@\u0026#8203;cvas22](https://redirect.github.com/cvas22) in\n[#\u0026#8203;7539](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7539)\n- fix(openapiv3): skip bindings with methods OpenAPI 3.1 can\u0027t describe\nby [@\u0026#8203;LuisFigueroaG](https://redirect.github.com/LuisFigueroaG) in\n[#\u0026#8203;7505](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7505)\n- feat(openapiv3): add allow_delete_body option by\n[@\u0026#8203;LuisFigueroaG](https://redirect.github.com/LuisFigueroaG) in\n[#\u0026#8203;7506](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7506)\n- openapiv2: allow any item type in google.protobuf.ListValue schema by\n[@\u0026#8203;cvas22](https://redirect.github.com/cvas22) in\n[#\u0026#8203;7551](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7551)\n- don\u0027t add an empty path to the field mask for an empty request body by\n[@\u0026#8203;cvas22](https://redirect.github.com/cvas22) in\n[#\u0026#8203;7552](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7552)\n- Use the httprule parser for openapiv2 path templates by\n[@\u0026#8203;anyingiit](https://redirect.github.com/anyingiit) in\n[#\u0026#8203;7562](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7562)\n- Update dependency node to v24 by\n[@\u0026#8203;renovate](https://redirect.github.com/renovate)\\[bot] in\n[#\u0026#8203;7543](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7543)\n- fix(gengateway): quote custom HTTP methods without a net/http constant\nby [@\u0026#8203;LuisFigueroaG](https://redirect.github.com/LuisFigueroaG) in\n[#\u0026#8203;7575](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7575)\n- fix(openapiv3): emit google.protobuf.NullValue fields as null by\n[@\u0026#8203;ybai08](https://redirect.github.com/ybai08) in\n[#\u0026#8203;7541](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7541)\n- fix(openapiv3): describe server-streaming responses as stream chunks\nby [@\u0026#8203;ybai08](https://redirect.github.com/ybai08) in\n[#\u0026#8203;7577](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7577)\n- avoid quadratic path building for nested structs in field masks by\n[@\u0026#8203;itecz26](https://redirect.github.com/itecz26) in\n[#\u0026#8203;7544](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7544)\n- protoc-gen-openapiv2: keep custom ref targets in the naming cache by\n[@\u0026#8203;pujitha24](https://redirect.github.com/pujitha24) in\n[#\u0026#8203;7560](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7560)\n- fix(gengateway): use the embedded field name for response_body types\nby [@\u0026#8203;LuisFigueroaG](https://redirect.github.com/LuisFigueroaG) in\n[#\u0026#8203;7578](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7578)\n- reject duplicate map keys in jsonpb non-proto decoder by\n[@\u0026#8203;itecz26](https://redirect.github.com/itecz26) in\n[#\u0026#8203;7561](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7561)\n- return io.EOF from drained ProtoMarshaller decoder by\n[@\u0026#8203;itecz26](https://redirect.github.com/itecz26) in\n[#\u0026#8203;7567](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7567)\n- fix(openapiv3): omit oneof siblings of path and body fields from query\nparameters by [@\u0026#8203;ybai08](https://redirect.github.com/ybai08) in\n[#\u0026#8203;7579](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7579)\n- ignore query keys naming the parent of a path-bound field by\n[@\u0026#8203;itecz26](https://redirect.github.com/itecz26) in\n[#\u0026#8203;7582](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7582)\n- fix(openapiv2): don\u0027t put the schema type in format for json_schema\ntypes by\n[@\u0026#8203;LuisFigueroaG](https://redirect.github.com/LuisFigueroaG) in\n[#\u0026#8203;7585](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7585)\n- fix(runtime): parse an empty FieldMask query parameter as an empty\nmask by\n[@\u0026#8203;LuisFigueroaG](https://redirect.github.com/LuisFigueroaG) in\n[#\u0026#8203;7586](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7586)\n- fix(descriptor): skip additional_bindings without an HTTP pattern by\n[@\u0026#8203;LuisFigueroaG](https://redirect.github.com/LuisFigueroaG) in\n[#\u0026#8203;7588](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7588)\n- fix(openapiv2): apply file-level responses to HEAD and OPTIONS\noperations by\n[@\u0026#8203;LuisFigueroaG](https://redirect.github.com/LuisFigueroaG) in\n[#\u0026#8203;7592](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7592)\n- drop Grpc-Metadata forwarding from DefaultHeaderMatcher by\n[@\u0026#8203;itecz26](https://redirect.github.com/itecz26) in\n[#\u0026#8203;7590](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7590)\n\n#### New Contributors\n\n- [@\u0026#8203;wangyusheng1985](https://redirect.github.com/wangyusheng1985)\nmade their first contribution in\n[#\u0026#8203;7517](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7517)\n- [@\u0026#8203;Asthenia0412](https://redirect.github.com/Asthenia0412) made\ntheir first contribution in\n[#\u0026#8203;7521](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7521)\n- [@\u0026#8203;cvas22](https://redirect.github.com/cvas22) made their first\ncontribution in\n[#\u0026#8203;7535](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7535)\n- [@\u0026#8203;spicysharkco](https://redirect.github.com/spicysharkco) made\ntheir first contribution in\n[#\u0026#8203;7538](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7538)\n- [@\u0026#8203;anyingiit](https://redirect.github.com/anyingiit) made their\nfirst contribution in\n[#\u0026#8203;7562](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7562)\n- [@\u0026#8203;ybai08](https://redirect.github.com/ybai08) made their first\ncontribution in\n[#\u0026#8203;7541](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/7541)\n\n**Full Changelog**:\n\u003chttps://github.com/grpc-ecosystem/grpc-gateway/compare/v2.32.0...v2.33.0\u003e\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xODguMiIsInVwZGF0ZWRJblZlciI6IjQ0LjE4OC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "834ede370c0d356b4aead8d761ea0604a61ef809",
      "tree": "228bb39574b4deed6b3306fa7f2117c6bbfb9bd7",
      "parents": [
        "7213d234d34c4a9d5a24285f4e076810801c63de"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Tue Oct 27 13:46:29 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 13:46:29 2026 +0000"
      },
      "message": "Update module google.golang.org/grpc to v1.85.0 (#9292)\n\nThis PR contains the following updates:\n\n| Package | Change |\n[Age](https://docs.renovatebot.com/merge-confidence/) |\n[Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [google.golang.org/grpc](https://redirect.github.com/grpc/grpc-go) |\n`v1.84.0` → `v1.85.0` |\n![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fgrpc/v1.85.0?slim\u003dtrue)\n|\n![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fgrpc/v1.84.0/v1.85.0?slim\u003dtrue)\n|\n| [google.golang.org/grpc](https://redirect.github.com/grpc/grpc-go) |\n`v1.83.2` → `v1.85.0` |\n![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fgrpc/v1.85.0?slim\u003dtrue)\n|\n![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fgrpc/v1.83.2/v1.85.0?slim\u003dtrue)\n|\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003egrpc/grpc-go (google.golang.org/grpc)\u003c/summary\u003e\n\n###\n[`v1.85.0`](https://redirect.github.com/grpc/grpc-go/releases/tag/v1.85.0):\nRelease 1.85.0\n\n[Compare\nSource](https://redirect.github.com/grpc/grpc-go/compare/v1.84.0...v1.85.0)\n\n### New Features\n\n- stats: Expose the effective client authority (sent on the wire as the\nHTTP/2 `:authority` header) in client `stats.OutHeader` events.\n([#\u0026#8203;9296](https://redirect.github.com/grpc/grpc-go/issues/9296))\n- Special Thanks: [@\u0026#8203;aryansk](https://redirect.github.com/aryansk)\n- metadata: Add `ValueFromOutgoingContext`, which reads a single\nmetadata value from outgoing context without copying the entire outgoing\nmetadata into a new map.\n([#\u0026#8203;9282](https://redirect.github.com/grpc/grpc-go/issues/9282))\n- Special Thanks:\n[@\u0026#8203;yuyangguo42](https://redirect.github.com/yuyangguo42)\n\n### Bug Fixes\n\n- transport: Refine control buffer throttling to only count peer-induced\ncontrol frames, raise the default\n`GRPC_GO_EXPERIMENTAL_CONTROL_BUFFER_THROTTLE_LIMIT` from 100 to 10,000,\nand close client connections if reads remain throttled for `10s`.\n([#\u0026#8203;9563](https://redirect.github.com/grpc/grpc-go/issues/9563))\n- server: Ensure `Stop()` forcefully terminates the server while\n`GracefulStop()` is waiting for active handlers to complete.\n([#\u0026#8203;9394](https://redirect.github.com/grpc/grpc-go/issues/9394))\n  - Special Thanks: [@\u0026#8203;stanhu](https://redirect.github.com/stanhu)\n- server: Unconditionally increment the highest-seen stream ID on when\nhandling `HEADERS` frames to comply with [RFC 7540\n§5.1.1](https://www.rfc-editor.org/rfc/rfc7540.html#section-5.1.1).\nPreviously, truncated `HEADERS` frames left the connection in an\ninconsistent state and allowed stream IDs to be reused by clients\nwithout resulting in a protocol error.\n([#\u0026#8203;9414](https://redirect.github.com/grpc/grpc-go/issues/9414))\n- server: Terminate streams immediately when a `HEADERS` frame includes\nthe `EndStream` bit. Previously, this caused server handlers to hang\nwhen reading a message.\n([#\u0026#8203;9391](https://redirect.github.com/grpc/grpc-go/issues/9391))\n- server: Reject requests missing both `:authority` and `Host` headers\nwith HTTP 400 and status `Internal`.\n([#\u0026#8203;9365](https://redirect.github.com/grpc/grpc-go/issues/9365))\n- xds: Fix a bug where route header matchers with non-lowercase names\nfailed to match routes.\n([#\u0026#8203;9353](https://redirect.github.com/grpc/grpc-go/issues/9353))\n- Special Thanks:\n[@\u0026#8203;winklemad](https://redirect.github.com/winklemad)\n- client: Ensure retried RPCs use the correct `:authority` value\nspecified by the LB policy instead of inheriting it from a previous\nattempt.\n([#\u0026#8203;9277](https://redirect.github.com/grpc/grpc-go/issues/9277))\n  - Special Thanks: [@\u0026#8203;nvxbug](https://redirect.github.com/nvxbug)\n- transport: Fail streams with `io.ErrUnexpectedEOF` instead of `io.EOF`\nupon receiving truncated message headers or bodies after partial data\nhas already been received.\n([#\u0026#8203;9204](https://redirect.github.com/grpc/grpc-go/issues/9204))\n  - Special Thanks: [@\u0026#8203;buger](https://redirect.github.com/buger)\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about these\nupdates again.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xODQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjE4NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "7213d234d34c4a9d5a24285f4e076810801c63de",
      "tree": "8e40f54197496a1f8538b1300f8d3debc34fd200",
      "parents": [
        "572ee888b3bb87a15fb98ca4002b37f501404a70"
      ],
      "author": {
        "name": "Sushant Poudel",
        "email": "sushant.poudel2028@gmail.com",
        "time": "Tue Oct 27 09:33:17 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 09:33:17 2026 +0000"
      },
      "message": "Interpret OTLP log exporter compression environment variables case-insensitively (#9230)\n\nFixes #9141\nFixes #9133\n\n`convCompression` matched only lowercase enum values, so\n`OTEL_EXPORTER_OTLP_LOGS_COMPRESSION\u003dGZIP` and `GZip` were rejected with\na diagnostic and fell back to no compression. The second half of #9141\nis the one that bites: with the generic variable set to `gzip`, a\nLogs-specific `NONE` fell through to the generic value and the exporter\nenabled gzip, which is the opposite of what was asked.\n\nBoth the gRPC and HTTP OTLP log exporters carry the same function and\nthe same defect, so both are fixed here rather than opening two PRs for\none line each.\n\nEnum values are interpreted case-insensitively per the [environment\nvariable enum\nguidance](https://opentelemetry.io/docs/specs/otel/configuration/sdk-environment-variables/)\nand the [common enum\nguidance](https://opentelemetry.io/docs/specs/otel/configuration/common/)\nthat requires the no-op name `none` — which lowercase configuration\ncould not express as an override.\n\nThe original string is kept for the error rather than the folded one, so\nthe diagnostic still quotes the value the operator actually set.\n`invalid OTEL_EXPORTER_OTLP_LOGS_COMPRESSION value xz: unknown\ncompression: xz` is unchanged.\n\n**Verification**\n\n`TestConvCompressionIsCaseInsensitive` is added to both modules and\ncovers `gzip`/`GZIP`/`GZip`, `none`/`NONE`/`NoNe`, the empty string, and\ntwo rejected values. It compares the full error string so the folded\nform cannot silently leak into the diagnostic.\n\nReverting the one-line fix with the tests still in place:\n\n```\notlploggrpc    --- FAIL: TestConvCompressionIsCaseInsensitive\notlploghttp    --- FAIL: TestConvCompressionIsCaseInsensitive\n```\n\nand with the fix restored both pass. Full package suites pass in both\nmodules (`go test ./...`, 6 packages each).\n\n**Scope notes**\n\n- `otlpmetricgrpc` and `otlptracegrpc` do not have a `convCompression`,\nso they are not affected by this specific defect.\n- I have not touched `Accept-Encoding` handling; #9146 and #9183 cover\nthat separately.\n- CLA: not yet signed on my side. Flagging it so it is not mistaken for\na CI problem.\n\n---------\n\nCo-authored-by: Damien Mathieu \u003c42@dmathieu.com\u003e"
    },
    {
      "commit": "572ee888b3bb87a15fb98ca4002b37f501404a70",
      "tree": "031c734ae8732dfed42603dae51e96127285baab",
      "parents": [
        "c2f7d0c7620e0f96e2dbd51e4f8a254d1d8c5e88"
      ],
      "author": {
        "name": "João Pedro de Faria",
        "email": "jpdefo7@hotmail.com",
        "time": "Tue Oct 27 09:29:35 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 09:29:35 2026 +0000"
      },
      "message": "fix(otlphttp): decode gzip responses for trace and metric exporters (#9203)\n\nFixes #9183.\n\nWhen Accept-Encoding: gzip is explicitly configured, Go\u0027s HTTP transport\nleaves the response compressed. The trace and metric HTTP exporters then\ntry to parse gzip bytes as protobuf and apply their response size limits\nto the compressed bytes.\n\nDecode gzip responses before bounded copying on both success and error\npaths. Keep CopyResponseBody unchanged. The shared template adds the\nhelper and its tests to all three generated internal packages. Following\nthe maintainer review, the log client also reuses the helper instead of\nduplicating the gzip handling introduced by #9181.\n\nOriginal validation on native Windows, Go 1.26.5:\n- Before production changes, 12 explicit-header regression cases failed\nwhile 12 automatic-decompression controls passed.\n- Full go test -p 2 -count\u003d1 ./... passed in otlptracehttp and\notlpmetrichttp.\n- Eight helper cases passed in all three generated internal packages,\ncovering exact and oversized limits, mixed-case encoding, malformed\ngzip, truncation, and checksum errors.\n- Repository-pinned golangci-lint v2.14.0 reported zero issues in all\nthree modules.\n- Pinned gotmpl v0.30.0 regenerated the affected files. Staged\nwhitespace checks passed.\n- Five independent GPT-6.1 Sol reviews found no actionable issues.\n\nCurrent follow-up validation: full repository make precommit passes on\nLinux with Go 1.26.9, including generation, pinned Go lint, module\nchecks and race-enabled tests. The trace, metric and log HTTP module\nsuites also pass on Windows. Existing gzip regression coverage remains\ngreen. Six benchmark samples per configuration showed unchanged\nallocation counts and no statistically significant timing difference\nwith benchstat. The branch includes current main, preserving both\nchangelog entries.\n\nAI assistance was used for investigation, tests, implementation and\nindependent reviews. The human contributor reviewed the original\nreproduction and proposed approach before the claim.\n\n---------\n\nSigned-off-by: João Pedro de Faria \u003cjpdefo7@hotmail.com\u003e\nCo-authored-by: Damien Mathieu \u003c42@dmathieu.com\u003e"
    },
    {
      "commit": "c2f7d0c7620e0f96e2dbd51e4f8a254d1d8c5e88",
      "tree": "56c8e769397a0b729d31573db8c9534f399ecc12",
      "parents": [
        "c77f78e0952238e307fc322797ffc3ec4d907793"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Tue Oct 27 08:52:06 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 08:52:06 2026 +0000"
      },
      "message": "Update module go.opentelemetry.io/collector/pdata to v1.70.0 (#9290)\n\nThis PR contains the following updates:\n\n| Package | Change |\n[Age](https://docs.renovatebot.com/merge-confidence/) |\n[Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|\n[go.opentelemetry.io/collector/pdata](https://redirect.github.com/open-telemetry/opentelemetry-collector)\n| `v1.69.0` → `v1.70.0` |\n![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fcollector%2fpdata/v1.70.0?slim\u003dtrue)\n|\n![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fcollector%2fpdata/v1.69.0/v1.70.0?slim\u003dtrue)\n|\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003eopen-telemetry/opentelemetry-collector\n(go.opentelemetry.io/collector/pdata)\u003c/summary\u003e\n\n###\n[`v1.70.0`](https://redirect.github.com/open-telemetry/opentelemetry-collector/blob/HEAD/CHANGELOG.md#v1700v01640)\n\n##### 💡 Enhancements 💡\n\n- `cmd/mdatagen`: Add support for supported_platforms in component\nmetadata, allowing generated component tests to target explicitly\nsupported platforms\n([#\u0026#8203;13319](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/13319))\n\n##### 🧰 Bug fixes 🧰\n\n- `cmd/mdatagen`: Fix the generated `dataPointKey` function triggering\ngosec G115 (`uint64` to `int64` conversion) in components that use\nmdatagen.\n([#\u0026#8203;16176](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/16176))\n  The generated hash values are unchanged.\n\n- `exporter/otlp_http`: Report the URL the request was actually sent to\nin HTTP status error messages when a middleware rewrites the request\nURL.\n([#\u0026#8203;14673](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14673))\nMiddleware RoundTrippers that clone the request before rewriting its URL\nleft\nthe configured placeholder URL in 4xx/5xx error messages. The exporter\nnow\n  reads the destination from the response instead.\n\n- `pkg/otelcol`: Redact non-empty literal defaults in unexpanded env\nprovider references such as `${env:NAME:-literal}` in the raw config\nreported by the OpAMP extension when `reports_raw_config` is enabled\n([#\u0026#8203;16141](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/16141))\nEmpty defaults such as `${env:NAME:-}` stay visible. Other provider\nschemes are unchanged.\n\n\u003c!-- previous-version --\u003e\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xODQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjE4NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "c77f78e0952238e307fc322797ffc3ec4d907793",
      "tree": "f2dbe124eeedeaf318904aea4ad725e92b8d04c2",
      "parents": [
        "e42e0023e66f3f327e92e6da649c2e5cb1460f42"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Tue Oct 27 08:51:13 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 08:51:13 2026 +0000"
      },
      "message": "Update open-telemetry/shared-workflows action to v0.24.0 (#9291)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n|\n[open-telemetry/shared-workflows](https://redirect.github.com/open-telemetry/shared-workflows)\n| workflow | minor | `v0.23.0` → `v0.24.0` |\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003eopen-telemetry/shared-workflows\u003c/summary\u003e\n\n###\n[`v0.24.0`](https://redirect.github.com/open-telemetry/shared-workflows/releases/tag/v0.24.0)\n\n[Compare\nSource](https://redirect.github.com/open-telemetry/shared-workflows/compare/v0.23.0...v0.24.0)\n\n\u003c!-- Release notes generated using configuration in .github/release.yml\nat v0.24.0 --\u003e\n\n##### What\u0027s Changed\n\n- Promote pull request dashboard to v0.23.0 by\n[@\u0026#8203;otelbot-shared-workflows](https://redirect.github.com/otelbot-shared-workflows)\\[bot]\nin\n[#\u0026#8203;481](https://redirect.github.com/open-telemetry/shared-workflows/pull/481)\n- Enable automatic Copilot reviews for Go repositories by\n[@\u0026#8203;MrAlias](https://redirect.github.com/MrAlias) in\n[#\u0026#8203;478](https://redirect.github.com/open-telemetry/shared-workflows/pull/478)\n- Use normal author-reply handoffs for Copilot feedback by\n[@\u0026#8203;trask](https://redirect.github.com/trask) in\n[#\u0026#8203;482](https://redirect.github.com/open-telemetry/shared-workflows/pull/482)\n- Show human authors for Copilot draft pull requests by\n[@\u0026#8203;trask](https://redirect.github.com/trask) in\n[#\u0026#8203;484](https://redirect.github.com/open-telemetry/shared-workflows/pull/484)\n- fossa: update the check to skip running in forks by\n[@\u0026#8203;codeboten](https://redirect.github.com/codeboten) in\n[#\u0026#8203;486](https://redirect.github.com/open-telemetry/shared-workflows/pull/486)\n- chore: add opentelemetry-browser to PR dashboard by\n[@\u0026#8203;martinkuba](https://redirect.github.com/martinkuba) in\n[#\u0026#8203;489](https://redirect.github.com/open-telemetry/shared-workflows/pull/489)\n- feat: add author badges in PR dashboard by\n[@\u0026#8203;martincostello](https://redirect.github.com/martincostello) in\n[#\u0026#8203;490](https://redirect.github.com/open-telemetry/shared-workflows/pull/490)\n\n##### New Contributors\n\n- [@\u0026#8203;martinkuba](https://redirect.github.com/martinkuba) made\ntheir first contribution in\n[#\u0026#8203;489](https://redirect.github.com/open-telemetry/shared-workflows/pull/489)\n\n**Full Changelog**:\n\u003chttps://github.com/open-telemetry/shared-workflows/compare/v0.23.0...v0.24.0\u003e\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xODQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjE4NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "e42e0023e66f3f327e92e6da649c2e5cb1460f42",
      "tree": "efb5cc07befe5f1c56069427749190518eae2be0",
      "parents": [
        "f997580991f8e067a4ddfcdff384e597cb5b3677"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Tue Oct 27 08:36:55 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 08:36:55 2026 +0000"
      },
      "message": "Update googleapis to 2ffab32 (#9283)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n|\n[google.golang.org/genproto/googleapis/api](https://redirect.github.com/googleapis/go-genproto)\n| indirect | digest | `ce908d2` → `2ffab32` |\n|\n[google.golang.org/genproto/googleapis/rpc](https://redirect.github.com/googleapis/go-genproto)\n| indirect | digest | `ce908d2` → `2ffab32` |\n|\n[google.golang.org/genproto/googleapis/rpc](https://redirect.github.com/googleapis/go-genproto)\n| require | digest | `ce908d2` → `2ffab32` |\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about these\nupdates again.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xODQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjE4NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "f997580991f8e067a4ddfcdff384e597cb5b3677",
      "tree": "41646bb0c611319964d32059bce6697f0337a572",
      "parents": [
        "554befd4357e586a6f617b6cf1c10ab3a4eaf2cc"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Tue Oct 27 08:36:32 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 08:36:32 2026 +0000"
      },
      "message": "Update module go.opentelemetry.io/collector/featuregate to v1.70.0 (#9284)\n\nThis PR contains the following updates:\n\n| Package | Change |\n[Age](https://docs.renovatebot.com/merge-confidence/) |\n[Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|\n[go.opentelemetry.io/collector/featuregate](https://redirect.github.com/open-telemetry/opentelemetry-collector)\n| `v1.69.0` → `v1.70.0` |\n![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fcollector%2ffeaturegate/v1.70.0?slim\u003dtrue)\n|\n![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fcollector%2ffeaturegate/v1.69.0/v1.70.0?slim\u003dtrue)\n|\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003eopen-telemetry/opentelemetry-collector\n(go.opentelemetry.io/collector/featuregate)\u003c/summary\u003e\n\n###\n[`v1.70.0`](https://redirect.github.com/open-telemetry/opentelemetry-collector/blob/HEAD/CHANGELOG.md#v1700v01640)\n\n##### 💡 Enhancements 💡\n\n- `cmd/mdatagen`: Add support for supported_platforms in component\nmetadata, allowing generated component tests to target explicitly\nsupported platforms\n([#\u0026#8203;13319](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/13319))\n\n##### 🧰 Bug fixes 🧰\n\n- `cmd/mdatagen`: Fix the generated `dataPointKey` function triggering\ngosec G115 (`uint64` to `int64` conversion) in components that use\nmdatagen.\n([#\u0026#8203;16176](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/16176))\n  The generated hash values are unchanged.\n\n- `exporter/otlp_http`: Report the URL the request was actually sent to\nin HTTP status error messages when a middleware rewrites the request\nURL.\n([#\u0026#8203;14673](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14673))\nMiddleware RoundTrippers that clone the request before rewriting its URL\nleft\nthe configured placeholder URL in 4xx/5xx error messages. The exporter\nnow\n  reads the destination from the response instead.\n\n- `pkg/otelcol`: Redact non-empty literal defaults in unexpanded env\nprovider references such as `${env:NAME:-literal}` in the raw config\nreported by the OpAMP extension when `reports_raw_config` is enabled\n([#\u0026#8203;16141](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/16141))\nEmpty defaults such as `${env:NAME:-}` stay visible. Other provider\nschemes are unchanged.\n\n\u003c!-- previous-version --\u003e\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xODQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjE4NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "554befd4357e586a6f617b6cf1c10ab3a4eaf2cc",
      "tree": "745678057f14fc3ff5419382166b1b5aecd1ad45",
      "parents": [
        "9b486b0da10ef2fd842883c33e81c7c06a9391ad"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Tue Oct 27 08:36:10 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 08:36:10 2026 +0000"
      },
      "message": "Update ubuntu:26.04 Docker digest to 157dc3d (#9287)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [ubuntu](https://hub.docker.com/_/ubuntu)\n([source](https://git.launchpad.net/cloud-images/+oci/ubuntu-base)) |\ncontainer | digest | `4252764` → `157dc3d` |\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xODQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjE4NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "9b486b0da10ef2fd842883c33e81c7c06a9391ad",
      "tree": "2f1b1e3d1561f3f7c44f044f059cfb8105c75f6a",
      "parents": [
        "7146d77a694b6b390d8c6464d5096540be81c859"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Tue Oct 27 08:35:48 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 08:35:48 2026 +0000"
      },
      "message": "Update module github.com/dlclark/regexp2/v2 to v2.11.0 (#9288)\n\nThis PR contains the following updates:\n\n| Package | Change |\n[Age](https://docs.renovatebot.com/merge-confidence/) |\n[Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|\n[github.com/dlclark/regexp2/v2](https://redirect.github.com/dlclark/regexp2)\n| `v2.10.1` → `v2.11.0` |\n![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fdlclark%2fregexp2%2fv2/v2.11.0?slim\u003dtrue)\n|\n![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fdlclark%2fregexp2%2fv2/v2.10.1/v2.11.0?slim\u003dtrue)\n|\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003edlclark/regexp2 (github.com/dlclark/regexp2/v2)\u003c/summary\u003e\n\n###\n[`v2.11.0`](https://redirect.github.com/dlclark/regexp2/compare/v2.10.1...v2.11.0)\n\n[Compare\nSource](https://redirect.github.com/dlclark/regexp2/compare/v2.10.1...v2.11.0)\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xODQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjE4NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "7146d77a694b6b390d8c6464d5096540be81c859",
      "tree": "87e82fcddfa1aef3593ba0f7a4d0770d917ae0f0",
      "parents": [
        "ed5c4ec18c35543258db52facc4724ed2f21de3a"
      ],
      "author": {
        "name": "David Ashpole",
        "email": "dashpole@google.com",
        "time": "Mon Oct 26 12:35:55 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 26 12:35:55 2026 +0000"
      },
      "message": "metric/x: remove experimental WithUnsafeAttributes option (#9276)\n\nPart of https://github.com/open-telemetry/opentelemetry-go/issues/7743\n\nReverts the experimental `x.WithUnsafeAttributes` option added in #8251\nin favor of pursuing experimental bound instruments (#8759) instead.\n\n### Motivation\n\n- #8251 added the experimental `x.WithUnsafeAttributes` option surface\nto `go.opentelemetry.io/otel/metric/x`, but left the underlying SDK\noptimization (deferring `attribute.NewSet` construction on the\nmeasurement path) unimplemented.\n- Meanwhile, `extractRawKVs` added an extra loop and interface type\nassertion over measurement options on every `Add`, `Record`, and\n`Observe` call.\n- With experimental bound instrument support (#8759) moving forward to\naddress hot-path attribute overhead directly, we no longer need to\nmaintain `x.WithUnsafeAttributes`."
    },
    {
      "commit": "ed5c4ec18c35543258db52facc4724ed2f21de3a",
      "tree": "345d7a08acc415ca3808c1cc0f98513200d08960",
      "parents": [
        "a96b379f8a02a553f1e46720c511384c3ab453cd"
      ],
      "author": {
        "name": "vigneshwar",
        "email": "applemacbook6sep2004@gmail.com",
        "time": "Mon Oct 26 12:10:49 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 26 12:10:49 2026 +0000"
      },
      "message": "otlptrace: treat unix-abstract env endpoints as insecure (#9261)\n\n`withEndpointScheme` in\n`internal/shared/otlp/otlptrace/otlpconfig/envconfig.go.tmpl` treats\nonly `http` and `unix` endpoints as insecure. A `unix-abstract://`\nendpoint set through `OTEL_EXPORTER_OTLP_ENDPOINT` or\n`OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` falls through to `WithSecure`, so\nthe trace exporter enables TLS for a local abstract socket. The metric\ntemplate already lists `unix-abstract` (#8862), so the trace and metric\nexporters behave differently for the same endpoint.\n\nThis adds `unix-abstract` to the insecure schemes in the trace template\nand regenerates the `otlptracegrpc` and `otlptracehttp` copies with `go\ngenerate`. The only generated changes are the one-line `envconfig.go`\nchange and the new test case in both modules.\n\nTesting:\n\nAdded a \"Test Environment Unix Abstract Endpoint\" case to the shared\ntrace options test template, mirroring the existing unix case and the\nmetric unix-abstract case. It fails on main in both modules (`Insecure`\nis false) and passes with the change.\n\n`go test -race ./...`, `golangci-lint run`, `go vet` and `gofmt` are\nclean for `exporters/otlp/otlptrace/otlptracegrpc` and\n`exporters/otlp/otlptrace/otlptracehttp`.\n\nCo-authored-by: Robert Pająk \u003cpellared@hotmail.com\u003e"
    },
    {
      "commit": "a96b379f8a02a553f1e46720c511384c3ab453cd",
      "tree": "ddc277fbeec09724be64867c824e4c9334b534a2",
      "parents": [
        "a2698f23e83984a2fb5dc9a30c02bd372cfe2a79"
      ],
      "author": {
        "name": "Daigo Kijima",
        "email": "norimaking777@gmail.com",
        "time": "Mon Oct 26 11:40:18 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 26 11:40:18 2026 +0000"
      },
      "message": "trace: use distinct timestamps in last-one-wins WithTimestamp test (#9279)\n\nBoth timestamps were `time.Unix(0, 0)`, so the test passed regardless of\nwhich `WithTimestamp` call won."
    },
    {
      "commit": "a2698f23e83984a2fb5dc9a30c02bd372cfe2a79",
      "tree": "103cb6c8e538df2585ef3ebe273a844ad30c1b57",
      "parents": [
        "8f1169092b25122546d8c544b92176c393dad207"
      ],
      "author": {
        "name": "Pushpit Saluja",
        "email": "salujapushpit3@gmail.com",
        "time": "Mon Oct 26 11:24:35 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 26 11:24:35 2026 +0000"
      },
      "message": "otlplog: document Exporter concurrency guarantees (#9244)\n\nFixes #9135\nFixes #9134\n\nAlso clarify the behavior of repeated `Shutdown` calls.\n\nDocumentation-only change; no behavior changes.\n\n---------\n\nCo-authored-by: David Ashpole \u003cdashpole@google.com\u003e\nCo-authored-by: Robert Pająk \u003cpellared@hotmail.com\u003e"
    },
    {
      "commit": "8f1169092b25122546d8c544b92176c393dad207",
      "tree": "3f493d56c8a7d15fdf7a92904ff7ca0088bf93b5",
      "parents": [
        "7f71dde1cd4062efac5afefc3711fe89620b1140"
      ],
      "author": {
        "name": "Robert Pająk",
        "email": "pellared@hotmail.com",
        "time": "Mon Oct 26 09:51:30 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 26 09:51:30 2026 +0000"
      },
      "message": "chore: remove emeritus approver flc1125 from CODEOWNERS (#9269)\n\nRemove `@flc1125` from the default owner list in `CODEOWNERS` following\nthe move to emeritus in #9059."
    },
    {
      "commit": "7f71dde1cd4062efac5afefc3711fe89620b1140",
      "tree": "1fd5c946cbe57e139b88d56122b30024baa0e950",
      "parents": [
        "8fa4bdc7730e09e06c6d5c44047cada024e77647"
      ],
      "author": {
        "name": "Puneet Singh",
        "email": "puneet.mir@gmail.com",
        "time": "Mon Oct 26 09:51:07 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 26 09:51:07 2026 +0000"
      },
      "message": "[Dependency] Major version bump for backoff@v5 to v7 (#9267)\n\nfixes #9266"
    },
    {
      "commit": "8fa4bdc7730e09e06c6d5c44047cada024e77647",
      "tree": "87c8509257df3e636edc3bf44a7091d04cc257b8",
      "parents": [
        "e31f4bfa2e03278b896297a1cb9276618c96ef72"
      ],
      "author": {
        "name": "Om Kulkarni",
        "email": "127368012+om7057@users.noreply.github.com",
        "time": "Mon Oct 26 09:39:36 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 26 09:39:36 2026 +0000"
      },
      "message": "exporters/prometheus: preserve exemplar trace/span IDs over filtered attribute labels (#9031)\n\n## Summary\n\nFixes #6718.\n\nprometheus client-go rejects exemplars whose combined label runes exceed\n`prometheus.ExemplarMaxRunes` (128). `addExemplars` let that error\npropagate up from `prometheus.NewMetricWithExemplars` and dropped every\nexemplar for the data point when the limit was hit, even though the\ntrace and span ID labels alone are well within the limit and are the\nmost valuable part of an exemplar.\n\nThis checks each exemplar\u0027s combined label length against the limit\nbefore building the exemplar. When it would exceed the limit, the\nfiltered-attribute-derived labels are dropped and only the trace and\nspan IDs are kept, with a warning logged via `global.Warn` so the\ntruncation is visible instead of silent.\n\n## Test plan\n\n- [x] Added `TestExemplarsExceedingLabelLimit`, verified it fails\nwithout the fix (exemplar dropped entirely) and passes with it\n(trace/span IDs preserved, filtered attributes dropped).\n- [x] `go test ./... -race`\n- [x] `make precommit`"
    },
    {
      "commit": "e31f4bfa2e03278b896297a1cb9276618c96ef72",
      "tree": "5236c1c9fdf3ed1040a64e474b9839159d6875a3",
      "parents": [
        "1e5219f5bcbeceb11b66e4b51bf0acc525990b8b"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Mon Oct 26 09:27:39 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 26 09:27:39 2026 +0000"
      },
      "message": "Update module github.com/dlclark/regexp2/v2 to v2.10.1 (#9274)\n\nThis PR contains the following updates:\n\n| Package | Change |\n[Age](https://docs.renovatebot.com/merge-confidence/) |\n[Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|\n[github.com/dlclark/regexp2/v2](https://redirect.github.com/dlclark/regexp2)\n| `v2.9.1` → `v2.10.1` |\n![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fdlclark%2fregexp2%2fv2/v2.10.1?slim\u003dtrue)\n|\n![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fdlclark%2fregexp2%2fv2/v2.9.1/v2.10.1?slim\u003dtrue)\n|\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003edlclark/regexp2 (github.com/dlclark/regexp2/v2)\u003c/summary\u003e\n\n###\n[`v2.10.1`](https://redirect.github.com/dlclark/regexp2/compare/v2.10.0...v2.10.1)\n\n[Compare\nSource](https://redirect.github.com/dlclark/regexp2/compare/v2.10.0...v2.10.1)\n\n###\n[`v2.10.0`](https://redirect.github.com/dlclark/regexp2/compare/v2.9.1...v2.10.0)\n\n[Compare\nSource](https://redirect.github.com/dlclark/regexp2/compare/v2.9.1...v2.10.0)\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xODAuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjE4MC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "1e5219f5bcbeceb11b66e4b51bf0acc525990b8b",
      "tree": "ede30759f1a5ae15e51e76ab88b67716610d3b58",
      "parents": [
        "4224a8c4f9f2523dfe2e746ab32f834ffb5a6ecc"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Mon Oct 26 09:27:30 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 26 09:27:30 2026 +0000"
      },
      "message": "Update module github.com/securego/gosec/v2 to v2.30.0 (#9272)\n\nThis PR contains the following updates:\n\n| Package | Change |\n[Age](https://docs.renovatebot.com/merge-confidence/) |\n[Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|\n[github.com/securego/gosec/v2](https://redirect.github.com/securego/gosec)\n| `v2.29.0` → `v2.30.0` |\n![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fsecurego%2fgosec%2fv2/v2.30.0?slim\u003dtrue)\n|\n![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fsecurego%2fgosec%2fv2/v2.29.0/v2.30.0?slim\u003dtrue)\n|\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003esecurego/gosec (github.com/securego/gosec/v2)\u003c/summary\u003e\n\n###\n[`v2.30.0`](https://redirect.github.com/securego/gosec/releases/tag/v2.30.0)\n\n[Compare\nSource](https://redirect.github.com/securego/gosec/compare/v2.29.0...v2.30.0)\n\n#### Changelog\n\n-\n[`5eb1d10`](https://redirect.github.com/securego/gosec/commit/5eb1d104ef85ff2c905c877eb600e8c1dee33a22)\nfix(g602): recognize equality comparison in minimumLenForBranch\n([#\u0026#8203;1796](https://redirect.github.com/securego/gosec/issues/1796))\n-\n[`cc750dd`](https://redirect.github.com/securego/gosec/commit/cc750ddcf0d2219e121034f86db3c6c2f3c76d50)\nfix(G112): honor read timeouts assigned through a struct field\n([#\u0026#8203;1798](https://redirect.github.com/securego/gosec/issues/1798))\n-\n[`1cbfd7e`](https://redirect.github.com/securego/gosec/commit/1cbfd7e6488c2464f18603623354de1be9565b39)\nfix(G112): report read timeouts explicitly set to zero\n([#\u0026#8203;1797](https://redirect.github.com/securego/gosec/issues/1797))\n-\n[`05b9c4c`](https://redirect.github.com/securego/gosec/commit/05b9c4c0a7f49e421d7a459922a11bc0c0dd7197)\nfeat(G706): extend log/slog method coverage\n([#\u0026#8203;1795](https://redirect.github.com/securego/gosec/issues/1795))\n-\n[`17ad2dd`](https://redirect.github.com/securego/gosec/commit/17ad2dd7533fd4c773d916e2bc81446917d593b5)\nfix(autofix): read the first text block of a Claude response\n([#\u0026#8203;1794](https://redirect.github.com/securego/gosec/issues/1794))\n-\n[`b23171c`](https://redirect.github.com/securego/gosec/commit/b23171c64c662de0bc757c17feced6f4c10a877e)\nfix(autofix): give every AI request its own timeout\n([#\u0026#8203;1793](https://redirect.github.com/securego/gosec/issues/1793))\n-\n[`20b9e5b`](https://redirect.github.com/securego/gosec/commit/20b9e5b1bcc56518b240bf1afc333d6589163cae)\nfix(resolve): treat constants from other packages as resolved\n([#\u0026#8203;1792](https://redirect.github.com/securego/gosec/issues/1792))\n-\n[`86d3c26`](https://redirect.github.com/securego/gosec/commit/86d3c26c060940ea7b6832c3b0d41e8ebf07a146)\nfix(autofix): return an error when a Gemini candidate has no content\n([#\u0026#8203;1791](https://redirect.github.com/securego/gosec/issues/1791))\n-\n[`14ef84f`](https://redirect.github.com/securego/gosec/commit/14ef84f6feccf40be7f5092fd2db119bf3f5f836)\nUpdate to go version 1.27.3 and 1.26.10\n([#\u0026#8203;1790](https://redirect.github.com/securego/gosec/issues/1790))\n-\n[`7cbd7a9`](https://redirect.github.com/securego/gosec/commit/7cbd7a927365c48badf18bfb118e5503d606351f)\nfix(autofix): default Gemini model to gemini-3.1-pro-preview\n([#\u0026#8203;1788](https://redirect.github.com/securego/gosec/issues/1788))\n-\n[`1e26bce`](https://redirect.github.com/securego/gosec/commit/1e26bcef55d71e330db7ca5e494be6165ffbc35f)\nfix(G102): resolve concatenated and constant listen addresses\n([#\u0026#8203;1787](https://redirect.github.com/securego/gosec/issues/1787))\n-\n[`836dbdb`](https://redirect.github.com/securego/gosec/commit/836dbdb55d40238f021780afc91c237898db85e3)\nfix: default -concurrency to GOMAXPROCS so container CPU limits apply\n([#\u0026#8203;1786](https://redirect.github.com/securego/gosec/issues/1786))\n-\n[`bbd69e2`](https://redirect.github.com/securego/gosec/commit/bbd69e23f657862f7e6d615dd8ba077663d593a3)\nfix(g602): track statically known lengths for append results in slice\nbounds check\n([#\u0026#8203;1773](https://redirect.github.com/securego/gosec/issues/1773))\n-\n[`30e2d38`](https://redirect.github.com/securego/gosec/commit/30e2d38421dc927e1f4f7148dcb822c1308cf4cc)\nfeat(rules): add G125 to detect unescaped url.JoinPath elements\n([#\u0026#8203;1777](https://redirect.github.com/securego/gosec/issues/1777))\n-\n[`57c45b8`](https://redirect.github.com/securego/gosec/commit/57c45b800aa0cbd12994ea142537673fd15d54b8)\nfix: load absolute file paths so nested modules are analysed from the\nparent directory\n([#\u0026#8203;1779](https://redirect.github.com/securego/gosec/issues/1779))\n-\n[`77fa84e`](https://redirect.github.com/securego/gosec/commit/77fa84e3a47a5532d6893467f3df13d2af907541)\nfix(G118): treat a cancel sent on a channel as handed off\n([#\u0026#8203;1782](https://redirect.github.com/securego/gosec/issues/1782))\n-\n[`ca547ab`](https://redirect.github.com/securego/gosec/commit/ca547ab2f2c6c7c378bbb91e76e5b97321b55934)\nfix(G112): honor read timeouts assigned after the http.Server literal\n([#\u0026#8203;1781](https://redirect.github.com/securego/gosec/issues/1781))\n-\n[`024084b`](https://redirect.github.com/securego/gosec/commit/024084bafcb4182ad1c0af86134aa71a819d6f52)\nfix(G303): resolve constant temp file paths\n([#\u0026#8203;1784](https://redirect.github.com/securego/gosec/issues/1784))\n-\n[`782eeb1`](https://redirect.github.com/securego/gosec/commit/782eeb188eebedaf2335f3adac7052d106670324)\nfix(deps): update all dependencies\n([#\u0026#8203;1783](https://redirect.github.com/securego/gosec/issues/1783))\n-\n[`707f227`](https://redirect.github.com/securego/gosec/commit/707f2271f66579a18e1da25794b1e8012247274b)\nfix(G203): treat constant template arguments as safe\n([#\u0026#8203;1770](https://redirect.github.com/securego/gosec/issues/1770))\n-\n[`8c5daa6`](https://redirect.github.com/securego/gosec/commit/8c5daa67d0e2bec9069da20146b0e928fb9fa53b)\nfix(G402): check TLS settings assigned through a \\*tls.Config\n([#\u0026#8203;1769](https://redirect.github.com/securego/gosec/issues/1769))\n-\n[`7157726`](https://redirect.github.com/securego/gosec/commit/71577268350e1e0f2f1491de1ef53f1227b43c1f)\nfix(deps): update all dependencies\n([#\u0026#8203;1775](https://redirect.github.com/securego/gosec/issues/1775))\n-\n[`7b1b5ce`](https://redirect.github.com/securego/gosec/commit/7b1b5cebe007d62fb58eacb90fc571112939ec30)\nUpdate to go version 1.27.2 and 1.26.9\n([#\u0026#8203;1772](https://redirect.github.com/securego/gosec/issues/1772))\n-\n[`d2b649e`](https://redirect.github.com/securego/gosec/commit/d2b649ec01825c20bd101ec584e559adb287e578)\nKeep SARIF driver rules sorted and resolve rule indexes at the end\n([#\u0026#8203;1767](https://redirect.github.com/securego/gosec/issues/1767))\n-\n[`1f52e64`](https://redirect.github.com/securego/gosec/commit/1f52e64f6dfe434ae4261574baa9495c2532a6de)\nfix(G602): track append() results for slice bounds checking\n([#\u0026#8203;1754](https://redirect.github.com/securego/gosec/issues/1754))\n-\n[`ea75d9f`](https://redirect.github.com/securego/gosec/commit/ea75d9ff49b6bbea15f0eb5e0483408a553019a6)\nfix(deps): update all dependencies\n([#\u0026#8203;1768](https://redirect.github.com/securego/gosec/issues/1768))\n-\n[`65c2c08`](https://redirect.github.com/securego/gosec/commit/65c2c082857febe898116edeb1fcddea0193634a)\nfix(G602): trust len(nilSlice) \u003d\u003d N guards, matching make()-backed\nslices\n([#\u0026#8203;1752](https://redirect.github.com/securego/gosec/issues/1752))\n-\n[`6ff893e`](https://redirect.github.com/securego/gosec/commit/6ff893e9ef3f172b24f235acba2a31dab66fa379)\nfix(G407): treat an array IV/nonce as a zeroed buffer\n([#\u0026#8203;1763](https://redirect.github.com/securego/gosec/issues/1763))\n-\n[`aaca894`](https://redirect.github.com/securego/gosec/commit/aaca8946492fb2a6ff3598c185ff97776e12ea6f)\nfix(fileperms): resolve constant file and directory permissions\n([#\u0026#8203;1766](https://redirect.github.com/securego/gosec/issues/1766))\n-\n[`826f6f4`](https://redirect.github.com/securego/gosec/commit/826f6f4fd18b7b0cf0a76b2df1994b3eb90da8f3)\nfix(G102): detect binding to the IPv6 unspecified address\n([#\u0026#8203;1760](https://redirect.github.com/securego/gosec/issues/1760))\n-\n[`021cc2e`](https://redirect.github.com/securego/gosec/commit/021cc2eae58ed8ea0160ca8beab93648daefc0e7)\nfix(G407): stop the nonce source walk on cycles\n([#\u0026#8203;1761](https://redirect.github.com/securego/gosec/issues/1761))\n-\n[`ccb369d`](https://redirect.github.com/securego/gosec/commit/ccb369da13791bade6e735e70e833d0d095b7db0)\nfix(G407): do not count AEAD.Seal as the read that fills its own nonce\n([#\u0026#8203;1762](https://redirect.github.com/securego/gosec/issues/1762))\n-\n[`9b31806`](https://redirect.github.com/securego/gosec/commit/9b318063d35cfc5cdf2456de3b92830270e80326)\nfix(deps): update all dependencies\n([#\u0026#8203;1764](https://redirect.github.com/securego/gosec/issues/1764))\n-\n[`8c77519`](https://redirect.github.com/securego/gosec/commit/8c77519419e934a3e158dbf1a3fbbc0871b8c691)\nfix(G602): validate inequality len guards\n([#\u0026#8203;1757](https://redirect.github.com/securego/gosec/issues/1757))\n-\n[`027baa2`](https://redirect.github.com/securego/gosec/commit/027baa29ac97f58e9200d664d4ba63c9ea47a5ae)\nfix(G121): track request captured by closures\n([#\u0026#8203;1759](https://redirect.github.com/securego/gosec/issues/1759))\n-\n[`9ede89e`](https://redirect.github.com/securego/gosec/commit/9ede89eea46b783aa0a1d28804b817c6d57ff36d)\nfix(deps): update all dependencies\n([#\u0026#8203;1756](https://redirect.github.com/securego/gosec/issues/1756))\n-\n[`29a042e`](https://redirect.github.com/securego/gosec/commit/29a042eca11db9ff0b3985146c5dd3ac46bbd24e)\nfix: make nosec suppression independent of comment order\n([#\u0026#8203;1741](https://redirect.github.com/securego/gosec/issues/1741))\n-\n[`6813471`](https://redirect.github.com/securego/gosec/commit/681347199262bc33b9b5119ae2b448dec5718240)\nfix(G403): resolve constant RSA key sizes\n([#\u0026#8203;1751](https://redirect.github.com/securego/gosec/issues/1751))\n-\n[`201d413`](https://redirect.github.com/securego/gosec/commit/201d4136b42ab474d230d73ada12f7f98e57d8b0)\nfix(G602): validate subslice bounds under equality guards\n([#\u0026#8203;1749](https://redirect.github.com/securego/gosec/issues/1749))\n-\n[`accb424`](https://redirect.github.com/securego/gosec/commit/accb42475d41cfbf54df86bdf7e3e97b9f9bfbe5)\nfix(G124): resolve negated constant cookie flags\n([#\u0026#8203;1748](https://redirect.github.com/securego/gosec/issues/1748))\n-\n[`61fa1da`](https://redirect.github.com/securego/gosec/commit/61fa1dafbaa3e41a5cb42a02eba204af91f60a41)\nfix(G602): report constant index equal to the length asserted by an\nequality guard\n([#\u0026#8203;1746](https://redirect.github.com/securego/gosec/issues/1746))\n-\n[`78fbcc7`](https://redirect.github.com/securego/gosec/commit/78fbcc7b89a935cdf88bb6a4ecd2a73d1c2e26c5)\nSkip taint call graphs when no sinks match\n([#\u0026#8203;1745](https://redirect.github.com/securego/gosec/issues/1745))\n-\n[`79b4fcd`](https://redirect.github.com/securego/gosec/commit/79b4fcd5e4aeed2f53ce93c499b63e4cb51e516e)\nFix brittle test for html writer\n([#\u0026#8203;1744](https://redirect.github.com/securego/gosec/issues/1744))\n-\n[`d70cac3`](https://redirect.github.com/securego/gosec/commit/d70cac375c74052389aed6f2209fd2fd942dc6ab)\nfix(G404): ignore non-cryptographic Shuffle calls\n([#\u0026#8203;1742](https://redirect.github.com/securego/gosec/issues/1742))\n-\n[`9e8e5d9`](https://redirect.github.com/securego/gosec/commit/9e8e5d91f2f39f90a574a18f55351b4a4832dacb)\nfix(deps): update all dependencies\n([#\u0026#8203;1743](https://redirect.github.com/securego/gosec/issues/1743))\n-\n[`8075fd2`](https://redirect.github.com/securego/gosec/commit/8075fd2e520d33330afe168f26fc7a91f57f2cbc)\nfix(taint): remove Result.Source field that is never populated\n([#\u0026#8203;1739](https://redirect.github.com/securego/gosec/issues/1739))\n-\n[`58362d8`](https://redirect.github.com/securego/gosec/commit/58362d8a331e123b887741c27056f459c8b0660f)\nUpdate all dependencies\n([#\u0026#8203;1737](https://redirect.github.com/securego/gosec/issues/1737))\n-\n[`d98945a`](https://redirect.github.com/securego/gosec/commit/d98945a5b2856e4586445089f564085c3b453e8f)\nUpdate go version 1.27.1 and 1.26.8 and phased out 1.25\n([#\u0026#8203;1738](https://redirect.github.com/securego/gosec/issues/1738))\n-\n[`720c679`](https://redirect.github.com/securego/gosec/commit/720c6797165a026baf0759c19fc3867dab7a8872)\nfix(report): correct Babel SRI hash\n([#\u0026#8203;1736](https://redirect.github.com/securego/gosec/issues/1736))\n-\n[`598d614`](https://redirect.github.com/securego/gosec/commit/598d6146b91b2370c6f11f7d3cb256119d8cbfc4)\nfix(taint): make wide caller traversal deterministic\n([#\u0026#8203;1733](https://redirect.github.com/securego/gosec/issues/1733))\n-\n[`4d447d9`](https://redirect.github.com/securego/gosec/commit/4d447d9bf750776ec436724dcaf728e5c629f2f6)\nfix(G702): skip the context argument of exec.CommandContext\n([#\u0026#8203;1730](https://redirect.github.com/securego/gosec/issues/1730))\n-\n[`be1e315`](https://redirect.github.com/securego/gosec/commit/be1e315d68fe33d14151c244e1788671371b3c85)\nfeat(taint): name the sink in taint finding messages\n([#\u0026#8203;1731](https://redirect.github.com/securego/gosec/issues/1731))\n-\n[`a102130`](https://redirect.github.com/securego/gosec/commit/a10213037ea9b2a351f608f6430b8b62a62ab60f)\nUpdate all dependencies\n([#\u0026#8203;1734](https://redirect.github.com/securego/gosec/issues/1734))\n-\n[`57f1613`](https://redirect.github.com/securego/gosec/commit/57f161386e11e13e4c8a37255bc1a6502993d079)\nUpdate action to gosec version 2.29.0\n([#\u0026#8203;1728](https://redirect.github.com/securego/gosec/issues/1728))\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xODAuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjE4MC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "4224a8c4f9f2523dfe2e746ab32f834ffb5a6ecc",
      "tree": "f24ee8232849f944cd94e09d83e80f58a2b8af20",
      "parents": [
        "58f9275445d4bcecc2b6ff17b2eef97d2336a99d"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Fri Oct 23 14:47:08 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 23 14:47:08 2026 +0000"
      },
      "message": "Update module github.com/prometheus/procfs to v0.23.0 (#9271)\n\nThis PR contains the following updates:\n\n| Package | Change |\n[Age](https://docs.renovatebot.com/merge-confidence/) |\n[Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|\n[github.com/prometheus/procfs](https://redirect.github.com/prometheus/procfs)\n| `v0.22.0` → `v0.23.0` |\n![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fprometheus%2fprocfs/v0.23.0?slim\u003dtrue)\n|\n![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fprometheus%2fprocfs/v0.22.0/v0.23.0?slim\u003dtrue)\n|\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003eprometheus/procfs (github.com/prometheus/procfs)\u003c/summary\u003e\n\n###\n[`v0.23.0`](https://redirect.github.com/prometheus/procfs/releases/tag/v0.23.0)\n\n[Compare\nSource](https://redirect.github.com/prometheus/procfs/compare/v0.22.0...v0.23.0)\n\n#### What\u0027s Changed\n\n- procfs: fix parseStat comment and reuse line variable by\n[@\u0026#8203;zanarellidev](https://redirect.github.com/zanarellidev) in\n[#\u0026#8203;855](https://redirect.github.com/prometheus/procfs/pull/855)\n- Fix bcache data unit by\n[@\u0026#8203;SuperQ](https://redirect.github.com/SuperQ) in\n[#\u0026#8203;871](https://redirect.github.com/prometheus/procfs/pull/871)\n- Synchronize common files from prometheus/prometheus by\n[@\u0026#8203;prombot](https://redirect.github.com/prombot) in\n[#\u0026#8203;867](https://redirect.github.com/prometheus/procfs/pull/867)\n- Improve linting by\n[@\u0026#8203;SuperQ](https://redirect.github.com/SuperQ) in\n[#\u0026#8203;865](https://redirect.github.com/prometheus/procfs/pull/865)\n- fix: Preserve the final environment entry without a trailing NUL by\n[@\u0026#8203;gerardrecinto](https://redirect.github.com/gerardrecinto) in\n[#\u0026#8203;884](https://redirect.github.com/prometheus/procfs/pull/884)\n- sysfs: skip cooling devices whose attributes return ENODATA by\n[@\u0026#8203;jlapenna](https://redirect.github.com/jlapenna) in\n[#\u0026#8203;886](https://redirect.github.com/prometheus/procfs/pull/886)\n- sysfs: fix NVMe namespace size and parse multipath path namespaces by\n[@\u0026#8203;lpneyon](https://redirect.github.com/lpneyon) in\n[#\u0026#8203;885](https://redirect.github.com/prometheus/procfs/pull/885)\n- sysfs: handle cpufreq files with \u003cunknown\u003e values by\n[@\u0026#8203;neoLsH](https://redirect.github.com/neoLsH) in\n[#\u0026#8203;866](https://redirect.github.com/prometheus/procfs/pull/866)\n- sysfs: don\u0027t hang on cpufreq files that return EAGAIN by\n[@\u0026#8203;blovett](https://redirect.github.com/blovett) in\n[#\u0026#8203;879](https://redirect.github.com/prometheus/procfs/pull/879)\n- Fix WSL2 mountinfo parsing by\n[@\u0026#8203;SuperQ](https://redirect.github.com/SuperQ) in\n[#\u0026#8203;874](https://redirect.github.com/prometheus/procfs/pull/874)\n- cpuinfo: parse arm64 CPU implementer, variant, and part by\n[@\u0026#8203;AdamMagued](https://redirect.github.com/AdamMagued) in\n[#\u0026#8203;882](https://redirect.github.com/prometheus/procfs/pull/882)\n- sysfs: parse NVMe diag counters (controller, namespace, multipath\nhead) by [@\u0026#8203;lpneyon](https://redirect.github.com/lpneyon) in\n[#\u0026#8203;887](https://redirect.github.com/prometheus/procfs/pull/887)\n- Return errors instead of panicking on short lines in meminfo, ipvs and\ncpufreq parsers by\n[@\u0026#8203;LemonCondor](https://redirect.github.com/LemonCondor) in\n[#\u0026#8203;880](https://redirect.github.com/prometheus/procfs/pull/880)\n- test: split proc stat limit coverage by architecture by\n[@\u0026#8203;happysnaker](https://redirect.github.com/happysnaker) in\n[#\u0026#8203;833](https://redirect.github.com/prometheus/procfs/pull/833)\n- class_nvme: read NVMe namespace nuse on demand by\n[@\u0026#8203;scarlet-storm](https://redirect.github.com/scarlet-storm) in\n[#\u0026#8203;889](https://redirect.github.com/prometheus/procfs/pull/889)\n- netstat: check the scanner result and error by\n[@\u0026#8203;youdie006](https://redirect.github.com/youdie006) in\n[#\u0026#8203;868](https://redirect.github.com/prometheus/procfs/pull/868)\n\n#### New Contributors\n\n- [@\u0026#8203;zanarellidev](https://redirect.github.com/zanarellidev) made\ntheir first contribution in\n[#\u0026#8203;855](https://redirect.github.com/prometheus/procfs/pull/855)\n- [@\u0026#8203;gerardrecinto](https://redirect.github.com/gerardrecinto)\nmade their first contribution in\n[#\u0026#8203;884](https://redirect.github.com/prometheus/procfs/pull/884)\n- [@\u0026#8203;jlapenna](https://redirect.github.com/jlapenna) made their\nfirst contribution in\n[#\u0026#8203;886](https://redirect.github.com/prometheus/procfs/pull/886)\n- [@\u0026#8203;lpneyon](https://redirect.github.com/lpneyon) made their\nfirst contribution in\n[#\u0026#8203;885](https://redirect.github.com/prometheus/procfs/pull/885)\n- [@\u0026#8203;blovett](https://redirect.github.com/blovett) made their\nfirst contribution in\n[#\u0026#8203;879](https://redirect.github.com/prometheus/procfs/pull/879)\n- [@\u0026#8203;AdamMagued](https://redirect.github.com/AdamMagued) made\ntheir first contribution in\n[#\u0026#8203;882](https://redirect.github.com/prometheus/procfs/pull/882)\n- [@\u0026#8203;LemonCondor](https://redirect.github.com/LemonCondor) made\ntheir first contribution in\n[#\u0026#8203;880](https://redirect.github.com/prometheus/procfs/pull/880)\n- [@\u0026#8203;happysnaker](https://redirect.github.com/happysnaker) made\ntheir first contribution in\n[#\u0026#8203;833](https://redirect.github.com/prometheus/procfs/pull/833)\n- [@\u0026#8203;scarlet-storm](https://redirect.github.com/scarlet-storm)\nmade their first contribution in\n[#\u0026#8203;889](https://redirect.github.com/prometheus/procfs/pull/889)\n- [@\u0026#8203;youdie006](https://redirect.github.com/youdie006) made their\nfirst contribution in\n[#\u0026#8203;868](https://redirect.github.com/prometheus/procfs/pull/868)\n\n**Full Changelog**:\n\u003chttps://github.com/prometheus/procfs/compare/v0.22.0...v0.23.0\u003e\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xODAuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjE4MC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "58f9275445d4bcecc2b6ff17b2eef97d2336a99d",
      "tree": "2cfb5cbf0e0a9052daaf292ab47bc49ff9500302",
      "parents": [
        "7468646a5c256c063c8be9cda1222bc4bc6e2162"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Fri Oct 23 14:46:25 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 23 14:46:25 2026 +0000"
      },
      "message": "Update github.com/charmbracelet/ultraviolet digest to a45b7c8 (#9270)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n|\n[github.com/charmbracelet/ultraviolet](https://redirect.github.com/charmbracelet/ultraviolet)\n| indirect | digest | `6b8d4ba` → `a45b7c8` |\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xODAuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjE4MC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "7468646a5c256c063c8be9cda1222bc4bc6e2162",
      "tree": "cae194c686cf485f169c6a34349fc965bc5bf9bb",
      "parents": [
        "637da062628f154133e9ccba92851478d8bd0cd4"
      ],
      "author": {
        "name": "Puneet Singh",
        "email": "puneet.mir@gmail.com",
        "time": "Thu Oct 22 17:07:42 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 22 17:07:42 2026 +0000"
      },
      "message": "[sdk/metric] Experimental support for MeterConfigurator (#8743)\n\n## 1. Overview\n\nAdds experimental support for per-scope meter configuration using\n`MeterConfigurator`\n\nRelated to\n* #8410 \n\n\nMeterConfigurator is a functional mapping from `instrumentation.Scope`\n-\u003e `MeterConfig`. At the moment MeterConfig shape only supports\nenabling/disabling meters.\n\n```go\ntype MeterConfigurator func(instrumentation.Scope) MeterConfig\n```\n\nThe spec mandates to always fetch the latest MeterConfig; its attributes\nare cached due to infrequent change use case and to avoid calls in the\nhot path.\n\nMeterConfigurator must be non-blocking and must execute quickly. A\nslow/blocking call can stall meter creation and configuration updates.\n\n## 2. Spec API expectations\n\n### MeterProvider\n\n1. A `MeterConfigurator` function returns the `MeterConfig` for a scope.\n2. An option creates a `MeterProvider` with a `MeterConfigurator`.\n3. The `MeterConfigurator` of an existing `MeterProvider` can be\nupdated.\n\nWatching for config changes and triggering updates is outside the\n`MeterConfigurator`\u0027s scope. All operations are synchronous.\n\n## 3. Implementation Detail\n\n### 3.1. Summary\n\n* **Config-aware:** only a `MeterProvider` built with\n`WithMeterConfigurator` creates the configurator types. Without it,\nmeters and instruments are the same code as `main`, with no extra cost\nper measurement.\n* **Updates:** `MeterConfiguratorHandle.Set` is synchronous and walks\nexisting meters without holding the meter cache lock. Configs are\nversion-stamped and applied by compare-and-swap, so a stale write never\nreplaces a newer one.\n\n### 3.2. Handle\n\n* `MeterConfiguratorHandle` is passed at construction with\n`WithMeterConfigurator`, and updated with `Set`.\n* A handle belongs to exactly one `MeterProvider`. `Shutdown` retires\nit: `Set` stops updating that provider, and the handle can\u0027t be claimed\nagain.\n\n\u003e [!NOTE]\n\u003e `MeterConfiguratorHandle` is a staging shape; `SetMeterConfigurator`\nshould move onto the `MeterProvider` if the feature becomes stable.\n\n### 3.3. Structure\n\n```text\nconfiguratorMeter                       (only built when WithMeterConfigurator is set)\n├── *meter                              embedded: the stable meter, unchanged\n├── config  versionedMeterConfig        version + enabled, one atomic uint64\n├── int64Wrappers   cache[*int64Inst]   → *configuratorInt64Inst\n└── float64Wrappers cache[*float64Inst] → *configuratorFloat64Inst\n\nconfiguratorInt64Inst                   (same shape for float64)\n├── *int64Inst                          embedded: the stable instrument, unchanged\n└── config  *versionedMeterConfig       points at its meter\u0027s config (shared, not copied)\n\n  Add/Record:  if !config.Load() { return }  →  int64Inst.Add/Record\n  Enabled:     config.Load() \u0026\u0026 int64Inst.Enabled\n\n### 3.4. Routing\n\nNewMeterProvider(opts...)\n└── WithMeterConfigurator(h) set?   → mp.configurator \u003d snapshot of h   (fixed at construction)\n\nmp.Meter(scope)\n└── mp.meters.Lookup(scope)         cache[Scope]metric.Meter, same object per scope\n    ├── mp.configurator \u003d\u003d nil  →  *meter                    (stable path, same as main)\n    └── mp.configurator !\u003d nil  →  *configuratorMeter{*meter}\n                                   └── on first creation: config ← configurator(scope)   (outside cache lock)\n\nInstruments then follow the meter they came from:\n  *meter.Int64Counter              → *int64Inst                     (no check)\n  *configuratorMeter.Int64Counter  → *configuratorInt64Inst{*int64Inst}   (checks config)\n  *configuratorMeter.Int64ObservableCounter → base observable, callbacks gated by config\n\nh.Set(fn)\n└── walks mp.meters, updates config on each *configuratorMeter   (plain meters skipped)\n```\n\n### 3.5. Meter Creation\n\n\u003c!--img width\u003d\"2352\" height\u003d\"2274\" alt\u003d\"configurator-rfc-sequence\"\nsrc\u003d\"https://github.com/user-attachments/assets/a8258165-0e0e-41b6-a103-bf5ed867db3c\"\n/--\u003e\n\n\u003c!--img width\u003d\"2000\" height\u003d\"1728\" alt\u003d\"image\"\nsrc\u003d\"https://github.com/user-attachments/assets/7ce22df0-6e4e-4106-a7c4-fce898519eab\"\n/--\u003e\n\n\u003cimg width\u003d\"1568\" height\u003d\"878\" alt\u003d\"image\"\nsrc\u003d\"https://github.com/user-attachments/assets/2e0e507f-e6c6-4d70-9c9e-0a08952c6a66\"\n/\u003e\n\n### 3.6. Handler.Set cache walk\n\n\u003cimg width\u003d\"1568\" height\u003d\"1118\" alt\u003d\"image\"\nsrc\u003d\"https://github.com/user-attachments/assets/c13059c9-0fa3-4833-82fc-e99ff92d8cb2\"\n/\u003e\n\n\n## 4. Design Changes\n### 4.1. Replace cache lock with version stamping (Meter Creation)\n\nPrevious implementation used Meter\u0027s own cache lock for reading\nConfigurator during meter creation, which was abandoned in favor of\ncurrent version stamping based approach.\n* Cache lock could result in deadlock for Configurator interested in\nself instrumentation using same provider.\n\n### 4.2 Create config aware Meter to avoid regression on stable path\n\nThis is to avoid any regression on stable hot path due to experimental\nfeatures. MeterProvider will only construct Configurator aware Meter,\nwhen used with option `WithMeterConfigurator`\n\n## 5. Benchmark Summary\n\n### 5.1 Check for regression in stable path\n\nNo meaningful regression observed which correlates with stable path\nbeing isolated. B/allocs omitted as it shows no change.\n\n```bash\ncd sdk/metric\ngo test -run \u0027^$\u0027 -bench \u0027^BenchmarkSyncMeasure$/^NoView$/^ExemplarsDisabled$/^(Int64Counter|Int64Histogram)$/Attributes/^(0|10)$\u0027 -benchmem -cpu\u003d2 -count\u003d20 .\n```\n```bash\ngoos: linux\ngoarch: amd64\npkg: go.opentelemetry.io/otel/sdk/metric\ncpu: Intel(R) Xeon(R) CPU @ 2.80GHz\n                                                                    │   main.txt    │             branch.txt             │\n                                                                    │    sec/op     │   sec/op     vs base               │\nSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/0-2      100.55n ±  1%   99.04n ± 1%  -1.50% (p\u003d0.009 n\u003d20)\nSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/10-2      268.0n ± 11%   264.3n ± 1%  -1.36% (p\u003d0.002 n\u003d20)\nSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/0-2     199.7n ±  1%   199.8n ± 2%       ~ (p\u003d0.372 n\u003d20)\nSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/10-2    344.9n ±  1%   341.7n ± 1%  -0.91% (p\u003d0.019 n\u003d20)\ngeomean                                                                207.5n         205.6n       -0.92%\n```\n\n### 5.2 Stable Vs Configurator Path in Implementation\n\n0.5ns - 1ns increase for cheap instruments. Inconclusive for costly\ninstruments due to smaller absolute change.\n\n```bash\ncd sdk/metric/x\ngo test -run \u0027^$\u0027 -bench \u0027^BenchmarkConfiguratorSyncMeasure$\u0027 -benchmem -cpu\u003d2 -count\u003d20 . \u003e cfg.txt\n~/go/bin/benchstat -col /provider cfg.txt \n```\n\n```bash\ngoos: linux\ngoarch: amd64\npkg: go.opentelemetry.io/otel/sdk/metric/x\ncpu: Intel(R) Xeon(R) CPU @ 2.80GHz\n                                                       │   stable    │            configurator            │\n                                                       │   sec/op    │   sec/op     vs base               │\nConfiguratorSyncMeasure/Int64Counter/Attributes/0-2      88.07n ± 1%   88.57n ± 1%       ~ (p\u003d0.606 n\u003d20)\nConfiguratorSyncMeasure/Int64Counter/Attributes/10-2     248.7n ± 1%   246.4n ± 0%  -0.94% (p\u003d0.000 n\u003d20)\nConfiguratorSyncMeasure/Int64Histogram/Attributes/0-2    156.6n ± 1%   157.2n ± 2%       ~ (p\u003d0.311 n\u003d20)\nConfiguratorSyncMeasure/Int64Histogram/Attributes/10-2   284.2n ± 1%   281.0n ± 1%  -1.13% (p\u003d0.000 n\u003d20)\ngeomean                                                  176.7n        176.2n       -0.28%\n```"
    },
    {
      "commit": "637da062628f154133e9ccba92851478d8bd0cd4",
      "tree": "50a7392d6fc5fe1c01ca9a4c00a93cd0e40ee889",
      "parents": [
        "9b0f600f034a10dd98d87538039de845878c071b"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Thu Oct 22 15:10:47 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 22 15:10:47 2026 +0000"
      },
      "message": "Update CodSpeedHQ/action action to v5.6.0 (#9264)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [CodSpeedHQ/action](https://redirect.github.com/CodSpeedHQ/action) |\naction | minor | `v5.5.0` → `v5.6.0` |\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003eCodSpeedHQ/action\u003c/summary\u003e\n\n###\n[`v5.6.0`](https://redirect.github.com/CodSpeedHQ/action/releases/tag/v5.6.0)\n\n[Compare\nSource](https://redirect.github.com/CodSpeedHQ/action/compare/v5.5.0...v5.6.0)\n\nBumps the CodSpeed runner to\n[v5.6.0](https://redirect.github.com/CodSpeedHQ/codspeed/releases/tag/v5.6.0).\n\n##### Highlights\n\n##### More consistent CPU Simulation results\n\nChanges to your CI environment, like a different path or an extra\nenvironment variable, no longer change the performance. Each benchmark\nnow starts with the same memory layout, reducing the chance of false\nregressions.\n\n##### 🐛 Bug Fixes\n\n- Keep the user\u0027s `HOME` when wrapping commands with sudo by\n[@\u0026#8203;lvaroqui](https://redirect.github.com/lvaroqui) in\n[#\u0026#8203;588](https://redirect.github.com/CodSpeedHQ/codspeed/pull/588)\n\n##### ⚙️ Internals\n\n- Bump pinned valgrind-codspeed to\n[3.26.0-0codspeed10](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/releases/tag/3.26.0-0codspeed10)\nby [@\u0026#8203;adriencaccia](https://redirect.github.com/adriencaccia) in\n[#\u0026#8203;593](https://redirect.github.com/CodSpeedHQ/codspeed/pull/593)\n- fix(callgrind): suppress L3 warning for explicit LL settings by\n[@\u0026#8203;not-matthias](https://redirect.github.com/not-matthias) in\n[CodSpeedHQ/valgrind-codspeed#52](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/pull/52)\n- fix(initimg): stabilize Linux startup stack layout by\n[@\u0026#8203;not-matthias](https://redirect.github.com/not-matthias) in\n[CodSpeedHQ/valgrind-codspeed#53](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/pull/53)\n\n**Full Runner Changelog**:\n\u003chttps://github.com/CodSpeedHQ/codspeed/blob/main/CHANGELOG.md\u003e\n\n#### What\u0027s Changed\n\n- chore: bump runner version to 5.6.0 by\n[@\u0026#8203;github-actions](https://redirect.github.com/github-actions)\\[bot]\nin [#\u0026#8203;253](https://redirect.github.com/CodSpeedHQ/action/pull/253)\n\n**Full Changelog**:\n\u003chttps://github.com/CodSpeedHQ/action/compare/v5.5.0...v5.6.0\u003e\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNzYuMyIsInVwZGF0ZWRJblZlciI6IjQ0LjE3Ni4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "9b0f600f034a10dd98d87538039de845878c071b",
      "tree": "373c99e41e17d28adf17a66b8376ff8c38142fab",
      "parents": [
        "d26e61a9215626927391a513fad1253a4a0266b9"
      ],
      "author": {
        "name": "David Ashpole",
        "email": "dashpole@google.com",
        "time": "Thu Oct 22 14:43:12 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 22 14:43:12 2026 +0000"
      },
      "message": "Use sync.Map for exponential histogram aggregations (#8077)\n\nPart of https://github.com/open-telemetry/opentelemetry-go/issues/7796\n\nThis applies the same approach as I did for fixed-bucket histograms\n(https://github.com/open-telemetry/opentelemetry-go/pull/7474) to\nexponential histograms.\n\n### Changes\n\n*   **Double-Buffered Delta Aggregation**:\n* **Old**: Used a single Go `map` protected by a `sync.Mutex`.\nCollection blocked writers while it iterated over the map and cleared\nit.\n* **New**: Uses a `[2]limitedSyncMap` (a specialized `sync.Map` with\nsize limits). Writers record to a \"hot\" map, while `collect` reads from\na \"cold\" map. A custom `hotColdWaitGroup` orchestrates wait-free\nswapping of these maps, ensuring collection does not block active\nwriters.\n*   **Double-Buffered Cumulative Aggregation**:\n* **Old**: Similar to Delta, used a single map with a global mutex.\n* **New**: To avoid map churn for cumulative metrics, it uses a single\n`limitedSyncMap` mapping to a `cumulativePoint` struct. This struct\ncontains two active data points (hot and cold) and one persistent\ncumulative point. Writers use the hot point, and `collect` swaps them\nand merges the cold point into the cumulative point.\n*   **Fine-Grained Locking**:\n* **Old**: A single mutex locked the entire aggregator for every\nmeasurement (`measure`) and collection (`collect`).\n* **New**: Removed the global lock. `sync.Map` handles concurrent\nlookups, and a mutex is only acquired at the individual data point level\n(`expoHistogramDataPoint`) when recording a value that requires bucket\nexpansion or downscaling.\n\nThis does not make the buckets concurrent-safe. That will be done in\nsubsequent PRs.\n\nThis does not try to prevent concurrent underflow when \u003c\u003d2 maxSize is\nused. We will just keep the lock around buckets for that case. It will\nhave worse performance, but that\u0027s OK.\n\n---------\n\nCo-authored-by: Copilot Autofix powered by AI \u003c175728472+Copilot@users.noreply.github.com\u003e\nCo-authored-by: Robert Pająk \u003cpellared@hotmail.com\u003e"
    },
    {
      "commit": "d26e61a9215626927391a513fad1253a4a0266b9",
      "tree": "a9e2ce7536360cb1187422c46a7f8d3dd3c2509e",
      "parents": [
        "bbe54fb7fb3f640cf60f542ff6689c73d3385762"
      ],
      "author": {
        "name": "Alex Boten",
        "email": "223565+codeboten@users.noreply.github.com",
        "time": "Thu Oct 22 13:31:05 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 22 13:31:05 2026 +0000"
      },
      "message": "chore: use shared fossa workflow (#9256)\n\nSigned-off-by: Alex Boten \u003c223565+codeboten@users.noreply.github.com\u003e\nCo-authored-by: Puneet Singh \u003cpuneet.mir@gmail.com\u003e"
    },
    {
      "commit": "bbe54fb7fb3f640cf60f542ff6689c73d3385762",
      "tree": "3da34e4da2b0749a849b0b000f81117fd379e1fd",
      "parents": [
        "c86e9941f4e6a52d6f26c02a880f1c669a0aa486"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Thu Oct 22 07:42:33 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 22 07:42:33 2026 +0000"
      },
      "message": "Update golang.org/x/telemetry digest to 6cd571d (#9257)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [golang.org/x/telemetry](https://pkg.go.dev/golang.org/x/telemetry) |\nindirect | digest | `7bf0a11` → `6cd571d` |\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNzEuMiIsInVwZGF0ZWRJblZlciI6IjQ0LjE3MS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "c86e9941f4e6a52d6f26c02a880f1c669a0aa486",
      "tree": "3f1bc4b98321430ab97323cde7cefdcab695a7ca",
      "parents": [
        "a3908a15a4981e313e1ce6e5b57e27c5965d671d"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Thu Oct 22 07:42:14 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 22 07:42:14 2026 +0000"
      },
      "message": "Update github/codeql-action action to v4.39.1 (#9258)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n|\n[github/codeql-action](https://redirect.github.com/github/codeql-action)\n| action | patch | `v4.39.0` → `v4.39.1` |\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003egithub/codeql-action\u003c/summary\u003e\n\n###\n[`v4.39.1`](https://redirect.github.com/github/codeql-action/releases/tag/v4.39.1)\n\n[Compare\nSource](https://redirect.github.com/github/codeql-action/compare/v4.39.0...v4.39.1)\n\n- Update default CodeQL bundle version to\n[2.27.3](https://redirect.github.com/github/codeql-action/releases/tag/codeql-bundle-v2.27.3).\n[#\u0026#8203;4256](https://redirect.github.com/github/codeql-action/pull/4256)\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNzEuMiIsInVwZGF0ZWRJblZlciI6IjQ0LjE3MS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "a3908a15a4981e313e1ce6e5b57e27c5965d671d",
      "tree": "4ebfcaac2b1d9ae71d8e78ac0eff4169dc85e965",
      "parents": [
        "5968638e286835fdb40c036fd34711ab9bf4e79d"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Thu Oct 22 07:41:46 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 22 07:41:46 2026 +0000"
      },
      "message": "Update module github.com/nishanths/exhaustive to v0.16.1 (#9260)\n\nThis PR contains the following updates:\n\n| Package | Change |\n[Age](https://docs.renovatebot.com/merge-confidence/) |\n[Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|\n[github.com/nishanths/exhaustive](https://redirect.github.com/nishanths/exhaustive)\n| `v0.16.0` → `v0.16.1` |\n![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fnishanths%2fexhaustive/v0.16.1?slim\u003dtrue)\n|\n![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fnishanths%2fexhaustive/v0.16.0/v0.16.1?slim\u003dtrue)\n|\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003enishanths/exhaustive\n(github.com/nishanths/exhaustive)\u003c/summary\u003e\n\n###\n[`v0.16.1`](https://redirect.github.com/nishanths/exhaustive/compare/v0.16.0...v0.16.1)\n\n[Compare\nSource](https://redirect.github.com/nishanths/exhaustive/compare/v0.16.0...v0.16.1)\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNzEuMiIsInVwZGF0ZWRJblZlciI6IjQ0LjE3MS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "5968638e286835fdb40c036fd34711ab9bf4e79d",
      "tree": "6a5ea72c9fd0ff22b73d10509852d0165dd4f792",
      "parents": [
        "142cbf8f1dff12c848d941c87f27fac952b2c1ca"
      ],
      "author": {
        "name": "Daigo Kijima",
        "email": "norimaking777@gmail.com",
        "time": "Wed Oct 21 17:27:19 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 21 08:27:19 2026 +0000"
      },
      "message": "otlpmetricgrpc: avoid 10s retry wait in TestSelfObservability (#9246)\n\nThe error case of `TestSelfObservability` took 10s because the exporter\nretried the unavailable endpoint until the default export timeout.\nDisable retry, as other tests in the package do.\n\nThe test only needs a failed export to check the self-observability\nmetrics, so retry is not needed.\n\n## Tests\n\n```shell\ncd exporters/otlp/otlpmetric/otlpmetricgrpc\ngo test ./... -run TestSelfObservability\n```\n\nBefore:\n\n```\nok      go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc       10.010s\nok      go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc/internal      0.002s [no tests to run]\nok      go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc/internal/counter      0.002s [no tests to run]\nok      go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc/internal/envconfig    0.002s [no tests to run]\n...\n```\n\nAfter:\n\n```\nok      go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc       0.007s\nok      go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc/internal      0.002s [no tests to run]\nok      go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc/internal/counter      0.002s [no tests to run]\nok      go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc/internal/envconfig    0.002s [no tests to run]\n...\n```"
    },
    {
      "commit": "142cbf8f1dff12c848d941c87f27fac952b2c1ca",
      "tree": "b15a0de17614a49d10fcc9e6a95c8f33a9e5f61e",
      "parents": [
        "ec2a5437bb775534d989a2521ceb69ad4cf8f2d7"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Wed Oct 21 08:26:50 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 21 08:26:50 2026 +0000"
      },
      "message": "Update module github.com/nishanths/exhaustive to v0.16.0 (#9250)\n\nThis PR contains the following updates:\n\n| Package | Change |\n[Age](https://docs.renovatebot.com/merge-confidence/) |\n[Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|\n[github.com/nishanths/exhaustive](https://redirect.github.com/nishanths/exhaustive)\n| `v0.15.1` → `v0.16.0` |\n![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fnishanths%2fexhaustive/v0.16.0?slim\u003dtrue)\n|\n![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fnishanths%2fexhaustive/v0.15.1/v0.16.0?slim\u003dtrue)\n|\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003enishanths/exhaustive\n(github.com/nishanths/exhaustive)\u003c/summary\u003e\n\n###\n[`v0.16.0`](https://redirect.github.com/nishanths/exhaustive/compare/v0.15.1...v0.16.0)\n\n[Compare\nSource](https://redirect.github.com/nishanths/exhaustive/compare/v0.15.1...v0.16.0)\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNzEuMiIsInVwZGF0ZWRJblZlciI6IjQ0LjE3MS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "ec2a5437bb775534d989a2521ceb69ad4cf8f2d7",
      "tree": "769957c6d23aa68f77343765358224d6f3ea04c3",
      "parents": [
        "e423753ad248d7951b1e38adda6ebf13746281f7"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Wed Oct 21 07:05:45 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 21 07:05:45 2026 +0000"
      },
      "message": "Update golang.org/x/telemetry digest to 7bf0a11 (#9249)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [golang.org/x/telemetry](https://pkg.go.dev/golang.org/x/telemetry) |\nindirect | digest | `824aa3d` → `7bf0a11` |\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNzEuMiIsInVwZGF0ZWRJblZlciI6IjQ0LjE3MS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "e423753ad248d7951b1e38adda6ebf13746281f7",
      "tree": "4ba1eca3c894eb5fa3b181ec32e2201cc3ebbd45",
      "parents": [
        "d376be4b23eba030b7b64f471853fc4a18ead0df"
      ],
      "author": {
        "name": "Tyler Yahn",
        "email": "MrAlias@users.noreply.github.com",
        "time": "Tue Oct 20 16:59:29 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 20 16:59:29 2026 -0700"
      },
      "message": "sdk/metric: add internal Finish-aware LastValue aggregation (#9187)\n\nAdd an internal Finish-aware LastValue aggregation for both `int64` and\n`float64`, reusing the existing lifecycle primitive. This is the\naggregation prerequisite for synchronous Gauge support in #8905.\n\nThe aggregation emits the latest recorded value once at the first Finish\ntimestamp, releases the series after collection, and cancels a pending\nFinish when recording resumes. Cumulative collection preserves each\nseries lifetime start; delta collection retires collected state and does\nnot synthesize empty points. Shared cardinality overflow remains\nunfinishable. Stop and context-aware Wait release retained state during\nshutdown.\n\nCollection snapshots the current series before retiring any of them.\nThis bounds a collection to its initial series, so concurrent recording\ninto reclaimed cardinality slots is deferred to a later collection. The\nsnapshot buffer is reused, its references are cleared after each\ncollection, and shutdown releases the buffer.\n\n## Validation\n\n- `make test/sdk/metric ARGS\u003d\u0027-race -run\u003dTestFinishLastValue -count\u003d10\u0027`\n- `make test/sdk/metric ARGS\u003d\u0027-race\u0027`\n- `make precommit`\n\n## Performance\n\nBenchmarks use prebuilt attribute sets and compare stable and\nFinish-aware LastValue recording in serial and parallel modes. Ten\nsamples were collected with `-benchmem -benchtime\u003d100ms -count\u003d10` on\nlinux/amd64, AMD EPYC 7R32, GOMAXPROCS 16.\n\n### Stable recording before/after\n\n```text\ngoos: linux\ngoarch: amd64\npkg: go.opentelemetry.io/otel/sdk/metric/internal/aggregate\ncpu: AMD EPYC 7R32\n                                                             │ before.txt │  after.txt   │\n                                                             │              sec/op              │   sec/op     vs base               │\nFinishLastValueMeasure/Int64/finish\u003dfalse/mode\u003dserial-16                            50.34n ± 5%   51.75n ± 3%  +2.78% (p\u003d0.043 n\u003d10)\nFinishLastValueMeasure/Int64/finish\u003dfalse/mode\u003dparallel-16                          25.32n ± 3%   24.52n ± 1%  -3.20% (p\u003d0.000 n\u003d10)\nFinishLastValueMeasure/Float64/finish\u003dfalse/mode\u003dserial-16                          51.18n ± 3%   53.30n ± 2%  +4.14% (p\u003d0.000 n\u003d10)\nFinishLastValueMeasure/Float64/finish\u003dfalse/mode\u003dparallel-16                        19.86n ± 2%   20.04n ± 7%       ~ (p\u003d1.000 n\u003d10)\ngeomean                                                                             33.74n        34.12n       +1.12%\n\n                                                             │ before.txt │   after.txt   │\n                                                             │               B/op               │    B/op     vs base                 │\nFinishLastValueMeasure/Int64/finish\u003dfalse/mode\u003dserial-16                           0.000 ± 0%     0.000 ± 0%       ~ (p\u003d1.000 n\u003d10) ¹\nFinishLastValueMeasure/Int64/finish\u003dfalse/mode\u003dparallel-16                         0.000 ± 0%     0.000 ± 0%       ~ (p\u003d1.000 n\u003d10) ¹\nFinishLastValueMeasure/Float64/finish\u003dfalse/mode\u003dserial-16                         0.000 ± 0%     0.000 ± 0%       ~ (p\u003d1.000 n\u003d10) ¹\nFinishLastValueMeasure/Float64/finish\u003dfalse/mode\u003dparallel-16                       0.000 ± 0%     0.000 ± 0%       ~ (p\u003d1.000 n\u003d10) ¹\ngeomean                                                                                       ²               +0.00%                ²\n¹ all samples are equal\n² summaries must be \u003e0 to compute geomean\n\n                                                             │ before.txt │   after.txt   │\n                                                             │            allocs/op             │ allocs/op   vs base                 │\nFinishLastValueMeasure/Int64/finish\u003dfalse/mode\u003dserial-16                           0.000 ± 0%     0.000 ± 0%       ~ (p\u003d1.000 n\u003d10) ¹\nFinishLastValueMeasure/Int64/finish\u003dfalse/mode\u003dparallel-16                         0.000 ± 0%     0.000 ± 0%       ~ (p\u003d1.000 n\u003d10) ¹\nFinishLastValueMeasure/Float64/finish\u003dfalse/mode\u003dserial-16                         0.000 ± 0%     0.000 ± 0%       ~ (p\u003d1.000 n\u003d10) ¹\nFinishLastValueMeasure/Float64/finish\u003dfalse/mode\u003dparallel-16                       0.000 ± 0%     0.000 ± 0%       ~ (p\u003d1.000 n\u003d10) ¹\ngeomean                                                                                       ²               +0.00%                ²\n¹ all samples are equal\n² summaries must be \u003e0 to compute geomean\n```\n\n### Stable versus Finish-aware recording\n\n```text\ngoos: linux\ngoarch: amd64\npkg: go.opentelemetry.io/otel/sdk/metric/internal/aggregate\ncpu: AMD EPYC 7R32\n                                                │    false    │                true                 │\n                                                │   sec/op    │   sec/op     vs base                │\nFinishLastValueMeasure/Int64/mode\u003dserial-16       51.75n ± 3%   75.97n ± 1%  +46.82% (p\u003d0.000 n\u003d10)\nFinishLastValueMeasure/Int64/mode\u003dparallel-16     24.52n ± 1%   36.34n ± 3%  +48.26% (p\u003d0.000 n\u003d10)\nFinishLastValueMeasure/Float64/mode\u003dserial-16     53.30n ± 2%   76.79n ± 1%  +44.07% (p\u003d0.000 n\u003d10)\nFinishLastValueMeasure/Float64/mode\u003dparallel-16   20.04n ± 7%   36.20n ± 3%  +80.68% (p\u003d0.000 n\u003d10)\ngeomean                                           34.12n        52.64n       +54.28%\n\n                                                │    false     │                true                 │\n                                                │     B/op     │    B/op     vs base                 │\nFinishLastValueMeasure/Int64/mode\u003dserial-16       0.000 ± 0%     0.000 ± 0%       ~ (p\u003d1.000 n\u003d10) ¹\nFinishLastValueMeasure/Int64/mode\u003dparallel-16     0.000 ± 0%     0.000 ± 0%       ~ (p\u003d1.000 n\u003d10) ¹\nFinishLastValueMeasure/Float64/mode\u003dserial-16     0.000 ± 0%     0.000 ± 0%       ~ (p\u003d1.000 n\u003d10) ¹\nFinishLastValueMeasure/Float64/mode\u003dparallel-16   0.000 ± 0%     0.000 ± 0%       ~ (p\u003d1.000 n\u003d10) ¹\ngeomean                                                      ²               +0.00%                ²\n¹ all samples are equal\n² summaries must be \u003e0 to compute geomean\n\n                                                │    false     │                true                 │\n                                                │  allocs/op   │ allocs/op   vs base                 │\nFinishLastValueMeasure/Int64/mode\u003dserial-16       0.000 ± 0%     0.000 ± 0%       ~ (p\u003d1.000 n\u003d10) ¹\nFinishLastValueMeasure/Int64/mode\u003dparallel-16     0.000 ± 0%     0.000 ± 0%       ~ (p\u003d1.000 n\u003d10) ¹\nFinishLastValueMeasure/Float64/mode\u003dserial-16     0.000 ± 0%     0.000 ± 0%       ~ (p\u003d1.000 n\u003d10) ¹\nFinishLastValueMeasure/Float64/mode\u003dparallel-16   0.000 ± 0%     0.000 ± 0%       ~ (p\u003d1.000 n\u003d10) ¹\ngeomean                                                      ²               +0.00%                ²\n¹ all samples are equal\n² summaries must be \u003e0 to compute geomean\n```"
    },
    {
      "commit": "d376be4b23eba030b7b64f471853fc4a18ead0df",
      "tree": "da9494e53073080fe561356995c5a6c523b509de",
      "parents": [
        "90a3223ee1d46eea72ab97d6b34c5b465b2638ad"
      ],
      "author": {
        "name": "David Ashpole",
        "email": "dashpole@google.com",
        "time": "Tue Oct 20 05:29:15 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 20 09:29:15 2026 +0000"
      },
      "message": "Improve benchmark coverage in exporters/prometheus (#9240)\n\nUpdate `BenchmarkCollect` in `exporters/prometheus` so that it exercises\na representative mix of OpenTelemetry metric aggregations, naming\nconventions, units, scope metadata, and multi-series attributes rather\nthan only single-series, zero-attribute counters:\n\n- Cycle `n` instruments across all four aggregation types supported by\nthe exporter: `Float64Counter`, `Float64Gauge`, explicit-bucket\n`Float64Histogram`, and exponential-bucket `Float64Histogram`\n(configured via a view).\n- Use dotted OpenTelemetry instrument names\n(`http.server.request.count.%d`, `http.server.active_requests.%d`,\n`http.server.request.duration.%d`, `http.client.request.duration.%d`)\nand UCUM units (`{request}`, `s`) to exercise metric and unit name\ntranslation.\n- Include instrumentation scope version and attributes\n(`scope.env\u003dprod`).\n- Record 5 distinct series per instrument with 5 dotted OpenTelemetry\nHTTP attributes (`http.request.method`, `http.route`,\n`http.response.status_code`, `network.protocol.name`, `server.address`).\n- Drop `BenchmarkCollect10000` (keeping `BenchmarkCollect1`,\n`BenchmarkCollect10`, `BenchmarkCollect100`, and `BenchmarkCollect1000`,\nwhere `BenchmarkCollect1000` now collects 5,000 series across 1,000\ninstruments) to reduce total benchmark cases and runner execution time.\n\n### Benchmark Output\n\n```text\ngoos: linux\ngoarch: amd64\npkg: go.opentelemetry.io/otel/exporters/prometheus\ncpu: Intel(R) Xeon(R) CPU @ 2.20GHz\n                                     │  bench.txt   │\n                                     │    sec/op    │\nCollect1/ObservabilityDisabled-24      182.1µ ±  5%\nCollect1/ObservabilityEnabled-24       195.3µ ± 13%\nCollect10/ObservabilityDisabled-24     1.439m ± 10%\nCollect10/ObservabilityEnabled-24      1.412m ±  6%\nCollect100/ObservabilityDisabled-24    11.91m ±  5%\nCollect100/ObservabilityEnabled-24     12.63m ± 16%\nCollect1000/ObservabilityDisabled-24   100.9m ±  6%\nCollect1000/ObservabilityEnabled-24    108.9m ± 11%\ngeomean                                4.312m\n\n                                     │  bench.txt   │\n                                     │     B/op     │\nCollect1/ObservabilityDisabled-24      62.65Ki ± 0%\nCollect1/ObservabilityEnabled-24       62.85Ki ± 0%\nCollect10/ObservabilityDisabled-24     358.8Ki ± 0%\nCollect10/ObservabilityEnabled-24      360.1Ki ± 0%\nCollect100/ObservabilityDisabled-24    3.292Mi ± 0%\nCollect100/ObservabilityEnabled-24     3.297Mi ± 0%\nCollect1000/ObservabilityDisabled-24   32.53Mi ± 0%\nCollect1000/ObservabilityEnabled-24    32.54Mi ± 0%\ngeomean                                1.232Mi\n\n                                     │  bench.txt  │\n                                     │  allocs/op  │\nCollect1/ObservabilityDisabled-24       389.0 ± 0%\nCollect1/ObservabilityEnabled-24        389.0 ± 0%\nCollect10/ObservabilityDisabled-24     4.061k ± 0%\nCollect10/ObservabilityEnabled-24      4.064k ± 0%\nCollect100/ObservabilityDisabled-24    41.37k ± 0%\nCollect100/ObservabilityEnabled-24     41.37k ± 0%\nCollect1000/ObservabilityDisabled-24   413.4k ± 0%\nCollect1000/ObservabilityEnabled-24    413.4k ± 0%\ngeomean                                12.82k\n```\n\nCo-authored-by: Damien Mathieu \u003c42@dmathieu.com\u003e"
    },
    {
      "commit": "90a3223ee1d46eea72ab97d6b34c5b465b2638ad",
      "tree": "cce71336fe16d840cb77944fa3f15322bb3f6353",
      "parents": [
        "1d90fa216c3495d8852607565d2f5402e0b7dbe4"
      ],
      "author": {
        "name": "Saksham Goyal",
        "email": "144555727+Sakshamm-Goyal@users.noreply.github.com",
        "time": "Tue Oct 20 09:20:37 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 20 09:20:37 2026 +0000"
      },
      "message": "stdoutmetric: Preserve input when removing timestamps (#8843)\n\nFixes #8785.\n\n`WithoutTimestamps` now redacts a structural copy for encoding instead\nof replacing aggregation data in the caller-provided `ResourceMetrics`.\nThe copy preserves nil slice semantics while reusing the existing\ntimestamp-redaction logic.\n\nAdds a regression test that exports a gauge and verifies its original\nstart and end timestamps remain unchanged.\n\nValidation:\n- `go test . -run \u0027^TestWithoutTimestampsDoesNotMutateInput$\u0027\n-count\u003d1`\\n- `go test ./...` in `exporters/stdout/stdoutmetric`\\n- `make\nprecommit`\n\n---------\n\nCo-authored-by: Damien Mathieu \u003c42@dmathieu.com\u003e"
    },
    {
      "commit": "1d90fa216c3495d8852607565d2f5402e0b7dbe4",
      "tree": "7e47b1e6c3378df4d0d91c88458181fecc7bcae6",
      "parents": [
        "80b3c89865b59c7a3e639be2a48ef94346e9db07"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Tue Oct 20 08:26:53 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 20 08:26:53 2026 +0000"
      },
      "message": "Update module github.com/nishanths/exhaustive to v0.15.1 (#9241)\n\nThis PR contains the following updates:\n\n| Package | Change |\n[Age](https://docs.renovatebot.com/merge-confidence/) |\n[Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|\n[github.com/nishanths/exhaustive](https://redirect.github.com/nishanths/exhaustive)\n| `v0.15.0` → `v0.15.1` |\n![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fnishanths%2fexhaustive/v0.15.1?slim\u003dtrue)\n|\n![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fnishanths%2fexhaustive/v0.15.0/v0.15.1?slim\u003dtrue)\n|\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003enishanths/exhaustive\n(github.com/nishanths/exhaustive)\u003c/summary\u003e\n\n###\n[`v0.15.1`](https://redirect.github.com/nishanths/exhaustive/compare/v0.15.0...v0.15.1)\n\n[Compare\nSource](https://redirect.github.com/nishanths/exhaustive/compare/v0.15.0...v0.15.1)\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNjQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjE3MS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "80b3c89865b59c7a3e639be2a48ef94346e9db07",
      "tree": "dcaa7c06eed7453dd882461e838cd6d363e220e6",
      "parents": [
        "2589a9aefbcd7d8cb123252e21be0fb499af8078"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Tue Oct 20 07:55:58 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 20 07:55:58 2026 +0000"
      },
      "message": "Update module github.com/nishanths/predeclared to v0.3.1 (#9242)\n\nThis PR contains the following updates:\n\n| Package | Change |\n[Age](https://docs.renovatebot.com/merge-confidence/) |\n[Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|\n[github.com/nishanths/predeclared](https://redirect.github.com/nishanths/predeclared)\n| `v0.3.0` → `v0.3.1` |\n![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fnishanths%2fpredeclared/v0.3.1?slim\u003dtrue)\n|\n![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fnishanths%2fpredeclared/v0.3.0/v0.3.1?slim\u003dtrue)\n|\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003enishanths/predeclared\n(github.com/nishanths/predeclared)\u003c/summary\u003e\n\n###\n[`v0.3.1`](https://redirect.github.com/nishanths/predeclared/compare/v0.3.0...v0.3.1)\n\n[Compare\nSource](https://redirect.github.com/nishanths/predeclared/compare/v0.3.0...v0.3.1)\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNjQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjE2NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "2589a9aefbcd7d8cb123252e21be0fb499af8078",
      "tree": "776201ededdce91861da1fa97464acb39b56173a",
      "parents": [
        "e7f9f7715fa5e6f692981c7ba02051518f88e17c"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Tue Oct 20 07:55:36 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 20 07:55:36 2026 +0000"
      },
      "message": "Update module github.com/timonwong/loggercheck to v0.13.1 (#9243)\n\nThis PR contains the following updates:\n\n| Package | Change |\n[Age](https://docs.renovatebot.com/merge-confidence/) |\n[Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|\n[github.com/timonwong/loggercheck](https://redirect.github.com/timonwong/loggercheck)\n| `v0.13.0` → `v0.13.1` |\n![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2ftimonwong%2floggercheck/v0.13.1?slim\u003dtrue)\n|\n![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2ftimonwong%2floggercheck/v0.13.0/v0.13.1?slim\u003dtrue)\n|\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003etimonwong/loggercheck\n(github.com/timonwong/loggercheck)\u003c/summary\u003e\n\n###\n[`v0.13.1`](https://redirect.github.com/timonwong/loggercheck/releases/tag/v0.13.1)\n\n[Compare\nSource](https://redirect.github.com/timonwong/loggercheck/compare/v0.13.0...v0.13.1)\n\n##### Bug Fixes\n\n- process configuration only once\n([#\u0026#8203;129](https://redirect.github.com/timonwong/loggercheck/issues/129))\n([bd58826](https://redirect.github.com/timonwong/loggercheck/commit/bd5882689a7d6a689d8aaea51c178fd3ca08fa6f))\n\n##### Dependencies\n\n- bump golang.org/x/tools from 0.51.0 to 0.52.0\n([#\u0026#8203;128](https://redirect.github.com/timonwong/loggercheck/issues/128))\n([14532b4](https://redirect.github.com/timonwong/loggercheck/commit/14532b4e53ab793b39109c967f13d99122369837))\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNjQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjE2NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "e7f9f7715fa5e6f692981c7ba02051518f88e17c",
      "tree": "ca293e0497d19cd2d869cf7b08397f3234995109",
      "parents": [
        "983defdf55ffda64c2d3ddebcb85c5a5af2eb08a"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Tue Oct 20 07:55:00 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 20 07:55:00 2026 +0000"
      },
      "message": "Update googleapis to ce908d2 (#9245)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n|\n[google.golang.org/genproto/googleapis/api](https://redirect.github.com/googleapis/go-genproto)\n| indirect | digest | `4341edf` → `ce908d2` |\n|\n[google.golang.org/genproto/googleapis/rpc](https://redirect.github.com/googleapis/go-genproto)\n| indirect | digest | `4341edf` → `ce908d2` |\n|\n[google.golang.org/genproto/googleapis/rpc](https://redirect.github.com/googleapis/go-genproto)\n| require | digest | `4341edf` → `ce908d2` |\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about these\nupdates again.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNjQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjE2NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "983defdf55ffda64c2d3ddebcb85c5a5af2eb08a",
      "tree": "5a6d0eedf04298a14e42abbf97b99de616deb8d2",
      "parents": [
        "3186534bcd9504f4474bc3b5ddc196196749c4ae"
      ],
      "author": {
        "name": "Toni",
        "email": "184365500+ToniAdreal@users.noreply.github.com",
        "time": "Tue Oct 20 01:48:15 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 19 10:48:15 2026 -0700"
      },
      "message": "Fix span snapshot reporting 0 dropped events/links at zero limits (#9238)\n\n## Description\n\nFixes #9237.\n\nWhen the event or link limit is 0 (via `WithRawSpanLimits`),\n`recordingSpan.snapshot()` never copied\n`droppedEventCount`/`droppedLinkCount` into the snapshot, because both\nassignments sat inside `len(queue) \u003e 0` checks and a zero-capacity queue\nis always empty. The recording span itself reported the counts\ncorrectly; only the snapshot handed to processors/exporters on span end\nlost them, reporting 0.\n\nThis moves the two assignments out of the queue-length checks so they\nare copied unconditionally, the same way `droppedAttributeCount` already\nis.\n\n## Link to tracking issue\n\nFixes #9237\n\n## Tests\n\nAdded `TestSnapshotDroppedCountsWithZeroEventAndLinkLimits` in\n`sdk/trace/span_limits_test.go`: with raw zero event/link limits it adds\n3 events and 2 links, checks the live span counts, ends the span, and\nasserts the recorded snapshot reports `DroppedEvents() \u003d\u003d 3` and\n`DroppedLinks() \u003d\u003d 2` with empty event/link lists. The test fails on\nmain (both snapshot counts are 0) and passes with this change.\n\n`go test ./...` in the `sdk` module passes, and `go vet ./trace/` is\nclean.\n\n## Documentation\n\nAdded a `Fixed` entry under Unreleased in `CHANGELOG.md`.\n\n---------\n\nCo-authored-by: Tyler Yahn \u003cMrAlias@users.noreply.github.com\u003e"
    },
    {
      "commit": "3186534bcd9504f4474bc3b5ddc196196749c4ae",
      "tree": "87326202608a8370a5d6c2141bcbd053ae47b674",
      "parents": [
        "5f79e69450aae6bbc46df52ed2d370892e9cf865"
      ],
      "author": {
        "name": "Aman Gupta",
        "email": "kumarguptaaman896@gmail.com",
        "time": "Mon Oct 19 14:51:20 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 19 09:21:20 2026 +0000"
      },
      "message": "[chore] sdk/trace: document supported environment variables (#9010)\n\nFixes #9006\nPart of #2046\n\n## Changes\n\n- `sdk/trace/doc.go`: add an \"Environment Variables\" section using the\nsame format as the OTLP exporter package docs. It covers:\n- `OTEL_TRACES_SAMPLER` and `OTEL_TRACES_SAMPLER_ARG`: supported values,\ncase-insensitivity, and the fallback behavior. These were only mentioned\nin the `WithSampler` doc before, without the list of values.\n- `OTEL_BSP_SCHEDULE_DELAY`, `OTEL_BSP_EXPORT_TIMEOUT`,\n`OTEL_BSP_MAX_QUEUE_SIZE`, `OTEL_BSP_MAX_EXPORT_BATCH_SIZE`. These were\nnot in the public documentation before; the constants are only in\n`internal/env`. The section also describes how a batch size larger than\nthe queue size is handled.\n- The span limit variables, including the fallback to the generic\n`OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` and `OTEL_ATTRIBUTE_COUNT_LIMIT`,\nwhich the `NewSpanLimits` doc does not mention.\n\nEach entry names the option that overrides it. The section does not\nmention the deprecated `WithSpanLimits`.\n\nThis is documentation only, so there is no CHANGELOG entry.\n\n## Verification\n\n- Checked each default and behavior against `sdk/trace/sampler_env.go`,\n`provider.go`, `batch_span_processor.go`, `span_limits.go`, and\n`internal/env/env.go`. I also ran a small program against this branch\nthat checks:\n  - sampler values, including uppercase input\n  - `OTEL_TRACES_SAMPLER_ARG` handling for `0`, unset, `2`, and `x`\n- an unsupported sampler being reported to the error handler, with the\ndefault kept\n- span-specific limits taking precedence over the generic\n`OTEL_ATTRIBUTE_*` limits\n  - a non-integer value falling back to the default\n- `OTEL_BSP_MAX_EXPORT_BATCH_SIZE\u003d200` with\n`OTEL_BSP_MAX_QUEUE_SIZE\u003d100` resulting in a batch size of 100\n- `make precommit` passes, and `git status` is clean afterwards.\n\nNegative `OTEL_BSP_MAX_QUEUE_SIZE` or `OTEL_BSP_MAX_EXPORT_BATCH_SIZE`\nvalues currently cause a panic (#9001). The docs state that valid values\nare positive, as the specification does, and leave the fix to that\nissue.\n\n---------\n\nCo-authored-by: Damien Mathieu \u003c42@dmathieu.com\u003e\nCo-authored-by: Copilot Autofix powered by AI \u003c175728472+Copilot@users.noreply.github.com\u003e"
    },
    {
      "commit": "5f79e69450aae6bbc46df52ed2d370892e9cf865",
      "tree": "cd737095501885c2c51c36060c5625b6f4a33074",
      "parents": [
        "f5033c4041dffa3a7b0ee5e5a8b2b3f0bca61045"
      ],
      "author": {
        "name": "Daigo Kijima",
        "email": "norimaking777@gmail.com",
        "time": "Mon Oct 19 18:01:35 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 19 09:01:35 2026 +0000"
      },
      "message": "otlpmetrichttp: fix swapped WithProxy and WithHTTPClient subtest names (#9228)\n\nIn `TestConfig`, the subtest named `WithProxy` actually tests\n`WithHTTPClient`, and the subtest named `WithHTTPClient` actually tests\n`WithProxy`. This swaps the names.\n\nCo-authored-by: Damien Mathieu \u003c42@dmathieu.com\u003e"
    },
    {
      "commit": "f5033c4041dffa3a7b0ee5e5a8b2b3f0bca61045",
      "tree": "d9a249df7b9dee2cd1cb90a64b66cdab152d5e03",
      "parents": [
        "62a8f3b0aee2295f0e85ead68fbd5cde2e35c90e"
      ],
      "author": {
        "name": "Damien Mathieu",
        "email": "42@dmathieu.com",
        "time": "Mon Oct 19 08:53:56 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 19 08:53:56 2026 +0000"
      },
      "message": "chore: enable merge group (#9225)\n\nThis depends on https://github.com/open-telemetry/community/issues/3787"
    },
    {
      "commit": "62a8f3b0aee2295f0e85ead68fbd5cde2e35c90e",
      "tree": "1b03fb9914a65f3f11985452819ba8f6b5d0e15d",
      "parents": [
        "5d66e27cd16b0830cd320f90d9c61f75dcd5aa5f"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Mon Oct 19 08:31:26 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 19 08:31:26 2026 +0000"
      },
      "message": "Update golang.org/x/telemetry digest to 824aa3d (#9229)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [golang.org/x/telemetry](https://pkg.go.dev/golang.org/x/telemetry) |\nindirect | digest | `b2e8be0` → `824aa3d` |\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNjQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjE2NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "5d66e27cd16b0830cd320f90d9c61f75dcd5aa5f",
      "tree": "ad6c07b7d04050cb3fea26ef2b066c9508492eb8",
      "parents": [
        "57ceaa448c1e2f5149f729ad2c9bf85c4ccdebb2"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Mon Oct 19 08:22:53 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 19 08:22:53 2026 +0000"
      },
      "message": "Update ubuntu:26.04 Docker digest to 4252764 (#9233)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [ubuntu](https://hub.docker.com/_/ubuntu)\n([source](https://git.launchpad.net/cloud-images/+oci/ubuntu-base)) |\ncontainer | digest | `88a381d` → `4252764` |\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNjQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjE2NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "57ceaa448c1e2f5149f729ad2c9bf85c4ccdebb2",
      "tree": "03917a789287b8c98d79bb09a059275c3082766e",
      "parents": [
        "e4006909b9654a0328a1e378cc69d29d00ad7f27"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Mon Oct 19 08:09:31 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 19 08:09:31 2026 +0000"
      },
      "message": "Update module github.com/dlclark/regexp2/v2 to v2.9.1 (#9234)\n\nThis PR contains the following updates:\n\n| Package | Change |\n[Age](https://docs.renovatebot.com/merge-confidence/) |\n[Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|\n[github.com/dlclark/regexp2/v2](https://redirect.github.com/dlclark/regexp2)\n| `v2.9.0` → `v2.9.1` |\n![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fdlclark%2fregexp2%2fv2/v2.9.1?slim\u003dtrue)\n|\n![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fdlclark%2fregexp2%2fv2/v2.9.0/v2.9.1?slim\u003dtrue)\n|\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003edlclark/regexp2 (github.com/dlclark/regexp2/v2)\u003c/summary\u003e\n\n###\n[`v2.9.1`](https://redirect.github.com/dlclark/regexp2/compare/v2.9.0...v2.9.1)\n\n[Compare\nSource](https://redirect.github.com/dlclark/regexp2/compare/v2.9.0...v2.9.1)\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNjQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjE2NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "e4006909b9654a0328a1e378cc69d29d00ad7f27",
      "tree": "2957478db5868ee7ed54a6dbe93af270ea9081ce",
      "parents": [
        "567abee176cb8ccc57a62b2b877a9b75e8abc3a7"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Mon Oct 19 07:54:32 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 19 07:54:32 2026 +0000"
      },
      "message": "Update open-telemetry/shared-workflows action to v0.23.0 (#9235)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n|\n[open-telemetry/shared-workflows](https://redirect.github.com/open-telemetry/shared-workflows)\n| workflow | minor | `v0.22.0` → `v0.23.0` |\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003eopen-telemetry/shared-workflows\u003c/summary\u003e\n\n###\n[`v0.23.0`](https://redirect.github.com/open-telemetry/shared-workflows/releases/tag/v0.23.0)\n\n[Compare\nSource](https://redirect.github.com/open-telemetry/shared-workflows/compare/v0.22.0...v0.23.0)\n\n\u003c!-- Release notes generated using configuration in .github/release.yml\nat v0.23.0 --\u003e\n\n##### What\u0027s Changed\n\n- update runner for fossa workflow by\n[@\u0026#8203;codeboten](https://redirect.github.com/codeboten) in\n[#\u0026#8203;480](https://redirect.github.com/open-telemetry/shared-workflows/pull/480)\n- Allow approved dashboard handoffs to advance to maintainers by\n[@\u0026#8203;trask](https://redirect.github.com/trask) in\n[#\u0026#8203;476](https://redirect.github.com/open-telemetry/shared-workflows/pull/476)\n- Retry Copilot errors once before releasing the review gate by\n[@\u0026#8203;trask](https://redirect.github.com/trask) in\n[#\u0026#8203;477](https://redirect.github.com/open-telemetry/shared-workflows/pull/477)\n- Hide inactive Copilot reviewers from the PR dashboard by\n[@\u0026#8203;trask](https://redirect.github.com/trask) in\n[#\u0026#8203;479](https://redirect.github.com/open-telemetry/shared-workflows/pull/479)\n\n**Full Changelog**:\n\u003chttps://github.com/open-telemetry/shared-workflows/compare/v0.22.0...v0.23.0\u003e\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNjQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjE2NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "567abee176cb8ccc57a62b2b877a9b75e8abc3a7",
      "tree": "4cbdd2787d8354e6e873b6abaa366f3f15a505a0",
      "parents": [
        "b2c6abf90206733aba1b6b4255df0c323dabb63c"
      ],
      "author": {
        "name": "Om Kulkarni",
        "email": "127368012+om7057@users.noreply.github.com",
        "time": "Fri Oct 16 22:28:53 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 09:58:53 2026 -0700"
      },
      "message": "Add CI check for internal/baggage cross-module compatibility (#9200)\n\n## Summary\n\nFixes #9199.\n\n`bridge/opentracing` depends on `internal/baggage`, an internal package\nof the root module, to synchronize OpenTracing span baggage with context\nbaggage. Since `internal/baggage` is not part of any module\u0027s public\nAPI, changes to it are not guarded by the usual API compatibility\ntooling (e.g. `gorelease`), even though `bridge/opentracing` is a\nseparately versioned module that relies on its exact shape.\n\nThis already broke once: the released `v1.47.0` root module is\nincompatible with `bridge/opentracing` v1.46.0 and earlier, because\n`internal/baggage.Item`\u0027s `Value` field became a method. That specific\nbreak is already resolved in the `bridge/opentracing` `v1.47.0` release\n(same coordinated release), so this PR doesn\u0027t change any source, it\nonly adds a check to catch the next one before it ships.\n\n- `verify_internal_baggage_compat.sh` builds a minimal program against\nthe latest released `bridge/opentracing` tag, with the root module (and\n`trace`, `metric`) replaced to point at the local source.\n- `.github/workflows/internal-baggage-compat.yml` runs it in CI on\nchanges to `baggage/` or `internal/baggage/`.\n\nI verified the script actually catches a break: renaming `Item.Value()`\nlocally reproduces the exact failure from #9199, and reverting it passes\nagain.\n\n## Test plan\n\n- [x] `./verify_internal_baggage_compat.sh` passes against current\n`main`.\n- [x] Verified it fails when `internal/baggage.Item.Value()` is renamed,\nreproducing #9199\u0027s exact error.\n- [x] `shellcheck verify_internal_baggage_compat.sh`\n- [x] `make precommit`\n\n---------\n\nCo-authored-by: Tyler Yahn \u003cMrAlias@users.noreply.github.com\u003e"
    },
    {
      "commit": "b2c6abf90206733aba1b6b4255df0c323dabb63c",
      "tree": "55a76505ade75501e665841f07ee85eafb5a2418",
      "parents": [
        "afdbf5aee9af2203c87916097b2078af85fcc746"
      ],
      "author": {
        "name": "Tyler Yahn",
        "email": "MrAlias@users.noreply.github.com",
        "time": "Fri Oct 16 08:27:42 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 08:27:42 2026 -0700"
      },
      "message": "Document the OpenTracing bridge compatibility regression (#9209)\n\nWe introduced a compatibility regression in `go.opentelemetry.io/otel`\nv1.47.0 by changing the internal baggage representation without\npreserving compatibility with previously released OpenTracing bridges.\nApplications using this release with\n`go.opentelemetry.io/otel/bridge/opentracing` v1.46.0 or earlier fail to\ncompile.\n\nDocument the regression and its impact in the bridge README, explicitly\nacknowledge the change that caused it, and provide a command to upgrade\nboth modules to v1.47.0 to restore compilation. Add an Unreleased\nchangelog entry linking to the upgrade instructions.\n\nRelated to #9199.\n\nValidation:\n- `make precommit` passed, including race-enabled tests.\n- `git diff --check` passed.\n- Verified that the released changelog entries are unchanged."
    },
    {
      "commit": "afdbf5aee9af2203c87916097b2078af85fcc746",
      "tree": "c5c79b83cb832258f43b6b3c6f54ecc5e2fd76c6",
      "parents": [
        "303fdea49d2b92f7bd3146bdb7926362b3a53389"
      ],
      "author": {
        "name": "Om Kulkarni",
        "email": "127368012+om7057@users.noreply.github.com",
        "time": "Fri Oct 16 17:03:28 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 13:33:28 2026 +0200"
      },
      "message": "sdk/metric: document supported environment variables (#9015)\n\nFixes #9012, part of #2046.\n\nAdds an Environment Variables section to the\n`go.opentelemetry.io/otel/sdk/metric` package doc, covering:\n\n- `OTEL_METRIC_EXPORT_INTERVAL`\n- `OTEL_METRIC_EXPORT_TIMEOUT`\n- `OTEL_METRICS_EXEMPLAR_FILTER`"
    },
    {
      "commit": "303fdea49d2b92f7bd3146bdb7926362b3a53389",
      "tree": "bf166b3d21fb7e4e0247eab9ee2a4bcf350a6567",
      "parents": [
        "adb1f24085092f15ac4ddc9308ce39560c59f800"
      ],
      "author": {
        "name": "Robert Pająk",
        "email": "pellared@hotmail.com",
        "time": "Fri Oct 16 13:27:47 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 13:27:47 2026 +0200"
      },
      "message": "Remove support for OTEL_GO_X_CARDINALITY_LIMIT (#9210)\n\nPer\nhttps://github.com/open-telemetry/opentelemetry-go/pull/9015#discussion_r4274085278\n\nRemove support for the deprecated `OTEL_GO_X_CARDINALITY_LIMIT`\nenvironment variable in the Metric SDK. Configuration now uses the\ndefault limit of 2000 unless an explicit `WithCardinalityLimit` option\nis provided. Use `WithCardinalityLimit(0)` for unlimited cardinality;\nreader selectors still override the global limit per instrument kind.\n\nRelated to #6980. Completes removal of the environment-variable support\ndeprecated in #7166."
    },
    {
      "commit": "adb1f24085092f15ac4ddc9308ce39560c59f800",
      "tree": "4205ea8ee4f00d3a81cf0a93cf3dd1b46e7124de",
      "parents": [
        "2f383bf106dc21fd700bd730a88f313aec3277c0"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Fri Oct 16 13:18:00 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 13:18:00 2026 +0200"
      },
      "message": "Update module github.com/golangci/golangci-lint/v2 to v2.15.0 (#9227)"
    },
    {
      "commit": "2f383bf106dc21fd700bd730a88f313aec3277c0",
      "tree": "3c9b99dcbab04c97760004d831983f6e83bfae02",
      "parents": [
        "a1fc4ccc5b8599140e90fa2878c80b9ac5a3a794"
      ],
      "author": {
        "name": "Robert Pająk",
        "email": "pellared@hotmail.com",
        "time": "Fri Oct 16 13:08:43 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 13:08:43 2026 +0200"
      },
      "message": "Deprecate the OpenTracing bridge (#9218)\n\nDeprecate `go.opentelemetry.io/otel/bridge/opentracing` and its\n`migration` package for v1.48.0 using Go module and package deprecation\nnotices. Update both READMEs and the changelog with migration guidance\nand state that v1.48.0 is the module\u0027s final planned release.\n\nThis follows the [OpenTracing compatibility deprecation\nannouncement](https://opentelemetry.io/blog/2026/deprecating-opentracing-compatibility/)\nand [specification PR\n#4938](https://github.com/open-telemetry/opentelemetry-specification/pull/4938).\nAdd local lint exemptions for the bridge\u0027s imports of its deprecated\nmigration helpers.\n\nFixes #9216."
    },
    {
      "commit": "a1fc4ccc5b8599140e90fa2878c80b9ac5a3a794",
      "tree": "f6a6e0056774ec17fea92ab0699c1f1c94796952",
      "parents": [
        "fec26970b659b807c5813af12ead3d01cb435564"
      ],
      "author": {
        "name": "Robert Pająk",
        "email": "pellared@hotmail.com",
        "time": "Fri Oct 16 12:38:27 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 12:38:27 2026 +0200"
      },
      "message": "Deprecate the OpenCensus bridge (#9221)\n\nDeprecate the `go.opentelemetry.io/otel/bridge/opencensus` module and\npackage for v1.48.0 using Go module and package deprecation notices.\nUpdate the bridge README and changelog with migration guidance and state\nthat v1.48.0 is the module\u0027s final planned release.\n\nThis follows the deprecated [OpenCensus compatibility\nrequirements](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/compatibility/opencensus.md)\nand the [Sunsetting OpenCensus\nannouncement](https://opentelemetry.io/blog/2023/sunsetting-opencensus/).\nAdd a local lint exemption for the integration test\u0027s import of the\ndeprecated bridge.\n\nFixes #9219."
    },
    {
      "commit": "fec26970b659b807c5813af12ead3d01cb435564",
      "tree": "5121030cfae0d6d06588d6bfcc1e72a323788099",
      "parents": [
        "72505a58a832429b8367451b50e9b938de366654"
      ],
      "author": {
        "name": "Pujitha Paladugu",
        "email": "pujitha.rathna@gmail.com",
        "time": "Fri Oct 16 01:26:36 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 10:26:36 2026 +0200"
      },
      "message": "fix(otlpgrpc): accept \"none\" in WithCompressor without reporting an error (#9056)\n\nMotivation:\notlptracegrpc.WithCompressor and otlpmetricgrpc.WithCompressor only\nrecognised \"gzip\". Any other value, including \"none\" (a valid value for\nthe OTEL_EXPORTER_OTLP_COMPRESSION env vars), reported an error through\nthe global error handler before falling back to no compression. There\nwas\ntherefore no way to disable compression in code, overriding the\nenvironment, without an error being reported. otlploggrpc already\naccepts\n\"none\" and \"\".\n\nApproach:\nTreat \"none\" and \"\" as NoCompression without calling otel.Handle in the\ntrace and metric gRPC exporters, matching otlploggrpc. Unknown values\nstill\nreport an error and fall back to no compression. Docs and changelog\nupdated. The behavior is unchanged except that no error is reported for\n\"none\"/\"\". The separate suggestions in the issue (a typed option,\nrouting\nthe warning through the logger) are not part of this change.\n\nValidation:\n- Added TestCompressorToCompression in both packages (gzip, none, empty,\n  unknown; checks the error handler is called only for unknown).\n- Without the fix, the \"none\" and \"\" cases fail in otlptracegrpc; with\nit\n  they pass.\n- go test . in otlptracegrpc and otlpmetricgrpc: passed. gofmt and go\nvet\n  clean.\n- make lint: the only reported problem is a typecheck error from a\nmissing\ngo-cmp file in the local module cache (environmental, not in the changed\n  code). make precommit was not run in full.\n\nReport: https://github.com/open-telemetry/opentelemetry-go/issues/9055\nSigned-off-by: Pujitha Paladugu\n\u003c10557236+pujitha24@users.noreply.github.com\u003e\nAssisted-by: claude-sonnet-5-5 (via Claude Code)\n\nFixes #9055\n\n---------\n\nSigned-off-by: Pujitha Paladugu \u003c10557236+pujitha24@users.noreply.github.com\u003e\nCo-authored-by: Pujitha Paladugu \u003c10557236+pujitha24@users.noreply.github.com\u003e\nCo-authored-by: Damien Mathieu \u003c42@dmathieu.com\u003e"
    },
    {
      "commit": "72505a58a832429b8367451b50e9b938de366654",
      "tree": "4093384f0de6b673d2d82d6cccc963d88f7027b2",
      "parents": [
        "ebec43ab88d9cb19995f4ec39edd4e272c1f13f0"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Fri Oct 16 09:59:36 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 09:59:36 2026 +0200"
      },
      "message": "Update golang.org/x/telemetry digest to b2e8be0 (#9222)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [golang.org/x/telemetry](https://pkg.go.dev/golang.org/x/telemetry) |\nindirect | digest | `f87725b` → `b2e8be0` |\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNjQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjE2NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "ebec43ab88d9cb19995f4ec39edd4e272c1f13f0",
      "tree": "a3f960986c03a68184b93221f95ec75ef636a028",
      "parents": [
        "e0277baee3d337152934a746ba61a4eb5d9b8a19"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Fri Oct 16 09:49:55 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 09:49:55 2026 +0200"
      },
      "message": "Update module github.com/breml/errchkjson to v0.4.2 (#9226)\n\nThis PR contains the following updates:\n\n| Package | Change |\n[Age](https://docs.renovatebot.com/merge-confidence/) |\n[Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|\n[github.com/breml/errchkjson](https://redirect.github.com/breml/errchkjson)\n| `v0.4.1` → `v0.4.2` |\n![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fbreml%2ferrchkjson/v0.4.2?slim\u003dtrue)\n|\n![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fbreml%2ferrchkjson/v0.4.1/v0.4.2?slim\u003dtrue)\n|\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003ebreml/errchkjson (github.com/breml/errchkjson)\u003c/summary\u003e\n\n###\n[`v0.4.2`](https://redirect.github.com/breml/errchkjson/releases/tag/v0.4.2)\n\n[Compare\nSource](https://redirect.github.com/breml/errchkjson/compare/v0.4.1...v0.4.2)\n\n#### What\u0027s Changed\n\n- Bump golang.org/x/tools from 0.31.0 to 0.33.0 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[#\u0026#8203;60](https://redirect.github.com/breml/errchkjson/pull/60)\n- Bump golang.org/x/tools from 0.33.0 to 0.34.0 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[#\u0026#8203;61](https://redirect.github.com/breml/errchkjson/pull/61)\n- Bump golang.org/x/tools from 0.34.0 to 0.35.0 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[#\u0026#8203;62](https://redirect.github.com/breml/errchkjson/pull/62)\n- Bump golang.org/x/tools from 0.35.0 to 0.36.0 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[#\u0026#8203;63](https://redirect.github.com/breml/errchkjson/pull/63)\n- Bump golang.org/x/tools from 0.36.0 to 0.37.0 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[#\u0026#8203;64](https://redirect.github.com/breml/errchkjson/pull/64)\n- Bump golang.org/x/tools from 0.37.0 to 0.38.0 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[#\u0026#8203;65](https://redirect.github.com/breml/errchkjson/pull/65)\n- Add github actions to dependabot by\n[@\u0026#8203;breml](https://redirect.github.com/breml) in\n[#\u0026#8203;67](https://redirect.github.com/breml/errchkjson/pull/67)\n- Bump actions/go-dependency-submission from 1 to 2 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[#\u0026#8203;68](https://redirect.github.com/breml/errchkjson/pull/68)\n- Bump actions/checkout from 4 to 6 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[#\u0026#8203;70](https://redirect.github.com/breml/errchkjson/pull/70)\n- Bump actions/setup-go from 5 to 6 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[#\u0026#8203;69](https://redirect.github.com/breml/errchkjson/pull/69)\n- Bump actions/cache from 4 to 5 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[#\u0026#8203;72](https://redirect.github.com/breml/errchkjson/pull/72)\n- Bump golang.org/x/tools from 0.38.0 to 0.42.0 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[#\u0026#8203;74](https://redirect.github.com/breml/errchkjson/pull/74)\n- Bump goreleaser/goreleaser-action from 6 to 7 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[#\u0026#8203;75](https://redirect.github.com/breml/errchkjson/pull/75)\n- Bump golang.org/x/tools from 0.42.0 to 0.43.0 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[#\u0026#8203;76](https://redirect.github.com/breml/errchkjson/pull/76)\n- Bump golang.org/x/tools from 0.43.0 to 0.44.0 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[#\u0026#8203;77](https://redirect.github.com/breml/errchkjson/pull/77)\n- Bump golang.org/x/tools from 0.44.0 to 0.45.0 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[#\u0026#8203;78](https://redirect.github.com/breml/errchkjson/pull/78)\n- Bump actions/checkout from 6 to 7 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[#\u0026#8203;80](https://redirect.github.com/breml/errchkjson/pull/80)\n- Bump golang.org/x/tools from 0.45.0 to 0.48.0 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[#\u0026#8203;83](https://redirect.github.com/breml/errchkjson/pull/83)\n- Bump actions/cache from 5 to 6 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[#\u0026#8203;82](https://redirect.github.com/breml/errchkjson/pull/82)\n- Bump actions/setup-go from 6 to 7 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[#\u0026#8203;84](https://redirect.github.com/breml/errchkjson/pull/84)\n- Bump golang.org/x/tools from 0.48.0 to 0.49.0 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[#\u0026#8203;85](https://redirect.github.com/breml/errchkjson/pull/85)\n- fix golangci-lint installation in CI by\n[@\u0026#8203;breml](https://redirect.github.com/breml) in\n[#\u0026#8203;87](https://redirect.github.com/breml/errchkjson/pull/87)\n- Bump golang.org/x/tools from 0.49.0 to 0.50.0 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[#\u0026#8203;86](https://redirect.github.com/breml/errchkjson/pull/86)\n- Bump golang.org/x/tools from 0.50.0 to 0.51.0 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[#\u0026#8203;88](https://redirect.github.com/breml/errchkjson/pull/88)\n\n**Full Changelog**:\n\u003chttps://github.com/breml/errchkjson/compare/v0.4.1...v0.4.2\u003e\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNjQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjE2NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "e0277baee3d337152934a746ba61a4eb5d9b8a19",
      "tree": "c7b1c5ce23f4ddd45a44afe5f506e2c213969dd0",
      "parents": [
        "fd1c202623c1337b2471a255e6c1c3f9dab76598"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Fri Oct 16 09:43:26 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 09:43:26 2026 +0200"
      },
      "message": "Update open-telemetry/shared-workflows action to v0.22.0 (#9223)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n|\n[open-telemetry/shared-workflows](https://redirect.github.com/open-telemetry/shared-workflows)\n| workflow | minor | `v0.21.0` → `v0.22.0` |\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003eopen-telemetry/shared-workflows\u003c/summary\u003e\n\n###\n[`v0.22.0`](https://redirect.github.com/open-telemetry/shared-workflows/releases/tag/v0.22.0)\n\n[Compare\nSource](https://redirect.github.com/open-telemetry/shared-workflows/compare/v0.21.0...v0.22.0)\n\n\u003c!-- Release notes generated using configuration in .github/release.yml\nat v0.22.0 --\u003e\n\n##### What\u0027s Changed\n\n- Promote pull request dashboard to v0.21.0 by\n[@\u0026#8203;otelbot-shared-workflows](https://redirect.github.com/otelbot-shared-workflows)\\[bot]\nin\n[#\u0026#8203;469](https://redirect.github.com/open-telemetry/shared-workflows/pull/469)\n- Add Alex Boten and Piotr Kiełkowicz as approvers by\n[@\u0026#8203;trask](https://redirect.github.com/trask) in\n[#\u0026#8203;470](https://redirect.github.com/open-telemetry/shared-workflows/pull/470)\n- Unblock GitHub Actions queue retries by\n[@\u0026#8203;trask](https://redirect.github.com/trask) in\n[#\u0026#8203;464](https://redirect.github.com/open-telemetry/shared-workflows/pull/464)\n- Remove retired data snapshot rollout flag by\n[@\u0026#8203;trask](https://redirect.github.com/trask) in\n[#\u0026#8203;471](https://redirect.github.com/open-telemetry/shared-workflows/pull/471)\n- Fix GitHub Actions queue collector completion gaps by\n[@\u0026#8203;trask](https://redirect.github.com/trask) in\n[#\u0026#8203;472](https://redirect.github.com/open-telemetry/shared-workflows/pull/472)\n- add fossa workflow by\n[@\u0026#8203;codeboten](https://redirect.github.com/codeboten) in\n[#\u0026#8203;474](https://redirect.github.com/open-telemetry/shared-workflows/pull/474)\n- document the release process by\n[@\u0026#8203;codeboten](https://redirect.github.com/codeboten) in\n[#\u0026#8203;475](https://redirect.github.com/open-telemetry/shared-workflows/pull/475)\n\n**Full Changelog**:\n\u003chttps://github.com/open-telemetry/shared-workflows/compare/v0.21.0...v0.22.0\u003e\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNjQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjE2NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "fd1c202623c1337b2471a255e6c1c3f9dab76598",
      "tree": "c10e7c74fe4b447c43a62f2ec673589cc79fc768",
      "parents": [
        "a99f777e536fe8132591c1cc03c823646537ffcb"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Fri Oct 16 09:35:58 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 09:35:58 2026 +0200"
      },
      "message": "Update module github.com/dlclark/regexp2/v2 to v2.9.0 (#9224)\n\nThis PR contains the following updates:\n\n| Package | Change |\n[Age](https://docs.renovatebot.com/merge-confidence/) |\n[Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|\n[github.com/dlclark/regexp2/v2](https://redirect.github.com/dlclark/regexp2)\n| `v2.8.4` → `v2.9.0` |\n![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fdlclark%2fregexp2%2fv2/v2.9.0?slim\u003dtrue)\n|\n![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fdlclark%2fregexp2%2fv2/v2.8.4/v2.9.0?slim\u003dtrue)\n|\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003edlclark/regexp2 (github.com/dlclark/regexp2/v2)\u003c/summary\u003e\n\n###\n[`v2.9.0`](https://redirect.github.com/dlclark/regexp2/compare/v2.8.4...v2.9.0)\n\n[Compare\nSource](https://redirect.github.com/dlclark/regexp2/compare/v2.8.4...v2.9.0)\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNjQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjE2NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "a99f777e536fe8132591c1cc03c823646537ffcb",
      "tree": "5a08bf8d71784ecb19cd6e19cae619236c488032",
      "parents": [
        "0f7c439e6e5071edfa89c86b2ba1f6000d606f61"
      ],
      "author": {
        "name": "Om Kulkarni",
        "email": "127368012+om7057@users.noreply.github.com",
        "time": "Thu Oct 15 23:08:26 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 15 19:38:26 2026 +0200"
      },
      "message": "Document missing environment variables in internal/x READMEs (#9017)\n\nFixes #9014, part of #2046.\n\n- Adds the Observability and Per-Series Start Timestamps sections to\n`sdk/internal/x/README.md`, which previously documented\n`OTEL_GO_X_RESOURCE` only.\n- Adds the missing `README.md` for\n`exporters/otlp/otlptrace/otlptracehttp/internal/x`, following the\npattern of the equivalent README in `otlptracegrpc`."
    },
    {
      "commit": "0f7c439e6e5071edfa89c86b2ba1f6000d606f61",
      "tree": "2d818f14739c4a71d9dec119fc2d53c5eb74564e",
      "parents": [
        "ededbbffe433cbd700d1192bb4e66f0996fd5758"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Thu Oct 15 15:45:56 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 15 15:45:56 2026 +0200"
      },
      "message": "Update github/codeql-action action to v4.39.0 (#9215)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n|\n[github/codeql-action](https://redirect.github.com/github/codeql-action)\n| action | minor | `v4.38.3` → `v4.39.0` |\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003egithub/codeql-action\u003c/summary\u003e\n\n###\n[`v4.39.0`](https://redirect.github.com/github/codeql-action/releases/tag/v4.39.0)\n\n[Compare\nSource](https://redirect.github.com/github/codeql-action/compare/v4.38.3...v4.39.0)\n\n- *Breaking change*: Bump the minimum required CodeQL bundle version to\n2.20.7.\n[#\u0026#8203;4205](https://redirect.github.com/github/codeql-action/pull/4205)\n- The `codeql-action/analyze` step now validates that a correct argument\nfor the `checkout_path` input has been provided. The `checkout_path`\ninput must be set to the path where the repository that is being\nanalyzed is checked out at on the runner, if that path is something\nother than the workspace root. If the path does not point to a\nrepository checkout or is different from the path that was used by\n`codeql-action/init`, then the CodeQL Action now produces a warning.\n[#\u0026#8203;4148](https://redirect.github.com/github/codeql-action/pull/4148)\n- Resolved an issue with third-party caching implementations that\nprevented caches from being restored correctly.\n[#\u0026#8203;4206](https://redirect.github.com/github/codeql-action/pull/4206)\n- The `codeql-action/start-proxy` step that is used in Code Scanning\nDefault Setup now finds CodeQL releases using the same logic as\n`codeql-action/init`. This primarily benefits customers who are using\nGitHub instances other than `github.com` where the\n`codeql-action/start-proxy` step may previously have been unable to\nlocate recent releases and ended up using outdated versions of the\nprivate registry authentication proxy as a result.\n[#\u0026#8203;4198](https://redirect.github.com/github/codeql-action/pull/4198)\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNjQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjE2NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "ededbbffe433cbd700d1192bb4e66f0996fd5758",
      "tree": "ff724b99d1e8fb49d1d5eb57ed31d40123bdc3a2",
      "parents": [
        "fd5da1cc7c9006072fc3b555b129c5fe915bc0d7"
      ],
      "author": {
        "name": "King Star",
        "email": "mcxin.y@gmail.com",
        "time": "Thu Oct 15 16:20:14 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 15 10:20:14 2026 +0200"
      },
      "message": "test(bridge/opentracing): bind gRPC server to loopback (#8904)\n\n## Summary\n\n- Bind the OpenTracing bridge gRPC test server to an explicit IPv4\nloopback address instead of an unspecified listener address.\n- Surface listener creation failures through the test helper.\n\nThis is a test-only reliability change. It does not affect exported APIs\nor runtime behavior.\n\n## Testing\n\n- Before this change, `go test -timeout 60s ./...` in\n`bridge/opentracing` consistently failed\n`TestBridgeTracer_ExtractAndInject_gRPC` with `error reading server\npreface: EOF`.\n- `go test -timeout 60s -run \u0027^TestBridgeTracer_ExtractAndInject_gRPC$\u0027\n-count\u003d20`\n- `go test -timeout 60s -race -run\n\u0027^TestBridgeTracer_ExtractAndInject_gRPC$\u0027 -count\u003d10`\n- `go test -timeout 60s -race ./...` in `bridge/opentracing`\n\nAll three post-change commands passed. `make precommit` completed\ngeneration, formatting, linting, README, and module checks, and passed\nthe updated bridge test before stopping at an unrelated OTLP gRPC\nintegration test with the same server-preface EOF in the local\nenvironment.\n\n---------\n\nSigned-off-by: King Star \u003cmcxin.y@gmail.com\u003e\nCo-authored-by: Damien Mathieu \u003c42@dmathieu.com\u003e"
    },
    {
      "commit": "fd5da1cc7c9006072fc3b555b129c5fe915bc0d7",
      "tree": "0b14a131eda1ce74604a6eca3fba704231fa90d4",
      "parents": [
        "b718c61f24f7aab441d5e481716a0fb1a416cd46"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Thu Oct 15 10:10:04 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 15 10:10:04 2026 +0200"
      },
      "message": "Update module github.com/stretchr/objx to v0.8.0 (#9206)\n\nThis PR contains the following updates:\n\n| Package | Change |\n[Age](https://docs.renovatebot.com/merge-confidence/) |\n[Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [github.com/stretchr/objx](https://redirect.github.com/stretchr/objx)\n| `v0.7.0` → `v0.8.0` |\n![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fstretchr%2fobjx/v0.8.0?slim\u003dtrue)\n|\n![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fstretchr%2fobjx/v0.7.0/v0.8.0?slim\u003dtrue)\n|\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003estretchr/objx (github.com/stretchr/objx)\u003c/summary\u003e\n\n###\n[`v0.8.0`](https://redirect.github.com/stretchr/objx/releases/tag/v0.8.0)\n\n[Compare\nSource](https://redirect.github.com/stretchr/objx/compare/v0.7.0...v0.8.0)\n\n#### New features\n\n- **`Map.Delete` removes values by selector.** It takes one or more\nselectors in the same dot and bracket notation as `Get` and `Set`,\nremoves the map keys or slice elements they point to, and returns the\nmap so calls can be chained:\n\n  ```go\n  m.Delete(\"books[1].chapters[2].title\", \"draft\")\n  ```\n\nSelectors run in order, so after a slice element is removed, later\nselectors see the shifted indexes. Missing paths and out-of-range\nindexes are ignored. Removing a slice element builds a new slice of the\nsame type (`[]string` stays `[]string`) and leaves the original backing\narray untouched. Maps along the path are modified in place.\n([#\u0026#8203;174](https://redirect.github.com/stretchr/objx/issues/174))\n\n#### What\u0027s Changed\n\n- feat: add Delete method to Map by selector by\n[@\u0026#8203;00200200](https://redirect.github.com/00200200) in\n[#\u0026#8203;174](https://redirect.github.com/stretchr/objx/pull/174)\n\n#### New Contributors\n\n- [@\u0026#8203;00200200](https://redirect.github.com/00200200) made their\nfirst contribution in\n[#\u0026#8203;174](https://redirect.github.com/stretchr/objx/pull/174)\n\n**Full Changelog**:\n\u003chttps://github.com/stretchr/objx/compare/v0.7.0...v0.8.0\u003e\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNTYuMyIsInVwZGF0ZWRJblZlciI6IjQ0LjE1Ni4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "b718c61f24f7aab441d5e481716a0fb1a416cd46",
      "tree": "ec5ceea4ca10b97b3af837f5c37dd06a8b4e99ba",
      "parents": [
        "181c93bd15de1e954a7daf1580d87665e97855cf"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Thu Oct 15 10:00:37 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 15 10:00:37 2026 +0200"
      },
      "message": "Update module github.com/tomarrell/wrapcheck/v2 to v2.13.0 (#9207)\n\nThis PR contains the following updates:\n\n| Package | Change |\n[Age](https://docs.renovatebot.com/merge-confidence/) |\n[Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|\n[github.com/tomarrell/wrapcheck/v2](https://redirect.github.com/tomarrell/wrapcheck)\n| `v2.12.0` → `v2.13.0` |\n![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2ftomarrell%2fwrapcheck%2fv2/v2.13.0?slim\u003dtrue)\n|\n![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2ftomarrell%2fwrapcheck%2fv2/v2.12.0/v2.13.0?slim\u003dtrue)\n|\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003etomarrell/wrapcheck\n(github.com/tomarrell/wrapcheck/v2)\u003c/summary\u003e\n\n###\n[`v2.13.0`](https://redirect.github.com/tomarrell/wrapcheck/releases/tag/v2.13.0):\nReport custom error types\n\n[Compare\nSource](https://redirect.github.com/tomarrell/wrapcheck/compare/v2.12.1...v2.13.0)\n\n#### What\u0027s Changed\n\n- fix: determine error interface implementation in isError by\n[@\u0026#8203;AdamMagued](https://redirect.github.com/AdamMagued) in\n[#\u0026#8203;70](https://redirect.github.com/tomarrell/wrapcheck/pull/70).\nwrapcheck now reports custom error types from external packages, such as\n`*ext.MyErr`, when a function returns them as `error`. You may see new\nreports in code that returns these without wrapping. To ignore a\nspecific constructor, add its signature to `extraIgnoreSigs`.\n\n#### New Contributors\n\n- [@\u0026#8203;AdamMagued](https://redirect.github.com/AdamMagued) made\ntheir first contribution in\n[#\u0026#8203;70](https://redirect.github.com/tomarrell/wrapcheck/pull/70)\n\n**Full Changelog**:\n\u003chttps://github.com/tomarrell/wrapcheck/compare/v2.12.1...v2.13.0\u003e\n\n###\n[`v2.12.1`](https://redirect.github.com/tomarrell/wrapcheck/releases/tag/v2.12.1):\nBuild against gobwas/glob v0 and v1\n\n[Compare\nSource](https://redirect.github.com/tomarrell/wrapcheck/compare/v2.12.0...v2.12.1)\n\n#### What\u0027s Changed\n\n- ci: update actions and read Go version from go.mod by\n[@\u0026#8203;tomarrell](https://redirect.github.com/tomarrell) in\n[#\u0026#8203;67](https://redirect.github.com/tomarrell/wrapcheck/pull/67)\n- fix: build against gobwas/glob v0 and v1 by\n[@\u0026#8203;tomarrell](https://redirect.github.com/tomarrell) in\n[#\u0026#8203;71](https://redirect.github.com/tomarrell/wrapcheck/pull/71).\nwrapcheck compiles whether a build selects gobwas/glob v0.2.3 or v1.0.0,\nand still only requires v0.2.3. When a build selects v1,\n`ignorePackageGlobs` patterns follow v1\u0027s matching rules and a malformed\npattern returns an error. Thanks\n[@\u0026#8203;dsymonds](https://redirect.github.com/dsymonds) for raising\nthis in\n[#\u0026#8203;69](https://redirect.github.com/tomarrell/wrapcheck/issues/69).\n\n**Full Changelog**:\n\u003chttps://github.com/tomarrell/wrapcheck/compare/v2.12.0...v2.12.1\u003e\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNTYuMyIsInVwZGF0ZWRJblZlciI6IjQ0LjE1Ni4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "181c93bd15de1e954a7daf1580d87665e97855cf",
      "tree": "b72688d6d371fac826565e70c5af9a88295f0b23",
      "parents": [
        "e7cb036bea17bdf3dab552edf3e4f7fc39d4ad07"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Thu Oct 15 09:49:40 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 15 09:49:40 2026 +0200"
      },
      "message": "Update otel/weaver Docker tag to v0.28.0 (#9211)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [otel/weaver](https://redirect.github.com/open-telemetry/weaver) |\nstage | minor | `v0.27.0` → `v0.28.0` |\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003eopen-telemetry/weaver (otel/weaver)\u003c/summary\u003e\n\n###\n[`v0.28.0`](https://redirect.github.com/open-telemetry/weaver/releases/tag/v0.28.0):\n0.28.0 - 2026-10-14\n\n[Compare\nSource](https://redirect.github.com/open-telemetry/weaver/compare/v0.27.0...v0.28.0)\n\n##### Release Notes\n\n- Fix the JSON Schema of `SchemaUrl` to describe a string, matching how\nit is serialized.\n([#\u0026#8203;1825](https://redirect.github.com/open-telemetry/weaver/pull/1825)\nby [@\u0026#8203;lmolkova](https://redirect.github.com/lmolkova))\n- Add `[[policy.finding_filters]]` to `.weaver.toml` to suppress policy\nfindings.\n([#\u0026#8203;1820](https://redirect.github.com/open-telemetry/weaver/pull/1820)\nby [@\u0026#8203;lmolkova](https://redirect.github.com/lmolkova))\n- Live-check no longer reports false `invalid_format` and\n`extends_namespace` advice for v2 attributes and templates referenced\nfrom a dependency. The advice now finds attributes the same way as the\nother checks: in the matched signal and attribute groups, or also in the\nwhole registry and its dependencies with `--search-all-attributes`.\nFixes\n[#\u0026#8203;1814](https://redirect.github.com/open-telemetry/weaver/issues/1814)\n-\n([#\u0026#8203;1819](https://redirect.github.com/open-telemetry/weaver/pull/1819)\nby [@\u0026#8203;jerbly](https://redirect.github.com/jerbly))\n- Add vdir documentation and safety features. We no longer untar\nsymlinks or allow\nnon-local files to be extracted.\n([#\u0026#8203;1817](https://redirect.github.com/open-telemetry/weaver/pull/1817)\nby [@\u0026#8203;jsuereth](https://redirect.github.com/jsuereth))\n- Remove `requirement_level` from Entity identity; a warning is emitted\nif `requirement_level` is set. Fixes\n[#\u0026#8203;986](https://redirect.github.com/open-telemetry/weaver/issues/986)\n-\n([#\u0026#8203;1813](https://redirect.github.com/open-telemetry/weaver/pull/1813)\nby [@\u0026#8203;jsuereth](https://redirect.github.com/jsuereth))\n- Fix `registry live-check --emit-otlp-logs` sending findings back to\nits own OTLP listener, which with the default ports made every finding a\nnew sample to check. Live-check now stops at startup with an error when\nthe logs endpoint is its own listener, and logs the endpoint it uses.\n([#\u0026#8203;1782](https://redirect.github.com/open-telemetry/weaver/pull/1782)\nby [@\u0026#8203;jerbly](https://redirect.github.com/jerbly))\n- Fix `OTEL_EXPORTER_OTLP_ENDPOINT` being ignored by `registry emit` and\n`registry live-check --emit-otlp-logs`. When no endpoint is set with\n`--endpoint` / `--otlp-logs-endpoint` or in `.weaver.toml`, the signal\u0027s\n`OTEL_EXPORTER_OTLP_\u003cSIGNAL\u003e_ENDPOINT`, then\n`OTEL_EXPORTER_OTLP_ENDPOINT`, now apply before the\n`http://localhost:4317` default.\n([#\u0026#8203;1782](https://redirect.github.com/open-telemetry/weaver/pull/1782)\nby [@\u0026#8203;jerbly](https://redirect.github.com/jerbly))\n- Add `unref` to v2 signal refinements to unreference inherited\nattributes.\n([#\u0026#8203;1799](https://redirect.github.com/open-telemetry/weaver/pull/1799)\nby [@\u0026#8203;lmolkova](https://redirect.github.com/lmolkova))\n- Support user-provided JQ modules via `jq_modules` in `weaver.yaml` to\nshare custom functions in templates. Fixes\n[#\u0026#8203;565](https://redirect.github.com/open-telemetry/weaver/issues/565)\n-\n([#\u0026#8203;1768](https://redirect.github.com/open-telemetry/weaver/pull/1768)\nby [@\u0026#8203;LJimmy007](https://redirect.github.com/LJimmy007))\n\n##### Install weaver 0.28.0\n\n##### Install prebuilt binaries via shell script\n\n```sh\ncurl --proto \u0027\u003dhttps\u0027 --tlsv1.2 -LsSf https://github.com/open-telemetry/weaver/releases/download/v0.28.0/weaver-installer.sh | sh\n```\n\n##### Install prebuilt binaries via powershell script\n\n```sh\npowershell -ExecutionPolicy Bypass -c \"irm https://github.com/open-telemetry/weaver/releases/download/v0.28.0/weaver-installer.ps1 | iex\"\n```\n\n##### Download weaver 0.28.0\n\n| File | Platform | Checksum |\n|\n-------------------------------------------------------------------------------------------------------------------------------------------------------\n| ------------------- |\n------------------------------------------------------------------------------------------------------------------------------\n|\n|\n[weaver-aarch64-apple-darwin.tar.xz](https://redirect.github.com/open-telemetry/weaver/releases/download/v0.28.0/weaver-aarch64-apple-darwin.tar.xz)\n| Apple Silicon macOS |\n[checksum](https://redirect.github.com/open-telemetry/weaver/releases/download/v0.28.0/weaver-aarch64-apple-darwin.tar.xz.sha256)\n|\n|\n[weaver-x86_64-apple-darwin.tar.xz](https://redirect.github.com/open-telemetry/weaver/releases/download/v0.28.0/weaver-x86_64-apple-darwin.tar.xz)\n| Intel macOS |\n[checksum](https://redirect.github.com/open-telemetry/weaver/releases/download/v0.28.0/weaver-x86_64-apple-darwin.tar.xz.sha256)\n|\n|\n[weaver-x86_64-pc-windows-msvc.zip](https://redirect.github.com/open-telemetry/weaver/releases/download/v0.28.0/weaver-x86_64-pc-windows-msvc.zip)\n| x64 Windows |\n[checksum](https://redirect.github.com/open-telemetry/weaver/releases/download/v0.28.0/weaver-x86_64-pc-windows-msvc.zip.sha256)\n|\n|\n[weaver-x86_64-pc-windows-msvc.msi](https://redirect.github.com/open-telemetry/weaver/releases/download/v0.28.0/weaver-x86_64-pc-windows-msvc.msi)\n| x64 Windows |\n[checksum](https://redirect.github.com/open-telemetry/weaver/releases/download/v0.28.0/weaver-x86_64-pc-windows-msvc.msi.sha256)\n|\n|\n[weaver-aarch64-unknown-linux-gnu.tar.xz](https://redirect.github.com/open-telemetry/weaver/releases/download/v0.28.0/weaver-aarch64-unknown-linux-gnu.tar.xz)\n| ARM64 Linux |\n[checksum](https://redirect.github.com/open-telemetry/weaver/releases/download/v0.28.0/weaver-aarch64-unknown-linux-gnu.tar.xz.sha256)\n|\n|\n[weaver-x86_64-unknown-linux-gnu.tar.xz](https://redirect.github.com/open-telemetry/weaver/releases/download/v0.28.0/weaver-x86_64-unknown-linux-gnu.tar.xz)\n| x64 Linux |\n[checksum](https://redirect.github.com/open-telemetry/weaver/releases/download/v0.28.0/weaver-x86_64-unknown-linux-gnu.tar.xz.sha256)\n|\n|\n[weaver-aarch64-unknown-linux-musl.tar.xz](https://redirect.github.com/open-telemetry/weaver/releases/download/v0.28.0/weaver-aarch64-unknown-linux-musl.tar.xz)\n| ARM64 MUSL Linux |\n[checksum](https://redirect.github.com/open-telemetry/weaver/releases/download/v0.28.0/weaver-aarch64-unknown-linux-musl.tar.xz.sha256)\n|\n|\n[weaver-x86_64-unknown-linux-musl.tar.xz](https://redirect.github.com/open-telemetry/weaver/releases/download/v0.28.0/weaver-x86_64-unknown-linux-musl.tar.xz)\n| x64 MUSL Linux |\n[checksum](https://redirect.github.com/open-telemetry/weaver/releases/download/v0.28.0/weaver-x86_64-unknown-linux-musl.tar.xz.sha256)\n|\n\n##### Verifying GitHub Artifact Attestations\n\nThe artifacts in this release have attestations generated with GitHub\nArtifact Attestations. These can be verified by using the [GitHub\nCLI](https://cli.github.com/manual/gh_attestation_verify):\n\n```sh\ngh attestation verify \u003cfile-path of downloaded artifact\u003e --repo open-telemetry/weaver\n```\n\nYou can also download the attestation from\n[GitHub](https://redirect.github.com/open-telemetry/weaver/attestations)\nand verify against that directly:\n\n```sh\ngh attestation verify \u003cfile-path of downloaded artifact\u003e --bundle \u003cfile-path of downloaded attestation\u003e\n```\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNTYuMyIsInVwZGF0ZWRJblZlciI6IjQ0LjE1Ni4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "e7cb036bea17bdf3dab552edf3e4f7fc39d4ad07",
      "tree": "724da010c5b9a232aaf4095ea2f677f0dcde7db6",
      "parents": [
        "9e5cf3409c24dfbdd883c8f58bfb42072049e672"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Thu Oct 15 09:31:23 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 15 09:31:23 2026 +0200"
      },
      "message": "Update golang.org/x to f0251eb"
    },
    {
      "commit": "9e5cf3409c24dfbdd883c8f58bfb42072049e672",
      "tree": "763e0e36df59062e8a787fc5a7ac301afe020357",
      "parents": [
        "60bcfad4ec74f118ad5cbe05a48be4ecfeac4b28"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Thu Oct 15 09:23:07 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 15 09:23:07 2026 +0200"
      },
      "message": "Update open-telemetry/shared-workflows action to v0.21.0"
    },
    {
      "commit": "60bcfad4ec74f118ad5cbe05a48be4ecfeac4b28",
      "tree": "b034d801ef8d84c87c0b5655c71aeb14f48d2093",
      "parents": [
        "167d633a0313fb4e6c7566184c94019d1cbb3c8c"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Thu Oct 15 09:07:24 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 15 09:07:24 2026 +0200"
      },
      "message": "Update module github.com/grpc-ecosystem/grpc-gateway/v2 to v2.32.0"
    },
    {
      "commit": "167d633a0313fb4e6c7566184c94019d1cbb3c8c",
      "tree": "154977a205051ba16e19d0f0f190a7b773f872ee",
      "parents": [
        "f5d5496da703ee1ce50f877eecd70dc0948a9f23"
      ],
      "author": {
        "name": "Aman Gupta",
        "email": "kumarguptaaman896@gmail.com",
        "time": "Wed Oct 14 22:29:11 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 14 09:59:11 2026 -0700"
      },
      "message": "[chore] sdk/resource: document supported environment variables (#9008)\n\nFixes #9005\nPart of #2046\n\n## Changes\n\n- `sdk/resource/doc.go`: replace the paragraph about\n`OTEL_RESOURCE_ATTRIBUTES` with an \"Environment Variables\" section,\nusing the same format as the OTLP exporter package docs. It covers\n`OTEL_RESOURCE_ATTRIBUTES` and `OTEL_SERVICE_NAME`: format, parsing,\nprecedence, and the `unknown_service:\u003cexecutable\u003e` fallback in\n`Default`. The old paragraph also referred to a \"FromEnv Detector\",\nwhich is not exported; the new text points to `WithFromEnv` instead.\n- `sdk/resource/resource.go`: the `Environment` and\n`EnvironmentWithContext` doc comments mentioned only\n`OTEL_RESOURCE_ATTRIBUTES`, although both functions also read\n`OTEL_SERVICE_NAME`.\n\nThis is documentation only, so there is no CHANGELOG entry.\n\n## Verification\n\n- Checked each documented behavior against `sdk/resource/env.go`,\n`builtin.go`, and `resource.go`, and ran a small program against this\nbranch. It confirmed whitespace trimming, percent-decoding, dropped\npairs reported as `ErrPartialResource`, `OTEL_SERVICE_NAME` taking\nprecedence over `service.name` in `OTEL_RESOURCE_ATTRIBUTES`, the\n`unknown_service:` fallback, and that `Default` caches the result.\n- `make precommit` passes, and `git status` is clean afterwards.\n\nCo-authored-by: Tyler Yahn \u003cMrAlias@users.noreply.github.com\u003e"
    },
    {
      "commit": "f5d5496da703ee1ce50f877eecd70dc0948a9f23",
      "tree": "ae61a618813d98d19b8a008546a611fecf4fd0ca",
      "parents": [
        "c7fba2c49a69f8e59a7c56c3a031ec3048315b33"
      ],
      "author": {
        "name": "Tyler Yahn",
        "email": "MrAlias@users.noreply.github.com",
        "time": "Wed Oct 14 09:48:18 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 14 09:48:18 2026 -0700"
      },
      "message": "sdk/metric: add experimental Float64Counter Finish (#9186)\n\nAdd `metricx.Finisher` to opted-in `Float64Counter` instruments for\ncumulative and delta Sum aggregation. Use the existing `FinishSum`\nlifecycle and a shared counter resolver with `Int64Counter`.\n\nPart of #8905.\n\n## Validation\n\n- `make test/sdk/metric test/sdk/metric/x ARGS\u003d\u0027-race\u0027`\n- `make precommit`\n\n## Performance\n\nRecording benchmarks use a prebuilt attribute set. Ten\nbaseline/implementation samples were alternated using separate test\nbinaries pinned to CPU 15, with `-test.cpu\u003d2 -test.benchtime\u003d200ms`. The\nbaseline is ba40bbdad7424a820ece6c8873fee2fc38ac9ff4 with the new\nrecording benchmark added. Earlier sequential samples had substantial\nhost timing variation, which prompted the alternating comparison.\n\nAll recording cases retain 16 B and one allocation per operation. Stable\nFloat64Counter recording has no statistically significant latency\nchange. Opted-in Float64Counter recording increases by 10.11% as it\nbegins using the Finish lifecycle; the baseline opted-in provider\ndelegates this instrument to the stable implementation. Stable\nInt64Counter recording measures 6.4 ns (3.42%) slower; opted-in\nInt64Counter recording has no statistically significant change. The\nstable recording functions are identical between the revisions, so the\nsmall Int64Counter difference may reflect binary layout or host effects;\nthis is an inference.\n\n```text\ngoos: linux\ngoarch: amd64\npkg: go.opentelemetry.io/otel/sdk/metric/x\ncpu: AMD EPYC 7R32\n                              │ /tmp/float64-finish-alternating-before.txt │ /tmp/float64-finish-alternating-after.txt │\n                              │                   sec/op                   │      sec/op        vs base                │\nInt64CounterRecord/stable-2                                    185.7n ± 1%         192.1n ± 2%   +3.42% (p\u003d0.000 n\u003d10)\nInt64CounterRecord/finish-2                                    213.1n ± 1%         213.8n ± 4%        ~ (p\u003d0.631 n\u003d10)\nFloat64CounterRecord/stable-2                                  191.0n ± 1%         188.6n ± 6%        ~ (p\u003d0.424 n\u003d10)\nFloat64CounterRecord/finish-2                                  191.3n ± 1%         210.7n ± 3%  +10.11% (p\u003d0.000 n\u003d10)\ngeomean                                                        195.0n              201.0n        +3.05%\n\n                              │ /tmp/float64-finish-alternating-before.txt │ /tmp/float64-finish-alternating-after.txt │\n                              │                    B/op                    │       B/op        vs base                 │\nInt64CounterRecord/stable-2                                     16.00 ± 0%         16.00 ± 0%       ~ (p\u003d1.000 n\u003d10) ¹\nInt64CounterRecord/finish-2                                     16.00 ± 0%         16.00 ± 0%       ~ (p\u003d1.000 n\u003d10) ¹\nFloat64CounterRecord/stable-2                                   16.00 ± 0%         16.00 ± 0%       ~ (p\u003d1.000 n\u003d10) ¹\nFloat64CounterRecord/finish-2                                   16.00 ± 0%         16.00 ± 0%       ~ (p\u003d1.000 n\u003d10) ¹\ngeomean                                                         16.00              16.00       +0.00%\n¹ all samples are equal\n\n                              │ /tmp/float64-finish-alternating-before.txt │ /tmp/float64-finish-alternating-after.txt │\n                              │                 allocs/op                  │    allocs/op      vs base                 │\nInt64CounterRecord/stable-2                                     1.000 ± 0%         1.000 ± 0%       ~ (p\u003d1.000 n\u003d10) ¹\nInt64CounterRecord/finish-2                                     1.000 ± 0%         1.000 ± 0%       ~ (p\u003d1.000 n\u003d10) ¹\nFloat64CounterRecord/stable-2                                   1.000 ± 0%         1.000 ± 0%       ~ (p\u003d1.000 n\u003d10) ¹\nFloat64CounterRecord/finish-2                                   1.000 ± 0%         1.000 ± 0%       ~ (p\u003d1.000 n\u003d10) ¹\ngeomean                                                         1.000              1.000       +0.00%\n¹ all samples are equal\n```\n\nFinish benchmarks distinguish repeated calls through a reused slice from\ninline variadic attributes. Reused slices report zero allocations, while\ninline calls allocate a 128-byte variadic array. These ten samples used\nthe existing benchmark settings, `-benchmem -benchtime\u003d300ms -count\u003d10`\n(GOMAXPROCS 16).\n\n```text\ngoos: linux\ngoarch: amd64\npkg: go.opentelemetry.io/otel/sdk/metric/x\ncpu: AMD EPYC 7R32\n                                     │ /tmp/float64-finish-lookup.txt │\n                                     │             sec/op             │\nFloat64CounterFinish/reused-slice-16                      279.1n ± 2%\nFloat64CounterFinish/inline-16                            359.3n ± 3%\ngeomean                                                   316.7n\n\n                                     │ /tmp/float64-finish-lookup.txt │\n                                     │              B/op              │\nFloat64CounterFinish/reused-slice-16                     0.000 ± 0%\nFloat64CounterFinish/inline-16                           128.0 ± 0%\ngeomean                                                             ¹\n¹ summaries must be \u003e0 to compute geomean\n\n                                     │ /tmp/float64-finish-lookup.txt │\n                                     │           allocs/op            │\nFloat64CounterFinish/reused-slice-16                     0.000 ± 0%\nFloat64CounterFinish/inline-16                           1.000 ± 0%\ngeomean                                                             ¹\n¹ summaries must be \u003e0 to compute geomean\n```"
    },
    {
      "commit": "c7fba2c49a69f8e59a7c56c3a031ec3048315b33",
      "tree": "dbdd49aab73d0307cd0f60f823fc402f9b2a9a22",
      "parents": [
        "04672ed2dcd6d8ce14e54f93481c3ba785caa7ca"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Wed Oct 14 15:57:34 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 14 15:57:34 2026 +0200"
      },
      "message": "Update CodSpeedHQ/action action to v5.5.0 (#9204)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [CodSpeedHQ/action](https://redirect.github.com/CodSpeedHQ/action) |\naction | minor | `v5.4.2` → `v5.5.0` |\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003eCodSpeedHQ/action\u003c/summary\u003e\n\n###\n[`v5.5.0`](https://redirect.github.com/CodSpeedHQ/action/releases/tag/v5.5.0)\n\n[Compare\nSource](https://redirect.github.com/CodSpeedHQ/action/compare/v5.4.2...v5.5.0)\n\nBumps the CodSpeed runner to\n[v5.5.0](https://redirect.github.com/CodSpeedHQ/codspeed/releases/tag/v5.5.0).\n\nThis release adds support for Ubuntu 26.04, on both x86_64 and arm64.\nThe officially supported distributions are now Ubuntu 22.04, 24.04 and\n26.04, and Debian 12.\n\nProfile uploads are also faster on GitHub-hosted runners, and archives\nlarger than 5 GiB can now be uploaded.\n\nResults from the [Memory\ninstrument](https://codspeed.io/docs/instruments/memory) are processed\nmuch faster and with less memory on large benchmarks.\n\nThis release also fixes a crash that could affect some `pytest-codspeed`\nbenchmarks since v5.4.2.\n\n##### 🚀 Features\n\n- Split profile archive uploads into concurrent parts by\n[@\u0026#8203;lvaroqui](https://redirect.github.com/lvaroqui) in\n[#\u0026#8203;565](https://redirect.github.com/CodSpeedHQ/codspeed/pull/565)\n\n##### 🐛 Bug Fixes\n\n- Only set `PYTHONPERFSUPPORT` for exec-harness benchmarks by\n[@\u0026#8203;not-matthias](https://redirect.github.com/not-matthias) in\n[#\u0026#8203;584](https://redirect.github.com/CodSpeedHQ/codspeed/pull/584)\n\n##### ⚡ Performance\n\n- Stream memtrack frames and decode them in parallel when finding module\nevents by\n[@\u0026#8203;not-matthias](https://redirect.github.com/not-matthias) in\n[#\u0026#8203;578](https://redirect.github.com/CodSpeedHQ/codspeed/pull/578)\n- Use mimalloc as the runner\u0027s global allocator by\n[@\u0026#8203;not-matthias](https://redirect.github.com/not-matthias) in\n[#\u0026#8203;581](https://redirect.github.com/CodSpeedHQ/codspeed/pull/581)\n\n##### ⚙️ Internals\n\n- Support Ubuntu 26.04 by\n[@\u0026#8203;lvaroqui](https://redirect.github.com/lvaroqui) in\n[#\u0026#8203;574](https://redirect.github.com/CodSpeedHQ/codspeed/pull/574)\n\n**Full Runner Changelog**:\n\u003chttps://github.com/CodSpeedHQ/codspeed/blob/main/CHANGELOG.md\u003e\n\n#### What\u0027s Changed\n\n- ci: migrate to github default arm runners by\n[@\u0026#8203;lvaroqui](https://redirect.github.com/lvaroqui) in\n[#\u0026#8203;250](https://redirect.github.com/CodSpeedHQ/action/pull/250)\n- chore: bump runner version to 5.5.0 by\n[@\u0026#8203;github-actions](https://redirect.github.com/github-actions)\\[bot]\nin [#\u0026#8203;251](https://redirect.github.com/CodSpeedHQ/action/pull/251)\n\n#### New Contributors\n\n- [@\u0026#8203;lvaroqui](https://redirect.github.com/lvaroqui) made their\nfirst contribution in\n[#\u0026#8203;250](https://redirect.github.com/CodSpeedHQ/action/pull/250)\n\n**Full Changelog**:\n\u003chttps://github.com/CodSpeedHQ/action/compare/v5.4.2...v5.5.0\u003e\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNTYuMyIsInVwZGF0ZWRJblZlciI6IjQ0LjE1Ni4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "04672ed2dcd6d8ce14e54f93481c3ba785caa7ca",
      "tree": "6fe6f2f0f7c8f86f359f986341a6f56819161e28",
      "parents": [
        "fe66608e7501c763abfe816cdce27d9bdce4b2d5"
      ],
      "author": {
        "name": "Sash",
        "email": "sash@ela.city",
        "time": "Wed Oct 14 15:12:55 2026 +0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 14 10:12:55 2026 +0200"
      },
      "message": "otlploghttp: decompress gzip responses when Accept-Encoding is explicit (#9181)\n\n## Summary\n\nGo\u0027s HTTP transport decompresses a gzip response only when it added\n`Accept-Encoding` itself. `WithHeaders` can set that header, which is\nallowed by the OTLP/HTTP spec when the client can read gzip. The\ntransport then leaves `Content-Encoding: gzip` and the compressed body\nin place, and `UploadLogs` parsed those bytes as protobuf.\n\n`readResponse` now decompresses a response that still carries\n`Content-Encoding: gzip`. A response Go already decompressed has that\nheader removed, so it is not decoded twice. The configured response\nlimit applies to the decompressed bytes. A gzip error or a body over\nthat limit is not retried. Partial success is still returned once.\n\nA caller that sets `Accept-Encoding: gzip` otherwise sees a successful\nexport, including partial success, fail as invalid protobuf.\n\nFixes #9146\n\n## Test plan\n\n- [x] `TestExplicitGzipResponseDecoding` failed with `proto: cannot\nparse invalid wire-format data` before the change and passes after it\n- [x] `TestExplicitGzipResponseTooLarge` failed with that protobuf error\nbefore the change and now reports the 64-byte limit, once\n- [x] `TestMalformedGzipResponse` returns a non-retryable error\n- [x] `go test -count\u003d1 .` in `otlploghttp` passed\n- [x] `golangci-lint run ./...` in `otlploghttp` reported 0 issues\n\n---------\n\nCo-authored-by: Robert Pająk \u003cpellared@hotmail.com\u003e\nCo-authored-by: Damien Mathieu \u003c42@dmathieu.com\u003e"
    },
    {
      "commit": "fe66608e7501c763abfe816cdce27d9bdce4b2d5",
      "tree": "04a53602cccae14c2525d4d57d828ec4a6f45dac",
      "parents": [
        "7e491a8f9b853630618424c2f2899149834becdc"
      ],
      "author": {
        "name": "Aman Gupta",
        "email": "kumarguptaaman896@gmail.com",
        "time": "Wed Oct 14 13:33:54 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 14 10:03:54 2026 +0200"
      },
      "message": "[chore] exporters/zipkin: document OTEL_EXPORTER_ZIPKIN_ENDPOINT (#9009)\n\nFixes #9007\nPart of #2046\n\n## Changes\n\n- `exporters/zipkin/doc.go`: document `OTEL_EXPORTER_ZIPKIN_ENDPOINT`\nusing the same format as the OTLP exporter package docs. The text covers\nits default, that the value must contain a scheme and host, and that it\nis only used when `New` is called with an empty `collectorURL`. This\nenvironment variable was not mentioned anywhere in the public\ndocumentation before.\n\nThis is documentation only, so there is no CHANGELOG entry.\n\n## Verification\n\n- Checked against `exporters/zipkin/env.go` and `zipkin.go`, and ran a\nsmall program against this branch. It confirmed that `New(\"\")` sends\nspans to the URL from the environment variable, that an explicit\n`collectorURL` takes precedence over it, and that a value without a\nscheme makes `New` return an error.\n- `make precommit` passes, and `git status` is clean afterwards.\n\nCo-authored-by: Damien Mathieu \u003c42@dmathieu.com\u003e"
    },
    {
      "commit": "7e491a8f9b853630618424c2f2899149834becdc",
      "tree": "557d5f3d787ae24589915f439755a535cb3fcaad",
      "parents": [
        "d7e23c1d91e44b5a2957d812cf6ef2714b5f9e7b"
      ],
      "author": {
        "name": "Nitin Kumar Patel",
        "email": "nitinraj844126@gmail.com",
        "time": "Wed Oct 14 13:27:47 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 14 09:57:47 2026 +0200"
      },
      "message": "exporters/prometheus: remove stale NameValidationScheme default from WithTranslationStrategy docs (#9035)\n\nFixes #6450\n\nThe exporter no longer has any dependency on\n`model.NameValidationScheme`: #7421 (released in 1.39.0 /\nexporters/prometheus v0.61.0) removed the branch in `newConfig` that\nread the deprecated variable, dropped the `//nolint:staticcheck` that\ncame with it, and made `otlptranslator.UnderscoreEscapingWithSuffixes`\nthe unconditional default.\n\nThe doc comment on `WithTranslationStrategy` was not updated at the\ntime, so pkg.go.dev still tells users that the default depends on\nwhether `NameValidationScheme` is `legacy` or `utf8`, and that always\ndefaulting to `UnderscoreEscapingWithSuffixes` is a \"planned\" future\nchange. Both statements have been wrong since September 2025 and were\nthe last reference to the legacy validation scheme left in the module.\n\nThis replaces those two paragraphs with a description of the actual\nbehaviour: when the option is not used the default is\n`UnderscoreEscapingWithSuffixes`. `Example_noTranslation` still sets\n`model.NameEscapingScheme`, which is a different, non-deprecated knob\nthat controls how the Prometheus client escapes names on output, so that\nis left as is.\n\nNo behaviour change, so no CHANGELOG entry, matching the convention used\nfor recent doc-comment fixes (#8971, #8972, #8973).\n\nTested with `go vet ./... \u0026\u0026 go test ./... -count\u003d1` in\n`exporters/prometheus` (all packages pass) and `make\ngolangci-lint/exporters/prometheus` (0 issues). The existing\n`TestNewConfig` cases in `config_test.go` already pin the unconditional\ndefault.\n\nNote: this change was prepared with AI assistance; I reviewed the code\nand ran the tests.\n\nCo-authored-by: Tyler Yahn \u003cMrAlias@users.noreply.github.com\u003e\nCo-authored-by: Damien Mathieu \u003c42@dmathieu.com\u003e"
    },
    {
      "commit": "d7e23c1d91e44b5a2957d812cf6ef2714b5f9e7b",
      "tree": "e7497261730e24549e8b47d364db6aeeed35d1fc",
      "parents": [
        "70a7f5a4bc968345670af597d8203b39ea99e4ab"
      ],
      "author": {
        "name": "Yusuf Hussien",
        "email": "yhussien01@gmail.com",
        "time": "Wed Oct 14 10:51:27 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 14 09:51:27 2026 +0200"
      },
      "message": "otlploghttp: accept case-insensitive protobuf Content-Type (#9188)\n\n## Summary\n\nThe OTLP/HTTP log exporter (`otlploghttp`) only parsed the\npartial-success response body when the response `Content-Type` matched\n`application/x-protobuf` exactly:\n\n```go\nif resp.Header.Get(\"Content-Type\") \u003d\u003d \"application/x-protobuf\" {\n```\n\nMedia type tokens are case-insensitive and may carry parameters ([RFC\n9110 §8.3](https://www.rfc-editor.org/rfc/rfc9110#section-8.3)), so a\ncompliant server replying with `Application/X-Protobuf` or\n`application/x-protobuf; charset\u003dutf-8` caused partial-success\ndiagnostics to be silently dropped and the rejected-record count/message\nto be lost.\n\nThis parses the media type with `mime.ParseMediaType` and compares it\ncase-insensitively, ignoring parameters. Malformed media types and\ngenuinely unsupported encodings continue to be treated as non-protobuf.\n\nFixes #9145.\n\n## Changes\n\n- `exporters/otlp/otlplog/otlploghttp/client.go`: replace the exact\nstring comparison with a new `isProtobufContentType` helper.\n- `exporters/otlp/otlplog/otlploghttp/client_test.go`: add\n`TestClientContentType` covering canonical / mixed-case / upper-case /\nparameterized / unsupported / malformed media types, asserting the\npartial-success error is surfaced once and the request is never retried.\n- `CHANGELOG.md`: entry under `Unreleased` → `Fixed`.\n\n## Verification\n\n- `go test ./exporters/otlp/otlplog/otlploghttp/...` passes.\n- `go vet` is clean.\n- Confirmed the new test fails on the unpatched code for `mixed case`,\n`upper case`, and `parameters` subtests, and passes with the fix.\n\n\u003e Note: I see #9145 is currently assigned. I\u0027m happy to close this or\nhand it off if it\u0027s already being handled — just let me know.\n\n---------\n\nSigned-off-by: Yusuf Hussien \u003cyhussien01@gmail.com\u003e\nCo-authored-by: Damien Mathieu \u003c42@dmathieu.com\u003e"
    },
    {
      "commit": "70a7f5a4bc968345670af597d8203b39ea99e4ab",
      "tree": "48cbe7d28d6ca2057b35d1a932d0e573c82581bc",
      "parents": [
        "7aee2a727905b30854c6f07e6aa1c6506d6b5c0d"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Wed Oct 14 09:42:16 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 14 09:42:16 2026 +0200"
      },
      "message": "Update module github.com/Microsoft/go-winio to v0.6.4 (#9198)\n\nThis PR contains the following updates:\n\n| Package | Change |\n[Age](https://docs.renovatebot.com/merge-confidence/) |\n[Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|\n[github.com/Microsoft/go-winio](https://redirect.github.com/Microsoft/go-winio)\n| `v0.6.2` → `v0.6.4` |\n![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fMicrosoft%2fgo-winio/v0.6.4?slim\u003dtrue)\n|\n![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fMicrosoft%2fgo-winio/v0.6.2/v0.6.4?slim\u003dtrue)\n|\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003eMicrosoft/go-winio (github.com/Microsoft/go-winio)\u003c/summary\u003e\n\n###\n[`v0.6.4`](https://redirect.github.com/microsoft/go-winio/releases/tag/v0.6.4)\n\n[Compare\nSource](https://redirect.github.com/Microsoft/go-winio/compare/v0.6.3...v0.6.4)\n\n#### What\u0027s Changed\n\n- Bump golang.org/x/sys from 0.48.0 to 0.49.0 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[microsoft#393](https://redirect.github.com/microsoft/go-winio/pull/393)\n- Fix regression in mkwinsyscall for non SystemDLLs by\n[@\u0026#8203;jterry75](https://redirect.github.com/jterry75) in\n[microsoft#394](https://redirect.github.com/microsoft/go-winio/pull/394)\n\n**Full Changelog**:\n\u003chttps://github.com/microsoft/go-winio/compare/v0.6.3...v0.6.4\u003e\n\n###\n[`v0.6.3`](https://redirect.github.com/microsoft/go-winio/releases/tag/v0.6.3)\n\n[Compare\nSource](https://redirect.github.com/Microsoft/go-winio/compare/v0.6.2...v0.6.3)\n\n#### What\u0027s Changed\n\n- switch back from golang.org/x/sys/execabs to os/exec (go1.19) by\n[@\u0026#8203;thaJeztah](https://redirect.github.com/thaJeztah) in\n[microsoft#317](https://redirect.github.com/microsoft/go-winio/pull/317)\n- Add Go wrappers for Get/SetVirtualDiskInformation win32 APIs. by\n[@\u0026#8203;ambarve](https://redirect.github.com/ambarve) in\n[microsoft#334](https://redirect.github.com/microsoft/go-winio/pull/334)\n- Add support for LX symlinks (0xA000001D) for WSL/MSYS2 compatibility\nby [@\u0026#8203;vagokuln-msft](https://redirect.github.com/vagokuln-msft) in\n[microsoft#336](https://redirect.github.com/microsoft/go-winio/pull/336)\n- backuptar: fix sparse stream handling in seekable exports by\n[@\u0026#8203;rzlink](https://redirect.github.com/rzlink) in\n[microsoft#375](https://redirect.github.com/microsoft/go-winio/pull/375)\n- Bump github.com/sirupsen/logrus from 1.9.3 to 1.10.2 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[microsoft#374](https://redirect.github.com/microsoft/go-winio/pull/374)\n- Pin GitHub Actions to full-length commit SHAs by\n[@\u0026#8203;danfiedler-msft](https://redirect.github.com/danfiedler-msft)\nin\n[microsoft#373](https://redirect.github.com/microsoft/go-winio/pull/373)\n- ci: add windows-2025, remove windows-2019 by\n[@\u0026#8203;thaJeztah](https://redirect.github.com/thaJeztah) in\n[microsoft#378](https://redirect.github.com/microsoft/go-winio/pull/378)\n- Bump actions/checkout from 4.4.0 to 7.0.1 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[microsoft#380](https://redirect.github.com/microsoft/go-winio/pull/380)\n- Bump actions/setup-go from 5.6.0 to 7.0.0 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[microsoft#381](https://redirect.github.com/microsoft/go-winio/pull/381)\n- go.mod: raise minimum go version to go1.24 and use tools directive by\n[@\u0026#8203;thaJeztah](https://redirect.github.com/thaJeztah) in\n[microsoft#348](https://redirect.github.com/microsoft/go-winio/pull/348)\n- Restrict CI workflow token permissions by\n[@\u0026#8203;jterry75](https://redirect.github.com/jterry75) with\n[@\u0026#8203;Copilot](https://redirect.github.com/Copilot) in\n[microsoft#382](https://redirect.github.com/microsoft/go-winio/pull/382)\n- Use go tool to run stringer by\n[@\u0026#8203;thaJeztah](https://redirect.github.com/thaJeztah) in\n[microsoft#383](https://redirect.github.com/microsoft/go-winio/pull/383)\n- ci: update actions and golangci-lint, and fix linting by\n[@\u0026#8203;thaJeztah](https://redirect.github.com/thaJeztah) in\n[microsoft#349](https://redirect.github.com/microsoft/go-winio/pull/349)\n- fix linting issues by\n[@\u0026#8203;thaJeztah](https://redirect.github.com/thaJeztah) in\n[microsoft#325](https://redirect.github.com/microsoft/go-winio/pull/325)\n- Bump golang.org/x/tools to v0.50.0 by\n[@\u0026#8203;jterry75](https://redirect.github.com/jterry75) in\n[microsoft#385](https://redirect.github.com/microsoft/go-winio/pull/385)\n- Resolves race in makeConnectedServerPipe / Close by\n[@\u0026#8203;jterry75](https://redirect.github.com/jterry75) in\n[microsoft#388](https://redirect.github.com/microsoft/go-winio/pull/388)\n- tools/mkwinsyscall: remove errnoERROR_IO_PENDING const by\n[@\u0026#8203;thaJeztah](https://redirect.github.com/thaJeztah) in\n[microsoft#260](https://redirect.github.com/microsoft/go-winio/pull/260)\n- linting: enable dupword, intrange, mirror, gocritic by\n[@\u0026#8203;alexandear](https://redirect.github.com/alexandear) in\n[microsoft#387](https://redirect.github.com/microsoft/go-winio/pull/387)\n- improve interoperability with stdlib sentinel errors and deprecate\naliases by [@\u0026#8203;thaJeztah](https://redirect.github.com/thaJeztah) in\n[microsoft#392](https://redirect.github.com/microsoft/go-winio/pull/392)\n\n#### New Contributors\n\n- [@\u0026#8203;vagokuln-msft](https://redirect.github.com/vagokuln-msft)\nmade their first contribution in\n[microsoft#336](https://redirect.github.com/microsoft/go-winio/pull/336)\n- [@\u0026#8203;rzlink](https://redirect.github.com/rzlink) made their first\ncontribution in\n[microsoft#375](https://redirect.github.com/microsoft/go-winio/pull/375)\n- [@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot]\nmade their first contribution in\n[microsoft#374](https://redirect.github.com/microsoft/go-winio/pull/374)\n- [@\u0026#8203;danfiedler-msft](https://redirect.github.com/danfiedler-msft)\nmade their first contribution in\n[microsoft#373](https://redirect.github.com/microsoft/go-winio/pull/373)\n- [@\u0026#8203;jterry75](https://redirect.github.com/jterry75) with\n[@\u0026#8203;Copilot](https://redirect.github.com/Copilot) made their first\ncontribution in\n[microsoft#382](https://redirect.github.com/microsoft/go-winio/pull/382)\n- [@\u0026#8203;alexandear](https://redirect.github.com/alexandear) made\ntheir first contribution in\n[microsoft#387](https://redirect.github.com/microsoft/go-winio/pull/387)\n\n**Full Changelog**:\n\u003chttps://github.com/microsoft/go-winio/compare/v0.6.2...v0.6.3\u003e\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNTUuMiIsInVwZGF0ZWRJblZlciI6IjQ0LjE1NS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "7aee2a727905b30854c6f07e6aa1c6506d6b5c0d",
      "tree": "bb715089a94bcba2e37afb853b8e8c6674fa51e6",
      "parents": [
        "8d26ea4dfef4b8cba3ad5dfd0aeb6b65370f3164"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Wed Oct 14 09:33:32 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 14 09:33:32 2026 +0200"
      },
      "message": "Update golang.org/x to 2ab7f3c (#9197)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [golang.org/x/exp](https://pkg.go.dev/golang.org/x/exp) | require |\ndigest | `faecfb2` → `2ab7f3c` |\n|\n[golang.org/x/exp/typeparams](https://pkg.go.dev/golang.org/x/exp/typeparams)\n| indirect | digest | `faecfb2` → `2ab7f3c` |\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about these\nupdates again.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNTUuMiIsInVwZGF0ZWRJblZlciI6IjQ0LjE1NS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "8d26ea4dfef4b8cba3ad5dfd0aeb6b65370f3164",
      "tree": "e3076fc4a63027758e46f34e157ddc631e9fc8d2",
      "parents": [
        "271a84209ec7cbcc91a60696b5cdf0933d1e1e12"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Wed Oct 14 09:24:04 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 14 09:24:04 2026 +0200"
      },
      "message": "Update module go.opentelemetry.io/collector/pdata to v1.69.0 (#9202)\n\nThis PR contains the following updates:\n\n| Package | Change |\n[Age](https://docs.renovatebot.com/merge-confidence/) |\n[Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|\n[go.opentelemetry.io/collector/pdata](https://redirect.github.com/open-telemetry/opentelemetry-collector)\n| `v1.68.0` → `v1.69.0` |\n![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fcollector%2fpdata/v1.69.0?slim\u003dtrue)\n|\n![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fcollector%2fpdata/v1.68.0/v1.69.0?slim\u003dtrue)\n|\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003eopen-telemetry/opentelemetry-collector\n(go.opentelemetry.io/collector/pdata)\u003c/summary\u003e\n\n###\n[`v1.69.0`](https://redirect.github.com/open-telemetry/opentelemetry-collector/blob/HEAD/CHANGELOG.md#v1690v01630)\n\n##### 💡 Enhancements 💡\n\n- `cmd/builder`: Add `dist.resource.detection.detectors` to the builder\nconfig, letting distributions opt into a smaller set of\nresourcedetectionprocessor detectors via generated go build tags.\n([#\u0026#8203;16075](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/16075))\n- `cmd/mdatagen`: Generate exporter queue/batch sender defaults from an\nopt-in `sending_queue` field in metadata.yaml. See the [batching\nmigration\nRFC](https://redirect.github.com/open-telemetry/opentelemetry-collector/blob/main/docs/rfcs/batching-migration.md).\n([#\u0026#8203;15963](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15963))\nDeclaring `sending_queue` is opt-in; an exporter that omits it is\nunaffected until it explicitly opts in one at a time during Phase 2 of\nthe migration. Set MDATAGEN_SENDING_QUEUE_OPT_OUT\u003dtrue to generate the\nstandard default for every undeclared exporter while auditing a whole\nrepository.\n- `pkg/pprofile`: Implement Profiles development-version metadata in the\nOTLP receiver and exporters.\n([#\u0026#8203;16147](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/16147),\n[#\u0026#8203;16009](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/16009))\nThe receiver rejects malformed, repeated, or unsupported versions before\ndecoding.\nOTLP exporters send the version associated with their compiled-in\nProfiles schema.\nThe version is not configurable, and existing clients without metadata\nidentify\n  the initial development version.\n\n##### 🧰 Bug fixes 🧰\n\n- `cmd/mdatagen`: Replace the O(n) scan in generated `recordDataPoint`\nwith an O(1) hash lookup, fixing an O(n²) cost per scrape when many data\npoints land on one resource.\n([#\u0026#8203;15912](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15912))\n\n- `cmd/mdatagen`: When both migration gates are enabled, only the latest\nmetric with its v1 attributes is emitted (legacy attributes are no\nlonger included).\n([#\u0026#8203;15979](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15979))\n\n- `pkg/exporterhelper`: Fix sending queue deadlocks when blocked offers\nare cancelled with block_on_overflow enabled.\n([#\u0026#8203;15700](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15700))\n\n- `pkg/exporterhelper`: Drop only the oversized profile when splitting a\nprofiles batch, instead of discarding every profile queued behind it\n([#\u0026#8203;16087](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/16087))\n  Same fix as\n\n- `pkg/exporterhelper`: Drop only the oversized span when splitting a\ntraces batch, instead of discarding every span queued behind it\n([#\u0026#8203;16087](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/16087))\n  Same fix as\n\n- `pkg/pprofile`: Use the profiles dictionary for resource and scope\nattribute strings sent over OTLP/gRPC.\n([#\u0026#8203;15861](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15861))\nThe OTLP/gRPC profiles client now interns attribute strings before\ntransmission, matching the OTLP/HTTP path. The server resolves the\nreferences before exposing pdata to consumers.\n\n- `pkg/xpdata`: Fix `xhash` producing the same hash for different maps\nby length-prefixing keys, strings and bytes.\n([#\u0026#8203;16048](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/16048))\n  All hash values produced by `xhash` change.\n\n\u003c!-- previous-version --\u003e\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNTUuMiIsInVwZGF0ZWRJblZlciI6IjQ0LjE1NS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "271a84209ec7cbcc91a60696b5cdf0933d1e1e12",
      "tree": "346661bcec882227b8b1d8cff40931f340150c4e",
      "parents": [
        "9dcc310a384389947d4205b50d11b38c0fdc4ff2"
      ],
      "author": {
        "name": "Robert Pająk",
        "email": "pellared@hotmail.com",
        "time": "Tue Oct 13 21:44:49 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 13 12:44:49 2026 -0700"
      },
      "message": "fix(otlp): preserve configured HTTP endpoint paths (#9149)\n\nThe Go OTLP/HTTP exporters for logs, traces, and metrics change\nconfigured endpoint paths when they discard escaping or clean generic\nbase segments. For example, `/a%2Fb` becomes `/a/b`, and a generic\n`/a//b/` base loses its repeated slash.\n\nPreserve escaped paths from signal-specific endpoints and\n`WithEndpointURL`, and append each signal\u0027s suffix to generic endpoints\nwithout normalizing the base. Store decoded `Path` and optional\n`RawPath` together for all three exporters and use them directly when\nconstructing request URLs. Retain root and trailing-slash behavior,\ndecoded `WithURLPath` semantics, and option precedence. Update the\nshared metrics/traces configuration templates and their generated files.\n\nFixes #9129.\n\n---------\n\nSigned-off-by: Robert Pajak \u003cpellared@hotmail.com\u003e\nCo-authored-by: Tyler Yahn \u003cMrAlias@users.noreply.github.com\u003e"
    },
    {
      "commit": "9dcc310a384389947d4205b50d11b38c0fdc4ff2",
      "tree": "9294576d28ec8ab77e4bcc2293baa5fcf9a7195d",
      "parents": [
        "b2985057badb799eaf027e3eac51b8bd8bb1c993"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Tue Oct 13 12:24:51 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 13 12:24:51 2026 -0700"
      },
      "message": "Update open-telemetry/shared-workflows action to v0.20.0 (#9196)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n|\n[open-telemetry/shared-workflows](https://redirect.github.com/open-telemetry/shared-workflows)\n| workflow | minor | `v0.18.0` → `v0.20.0` |\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003eopen-telemetry/shared-workflows\u003c/summary\u003e\n\n###\n[`v0.20.0`](https://redirect.github.com/open-telemetry/shared-workflows/releases/tag/v0.20.0)\n\n[Compare\nSource](https://redirect.github.com/open-telemetry/shared-workflows/compare/v0.19.0...v0.20.0)\n\n\u003c!-- Release notes generated using configuration in .github/release.yml\nat v0.20.0 --\u003e\n\n##### What\u0027s Changed\n\n- Promote pull request dashboard to v0.19.0 by\n[@\u0026#8203;otelbot-shared-workflows](https://redirect.github.com/otelbot-shared-workflows)\\[bot]\nin\n[#\u0026#8203;449](https://redirect.github.com/open-telemetry/shared-workflows/pull/449)\n- Separate live dashboard refreshes from maintenance work by\n[@\u0026#8203;trask](https://redirect.github.com/trask) in\n[#\u0026#8203;453](https://redirect.github.com/open-telemetry/shared-workflows/pull/453)\n- Bump scorecard-action to 2.5.0 + revert local workaround by\n[@\u0026#8203;Kielek](https://redirect.github.com/Kielek) in\n[#\u0026#8203;457](https://redirect.github.com/open-telemetry/shared-workflows/pull/457)\n- Remove dashboard code_ref compatibility after promotion by\n[@\u0026#8203;trask](https://redirect.github.com/trask) in\n[#\u0026#8203;438](https://redirect.github.com/open-telemetry/shared-workflows/pull/438)\n- Isolate Git checkouts for queue-owned dashboard processors by\n[@\u0026#8203;trask](https://redirect.github.com/trask) in\n[#\u0026#8203;454](https://redirect.github.com/open-telemetry/shared-workflows/pull/454)\n- Handle Copilot review quota exhaustion by\n[@\u0026#8203;trask](https://redirect.github.com/trask) in\n[#\u0026#8203;452](https://redirect.github.com/open-telemetry/shared-workflows/pull/452)\n- Add snapshot-only storage for generated data branches by\n[@\u0026#8203;trask](https://redirect.github.com/trask) in\n[#\u0026#8203;436](https://redirect.github.com/open-telemetry/shared-workflows/pull/436)\n- Add Go repositories to the pull request dashboard by\n[@\u0026#8203;MrAlias](https://redirect.github.com/MrAlias) in\n[#\u0026#8203;458](https://redirect.github.com/open-telemetry/shared-workflows/pull/458)\n\n##### New Contributors\n\n- [@\u0026#8203;Kielek](https://redirect.github.com/Kielek) made their first\ncontribution in\n[#\u0026#8203;457](https://redirect.github.com/open-telemetry/shared-workflows/pull/457)\n\n**Full Changelog**:\n\u003chttps://github.com/open-telemetry/shared-workflows/compare/v0.19.0...v0.20.0\u003e\n\n###\n[`v0.19.0`](https://redirect.github.com/open-telemetry/shared-workflows/releases/tag/v0.19.0)\n\n[Compare\nSource](https://redirect.github.com/open-telemetry/shared-workflows/compare/v0.18.0...v0.19.0)\n\n\u003c!-- Release notes generated using configuration in .github/release.yml\nat v0.19.0 --\u003e\n\n#### What\u0027s Changed\n\n- Promote pull request dashboard to v0.18.0 by\n[@\u0026#8203;otelbot-shared-workflows](https://redirect.github.com/otelbot-shared-workflows)\\[bot]\nin\n[#\u0026#8203;437](https://redirect.github.com/open-telemetry/shared-workflows/pull/437)\n- Require clean Copilot reviews for OBI by\n[@\u0026#8203;MrAlias](https://redirect.github.com/MrAlias) in\n[#\u0026#8203;431](https://redirect.github.com/open-telemetry/shared-workflows/pull/431)\n- Request initial Copilot reviews through the dashboard app by\n[@\u0026#8203;trask](https://redirect.github.com/trask) in\n[#\u0026#8203;444](https://redirect.github.com/open-telemetry/shared-workflows/pull/444)\n- Recover stalled dashboard publisher runs by\n[@\u0026#8203;trask](https://redirect.github.com/trask) in\n[#\u0026#8203;440](https://redirect.github.com/open-telemetry/shared-workflows/pull/440)\n- Own dashboard execution with durable queue leases by\n[@\u0026#8203;trask](https://redirect.github.com/trask) in\n[#\u0026#8203;441](https://redirect.github.com/open-telemetry/shared-workflows/pull/441)\n\n#### New Contributors\n\n- [@\u0026#8203;MrAlias](https://redirect.github.com/MrAlias) made their\nfirst contribution in\n[#\u0026#8203;431](https://redirect.github.com/open-telemetry/shared-workflows/pull/431)\n\n**Full Changelog**:\n\u003chttps://github.com/open-telemetry/shared-workflows/compare/v0.18.0...v0.19.0\u003e\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNTUuMiIsInVwZGF0ZWRJblZlciI6IjQ0LjE1NS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "b2985057badb799eaf027e3eac51b8bd8bb1c993",
      "tree": "11634c554d4b49179757ec4f08fb4c1ce2c8dfc1",
      "parents": [
        "9cd2db4d3dece664e6824a0575986b72ff0aa4ad"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Tue Oct 13 11:47:01 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 13 11:47:01 2026 -0700"
      },
      "message": "Update golang.org/x/telemetry digest to f87725b (#9194)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [golang.org/x/telemetry](https://pkg.go.dev/golang.org/x/telemetry) |\nindirect | digest | `3c2f983` → `f87725b` |\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNTUuMiIsInVwZGF0ZWRJblZlciI6IjQ0LjE1NS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "9cd2db4d3dece664e6824a0575986b72ff0aa4ad",
      "tree": "9a1db7b28a7efe9b2461010c81c31c65eae1c022",
      "parents": [
        "fa0b67624bd6373db48d65b2ed25c405187a0791"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Tue Oct 13 10:18:27 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 13 10:18:27 2026 +0200"
      },
      "message": "Update module github.com/stretchr/objx to v0.7.0 (#9191)\n\nThis PR contains the following updates:\n\n| Package | Change |\n[Age](https://docs.renovatebot.com/merge-confidence/) |\n[Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [github.com/stretchr/objx](https://redirect.github.com/stretchr/objx)\n| `v0.5.3` → `v0.7.0` |\n![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fstretchr%2fobjx/v0.7.0?slim\u003dtrue)\n|\n![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fstretchr%2fobjx/v0.5.3/v0.7.0?slim\u003dtrue)\n|\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003estretchr/objx (github.com/stretchr/objx)\u003c/summary\u003e\n\n###\n[`v0.7.0`](https://redirect.github.com/stretchr/objx/releases/tag/v0.7.0)\n\n[Compare\nSource](https://redirect.github.com/stretchr/objx/compare/v0.6.0...v0.7.0)\n\n##### Upgrade notes\n\n##### Behavior changes\n\n- **`Has` now reports keys whose value is `nil`.** `Map.Has` used to\nreturn `false` both for missing keys and for keys set to `nil`, so the\ntwo couldn\u0027t be told apart. It now returns `true` whenever the selector\nexists, including nested keys, bracket keys and slice indexes that hold\n`nil`. If you relied on `Has` to mean \"set and not nil\", use\n`!m.Get(selector).IsNil()` instead.\n([#\u0026#8203;172](https://redirect.github.com/stretchr/objx/issues/172))\n\n##### Other\n\n- Added a contributing guide\n([#\u0026#8203;183](https://redirect.github.com/stretchr/objx/issues/183)), a\nsecurity policy\n([#\u0026#8203;182](https://redirect.github.com/stretchr/objx/issues/182))\nand issue templates\n([#\u0026#8203;184](https://redirect.github.com/stretchr/objx/issues/184)).\n- The Go workflow token is now restricted to read-only contents\n([#\u0026#8203;181](https://redirect.github.com/stretchr/objx/issues/181)).\n\n##### What\u0027s Changed\n\n- Restrict the Go workflow token to read-only contents by\n[@\u0026#8203;hanzei](https://redirect.github.com/hanzei) in\n[#\u0026#8203;181](https://redirect.github.com/stretchr/objx/pull/181)\n- Add a security policy by\n[@\u0026#8203;hanzei](https://redirect.github.com/hanzei) in\n[#\u0026#8203;182](https://redirect.github.com/stretchr/objx/pull/182)\n- Add a contributing guide by\n[@\u0026#8203;hanzei](https://redirect.github.com/hanzei) in\n[#\u0026#8203;183](https://redirect.github.com/stretchr/objx/pull/183)\n- Add bug report and feature request issue templates by\n[@\u0026#8203;hanzei](https://redirect.github.com/hanzei) in\n[#\u0026#8203;184](https://redirect.github.com/stretchr/objx/pull/184)\n- Differentiate nil values from missing keys in Map.Has by\n[@\u0026#8203;AdamMagued](https://redirect.github.com/AdamMagued) in\n[#\u0026#8203;172](https://redirect.github.com/stretchr/objx/pull/172)\n\n##### New Contributors\n\n- [@\u0026#8203;AdamMagued](https://redirect.github.com/AdamMagued) made\ntheir first contribution in\n[#\u0026#8203;172](https://redirect.github.com/stretchr/objx/pull/172)\n\n**Full Changelog**:\n\u003chttps://github.com/stretchr/objx/compare/v0.6.0...v0.7.0\u003e\n\n###\n[`v0.6.0`](https://redirect.github.com/stretchr/objx/releases/tag/v0.6.0)\n\n[Compare\nSource](https://redirect.github.com/stretchr/objx/compare/v0.5.3...v0.6.0)\n\n##### Upgrade notes\n\n**Go 1.25 or later is now required** (previously Go 1.20).\n([#\u0026#8203;175](https://redirect.github.com/stretchr/objx/issues/175))\n\n##### Behavior changes\n\n- **`Where*` now returns the items the decider selects.** Previously\nevery `Where*` method (`WhereInt`, `WhereStr`, `WhereMSI`,\n`WhereObjxMap`, …) returned the items for which the decider returned\n`false`, the opposite of what its documentation says. If you negated\nyour decider to work around this, remove the negation.\n([#\u0026#8203;180](https://redirect.github.com/stretchr/objx/issues/180))\n- **Indexed `Set` updates the element instead of replacing the slice.**\n`Set(\"names[0]\", \"Mat\")` used to replace the whole `names` slice with\n`\"Mat\"`; it now sets only the first element. Indexing into a value that\nisn\u0027t a slice (e.g. `Get(\"name[0]\")` on a string) now returns a missing\nvalue instead of the value itself.\n([#\u0026#8203;170](https://redirect.github.com/stretchr/objx/issues/170))\n- **Nil slices and maps stay `null` in JSON.** `objx.Map{\"items\":\n[]any(nil)}` now encodes as `{\"items\":null}` instead of `{\"items\":[]}`.\nEmpty, non-nil containers still encode as `[]` / `{}`.\n([#\u0026#8203;171](https://redirect.github.com/stretchr/objx/issues/171))\n- **`URLValues` keeps every element of a slice of maps.** With the `[]`\nand `\"\"` key suffixes, only the last element\u0027s values used to be kept.\n`[]any` values (e.g. arrays decoded from JSON) are now encoded element\nby element instead of as a Go-syntax string.\n([#\u0026#8203;177](https://redirect.github.com/stretchr/objx/issues/177))\n- The error returned by `SetURLValuesSliceKeySuffix` for an invalid\nsuffix now reads `objx: invalid URLValuesSliceKeySuffix provided`.\n([#\u0026#8203;176](https://redirect.github.com/stretchr/objx/issues/176))\n\n##### Other\n\n- The API now uses `any` instead of `interface{}`. They are the same\ntype, so this doesn\u0027t affect callers.\n([#\u0026#8203;175](https://redirect.github.com/stretchr/objx/issues/175))\n- The type-specific accessors are now generated with `go generate`\n([#\u0026#8203;179](https://redirect.github.com/stretchr/objx/issues/179)),\nand CI runs golangci-lint\n([#\u0026#8203;176](https://redirect.github.com/stretchr/objx/issues/176),\n[#\u0026#8203;178](https://redirect.github.com/stretchr/objx/issues/178)).\n\n##### What\u0027s Changed\n\n- Bump actions/checkout from 5 to 6 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[#\u0026#8203;163](https://redirect.github.com/stretchr/objx/pull/163)\n- Fix flaky TestConversionURLValues when run with -shuffle by\n[@\u0026#8203;hanzei](https://redirect.github.com/hanzei) in\n[#\u0026#8203;165](https://redirect.github.com/stretchr/objx/pull/165)\n- Bump go-task/setup-task from 1 to 2 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[#\u0026#8203;166](https://redirect.github.com/stretchr/objx/pull/166)\n- Bump actions/checkout from 6 to 7 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[#\u0026#8203;167](https://redirect.github.com/stretchr/objx/pull/167)\n- Bump actions/setup-go from 6 to 7 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[#\u0026#8203;168](https://redirect.github.com/stretchr/objx/pull/168)\n- Preserve slices when setting an indexed value by\n[@\u0026#8203;vitalivo](https://redirect.github.com/vitalivo) in\n[#\u0026#8203;170](https://redirect.github.com/stretchr/objx/pull/170)\n- Preserve null values when converting nil containers to JSON by\n[@\u0026#8203;x0Lazarus](https://redirect.github.com/x0Lazarus) in\n[#\u0026#8203;171](https://redirect.github.com/stretchr/objx/pull/171)\n- Modernize: use any, require Go 1.25, apply go fix by\n[@\u0026#8203;hanzei](https://redirect.github.com/hanzei) in\n[#\u0026#8203;175](https://redirect.github.com/stretchr/objx/pull/175)\n- Add golangci-lint and run it in CI by\n[@\u0026#8203;hanzei](https://redirect.github.com/hanzei) in\n[#\u0026#8203;176](https://redirect.github.com/stretchr/objx/pull/176)\n- Enable more linters and the gofumpt and goimports formatters by\n[@\u0026#8203;hanzei](https://redirect.github.com/hanzei) in\n[#\u0026#8203;178](https://redirect.github.com/stretchr/objx/pull/178)\n- Cover nested URL values and keep repeated map-slice entries by\n[@\u0026#8203;hanzei](https://redirect.github.com/hanzei) in\n[#\u0026#8203;177](https://redirect.github.com/stretchr/objx/pull/177)\n- Replace the browser-based codegen with go generate by\n[@\u0026#8203;hanzei](https://redirect.github.com/hanzei) in\n[#\u0026#8203;179](https://redirect.github.com/stretchr/objx/pull/179)\n- Fix Where\\* returning the items the decider rejected by\n[@\u0026#8203;hanzei](https://redirect.github.com/hanzei) in\n[#\u0026#8203;180](https://redirect.github.com/stretchr/objx/pull/180)\n\n##### New Contributors\n\n- [@\u0026#8203;vitalivo](https://redirect.github.com/vitalivo) made their\nfirst contribution in\n[#\u0026#8203;170](https://redirect.github.com/stretchr/objx/pull/170)\n- [@\u0026#8203;x0Lazarus](https://redirect.github.com/x0Lazarus) made their\nfirst contribution in\n[#\u0026#8203;171](https://redirect.github.com/stretchr/objx/pull/171)\n\n**Full Changelog**:\n\u003chttps://github.com/stretchr/objx/compare/v0.5.3...v0.6.0\u003e\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/open-telemetry/opentelemetry-go).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMzQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjEzNC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ\u003d\u003d--\u003e\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "fa0b67624bd6373db48d65b2ed25c405187a0791",
      "tree": "22bfbe1e376d5e2b5d624f85f2ba3df8dd5aa1c4",
      "parents": [
        "6c0926978301a76d504b10ecaa59b8bf51990247"
      ],
      "author": {
        "name": "Minh Vu",
        "email": "vuhoangminh97@gmail.com",
        "time": "Tue Oct 13 10:10:21 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 13 10:10:21 2026 +0200"
      },
      "message": "sdk/log: Reject overflowing export durations (#9081)\n\n**What**\n- Reject overflowing log export durations.\n\n**Why**\n- Large values can become tiny intervals or very long timeouts.\n\n**Implementation**\n- Check the bounds before multiplying by `time.Millisecond`.\n- Report invalid values and use the defaults.\n\n---------\n\nCo-authored-by: Damien Mathieu \u003c42@dmathieu.com\u003e"
    }
  ],
  "next": "6c0926978301a76d504b10ecaa59b8bf51990247"
}
