Get started Dashboard

Nobody should be on-call

Polylane finds issues in your app and fixes them for you, automatically.

Get started for free

No credit card required.

Trusted by the teams you trust


Fix issues before they become incidents

Detect

Stay ahead of issues with detection that learns your app

Stop waiting for users to report bugs. Polylane watches your logs, metrics and traces across every service, learns what normal looks like, and raises an issue the moment something drifts.

Start detecting
Topology
Search your cloud resources...
Galaxy
checkout-edge Worker
Critical Critical to your architecture.

Issue hotspot: 4 issues in the last 7 days

Change hotspot: 12 changes in the last 7 days

Cloudflare · coreplane · earth · Compute
hd-prod Hyperdrive
Critical Critical to your architecture.

Change hotspot: 7 changes in the last 7 days

Cloudflare · coreplane · earth · Databases
ingest-events Lambda function
Standard Important to your architecture.

Issue hotspot: 2 issues in the last 7 days

AWS · coreplane-prod · us-east-1 · Compute
payments-db Database
Critical Critical to your architecture.

Issue hotspot: 1 issue in the last 7 days

Change hotspot: 3 changes in the last 7 days

PlanetScale · coreplane · us-east · Databases

Troubleshoot

Get the root cause before you open your laptop

Polylane investigates each issue across your code, your deploys and your telemetry, and shows you what broke, why, and the evidence behind it.

Start troubleshooting
Threads Critical latency degradation in checkout-edge worker Share

What I did

I queued an autofix that restores the Hyperdrive pool hd-prod in the coreplane/checkout-edge repo with:

  • max_connections restored from 5 to 50 on the pool binding
  • a regression test that fails when checkout queues on the pool
  • wrangler.jsonc configured to deploy as checkout-edge

This gives Boris a PR with deployable code. Once merged, running wrangler deploy will replace the degraded worker with the fixed version.

The root cause report has been updated with the occurrence #2 evidence: Root Cause: checkout-edge Latency Degradation (Recurring).

Wall Time
checkout-edge worker · last hour
Export chart
Wall Time P99
28,381ms
Wall Time P95
2,696ms
Wall Time P50
118ms
010k20k30k
18:0018:2519:00
Worked for 4m 12s

AI can make mistakes. Please double check cited sources.

Dig deeper...

Fix

Wake up to a fix ready to merge

Polylane writes the fix and opens a pull request. It goes through your normal review and CI, and nobody gets paged.

Start fixing

Restore Hyperdrive pool size in checkout-edge

