Observability
すべてのプロジェクトのログ、リクエスト記録、トレース、メトリクス、エラー、モニター、ダッシュボードです。エージェントも SDK も不要で、プラットフォームが収集します。
Runlot はワーカーを実行し、ワーカーが呼び出すすべてのバインディングを管理し、各デプロイがどのコミットから作られたかを把握しています。そのため、オブザーバビリティ製品が通常インストールを求めるもののほとんどは、すでに収集されています。各リクエストには ID、記録、結果が付き、プロセスのメモリは cgroup から読み取られ、env.db、env.storage、env.ai の呼び出しは自動的にスパンになります。
プロジェクトを開き、Observability を選びます。セクションは次のとおりです。
| セクション | 表示する内容 |
|---|---|
| Overview | リクエスト数、エラー、ステータスクラス、レイテンシの p50/p95/p99。デプロイと OOM のマーカー付き |
| Logs | ワーカーが出力した内容のリアルタイム表示と保存された履歴 |
| Invocations | リクエスト、cron 実行、キューのバッチ、メールごとに 1 件の記録。Query Builder、保存したクエリ、ログパターン |
| Traces (APM) | ルートごとのリクエスト数、エラー、レイテンシ、レイテンシの内訳、サービスマップ、デプロイ比較、トレースエクスプローラー |
| Database | env.db のステートメントのフィンガープリントとデータベースの状態 |
| Infrastructure | 上限に対するメモリ使用量、CPU、プレッシャーストール、I/O、再起動、パークとウェイク |
| Metrics | env.metrics のカスタムメトリクスと、ログから生成したメトリクス |
| Errors | Runlot Errors。例外、クラッシュ、メモリ不足による強制終了をまとめたイシュー |
| Browser | ブラウザのエラー、Web Vitals、セッションリプレイ(Pro) |
| Dashboards | 組み込みのダッシュボードとご自身のダッシュボード |
| Monitors | モニター、SLOs、ダウンタイム、合成チェック |
| Settings | サンプリング、上限とコスト、パイプラインとスキャナー、エクスポート、プロファイラー、ロールと監査 |
リクエスト ID
Runlot を通るすべてのリクエストには 32 文字の 16 進数の ID が付きます。この ID は Runlot-Request-Id レスポンスヘッダーで呼び出し元に返され、リクエストとともにワーカーにも渡されます。トレース ID も同じ値です。リクエストを指定する場面では、どこにでもこの ID を貼り付けられます。
runlot logs request 4bf92f3577b34da6a3ce929d0e0e4736アプリの代わりに Runlot 自身が応答する場合(プロセスがメモリ不足になった、クラッシュした、起動中である場合)も、エラーページと JSON 本文には同じ ID が含まれます。匿名の訪問者には汎用の app_error コードだけが表示されます。プロジェクトの組織のメンバーがサインインしている場合は、原因(exceeded its memory limit、シグナル名、デプロイのバージョン)と、/o/<org>/p/<project>/observability/requests/<id> にあるリクエストへのリンクが表示されます。公開アプリでは、ページに Owner? Sign in to see details が表示されます。
有効にするもの
リクエスト記録、メトリクス、メモリ、ワーカーの終了、サーバーエラーは、設定なしにすべてのプロジェクトで収集されます。次の 2 つはリクエストごとにワーカーの CPU を消費するため、有効にするまではオフです。各リクエストのコンソール出力と例外(logs)、そしてそのスパン(traces)です。
{
"observability": {
"logs": { "enabled": true, "head_sampling_rate": 1 },
"traces": { "enabled": true, "head_sampling_rate": 0.1 }
}
}ダッシュボードの Settings では、デプロイせずに両方を上書きできます。Settings をご覧ください。
Free と Pro
どのプランでも、アプリが失敗した理由を確認できます。プランによって異なるのは、保管する量、保管期間、そしてそのデータに対して行う分析の量です。
| Free | Pro | |
|---|---|---|
| 失敗の原因: メモリ不足、クラッシュ、プラットフォームのエラー、リクエスト ID、サインイン時の原因表示 | あり | あり |
| ログとリクエスト記録 | 3 日間。プロジェクトあたり 1 日 200,000 イベント、上限は固定 | 7 日間。プロジェクトあたり 1 日 2,000,000 イベント、上限は引き上げ可能 |
| 組み込みメトリクス | 15 日間 | 15 か月間 |
| Query Builder | あり。保存できるクエリは 10 件 | 保存できるクエリは無制限 |
| Runlot Errors(サーバー) | 月 5,000 イベント、30 日間保管 | 月 100,000 イベント、90 日間保管 |
| APM | 上位 5 ルートのみ | すべて: 内訳、サービスマップ、デプロイ比較、env.db クエリの監視 |
| 長期保管トレース(エラー、最も遅い 1 %、ご自身のフィルター) | — | 30 日間 |
| カスタムメトリクスの系列 | 月 100、固定 | 月 2,000 まで込み、上限は引き上げ可能 |
| カスタムダッシュボード | 3 | 無制限 |
| Monitors | 10 | 500 |
| SLOs | 1 | 50 |
| 合成チェック | 1 件、15 分ごと | 20 件、1 分ごと |
| Watchdog | デプロイによる悪化 | デプロイによる悪化、周期的な異常、新しいログパターン |
| ブラウザのエラー、RUM、セッションリプレイ | — | あり(月 50,000 RUM セッションと 5,000 リプレイまで込み) |
| 継続的プロファイラー、ヒープスナップショット | — | あり |
| エクスポート(OTLP、Logpush)とリハイドレーション | — | 送信先 5 件 |
| テールコンシューマー | 1 | 5 |
Pro で込みの量を超えた使用分は、その上限を引き上げるか解除した場合にのみ課金され、常に組織の支出上限の範囲内に収まります。
| メーター | 込みの量を超えた分の料金 |
|---|---|
| ログイベント | 100 万件あたり $0.60 |
| スパン | 100 万件あたり $0.60 |
| エラーイベント | 1,000 件あたり $0.20 |
| セッションリプレイ | 1,000 件あたり $3.00 |
| RUM セッション | 1,000 件あたり $0.50 |
| カスタムメトリクスの系列 | 系列あたり月 $0.05 |
| 合成チェック | 1 分間隔でチェックあたり月 $1.00、日割り |
| プロファイラー | プロファイルした 1 時間あたり $0.03 |
| 長期保管トレース | GB・月あたり $0.10 |
上限とコスト をご覧ください。
セルフホスト
セルフホスト版の Runlot はオブザーバビリティのデータを ClickHouse に保存しますが、ClickHouse は任意です。ClickHouse がなくても、リクエスト ID、エラーページ、リアルタイムログ、保存されたログ行(PostgreSQL 内)、ワーカーの終了記録、メモリのグラフは利用できます。Query Builder、リクエスト記録、トレース、APM、エクスポートには ClickHouse が必要です。ダッシュボードは、空のセクションを表示する代わりに、利用できないものを非表示にします。
このセクションのページ
- Logs —
runlot logs、リアルタイムと保存済み - Invocations とクエリ — リクエスト記録、Query Builder、
runlot logs queryとrunlot logs request - Traces と APM — ルート、サービスマップ、デプロイ比較、保管フィルター
- Metrics — 組み込み、インフラ、データベース、
env.metrics、ログからのメトリクス - Monitors と SLOs — アラート、ダウンタイム、合成チェック、コードとしてのモニター
- Dashboards — カスタムダッシュボード、コードとしてのダッシュボード、共有
- Settings — サンプリング、上限、パイプライン、スキャナー、エクスポート、プロファイラー、ロール
- バグレポート —
runlot bug-report