Does an instrumentation actually emit what the semantic conventions say it should? This repo answers that the same way for every library, every implementation and every language: run a small program that exercises the library, collect what it emits through Weaver live-check, and check it against expectations declared in YAML.
tools/runner/ |
the runner. Generic — it carries no semantic conventions of its own |
tools/gen-ai/ |
what makes a run a GenAI run: the registry pin, the advice policies, and a mock LLM server so scenarios are deterministic without cassettes |
tools/http/ |
the same for HTTP: the upstream registry pin, and the test client that drives both sides of the domain |
tools/java/ |
what every JVM scenario shares, in any domain: the launcher that builds and runs one, the Gradle convention plugins, and the SDK bootstrap |
scenarios/gen-ai/ |
the GenAI scenarios and the coverage they produce |
scenarios/http/ |
the HTTP scenarios and the coverage they produce |
A conformance directory names the wrapper it wants under runner:, so one
command runs any of them:
pip install -e tools/runner -e tools/gen-ai/mock-server -e tools/gen-ai/runner
otel-conformance path/to/directory --report-onlySee the runner's README for what a scenario and its
conformance.yaml look like.
- Christophe Kamphaus, Independent
- Jay DeLuca, Grafana Labs
- Josh Suereth, Google
- Liudmila Molkova, Google
- Trask Stalnaker, Microsoft
For more information about the maintainer role, see the community repository.
- None
For more information about the approver role, see the community repository.