Skip to content

Add new sink component for Sentry (sentry.io) #23325

@AbhiPrasad

Description

@AbhiPrasad

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    sink: newA request for a new sinktype: featureA value-adding code addition that introduce new functionality.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions