カスタムメトリックの構成

データベースの可視性は、モニタ対象のデータベースで実行する SQL クエリと通常のデータベースアクティビティ中に実行されたクエリを指定することによって、モニタリングを拡張します。これらのカスタムクエリを定期的に実行するようにスケジュールし、カスタムメトリックで結果を収集することができます。データベースの Custom Metrics ウィンドウデータベースの Custom Metrics ウィンドウ

実行するカスタムクエリを指定するには、次のようにします。

  1. Configuration > Custom Metrics > New にアクセスします。
  2. 以下のフィールドに記入してください。
    1. Name:カスタムメトリックに付ける名前。カスタムメトリック/イベントを作成した後は、その名前を変更することはできません。
      注: カスタム指標名では、| 文字はサポートされていません。
    2. Custom Query Metric Type:クエリから必要な結果のタイプ。
      1. 正常性ルールを定義できるメトリックを生成するには、[Metric] タイプを選択します。このタイプのメトリックは、[Metric Browser] または各コレクタの [Custom Metrics] タブに表示されます。
      2. カスタムクエリ出力が空でない場合は必ず、[Event Data] タイプを選択してカスタムイベントを生成します。カスタムイベントが発生したときに通知されるようにするには、そのカスタムイベントによってトリガーされるポリシーを作成できます。カスタムイベントは [Events] タブに表示されます。カスタムクエリによって複数の行が出力される場合、最初の 40 行がイベントの詳細に含まれます。各行には、カラム区切り記号(|)を含め、最大 5000 文字が表示されます。
    3. Database Type:メトリックを実行するデータベース プラットフォーム。
    4. Databases:メトリックを実行するデータベースインスタンス。メトリックは、指定したデータベースタイプのすべてのデータベースインスタンス、または指定した特定のデータベースインスタンスに対して実行できます。ただし、クラスタの場合、特定のデータベースインスタンスでメトリックを実行することはできません。
    5. Schedule:クエリを実行する時間間隔。メトリックタイプのカスタムクエリの場合、指定された間隔の間でレポートされるメトリック値は、前のクエリ実行で確認された値です。設定されたカスタムメトリックのタイムアウトは、クエリの実行頻度によって異なります。次の表に、時間間隔に基づくタイムアウトの詳細と、カスタムタイムアウト値を設定するために使用できるプロパティを示します。
      間隔(分) デフォルトのタイムアウト(秒) 最大許容タイムアウト(秒) プロパティ

      1

      10 50 dbagent.custommetric.query.timeout.for.1.min.interval
      5 15 180 dbagent.custommetric.query.timeout.for.5.min.interval
      10 30 300 dbagent.custommetric.query.timeout.for.10.min.interval
      30 60 300 dbagent.custommetric.query.timeout.for.30.min.interval
      60 120 300 dbagent.custommetric.query.timeout.for.60.min.interval
      360 180 300 dbagent.custommetric.query.timeout.for.360.min.interval
      720 300 300 dbagent.custommetric.query.timeout.for.720.min.interval
      1440 300 300 dbagent.custommetric.query.timeout.for.1440.min.interval
      注: 最大許容タイムアウト値よりも大きい値を指定した場合、最大許容タイムアウト値が適用されます。
      警告:

      クエリのタイムアウト値を増やすと、クエリの実行に影響する可能性があります。タイムアウト値が大きい高頻度のクエリが複数ある場合、これらのクエリに加えて他のクエリの実行も失敗する可能性があります。

      この動作は、次の方法である程度制御できます。

      1. dbagent.custom.metric.high.frequency.multithreading.enabled プロパティを有効化する:このプロパティにより、高頻度クエリ用の追加スレッド(合計 2 つの高頻度スレッド)が有効になります。これにより、高頻度のクエリがより高速に実行されるため、クエリの欠落が減少します。ただし、接続が利用できないために、低頻度または中頻度のクエリが停止したり、欠落したりする可能性もあります。
      2. データベース接続の数を増やす:

        データベースモニタリングでは、カスタムクエリにデフォルトで 2 つのデータベース接続を使用します。高頻度のデュアルスレッド用に dbagent.custom.metric.high.frequency.multithreading.enabled プロパティを有効にした場合、データベースモニタリングは両方の接続を使用します。その状態から接続数を増やすことで、低頻度および中頻度のスレッドが接続を使用してクエリを実行できるようになります。ただし、接続数が増えると、データベースでのセッションの消費が増加します。データベースインスタンスのセッションは限られたリソースであるため、データベースのパフォーマンスと、他のデータベースクライアントに対するセッションの可用性に影響を与える可能性があります。

    6. Query Text:実行するクエリ。メトリックタイプのカスタムメトリックを作成する場合、クエリには次のいずれかの戻り値の型を指定する必要があります。
    • 正の整数。たとえば、次のクエリは正の整数を返します。

      CODE
      SELECT COUNT(*) FROM employees
    • 文字列と正の整数。たとえば、次のクエリは文字列と正の整数を返します。
      CODE
      SELECT name, salary FROM employees
カスタムクエリはすべてのコレクタで表示されますが、そのデータは作成したコレクタだけを反映します。クエリのセマンティクスをテストし、[Test Query] ボタンをクリックして結果を検証することもできます。
注: カスタムクエリの結果は、データベースエージェントが 4.5.5 以降の場合に検証されます。
次の点は、カスタムメトリックを設定する場合の制限の使用について説明しています。
  • 1 分あたりコレクタごとに最大 150 のカスタムメトリックを報告できます。キー、dbagent.custom.metric.reportable.per.server、および Max 値 150 を使用して、エージェント設定プロパティからカスタムメトリックの制限を増やすことができます。キー値については、「データベースエージェントの構成プロパティ」を参照してください。
  • エージェントで設定された最大制限値が優先され、アカウントレベルおよびコントローラレベルで設定された最大制限値は上書きされます。したがって、優先順位は次のようになります。
    • エージェントレベルの設定
    • アカウントレベルの設定
    • コントローラレベルの設定

カスタムメトリックは、MySQL、Microsoft SQL Server、Microsoft Azure SQL、Oracle、PostgreSQL、DB2、SAP HANA、および Sybase のすべてのリレーショナルデータベースでサポートされます。