メトリック拡張の作成

メトリック拡張を作成して、管理対象データベースの中央監視ツールとしてデータベース管理を活用できます。

メトリック拡張を作成するには:

  1. Oracle Cloud Infrastructureコンソールにサインインします。
  2. ナビゲーション・メニューを開き、「監視および管理」をクリックします。「データベース管理」で、「管理」をクリックします。
  3. 左側のペインで、「メトリック拡張」をクリックし、「コンパートメント」ドロップダウン・リストでコンパートメントを選択します。メトリック拡張は、データベースが存在する、または監視されているコンパートメントに作成する必要があります。
  4. 「メトリック拡張の作成」をクリックします。
  5. 「メトリック拡張の作成」パネルで:
    1. 次のメトリック拡張プロパティを指定します。
      1. 名前: メトリック拡張の名前を入力します。メトリック拡張名の先頭にはME_が自動的に付けられます。
      2. 表示名: メトリック拡張の表示名を入力します(名前と異なる場合)。表示名には、スペースと数字を含めることができます。
      3. 説明: オプションで、メトリック拡張の説明を入力します。
    2. メトリック拡張の作成対象となるCDB、PDB、非CDBなどのデータベース・リソース・タイプと、その他のプロパティを指定する収集メソッド・プロパティを指定します。
      1. リソース・タイプ: メトリック拡張を作成するデータベース・リソース・タイプを選択します。
      2. 収集方法: SQL収集方法を選択して、管理対象データベースに対してカスタムSQL問合せを実行し、その結果をメトリック表に戻します。
      3. 収集頻度: メトリック拡張の収集頻度を指定するオプションを選択します。
      4. SQL問合せ: SQL問合せを入力します。たとえば:
        select a.ename, (select count(*) from emp p where p.mgr=a.empno) directs from emp a

        PL/SQL文もサポートされており、使用する場合は「アウト・パラメータの位置」および「アウト・パラメータ・タイプ」プロパティを移入する必要があります。バインド変数は、In parameterプロパティを使用してSQL問合せに渡すことができます。

        「SQL問合せ」フィールドの上にある「ファイルのアップロード」を選択して、実行するSQLスクリプトを選択またはドラッグ・アンド・ドロップし、関連する入出力パラメータのプロパティを指定します。

      5. パラメータ内: オプションで、「SQL問合せ」オプションを使用する場合はバインド変数、「SQLスクリプト」オプションを使用する場合は入力パラメータを入力します。
        ノート

        In parameterでは、インスタンス・プロパティ・プレースホルダの使用がサポートされています。このプレースホルダは、メトリックが収集される管理対象データベースの実際のインスタンス・プロパティ値でプレースホルダを置換するために使用できます。たとえば、oracle_psftの場合、db_service_nameはインスタンス・プロパティです。% (パーセンテージ)記号%db_service_name%のペア内で、Inパラメータ値として渡すことができます。
      6. 出力パラメータの位置: オプションで、出力パラメータの位置番号を入力します。
      7. 出力パラメータ・タイプ: オプションで、出力パラメータのタイプを選択します。このフィールドは、出力パラメータのポジション番号が「出力パラメータ位置」フィールドに指定されている場合にのみ有効になります。
    3. 次のメトリックおよびディメンションのプロパティを指定します。
      1. 名前: PascalCaseのメトリックまたはディメンションの名前を入力します。たとえば、CpuUtilizationおよびTotalDatabaseSizeです。
        ノート

        ドラフト・ステータスのメトリック拡張のメトリックは、同じリソース・タイプに対して同じ名前を持つことができますが、メトリック拡張が公開されるときには同じ名前を持つことはできません。リソース・タイプの特定のメトリック名がすでに取得され、公開されたメトリック拡張で使用されている場合、同じリソース・タイプの別のメトリックで同じメトリックを使用することはできません。たとえば、特定のリソース・タイプに対して公開されたメトリック拡張ME_FirstMetricExtensionがあり、そのメトリックにMetricFirstという名前のメトリックがある場合、MetricFirstという名前のメトリックを持つ同じリソース・タイプに対して別のメトリック拡張ME_SecondMetricExtensionを公開することはできません。

        この制約は、非表示のメトリックおよびディメンションには適用できません。

      2. Display name: オプションで、メトリックまたはディメンションの表示名(名前と異なる場合)を入力します。表示名には、スペースと数字を含めることができます。
      3. ディメンションですか。: メトリック・ディメンションを定義する場合は「はい」を、メトリックを定義する場合は「いいえ」を選択します。

        ディメンションはメトリックの修飾子であり、メトリック収集結果の行ごとに一意の値である必要があります。たとえば、メトリックとして使用されるストレージ領域の割合、ディメンションはファイル・システムの名前です。

      4. 非表示: メトリックが計算式でのみ使用される場合は、「はい」を選択します。つまり、メトリックは別のメトリックを計算する値としてのみ使用されるか、Oracle Cloud Infrastructure Monitoringサービスに送信する必要はありません。そうでない場合は、「いいえ」を選択します
      5. 値タイプ: 値タイプを選択します。非非表示のメトリックはすべて数値である必要があります。非表示のメトリックまたはディメンションは、StringまたはNumberです。
      6. 単位: オプションで、メトリックに関連付けられた単位を入力します。メトリックに応じて、可能な単位は、Hertzのレイテンシ(秒、ミリ秒、マイクロ秒、分または頻度)になります。このフィールドは、基準に対してのみ有効になり、ディメンションに対してグレー表示されます。
      7. カテゴリ: メトリックが収集するメトリック・データのタイプを選択します: 「可用性」「容量」「ロード」「使用率」。このフィールドは、非表示ではなく、ディメンションおよび非表示のメトリックに対してグレー表示されているメトリックに対してのみ有効です。
      8. コンピュート式: オプションで、コンピュート式を入力して、同じメトリック拡張内の他のメトリックまたはディメンションに対して実行される数学的または論理的な操作に基づいてメトリックの値を計算します。コンピュート式では、最初に他のメトリックを少なくとも1つ定義する必要があり、メトリック拡張ですでに定義されている他のメトリックのみを含めることができます。詳細は、コンピュート式を参照してください。
      9. 別のメトリック/ディメンションの追加: クリックして、メトリック拡張に別のメトリックまたはディメンションを追加します。
  6. メトリック拡張を作成するには、次のいずれかのオプションをクリックします。
    • 作成およびテスト: クリックすると、1つ以上の管理対象データベースに対してメトリック拡張がテストされ、返される値が正しいことが検証されます。返された値に基づいて、反復的な方法で編集およびテストを続行できます。
      ノート

      メトリック拡張をテストすると、管理エージェントが再起動されます。非本番データベースでメトリック拡張をテストすることをお薦めします。
    • 作成: メトリック拡張の定義を保存し、後で管理対象データベースに対してテストする場合にクリックします。

