← Vetro Attest · Free Art. 12/14 checker · Free EU AI Act tools
Vetro Attest vs. OpenTelemetry alone
*Engineering comparison, not legal advice.*
If you already instrument your agents with OpenTelemetry, you have done the hardest part of AI Act logging: your system records events automatically, in a standard format. The question this page answers is whether those traces, on their own, are evidence.
What OpenTelemetry does well
- A vendor-neutral standard. OTLP traces can go to any compatible backend, open source or commercial, and you can switch without re-instrumenting.
- GenAI semantic conventions. The
gen_ai.*attributes describe model calls in a common vocabulary: system, request and response model, token usage, operation, and, when you opt in, prompts and completions. The conventions are still evolving, but many instrumentation libraries already emit them. - Causality. Spans carry trace and parent IDs, so an agent run, with its model calls, tool calls and retrievals, can be reconstructed as a tree.
- Broad ecosystem. Instrumentation exists for most model providers and agent frameworks.
For Art. 12 of the EU AI Act, which asks providers to design high-risk systems to *automatically record events* enabling traceability, a well-instrumented OTel pipeline is a strong foundation.
What OpenTelemetry alone does not give you
OpenTelemetry is a telemetry standard. Integrity and attestation are deliberately out of its scope.
- No tamper evidence. An OTLP/JSON export is plain JSON. Anyone who holds it can edit an attribute, delete a span or change a timestamp, and the result is still a valid trace.
- No signature. Nothing in the file says which system produced it, and nothing lets a recipient check that it was not modified afterwards.
- No independent time. Span timestamps come from your own clocks. They record when you say things happened.
- Completeness depends on the pipeline. Collectors can sample, drop or filter spans. That is often the right operational choice, but a trace does not tell its reader what was left out.
So an OTel trace is a good *record*. On its own it is a weak *proof*: it asks the reader to trust whoever exported it.
What Vetro Attest adds
Vetro Attest accepts your OTLP/JSON trace as-is. It converts the GenAI spans into a hash-chained ledger, where any later edit, deletion or reordering breaks verification, and checks it for free. For 49 USD, one-off:
- an EU AI Act report (Markdown and HTML) mapping the run onto logging obligations;
- an ed25519 countersignature by this independent service over the ledger digest, event count and timestamp, verifiable by anyone with our published public key.
Because an imported trace carries no signature of yours, the attestation records that its source was an OTel import. That makes the countersignature the only timestamped proof attached to the trace, and it says so honestly.
Limits: the countersignature attests that the trace verified at a time, not that its contents are true or complete; the report is not legal advice.
When to use both
Keep OpenTelemetry as your instrumentation layer; nothing here replaces it. Then:
- For runs that matter, export the complete trace as OTLP/JSON, unsampled.
- Get it countersigned soon after the run.
- Store the trace and the attestation together in retention storage.
If you want signatures at the source as well, the open-source Vetro recorder writes natively signed ledgers and can export them back to OTLP.
Try it
- Free Art. 12/14 checker: a quick self-assessment of your logging.
- Paste an OTLP trace on the Vetro Attest home page: free verification, then 49 USD for the report and countersignature.
See a sample ledger verified in one click, check your own logs free or get the countersigned EU AI Act report.