Dashboard

Wyłapuj problemy, zanim dotrą na produkcję. Każdy pull request przejrzany względem tego, co działa, nie tylko diffa.

Dołącz do listy oczekujących

Ostrzeżenie ląduje przed scaleniem. Mechanizm, dowody i poprawka: dokładnie tam, gdzie przeglądasz.

github.com/coreplane/orders-api/pull/482

Add trigram index for order search #482

Open rvidal wants to merge 1 commit into main from order-search-trgm
Conversation 1 Commits 1 Checks 2 Files changed 1
polylane bot commented 2 minutes ago ···
Caution

Merging this pull request may degrade production (high impact).

Merging this blocks every write to orders while the index builds. migrations/0114_order_search_trgm.sql:3 adds CREATE INDEX … USING gin (search_text gin_trgm_ops) without CONCURRENTLY, and a plain CREATE INDEX takes a full write lock on orders for the whole build. Checkout sustains ~38 writes/s on that table; each one queues behind the lock until the build finishes.

To make this safe: build the index with CREATE INDEX CONCURRENTLY outside the transactional migration.

orders-db · writes per second · last 48h projected lock window
02040
-48h -24h now
every one of these writes blocks while the index builds

Polylane analysed de91b47 for production impact.

Some checks were not successful 1 failing and 1 successful check
ci / test Successful in 2m 4s Details
Polylane production impact Non-concurrent index build locks writes on orders Details
Merging is blocked

Ulepsza kod, nie tylko go bramkuje. Brakująca instrumentacja jest dodawana prosto na twojej gałęzi.

Clouds prod-cloudflare Key queries

Key queries

31 active · 2 telemetry gaps

Generated from your telemetry and your connected code, judged on observed data: every candidate ran against a day of real data before it was kept.

Did any payment capture fail? code answered
logs: "payment capture failed for order {orderId}"
declared in apps/api/src/payments.ts
Is the checkout webhook retrying more than usual? telemetry answered
metric: webhook.delivery.retries · rate over 5m
baseline 0.4/min over the observed day
Is the nightly reconciliation completing? code answered
logs: "reconciliation complete" · count over 24h
quiet all day: healthy. Kept because the code provably emits it
Are D1 writes hitting rate limits? telemetry unanswerable
no series found for this question
kept as a telemetry gap
Re-confirmed on every discovery run: one thin run cannot wipe a good set.

I obserwuje dalej po scaleniu. Cokolwiek się prześlizgnie, zostaje wyłapane na produkcji.

Issues Critical latency degradation in checkout-edge worker Overview

Critical latency degradation in checkout-edge worker

Incident critical Polylane ·Detected 3 hours ago ·Last seen 4 minutes ago ·2 occurrences
OverviewInvestigationMetricsTimelineProperties
checkout-edge Cloudflare Worker

Critical latency degradation detected in checkout-edge worker: 18x+ P99 latency spikes sustained for 12 minutes

Causal metrics All metrics
Request Duration
414 ms ▲ 43.1σ
Wall Time
416 ms ▲ 43.0σ
CPU Time
14 ms ▲ 2.6σ
Blast radius
Search your cloud resources...
Graph Table
edge-gateway Cloudflare Worker ··· checkout-edge Cloudflare Worker ··· hd-prod Hyperdrive ··· payments-db PlanetScale ··· cart-svc Cloudflare Worker ···
Analysis Copy

Deploy 9f3c2a1 shrank the Hyperdrive pool hd-prod from 50 connections to 5. Under checkout load, requests queue on connection checkout and P99 rises 18× against the 30-minute baseline. Restoring the pool size restores latency.

Tags
service · checkout-edgeprovider · cloudflaredeploy · 9f3c2a1signal · wall_time_p99

Jak działa Polylane. Poznaje twój system, obserwuje go, bada i działa.

  • Najpierw poznaje twój system

    Graf kontekstu mapuje każdy zasób i zależność w twoich chmurach, repozytoriach i u dostawców obserwowalności. Agenci rozumują nad prawdziwą topologią, nie domysłami.

  • Wykrywanie bez progów

    Wbudowane kontrole dla każdego dostawcy, plus kontrole generowane z twoich zapisanych zapytań i dashboardów. Przebieg statystyczny i agent decydują razem, a poprawa nigdy nie otwiera problemu.

  • Dochodzenia, które pokazują dowody

    Każde twierdzenie prowadzi do zapytania, wiersza logu lub rekordu zmiany, który za nim stoi. Werdykt bez dowodów spada do nierozstrzygniętego.

  • Na zapis trzeba zasłużyć, nigdy nie jest zakładany

    Konta łączą się w trybie tylko do odczytu. Rollbacki są domyślnie wyłączone, z limitem częstości i w rejestrze. Zmiany w kodzie przechodzą przez twój zwykły przegląd.

  • Co tydzień jest ostrzejsze

    Wspomnienia, dzienne notatki i zapytania monitoringu ponownie potwierdzane na prawdziwych danych: lipcowe dochodzenie uczy się od czerwcowego.

Wpina się w to, co już uruchamiasz. Połącz w trybie tylko do odczytu i zacznij.

Pytania.

Jak działa przegląd pull request przez AI?

Polylane łączy się z GitHub jako aplikacja i przegląda każdy pull request względem żywej infrastruktury, na którą trafia: grafu kontekstu, bieżącej telemetrii i ostatnich zmian. Werdykt ląduje jako komentarz plus kontrola „Polylane production impact”.

Czy będzie blokować moje scalenia?

Tylko jeśli tego chcesz. Wymagaj kontroli „Polylane production impact” przez ochronę gałęzi, a ryzykowne scalenia będą blokowane; zostaw ją opcjonalną, a werdykt będzie tylko zaleceniem.

Czy to jest dla kodu generowanego przez AI?

Jest dla całego kodu. Po prostu najbardziej liczy się wtedy, gdy nikt nie przeczytał zmiany uważnie: siatka bezpieczeństwa dla kodu generowanego przez AI to ten sam przegląd, który wyłapuje ręcznie napisany błąd.

Czym to się różni od CI?

CI uruchamia twoje testy na kodzie. Polylane przegląda zmianę względem produkcji: konfiguracji, pojemności i zależności, na które trafia, oraz telemetrii, którą emitują właśnie teraz. Pojawia się jako kontrola na tej samej liście, odpowiadając na inne pytanie.

Czy kiedykolwiek scali albo wdroży samo?

Nie. Zmiany trafiają do twojej gałęzi domyślnej tylko przez twój przegląd, a rollbacki do poprzedniego znanego dobrego wdrożenia pozostają wyłączone, dopóki ich nie włączysz.

Więcej przypadków użycia

Dostarczaj w tempie agentów. Przejrzane względem produkcji, za każdym razem.