diff --git a/CODEOWNERS b/CODEOWNERS index 1dc9b64c..cd6dd994 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -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 diff --git a/examples/ingest-feedback-events/1/pokemart-widget-kcat.msgpack b/examples/ingest-feedback-events/1/pokemart-widget-kcat.msgpack new file mode 100644 index 00000000..aa7d1ace --- /dev/null +++ b/examples/ingest-feedback-events/1/pokemart-widget-kcat.msgpack @@ -0,0 +1 @@ +typeeventpayload{"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_timeem˨event_id 7d657b21020e482da61e0b08f6b884a4project_idremote_addr172.20.0.1attachments \ No newline at end of file diff --git a/examples/ingest-feedback-events/1/relay-test_feedback_event_with_processing.msgpack b/examples/ingest-feedback-events/1/relay-test_feedback_event_with_processing.msgpack new file mode 100644 index 00000000..9de3e467 --- /dev/null +++ b/examples/ingest-feedback-events/1/relay-test_feedback_event_with_processing.msgpack @@ -0,0 +1 @@ +typeeventpayload{"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_timeel)event_id 5932fdbccb094130b25764af7ccf14aaproject_id*remote_addr127.0.0.1attachments \ No newline at end of file diff --git a/schemas/ingest-feedback-events.v1.schema.json b/schemas/ingest-feedback-events.v1.schema.json new file mode 100644 index 00000000..4631cc84 --- /dev/null +++ b/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" } + } +} diff --git a/topics/ingest-feedback-events.yaml b/topics/ingest-feedback-events.yaml new file mode 100644 index 00000000..b4ec46ba --- /dev/null +++ b/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"