有用なログの条件

リモートログストリーミングを設定する際、スタンダードログディレクティブに加えて、以下の条件を使用できます。

エラーのみをログに記録する

通常すべてを記録する汎用ログを使用し、エラーが発生した際により詳細なログが必要な場合、以下のようにしてエラーのみをログに記録することができます。

1
fastly_info.state == "ERROR"

500エラーのみをログに記録することも可能です。

1
resp.status >= 500 && resp.status < 600`

Edge Dictionary を使用して特定の URL のみをログに記録する

以下のように、Edge Dictionary を使用して (例: urls_to_log)、問題のある特定の URL をログに記録することができます。

1
table.lookup(urls_to_log, req.url.path) == "log"

ある URL に問題が生じた場合、API を使用してその URL のパスを「log」という値を持つキーとしてディクショナリに追加することで、ログ記録を開始することができます。

ログのサンプル

トラフィックの多いサービスを運用している場合、randombool の VCL 関数を条件として使用し、一部のリクエストのみをログに記録することができます。以下の例では、すべてのリクエストの1パーセントのみがログに記録されます。

1
randombool(1,100)

これを Edge Dictionary と組み合わせることで、サービスの新しいバージョンをデプロイすることなく、ログに記録されるリクエストの割合を変更することができます。以下の例では service_variables という名前の Edge Dictionary を使用しています。

1
randombool(std.atoi(table.lookup(service_variables, "logging_percentage", "0")), 100)

上記の例では logging_percentage キーが存在しない場合、何もログに記録されません。

false を使用してカスタム VCL でログ文字列を作成する

false 条件を使用してカスタム VCL でログ文字列を作成できます。この条件を使用することで、Fastly のログオブジェクトに何も送信されないようにすることができます。

Back to Top