sixty

ドキュメント

sixty が測るものと、その導入方法

アプリの中のエージェントが、各操作の内容を測ります — 返した行数、出したクエリ、かかった時間、送ったバイト数、投げられたエラー — そして要約を送信します。コレクタはリリースごとに1つ前と比較し、どのデプロイが何を変えたのかを伝えます。

何よりも先に知っておく価値のある帰結が2つあります。設定すべきしきい値はありません。比較の相手が、誰かが当てずっぽうで決めた数値ではなく、あなた自身の前のリリースだからです。そして2つ目のリリースが報告するまで何も比較できないので、導入直後の最初のデプロイは設計上おとなしいままです。

言語を選ぶ

どのサーバーエージェントも同じ中核シグナルを測り、同じ転送形式で書きます。違うのは実行環境が何を許すかです。計算と待機を分けられるのは Python だけ、頼まなくても関数を計測するのは Node だけ、バックグラウンドスレッドなしで動かなければならないのは PHP だけ、そしてクエリプランには Postgres が要ります。

Node

頼まなくてもあなた自身の関数を計測する唯一のエージェントです。ビルド時の変換がエクスポートされた非同期関数ごとにスパンを開くので、クエリには帰属先となる呼び出し元ができます。

npm install @sixty-sh/node

Python

計算と待機を区別できる唯一のエージェントです。他はどれも「コードが遅くなった」と報告してそこで止まりますが、これはそのどちらが起きたのかを言います。そして両者は正反対の対処を必要とします。

pip install sixty-sh

Go

導入は明示的です — ミドルウェア、ドライバのラップ、そして測る価値のある関数の先頭に2行。Go にはフックできるビルド段階がなく、渡してもらわない限り呼び出し側の context に手が届かないからです。

go get github.com/sixty-sh/sixty-go

Ruby & Rails

手順2のない唯一の導入です。railtie が起動時にミドルウェアを追加し、sql.active_record を購読し、コントローラのアクションを包みます — 書くべき initializer はありません。

gem 'sixty'

PHP

バックグラウンドスレッドなしで動かなければならない唯一のエージェントです。PHP のワーカーはタイマーを走らせられず、学んだことはリクエストとともに死ぬので、ウィンドウは共有メモリにプールして統合します — 無損失で。でなければパーセンタイルは作り話になります。

composer require sixty-sh/sixty

サーバーの手前側

サーバー側のスパンはレスポンスを書き終えた時点で閉じますが、それは画面に何かが出るよりずっと前です。ここにあるのは、その後に起きる半分を測るもの — そして携帯や Supabase だけのアプリでは、そもそもサーバー側のスパンが存在しない半分です。

その他

  • OpenTelemetry — 既存 Collector から OTLP トレースとメトリクスを送り、Grafana、Prometheus、Elastic、Vercel、AWS などは維持します。
  • 各エージェントが追うもの — 1つの表、8のエージェント、すべてのシグナル。2つのうちどちらにするか迷っているとき、あるいはある検出が一向に出てこない理由を知りたいときに読むページです。
  • すべてのシグナル — 各種類の検出が何を意味し、単位は何で、どんなコード変更がそれを引き起こすのか。
  • 仕組み — デプロイへの紐づけ、分位数スケッチ、クエリがそれを出した関数にどう帰属するか、そしてエージェントがアプリにどれだけの負荷をかけるか。
  • MCP サーバー — エディタが検出結果を読み、1つを引き受け、直し、何をしたかを記録する仕組み。
  • GitHub — リポジトリをつなぐと、検出結果はそのデプロイの中で、自分が動いているファイルに触れた pull request を名指しします。読み取り専用で、ファイルの中身は保存しません。

どのエージェントも守る2つの規則

あなたのアプリを壊せないこと。 計測の経路はすべて包まれていて、エージェント内部の失敗がアプリのエラーとして表に出ることはありません。コレクタに届かないときは、上限のあるバッファに測り続け、増え続ける代わりに最も古いウィンドウを捨てます。何もブロックせず、永遠に再試行もせず、アプリはそのことを知りません。

あなたのユーザーが誰なのかを決して知らないこと。 ユーザーIDもセッションIDもクッキーもIPアドレスもなく、クエリの値も一切ありません — 文はプロセスの外へ出る前に形へ正規化されます。ユニーク訪問者は、あなた自身のサーバーが導出し私たちには元に戻せない、毎日入れ替わる符号から数え、集計に畳み込んだうえで保存せずに捨てます。これは設定ではなくコードの性質であり、つまり私たち自身を含め誰に対しても、この製品が答えられない問いでもあります。

sixty のドキュメント — 各エージェントが何を測り、どう導入するか