检测 · 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
怎么用
四个步骤。 你依次完成接入、提问、关联和核验。
你把 OpenTelemetry 发送到 sigiro,然后问一个问题。下面每一步都是一次真实的终端会话。
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自动发现。 你的智能体不用人帮忙就能读懂 API 描述。
一份公开文档描述了全部接口。
[
"/v1/anomalies",
"/v1/diagnose",
"/v1/query",
"/v1/services",
"/v1/traces/{trace_id}"
]你能得到什么
不用迁移。 sigiro 能对接你正在用的工具。
从这些地方发送遥测数据
在这些平台上运行
这些工具可以读取
- 你自己就能核验
- 每条结果都附带生成它的那条查询语句。
- 没有需要维护的东西
- 你不用设阈值,也不用写规则。sigiro 用的是每个服务自己的历史数据。
- 五分钟装好
- 一条命令,两个环境变量。代码一行都不用改。
- 自己部署就免费
- 不按主机、席位或数据量收费。想让我们替你运行,就来聊聊。
- 数据留在你手里
- 你把 sigiro 装在自己的服务器上。sigiro 不会把任何数据发给我们。
- sigiro 监控 sigiro
- sigiro 把自己的遥测数据发给 sigiro。我们就是这样发现自己的故障的。