自らを修復するソフトウェアのためのデータレイヤー。
検出 · 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 の根拠を使用)
$ 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
使い方
4 つのステップ。 接続し、質問し、相関させ、検証します。
OpenTelemetry を sigiro に送ります。質問は 1 つです。以下の各ステップは 1 つのシェルセッションです。
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 の記述を読み取ります。
1 つの公開ドキュメントが、すべてのエンドポイントを記述しています。
[
"/v1/anomalies",
"/v1/diagnose",
"/v1/query",
"/v1/services",
"/v1/traces/{trace_id}"
]得られるもの
移行は不要です。 sigiro は、あなたが使っているツールに接続します。
テレメトリの送信元
実行環境
読み取るツール
- 自分で検証できます
- 各結果には、その結果を生んだクエリが含まれます。
- メンテナンスは不要です
- しきい値もルールも設定しません。sigiro は各サービスの履歴を使います。
- 5 分で導入できます
- コマンド 1 つと環境変数 2 つだけです。コードは変更しません。
- 自分で動かせば無料です
- ホスト単位、ユーザー単位、データ量のいずれにも料金はかかりません。運用を任せたい場合はご相談ください。
- データは手元に残ります
- sigiro はご自身のサーバーにインストールします。sigiro が開発元へデータを送ることはありません。
- sigiro は sigiro を監視します
- sigiro は自身のテレメトリを sigiro に送ります。私たちはこの方法で自分たちの障害を見つけています。