0.1.1 • Published 2 months ago

@exotjs/hono v0.1.1

Weekly downloads
-
License
MIT
Repository
-
Last release
2 months ago

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.

TestChange 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

0.1.1

2 months ago

0.1.0

3 months ago