Skip to content
sigiro

OpenTelemetry を送り、SQL でクエリする。

sigiro はトレース、ログ、メトリクス、プロファイルを保存します。1 つの HTTP API で SQL を使ってクエリでき、エージェントからは CLI と MCP で、人はダッシュボードで読めます。

factory loop · five stages
検出, step 1 of 5

検出 · sigiro

$ curl -sS -X POST localhost:9999/v1/query --data-binary \

"SELECT count(*) AS failed_spans FROM sigiro_spans

WHERE service_name = 'checkout' AND status_code = 2

AND timestamp > CURRENT_TIMESTAMP - INTERVAL '30 minutes'"

[{ "failed_spans": 246 }]

診断 · sigiro

$ curl -sS -X POST localhost:9999/v1/query --data-binary \

"SELECT span_name, count(*) AS failures FROM sigiro_spans

WHERE service_name = 'checkout' AND status_code = 2

AND timestamp > CURRENT_TIMESTAMP - INTERVAL '30 minutes'

GROUP BY span_name ORDER BY failures DESC LIMIT 5"

[{ "span_name": "POST /api/orders", "failures": 246 }]

修正 · あなたのエージェント

$ 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 の根拠を使用)

$ curl -sS -X POST localhost:9999/v1/query --data-binary \

"SELECT count(*) AS errors_last_5m FROM sigiro_spans

WHERE service_name = 'checkout' AND status_code = 2

AND timestamp > CURRENT_TIMESTAMP - INTERVAL '5 minutes'"

[{ "errors_last_5m": 0 }]

学習 · あなたのメモリ

$ cat playbooks/checkout-upstream-timeout.md

## checkout · upstream timeout

observed 246 failed checkout spans in a 30-minute window

cause unbounded upstream call, shipped in 9f2c1ab

fix 5s deadline on the orders client

watch the same shape on any service calling orders

ご自身のサーバーで動かせば無料で、sigiro がデータを当社に送ることはありません。サインアップするとホスト版ベータになり、テレメトリーは当社が運用するサーバーに保存されます。

使い方

4 つのステップ。 接続し、質問し、相関させ、掘り下げます。

OpenTelemetry のエクスポーターを sigiro に向け、SQL で質問します。以下の各ステップは 1 つのシェルセッションです。

接続, 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 -sS -X POST localhost:9999/v1/query --data-binary \
    "SELECT span_name, count(*) AS calls FROM sigiro_spans
     WHERE service_name = 'checkout'
       AND timestamp > CURRENT_TIMESTAMP - INTERVAL '30 minutes'
     GROUP BY span_name ORDER BY calls DESC LIMIT 5"
[
  { "span_name": "POST /api/orders", "calls": 1284 },
  { "span_name": "GET /api/cart", "calls": 342 }
]

$ cat models.sql
SELECT s.span_attributes ->> 'gen_ai.request.model' AS model,
       count(DISTINCT s.span_id) AS calls, max(s.duration) AS slowest
FROM sigiro_spans s JOIN sigiro_logs l USING (trace_id)
WHERE s.service_name = 'checkout' AND l.severity_number >= 17
  AND s.timestamp > now() - INTERVAL '30 minutes'
GROUP BY model ORDER BY slowest DESC

$ curl -sS -X POST localhost:9999/v1/query \
    --data-binary "$(cat models.sql)"
MODEL           CALLS  SLOWEST
gpt-5.2-mini      246    30.0s
claude-haiku-4.6   31     2.1s

$ curl -sS -X POST localhost:9999/v1/query --data-binary \
    "SELECT trace_id, duration, status_message FROM sigiro_spans
     WHERE service_name = 'checkout' AND status_code = 2
       AND timestamp > CURRENT_TIMESTAMP - INTERVAL '30 minutes'
     ORDER BY timestamp DESC LIMIT 3"
[
  { "trace_id": "9f2c1ab4e77d", "duration": 30012,
    "status_message": "context deadline exceeded" },
  { "trace_id": "3b81fe0a2c56", "duration": 30004,
    "status_message": "context deadline exceeded" }
]

Start

install the CLI
curl -fsSL https://sigiro.com/install | sh

Installs a single binary to ~/.local/bin/sigiro. Reads the script first if you would rather: sigiro.com/install.

or give this to your agent
Install and run sigiro, the observability data layer, on this machine. Run: curl -fsSL https://sigiro.com/install | sh — then start it with: sigiro serve. It listens on 4317 and 4318 for OTLP and on 9999 for its HTTP API. Point this project’s OpenTelemetry exporter at http://localhost:4318. Then register `sigiro mcp` as a stdio MCP server (for Claude Code: claude mcp add sigiro -- sigiro mcp) so you can query the telemetry directly with its list_services and run_query tools.

Paste into Claude Code, Codex, Cursor or any MCP-capable agent. It installs sigiro, starts it, and registers sigiro mcp as an MCP server.

発見。 エージェントは手助けなしで API の記述を読み取ります。

1 つの公開ドキュメントが、すべてのエンドポイントを記述しています。

GET /openapi.json · 公開、キー不要
[
  "/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 を扱えるものすべて
答えは再実行できます
すべての答えは SQL クエリです。ご自身でも、エージェントでも、チームの誰でも同じクエリを再実行できます。
すべてのシグナルを 1 か所に
トレース、ログ、メトリクス、プロファイルはテーブルとして保存され、1 つのクエリで結合できます。
5 分で導入できます
コマンド 1 つと環境変数 2 つだけです。コードは変更しません。
自分で動かせば無料です
ホスト単位、ユーザー単位、データ量のいずれにも料金はかかりません。ホスト版ベータの料金はまだ公開していません。ご相談ください。
データは手元に残ります
sigiro はご自身のサーバーにインストールします。sigiro が開発元へデータを送ることはありません。例外はホスト版ベータで、テレメトリーは当社に保存されます。
sigiro は sigiro を監視します
sigiro は自身のテレメトリを sigiro に送ります。私たちはこの方法で自分たちの障害を見つけています。