Skip to content
ObservabilityPreviewOpenTelemetry native

See what ran. Prove what happened.

Send metrics, logs and traces from any OpenTelemetry SDK. Every platform action lands in an audit log you can verify, event by event.

console.hexelstudio.com
7f3a9c2e41b0d5e8c6a5f4e2b1d07c21Look up
7 spans412 ms
agent.runtriage-agent412 ms
titan.decideTitan38 ms
approval.waitTitan24 ms
gateway.executeTool Gateway272 ms
credential.releaseTool Gateway21 ms
github.issue.createTool Gateway231 ms
audit.writeObservability45 ms
Logs for this traceservice · level · message
TimeLevelServiceMessage
14:02:11.204INFOTitanDecision: needs approval · github.issue.create
14:02:11.611INFOTitanApproved by alex@acme.com
14:02:11.676INFOTool GatewayCredential added for GitHub · acme

OpenTelemetry in, nothing to run

Point any OpenTelemetry SDK at Hexel Studio with your token. Metrics, logs and traces arrive over OTLP; there is no collector to deploy.
.envOTLP / HTTP
# any OpenTelemetry SDK
OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
OTEL_EXPORTER_OTLP_ENDPOINT=https://api.hexelstudio.com
OTEL_EXPORTER_OTLP_HEADERS="Authorization=Bearer $TOKEN"
POST /v1/tracesprotobuf or JSON · gzipTraces
POST /v1/metricsprotobuf or JSON · gzipMetrics
POST /v1/logsprotobuf or JSON · gzipLogs

Isolated by identity

Your organization comes from your token, never from a header someone can set. Every query is scoped to it before it runs.
org: acmetenant from the token, not a header
org: globextenant from the token, not a header
acme token, asking for globex data:
GET /v1/query?query=up · Org: globex
ignored · results scoped to org acme
Every queryscoped to your organization first
Another organization’s datanever returned

Logs you can search

Filter by service, level and text, over the last hour or the last month, and open any line to see its labels and fields.
Logsscoped to your organization
Text: “github”All servicesINFO · WARN · ERRORLast 1h · 250 lines
TimeLevelServiceMessage
14:02:11.204INFOTitanDecision: needs approval · github.issue.create
14:02:11.611INFOTitanApproved by alex@acme.com
14:02:11.676INFOTool GatewayCredential added for GitHub · acme
14:02:11.903WARNTool GatewayGitHub took 231 ms to respond
14:02:11.950INFOObservabilityAudit event sealed · tool.execute

Traces, span by span

Look up any trace by its ID and see every span on one timeline: which service ran it, how long it took, and where it failed.
Trace7f3a…0c21
7 spans412 ms
agent.runtriage-agent412 ms
titan.decideTitan38 ms
approval.waitTitan24 ms
gateway.executeTool Gateway272 ms
credential.releaseTool Gateway21 ms
github.issue.createTool Gateway231 ms
audit.writeObservability45 ms

An audit log you can check

Platform actions are signed when they’re written. Open any event and verify it, from the console or the API, to prove it hasn’t changed.
Audit Log
Tamper-evident record of platform actions, scoped to your organization.
TimeActionResourceUser
14:02:11tool.executegithub.issue.createTitan
14:02:09approval.decideapr_8c1e…alex@acme.com
14:01:57session.createses_41d2…triage-agent
14:01:12policy.publishpilot_write_v1alex@acme.com
tool.executeevt_5b9d…
event_hash 9f2c4e1a71b0d3e8c6a5f4e2b1d07c9a8e6f5d4c3b2a1908f7e6d5c4b3a29180
Verify integrity Verified

Kept, write-once

Audit events are archived to write-once storage and can be replayed. Titan’s decision ledger exports here too, so one place holds the whole story.
Archive and retention
Metrics395 days
Logs90 days
Traces30 days
Audit events2 years
Write-once archiveCreate-only object writes · replay any day back signed
Titan ledger exportEvery decision arrives here and can be re-verified ok

Three lines to start.

Set the OTLP endpoint and your token, and your services start reporting. Write and verify audit events with two calls.

export OTEL_EXPORTER_OTLP_PROTOCOL=http/protobufexport OTEL_EXPORTER_OTLP_ENDPOINT=https://api.hexelstudio.comexport OTEL_EXPORTER_OTLP_HEADERS="Authorization=Bearer $TOKEN"

See what ran. Prove what happened.

Observability is in preview, running in one region today.