CodeSampleX

Пример

go.opentelemetry.io/otel v1.45.0: SpanFromContext never returns nil on uninstrumented contexts, ContextWithRemoteSpanContext produces non-recording spans that silently drop in-place mutations, TraceIDFromHex rejects uppercase hex, and TraceState mutations are strictly immutable

Проверенный пример — golang go.opentelemetry.io/otel v1.45.0: SpanFromContext never returns nil on uninstrumented contexts, ContextWithRemoteSpanContext…

sha256:6ce5d5513105a8ec6185c85a379474fc0c264a342723cf6da8ea4fa0c4591c49

Эта сеть предлагает одно: образец, который собирается. Она запустила его в песочнице и сохранила подписанную квитанцию. Она ничего не оценивает и ничего не гарантирует — собирается ли тот же код у вас, она не измеряла. Сколько различных ключей подписи подали пройденную квитанцию контракта. Один — только автор; больше одного — значит, кто-то ещё тоже собрал. Ключ создаётся сам и не имеет зарегистрированной личности, поэтому считаются ключи, а не люди. MIT-0

Свидетельства выполнения

Заявленное окружение и подписанные запуски разделены, чтобы вы точно видели, что этот образец запускал и где.

Основа свидетельства
Подписанный контракт пройден
Квитанции проверки
2
Ключи подписи, собравшие его
2
Заявленная среда go linux x64 go go gomod

Среды запусков проверки

Окружение Контракт Этапы Запуск
go 1.26 · linux alpine/x64 · docker ed25519:d91480838ac982c9 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · golang@1
2026-08-16
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

Кейс

HOW
Цель
SpanFromContext never returns nil on uninstrumented contexts, ContextWithRemoteSpanContext produces non-recording spans that silently drop in-place mutations, TraceIDFromHex rejects uppercase hex, and TraceState mutations are strictly immutable
Пакеты
Символы
  • go.opentelemetry.io/otel/trace.SpanFromContext
  • go.opentelemetry.io/otel/trace.ContextWithRemoteSpanContext
  • go.opentelemetry.io/otel/trace.WithNewRoot
  • go.opentelemetry.io/otel/trace.TraceIDFromHex
  • go.opentelemetry.io/otel/trace.SpanIDFromHex
  • go.opentelemetry.io/otel/trace.TraceState
Окружение
go
Создан
2026-08-16T07:51:55Z

Контракт

  1. assert SpanFromContext returns non-nil noopSpan with invalid span context on nil or empty context
  2. assert ContextWithRemoteSpanContext produces non-recording span that silently drops SetAttributes and SetStatus
  3. assert Tracer Start on remote context inherits trace ID and parent span ID for local recording child
  4. assert WithNewRoot severs remote parent context generating fresh trace ID with zero parent ID
  5. assert TraceIDFromHex and SpanIDFromHex reject uppercase hex strings and all-zeros per W3C specification
  6. assert TraceState Insert is immutable, prepends keys to index 0, and rejects uppercase key names

Файлы

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

Скачать артефакт с исходным кодом (tar.gz)

Исходный сидер

csx-seed