Skip to content

Update opentelemetry-go monorepo - #428

Open
red-hat-konflux[bot] wants to merge 1 commit into
mainfrom
konflux/mintmaker/main/opentelemetry-go-monorepo
Open

Update opentelemetry-go monorepo#428
red-hat-konflux[bot] wants to merge 1 commit into
mainfrom
konflux/mintmaker/main/opentelemetry-go-monorepo

Conversation

@red-hat-konflux

@red-hat-konflux red-hat-konflux Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
go.opentelemetry.io/otel v1.44.0v1.45.0 age confidence
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.20.0v0.21.0 age confidence
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.44.0v1.45.0 age confidence
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.44.0v1.45.0 age confidence
go.opentelemetry.io/otel/log v0.20.0v0.21.0 age confidence
go.opentelemetry.io/otel/metric v1.44.0v1.45.0 age confidence
go.opentelemetry.io/otel/sdk v1.44.0v1.45.0 age confidence
go.opentelemetry.io/otel/sdk/log v0.20.0v0.21.0 age confidence
go.opentelemetry.io/otel/trace v1.44.0v1.45.0 age confidence

Warning

Some dependencies could not be looked up. Check the warning logs for more information.


Release Notes

open-telemetry/opentelemetry-go (go.opentelemetry.io/otel)

v1.45.0: /v0.67.0/v0.21.0/v0.0.18

Compare Source

