getsentry / getsentry/sentry-javascript

Link cache-hits to the trace that filled the cache entry

Đang mở
#24,294 1 bình luận 0 reaction 0 người được giao Xem trên GitHub
javascript
Ngôn ngữ chính
TypeScript
Star
8.7k
Fork
1.8k
Merge trung bình
1 ngày 17 giờ
Pull request đã merge (30 ngày)
523

Mô tả

*Example:* a product page uses

```
async function getProducts() {
'use cache';
cacheLife('hours');
return db.query('SELECT * FROM products');
}
```

Visitor A at 09:00 misses. The DB query runs, 800 ms, trace A. Visitor B at 14:00 gets a 2 ms hit and complains about yesterday's price. B's trace shows a fast green `cache.get` and nothing else. Trace A, where the content came from, cannot be found from B.

*Solves:* you can navigate from any cache hit to the render that produced the content. One bad render can serve thousands of visitors, and today the render is the one trace you cannot reach.

*Fix idea:* at handler `set`, store the active trace context keyed by cache-key digest (mechanism per the transport decision, 3.2). At a `get` hit, always attach a real span link: `span.addLink()` with `sentry.link.type: 'cache_origin'` pointing at the fill span. The link is unconditional and the durable data model; it renders in the span drawer today and needs no SDK change once Sentry stores links first-class. Separately, duplicate it into the flat bridge attribute, but only if the backend meeting lands on "EAP links take too long". The prototype verified the link round-trips. Acceptance: an E2E miss/hit pair shows the span link on the hit transaction, independent of the bridge attribute.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Start by locating the cache handler's set and get paths and reviewing the transport decision in section 3.2, then inspect the existing prototype's round-trip behavior. Add an end-to-end miss/hit case and verify that the hit transaction shows a cache_origin span link independently of the flat bridge attribute.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
typescript
Lĩnh vực
observability
Loại issue
Tính năng
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Sôi nổi
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
48/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.