このページでは、ログベースの指標の概要を説明します。
ログベースの指標を使用すると、大量のログエントリの傾向とパターンをモニタリングできます。たとえば、ログベースの指標を使用して、特定のメッセージを含むログエントリの数をカウントできます。または、ログエントリに記録されたレイテンシ情報を抽出することもできます。ログベースの指標は Cloud Monitoring のグラフに表示できます。アラート ポリシーでは、これらの指標をモニタリングできます。
ログベースの指標は、次の 2 つのカテゴリに分類できます。
プロジェクト ベース。これらのログベースの指標は、プロジェクトのログシンクを通過し、プロジェクトのログバケットに保存されるログエントリを評価します。評価されるログエントリには、別のプロジェクトのログシンクによって Google Cloud プロジェクトにルーティングされたエントリが含まれます。
ログバケットベース。これらのログベースの指標は、特定のログバケットに保存されているログエントリを評価します。
ログベースの指標の時系列値の決定方法
このセクションでは、カウンタ型のログベース指標の時系列の値がどのように決定されるかについて簡単に説明します。また、ログベースの指標の時系列にギャップが生じる理由についても説明します。このプロセスは、分布値のログベ��スの指標でも同様です。
カウンタタイプのログベースの指標の場合、Logging は次の処理を行います。
1 つ以上のデータ ストリームを作成し、ストリームごとに一連のインメモリ カウンタを管理します。
指標とリソースラベルのセットの一���の値の���み合わせごとに 1 つのストリームがあります。各インメモリ カウンタは異なる時間間隔に対応していますが、各カウンタは、フィルタに一致し、間隔に対応するタイムスタンプを持つログエントリの数を記録します。
Logging バックエンドは、1 分ごとに各ストリームのインメモリ カウンタの値を使用して、Cloud Monitoring によって管理される時系列の更新方法を決定します。
ストリームが 5 つある場合、Monitoring によって管理される時系列は 5 つあります。これらの時系列をグラフに表示できます。これらの時系列をモニタリングするアラート ポリシーを作成することもできます。
例: ゼロ値がデータのギャップを引き起こす仕組み
次の時系列について考えてみましょう。
Example time series: (T1, -), (T2, -), (T3, 0), (T4, 1), (T5, 0), (T6, -)
上の式で、(T1, -)
は時間 T1
に値が書き込まれていないことを意味します。これは、時系列の値のギャップに対応しています。一方、(T3, 0)
は、時刻 T3
の時系列の値がゼロであることを意味します。
ログベースの指標のバックエンド システムは、ストリームごとに次のルールを使用して、Monitoring によって保存される時系列に書き込む値を決定します。
期間の集計数がゼロ以外の場合、その値が時系列に書き込まれます。
時系列の例では、区間
T4
のみにゼロ以外の値があります。値1
は、T4
間隔に対応するタイムスタンプを持つ 1 つのログエントリが、ログベースの指標のフィルタに一致したことを示します。区間の集計数がゼロの場合、隣接する区間の値がゼロ以外の場合、時系列にゼロの値が書き込まれます。
時系列の例では、時間
T3
で集計されたカウントは 0 です。ただし、時間T4
では集計されたカウントがゼロ以外であるため、ゼロの値が書き込まれます。同様に、時間T5
では、集計されたカウントは 0 です。前の期間の値がゼロでないため、時系列にゼロの値が書き込まれます。それ以外の場合、時系列は更新されず、期間にデータのギャップが生じます。
サンプルの時系列では、区間
T1
、T2
、T6
の値はありません。これらの区間では、集計されたカウントはゼロで、隣接する区間のカウントもゼロでした。
遅れて到着するログエントリと将来のログエントリの処理
処理された期間のタイムスタンプを含むログエントリが届くと、Logging バックエンドが過去のデータを生成する。過去のデータは、以前に書き込まれたカウントを更新するために使用されます。
タイムスタンプが将来の時刻のログエントリが届くと、Logging バックエンドでこれらのカウントが蓄積されます。時系列では、これらのログエントリは、タイムスタンプが現在の期間に対応している場合にカウントされます。
ログベースの指標のソース
Cloud Logging で定義された指標を使用して一般的な使用状況情報を収集できます。また、独自のログベースの指標を定義して、アプリケーションやビジネスに固有の情報を取得することもできます。
ログベースの指標は、単一の Google Cloud プロジェクト内またはログバケット内で適用できます。Cloud 請求先アカウントや組織などの他のリソースには、ログベースの指標を作成できません。 Google Cloud
プロジェクト ベースのログベースの指標とバケットベースのログベースの指標の違いについては、バケット スコープのログベースの指標をご覧ください。
システム定義の指標
Logging には、プロジェクト内のログバケットに保存されているログエントリの数やエクスポートしたバイト数など、使用量の値の一連の指標が用意されています。システム定義の指標の一覧については、Google Cloud metrics: logging をご覧ください。
ユーザー定義の指標
ユーザー定義のログベースの指標を作成して、プロジェクトで重要な他の指標を追跡できます。たとえば、特定のフィルタに一致するログエントリの数をカウントするログベースの指標を作成できます。
デフォルトではユーザー定義のログベースの指標は、Google Cloud プロジェクトに適用されている可能性がある包含フィルタまたは除外フィルタにかかわらず、Google Cloud プロジェクトの Logging API によって受信されたすべてのログから計算されます。
Google Cloud プロジェクト内の特定のログバケットに対して、ユーザー定義のログベースの指標を作成することもできます。バケット スコープのログベースの指標は、バケットに送信されるすべてのログから、送信元に関係なく計算されます。詳細については、ログバケットのログベースの指標をご覧ください。
ログベースの指標のデータ型
ログベースの指標では、ログからデータを抽出して次のタイプの指標を作成できます。
- カウンタ: これらの指標は、特定の期間内に指定されたフィルタに一致するログエントリの数をカウントします。ログに出現する値または文字列の回数を追跡する場合は、カウンタを使用します。
- 分布: これらの指標は値もカウントしますが、カウントを値の範囲(ヒストグラム バケット)に収集します。レイテンシなどの値を抽出する場合は、分布を使用します。
- ブール値: これらの指標は、指定されたフィルタに一致するログエントリかどうかを取得します。
ユーザー定義のログベースの指標では、カウンタ指標タイプか分布指標タイプを指定できます。システム定義のログベースの指標のほとんどはカウンタですが、一部がブール型です。カウンタと分布の特性については、以降のセクションで詳しく説明します。
ユーザー定義のログベースの指標のデータは、指標の作成後に受信したログエントリからのみ取得されます。指標には、Logging にすでにあるログエントリのデータが遡及的に入力されません。
システム ログベースの指標は、含まれるログからのみ計算されます。ユーザー定義のログベースの指標は、含まれるログと除外されたログの両方から計算されます。
以下のセクションでは、カウンタタイプと分布タイプの指標の特性について説明します。
カウンタ指標
カウンタ指標は、特定のフィルタに一致するログエントリの数をカウントします。たとえば、次の操作が可能です。
- 特定のエラー メッセージを含むログエントリをカウントします。
各ユーザーがオペレーションを呼び出す回数をカウントするには、このパターンに一致するログメッセージを検索します。
... user USERNAME called OPERATION ...
USERNAME と OPERATION を抽出してラベルの値として使用すると、「
sally
がupdate
オペレーションを実行した回数」、「read
オペレーションを実行したユーザーの数」、「george
がオペレーションを実行した回数」などを確認できます。
詳細については、カウンタ指標を構成するをご覧ください。
分布指標
分布指標は、フィルタに一致するログエントリからの数値データを累積します。この指標には、時系列の Distribution オブジェクトが含まれ、各オブジェクトには次のものが含まれます。
- 分布内の値の数のカウント
- 値の平均
- 偏差平方和: Sumi=1..n(xi–mean)2
- 各バケット内の値のカウントを持つヒストグラム バケットのセット。デフォルトのバケット レイアウトを使用することも、独自のバケット レイアウトを選択することもできます。
分布指標の一般的な用途は、レイテンシを追跡することです。各ログエントリを受信すると、ログエントリからレイテンシ値が抽出されて、分布に追加されます。定期的に、蓄積された分布が Cloud Monitoring に書き込まれます。
時系列内の形式や可視化の形式など、分布指標の詳細については、分布指標のグラフ化をご覧ください。
ログベースの分布指標の作成については、分布指標の構成をご覧ください。
リソースタイプ
ログベースの指標では、1 つのリソースタイプを指定することをおすすめします。この仕様により、ログベースの指標用に生成された時系列が、Cloud Monitoring によって想定されるデータモデルと一致することが保証されます。また、どの時系列データをグラフ化またはモニタリングするかが明確になるため、グラフとアラート ポリシーの作成プロセスも簡素化されます。
次のフィルタを含むログベースの指標について考えてみましょう。
severity>="ERROR"
resource.type="gce_instance"
Cloud Monitoring は、このデータが Compute Engine VM インスタンス用であることを認識します。そのため、VM インスタンスのグラフを作成すると、ログベースの指標がメニューにオプションとして表示されます。別のリソースタイプのグラフを作成した場合、ログベースの指標はオプションとしてリストされません。
リソースタイプを指定せずにログベースの指標を作成した場合、Monitoring には、これらのリソースのエントリがカウントされていなくても、ログベースの指標が複数のリソースタイプのオプションとして一覧表示されます。
ラベル
ログベースの指標にはラベルを付けることができます。これにより、指標に対して複数の時系列を収集できます。ラベルの値は、一致するログエントリのフィールドから抽出されます。Logging では、ラベル値の組み合わせごとに時系列を記録します。
すべてのログベースの指標には、デフォルトの log
ラベルが付いています。
このラベルは、たとえば cloudresourcemanager.googleapis.com%2Factivity
など、ログエントリの logName
フィールドの LOG_ID 位置の値を保持します。
システム ログベースの指標には、変更できない事前定義のラベルがあります。ただし、ユーザー定義の指標のラベルはカスタマイズできます。たとえば、フォルダまたは組織に対してバケット スコープのログベースの指標を作成��きない場合でも、ログベースの指標に含まれるラベルを使用して、ログエントリの発生元のフォルダまたは組織を記録できます。詳細については、ログベースの指標ラベルをご覧ください。
Cloud Monitoring のグラフとアラート ポリシー
Cloud Monitoring では、システム ログベースの指標とユーザー定義のログベースの指標の両方を使用して、グラフとアラート ポリシーを作成できます。詳細については、ログベースの指標を一覧表示、グラフ化するとログベースの指標に関するアラートをご覧ください。
Cloud Monitoring では、ログベースの指標の命名パターンは以下が使用されます。
- システム:
logging.googleapis.com/SYSTEM_METRIC_NAME
- User-defined:
logging.googleapis.com/user/USER_METRIC_NAME
ユーザー定義のログベースの指標には、文字列 user
が含まれます。
Monitoring の指標スコープの可視性
ログベースの指標は Cloud Monitoring によって取り込まれ、Google Cloud プロジェクトに対する指標データの表示については、指標スコープによって決定されます。指標スコープは、指標スコープをホストするプロジェクトによってモニタリングされるプロジェクトのリストです。ホスティング プロジェクトはスコーピング プロジェクトと呼ばれます。
デフォルトでは、各プロジェクトは自身のみを含む指標スコープをホストするため、プロジェクトはそれ自体のスコーピング プロジェクトです。したがって、指標(ログベースの指標など)は、Google Cloud プロジェクトにのみ表示されます。
スコーピング プロジェクトに対してマルチプロジェクトの指標スコープを作成することもできます。マルチプロジェクトの指標スコープを使用すると、スコーピング プロジェクトは指標スコープ内のすべてのプロジェクトの指標を表示できます。マルチプロジェクトの指標スコープの個々のプロジェクトに表示される内容は、それらの各プロジェクトでホストされてい���指標スコープによって決まります。2 つのプロジェクトがマルチプロジェクトの指標スコープにあるからといって、各プロジェクトがもう一方のプロジェクトの指標または構成データにアクセスできるわけではありません。
1 つのプロジェクトが複数の指標スコープに表示されることもあります。このようなプロジェクトの指標は、各指標スコープのスコーピング プロジェクトに表示されます。
ログベースの指標を含む、特定のプロジェクト内で指標が定義されます。 そのプロジェクトが複数の指標スコープに表示されている場合、指標は、定義されているプロジェクト以外のプロジェクトにも表示されます。指標スコープとバケットスコープ ログベースの指標の相互作用については、プロジェクトと指標スコープをご覧ください。
マルチ プロジェクト指標のスコープを含む指標のスコープとスコーピング プロジェクトの詳細については、以下をご覧ください。
料金
ユーザー定義のログベースの指標はすべて、Cloud Monitoring のカスタム指標のクラスであり、課金対象です。料金について詳しくは、Cloud Logging の料金: ログベースの指標をご覧ください。
割り当て
ユーザー定義のログベースの指標に関連する割り当てと上限については、割り当てと上限をご覧ください。
トラブルシューティング
ログベースの指標を使用する際に問題が発生した場合は、ログベースの指標のトラブルシューティングをご覧ください。