メトリック拡張の例

次に、SQL収集メソッドを使用して様々な待機クラスの待機時間を取得する非CDBリソースのメトリック拡張プロパティをリストし、説明する例を示します:

メトリック拡張のプロパティ

プロパティ名 プロパティ値
名前 ME_GetWaitTime
表示名 取得待機時間
内容 異なる待機クラスの待機時間を取得する非CDBリソースのメトリック拡張。

コレクション・メソッドのプロパティ

プロパティ名 プロパティ値
リソース・タイプ 非コンテナDB
コレクション・メソッド SQL
収集頻度 60分
SQL問合せ
WITH wait_stats AS (
SELECT
inst_id,
wait_class,
time_waited_fg
FROM
TABLE ( gv$(CURSOR(
SELECT
to_number(userenv('INSTANCE')) AS inst_id,
wait_class,
time_waited_fg / 100 AS time_waited_fg
FROM
v$system_wait_class
WHERE
wait_class <> 'Idle'
)) )
), inst_list AS (
SELECT
instance_number,
instance_name,
host_name
FROM
TABLE ( gv$(CURSOR(
SELECT
instance_number,
instance_name,
host_name
FROM
v$instance
)) )
)
SELECT
inst.instance_number instance_number,
inst.instance_name instance_name,
inst.host_name host_name,
ws.wait_class wait_class,
ws.time_waited_fg time_waited_fg
FROM
wait_stats ws,
inst_list inst
WHERE
inst.instance_number = ws.inst_id

メトリックまたはディメンション

メトリックまたはディメンション メトリックまたはディメンションのプロパティ
InstanceNumber
  • 値タイプ: 数値
  • ディメンションですか。: はい
  • 非表示: いいえ
InstanceName
  • 値タイプ: String
  • ディメンションですか。: はい
  • 非表示: いいえ
HostName
  • 値タイプ: String
  • ディメンションですか。: はい
  • 非表示: いいえ
WaitClass
  • 値タイプ: String
  • ディメンションですか。: はい
  • 非表示: いいえ
TimeWaitedSeconds
  • 値タイプ: 数値
  • ディメンションですか。: いいえ
  • 非表示: いいえ
  • ユニット: 秒