@exotjs/hono
v0.1.1
Published
Exot Inspector Integration with Hono
Downloads
15
Readme
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/hono
Usage
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