リクエスト ロギングを構成する

このページでは、Media CDN のリクエスト ロギングを構成する方法について説明します。

ログを有効化

保存されるデータを最小限に抑えるために、ロギングはデフォルトで無効になっています。ログはルーティング、フィルタリングされ、Cloud Logging に保存されます。

  • 特定のMedia CDN サービスのロギングを有効にする:

    gcloud edge-cache services update YOUR_SERVICE \
       --enable-logging \
       --logging-sample-rate=1.0
    
  • ロギングを無効にする:

    gcloud edge-cache services update YOUR_SERVICE \
       --no-enable-logging
    
  • サービスのロギングの現在の状態を取得します。

    gcloud edge-cache services describe YOUR_SERVICE
    

    出力は次のようになります。

    ...
    logConfig:
     enable: true
     sampleRate: 1.0
    ...
    

ログのサンプリング レートを設定する

リクエストが大量である場合、すべてのリクエストに対してログをキャプチャするのではなく、ログをサンプリングし、予防的なモニタリングと調査のための指標を活用することをおすすめします。

リクエストの 10% のログのみを取り込んで保存するには、logConfig.sampleRate0.1 に設定します。

gcloud edge-cache services update YOUR_SERVICE \
    --enable-logging \
    --logging-sample-rate=0.1

サンプリング レートを変更するには、ロギングを有効にする必要があります。

サンプリング レートは、特に指定しない限りデフォルトで 0(0%)になり、構成されたサービスのすべてのリクエストがログに記録されます。

クエリログ

ログをクエリするには、Google Cloud コンソールのログ エクスプローラまたは Google Cloud CLI を使用します。

コンソールでログを表示するには、Media CDN リソースタイプをフィルタし、必要に応じてプロジェクトとサービス名でフィルタします。 Google Cloud

次のロギング クエリは、すべての Media CDN サービスのログを表示します。

resource.type="edgecache.googleapis.com/EdgeCacheRouteRule"

特定の EdgeCacheService リソースとプロジェクトに関連付けられたログをフィルタするには、このクエリを拡張します。

resource.type="edgecache.googleapis.com/EdgeCacheRouteRule"
resource.labels.resource_container="projects/12345678"
resource.labels.service_name="MY_PROJECT"

部分的な名前で照合する場合や正規表現を使用する場合は、Logging クエリ言語の比較をご覧ください。

例: キャッシュミスを特定する

オブジェクトのリクエストはキャッシュ ミスになる可能性がありますが、次の理由でキャッシュ フィルが発生する可能性があります。

  • 有効期間(TTL)が短すぎる
  • 過度に具体的なキャッシュキー
  • キャッシュされたリクエストが多すぎる

キャッシュミスを特定するには、ログ エクスプローラでログをフィルタします。

次のログクエリは、キャッシュ可能な(検索された)リクエストのうち、送信元からのフィルが必要なリクエストを示します。

resource.type="edgecache.googleapis.com/EdgeCacheRouteRule"
resource.labels.resource_container="projects/12345678"
resource.labels.service_name="MY_PROJECT"
jsonPayload.cacheStatus="miss"

特定の URL でフィルタする必要がある場合は、httpRequest.requestUrl フィールドでフィルタします。

httpRequest.requestUrl = "URL"

URL の一部(パス コンポーネントなど)をフィルタするには、has 演算子を使用します。

# `:` is the `has` comparison operator

httpRequest.requestUrl: "/videos/1381381_1080.mp4"
# You can use `OR` or `AND` to filter on multiple values

httpRequest.requestUrl: ("https://media-test.example.com/" OR "https://canary.example.net")

一致とフィルタリングに関する Logging の包括的な構文の詳細については、Logging のクエリ言語を使用した高度なクエリの作成をご覧ください。

保存するログをフィルタ

ログを保存する前にフィルタする(たとえば、関連するフィールドのみをキャプチャして、保存とクエリが必要なログ容量を減らすなど)には、除外フィルタを構成します。これにより、保存前にフィールドを含む(または除外する)クエリ(フィルタ)を定義できます。

また、複数のフィルタを設定することもできます。たとえば、すべてのキャッシュミス リクエストをキャプチャしたり、特定のホスト名に対するすべてのリクエストをキャプチャしたり、すべてのログのサンプルだけを取得したりできます。

ログを転送する

Media CDN は Cloud Logging と直接統合されているため、次の方法でログを集計してルーティングできます。

  • Cloud Storage や BigQuery などのストレージ デスティネーションに転送する

  • Pub/Sub トピックに転送します。サードパーティの宛先は、このトピックにサブスクライブしてログにアクセスできます。

Logging からログがルーティングされる方法の概要については、ルーティングとストレージの概要をご覧ください。

次のステップ