Skip to content

Update go module minor/patch updates - #245

Merged
openshift-merge-bot[bot] merged 1 commit into
mainfrom
konflux/mintmaker/main/go-module-minorpatch-updates
Aug 10, 2026
Merged

Update go module minor/patch updates#245
openshift-merge-bot[bot] merged 1 commit into
mainfrom
konflux/mintmaker/main/go-module-minorpatch-updates

Conversation

@red-hat-konflux-kflux-prd-rh02

@red-hat-konflux-kflux-prd-rh02 red-hat-konflux-kflux-prd-rh02 Bot commented Aug 10, 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
github.com/testcontainers/testcontainers-go v0.43.0v0.44.0 age confidence
github.com/testcontainers/testcontainers-go/modules/rabbitmq v0.43.0v0.44.0 age confidence
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.69.0v0.70.0 age confidence
go.opentelemetry.io/contrib/propagators/autoprop v0.69.0v0.70.0 age confidence
go.opentelemetry.io/otel 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/exporters/otlp/otlptrace/otlptracehttp v1.44.0v1.45.0 age confidence
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.44.0v1.45.0 age confidence
go.opentelemetry.io/otel/sdk v1.44.0v1.45.0 age confidence
go.opentelemetry.io/otel/trace v1.44.0v1.45.0 age confidence

Release Notes

testcontainers/testcontainers-go (github.com/testcontainers/testcontainers-go)

v0.44.0

Compare Source

What's Changed
🔒 Security
🚀 Features
🐛 Bug Fixes
📖 Documentation
🧹 Housekeeping
📦 Dependency updates
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
    • "on monday"
  • 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.

@red-hat-konflux-kflux-prd-rh02

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):

  • 11 additional dependencies were updated

Details:

Package Change
go.opentelemetry.io/contrib/propagators/aws v1.44.0 -> v1.45.0
go.opentelemetry.io/contrib/propagators/b3 v1.44.0 -> v1.45.0
go.opentelemetry.io/contrib/propagators/jaeger v1.44.0 -> v1.45.0
go.opentelemetry.io/contrib/propagators/ot v1.44.0 -> v1.45.0
github.com/go-logr/logr v1.4.3 -> v1.4.4
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.44.0 -> v1.45.0
go.opentelemetry.io/otel/metric v1.44.0 -> v1.45.0
go.opentelemetry.io/proto/otlp v1.10.0 -> v1.11.0
google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa -> v0.0.0-20260803160001-6ac0973c030d
google.golang.org/genproto/googleapis/rpc v0.0.0-20260622175928-b703f567277d -> v0.0.0-20260803160001-6ac0973c030d
google.golang.org/grpc v1.82.0 -> v1.83.0

@openshift-ci
openshift-ci Bot requested review from ciaranRoche and tirthct August 10, 2026 00:04
@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown
📝 Walkthrough

Summary by CodeRabbit

  • Chores
    • Updated observability and service integration components to newer versions for improved compatibility, reliability, and ongoing maintenance.
    • Refreshed supporting communication, API, and telemetry components to keep integrations current.
    • Improved compatibility with the latest monitoring and messaging tooling.
    • No changes to application behavior, public-facing features, or user workflows.

Walkthrough

Updated go.mod dependencies. OpenTelemetry packages moved to the v1.45.0/v0.70.0 series. Testcontainers, go-logr, Genproto, and gRPC dependencies were also upgraded. No exported or public declarations changed.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Suggested reviewers: ciaranroche, tirthct, kuudori


Important

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

❌ Failed checks (1 error)

