Description
A note for the community
- Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
- If you are interested in working on this issue or have submitted a pull request, please leave a comment
Use Cases
Hey, I work at Sentry. Sentry now supports sending logs.
We at Sentry would love to contribute a Sentry sink to Vector so that users can send their logs via Vector to Sentry. I'd be happy to implement this, and the Sentry team would by happy to own it.
Attempted Solutions
Functionally the sentry logs schema is a superset of the OpenTelemetry one, so the transform should be fairly simple (just have to route it to Sentry ingestion).
Sentry also supports traces, but we can add that as a follow-up due to the alpha nature of tracing in Vector.
Proposal
The component will be stateless. The component needs state to maintain rate limiting information. See Sentry docs here
The API should look something like so:
sinks:
my_sink_id:
type: sentry
inputs:
- my-source-or-transform-id
dsn: ${SENTRY_DSN}
The dsn
(Data Source Name) references the which org/project should receive the logs in Sentry.
The only unknown in the implementation is dealing with rate limiting. Sentry has a detailed spec on how clients should respond to being rate limited by Sentry (see docs here), and I'm not sure the finely-grained category based rate-limiting will work with Vector. Suggestions are welcome! Was tested, should be fine.
Sentry can be run self-hosted (and is available on GitHub completely source available: github.com/getsentry/sentry) so adding more complicated integration or e2e tests should not be too complex.
References
Issue tracking in Sentry repo: getsentry/sentry#92400
Version
No response