coreplane/checkout-edge#142 Polylane Critical severity Opened 3 hours ago CI passing
Dismiss Merge
Files changedInvestigation
src/hyperdrive/pool.ts
@@ -14,21 +14,29 @@ export class HyperdrivePool {
14 14 #inFlight = 0;
15 15
16 - constructor(private readonly binding: Hyperdrive) {
17 - this.#ceiling = DEFAULT_CEILING;
16 + constructor(
17 + private readonly binding: Hyperdrive,
18 + private readonly ceiling = poolCeiling(binding),
19 + ) {
20 + if (this.ceiling < MIN_CEILING) {
21 + throw new PoolMisconfigured(this.ceiling, MIN_CEILING);
22 + }
18 23 }
19 24
20 25 async acquire(signal: AbortSignal): Promise<Connection> {
21 - while (this.#inFlight >= this.#ceiling) {
22 - await this.#queue.wait();
26 + if (this.#inFlight >= this.ceiling) {
27 + queueDepth.record(this.#queue.size, { binding: this.binding.id });
28 + if (this.#queue.size > this.ceiling * QUEUE_ALARM_RATIO) {
29 + logger.warn("hyperdrive pool saturated", {
30 + ceiling: this.ceiling,
31 + waiting: this.#queue.size,
32 + });
33 + }
34 + await this.#queue.wait(signal);
23 35 }
24 36 this.#inFlight += 1;
25 37 return this.binding.connect();
26 38 }
@@ -41,9 +53,13 @@ export class HyperdrivePool {
41 53 release(connection: Connection): void {
42 54 this.#inFlight -= 1;
43 - this.#queue.next();
55 + queueDepth.record(this.#queue.size, { binding: this.binding.id });
56 + this.#queue.next();
44 57 }
45 58
46 - get saturated(): boolean {
47 - return this.#inFlight >= this.#ceiling;
59 + get saturated(): boolean {
60 + return this.#inFlight >= this.ceiling;
48 61 }
49 62 }
@@ -58,14 +71,18 @@ function poolCeiling(binding: Hyperdrive) {
58 - const configured = binding.maxConnections;
59 - if (!configured) return DEFAULT_CEILING;
60 - return configured;
71 + const configured = binding.maxConnections ?? DEFAULT_CEILING;
72 + // The binding's ceiling is the contract: a worker that opens more
73 + // connections than the pool allows queues here instead of at the origin,
74 + // which is invisible in origin latency. Fail loudly at boot instead.
75 + return Math.max(configured, MIN_CEILING);
61 76 }
62 77
63 - export const DEFAULT_CEILING = 5;
64 - export const QUEUE_ALARM_RATIO = 4;
78 + export const DEFAULT_CEILING = 50;
79 + export const MIN_CEILING = 25;
80 + export const QUEUE_ALARM_RATIO = 0.5;
65 81
66 - const queueDepth = noopCounter();
67 - const logger = console;
82 + const queueDepth = meter.createHistogram("hyperdrive.queue_depth");
68 83
Ask about this pull request

Trusted by the teams you trust

Polylane runs production for fast-moving software teams. Hear from some of them.

...and loved by developers

Get started for free
chronark @chronark just 2 hours after signing up for @polylane it prevented a potential problem in production. I changed the request body schema for an API endpoint and if I would've just merged it, one of our dashboard pages would've crashed until the API was fully deployed too. Pretty simple mistake, but I forgot this time. polylane didn't Jason @Jasonpraful When I installed polylane for the first time my expectations were pretty low. Couple weeks in I’m speechless - it just works everything is all of a sudden fully autonomous Kyle Galbraith @kylegalbraith fuuuuck @boristane and team cooked with polylane. already merged a pr. Dhravya Shah @DhravyaShah there was something wrong with our docs deployment, and Polylane automatically found and notified us about it... insane stuff @boristane Ben Anthony @benjamin_ACD a few days into using @polylane and I have merged like 40 something worthwhile PRs, seems my agents think the PRs are much higher utility than what detail was giving me Brenton West @west_brent34411 @boristane - It is launch week for me and as I was testing Prod, started to notice things were not flowing like they did in Dev. Following @polylane for months & knowing I would try it when the time was right, I gave it a go. Issue Instantly ID. I was NOT disappointed. 🧑‍🍳💋 lucas @0xperp We started paying for polylane mostly bc of the handoff into our cursor account Ben @nurodev So far @polylane is very cool! Even more that it's finding issues, creating fixes and then working with @pullfrogai in PR's to improve it even more. Tito @mynameistito Wait... so you're telling me I don't even need to make PR's to fix up stuff and @polylane will just do it for me???? luna @ImLunaHey if you haven’t tried out @polylane at work i’d highly suggest it. tushar @gpu004 i really love polylane, such an awesome solution @boristane @polylane Sadok @yesadok polylane is so clean Xiaofeng Xie @XiaofengXie16 polylane is truly amazing Utpal Nadiger @utpalnadiger bullish on polylane

No migration. No new SDKs. Polylane plugs into what you already run.

Trust is non-negotiable.

SOC 2 Type II

Independently audited security controls.

ISO 27001:2022

The international standard for information security management.

End-to-end encryption

AES-256 at rest, TLS 1.2+ in transit.

Data isolation

Fully isolated per organization.

View trust center

Get started with Polylane

Polylane console

Get started for free

Polylane CLI

Common questions.

What is Polylane?

Polylane makes your software self-operating. AI agents learn everything you run, fix what they can, review every code change against the production it deploys to, answer the questions on-call gets, and give your coding agent the same production context.

How does Polylane detect issues?

Agents read your metrics, logs and traces on a cadence and judge them against how each resource normally behaves. Anything your team already charts becomes a check.

What does Polylane work with?

Every integration, and what Polylane does with each, is listed at polylane.com/integrations.

When can I use Polylane?

Now. One command installs the CLI, connects your coding agents, and creates your account: run curl -fsSL https://polylane.com/setup | bash on macOS or Linux.

Can AI agents use Polylane?

Yes. There is a REST API at api.polylane.com and an MCP server at mcp.polylane.com/mcp, and this site is machine-readable at polylane.com/llms.txt.