Check name Status Explanation Resolution
Sec-02: Secrets In Log Output ❌ Error CWE-532: test/integration/testcontainer.go logs amqpURL via Extra("amqp_url", amqpURL); the URL uses configured guest credentials and is not an excluded *_test.go or *.example file. Do not log amqpURL. Log only a redacted host/port or a boolean status, and keep credentials out of all log fields and messages.
✅ Passed checks (10 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.
No Hardcoded Secrets ✅ Passed PR adds only dependency versions and go.sum h1 module checksums; no credentials, secret-like assignments, embedded URL credentials, or private keys were added (CWE-798).
No Weak Cryptography ✅ Passed PASS: The patch changes only go.mod/go.sum; structural and text searches found no banned primitives, ECB, custom crypto, or secret comparisons, so CWE-327 is not introduced.
No Injection Vectors ✅ Passed HEAD changes only go.mod and go.sum; no added CWE-89, CWE-78, CWE-79, or CWE-502 sink or query-formatting code was found.
No Privileged Containers ✅ Passed PR changes only go.mod/go.sum. Production Helm defaults enforce UID 65532, non-root, no escalation, and dropped capabilities; Dockerfile USER root is documented for make installation and switches b...
No Pii Or Sensitive Data In Logs ✅ Passed The patch changes only go.mod and go.sum; it adds no logging statements or log payload fields, so it introduces no CWE-532 exposure.
Title check ✅ Passed The title clearly identifies Go module updates, which matches the dependency-only changeset.
Description check ✅ Passed The description directly documents the dependency version updates and related release notes.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch konflux/mintmaker/main/go-module-minorpatch-updates
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch konflux/mintmaker/main/go-module-minorpatch-updates

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

@hyperfleet-ci-bot

hyperfleet-ci-bot Bot commented Aug 10, 2026

Copy link
Copy Markdown

Risk Score: 0 — risk/low

Signal Detail Points
PR size 130 lines +0
Sensitive paths none +0

Computed by hyperfleet-risk-scorer

Signed-off-by: red-hat-konflux-kflux-prd-rh02 <190377777+red-hat-konflux-kflux-prd-rh02[bot]@users.noreply.github.com>
@red-hat-konflux-kflux-prd-rh02
red-hat-konflux-kflux-prd-rh02 Bot force-pushed the konflux/mintmaker/main/go-module-minorpatch-updates branch from 0d39c38 to 424c013 Compare August 10, 2026 12:04

@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: 1

🤖 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 15-34: Update the OpenTelemetry OTLP/HTTP trace exporter
configuration for v1.45.0 so `http/protobuf` uses an endpoint explicitly ending
in `/v1/traces` rather than a pathless URL. Add a request-level test covering
the configured exporter and assert that trace requests target `/v1/traces`.
🪄 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: Central YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: b5a43522-d7a1-42b8-a4b1-a7e9ee4aaec2

📥 Commits

Reviewing files that changed from the base of the PR and between 0d39c38 and 424c013.

⛔ 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:

Comment thread go.mod
Comment on lines +15 to +34
github.com/testcontainers/testcontainers-go v0.44.0
github.com/testcontainers/testcontainers-go/modules/rabbitmq v0.44.0
go.opentelemetry.io/contrib/propagators/autoprop v0.70.0
go.opentelemetry.io/otel v1.45.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.45.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.45.0
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.45.0
go.opentelemetry.io/otel/sdk v1.45.0
go.opentelemetry.io/otel/trace v1.45.0
)

require (
cel.dev/expr v0.25.2 // indirect
github.com/antlr4-go/antlr/v4 v4.13.1 // indirect
github.com/moby/moby/api v1.55.0 // indirect
github.com/moby/moby/client v0.5.0 // indirect
go.opentelemetry.io/contrib/propagators/aws v1.44.0 // indirect
go.opentelemetry.io/contrib/propagators/b3 v1.44.0 // indirect
go.opentelemetry.io/contrib/propagators/jaeger v1.44.0 // indirect
go.opentelemetry.io/contrib/propagators/ot v1.44.0 // indirect
go.opentelemetry.io/contrib/propagators/aws v1.45.0 // indirect
go.opentelemetry.io/contrib/propagators/b3 v1.45.0 // indirect
go.opentelemetry.io/contrib/propagators/jaeger v1.45.0 // indirect
go.opentelemetry.io/contrib/propagators/ot v1.45.0 // indirect

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

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

rg -n --glob '*.go' \
  'go\.opentelemetry\.io/otel/log|WithEndpointURL|OTEL_EXPORTER_OTLP_(TRACES|METRICS)_ENDPOINT|/v1/(traces|metrics)' .

Repository: openshift-hyperfleet/hyperfleet-sentinel

Length of output: 178


🏁 Script executed:

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

printf '%s\n' '--- go.mod ---'
cat -n go.mod

printf '%s\n' '--- OpenTelemetry and endpoint references ---'
rg -n --glob '*.go' --glob 'go.mod' --glob 'go.sum' \
  'go\.opentelemetry\.io/otel|WithEndpointURL|OTEL_EXPORTER_OTLP_(TRACES|METRICS)_ENDPOINT|/v1/(traces|metrics)' . || true

printf '%s\n' '--- module directives ---'
rg -n '^(module|go |toolchain |replace |exclude |retract )' go.mod || true

printf '%s\n' '--- changed files ---'
git diff --name-only HEAD^ HEAD 2>/dev/null || true
git diff --stat HEAD^ HEAD 2>/dev/null || true

Repository: openshift-hyperfleet/hyperfleet-sentinel

Length of output: 13044


🏁 Script executed:

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

printf '%s\n' '--- OpenTelemetry and endpoint references ---'
rg -n --glob '*.go' --glob 'go.mod' --glob 'go.sum' \
  'go\.opentelemetry\.io/otel|WithEndpointURL|OTEL_EXPORTER_OTLP_(TRACES|METRICS)_ENDPOINT|/v1/(traces|metrics)' . || true

Repository: openshift-hyperfleet/hyperfleet-api

Length of output: 4009


🏁 Script executed:

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

printf '%s\n' '--- OpenTelemetry and endpoint references ---'
rg -n --glob '*.go' --glob 'go.mod' --glob 'go.sum' \
  'go\.opentelemetry\.io/otel|WithEndpointURL|OTEL_EXPORTER_OTLP_(TRACES|METRICS)_ENDPOINT|/v1/(traces|metrics)' . || true

Repository: openshift-hyperfleet/hyperfleet-adapter

Length of output: 4518


🏁 Script executed:

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

printf '%s\n' '--- OpenTelemetry and endpoint references ---'
rg -n --glob '*.go' --glob 'go.mod' --glob 'go.sum' \
  'go\.opentelemetry\.io/otel|WithEndpointURL|OTEL_EXPORTER_OTLP_(TRACES|METRICS)_ENDPOINT|/v1/(traces|metrics)' . || true

Repository: openshift-hyperfleet/hyperfleet-broker

Length of output: 2764


🌐 Web query:

OpenTelemetry Go v1.45.0 release notes log API Kind Value KeyValue constructors conversion helpers WithEndpointURL OTLP endpoint path behavior

💡 Result:

In OpenTelemetry Go v1.45.0, several significant updates were introduced regarding log APIs, attribute handling, and OTLP exporter behavior [1]. API Changes for Logs A major breaking change in v1.45.0 mandates the use of go.opentelemetry.io/otel/attribute.Value and go.opentelemetry.io/otel/attribute.KeyValue for log bodies and attributes [1]. This affects the 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 packages [1]. To facilitate this, the go.opentelemetry.io/otel/log package provides conversion helpers such as ValueFromAttribute and KeyValueFromAttribute, which allow for the conversion of standard attribute.Value and attribute.KeyValue types into their corresponding log-specific structures [2]. The attribute package includes standard constructors (e.g., Bool, Int64, String, Slice) to create KeyValue pairs [3]. OTLP Endpoint Path Behavior In v1.45.0, a breaking change was introduced for the WithEndpointURL option in the OTLP/HTTP exporters (e.g., otlpmetrichttp, otlptracehttp) [1][4]. When WithEndpointURL is used with a URL that lacks a path component, the exporter no longer automatically appends the default signal path (such as /v1/traces or /v1/metrics) [5][4]. Instead, it now normalizes such URLs to the root path ("/") [4]. This change ensures consistency across OTLP signals and compliance with the OpenTelemetry specification, which requires that OTLP/HTTP endpoint URLs be used as-is, with the exception that pathless URLs must default to the root path [4].

Citations:


🏁 Script executed:

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

python3 - <<'PY'
from pathlib import Path
import re

p = Path("go.mod")
text = p.read_text()
for name in ("replace", "exclude", "retract", "toolchain"):
    matches = [line for line in text.splitlines() if re.match(rf"^{name}\b", line)]
    print(f"{name}: {matches or 'none'}")

print("otel requirements:")
for line in text.splitlines():
    if "opentelemetry" in line:
        print(line)
PY

printf '%s\n' '--- imports and symbols in all tracked Go files ---'
rg -n --glob '*.go' \
  'otel/log|log\.Kind|log\.Value|log\.KeyValue|New(Int|String|Bool|Float|Any|Array|Map)|WithEndpointURL|OTLP|OTEL_EXPORTER' . || true

Repository: openshift-hyperfleet/hyperfleet-sentinel

Length of output: 2673


🏁 Script executed:

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

printf '%s\n' '--- module and OpenTelemetry declarations ---'
rg -n '^(module|go |toolchain |replace |exclude |retract )|opentelemetry' go.mod || true
printf '%s\n' '--- concrete Go API usage ---'
rg -n --glob '*.go' \
  'otel/log|log\.Kind|log\.Value|log\.KeyValue|New(Int|String|Bool|Float|Any|Array|Map)|WithEndpointURL|OTLP|OTEL_EXPORTER' . || true

Repository: openshift-hyperfleet/hyperfleet-api

Length of output: 15278


🏁 Script executed:

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

printf '%s\n' '--- module and OpenTelemetry declarations ---'
rg -n '^(module|go |toolchain |replace |exclude |retract )|opentelemetry' go.mod || true
printf '%s\n' '--- concrete Go API usage ---'
rg -n --glob '*.go' \
  'otel/log|log\.Kind|log\.Value|log\.KeyValue|New(Int|String|Bool|Float|Any|Array|Map)|WithEndpointURL|OTLP|OTEL_EXPORTER' . || true

Repository: openshift-hyperfleet/hyperfleet-adapter

Length of output: 3711


🏁 Script executed:

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

printf '%s\n' '--- module and OpenTelemetry declarations ---'
rg -n '^(module|go |toolchain |replace |exclude |retract )|opentelemetry' go.mod || true
printf '%s\n' '--- concrete Go API usage ---'
rg -n --glob '*.go' \
  'otel/log|log\.Kind|log\.Value|log\.KeyValue|New(Int|String|Bool|Float|Any|Array|Map)|WithEndpointURL|OTLP|OTEL_EXPORTER' . || true

Repository: openshift-hyperfleet/hyperfleet-broker

Length of output: 723


🏁 Script executed:

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

printf '%s\n' '--- telemetry implementation ---'
cat -n pkg/telemetry/otel.go
printf '%s\n' '--- telemetry tests ---'
cat -n pkg/telemetry/otel_test.go
printf '%s\n' '--- parent/current dependency diff ---'
git diff HEAD^ HEAD -- go.mod go.sum | sed -n '1,220p'

Repository: openshift-hyperfleet/hyperfleet-sentinel

Length of output: 35753


🏁 Script executed:

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

printf '%s\n' '--- telemetry implementation ---'
cat -n pkg/telemetry/otel.go
printf '%s\n' '--- endpoint-related tests ---'
sed -n '1,380p' pkg/telemetry/otel_test.go

Repository: openshift-hyperfleet/hyperfleet-api

Length of output: 17729


🏁 Script executed:

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

printf '%s\n' '--- telemetry implementation ---'
cat -n pkg/telemetry/otel.go
printf '%s\n' '--- endpoint-related tests ---'
sed -n '1,240p' pkg/telemetry/otel_test.go

Repository: openshift-hyperfleet/hyperfleet-adapter

Length of output: 16696


🏁 Script executed (no clone):

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

python3 - <<'PY'
import json, urllib.request

urls = {
    "release": "https://api.github.com/repos/open-telemetry/opentelemetry-go/releases/tags/v1.45.0",
    "trace_http_options": "https://raw.githubusercontent.com/open-telemetry/opentelemetry-go/v1.45.0/exporters/otlp/otlptrace/otlptracehttp/options.go",
    "trace_http_exporter": "https://raw.githubusercontent.com/open-telemetry/opentelemetry-go/v1.45.0/exporters/otlp/otlptrace/otlptracehttp/exporter.go",
    "log_keyvalue": "https://raw.githubusercontent.com/open-telemetry/opentelemetry-go/v1.45.0/log/keyvalue.go",
}
for name, url in urls.items():
    print(f"--- {name} ---")
    try:
        data = urllib.request.urlopen(url, timeout=15).read().decode()
        if name == "release":
            obj = json.loads(data)
            print(obj.get("body", ""))
        else:
            for i, line in enumerate(data.splitlines(), 1):
                if any(x in line for x in ("WithEndpointURL", "path", "Kind", "Value", "KeyValue", "ValueFromAttribute", "KeyValueFromAttribute")):
                    print(f"{i}: {line}")
    except Exception as e:
        print(f"ERROR: {e}")
PY

Length of output: 785


🏁 Script executed:

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

printf '%s\n' '--- all endpoint configuration references ---'
rg -n \
  'OTEL_EXPORTER_OTLP|4317|4318|otel|collector|trace' \
  --glob '!go.sum' --glob '!vendor/**' . || true

printf '%s\n' '--- non-Go files that configure telemetry ---'
rg -n \
  'OTEL_EXPORTER_OTLP|4317|4318|/v1/traces|/v1/metrics' \
  --glob '!go.sum' --glob '!*.go' . || true

Repository: openshift-hyperfleet/hyperfleet-sentinel

Length of output: 26817


🏁 Script executed (no clone):

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

for url in \
  https://raw.githubusercontent.com/open-telemetry/opentelemetry-go/v1.45.0/exporters/otlp/otlptrace/otlptracehttp/options.go \
  https://raw.githubusercontent.com/open-telemetry/opentelemetry-go/v1.45.0/exporters/otlp/otlptrace/otlptracehttp/exporter.go \
  https://raw.githubusercontent.com/open-telemetry/opentelemetry-go/v1.45.0/log/keyvalue.go
do
  echo "--- $url ---"
  curl -kfsSL "$url" | nl -ba | grep -E \
    'WithEndpointURL|OTEL_EXPORTER_OTLP|path|Kind|Value|KeyValue|ValueFromAttribute|KeyValueFromAttribute' || true
done

Length of output: 825


🌐 Web query:

OpenTelemetry Go v1.45.0 OTEL_EXPORTER_OTLP_ENDPOINT no path /v1/traces environment variable behavior

💡 Result:

In OpenTelemetry Go v1.45.0, a breaking change was introduced regarding how OTLP HTTP exporters handle paths in endpoint URLs [1]. 1. Previous Behavior: Historically, if an endpoint URL was configured without a path, the exporter would automatically append the default signal path (e.g., /v1/traces for traces) [1]. 2. v1.45.0 Behavior: The exporter no longer automatically appends the default signal path if the configured endpoint URL lacks a path [1]. Instead, if no path is provided in the URL, the exporter will use the root path (/) [1]. 3. Impact on Configuration: - If you set OTEL_EXPORTER_OTLP_ENDPOINT (the base variable) without a specific path, the exporter will attempt to send signals to the root path (/) of the target host [1]. - To maintain the previous behavior (sending traces to /v1/traces), you must explicitly include the path in your configuration [1]. 4. Recommended Adjustments: - When using code-based configuration (e.g., WithEndpointURL), you should use path-aware construction, such as: WithEndpointURL(url.JoinPath(endpoint, "/v1/traces")) [1]. - When using environment variables, ensure the provided URL explicitly includes the required path if the target server expects it, such as setting OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://example.com:4318/v1/traces [1][2]. This change aligns the behavior of the trace and metric exporters with the logs exporter and ensures consistency across different configuration methods (environment variables vs. programmatic options) [1].

Citations:


Make the OTLP/HTTP trace endpoint path explicit.

OpenTelemetry v1.45.0 sends a pathless OTLP/HTTP endpoint to /, not /v1/traces. Require /v1/traces for http/protobuf configuration and add a request-level test.

🤖 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 15 - 34, Update the OpenTelemetry OTLP/HTTP trace
exporter configuration for v1.45.0 so `http/protobuf` uses an endpoint
explicitly ending in `/v1/traces` rather than a pathless URL. Add a
request-level test covering the configured exporter and assert that trace
requests target `/v1/traces`.

Sources: Path instructions, MCP tools

@rafabene

Copy link
Copy Markdown
Member

/lgtm

@openshift-ci

openshift-ci Bot commented Aug 10, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: rafabene

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

@openshift-merge-bot
openshift-merge-bot Bot merged commit 06fba16 into main Aug 10, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant