Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

feature(node): Add instrumentation to the handler in Hono #17428

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
Karibash wants to merge 6 commits into getsentry:develop
base: develop
Choose a base branch
Loading
from Karibash:feature/hono-instrumentation-handler

Conversation

Copy link
Contributor

@Karibash Karibash commented Aug 18, 2025
edited
Loading

Summary

This PR enhances the Hono integration by adding comprehensive handler instrumentation, error handling capabilities, and thorough test coverage. The changes build upon the basic Hono integration to provide a complete tracing and error monitoring solution.

New Features

  • Handler Instrumentation: Added instrumentation for Hono handlers and middleware, providing detailed tracing capabilities
  • Error Handler: Implemented setupHonoErrorHandler() function to capture and report errors to Sentry with configurable error filtering
  • Public API: Added Hono integration to the main package exports, making it available as @sentry/node
  • Tracing Module: Included Hono integration in the tracing integrations index

Bug Fixes

  • CJS Compatibility: Fixed an issue where applying patches failed in CommonJS environments
  • Type Corrections: Fixed incorrect MiddlewareHandler type definition to ensure proper TypeScript support

Implementation Details

  • Instrumentation: Created HonoInstrumentation class that wraps Hono middleware handlers via class extension instead of function replacement for better compatibility
  • Type Definitions: Added comprehensive TypeScript type definitions vendored from Hono's official types
  • Constants: Defined Hono-specific attribute names for OpenTelemetry integration
  • CJS Compatibility: Fixed patching issues in CommonJS environments

Testing

  • Integration Tests: Added comprehensive test suite covering:
    • ESM and CJS compatibility
    • Multiple HTTP methods (GET, POST, PUT, DELETE, PATCH)
    • Various route patterns (sync/async, different paths)
    • Middleware and handler instrumentation verification
    • Error handling scenarios
    • Span attribute validation

Related Issue

close #15260

seer-by-sentry[bot] reacted with hooray emoji douglasduteil reacted with eyes emoji
cursor[bot]

This comment was marked as outdated.

@Karibash Karibash force-pushed the feature/hono-instrumentation-handler branch from 32e3a23 to 505c480 Compare August 18, 2025 02:31
cursor[bot]

This comment was marked as outdated.

@s1gr1d s1gr1d assigned s1gr1d and unassigned s1gr1d Aug 25, 2025
@s1gr1d s1gr1d requested review from s1gr1d and Lms24 August 25, 2025 11:06
@Karibash Karibash force-pushed the feature/hono-instrumentation-handler branch from 505c480 to a7ef204 Compare August 25, 2025 11:22
Copy link
Contributor Author

Karibash commented Sep 2, 2025

@s1gr1d @Lms24
Hi, just wanted to kindly follow up on this PR.
Is there anything I can do to help move it forward, or any feedback you’d like me to address?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Reviewers

@cursor cursor[bot] cursor[bot] left review comments

@s1gr1d s1gr1d Awaiting requested review from s1gr1d

@Lms24 Lms24 Awaiting requested review from Lms24

At least 1 approving review is required to merge this pull request.

Assignees
No one assigned
Labels
None yet
Projects
None yet
Milestone
No milestone
Development

Successfully merging this pull request may close these issues.

Implement Hono SDK
2 participants

AltStyle によって変換されたページ (->オリジナル) /