Overview
Added
  • Add experimental observability metrics to BatchProcessor in go.opentelemetry.io/otel/sdk/log. (#​7124)
  • Add the experimental WithUnsafeAttributes no-copy attribute option to go.opentelemetry.io/otel/metric/x for future performance improvements. This API is a work in progress. (#​8251)
  • Add Map and MapValue functions for the new MAP attribute type in go.opentelemetry.io/otel/attribute. (#​8445)
  • Support MAP attributes in go.opentelemetry.io/otel/exporters/otlp/otlptrace. (#​8453)
  • Support MAP attributes in go.opentelemetry.io/otel/exporters/otlp/otlplog. (#​8453)
  • Support MAP attributes in go.opentelemetry.io/otel/exporters/otlp/otlpmetric. (#​8453)
  • Support MAP attributes in go.opentelemetry.io/otel/exporters/zipkin. (#​8453)
  • Apply AttributeValueLengthLimit recursively to values contained in attribute.MAP attributes in go.opentelemetry.io/otel/sdk/trace. (#​8454)
  • Remove duplicate keys from attribute.MAP values in go.opentelemetry.io/otel/sdk/resource using last-value-wins semantics. (#​8471)
  • Remove duplicate keys by default from attribute.MAP values in instrumentation scope attributes in go.opentelemetry.io/otel/sdk/log using last-value-wins semantics. (#​8471)
  • Remove duplicate keys by default from attribute.MAP values in span, event, link, and instrumentation scope attributes in go.opentelemetry.io/otel/sdk/trace using last-value-wins semantics. (#​8471)
  • Remove duplicate keys by default from attribute.MAP values in measurement and instrumentation scope attributes in go.opentelemetry.io/otel/sdk/metric using last-value-wins semantics. (#​8471)
  • Extend WithAllowKeyDuplication in go.opentelemetry.io/otel/sdk/log to disable duplicate-key removal in attribute.MAP values for instrumentation scope attributes. (#​8471)
  • Add the go.opentelemetry.io/otel/semconv/v1.42.0 package.
    The package contains semantic conventions from the v1.42.0 version of the OpenTelemetry Semantic Conventions.
    See the migration documentation for information on how to upgrade from go.opentelemetry.io/otel/semconv/v1.41.0. (#​8484)
  • Add WithoutPanicRecording as a TracerProviderOption in go.opentelemetry.io/otel/sdk/trace to disable exception event recording for panics. (#​8532)
  • Add the go.opentelemetry.io/otel/semconv/v1.43.0 package.
    The package contains semantic conventions from the v1.43.0 version of the OpenTelemetry Semantic Conventions.
    See the migration documentation for information on how to upgrade from go.opentelemetry.io/otel/semconv/v1.42.0. (#​8628)
Changed
  • HistogramReservoir in go.opentelemetry.io/otel/sdk/metric/exemplar now uses a time-unbiased sampling algorithm for exemplars. (#​8306)
  • ⚠️ Breaking Change: Use go.opentelemetry.io/otel/attribute.Value and go.opentelemetry.io/otel/attribute.KeyValue for log bodies and attributes in go.opentelemetry.io/otel/log, go.opentelemetry.io/otel/log/logtest, go.opentelemetry.io/otel/sdk/log, and go.opentelemetry.io/otel/sdk/log/logtest. (#​8490)
  • Encode log bodies and attributes as go.opentelemetry.io/otel/attribute.Value JSON in go.opentelemetry.io/otel/exporters/stdout/stdoutlog. (#​8490)
  • Improve the performance of hashing BOOLSLICE, INT64SLICE, FLOAT64SLICE, and STRINGSLICE attribute values by avoiding reflection for short slices in go.opentelemetry.io/otel/attribute. (#​8511)
  • ⚠️ Breaking Change: WithEndpointURL in go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp no longer appends the default signal path when an endpoint URL has no path, making the behavior consistent with go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp and with setting the endpoint through OTEL_EXPORTER_OTLP_METRICS_ENDPOINT. If the URL has no path component, the root path (/) is used. Use WithEndpointURL(url.JoinPath(endpoint, "/v1/metrics")) to preserve the previous behavior. (#​8538)
  • ⚠️ Breaking Change: WithEndpointURL in go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp no longer appends the default signal path when an endpoint URL has no path, making the behavior consistent with go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp and with setting the endpoint through OTEL_EXPORTER_OTLP_TRACES_ENDPOINT. If the URL has no path component, the root path (/) is used. Use WithEndpointURL(url.JoinPath(endpoint, "/v1/traces")) to preserve the previous behavior. (#​8538)
Deprecated
  • Deprecate WithExportBufferSize in go.opentelemetry.io/otel/sdk/log. The option remains available for source compatibility but no longer affects behavior; BatchProcessor no longer maintains a separate export-request buffer. (#​8620)
Removed
  • ⚠️ Breaking Change: Remove Kind, Value, KeyValue, their constructors, and attribute conversion helpers from go.opentelemetry.io/otel/log. (#​8490)
  • ⚠️ Breaking Change: Remove the AttributeValueLengthLimit and AttributeCountLimit fields from RecordFactory in go.opentelemetry.io/otel/sdk/log/logtest; records produced by the factory now keep attribute limits disabled so test code can append exact attributes. (#​8556)
Fixed
  • Apply TLS certificates configured through environment variables to gRPC connections in go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc.
  • Prevent panics in go.opentelemetry.io/otel/bridge/opentracing when OpenTracing baggage is propagated concurrently with Span.SetBaggageItem.
  • Fix an off-by-one error in FixedSizeReservoir in go.opentelemetry.io/otel/sdk/metric/exemplar that prevented the first exemplar from being sampled after the reservoir was filled. (#​8309)
  • Interpret HTTP Retry-After header values as seconds instead of nanoseconds when retrying OTLP HTTP exports in go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp, go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp, and go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp. (#​8383)
  • Fix a memory leak in the Reservoir implementation in go.opentelemetry.io/otel/sdk/metric/exemplar, where storing the full context.Context pinned large objects such as gRPC transport buffers. (#​8389)
  • Prevent a non-empty attribute set whose computed hash is zero from collapsing to an empty set in go.opentelemetry.io/otel/attribute. (#​8402)
  • Fix histogram data point reuse in go.opentelemetry.io/otel/sdk/metric aggregation to avoid leaking stale sum, minimum, and maximum values when they are disabled in subsequent collections. (#​8403)
  • Avoid preallocating scope attributes when they are disabled in go.opentelemetry.io/otel/exporters/prometheus. (#​8404)
  • Support HTTP-date values in the HTTP Retry-After header when retrying OTLP HTTP exports in go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp, go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp, and go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp. (#​8417)
  • Reduce histogram heap allocations by reusing BucketCounts and Exemplars slices across Collect cycles in the cumulative histogram aggregation in go.opentelemetry.io/otel/sdk/metric. (#​8428)
  • Fix go.opentelemetry.io/otel/exporters/stdout/stdouttrace self-observability to record error.type on the operation-duration histogram when the exportedSpans metric is disabled. (#​8432)
  • Stop including trace exporter endpoint configuration in internal logs from go.opentelemetry.io/otel/sdk/trace, go.opentelemetry.io/otel/exporters/otlp/otlptrace, go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc, go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp, and go.opentelemetry.io/otel/exporters/zipkin. (#​8438)
  • Fix invalid error formatting for out-of-range JSON code values in go.opentelemetry.io/otel/codes. (#​8497)
  • Clarify in go.opentelemetry.io/otel/log that Logger.Enabled should be checked for every log emission because its result may change over time. (#​8565)
  • Preserve user-provided exception attributes while independently deriving missing exception message and type attributes in go.opentelemetry.io/otel/sdk/log. (#​8566)
  • Make WithAttributeCountLimit(0) and OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT=0 discard all log record attributes in go.opentelemetry.io/otel/sdk/log. (#​8570)
  • Clarify that the Record methods of Float64Histogram and Int64Histogram in go.opentelemetry.io/otel/metric expect non-negative values. (#​8574)
  • Clarify in go.opentelemetry.io/otel/log that LoggerProvider implementations should retain an empty Logger name instead of replacing it with a default. (#​8587)
  • Ensure that the built-in processors in go.opentelemetry.io/otel/sdk/log call exporter ForceFlush during Shutdown. (#​8599)
  • Prevent panics in go.opentelemetry.io/otel/bridge/opentracing when OpenTracing baggage is propagated concurrently with Span.SetBaggageItem. (GHSA-42cj-99w8-cp2p)
  • Prevent processor operations in go.opentelemetry.io/otel/sdk/log from overlapping with processor shutdown or running after LoggerProvider shutdown. (#​8608)
  • Prevent BatchProcessor in go.opentelemetry.io/otel/sdk/log from busy-spinning under exporter backpressure and serialize dequeue, export, force-flush, and shutdown work in one worker. (#​8620)
  • Make BatchProcessor in go.opentelemetry.io/otel/sdk/log return errors encountered while draining records during ForceFlush and Shutdown, while continuing to attempt later batches as long as the request context remains valid. (#​8620)
  • Keep the default BatchProcessor maximum export batch size in go.opentelemetry.io/otel/sdk/log at or below the configured maximum queue size. (#​8620)
What's Changed

Note

PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

To execute skipped test pipelines write comment /ok-to-test.


Documentation

Find out how to configure dependency updates in MintMaker documentation or see all available configuration options in Renovate documentation.

Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com>
@red-hat-konflux red-hat-konflux Bot added approved Indicates a PR has been approved by an approver from all required OWNERS files. lgtm Indicates that a PR is ready to be merged. labels Aug 6, 2026
@red-hat-konflux

Copy link
Copy Markdown
Contributor Author

ℹ️ Artifact update notice

File name: go.mod

In order to perform the update(s) described in the table above, Renovate ran the go get command, which resulted in the following additional change(s):

  • 1 additional dependency was updated

Details:

Package Change
google.golang.org/genproto/googleapis/rpc v0.0.0-20260729162451-8efbd57d26e0 -> v0.0.0-20260803160001-6ac0973c030d

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown
📝 Walkthrough

Summary by CodeRabbit

  • Chores
    • Updated OpenTelemetry components to newer versions.
    • Updated related telemetry and Google API support packages.
    • No user-facing features or behavior changes.

Walkthrough

The change updates direct and indirect OpenTelemetry dependencies and the indirect Google RPC dependency in go.mod.

Changes

OpenTelemetry dependency updates

Layer / File(s) Summary
Dependency version updates
go.mod
Direct OpenTelemetry modules move to newer versions. Indirect OTLP trace and metric modules also move to v1.45.0. The indirect Google RPC module moves to a newer pseudo-version.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly identifies the OpenTelemetry Go monorepo update, which matches the dependency changes.
Description check ✅ Passed The description directly explains the OpenTelemetry dependency updates and related release changes.

Comment @coderabbitai help to get the list of available commands.

@openshift-ci
openshift-ci Bot requested review from joshuawilson and onmete August 6, 2026 20:19
@openshift-ci

openshift-ci Bot commented Aug 6, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is APPROVED

Approval requirements bypassed by manually added approval.

This pull-request has been approved by:

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

1 similar comment
@openshift-ci

openshift-ci Bot commented Aug 6, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is APPROVED

Approval requirements bypassed by manually added approval.

This pull-request has been approved by:

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@go.mod`:
- Around line 8-14: Add SBOM generation, provenance attestations, and
Sigstore/cosign signing steps to the release workflow before its artifact
publication steps. Update the workflow around the existing archive and checksum
publishing actions in release-cli.yml, ensuring each generated artifact is
covered by the SBOM, provenance, and signature outputs before release.
- Around line 8-14: Update the OpenTelemetry log calls in the relevant provider
code to use attribute.StringValue for SetBody and attribute.String for
AddAttributes instead of the unavailable otel/log String or StringValue symbols.
Preserve the existing log values and behavior while ensuring the code builds
against go.opentelemetry.io/otel/log v0.21.0.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: a5144755-be1c-49c3-b9e3-14bf71e8114c

📥 Commits

Reviewing files that changed from the base of the PR and between 5d8d694 and 4eadbce.

⛔ Files ignored due to path filters (1)
  • go.sum is excluded by !**/*.sum, !go.sum
📒 Files selected for processing (1)
  • go.mod
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • openshift/lightspeed-agentic-sandbox (manual)

Comment thread go.mod
Comment on lines +8 to +14
go.opentelemetry.io/otel v1.45.0
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.21.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.45.0
go.opentelemetry.io/otel/log v0.21.0
go.opentelemetry.io/otel/sdk v1.45.0
go.opentelemetry.io/otel/sdk/log v0.21.0
go.opentelemetry.io/otel/trace v1.45.0

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔒 Security & Privacy | 🟠 Major | 🏗️ Heavy lift

🧩 Analysis chain

🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

rg -n \
  'go\.opentelemetry\.io/otel|google\.golang\.org/genproto/googleapis/rpc' \
  go.mod go.sum

cat >/tmp/osv-queries.json <<'JSON'
{
  "queries": [
    {"package":{"name":"go.opentelemetry.io/otel","ecosystem":"Go"},"version":"v1.45.0"},
    {"package":{"name":"go.opentelemetry.io/otel/log","ecosystem":"Go"},"version":"v0.21.0"},
    {"package":{"name":"go.opentelemetry.io/otel/sdk/log","ecosystem":"Go"},"version":"v0.21.0"},
    {"package":{"name":"google.golang.org/genproto/googleapis/rpc","ecosystem":"Go"},"version":"v0.0.0-20260803160001-6ac0973c030d"}
  ]
}
JSON

curl -fsS \
  -H 'Content-Type: application/json' \
  --data-binary `@/tmp/osv-queries.json` \
  https://api.osv.dev/v1/querybatch | jq .

rg -n -i \
  'sbom|spdx|cyclonedx|syft|provenance|attestation|sigstore|cosign' \
  .github . 2>/dev/null || true

Repository: openshift/lightspeed-agentic-operator

Length of output: 3565


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

printf '%s\n' '--- go.mod context ---'
cat -n go.mod | sed -n '1,115p'

printf '%s\n' '--- workflow and supply-chain references ---'
find .github -type f -maxdepth 3 -print 2>/dev/null | sort
rg -n -i \
  'sbom|spdx|cyclonedx|syft|provenance|attestation|sigstore|cosign|license|osv|govulncheck|gosec|dependency' \
  .github Makefile Containerfile* Dockerfile* 2>/dev/null || true

printf '%s\n' '--- local module replacement ---'
rg -n '^replace|=>[[:space:]]+\./api|^module ' go.mod api/go.mod 2>/dev/null || true

printf '%s\n' '--- updated-module sums ---'
python3 - <<'PY'
from pathlib import Path
mods = [
    "go.opentelemetry.io/otel",
    "go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc",
    "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc",
    "go.opentelemetry.io/otel/log",
    "go.opentelemetry.io/otel/sdk",
    "go.opentelemetry.io/otel/sdk/log",
    "go.opentelemetry.io/otel/trace",
    "go.opentelemetry.io/otel/exporters/otlp/otlptrace",
    "go.opentelemetry.io/otel/metric",
    "google.golang.org/genproto/googleapis/rpc",
]
lines = Path("go.sum").read_text().splitlines()
for mod in mods:
    hits = [line for line in lines if line.startswith(mod + " ")]
    print(f"{mod}: {len(hits)} sum entries")
    for line in hits:
        print("  " + line)
PY

Repository: openshift/lightspeed-agentic-operator

Length of output: 9326


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

printf '%s\n' '--- release workflow ---'
cat -n .github/workflows/release-cli.yml

printf '%s\n' '--- all workflows and build metadata ---'
find .github/workflows -maxdepth 1 -type f -print -exec sh -c 'echo "--- $1"; rg -n -i "sbom|spdx|cyclonedx|syft|provenance|attestation|sigstore|cosign|license|osv|govulncheck|gosec|dependency" "$1" || true' _ {} \;
rg -n -i 'sbom|spdx|cyclonedx|syft|provenance|attestation|sigstore|cosign' . --glob '!go.sum' --glob '!vendor/**' 2>/dev/null || true

Repository: openshift/lightspeed-agentic-operator

Length of output: 1609


🏁 Script executed (no clone):

#!/usr/bin/env bash
set -euo pipefail

cat >/tmp/osv-queries.json <<'JSON'
{
  "queries": [
    {"package":{"name":"go.opentelemetry.io/otel","ecosystem":"Go"},"version":"v1.45.0"},
    {"package":{"name":"go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc","ecosystem":"Go"},"version":"v0.21.0"},
    {"package":{"name":"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc","ecosystem":"Go"},"version":"v1.45.0"},
    {"package":{"name":"go.opentelemetry.io/otel/log","ecosystem":"Go"},"version":"v0.21.0"},
    {"package":{"name":"go.opentelemetry.io/otel/sdk","ecosystem":"Go"},"version":"v1.45.0"},
    {"package":{"name":"go.opentelemetry.io/otel/sdk/log","ecosystem":"Go"},"version":"v0.21.0"},
    {"package":{"name":"go.opentelemetry.io/otel/trace","ecosystem":"Go"},"version":"v1.45.0"},
    {"package":{"name":"go.opentelemetry.io/otel/exporters/otlp/otlptrace","ecosystem":"Go"},"version":"v1.45.0"},
    {"package":{"name":"go.opentelemetry.io/otel/metric","ecosystem":"Go"},"version":"v1.45.0"},
    {"package":{"name":"google.golang.org/genproto/googleapis/api","ecosystem":"Go"},"version":"v0.0.0-20260803160001-6ac0973c030d"},
    {"package":{"name":"google.golang.org/genproto/googleapis/rpc","ecosystem":"Go"},"version":"v0.0.0-20260803160001-6ac0973c030d"}
  ]
}
JSON

curl -fsS \
  -H 'Content-Type: application/json' \
  --data-binary `@/tmp/osv-queries.json` \
  https://api.osv.dev/v1/querybatch |
jq -r '
  .results
  | to_entries[]
  | "\(.key): " + (if .value.vulnerabilities then
      (.value.vulnerabilities | map(.id) | join(", "))
    else "no vulnerabilities reported"
    end)
'

Length of output: 467


Add SBOM, provenance, and Sigstore signing to the release workflow.

go.sum contains checksums for the updated modules, and OSV reports no vulnerabilities. .github/workflows/release-cli.yml only publishes archives and checksums. Add SBOM generation, provenance attestations, and Sigstore/cosign signatures before publishing artifacts.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@go.mod` around lines 8 - 14, Add SBOM generation, provenance attestations,
and Sigstore/cosign signing steps to the release workflow before its artifact
publication steps. Update the workflow around the existing archive and checksum
publishing actions in release-cli.yml, ensuring each generated artifact is
covered by the SBOM, provenance, and signature outputs before release.

Source: Path instructions


🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

rg -n --glob '*.go' \
  'go\.opentelemetry\.io/otel/(log|sdk/log)|go\.opentelemetry\.io/otel/exporters/otlp/otlplog' .

rg -n --glob '*.go' '\b(Kind|Value|KeyValue)\b' .

Repository: openshift/lightspeed-agentic-operator

Length of output: 12731


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

printf '%s\n' '--- go.mod ---'
cat -n go.mod | sed -n '1,120p'

printf '%s\n' '--- otel_provider.go ---'
cat -n pkg/configuration/otel_provider.go

printf '%s\n' '--- OpenTelemetry log symbols and calls ---'
rg -n --glob '*.go' \
  'otellog|sdklog|otlplog|LoggerProvider|NewLogger|Emit|Record|Severity|attribute\.KeyValue|attribute\.Value' \
  pkg controller cli test || true

printf '%s\n' '--- module files and dependency metadata ---'
git ls-files '*go.mod' '*go.sum' '.github/workflows/*' 'Makefile' 'Dockerfile*' | sort

Repository: openshift/lightspeed-agentic-operator

Length of output: 44284


🏁 Script executed (no clone):

#!/usr/bin/env bash
set -euo pipefail

base='https://raw.githubusercontent.com/open-telemetry/opentelemetry-go/v0.21.0/log'

printf '%s\n' '--- log package files ---'
curl -fsSL "$base/value.go" | sed -n '1,240p'
curl -fsSL "$base/record.go" | sed -n '1,220p'
curl -fsSL "$base/logger.go" | sed -n '1,160p'

printf '%s\n' '--- v0.21.0 module metadata ---'
curl -fsSL 'https://raw.githubusercontent.com/open-telemetry/opentelemetry-go/v0.21.0/log/go.mod' | sed -n '1,80p'

Length of output: 202


🏁 Script executed (no clone):

#!/usr/bin/env bash
set -euo pipefail

curl -fsSL 'https://api.github.com/repos/open-telemetry/opentelemetry-go/git/trees/v0.21.0?recursive=1' |
  jq -r '.tree[].path' |
  rg '(^|/)(log|record|value|logger)(\.go)?$|/log/' |
  head -80

Length of output: 174


🏁 Script executed (no clone):

#!/usr/bin/env bash
set -euo pipefail

for ref in 'log/v0.21.0' 'v1.45.0' 'v0.20.0'; do
  printf '%s\n' "--- $ref ---"
  url="https://raw.githubusercontent.com/open-telemetry/opentelemetry-go/$ref/log"
  for file in value.go keyvalue.go record.go logger.go; do
    status=$(curl -sS -o "/tmp/otel-$file" -w '%{http_code}' "$url/$file")
    printf '%s %s\n' "$file" "$status"
    if [ "$status" = 200 ]; then
      sed -n '1,180p' "/tmp/otel-$file"
    fi
  done
done

Length of output: 22644


🏁 Script executed (no clone):

#!/usr/bin/env bash
set -euo pipefail

archive='https://codeload.github.com/open-telemetry/opentelemetry-go/tar.gz/refs/tags/log/v0.21.0'

printf '%s\n' '--- log module source files ---'
curl -fsSL "$archive" |
  tar -tzf - |
  rg '/log/.*\.go$' |
  sed -n '1,120p'

printf '%s\n' '--- exported constructors and removed symbols ---'
curl -fsSL "$archive" |
  tar -xOz --wildcards '*/log/*.go' 2>/dev/null |
  rg -n 'func (String|StringValue|Int|Bool|Key|New|Value)|type (Value|Kind|KeyValue)|attribute\.(Value|KeyValue)' || true

Length of output: 19773


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

python3 - <<'PY'
import io
import re
import tarfile
import urllib.request
from pathlib import Path

repo_source = Path("pkg/configuration/otel_provider.go").read_text()
archive_url = "https://codeload.github.com/open-telemetry/opentelemetry-go/tar.gz/refs/tags/log/v0.21.0"
archive = tarfile.open(fileobj=io.BytesIO(urllib.request.urlopen(archive_url).read()), mode="r:gz")

go_sources = []
for member in archive.getmembers():
    if member.name.endswith(".go") and "/log/" in member.name:
        f = archive.extractfile(member)
        if f:
            go_sources.append(f.read().decode())

otel_exports = set(re.findall(r"(?m)^func\s+([A-Za-z_]\w*)\s*\(", "\n".join(go_sources)))
calls = sorted(set(re.findall(r"\botellog\.([A-Za-z_]\w*)", repo_source)))

print("otel.log v0.21.0 otellog calls:", calls)
print("missing otellog exports:", [name for name in calls if name not in otel_exports])
print("Record.SetBody parameter type is attribute.Value:",
      bool(re.search(r"func \(r \*Record\) SetBody\(v attribute\.Value\)", "\n".join(go_sources))))
print("Record.AddAttributes parameter type is attribute.KeyValue:",
      bool(re.search(r"func \(r \*Record\) AddAttributes\(attrs \.\.\.attribute\.KeyValue\)", "\n".join(go_sources))))
PY

Repository: openshift/lightspeed-agentic-operator

Length of output: 2461


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

curl -fsSL 'https://codeload.github.com/open-telemetry/opentelemetry-go/tar.gz/refs/tags/log/v0.21.0' |
python3 - <<'PY'
import io
import re
import sys
import tarfile
from pathlib import Path

repo_source = Path("pkg/configuration/otel_provider.go").read_text()
archive = tarfile.open(fileobj=io.BytesIO(sys.stdin.buffer.read()), mode="r:gz")
sources = []
for member in archive.getmembers():
    if member.name.endswith(".go") and "/log/" in member.name:
        f = archive.extractfile(member)
        if f:
            sources.append(f.read().decode())

source = "\n".join(sources)
exports = set(re.findall(r"(?m)^func\s+([A-Za-z_]\w*)\s*\(", source))
calls = sorted(set(re.findall(r"\botellog\.([A-Za-z_]\w*)", repo_source)))

print("otel.log v0.21.0 calls:", calls)
print("missing otellog exports:", [name for name in calls if name not in exports])
print("SetBody uses attribute.Value:", bool(re.search(r"SetBody\(v attribute\.Value\)", source)))
print("AddAttributes uses attribute.KeyValue:",
      bool(re.search(r"AddAttributes\(attrs \.\.\.attribute\.KeyValue\)", source)))
PY

Repository: openshift/lightspeed-agentic-operator

Length of output: 1497


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

curl -fsSL 'https://codeload.github.com/open-telemetry/opentelemetry-go/tar.gz/refs/tags/log/v0.21.0' -o /tmp/otel-log.tar.gz

python3 -c '
import io
import re
import tarfile
from pathlib import Path

repo_source = Path("pkg/configuration/otel_provider.go").read_text()
with open("/tmp/otel-log.tar.gz", "rb") as f:
    archive = tarfile.open(fileobj=io.BytesIO(f.read()), mode="r:gz")

sources = []
for member in archive.getmembers():
    if member.name.endswith(".go") and "/log/" in member.name:
        f = archive.extractfile(member)
        if f:
            sources.append(f.read().decode())

source = "\n".join(sources)
exports = set(re.findall(r"(?m)^func\s+([A-Za-z_]\w*)\s*\(", source))
calls = sorted(set(re.findall(r"\botellog\.([A-Za-z_]\w*)", repo_source)))

print("otel.log v0.21.0 calls:", calls)
print("missing otellog exports:", [name for name in calls if name not in exports])
print("SetBody uses attribute.Value:", bool(re.search(r"SetBody\(v attribute\.Value\)", source)))
print("AddAttributes uses attribute.KeyValue:",
      bool(re.search(r"AddAttributes\(attrs \.\.\.attribute\.KeyValue\)", source)))
'

Repository: openshift/lightspeed-agentic-operator

Length of output: 385


Update the OpenTelemetry log calls before merging.

go.opentelemetry.io/otel/log v0.21.0 does not export String or StringValue. Use attribute.StringValue for SetBody and attribute.String for AddAttributes in pkg/configuration/otel_provider.go:329-333; otherwise the build fails.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@go.mod` around lines 8 - 14, Update the OpenTelemetry log calls in the
relevant provider code to use attribute.StringValue for SetBody and
attribute.String for AddAttributes instead of the unavailable otel/log String or
StringValue symbols. Preserve the existing log values and behavior while
ensuring the code builds against go.opentelemetry.io/otel/log v0.21.0.

Source: MCP tools

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

/retest-required

Remaining retests: 0 against base HEAD 3f73c30 and 2 for PR HEAD 4eadbce in total

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

/retest-required

Remaining retests: 0 against base HEAD f499f2a and 1 for PR HEAD 4eadbce in total

@openshift-ci

openshift-ci Bot commented Aug 7, 2026

Copy link
Copy Markdown

@red-hat-konflux[bot]: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/unit 4eadbce link true /test unit

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. lgtm Indicates that a PR is ready to be merged.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants