Add RELP (Reliable Event Logging Protocol) log delivery handler #5

Open
opened 2026-02-08 18:16:22 +01:00 by clawbot · 0 comments
Collaborator

Goal

Implement a RELP client handler for simplelog, allowing log messages to be delivered to a remote rsyslog server using the RELP protocol (via imrelp).

Design

  • New RELPHandler implementing slog.Handler (and ExtendedHandler)
  • Configured via LOGGER_RELP_URL environment variable (e.g. tcp://rsyslog.example.com:2514)
  • RELP session management: open handshake, syslog command for each log message, graceful close
  • Transaction numbers tracked per session
  • Automatic reconnection on connection failure
  • Syslog-formatted messages (RFC 5424 or RFC 3164) sent via RELP syslog command
  • Acknowledgement tracking — each syslog command gets an rsp from the server confirming delivery

RELP Protocol Summary

Frame format: TXNR SP COMMAND SP DATALEN [SP DATA] LF

  • open — session init with version/capabilities offers
  • syslog — deliver a log message
  • close — graceful session teardown
  • rsp — server response with status code (200=ok, 500=error)

References

## Goal Implement a RELP client handler for simplelog, allowing log messages to be delivered to a remote rsyslog server using the RELP protocol (via `imrelp`). ## Design - New `RELPHandler` implementing `slog.Handler` (and `ExtendedHandler`) - Configured via `LOGGER_RELP_URL` environment variable (e.g. `tcp://rsyslog.example.com:2514`) - RELP session management: `open` handshake, `syslog` command for each log message, graceful `close` - Transaction numbers tracked per session - Automatic reconnection on connection failure - Syslog-formatted messages (RFC 5424 or RFC 3164) sent via RELP `syslog` command - Acknowledgement tracking — each `syslog` command gets an `rsp` from the server confirming delivery ## RELP Protocol Summary Frame format: `TXNR SP COMMAND SP DATALEN [SP DATA] LF` - `open` — session init with version/capabilities offers - `syslog` — deliver a log message - `close` — graceful session teardown - `rsp` — server response with status code (200=ok, 500=error) ## References - RELP spec: https://github.com/rsyslog/librelp/blob/master/doc/relp.html - README already lists this as a planned feature
Sign in to join this conversation.
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: sneak/simplelog#5
No description provided.