Sentry Backend Modification for SSR Traces
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 25/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Cần làm rõ
- Mức độ hoạt động
- Sôi nổi
- Lĩnh vực
- backend-api-design, observability-sre
Hướng nghiên cứu
Bắt đầu với Span Links Spec và entry point được tham chiếu sentry/search/eap/spans/attributes.py, sau đó xem xét cách Relay và span consumer truyền các link vào EAP. Công việc được xem là hoàn tất khi dự án có một phương pháp đã được quyết định và có thể truy vấn để liên kết các trace máy chủ và máy khách được lưu trong cache, bao gồm các hướng được hỗ trợ và các cửa sổ truy vấn theo thời gian tồn tại của cache, hoặc có một workaround bằng attribute được ghi lại tài liệu nếu không thể triển khai các link được lập chỉ mục.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
The Problem: Cached SSR pages have no connected client/server trace
SSR meta-frameworks cache the HTML/render output: a server renders a page once (build-time, first visit, or on revalidation). Later visitors get the stored result from the server (so no server trace or a disconnected one).
Probably thousands of client pageloads map to one server render.
Differences to previous_trace linking
previous_traceis a 1:1 relationship- Cached server pages are 1 origin with many consumers (1:N)
- Time-gap between server and client can be as long as the cache lifetime
What exists
- Span Links Spec: https://develop.sentry.dev/sdk/telemetry/traces/span-links/
- Relay has full support for span links (
sentry.linksandsentry.link.type) and passes them through untouched - Span consumer flattens each span link(s) into a JSON attribute
sentry.links- stored in EAP sentry.linksis not queryable (private=True)- Span Attribute support for
previous_trace
What we need
- Span links, queryable in EAP - indexed by
trace_idin both directions- Prio 1: One of multiple, different consuming traces (e.g. browser pageload trace) should be able to link to the one connecting server trace
- Prio 2: Also nice: One cached server trace should be able to link to all the client/browser traces it served
- What is the cost of this query?
- Can we get an aggregate (e.g. just the number) of it?
- Workaround (near-term solution): Register a queryable attribute (similar to previous_trace - here in code)
- we only need this workaround if the task above (links in EAP) takes too long
- Only works for N:1 lookup (like Prio 1 task from above)
- Example naming:
simple_sentry_field("cache_origin_trace") - Can we do a 1:N lookup with this attribute?
- Querying Time Window
- Being able to query links within a window that fits cache lifetimes (not assumptions of e.g. 1 hour windows)
- What are possible limitations here?
- Ngôn ngữ chính
- TypeScript
- Star
- 8.7k
- Fork
- 1.9k
- Merge trung bình
- 1 ngày 16 giờ
- Pull request đã merge (30 ngày)
- 576
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của getsentry/sentry-javascript
-
Browser Bug Next.js Traces Waiting for: Product Owner
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
getsentry/sentry-javascript#24672 · 1 bình luận ·
-
Flaky Test React Router Framework Spans Tests
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
getsentry/sentry-javascript#24348 · 1 bình luận ·
-
javascript
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
getsentry/sentry-javascript#24200 · 2 bình luận ·
-
javascript Task
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
getsentry/sentry-javascript#24134 · 1 bình luận ·
-
Cloudflare Workers javascript Tests
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
getsentry/sentry-javascript#24051 · 1 bình luận ·
Tất cả issue của getsentry/sentry-javascript
Issue tương tự
-
VerificationGate: ATTRIBUTION quote guard never matches a normal quotation (\b around the quote) Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
danielmiessler/LifeOS#2234 ·
-
T: Bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
-
Mend: dependency security vulnerability untriaged
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100