Refactor Envelope build & sending

Abierto
#643 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 2 días

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
35/100
Tipo de issue
Refactorización
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
go
Área
api

Línea de trabajo

Lee la SDK envelope specification y, después, inspecciona las APIs de transport, Event, Envelope y Envelope Item mencionadas en el issue. Rastrea cómo se entregan actualmente los eventos a transport e identifica allí el procesamiento específico de los eventos. Se considera terminado cuando transport acepta envelopes y deja de depender de event types; el issue no especifica ninguna prueba concreta.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Feature Go

Summary

Currently, events are handed over to transport for sending. In order to fully switch to Envelopes, transport should not know about events and instead accept envelopes for sending. Transport should also not do any event-type specific processing - all the information transport needs is contained in the Envelope & its Items. See https://develop.sentry.dev/sdk/envelopes/

Motivation

Besides finishing the move to Envelopes, the separation of concerns would allow us to build envelopes with multiple items, without hacking around events, as I've had to do in here - adding a transactionProfile field to Event and handling that in transport.go.

Additional Context

Ideally, I'd also suggest something to think about in the future - changing the APIs to not accept Event struct but rather an interface, sth. like which just knows how to serialize and deserialize itself. This would also make it more flexible and avoid adding fields specific to different event types, e.g. Transactions, as there already are.

Lenguaje dominante
Go
Estrellas
1.1k
Forks
264
Merge medio
2 d 6 h
PR fusionados (30 d)
11

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de getsentry/sentry-go

Todos los issues de getsentry/sentry-go

Issues similares

Más issues de Go

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.