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
/store
endpoint. Add more content_type to support different SDK forstore
endpoint. - Add support for
sentry_key
being passed via params - Remove majority of validation from
app/validators/json_schemas/error_tracking_event_payload.json
cause 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/node
package https://docs.sentry.io/platforms/node/ - Trigger event from sample nodejs project toward GitLab DSN
- See GitLab creating
ErrorTracking::Error
andErrorTracking::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)