Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/exotjs/hono
Exot Inspector Integration with Hono
https://github.com/exotjs/hono
hono honojs inspector
Last synced: 10 days ago
JSON representation
Exot Inspector Integration with Hono
- Host: GitHub
- URL: https://github.com/exotjs/hono
- Owner: exotjs
- License: mit
- Created: 2024-02-27T14:43:50.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2024-03-12T06:16:15.000Z (10 months ago)
- Last Synced: 2024-10-25T10:37:06.498Z (about 2 months ago)
- Topics: hono, honojs, inspector
- Language: TypeScript
- Homepage: https://exot.dev
- Size: 16.6 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.txt
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Exot Inspector Integration with Hono
This package includes middleware for [Hono](https://hono.dev), 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
```sh
npm install @exotjs/hono
```## Usage
```ts
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](https://exot.dev/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](/benchmark) folder for more details.
## Contributing
See [Contributing Guide](https://github.com/exotjs/hono/blob/main/CONTRIBUTING.md) and please follow our [Code of Conduct](https://github.com/exotjs/hono/blob/main/CODE_OF_CONDUCT.md).
## License
MIT