# ログ

アプリの様子がおかしいときは、**推測する前にまずログを**見てください。

```
get_logs { ref, level: "error" }            エラーだけ、新しい順
get_logs { ref, source: "server" }          デプロイしたサーバーが出力した行 （console.log、エラーのスタック）
get_logs { ref, search: "timeout" }         内容を検索
get_logs { ref, before: "<next_before>" }   前のページ
```

ビルドが失敗したら、`list_deployments` でデプロイを探し、`get_deployment` でビルドログの末尾を見てください。
失敗の理由は、たいてい最後の数行にあります。

ソース（source）:

```
site       デプロイしたサイトへのリクエスト
server     デプロイしたサーバーが出力したもの
api        データ API のリクエスト
auth       ログインと新規登録のリクエスト
functions  関数の呼び出しと、関数が出力したもの
build      ビルドの出力
```

リクエストの行は `メソッド パス ステータス 所要時間` の形です。クエリ文字列、本文、ヘッダーは保存しません。
保存期間はプランごとに異なり、レスポンスの `retention_days` にあります。

## メトリクス

`get_metrics { ref, range: "1h" | "24h" | "7d" }` が、リクエスト数、失敗数、レイテンシー（p50/p95/p99）を対象ごとに、
さらにデータベースのサイズ、接続数、キャッシュヒット率を返します。遅くなったと聞いたら、ログより先にこれを見てください。

## ログのエクスポート

保存期間より長く残したり、別のツールで見たりするには、外部に送ります。

```
list_log_drains         送信先、ソース、最後の送信とエラー
create_log_drain        追加 （kind: https | datadog, sources）
set_log_drain_enabled   一時停止・送信再開
remove_log_drain        削除
```

作成した後にたまるログから送信します。プロジェクトごとに5つまでで、オーナーと管理者だけが変更できます。

## アラートルール

値が基準を超えると、組織の通知チャネルとメールで知らせます。1分ごとに確認します。

```
list_alert_rules         ルールと今の状態（ok | firing）
create_alert_rule        作成（kind: error_rate | p95 | function_errors | usage | firewall_blocks、threshold、window_minutes）
set_alert_rule_enabled   止める・またオンにする
remove_alert_rule        削除
```

開発者以上が変更できます。無料プランにはありません。

## プロジェクトの Webhook

デプロイの開始・成功・失敗・昇格、環境変数・ドメイン・バックアップの変更、登録があったときに、公開の https アドレスに知らせます。Make や Zapier などの外部の自動化をつなぐときに使います。テーブルの行の変更はデータベースの Webhook です。

```
list_project_webhooks             Webhook、署名キー、選べるイベント
create_project_webhook            作成（name、url、events: 空ならすべて、deployment.* のようなグループ）
set_project_webhook_enabled       止める・また送る
test_project_webhook              ping を送る
list_project_webhook_deliveries   送信記録と失敗の理由
retry_project_webhook_delivery    送信1件を再送
remove_project_webhook            削除
```

署名はデータベースの Webhook と同じです: `x-blackwall-signature: t=<秒>,v1=<HMAC-SHA256(signing_secret, "<t>.<本文>")>`。プロジェクトごとに10個までで、オーナーと管理者だけが変更できます。

---

https://end.blackall.ai/docs/logs?lang=ja
