ログから指標を計算する

指標の計算とは、データ オブザーバビリティの既存のログまたは指標に基づいて新しい指標を生成することです。GDC で指標を計算するには、LoggingRule カスタム リソースで記録ルールを構成します。記録ルールは、頻繁に必要となる式や計算コストの高い式を事前に計算します。これらのルールは、結果を新しい時系列セットとして保存します。事前計算された結果をクエリする方が、必要なときに元の式を実行するよりも高速です。この事前計算は、更新または評価のたびに同じ式を繰り返しクエリする必要があるダッシュボードや複雑なアラートで特に役立ちます。

LoggingRule カスタム リソースで記録ルールを構成して、システム ロギング データに基づいて指標を計算します。LoggingRule カスタム リソースには、既存のログに基づいて新しい指標を計算する条件を記述する記録ルールが含まれています。

始める前に

ログから指標を計算するために必要な権限を取得するには、プロジェクトの IAM 管理者に、プロジェクトの Namespace で次のいずれかのロールを付与するよう依頼してください。

  • ロギング ルール作成者: LoggingRule カスタム リソースを作成します。Logging ルール作成者(loggingrule-creator)ロールをリクエストします。
  • ロギング ルール エディタ: LoggingRule カスタム リソースを編集または変更します。Logging ルール編集者(loggingrule-editor)ロールをリクエストします。
  • ロギング ルール閲覧者: LoggingRule カスタム リソースを表示します。ロギング ルール閲覧者(loggingrule-viewer)ロールをリクエストします。

録画ルールを作成する

レコード名と、ルールを評価する有効な式を定義します。式は、新しい指標として記録するために、数値に解決される必要があります。プロジェクトの Namespace にカスタム リソースをデプロイして、組織の管理クラスタに Observability プラットフォームの記録ルールを作成します。

オブザーバビリティの記録ルールについて詳しくは、https://grafana.com/docs/loki/latest/rules/ をご覧ください。

次の手順に沿って、プロジェクトの Namespace でレコードルールを作成し、指標を計算します。

  1. ロギング レコードルールの LoggingRule CR テンプレートを使用して、CR の YAML ファイルを開くか作成します。
  2. CR の namespace フィールドに、プロジェクトの Namespace を入力します。
  3. name フィールドに、ルール構成の名前を入力します。
  4. 省略可: source フィールドでログソースを選択できます。たとえば、operationalaudit などの値を入力します。
  5. [interval] フィールドに、ルール評価間隔の期間(秒単位)を入力します。
  6. 省略可: [limit] フィールドに、アラートの最大数を入力します。アラートを無制限にする場合は、「0」と入力します。
  7. [recordRules] フィールドに、指標を計算するための次の情報を入力します。

    • [record] フィールドにレコード名を入力します。この値は、レコードルールを書き込む時系列を定義します。有効な指標名にする必要があります。
    • [expr] フィールドに、ログルールの LogQL 式を入力します。

      この式は、新しい指標として記録される数値に解決される必要があります。

    • 省略可: labels フィールドで、追加または上書きするラベルを Key-Value ペアとして定義します。

  8. CR の YAML ファイルを保存します。

  9. 管理クラスタのプロジェクトの Namespace に CR をデプロイして、レコードルールを作成します。

LoggingRule 個のレコードルール

LoggingRule カスタム リソースには、オブザーバビリティのために既存のシステム ロギング データに基づいて新しい指標を計算する条件を記述する記録ルールが含まれています。

次の YAML ファイルは、LoggingRule CR の recordRules フィールドのテンプレートを示しています。

# Configures either an alert or a target record for precomputation
apiVersion: logging.gdc.goog/v1alpha1
kind: LoggingRule
metadata:
  # Choose namespace that matches the project's namespace
  # Note: The alert or record will be produced in the same namespace
  namespace: PROJECT_NAMESPACE
  name: alerting-config
spec:
  # Choose which log source to base alerts on (Operational/Audit/Security Logs)
  # Optional, Default: Operational
  source: <string>

  # Rule evaluation interval
  interval: <duration>

  # Configure limit for number of alerts (0: no limit)
  # Optional, Default: 0 (no limit)
  limit: <int>

  # Configure record rules to generate new metrics based on pre-existing logs.
  # Record rules generate metrics based on logs.
  # Use record rules for complex alerts, which query the same expression repeatedly every time they are evaluated.
  recordRules:
    # Define which timeseries to write to (must be a valid metric name)
  - record: <string>

    # Define LogQL expression to evaluate for this rule
    # https://grafana.com/docs/loki/latest/rules/
    expr: <string>

    # Define labels to add or overwrite
    # Optional, Map of {key, value} pairs
    labels:
      <labelname>: <labelvalue>
...

PROJECT_NAMESPACE は、プロジェクトの Namespace に置き換えます。