Add support for another et collector endpoint
What does this MR do?
Add support for /store endpoint in error tracking collector. It allows us to support Sentry SDK for nodejs.
In details:
- Add failsafe logic to required attributes in collect service
- Add
/storeendpoint. Add more content_type to support different SDK forstoreendpoint. - Add support for
sentry_keybeing passed via params - Remove majority of validation from
app/validators/json_schemas/error_tracking_event_payload.jsoncause payload differs a lot between SDK (ruby, nodejs, clojure etc have very different attributes). Since we don't control SDK its better to save what it gives us and solve differences on code level.
Issue #329596 (closed)
Screenshots or Screencasts (strongly suggested)
No visual changes
How to setup and validate locally (strongly suggested)
Example below:
- Enable error tracking in the test project https://docs.gitlab.com/ee/operations/error_tracking.html#integrated-error-tracking
- Create a sample nodejs project with
@sentry/nodepackage https://docs.sentry.io/platforms/node/ - Trigger event from sample nodejs project toward GitLab DSN
- See GitLab creating
ErrorTracking::ErrorandErrorTracking::ErrorEvent.
Does this MR meet the acceptance criteria?
Conformity
-
I have included changelog trailers, or none are needed. (Does this MR need a changelog?) -
I have added/updated documentation, or it's not needed. (Is documentation required?) -
I have properly separated EE content from FOSS, or this MR is FOSS only. (Where should EE code go?) - [-] I have added information for database reviewers in the MR description, or it's not needed. (Does this MR have database related changes?)
-
I have self-reviewed this MR per code review guidelines. -
This MR does not harm performance, or I have asked a reviewer to help assess the performance impact. (Merge request performance guidelines) -
I have followed the style guides. -
This change is backwards compatible across updates, or this does not apply.
Edited by Dmytro Zaporozhets (DZ)