Skip to content

Event observer interface that can be used to inject foundations telemetry and other debuggability hooks into quiche #2273

@antoniovicente

Description

@antoniovicente

I have been recently trying to get insight into the following events seen by QUIC connections:

  • DATA_BLOCKED
  • STREAM_DATA_BLOCKED
  • RESET_STREAM
  • STOP_SENDING

As ways to understand proxy behaviors. I see some foundations telemetry and QuicAuditStats use in tokio-quiche, but neither of those is available in the quiche library. Ideally we'ld like to get notifications when quiche decides it will generate those 4 frame types as a way to increment prometheus metrics immediately and build up information in the connection object so we can generate a final report at the end of the connection.

The need for different work depending on the application makes me think that we need an observability trait of some kind that the application can feed into quiche in order to be notified when some event of interest happens. First use cases of this trait could be the prometheus metric and end of connection logging cases mentioned above, but the true success would be if we could use this trait to implement more complicated behaviors like qlog trace generation and some kinds of debug logging.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions