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