Tracing
When enabled, the runtime creates spans for each stage of tool execution:| Span | Attributes |
|---|---|
| MCP request handling | Method, tool name, request ID |
| Auth plugin execution | Plugin name, tool name, success/failure |
| Input transform | Tool name, script path |
| Connector execution | Adapter name, connector type, cache hit/miss |
| Output transform | Tool name, script path |
| Connector initialization | Adapter name, connector type |
Metrics
| Metric | Type | Description |
|---|---|---|
| Tool invocation count | Counter | tools/call requests per tool |
| Execution duration | Histogram | End-to-end time per tool |
| Cache hit/miss ratio | Counter | Hits vs. misses per query |
| Connector execution time | Histogram | Time in connector Execute calls |
| Auth failure count | Counter | Rejections per plugin |
Structured logging
Hyperterse uses a tagged structured logger with the following fields:- Timestamp — ISO 8601.
- Level — ERROR (1), WARN (2), INFO (3), DEBUG (4).
- Tag — Component identifier:
runtime,executor,connector,mcp,auth. - Message — Descriptive text.
- Fields — Structured key-value pairs (tool name, adapter, duration, error details).
Log levels
| Level | Value | Description |
|---|---|---|
| Error | 1 | Unrecoverable failures. Connector init failures, fatal config errors. |
| Warn | 2 | Recoverable issues. Cache misses on expected hits, slow queries. |
| Info | 3 | Operational events. Startup, shutdown, tool registration, requests. |
| Debug | 4 | Diagnostic detail. Substituted statements, auth context, cache keys. |
server.log_level in .hyperterse, or --log-level / --verbose CLI flags.
Log routing
| Flag | Description |
|---|---|
--log-file <path> | Write logs to a file instead of stderr. |
--log-tags <tags> | Filter output to specific component tags. |
Attribute redaction
The observability subsystem redacts sensitive values before export:- Connection strings — Replaced with
[REDACTED]in trace spans. - API keys — Auth policy values excluded from trace attributes.
- Statement parameters — Input values in substituted statements logged at debug level only.
Configuration
Collector integration
Hyperterse exports via OTLP over HTTP. Point the endpoint to your collector:| Backend | Configuration |
|---|---|
| Jaeger | OTLP receiver on port 4318 |
| Grafana Tempo | OTLP receiver |
| Datadog Agent | OTLP ingestion endpoint |
| AWS X-Ray | ADOT collector with OTLP receiver |
Quick start with Jaeger
http://localhost:4318/v1/traces and view traces at http://localhost:16686.