本文へ移動
runlot
ObservabilityObservability

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)ルートごとのリクエスト数、エラー、レイテンシ、レイテンシの内訳、サービスマップ、デプロイ比較、トレースエクスプローラー
Databaseenv.db のステートメントのフィンガープリントとデータベースの状態
Infrastructure上限に対するメモリ使用量、CPU、プレッシャーストール、I/O、再起動、パークとウェイク
Metricsenv.metrics のカスタムメトリクスと、ログから生成したメトリクス
ErrorsRunlot 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)です。

runlot.json
{
  "observability": {
    "logs": { "enabled": true, "head_sampling_rate": 1 },
    "traces": { "enabled": true, "head_sampling_rate": 0.1 }
  }
}

ダッシュボードの Settings では、デプロイせずに両方を上書きできます。Settings をご覧ください。

Free と Pro

どのプランでも、アプリが失敗した理由を確認できます。プランによって異なるのは、保管する量、保管期間、そしてそのデータに対して行う分析の量です。

FreePro
失敗の原因: メモリ不足、クラッシュ、プラットフォームのエラー、リクエスト 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無制限
Monitors10500
SLOs150
合成チェック1 件、15 分ごと20 件、1 分ごと
Watchdogデプロイによる悪化デプロイによる悪化、周期的な異常、新しいログパターン
ブラウザのエラー、RUM、セッションリプレイ—あり(月 50,000 RUM セッションと 5,000 リプレイまで込み)
継続的プロファイラー、ヒープスナップショット—あり
エクスポート(OTLP、Logpush)とリハイドレーション—送信先 5 件
テールコンシューマー15

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

このページの目次