Exot Inspector Integration with Hono
This package includes middleware for Hono, enabling automatic tracing of incoming requests and seamless integration with other features of Exot Inspector.
Compatibility
Hono is a modern, cross-runtime framework that supports various platforms. However, Exot Inspector requires specific Node.js built-in modules and officially supports only Node.js, Bun, and Deno.
Install
npm install @exotjs/honoUsage
import { Hono } from 'hono';
import { Inspector } from '@exotjs/inspector';
import { inspectorMiddleware } from '@exotjs/hono';
const inspector = new Inspector();
const { trace } = inspector.instruments.traces;
const app = new Hono();
app.use(inspectorMiddleware({
inspector,
}));
app.get('/', (c) => {
return trace('hello', () => c.text('Hello Hono!'));
});
export default app;Server Metrics
In addition to built-in request tracing, this middleware automatically collects basic server metrics, visible in the Exot App:
- Request latency
- Response status codes
Configuration
inspector: Inspector (required)
Provide the instance of the Inspector.
traceIdHeader: string
Specify the header name for the “trace ID.” Set to null to disable. Default is X-Trace-Id.
Performance
The following table illustrates the performance change per request under different scenarios.
| Test | Change per request |
|---|---|
| Inspector deactivated | +0.24ms |
| Tracing disabled (metrics only) | +0.96ms |
| Tracing enabled (metrics + tracing) | +2.21ms |
| Tracing enabled (metrics + 10x tracing) | +5.03ms |
As a rule of thumb, approximately ~1ms is added to each request when tracing is disabled and only server metrics are collected. If the entire inspector, including metrics, is deactivated, only negligible sub-milliseconds are added to each request. With tracing enabled and metrics collected, expect about ~2ms. The last test measures 10 nested traces, where you should expect about ~5ms overhead.
Refer to the benchmark folder for more details.
Contributing
See Contributing Guide and please follow our Code of Conduct.
License
MIT