儀表板

生產環境早就裝不進任何人的腦袋。 Polylane 全部裝得下:雲端、程式碼與遙測資料,在同一張即時的圖裡。

加入候補名單
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

代理的好壞取決於它的情境。 Polylane 是這樣學習你的情境的。

  • 你的整個雲端,唯讀

    AWS 透過唯讀角色,多數供應商透過 API 權杖。每個資源都加入這張圖,而且會自己保持最新。

  • 跨供應商串連

    主機名稱、DNS 記錄與 IP 把各個雲端連起來:一筆指向 Render 服務的 Cloudflare CNAME。真實的請求路徑,不是兩年前的架構圖。

  • 重要的東西,看得更緊

    每個資源都有一個層級,從關鍵到最低,每天依流量與依賴它的東西計算。任何一項都可以覆寫。

  • 它會把事情寫下來

    每個資源都有一份隨系統漂移而自我改寫的 wiki,代理也會留下筆記:七月的調查會從六月的學到東西。

CLI 或 MCP,由你決定。 你的程式碼代理想怎麼連就怎麼連。

CLI 幫你接好。

一次安裝就連上你的技術棧,並在你機器上的每一個程式碼代理裡註冊 Polylane。

Model Context Protocol

MCP 提供服務。

你的雲端、遙測資料、部署與程式碼都在同一個 MCP 伺服器後面。預設只讀;寫入受預設拒絕的政策管控。

在你已經在用的工具裡。 每個代理讀的都是同一張圖。

Claude Code
Cursor
GitHub Copilot
Codex
Gemini CLI
VS Code
Zed
OpenCode

Code mode。 一次往返,只拿答案。

你的代理不必逐一呼叫工具,而是對 MCP 的 tools 命名空間撰寫 TypeScript,由伺服器執行。中間結果不會進入情境視窗;只有答案回來。

polylane · runCode
// Which deploy slowed checkout-edge?
const deploys = await tools.deployHistory({ service: "checkout-edge", hours: 24 });
const { points } = await tools.queryMetrics({
  service: "checkout-edge",
  metric: "latency.p99",
  hours: 24,
});

const median = (xs) => xs.sort((a, b) => a - b)[xs.length >> 1] ?? 0;
const p99 = (t, side) =>
  median(points.filter((p) => (side < 0 ? p.t < t : p.t > t)).map((p) => p.v));

// Score every deploy by the p99 shift across its timestamp.
const [worst] = deploys
  .map((d) => ({ ...d, shift: p99(d.at, 1) / p99(d.at, -1) }))
  .sort((a, b) => b.shift - a.shift);

// Pull the error logs right after the suspect deploy.
const errors = await tools.queryLogs({
  service: "checkout-edge",
  level: "error",
  after: worst.at,
  limit: 5,
});

// Only this returns; the series and logs stay in the sandbox.
return {
  deploy: worst.sha, // 9f3c2a1
  p99Shift: worst.shift, // 4.8
  topError: errors[0]?.message, // "Hyperdrive pool exhausted"
};

one answer back; twenty round trips saved

連上你的雲端。 Polylane 會在任何東西壞掉之前摸熟每一個角落。