Skip to content
sigiro

面向自我修复软件的数据层。

把 OpenTelemetry 发送到 sigiro。服务出故障时,你会拿到排序后的结果、可疑的那次部署,以及每条结果背后的查询语句。

factory loop · five stages
检测, step 1 of 5

检测 · sigiro

$ sigiro anomalies

SERVICE SIGNAL BASELINE NOW SHIFT INCIDENT

checkout error_rate 0.4% 19.2% +0.96 checkout@18:35

checkout latency_p95 180ms 30.0s +0.99 checkout@18:35

2 shifts · 1 incident · since 18:35

诊断 · sigiro

$ sigiro diagnose checkout

suspect deploy 9f2c1ab, landed 18:33

failing POST /api/orders

failure mode timeout 246 · server_error 6

errors_total 1284

drill_down_sql SELECT trace_id, duration, status_message

FROM sigiro_spans WHERE service_name = 'checkout' …

修复 · 你的智能体

$ claude "checkout times out since 9f2c1ab"

read src/orders/upstream.ts

edit src/orders/upstream.ts +4 −1

test 42 passed

push fix: bound the orders upstream call at 5s

验证 · 你的流水线,用我们的证据

$ sigiro anomalies --service checkout

SERVICE SIGNAL BASELINE NOW SHIFT INCIDENT

no shifts · checkout · last 7d

沉淀 · 你的记忆库

$ cat playbooks/checkout-upstream-timeout.md

## checkout · upstream timeout

detected error_rate +0.96, latency_p95 +0.99

cause unbounded upstream call, shipped in 9f2c1ab

fix 5s deadline on the orders client

watch the same shape on any service calling orders

自己部署就免费。sigiro 不会把任何数据发给我们。

怎么用

四个步骤。 你依次完成接入、提问、关联和核验。

你把 OpenTelemetry 发送到 sigiro,然后问一个问题。下面每一步都是一次真实的终端会话。

接入, step 1 of 4
接入1 of 4
$ curl -fsSL https://sigiro.com/install | sh
installed ~/.local/bin/sigiro
$ sigiro serve &
[1] 41802
listening on 4317, 4318, 9999
$ export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
$ export OTEL_SERVICE_NAME=checkout
$ npm start &
[1] 41823
checkout listening on :3000
$ sigiro status
ready · OTLP 4317 and 4318 · service checkout · 18,402 spans in 5 min
$

sigiro 使用标准 OTLP,监听标准端口。

$ curl -fsSL https://sigiro.com/install | sh
installed ~/.local/bin/sigiro

$ sigiro serve &
[1] 41802
listening on 4317, 4318, 9999

$ export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
$ export OTEL_SERVICE_NAME=checkout
$ npm start &
[1] 41823
checkout listening on :3000

$ sigiro status
ready · OTLP 4317 and 4318 · service checkout · 18,402 spans in 5 min

$ curl -sX POST localhost:9999/v1/diagnose -d '{"service":"checkout"}'
{
  "summary": "two signals moved together on checkout at 18:35",
  "suspect": "deploy 9f2c1ab, landed 18:33",
  "failing": "POST /api/orders",
  "how": { "timeout": 246, "server_error": 6 },
  "errors_total": 1284,
  "query": "SELECT * FROM spans WHERE service = 'checkout' AND ..."
}

$ cat models.sql
SELECT model, count(*) AS calls, max(duration) AS slowest
FROM spans JOIN logs USING (trace_id)
WHERE service = 'checkout' AND status = 'error'
GROUP BY model ORDER BY slowest DESC

$ sigiro query --sql-file models.sql
MODEL           CALLS  SLOWEST
gpt-5.2-mini      246    30.0s
claude-haiku-4.6   31     2.1s

$ curl -s localhost:9999/v1/diagnose -d '{"service":"checkout"}' > answer.json
$ jq .operation_summaries[0] answer.json
{
  "operation": "POST /api/orders",
  "errors": 246,
  "error_rate": 0.19,
  "drill_down_sql": "SELECT trace_id, duration, status_message FROM …"
}

$ jq -r .operation_summaries[0].drill_down_sql answer.json > drill.sql
$ sigiro query --sql-file drill.sql
TRACE_ID       DURATION  STATUS_MESSAGE
9f2c1ab4e77d      30012  context deadline exceeded
3b81fe0a2c56      30004  context deadline exceeded
c40d9e73aa18      29997  context deadline exceeded

01

自动发现。 你的智能体不用人帮忙就能读懂 API 描述。

一份公开文档描述了全部接口。

GET /openapi.json · 公开,无需密钥
[
  "/v1/anomalies",
  "/v1/diagnose",
  "/v1/query",
  "/v1/services",
  "/v1/traces/{trace_id}"
]

你能得到什么

不用迁移。 sigiro 能对接你正在用的工具。

从这些地方发送遥测数据

  • OpenTelemetry
  • Node.js
  • Python
  • Go
  • Java
  • .NET
  • Ruby
  • Rust
  • Claude Code
  • Codex
  • Vercel AI SDK
  • LangChain
  • Ollama

在这些平台上运行

  • Docker
  • Kubernetes
  • Fly.io
  • Railway
  • Render
  • Cloudflare

这些工具可以读取

  • Claude Code
  • Cursor
  • Codex
  • 任何会说 SQL 的工具
你自己就能核验
每条结果都附带生成它的那条查询语句。
没有需要维护的东西
你不用设阈值,也不用写规则。sigiro 用的是每个服务自己的历史数据。
五分钟装好
一条命令,两个环境变量。代码一行都不用改。
自己部署就免费
不按主机、席位或数据量收费。想让我们替你运行,就来聊聊。
数据留在你手里
你把 sigiro 装在自己的服务器上。sigiro 不会把任何数据发给我们。
sigiro 监控 sigiro
sigiro 把自己的遥测数据发给 sigiro。我们就是这样发现自己的故障的。