handleSpansItem processes a "spans" envelope item (Span v2 format).
(item EnvelopeItem)
| 239 | |
| 240 | // handleSpansItem processes a "spans" envelope item (Span v2 format). |
| 241 | func (h *handler) handleSpansItem(item EnvelopeItem) { |
| 242 | if h.db == nil { |
| 243 | return |
| 244 | } |
| 245 | |
| 246 | // Spans v2 can be either {"items": [...]} or a bare array [...]. |
| 247 | var envelope SpansEnvelope |
| 248 | if err := json.Unmarshal(item.Payload, &envelope); err == nil && len(envelope.Items) > 0 { |
| 249 | if err := storeSpansV2(h.db, envelope.Items, nil); err != nil { |
| 250 | slog.Warn("sentry: failed to store spans v2", "err", err) |
| 251 | } |
| 252 | return |
| 253 | } |
| 254 | |
| 255 | // Try as bare array. |
| 256 | var spans []RawSpan |
| 257 | if err := json.Unmarshal(item.Payload, &spans); err == nil && len(spans) > 0 { |
| 258 | if err := storeSpansV2(h.db, spans, nil); err != nil { |
| 259 | slog.Warn("sentry: failed to store spans v2 (array)", "err", err) |
| 260 | } |
| 261 | } |
| 262 | } |
| 263 | |
| 264 | // handleLogItem processes a "log" envelope item. |
| 265 | func (h *handler) handleLogItem(item EnvelopeItem) { |
no test coverage detected