Skip to content

Commit

Permalink
feat(replay): Config new ingest-feedback-events topic (#227)
Browse files Browse the repository at this point in the history
* Create ingest-feedbacks.yaml

https://getsentry.atlassian.net/browse/OPS-5317
getsentry/sentry#66100

Pipeline/cluster = replays, since replay team owns user feedback. We expect the volume to be too low to justify its own cluster.

* Update ingest-feedbacks description

* Fix ingest-feedbacks.yaml producers

+small change to descrip

* add new schema and pipeline + rename

- move to new 'user-feedback' pipeline
- add an initial schema generated from a widget feedback (captured by chrome dev tools) and https://github.com/glideapps/quicktype
- rename to 'ingest-feedback-events' since 'FeedbackEvent' seems to be the corresponding type in Django + SDK/typescript

* style(lint): Auto commit lint changes

* add topic to CODEOWNERS

* change schema ver to draft-07

* remove field titles and add schema title, remove owners-ingest

* Add react ex and make all optional except contexts:{feedback:{contact_email, message, name, source}}

- all fields have additionalProperties = true, making schema totally flexible and backward/forward-compatible
- rename examples folder

* style(lint): Auto commit lint changes

* style(lint): Auto commit lint changes

* modify schema to match sdk event type

* style(lint): Auto commit lint changes

* style(lint): Auto commit lint changes

---------

Co-authored-by: getsantry[bot] <66042841+getsantry[bot]@users.noreply.github.com>
  • Loading branch information
aliu3ntry and getsantry[bot] committed Mar 12, 2024
1 parent 98bdc1a commit e74bfe4
Show file tree
Hide file tree
Showing 5 changed files with 37 additions and 0 deletions.
1 change: 1 addition & 0 deletions CODEOWNERS
Validating CODEOWNERS rules …
Expand Up @@ -3,6 +3,7 @@
/topics/ingest-metrics.yaml @getsentry/owners-snuba @getsentry/ingest
/topics/ingest-performance-metrics.yaml @getsentry/owners-snuba @getsentry/ingest
/topics/ingest-replay-recordings.yaml @getsentry/owners-snuba @getsentry/ingest @getsentry/replay
/topics/ingest-feedback-events.yaml @getsentry/owners-snuba @getsentry/replay

# DLQs for ingest topics
/topics/ingest-events-dlq.yaml @getsentry/owners-snuba
Expand Down
@@ -0,0 +1 @@
��type�event�payload��{"event_id":"7d657b21020e482da61e0b08f6b884a4","level":"info","version":"7","type":"feedback","logger":"","platform":"javascript","timestamp":1710190027.344,"received":1710190027.331053,"environment":"development","user":{"ip_address":"172.20.0.1","sentry_user":"ip:172.20.0.1"},"request":{"url":"http://localhost:3000/sale","headers":[["Referer","http://localhost:3000/sale"],["User-Agent","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"]]},"contexts":{"browser":{"name":"Chrome","version":"122.0.0","type":"browser"},"device":{"family":"Mac","model":"Mac","brand":"Apple","type":"device"},"feedback":{"message":"fakrevkj","contact_email":"john@doe","name":"john doe","replay_id":"6a9f81bfaacb4b08a76b4298af6c993a","source":"widget","url":"http://localhost:3000/sale","type":"feedback"},"os":{"name":"Mac OS X","version":">=10.15.7","type":"os"}},"tags":[["runtime","browser"]],"sdk":{"name":"sentry.javascript.nextjs","version":"7.106.1","integrations":["InboundFilters","FunctionToString","TryCatch","Breadcrumbs","GlobalHandlers","LinkedErrors","Dedupe","HttpContext","RewriteFrames","BrowserTracing","Replay","Feedback"],"packages":[{"name":"npm:@sentry/nextjs","version":"7.106.1"},{"name":"npm:@sentry/react","version":"7.106.1"}]},"key_id":"1","project":1,"grouping_config":{"enhancements":"KLUv_SAYwQAAkwKRs25ld3N0eWxlOjIwMjMtMDEtMTGQ","id":"newstyle:2023-01-11"},"_metrics":{"bytes.ingested.event":971}}�start_time�e�m˨event_id� 7d657b21020e482da61e0b08f6b884a4�project_id�remote_addr�172.20.0.1�attachments�
@@ -0,0 +1 @@
��type�event�payload�{"event_id":"5932fdbccb094130b25764af7ccf14aa","level":"error","version":"5","type":"feedback","logger":"","platform":"javascript","timestamp":1710189609.953467,"received":1710189609.953467,"release":"42","dist":"1.12","environment":"production","user":{"id":"123","email":"[email]","ip_address":"192.168.11.12","username":"user","sentry_user":"id:123"},"request":{"headers":[["User-Agent","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Safari/605.1.15"]]},"contexts":{"browser":{"name":"Safari","version":"15.5","type":"browser"},"device":{"family":"Mac","model":"Mac","brand":"Apple","type":"device"},"feedback":{"message":"test message","contact_email":"test@example.com","type":"feedback"},"os":{"name":"Mac OS X","version":">=10.15.7","type":"os"},"replay":{"replay_id":"e2d42047b1c5431c8cba85ee2a8ab25d","type":"replay"},"trace":{"trace_id":"4c79f60c11214eb38604f4ae0781bfb2","span_id":"fa90fdead5f74052","status":"unknown","type":"trace"}},"tags":[["transaction","/organizations/:orgId/performance/:eventSlug/"]],"sdk":{"name":"name","version":"veresion"},"errors":[{"type":"past_timestamp","name":"timestamp","sdk_time":"2020-08-21T02:42:57.618971824+00:00","server_time":"2024-03-11T20:40:09.953467084+00:00"}],"key_id":"123","project":42,"_metrics":{"bytes.ingested.event":809},"_meta":{"timestamp":{"":{"err":[["past_timestamp",{"sdk_time":"2020-08-21T02:42:57.618971824+00:00","server_time":"2024-03-11T20:40:09.953467084+00:00"}]]}},"user":{"email":{"":{"rem":[["@email","s",0,7]],"len":13}}}}}�start_time�e�l)�event_id� 5932fdbccb094130b25764af7ccf14aa�project_id*�remote_addr�127.0.0.1�attachments�
17 changes: 17 additions & 0 deletions schemas/ingest-feedback-events.v1.schema.json
@@ -0,0 +1,17 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "feedback_event",
"description": "User feedback event from Relay",
"type": "object",
"required": ["type", "event_id", "project_id", "payload", "start_time"],
"additionalProperties": true,
"properties": {
"type": { "type": "string" },
"payload": {
"description": "bytes. JSON string of the wrapped feedback event"
},
"event_id": { "type": "string" },
"project_id": { "type": "integer" },
"start_time": { "type": "integer" }
}
}
17 changes: 17 additions & 0 deletions topics/ingest-feedback-events.yaml
@@ -0,0 +1,17 @@
topic: ingest-feedback-events
pipeline: user-feedback
description: User feedback events from SDK
services:
producers:
- getsentry/relay
consumers:
- getsentry/sentry
schemas:
- version: 1
compatibility_mode: none
type: msgpack
resource: ingest-feedback-events.v1.schema.json
examples:
- ingest-feedback-events/1/
topic_creation_config:
max.message.bytes: "10000000"

0 comments on commit e74bfe4

Please sign in to comment.