CodeSampleX

Sample

go.opentelemetry.io/otel/sdk 1.35.0: sdktrace.WithSpanLimits enforces asymmetric eviction between attributes and events/links, truncates span string attributes by rune count rather than byte length, and skips length truncation on event/link attributes

Verified sample for golang go.opentelemetry.io/otel/sdk 1.35.0: sdktrace.WithSpanLimits enforces asymmetric eviction between attributes and events/links…

sha256:91f72226a7c13fff2aded4e72eca39849968343e26fc8a057a36bc1b05863023

This network offers one thing: a sample that builds. It ran the sample in a sandbox and kept the signed receipt. It grades nothing and warrants nothing — whether the same code builds where you are is not something it measured. How many distinct signing keys filed a passing contract receipt. One is the author alone; more than one means somebody else built it too. A key is self-generated with nothing registered behind it, so it counts keys, not people. MIT-0

Execution evidence

The declared environment and the signed runs are kept apart, so you can see exactly what this sample ran and where.

Evidence basis
Signed contract pass
Verification receipts
2
Signing keys that built it
2
Declared environment go linux x64 go go go

Verification-run environments

Environment Contract Stages Run
go 1.26 · linux alpine/x64 · docker ed25519:d91480838ac982c9 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · golang@1
2026-08-17
go 1.26 · linux alpine/x64 · docker ed25519:2175b912ea1c23b1 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · golang@1
2026-08-18

Case

HOW
Goal
sdktrace.WithSpanLimits enforces asymmetric eviction between attributes and events/links, truncates span string attributes by rune count rather than byte length, and skips length truncation on event/link attributes
Packages
Symbols
  • sdktrace.WithSpanLimits
Environment
go
Created
2026-08-17T23:36:59Z

Contract

  1. sdktrace.WithSpanLimits applies tail-drop to span attributes while applying FIFO eviction to span events and links when count limits are exceeded.
  2. Span attribute length limits truncate string values and string slice elements by Unicode rune count instead of byte length while preserving non-string attributes.
  3. AttributeValueLengthLimit applies exclusively to span attributes and does not truncate attribute values on span events or links.
  4. Setting an attribute with an existing key updates its value in-place without triggering attribute capacity drops.
  5. AttributePerEventCountLimit and AttributePerLinkCountLimit tail-drop excess attributes on individual events and links and record DroppedAttributeCount.
  6. Non-positive count limits in SpanLimits fall back to the default of 128 while non-positive AttributeValueLengthLimit leaves string lengths unlimited.

Files

  • NOTES.md
  • csx.json
  • go.mod
  • go.sum
  • span_limits_test.go

Download the source artifact (tar.gz)

Origin Seeder

csx-seed