Why
agentevals sets agentevals.* attributes on SDK session resources and on gen_ai.evaluation.result records (#241). Nothing declares them, so a new key can ship without review and the docs are typed by hand.
Goal
An OpenTelemetry Weaver registry is the contract for every agentevals.* attribute and for what agentevals puts on gen_ai.evaluation.result. Code and registry cannot drift.
Scope
docs/semconv/registry/: manifest, attributes (including the agentevals.metadata.* template), and the evaluation event with its upstream gen_ai.evaluation.* refs.
- A sidecar file for what Weaver cannot hold: the upstream GenAI semconv pin and the ingest aliases for old keys.
- A unit test that loads the registry and matches it against the emitter and SDK key sets, both ways.
weaver registry check in CI from the pinned otel/weaver image. If the upstream dependency does not resolve transitively, redeclare the borrowed attributes locally.
- Optional: generate the attribute tables with
weaver registry generate.
Out of scope
Done when
- CI fails when an emitted key is missing from the registry or a registered key is never emitted.
- The registry passes
weaver registry check.
Why
agentevals sets
agentevals.*attributes on SDK session resources and ongen_ai.evaluation.resultrecords (#241). Nothing declares them, so a new key can ship without review and the docs are typed by hand.Goal
An OpenTelemetry Weaver registry is the contract for every
agentevals.*attribute and for what agentevals puts ongen_ai.evaluation.result. Code and registry cannot drift.Scope
docs/semconv/registry/: manifest, attributes (including theagentevals.metadata.*template), and the evaluation event with its upstreamgen_ai.evaluation.*refs.weaver registry checkin CI from the pinnedotel/weaverimage. If the upstream dependency does not resolve transitively, redeclare the borrowed attributes locally.weaver registry generate.Out of scope
live-checkof incoming telemetry and the trace quality metric.Done when
weaver registry check.