DTDは、XMLファイルの文法を提供し、それぞれの関連XMLファイルに求められている内容を記述します。新規XMLファイルを作成する際には、DTDを慎重に調べて、そのファイル内に存在する必要のある内容を理解する必要があります。
この章では、Oracle Server Technology製品との統合を容易にするDTD要素の参照を提供します。
この章では、Oracle Server Technology製品との統合を容易にするDTD要素の参照を提供します。ここで示す例のほとんどは、XMLファイルの一部です。
ターゲット: 管理対象エンティティです。管理対象エンティティは、ハードウェア・デバイスまたはソフトウェア・リソースです。ターゲットの例: ホスト・システム、Oracle Database、SMTPサービスなど。
関連付けられているターゲット: それぞれのデータが相互に依存し合う複数のターゲット。
メトリック: 収集できるデータ
中間層: OMS – Oracle Management Server
コンテナ: コンテナはOracleインストールを収容するエンティティです。現在、Oracleホーム(データベース、Enterprise Manager、Oracle Application Serverインストール)とApplTop (アプリケーション・インストール)という2種類のコンテナが利用可能です。
クラスタ・ターゲット: クラスタ・ターゲットは数多くのホストにまたがります。すべてのクラスタ・ターゲットは同じターゲットを表しています。各クラスタ・ターゲットを監視するエージェントは、同じメトリック結果、重大度などを生成します。
クラスタ・インタフェース: クラスタ・ターゲットと通信するためにエージェントが使用する標準インタフェース。
この項では、Enterprise Managerで使用されるDTD要素の定義を示します。
TargetMetadataは、ターゲット・タイプのメタデータを説明します。ターゲットのメタデータは、測定可能な特性、収集されるデータの形式およびデータの収集または計算に使用するメカニズムを説明します。
<!ELEMENT TargetMetadata (Display*, TypeProperties?, AssocTarget*, DiscoveryHelper?, MonitoringMode*, AltSkipCondition?, MetricClass*, Metric*, CredentialInfo?, InstanceProperties?, SSH_ERROR_MSG?)>
<!ATTLIST TargetMetadata
META_VER CDATA #REQUIRED
TYPE CDATA #REQUIRED
REQUIRED_AGENT_VERSION CDATA #IMPLIED
HELPID CDATA #IMPLIED
HELP CDATA #IMPLIED
CATEGORY_PROPERTIES CDATA #IMPLIED
RESOURCE_BUNDLE_PACKAGE CDATA #IMPLIED
TARGET_TYPE_CATEGORY CDATA #IMPLIED
HOST_BINDING_REQUIRED (TRUE | FALSE) "TRUE"
>
注意:
ファイルに記載される様々な属性の許容最大長を、tagsize.propertiesで指定する必要があります。この値は、メタデータ情報をリポジトリにロードする際に、メタデータ・ファイル内の属性の長さを切り捨てるのに使用されます。
META_VER: メタデータのバージョンを示します。
TYPE: ターゲット・タイプを指定します。
HELPID: 使用しません。
HELP: 使用しません。
CATEGORY_PROPERTIES: ValidIfのプロパティとして使用されるプロパティのリスト(セミコロン区切り)。現在、各ターゲット・タイプでは、カテゴリ・プロパティとして最大5つのプロパティを使用できます。EMAgentは、カテゴリ・プロパティの値を評価して、メタデータ内で使用できるようにします。
RESOURCE_BUNDLE_PACKAGE:
REQUIRED_AGENT_VERSION: この属性は、メタデータの最低のエージェント・バージョンを示します。この属性を伴うTargetMetadataは、指定されたバージョン以上のエージェントで有効になります。
TARGET_TYPE_CATEGORY: ターゲット・タイプが属するカテゴリを決定します。複数のターゲット・タイプ・カテゴリは、カテゴリをセミコロンで区切ったリストとして指定できます。
HOST_BINDING_REQUIRED: ターゲットがホスト・ターゲットを必要とするかどうかを示します。
(TRUE (デフォルト) | FALSE)
<TargetMetadata TYPE="example1" META_VER="2.0" REQUIRED_AGENT_VERSION="10.2.0.1.0">
. . .
</TargetMetadata>
この例では、メタデータのREQUIRED_AGENT_VERSION属性が10.2.0.1.0に設定されています。このメタデータは、エージェントのバージョンが10.2.0.1.0以上の場合のみ有効になります。
<TargetMetadata TYPE="example1" META_VER="2.0">
<Metric NAME="prop" TYPE="TABLE">
<TableDescriptor>
<ColumnDescriptor NAME="name" TYPE="STRING" IS_KEY="TRUE" />
<ColumnDescriptor NAME="value" TYPE="STRING" />
</TableDescriptor>
<QueryDescriptor FETCHLET_ID="OS">
<Property NAME="hostname" SCOPE="INSTANCE">NAME</Property>
</QueryDescriptor>
</Metric>
</TargetMetadata>
これは非常に簡単な例で、次の形式で収集する必要があるデータ(Metric)を持つターゲット・タイプexmaple1を記述しています。引用符の付いた値は、Propertyで定義されているスコーピング・ルールに従って、OS fetchletにより評価されます。
表21-1 メトリックprop
名前 |
値 |
ホスト名 |
NAME |
<TargetMetadata TYPE="example2" META_VER="2.0">
<Metric NAME="perf" TYPE="TABLE">
<TableDescriptor>
<ColumnDescriptor NAME="char" TYPE="STRING" IS_KEY="TRUE" />
<ColumnDescriptor NAME="value" TYPE="STRING" />
</TableDescriptor>
<QueryDescriptor FETCHLET_ID="OSLineToken" >
<Property NAME="command" SCOPE="GLOBAL">%perlBin%/perl %scriptsDir%/example1/perf.pl %port% </Property>
<Property NAME="delimiter" SCOPE="GLOBAL">=</Property>
<Property NAME="port" SCOPE="INSTANCE">accessPort</Property>
</QueryDescriptor>
</Metric>
<InstanceProperties>
<InstanceProperty NAME="accessPort" />
</InstanceProperties>
</TargetMetadata>
このサンプルは、InstanceProperties
の使用方法を示しています。InstanceProperties
要素は、ターゲット・インスタンスに関連付けられるaccessPortを関連付けます。メトリックperfは、次のように収集されます。引用符の付いた値は、Propertyで定義されたスコーピング・ルールに従って、OSLineToken fetchletにより評価されます。
表21-2 メトリック: perf
文字 | 値 |
---|---|
command |
'%perlBin%/perl %scriptsDir%/example1/perf.pl %port%' |
デリミタ |
= |
Port |
'accessPort' |
<TargetMetadata TYPE="example3" META_VER="2.0" CATEGORY_PROPERTIES="OS">
<Metric NAME="prop" TYPE="TABLE">
. . .
</Metric>
<InstanceProperties>
<DynamicProperties NAME="VersionAndLocation" FORMAT="ROW" PROP_LIST="OS;OracleHome;Version">
<QueryDescriptor FETCHLET_ID="OSLineToken">
<Property NAME="scriptsDir" SCOPE="SYSTEMGLOBAL">scriptsDir</Property>
<Property NAME="perlBin" SCOPE="SYSTEMGLOBAL">perlBin</Property>
<Property NAME="ENVEmdOS" SCOPE="SYSTEMGLOBAL">_emdOS</Property>
<Property NAME="ENVVersion" SCOPE="SYSTEMGLOBAL">_emdVersion</Property>
<Property NAME="ENVORACLE_HOME" SCOPE="SYSTEMGLOBAL">emdRoot</Property>
<Property NAME="command" SCOPE="GLOBAL">%perlBin%/perl</Property>
<Property NAME="script" SCOPE="GLOBAL">%scriptsDir%/emdlocandver.pl </Property>
<Property NAME="startsWith" SCOPE="GLOBAL">em_result=</Property>
<Property NAME="delimiter" SCOPE="GLOBAL">|</Property>
</QueryDescriptor>
</DynamicProperties>
</InstanceProperties>
</TargetMetadata>
このサンプルは、DynamicProperties
要素を使用してOS、OracleHomeおよびVersionのプロパティを戻します。このスクリプトは、PROP_LIST属性に記載されているプロパティを戻すために解析された結果を戻します。
このタグを持つ要素を表示するためにコンソールUIで使用される情報を指定します。
<!ELEMENT Display (ValidIf*, Label, ShortName?, Icon?, Description?, Unit?)>
<!ATTLIST Display
FOR_SUMMARY_UI (TRUE | FALSE) "FALSE">
FOR_SUMMARY_UI: 列が圧縮されたUIに表示されるかどうかを示します。1つのUIページにすべての列が収まらない場合は、圧縮表示が必要です。圧縮表示では、FOR_SUMMARY_UI=TRUEに設定されている列のみが表示されます。
TRUE | FALSE (デフォルト)
Display要素にはLabel要素を含める必要があります。ShortName、Icon、DescriptionおよびUnitの各要素はオプションです。ValidIf要素が含まれている場合、要素が表示されるには、ValidIf要素のすべての条件を満たす必要があります。
<Display FOR_SUMMARY_UI="TRUE">
<Label NLSID="emd_resp_stat">Status</Label>
</Display>
この例は、Display要素を含む要素の表示特性を示しています。FOR_SUMMARY_UIがTRUEに設定されている場合は、圧縮表示でもそのUIが表示されます。
<Display FOR_SUMMARY_UI="TRUE">
<ValidIf>
<CategoryProp NAME="OS" CHOICES="SunOS"/>
</ValidIf>
<Label NLSID="id_name_for_agent">Agent Name</Label>
<ShortName NLSID="id_short_name">Name</ShortName>
<Icon GIF="a.gif">Name</Icon>
<Description NLSID="id_for_description">Displays the Agent Name</Description>
</Display>
このサンプルは、OSがSunOSの場合のみに有効な要素の表示特性を示しています。
このタイプのリモート・ターゲットの監視にSSHが使用できない場合にコンソールに表示される自由形式のエラー・メッセージ。
<!ELEMENT SSH_ERROR_MSG (#PCDATA)>
<!ATTLIST SSH_ERROR_MSG
NLSID CDATA #REQUIRED
>
TypePropertiesはターゲット・タイプのTypeProperty要素を保持します。
<!ELEMENT TypeProperties (TypeProperty*)>
TypeProperty要素には、ターゲット・タイプのプロパティの名前/値ペアが含まれます。
<!ELEMENT TypeProperty EMPTY>
<!ATTLIST TypeProperty
PROPERTY_NAME CDATA #REQUIRED
PROPERTY_VALUE CDATA #IMPLIED
>
AssocTargetは、2つのターゲットが相互に関連している様子を記述します。数多くの理由のためにターゲットを関連付けることができます。その理由の一部として、トポロジ・マップの表示、根本原因分析の実行、ターゲットの可用性の判定、データの収集および伝送における冗長性の最小化、データの収集またはジョブの実行の順序の決定があります。たとえば、ターゲットで障害が発生した場合、関連付けられたターゲットも影響を受けることがあります。この情報は、根本原因分析にとって貴重です。
<!ELEMENT AssocTarget (AssocPropDef*)>
<!ATTLIST AssocTarget
ASSOC_TARGET CDATA #IMPLIED
TYPE CDATA #IMPLIED
ASSOCIATION_NAME CDATA #IMPLIED
NAME_NLSID CDATA #IMPLIED
DESCRIPTION CDATA #IMPLIED
DESCRIPTION_NLSID CDATA #IMPLIED
SOURCE_TARGET_TYPE CDATA #IMPLIED
ASSOC_TARGET_TYPE CDATA #IMPLIED
CARDINALITY (OPTIONAL_SINGLE_CARDINAL |
REQUIRED_SINGLE_CARDINAL |
OPTIONAL_MULTI_CARDINAL |
REQUIRED_MULTI_CARDINAL) #IMPLIED
ASSOC_TYPE (RELATES_TO|DEPENDS_ON | CONNECTS_TO |
SERVICE_ACCESS_POINT|RUNS_ON|
CONTAINS|HOSTED_BY|MONITORED_BY|
OPTIONALLY_CONNECTS_TO) #IMPLIED
COMPUTE_RULE (PARENT | MEMBER | NONE) "NONE"
>
ASSOC_TARGET: 関連付けられているターゲットの名前。
TYPE: 関連付けられているターゲットのターゲット・タイプ。
ASSOCIATION_NAME: ASSOC_TARGETは非推奨。関連付けの名前を指定します
ASSOC_TARGET_TYPE: TYPEは非推奨。このターゲットに関連付けられているターゲット・タイプを指定します。ANYを使用すると、関連付けのターゲットは任意のターゲット・タイプにできることを指定できます。
NAME_NLSID: 関連付けの名前のNLSID
DESCRIPTION: 説明
DESCRIPTION_NLSID: 説明文字列のNLSID
SOURCE_TARGET_TYPE: 関連付けの開始場所がそのターゲット自体でなく、別のターゲットの場合、ソース・ターゲットのターゲット・タイプはこの属性内で指定されます。ANYを使用すると、ソースは任意のターゲット・タイプにできることを指定できます。
CARDINALITY: 関連付けられるターゲットのカーディナリティを指定します。サポートされている値は次のとおりです。
OPTIONAL_SINGLE_CARDINAL: ゼロまたは1つのターゲットが関連付けられます
REQUIRED_SINGLE_CARDINAL: 1つのターゲットのみが関連付けられます
OPTIONAL_MULTI_CARDINAL: ゼロまたは複数のターゲットが関連付けられます
REQUIRED_MULTI_CARDINAL: 1つ以上のターゲットが関連付けられます
ASSOC_TYPE: 関連付けられているターゲットの関係を説明します。サポートされている値は次のとおりです。
RELATES_TO (デフォルト): なんらかの汎用的な関係を意味します
DEPENDS_ON: 関連付けられているターゲットへの依存
CONNECTS_TO: ソース・ターゲットが、関連付けられているターゲットに接続します
SERVICE_ACCESS_POINT
RUNS_ON: ソース・ターゲットが、関連付けられているターゲットで実行され(インストールされ)ます
CONTAINS: ソース・ターゲットに、関連付けられているターゲットが含まれます
HOSTED_BY: RUNS_ONと同様です
MONITORED_BY: ソース・ターゲットが、関連付けられているターゲット(エージェント)によって監視されます
OPTIONALLY_CONNECTS_TO
COMPUTE_RULE: まだ存在していない場合に、ターゲット・インスタンスに対して関連付けを計算する方法を記述します。サポートされている値は次のとおりです。
PARENT: ターゲットの1番目の親に基づいて構築されます。
MEMBER: ターゲットの1番目の子に基づいて構築されます。
NONE (デフォルト): ターゲット・インスタンスの関連付けは自動的には計算されません。
10.2より前のバージョンでは、AssocTarget要素に次の属性が必要です。
ASSOC_TARGET
TYPE
バージョン10.2以上では、AssocTarget要素に少なくとも次の属性を使用する必要があります。
ASSOCIATION_NAME (ASSOC_TARGETの後継)。
ASSOC_TARGET_TYPE (TYPEの後継)。
<TargetMetadata TYPE="oracle_email" META_VER="2.0">
<AssocTarget ASSOCIATION_NAME="IM"
SOURCE_TARGET_TYPE="oracle_email"
ASSOC_TARGET_TYPE="oracle_im"
ASSOCIATION_TYPE="DEPENDS_ON"
NAME_NLSID="im_assoc_name"
DESCRIPTION="This association captures Email-IM dependency"
DESCRIPTION_NLSID="im_assoc_description" />
. . .
</TargetMetadata>
この要素はoracle_email内で定義され、次の関係を表します。
Oracle_email -----DependsOn----à oracle_im
AssocPropDefは、関連付けのプロパティを示します。この要素はバージョン10.2ではサポートされていません。
<!ELEMENT AssocPropDef EMPTY>
<!ATTLIST AssocPropDef
NAME CDATA #REQUIRED
REQUIRED (TRUE | FALSE) #REQUIRED>
DiscoveryHelperは、エージェントによるターゲット・タイプの検出処理に役立ちます。
<!ELEMENT DiscoveryHelper (DiscoveryHint*) >
<!ATTLIST DiscoveryHelper
CATEGORYNAME CDATA #REQUIRED
OUI_BASED (TRUE | FALSE) "TRUE"
>
CATEGORYNAME: 指定されたタイプのターゲットを検出するdiscover.lst内のカテゴリの名前。
OUI_BASED: この検出でOUIインベントリ情報が使用されたかどうかを示すブール値。
TRUE (デフォルト) | FALSE
DiscoveryHintを使用すると、検出を誘導する任意のヒントを指定できます。
<!ELEMENT DiscoveryHint (Display?) >
<!ATTLIST DiscoveryHint
NAME CDATA #REQUIRED
>
MetricClassは、メトリックをカテゴリに分類するための手段を提供します。メトリックは、Function (Perf、Load、Config)、EvaluationCost (Cheap、Medium、Expensive)、Applicability (Typical、Esoteric)などの複数の特性に基づいてカテゴリに分類できます。
<!ELEMENT MetricClass (MetricCategory*)>
<!ATTLIST MetricClass
NAME CDATA #REQUIRED
NLSID CDATA #IMPLIED>
<TargetMetadata TYPE="example3" META_VER="2.0">
<MetricClass NAME="EvaluationCost" NLSID="id_for_eval_cost_class">
<MetricCategory NAME="CHEAP" NLSID="id_for_cheap_cat"/>
<MetricCategory NAME="MEDIUM" NLSID="id_for_medium_cat"/>
<MetricCategory NAME="EXPENSIVE" NLSID="id_for_expensive_cat"/>
</MetricClass>
<Metric NAME="metric1" TYPE="TABLE">
<CategoryValue Class="EvaluationCost" CATEGORY_NAME="CHEAP"/>
. . .
</Metric>
. . .
</TargetMetadata>
この例は、ターゲット・タイプexample3に対してEvaluationCostというMetricClassを追加する様子を示しています。EvaluationCostにはCHEAP、MEDIUMおよびEXPENSIVEの3つのカテゴリがあります。メトリックmetric1は、評価コストの低いメトリックです。
詳細は、CategoryValue、Metricの説明を参照してください。
MetricCategory要素は、メトリックの分類内の各選択肢をリストします。
<!ELEMENT MetricCategory EMPTY>
<!ATTLIST MetricCategory
NAME CDATA #REQUIRED
NLSID CDATA #IMPLIED>
Metric要素は、測定可能な、様々なターゲットの特性(パフォーマンス、ロード、構成など)を宣言するために使用します。Metric要素は、収集されるデータの構造および情報の計算方法を示します。
注意:
Responseという名前の特別なメトリックを各ターゲット・タイプに使用することをお薦めします。このメトリックにはStatusという列が必要です。また、タイプの作成者は、このメトリックの集まりを設定し、Status列に条件を設定する必要があります(TargetCollection.dtdを参照)。可用性システム(一定期間におけるターゲットの稼働/停止ステータス)では、このメトリック列でアラートを使用して、一定期間における稼働/停止の統計を提供します。
注意: QueryDescriptorは管理リポジトリのメトリックに必要です。
<!ELEMENT Metric ((ValidIf | ValidMidTierVersions)*, Display?, CategoryValue* ,TableDescriptor?, ((QueryDescriptor | ExecutionDescriptor) | PushDescriptor)* )>
<!ATTLIST Metric
NAME CDATA #REQUIRED
TYPE (NUMBER | STRING | TABLE | RAW | EXTERNAL | REPOSITORY_TABLE | REPOSITORY_NUMBER | REPOSITORY_STRING | REPOSITORY_EVENT) "NUMBER"
REPOSITORY (TRUE|FALSE) "FALSE"
USAGE_TYPE (VIEW_COLLECT | REALTIME_ONLY | HIDDEN | HIDDEN_COLLECT | COLLECT_UPLOAD) "VIEW_COLLECT"
KEYS_FROM_MULT_COLLS (TRUE | FALSE) "FALSE"
IS_TEST_METRIC (TRUE | FALSE) "FALSE"
KEYS_ONLY (TRUE | FALSE) "FALSE"
REMOTE (TRUE | FALSE) "FALSE"
IS_TRANSPOSED (TRUE | FALSE) "FALSE"
HELP CDATA #IMPLIED
IS_METRIC_LONG_RUNNING (TRUE|FALSE) "FALSE"
CONFIG (TRUE|FALSE) "FALSE"
FORCE_CACHE (TRUE | FALSE) "FALSE"
COLLECT_ON_ALL_NODES (TRUE | FALSE) "FALSE"
INCREMENTAL (TRUE|FALSE) "FALSE"
NUM_CACHE_VALUES CDATA "1"
LOCAL_ONLY (TRUE | FALSE) "FALSE"
>
NAME: メトリック名を指定します。そのターゲット・タイプのスコープ内で、一意に識別します。
TYPE: データ型を指定します。サポートされているメトリック・タイプは次のとおりです。
a) NUMBER (デフォルト): 非推奨です。数値型の1列を含む表をかわりに使用してください。
b) STRING: 非推奨です。文字列型の1列を含む表をかわりに使用してください。
c) TABLE: 表形式データ
d) RAW: 表形式データ
e) EXTERNAL: EMDによって解析または先頭に配置されないデータ
f) REPOSITORY_EVENT
REPOSITORY: この属性は、管理リポジトリによって収集されるメトリックを示します。ブール属性です。
FALSE (デフォルト)は管理エージェントによって収集されるメトリックを示します。
TRUEは管理リポジトリで収集されるメトリックを示します。この属性がTRUEに設定されている場合、問合せ記述子は次のようになります。
<QueryDescriptor FETCHLET_ID="REPOSITORY_SQL"> <Property NAME="Type">SQL</Property> <Property NAME="Source">CDATA</Property> </QueryDescriptor>
問合せ記述子は1つのみです。タイプに可能な値は次のとおりです。
SQL
PLSQL
BULK_PLSQL
注意:
REPOSITORYがTRUEに設定されている場合、メトリックTYPEはTABLEになります。RAWはリポジトリ・メトリックでサポートされていません。
USAGE_TYPE: メトリックの目的を定義します。サポートされているタイプは次のとおりです。
a) VIEW_COLLECT (デフォルト): 表示と収集の両方が可能なメトリックです。
b) REALTIME_ONLY: 収集不可のメトリックです。これらのメトリックには、キーの一意性の規則は適用されません。
c) HIDDEN: コンソールから収集および表示されないようにする必要がある場合に、メトリックに非表示のタグが付けられます。データのアップロードも行われません。これらは、他のメトリックの計算に使用される一時メトリックです。
d) HIDDEN_COLLECT: メトリックは収集できます。表示はできません。データはアップロードされません。HIDDENと同様ですが、収集基準を定義できます。
e) COLLECT_UPLOAD: メトリックの収集およびアップロードが可能で、メタデータはMGMT_METRICSにアップロードされますが、Allメトリック・ページには表示されません。
古いUSAGE_TYPEの値のマッピングは次のとおりです。
DISPLAY_ONLY: REALTIME_ONLY
MULTI_KEY: VIEW_COLLECT
COLLECT_ONLY: VIEW_COLLECT
メトリック・ブラウザは、どのメトリックを表示しないかを自動的に判断します。
KEYS_FROM_MULT_COLLS: TRUEの場合は、複数のキー列があることを示します。キー列の組合せによって、1つの行が一意に識別されます。値がTRUEの場合のみ、複数の収集項目でメトリックを収集できます。
TRUE | FALSE (デフォルト)
IS_TEST_METRIC: エージェントは、一部のメトリックをチェックして、有効なインスタンス・プロパティを使用してターゲットが正しく指定されているかどうかを判断できます。この属性は、このメトリックをテスト・メトリックの1つとしてマークします。
TRUEまたはFALSE(デフォルト)
HELP: ヘルプ・テキスト。この属性は使用されません。
KEYS_ONLY: キー列のみを持つ特別なメトリックにタグを付けるために使用します。通常、このようなメトリックは(アップロードされるデータがないため)収集には役立ちませんが、一連のキーを取得するためだけにメトリックを使用する特別な場合に役立ちます。
TRUEまたはFALSE(デフォルト)
IS_METRIC_LONG_RUNNING: TRUEの場合はメトリックが長時間実行されます。メトリック・エンジンに、この問合せの終了までに比較的時間がかかるというヒントを与えます。特別なプロパティEM_IS_METRIC_LONG_RUNNINGがfetchletに自動的に渡されます。
TRUEまたはFALSE(デフォルト)
CONFIG: これは、Enterprise Managerフレームワークによって異なる方法でアップロードされるCONFIGメトリックの特別な指定です。
TRUEまたはFALSE(デフォルト)
REMOTE: リモートの場所から評価できるメトリックのタグ付けに使用されます。これらのメトリックは、ビーコン・ノードから評価できます。
IS_TRANSPOSED: 名前/値ペアとしてデータを生成するメトリックにタグを付けるために使用され、UIはこの名前を列ヘッダーとして扱います。設計時に行数(またはデータのカテゴリ)が不明な場合に便利です。
FORCE_CACHE: 収集されたメトリックについて、エージェントにメトリック収集の結果をキャッシュするよう指示します。この指示がなければ、キャッシュ値が使用されることを認識するまで、エージェントはメトリック結果のキャッシュを開始しません。
COLLECT_ON_ALL_NODES: クラスタ化されたターゲットの場合、この属性がTRUEに設定されてマークが付けられているメトリックは、クラスタのすべてのノードで収集されます。
TRUE | FALSE (デフォルト)
INCREMENTAL: この属性はOCMコレクタによってのみ使用されます。メトリックが増分の場合この属性はTRUEです。つまり、収集中に収集された行は、前の収集中に収集された行を置換せずに、それらの行に加わります。これは、ECM_RUNNING_PRODUCTSメトリックの例の収集にライフスパンがわたるメトリック・データの場合です。
NUM_CACHE_VALUES: 11から始まって、エージェントは、EMDClient getMetricHistory APIがアクセスできるようにメモリに複数の収集結果をキャッシュする能力をサポートしています。この属性の値はデフォルトで1ですが、ユーザーはこの値を15や60などのより高い値に設定できます
LOCAL_ONLY: ローカル・ターゲットに対してのみメトリックを収集し、リモート・ターゲットに対してはスキップするように指定します。
<TargetMetadata TYPE="example1" META_VER="2.0" CATEGORY_PROPERTIES="OS;Version">
<Metric NAME="prop" TYPE="TABLE">
<Display>
<Label NLSID="example1_metric">Example1 Metric</Label>
</Display>
<TableDescriptor>
<ColumnDescriptor NAME="name" TYPE="STRING" IS_KEY="TRUE" />
<ColumnDescriptor NAME="value" TYPE="STRING" />
</TableDescriptor>
<QueryDescriptor FETCHLET_ID="OS">
<Property NAME="hostname" SCOPE="INSTANCE">NAME</Property>
</QueryDescriptor>
</Metric>
</TargetMetadata>
これは、メトリック定義の最も一般的な形式です。この文は、メトリックexample1に表形式データが含まれることを宣言しています。
メトリックにTABLEタイプが含まれる場合、値は行のセットとして返され、またその各行には値のセット(列)が含まれます。表の特殊なケースとして、リストが戻される可能性もあります。TABLEメトリックには、TableDescriptorが定義されている必要があります。
<Metric NAME="Inventory" TYPE="EXTERNAL" >
<ValidIf>
<CategoryProp NAME="OS" CHOICES="SunOS"/>
</ValidIf>
<Display>
<Label NLSID="host_Inventory">Inventory</Label>
</Display>
<QueryDescriptor FETCHLET_ID="OS">
<Property NAME="emdRoot" SCOPE="SYSTEMGLOBAL">emdRoot</Property>
<Property NAME="emHome" SCOPE="SYSTEMGLOBAL">agentStateDir</Property>
<Property NAME="scriptsDir" SCOPE="SYSTEMGLOBAL">scriptsDir</Property>
<Property NAME="perlBin" SCOPE="SYSTEMGLOBAL">perlBin</Property>
<Property NAME="hostConfigClasspath" SCOPE="SYSTEMGLOBAL">hostConfigClasspath</Property>
<Property NAME="hostname" SCOPE="INSTANCE">NAME</Property>
<Property NAME="type" SCOPE="INSTANCE">TYPE</Property>
<Property NAME="display_target_name" SCOPE="INSTANCE">DISPLAY_NAME</Property>
<Property NAME="display_target_type" SCOPE="INSTANCE">TYPE_DISPLAY_NAME</Property>
<Property NAME="command" SCOPE="GLOBAL">"%perlBin%/perl" "%scriptsDir%/osm/ecmCollectInventory.pl" "%hostConfigClasspath%" "%perlBin%" "%emdRoot%" "%emHome%" "%hostname%" "%loaderFile%" "%emHome%/sysman/config/OUIinventories.add" "%type%" "%display_target_name%" "%display_target_type%"</Property>
</QueryDescriptor>
</Metric>
この例はInventoryを外部として宣言します。つまり、メトリックは適切な形式で評価され、アップロード・ディレクトリに配置されることを意味します。EMAgentはメトリック結果を解析しません。ValidIf要素によって、メトリックはOSがSunOSの場合のみ評価されるようになります。
<Metric NAME="AddressMap" TYPE="TABLE" FORCE_CACHE="TRUE">
コンテンツはTABLEメトリックと同様です。
</Metric>
この例では、エージェントはAddressMapメトリックの結果をキャッシュすることを強制されます。
<Metric NAME="ICMPPing" TYPE="TABLE" IS_TEST_METRIC="TRUE" USAGE_TYPE="HIDDEN">
コンテンツはTABLEメトリックと同様です。
</Metric>
ICMPPingはテスト・メトリックとして識別されています。エージェントはその値を使用して、インスタンス・プロパティによって識別されたターゲットが正しいことを検証します。このメトリックは内部使用のみを目的とするため、HIDDENとしてマークされています。
USAGE_TYPEの要約:
USAGE_TYPE | KEY_UNIQUE_CHECK | COLLECTABLE | MGMT_METRICS_RAW | MGMT_METRICS | VIEWABLE |
---|---|---|---|---|---|
VIEW_COLLECT |
Y |
Y |
Y |
Y |
Y |
REALTIME_ONLY |
N |
N |
N |
Y |
N |
HIDDEN |
Y |
N |
N |
Y |
N |
HIDDEN_COLLECT |
Y |
Y |
N |
Y |
N |
COLLECT_UPLOAD |
Y |
Y |
Y |
Y |
Y |
<Metric NAME="http_raw" TYPE="TABLE" KEYS_FROM_MULT_COLLS="TRUE" REMOTE="TRUE">
コンテンツはTABLEメトリックと同様です。
</Metric>
http_rawメトリックは、リモートの場所から評価できるため、REMOTEとしてタグ付けされています。
<Metric NAME="openPorts" TYPE="RAW" CONFIG="TRUE" KEYS_ONLY="TRUE" HELP="NO_HELP">
<ValidIf>
<CategoryProp NAME="OS" CHOICES="SunOS"/>
</ValidIf>
<Display>
<Label NLSID="host_open_ports_ESM">Open Ports</Label>
</Display>
<TableDescriptor TABLE_NAME="esm_collection">
<ColumnDescriptor NAME="property" COLUMN_NAME="property" TYPE="STRING" IS_KEY="TRUE" HELP="NO_HELP"/>
<ColumnDescriptor NAME="value" COLUMN_NAME="value" TYPE="STRING" IS_KEY="TRUE" HELP="NO_HELP"/>
</TableDescriptor>
<QueryDescriptor FETCHLET_ID="OSLineToken">
<Property NAME="scriptsDir" SCOPE="SYSTEMGLOBAL">scriptsDir</Property>
<Property NAME="perlBin" SCOPE="SYSTEMGLOBAL">perlBin</Property>
<Property NAME="command" SCOPE="GLOBAL">%perlBin%/perl</Property>
<Property NAME="script" SCOPE="GLOBAL">%scriptsDir%/openports.pl</Property>
<Property NAME="startsWith" SCOPE="GLOBAL">em_result=</Property>
<Property NAME="delimiter" SCOPE="GLOBAL">=</Property>
</QueryDescriptor>
</Metric>
openPortsはCONFIGメトリックとして定義されています。タイプがRAWのため、EMAgentは値が正しい形式であることを要求します。
<Metric NAME="storage_reporting_data" TYPE="RAW" CONFIG="TRUE" IS_METRIC_LONG_RUNNING="TRUE">
コンテンツはRAWメトリックと同様です。
</Metric>
これは、storage_reporting_dataの実行に時間がかかることを指定しています。
ターゲットの複数のフレーバに適用されるタイプ定義を作成するために、ValidIf要素は使用されます。これを行うには、ターゲットの特定のプロパティ(最大5)をカテゴリ・プロパティとしてマークすることができ、ターゲットのプロパティ値が指定値と一致する場合にのみ適用できることを示すために、ValidIf要素をメタデータの一部に配置できます。
ValidIf内のCategoryProp要素は、評価対象の包含要素と一致する必要があります。包含要素は、様々な条件セットの適用度を示すために複数のValidIfを含んでいることがあります。
<!ELEMENT ValidIf (CategoryProp+)>
<TargetMetadata TYPE="example1" META_VER="2.0" CATEGORY_PROPERTIES="OS;Version">
<Metric NAME="prop" TYPE="TABLE">
<ValidIf>
<CategoryProp NAME="OS" CHOICES="SunOS"/>
<CategoryProp NAME="Version" CHOICES="5.9"/>
</ValidIf>
<TableDescriptor>
<ColumnDescriptor NAME="name" TYPE="STRING" IS_KEY="TRUE" />
<ColumnDescriptor NAME="value" TYPE="STRING" />
</TableDescriptor>
<QueryDescriptor FETCHLET_ID="OS">
<Property NAME="hostname" SCOPE="INSTANCE">NAME</Property>
</QueryDescriptor>
</Metric>
</TargetMetadata>
この例は、メトリックpropが評価されるには、カテゴリ・プロパティOSおよびVersionが値SunOSおよび5.9を含む必要があることを示しています。EMAgentでは、ValidIf要素で使用できる最大5つのカテゴリ・プロパティを定義できます。
CategoryProp要素を使用して、ValidIfを一致させるためのプロパティに対して許可される値をリストします。
<!ELEMENT CategoryProp EMPTY>
<!ATTLIST CategoryProp
NAME CDATA #REQUIRED
CHOICES CDATA #REQUIRED>
<ValidIf>
<CategoryProp NAME="OS" CHOICES="SunOS"/>
<CategoryProp NAME="Version" CHOICES="5.8;5.9"/>
</ValidIf>
ValidIf文の例を変更してVersion CategoryPropertyに5.8と5.9という2つの選択肢を設定した場合、メトリックはSunOSのバージョン5.8および5.9について評価されます。
<ValidIf>
<CategoryProp NAME="OS" CHOICES="SunOS"/>
</ValidIf>
<ValidIf>
<CategoryProp NAME="OS" CHOICES="AIX"/>
</ValidIf>
このようなValidIfを含むメトリックは、OSがSunOSまたはAIXの場合に評価されます。
注意: ValidIfを使用して同じメトリックの複数の定義を区別している場合は、メトリックの複数の定義が検証されることがないようにする必要があります。
<Metric NAME="a_metric" TYPE="TABLE">
<ValidIf>
<CategoryProp NAME="C1" CHOICES="A;B">
</ValidIf>
. . .
</Metric>
<Metric NAME="a_metric" TYPE="TABLE">
<ValidIf>
<CategoryProp NAME="C1" CHOICES="A;C">
</ValidIf>
. . .
</Metric>
この例は、ValidIfを使用しない方法を示しています。
ValidMidTierVersions要素は、エージェントでの中間層ベースのバージョニング・サポートに使用されます。
この要素はMetric要素の下またはCustomTableMapper要素の内部で使用できます。この要素が存在することで、Metric定義またはCustomTableMapper定義が中間層バージョンの特定のセットのみに適用されることがエージェントに示されます。
<!ELEMENT ValidMidTierVersions EMPTY>
<!ATTLIST ValidMidTierVersions
PLUG_IN CDATA #IMPLIED
START_VER CDATA #IMPLIED
END_VER CDATA #IMPLIED>
PLUG_IN: 特定の中間層プラグインの参照を許可するオプションの属性です。指定されていない場合、このタグはコアOMSバージョンに適用されます。
START_VER: 要素の適用が開始されたバージョン(そのバージョンを含む。オプション)。
END_VER: 要素の適用が終了したバージョン(そのバージョンを含まない。オプション)。
各ValidMidTierVersions要素には、少なくともSTART_VERまたはEND_VERの1つを指定する必要があります。
<Metric NAME="metric1" TYPE="RAW">
<TableDescriptor>
<CustomTableMapper REP_TABLE_NAME="table1">
<ValidMidTierVersions PLUG_IN="DB" START_VER="10.1" END_VER="10.3"/>
<ColumnMapper METRIC_COLUMN="col1" REP_TABLE_COLUMN="col1_rep"/>
</CustomTableMapper>
<ColumnDescriptor NAME="c1" COLUMN_NAME="col1" TYPE="STRING"/>
<ColumnDescriptor NAME="c2" COLUMN_NAME="col2" TYPE="STRING"/>
</TableDescriptor>
<QueryDescriptor>
. . .
</QueryDescriptor>
</Metric>
metric1をリポジトリ表table1にマッピングするCustomTableMapper要素は、DB Pluginのバージョン10.1以上10.3未満でのみ適用されます。
<ValidMidTierVersions START_VER="10.1.0.1"/>
MetricまたはCustomTableMapper内でこの要素が使用されている場合は、MetricまたはCustomTableMapperがOMSバージョン10.1.0.1以上でのみ適用されることがEMAgentに示されます。
<ValidMidTierVersions END_VER="10.2"/>
MetricまたはCustomTableMapper内でこの要素が使用されている場合は、MetricまたはCustomTableMapperがOMSバージョン10.2未満(このバージョンを含まない)でのみ適用されることがEMAgentに示されます。
TableDescriptorは、タイプTABLEのメトリックのデータ構造を示します。
<!ELEMENT TableDescriptor (ColumnDescriptor+, CustomTableMapper*)>
<!ATTLIST TableDescriptor
TABLE_NAME CDATA #IMPLIED
SKIP_TARGET_COLUMN (TRUE | FALSE) "FALSE"
SKIP_METRIC_COLUMN (TRUE | FALSE) "FALSE"
SKIP_COLLTIME_PK (TRUE | FALSE) "FALSE"
SKIP_COLLTIME_COLUMN (TRUE | FALSE) "FALSE">
注意:
SKIP_COLLTIME_PK属性は非推奨です。この属性は、収集タイムスタンプを主キーの一部にできないことを指定します。同じ主キーを持つ古い行を、最新の行ですべて上書きすることを示すために使用されていました。現在では、リポジトリで表定義を単純に変更することでこの処理を行えるため、SKIP_COLLTIME_PKは不要になりました。
TABLE_NAME: この属性は、収集されたデータがロードされるリポジトリ・データベース表を指定します。注意: RAWメトリックのみがこの属性を定義できます。TableDescriptorにCustomTableMapper要素が含まれている場合、TABLE_NAME属性を含まないようにする必要があります。
SKIP_TARGET_COLUMN: この属性はRAWメトリックのみに適用されます。TRUEに設定すると、ターゲットGUID列は生成されません。
TRUE | FALSE (デフォルト)
SKIP_METRIC_COLUMN: この属性はRAWメトリックのみに適用されます。TRUEに設定すると、メトリック名列は生成されません。
TRUE | FALSE (デフォルト)
SKIP_COLLTIME_PK: バージョン10.2で非推奨になりました。収集タイムスタンプを生成する必要がある場合はSKIP_COLLTIME_PKオプションを使用できますが、主キーとして追加されません。
TRUE | FALSE (デフォルト)
TABLEメトリックには、TableDescriptorが定義されている必要があります。表の列を記述します。
<Metric NAME="prop" TYPE="TABLE">
<Display>
<Label NLSID="example1_metric">Example1 Metric</Label>
</Display>
<TableDescriptor>
<ColumnDescriptor NAME="name" TYPE="STRING" IS_KEY="TRUE" />
<ColumnDescriptor NAME="value" TYPE="STRING" />
</TableDescriptor>
<QueryDescriptor FETCHLET_ID="OS">
<Property NAME="hostname" SCOPE="INSTANCE">NAME</Property>
</QueryDescriptor>
</Metric>
これは、TYPE=TABLEのメトリックを表すTableDescriptor要素の最も一般的な使用方法です。中間層バージョニング・サポートの詳細は、CustomTableMapperの例を参照してください。
<TableDescriptor TABLE_NAME="esm_collection">
この宣言は、RAWメトリックについてのみ有効です。この要素は、RAWメトリックの内部にesm_collection表の説明を含みます。
<TableDescriptor TABLE_NAME="mgmt_db_compatibility"
SKIP_COLLTIME_PK="TRUE" SKIP_COLLTIME_COLUMN="TRUE"
SKIP_METRIC_COLUMN="TRUE" SKIP_TARGET_COLUMN="TRUE">
SKIP属性は、RAWメトリックのみに適用できます。SKIP属性をTRUEに設定して明示的に指定されている場合を除いて、EMAgentは、行メトリックに対して自動的にTARGET_GUID列、METRIC_NAME列およびCOLLECTION_TIMESTAMP列を生成します。このサンプルのTableDescriptorは、デフォルトの列を省略することを明示的に要求しています。
ColumnDescriptor要素は、表の各列を説明します。また、エージェントでは、RAWメトリックに対する1レベルの表のネストがサポートされます。これにより、メトリックは、含んでいる行との関係でアップロードされた列のかわりに、データの表を戻すことができます。たとえば、データベース内でコストの高いSQL文のリストを戻すメトリックでは、そのSQL文の複数行の実行計画を戻す列を、ネストされた行メトリック列内で戻すことができます。
<!ELEMENT ColumnDescriptor (Display?, CategoryValue*, TableDescriptor?)>
<!ATTLIST ColumnDescriptor
NAME CDATA #REQUIRED
TYPE (NUMBER | STRING | RAW | CLOB | BLOB) "NUMBER"
IS_FILENAME (TRUE | FALSE) "FALSE"
IS_KEY (TRUE | FALSE) "FALSE"
TRANSIENT (TRUE | FALSE) "FALSE"
COMPUTE_EXPR CDATA #IMPLIED
REPLACE_FETCHED_VALUE (TRUE | FALSE) "FALSE"
COLUMN_NAME CDATA #IMPLIED
IS_LONG_TEXT (TRUE | FALSE) "FALSE"
IS_DATE (TRUE | FALSE) "FALSE"
STATELESS_ALERTS (TRUE|FALSE) "FALSE"
IS_TIMESTAMP (TRUE | FALSE) "FALSE"
NON_THRESHOLDED_ALERTS (TRUE | FALSE) "FALSE"
KEYONLY_THRESHOLDS (TRUE | FALSE) "FALSE"
RENDERABLE (TRUE | FALSE) "TRUE"
HELP CDATA #IMPLIED>
NAME: メトリック列の名前。
TYPE: データ型を指定します。
サポートされているタイプは次のとおりです。
a) NUMBER (デフォルト)
b) STRING。
c) RAW: ネストされた表のサポート用です。ネストされた表であることを示すために、列をRAWとして定義できます。注意: 1レベルのみのネストされた表が可能です。
d) CLOB: ログ・ファイルなどの大きい文字データを保持します。
e) BLOB: バイナリ・データを保持します(.zipファイル、.tarファイルなど)。
IS_KEY: この列が主キーの場合はtrueに設定されます(戻された行のなかの行を一意に識別します)。戻された任意の2つの行の場合、キー列の値は同じにできません。そうでないと、主キー違反になります。注意: 最大5つの列をIS_KEY=TRUEとしてマークできます。キーとして定義されている列がない場合、キーのデフォルト値はNULLです(したがって、一度に1行のみを戻す必要があります)
TRUE | FALSE (デフォルト)
TRANSIENT: これはリポジトリにアップロードされません。レート・データの計算のみに使用されます。
TRUE | FALSE (デフォルト)
COMPUTE_EXPR: この属性は、列の値を計算するための式を指定します。表記述子であらかじめ定義されている列を計算に含めることができます。接頭辞「_」が付く列名は、列の前の値を示します。式の文法および使用方法の詳細は、例を参照してください。
事前定義済の特別な値:
a) __interval: 収集間隔。
b) __sysdate: 現在のシステム時間。
c) __GMTdate: グリニッジ標準時(GMT)での現在の時間。
d) __contains: 特定の文字列式に文字列式が存在するかどうかをテストします。
e) __beginswith: 特定の文字列式が、指定された文字列式で始まるかどうかをテストします。
f) __endswith: 特定の文字列式が、指定された文字列式で終わるかどうかをテストします。
g) __matches: 特定の文字列式が指定された文字列式と一致するかどうかをテストします。
h) __delta: 現在の値と前の値の差異を計算します。
i) __leadingchars: 指定された文字列の先頭の文字を戻します。
j) __trailingchars: 指定された文字列の末尾の文字を戻します。
k) __substringpos: 指定された文字列内でそのパターンが発生する位置を戻します。
l) __is_null: 式がNULLかどうかをテストします。
m) __length: 文字列式の長さを戻します。
n) __to_upper: 文字列を大文字に変換します。
o) __to_lower: 文字列を小文字に変換します。
p) __ceil: 識別子未満でない最小の整数値を戻します。
q) __floor: 識別子より大きくない最大の整数値を戻します。
r) __round: ゼロを境にして最も近い整数値に丸めます。
バージョン11より前は、COMPUTE_EXPR属性を持つ列が存在できるのは、fetchletによってすべての列が戻された後のみでした。バグ4869048の一部として、特殊なcompute expr列は、fetchletから値を取得する列との混在が許可されます。
COLUMN_NAME: この値は、メトリック・タイプがRAWの場合にデータベース列の識別に使用されます。
IS_LONG_TEXT: この値は、メトリックがRAWで列がダイジェスト・フォームになる場合にのみ使用されます。エージェントでは、メトリックの結果で長い文字列を繰り返し戻すことを要求するメトリックに対するサポートが提供されます。列がIS_LONG_TEXT="TRUE"とマークされている場合、エージェントは、ダイジェストに文字列をマッピングする行をMGMT_LONG_TEXT表に送信し、その後でダイジェスト値をリポジトリへのデータとして送信するだけです。
TRUE | FALSE (デフォルト)
IS_DATE: この値は、メトリックがRAWで列が日付型の場合のみ使用されます。
TRUE | FALSE (デフォルト)
STATELESS_ALERTS: この属性がTRUEに設定されている場合、この列のアラートに対応するクリアが存在しないことをEnterprise Managerに示します。これにより、この列のアラートをユーザーが手動でクリアできるかどうかをUIによって決定できます。
TRUE | FALSE (デフォルト)
IS_TIMESTAMP: この列の値は、この行の収集時間として使用されます。TRUEに設定されている場合は、この列の値をyyyy-MM-dd HH:mm:ss z形式(たとえば2003-07-30 08:41:05 PST)で指定する必要があります。有効なタイムゾーンのリストは$ORACLE_HOME/sysman/emd/supportedtzs.lstファイルに記載されています。
HELP: 使用しません。
IS_FILENAME: TRUEに設定された場合は、列の値が、送信の必要な実際の内容を含むファイル名であることを示します。IS_FILENAME属性はCLOB/BLOB列型のみに有効です。
NON_THRESHOLDED_ALERTS: この属性は、(たとえば、アラートを生成したサーバーを介して)メトリック列に対するしきい値条件なしで、そのメトリック列のアラートが存在する可能性があることを示すために使用します。
TRUE | FALSE (デフォルト)
KEYONLY_THRESHOLDS: この属性がTRUEに設定された場合は、すべてのメトリック行、およびKeyColumn要素が必要な列のすべてのCondition要素に、条件を適用できません。
TRUE | FALSE (デフォルト)
RENDERABLE: この属性がFALSEの場合は、この列の値がエンジンによって生成され、ユーザーが使用できるように暗号化またはランダム化されていることを示します。UIではこの値は表示されず、ユーザーがこの値のしきい値を設定することはできません。
TRUE (デフォルト) | FALSE
REPLACE_FETCHED_VALUE: この属性が適用されるのは、COMPUTE_EXPRが設定されている場合に、内部計算式に対してのみです(前述を参照)。設定されている場合、これは、fetchletによって戻される対応する列のかわりに計算式値を使用するようにエージェントに伝えます。設定されていない場合、計算済値に場所をあけるために、メトリック・エンジンはfetchletによって戻される既存のすべての値を右シフトします。
TRUE | FALSE (デフォルト)
それぞれの列は、列の名前およびデータ型を指定する必要があります。列にはキー列としてタグを付けることができます。これらの列の値は、キー列以外の列に戻される値を特定します。
たとえば、上位10のプロセスのメトリックでは、プロセス名がキー列になり、常駐メモリー・サイズ、CPU、使用時間が値列になります。
<ColumnDescriptor NAME="ciscoMemoryPoolName" TYPE="STRING" IS_KEY="TRUE">
<Display>
<Label NLSID="cisco_mem_pool_name">Memory Pool Name</Label>
</Display>
</ColumnDescriptor>
これは、ColumnDescriptor要素の最も一般的な使用方法です。ciscoMemoryPoolNameはメトリックのキー列です。この列の値はSTRINGタイプです。ColumnDescriptorに含まれている場合のオプションのDisplay要素は、UI LabelとColumnを関連付けます。
<ColumnDescriptor NAME="pgScan" TYPE="NUMBER" IS_KEY="FALSE" TRANSIENT="TRUE" HELP="NO_HELP"/>
属性TRANSIENT
は、列が内部での計算のみに使用され、リポジトリにアップロードされないことを示しています。
<ColumnDescriptor NAME="property" COLUMN_NAME="property" TYPE="STRING" IS_KEY="TRUE" HELP="NO_HELP"/>
COLUMN_NAME
属性は、データベース列を識別するためにRAWメトリック内で使用されます。
<ColumnDescriptor NAME="log_file_message" TYPE="STRING" IS_KEY="FALSE" IS_LONG_TEXT="TRUE"/>
IS_LONG_TEXT
属性がTRUEに設定されると、long値を要求することがEMAgentに示されます。
<ColumnDescriptor NAME="load_timestamp" COLUMN_NAME="load_timestamp" TYPE="STRING" IS_DATE="TRUE" IS_KEY="FALSE"/>
この例は、RAWメトリックのload_timestamp列に日付書式の値を使用することを定義しています。
<ColumnDescriptor NAME="log_file_match_count" TYPE="NUMBER" IS_KEY="FALSE" STATELESS_ALERTS="TRUE"/>
この定義は、列log_file_match_countのアラートが、対応するクリアを持たないことを示しています。UIは、このデータのアラートを手動でクリアするオプションをユーザーに提供できます。
TableDescriptorの例は、ColumnDescriptor要素を使用する表メトリックを示しています。
注意:
ColumnDescriptorをキーとタイムスタンプ列の両方にすることは無効です。
CLOB/BLOBはRAWメトリック内でのみ有効です。TYPEがCLOBまたはBLOBに設定されている場合、ColumnDescriptorもIS_FILENAME属性をTRUEに設定できます。この場合、列値は、列値自体ではなく、内容を送信する必要があるファイルの名前になります。CLOB/BLOB列の場合、リポジトリ表内の宛先列も、CLOB/BLOBタイプにする必要があります。
計算式のサポート:
サポートされている構文は次のとおりです。
expression := (cond_expr | (cond_expr ? cond_expr : cond_expr)
cond_expr := (string_expr |
(string_expr == string_expr) |
(string_expr < string_expr) |
(string_expr > string_expr) |
(string_expr <= string_expr) |
(string_expr >= string_expr) |
(string_expr __contains string_expr) |
(string_expr __beginswith string_expr) |
(string_expr __endswith string_expr) |
(string_expr __matches string_expr) |
(string_expr __delta string_expr))
string_expr := (simple_expr |
(simple_expr __leadingchars simple_expr) |
(simple_expr __trailingchars simple_expr) |
(simple_expr __substringpos simple_expr))
simple_expr := (term |
(simple_expr + term ) |
(simple_expr - term) )
term := (unary_expr |
(term * unary_expr ) |
(term / unary_expr ) )
unary_expr := (factor |
(__is_null factor) |
(__length factor) |
(__to_upper factor) |
(__to_lower factor) |
(__ceil factor) |
(__floor factor) |
(__round factor) )
factor := ( identifier |
string_literal |
number |
'(' expression ')' )
string_literal := '\'' (character | "\\'" )* '\''
用途:
<ColumnDescriptor NAME="pgScan" TYPE="NUMBER" />
<ColumnDescriptor NAME="pgScanRate" TYPE="NUMBER" IS_KEY="FALSE" COMPUTE_EXPR="(pgScan-_pgScan)/__interval"/>
列の値は、指定された計算式を使用して計算されます。列の値は、pgScan列の現在の値、同じ列の前の値(_pgScan)および収集間隔を使用して計算されます。注意: いずれかの列がその値をCOMPUTE_EXPRで使用できるようになるには、pgScan列を定義する必要があります。
<ColumnDescriptor NAME="baseDir" TYPE="STRING" />
<ColumnDescriptor NAME="component" TYPE="STRING" COMPUTE_EXPR="'/httpd'" />
<ColumnDescriptor NAME="full_path" TYPE="STRING" COMPUTE_EXPR="baseDir + component + '/egs/log/' "/>
列full_pathの値は<baseDir>/httpd/egs/log/です。<baseDir>は列baseDirの値です。
<ColumnDescriptor NAME="value1" TYPE="NUMBER" COMPUTE_EXPR="Col __contains 'ay'" />
<ColumnDescriptor NAME="value2" TYPE="NUMBER" COMPUTE_EXPR="Col __beginswith 'Mon'" />
<ColumnDescriptor NAME="value3" TYPE="NUMBER" COMPUTE_EXPR="Col_ _endswith 'day'" />
<ColumnDescriptor NAME="value4" TYPE="NUMBER" COMPUTE_EXPR="Col __matches 'Sun*'" />
このメトリックのColの値がSundayの場合、COMPUTE_EXPRの結果は次のようになります。
value1 = 1
value2 = 0
value3 = 1
value4 = 1
<TableDescriptor>
<ColumnDescriptor NAME="parse_str" TYPE="STRING" IS_KEY="TRUE" />
<ColumnDescriptor NAME="startpos" TYPE="NUMBER" COMPUTE_EXPR="parse_str __substringpos '#D1'" />
<ColumnDescriptor NAME="num_trailing" TYPE="NUMBER" COMPUTE_EXPR="(__length parse_str) - startpos" />
<ColumnDescriptor NAME="trim_str" TYPE="STRING" COMPUTE_EXPR="parse_str__trailingchars num_trailing" />
<ColumnDescriptor NAME="endpos" TYPE="NUMBER" COMPUTE_EXPR="trim_str __substringpos '#E1'" />
<ColumnDescriptor NAME="result_str" TYPE="STRING" COMPUTE_EXPR="trim_str __leadingchars endpos" />
</TableDescriptor>
このサンプルのTableDescriptorは、特定の文字列から部分文字列を抽出するための単純な方法を示しています。parse_strで表されるデータの形式は次のとおりです。
#A1 10
#B1 20
#C1 30
#D1 40
#E1 50
#F1 60
result_strの値は#D1=40です。
CategoryValue要素は、特定の分類におけるメトリック、列または条件のカテゴリを示します。CategoryValueは、Metric要素に対して定義され、そのメトリックに含まれるすべてのColumnDescriptorに対して有効です。ColumnDescriptorに対して定義されている場合、その列には、そのメトリックに対する指定および定義の結合を上書きするカテゴリ値が含まれます。
次のメトリック・カテゴリは、FUNCTIONALというMetricClassに対して事前に定義されています。
a) FAULT: コンポーネントの機能停止、または一部のコンポーネントやユーザーが処理を正常に実行できないことを示すエラーの発生を示すために使用できるメトリック。例: AlertLog – アーカイバ・ハング
b) WORKLOAD_VOLUME: システムで実行されているユーザーまたはバッチ・ジョブに比例して発生するシステムのワークロードを取得するメトリック。通常これは、処理される作業の量を示しています。例: ユーザー・コール(毎秒)
c) WORKLOAD_TYPE: 需要とは無関係にシステム上のワークロードのタイプを取得するメトリック。通常これは、処理される作業の種類を示しています。例: 論理読取り(トランザクション単位)
d) PERFORMANCE: システムのパフォーマンスを測定するために分類できるメトリック。通常これは、システムがいかによく動作しているかを示しています。例: データベース・レスポンス(毎秒)
e) CAPACITY: 固定リソースの使用量を測定するメトリック。例: CPU使用率(秒単位)
f) CONFIGURATION: 推奨されているベストプラクティスの構成と照合してターゲットの構成を確認するメトリック。
g) SECURITY: システムのセキュリティ面に関係するメトリック。
<!ELEMENT CategoryValue EMPTY>
<!ATTLIST CategoryValue
CLASS CDATA #REQUIRED
CATEGORY_NAME CDATA #REQUIRED>
<TargetMetadata TYPE="example3" META_VER="2.0">
<MetricClass NAME="EvaluationCost" NLSID="id_for_eval_cost_class">
<MetricCategory NAME="CHEAP" NLSID="id_for_cheap_cat"/>
<MetricCategory NAME="MEDIUM" NLSID="id_for_medium_cat"/>
<MetricCategory NAME="EXPENSIVE" NLSID="id_for_expensive_cat"/>
</MetricClass>
<Metric NAME="metric1" TYPE="TABLE">
<CategoryValue Class="EvaluationCost" CATEGORY_NAME="CHEAP"/>
. . .
</Metric>
. . .
</TargetMetadata>
この例は、メトリックのCategoryValueの使用方法を示しています。metric1は、評価コストの低いメトリックです。
<Metric NAME="FileSystems" TYPE="TABLE" >
<CategoryValue CLASS="FUNCTIONAL" CATEGORY="WORKLOAD_VOLUME" />
<TableDescriptor>
<ColumnDescriptor NAME="FileSystem" TYPE="STRING" IS_KEY="TRUE" />
<ColumnDescriptor NAME="totalSpace" TYPE="NUMBER" >
<CategoryValue CLASS="FUNCTIONAL" CATEGORY="CAPACITY" />
</ColumnDescriptor>
<ColumnDescriptor NAME="diskUsedPct" TYPE="NUMBER />
<TableDescriptor>
....
</Metric>
このサンプルでは、列totalSpaceにCAPACITYというCategoryValueがあり、これによってメトリックに関連付けられているWORKLOAD_VOLUMEというCategoryValueが上書きされます。
CustomTableMapper要素は、中間層ベースのバージョニング・プロジェクトの一部で、カスタム(RAW)・メトリックが中間層のバージョンに基づいて宛先の表を変更できるようにします。
RAWメトリックのTableDescriptorには、中間層バージョンのセットごとに1つずつ、複数のCustomTableMapperメトリックを含めることができます。各CustomTableMapperは、TableDescriptorの列のリポジトリ表および列マッピングを提供します。
<!ELEMENT CustomTableMapper (ValidMidTierVersions*, ColumnMapper*)>
<!ATTLIST CustomTableMapper
REP_TABLE_NAME CDATA #REQUIRED>
<TableDescriptor>
<ColumnDescriptor NAME="c1" COLUMN_NAME="col1" TYPE="STRING"/>
<ColumnDescriptor NAME="c2" COLUMN_NAME="col2" TYPE="STRING"/>
<CustomTableMapper REP_TABLE_NAME="table1">
<ValidMidTierVersions PLUG_IN="DB" START_VER="10.1" END_VER="10.3"/>
<ColumnMapper METRIC_COLUMN="col1" REP_TABLE_COLUMN="col1_rep"/>
</CustomTableMapper>
</TableDescriptor>
このサンプルは、中間層ベースのバージョニングを示しています。TableDescriptor要素にはTABLE_NAME属性を含めることはできません。このサンプルは、バージョン10.1 (このバージョンを含む)から10.3 (このバージョンを含まない)の中間層に対するリポジトリ表table1へのメトリックのマッピングを示しています。メトリック列col1は、リポジトリ表table1のcol1_repにマップされます。
ValidMidTierVersionsの例も参照してください。
ColumnMapper要素は、CustomTableMapper要素の一部で、ColumnDescriptorとそのデータの行き先となるリポジトリ列の間のマッピングを記述します。
ColumnMapperが含まれていることで、特定のリポジトリ表内の列のマッピングが提供され、その列が表内に必要であることが示されます。特定のバージョンのリポジトリに列をアップロードしないことを示すには、その列に対してColumnMapperを使用しないことが必要です。
<!ELEMENT ColumnMapper EMPTY>
<!ATTLIST ColumnMapper
METRIC_COLUMN CDATA #REQUIRED
REP_TABLE_COLUMN CDATA #REQUIRED>
問合せ記述子によって、フレームワークはfetchletを見つけることができ、ターゲットからパフォーマンス・データ値を取得するために問合せ情報を渡すことができます。fetchletは、EMAgentにはわかっている既知のIDによって識別できます。fetchletに渡されるプロパティを含むこともできます。
<!ELEMENT QueryDescriptor (ValidIf*, Property*) >
<!ATTLIST QueryDescriptor
FETCHLET_ID CDATA #REQUIRED
NEED_CHARSET_CONVERT (TRUE | FALSE) "TRUE"
REMOTE (TRUE | FALSE) "FALSE"
ON_TARGET (TRUE | FALSE) "FALSE"
>
FETCHLET_ID: 使用するfetchletの(EMAgentで認識されている)IDを指定します。この属性は、$ORACLE_HOME/lib/fetchlets.regファイルからの要素を指定する必要があります。
NEED_CHARSET_CONVERT: メトリック結果が正しいUTF8エンコーディングの場合、このフラグをFALSEに設定してEMAgentによる文字変換が行われないようにする必要があります。
TRUE (デフォルト) | FALSE
REMOTE: この属性により、ターゲットがローカルかリモートかに基づいて、エージェントは適切なQueryDescriptorを選択できます。REMOTE=falseである単一のQueryDescriptorは、同じ問合せ記述子がローカル・ターゲットとリモート・ターゲットに使用されることを示しています。REMOTE=trueである単一のQueryDescriptorは、ターゲットがリモートである場合のみ問合せ記述子が使用され、ターゲットがリモートの場合はスキップされることを示しています。2つあるQueryDescriptorのうち一方がREMOTE=trueである場合、もう一方はREMOTE=falseである必要があります。
TRUE | FALSE (デフォルト)
ON_TARGET: TRUEの値は、メトリックがどこにあってもターゲット上で評価する必要があることを示しています。ローカル・ターゲットの場合、この属性は無視されます。リモート・ターゲットの場合、メトリックはSSH上で評価されます。
TRUE | FALSE (デフォルト)
関連付けられている問合せ記述子には、メトリックの値を収集するのに使用できるメタデータが含まれます。例: SQL問合せ。
<TargetMetadata TYPE="example1" META_VER="2.0">
<Metric NAME="prop" TYPE="TABLE">
<TableDescriptor>
<ColumnDescriptor NAME="name" TYPE="STRING" IS_KEY="TRUE" />
<ColumnDescriptor NAME="value" TYPE="STRING" />
</TableDescriptor>
<QueryDescriptor FETCHLET_ID="OS">
<Property NAME="hostname" SCOPE="INSTANCE">NAME</Property>
</QueryDescriptor>
</Metric>
</TargetMetadata>
この単純な例では、メトリックで使用され、OSというfetchletに依存してプロパティhostnameを返す問合せ記述子を示しています。
<TargetMetadata TYPE="example1" META_VER="2.0">
<Metric NAME="prop" TYPE="TABLE">
. . .
</Metric>
<InstanceProperties>
<DynamicProperties NAME="VersionAndLocation" FORMAT="ROW" PROP_LIST="OS;OracleHome;Version">
<QueryDescriptor FETCHLET_ID="OSLineToken">
<Property NAME="ENVEmdOS" SCOPE="SYSTEMGLOBAL">_emdOS</Property>
<Property NAME="ENVVersion" SCOPE="SYSTEMGLOBAL">_emdVersion</Property>
<Property NAME="ENVORACLE_HOME" SCOPE="SYSTEMGLOBAL">emdRoot</Property>
</QueryDescriptor>
</DynamicProperties>
</InstanceProperties>
</TargetMetadata>
この例は、QueryDescriptorを使用したDynamicProperties要素の評価を示しています。
fetchletに渡される情報を示します。
<!ELEMENT Property (#PCDATA)>
<!ATTLIST Property
NAME CDATA #REQUIRED
SCOPE (GLOBAL | INSTANCE | USER | SYSTEMGLOBAL | ENV | HOST | CACHE) "GLOBAL"
OPTIONAL (TRUE | FALSE) "FALSE">
Propertyの値は次のように解決されます。
1. 指定されたスコープ内で値が検索されます。
2. 検索された値に含まれるそれぞれの潜在的なインスタンス化(つまり%<varname>%)について、次のようにvarnameが検索されます。
a.プロパティ値自体(つまり以前のプロパティの1つ)の内部
b.インスタンス・プロパティ内
c.システム・グローバル・スコープ(emd.properties)内
d.自動プロパティについて値がチェックされます。
ターゲットに対して、次の自動プロパティが定義されます。
1. NAME - ターゲット名の代替
2. TYPE - ターゲット・タイプの代替
3. DISPLAY_NAME – ターゲットの表示名を代替します
4. TYPE_DISPLAY_NAME – タイプの表示名を代替します
5. GUID – GUIDを代替します
注意:
すべての検索では大文字/小文字が区別されます。
NAME: プロパティの名前。
SCOPE: プロパティの値の解決方法を定義します。
SCOPEに対してサポートされている値は次のとおりです。
a) GLOBAL(デフォルト): プロパティは、ターゲット・タイプ定義XMLファイル内で解決される必要があります。
b) INSTANCE: プロパティは検出によって解決される必要があります。この場合は、PCDATAを検出XMLファイルで設定されたプロパティのNAMEにする必要があります。
c) USER: プロパティはコール元(収集者または対話するエンドユーザー)によって解決されます。この場合は、PCDATAを、コール元(対話するユーザーの場合)にプロンプトを表示する際に使用するプロパティの名前にする必要があります。
d) SYSTEMGLOBAL: emd.propertiesを使用してプロパティを解決します。
e) ENV: 環境変数を使用してプロパティを解決します。
f) HOST: そのEMAgentのhostターゲットのインスタンス変数として、プロパティを解決する必要があります。例: OSプロパティ
g) CACHE: 値はメトリックの前の評価から取得する必要があります。前の評価の中で戻されるどの列を指定することもでき、これは単一行メトリックまたは非キー・メトリックにのみ適用されます。
OPTIONAL: fetchletに対して提供された場合に使用可能にする必要のないプロパティを呼び出すために使用します。fetchletに接続する前に、EMAgentは、オプション以外のすべてのプロパティに対して有効な値を検索できることを検証します。
TRUE | FALSE (デフォルト)
<Property NAME="perlBin" SCOPE="SYSTEMGLOBAL">perlBin</Property>
perlBinプロパティにはSYSTEMGLOBALスコープが含まれており、これは、emd.propertiesファイルを使用してプロパティが解決されることを意味します
<Property NAME="delimiter" SCOPE="GLOBAL">|</Property>
delimiterプロパティにはGLOBALスコープが指定されています。
<Property NAME="hostname" SCOPE="INSTANCE">NAME</Property>
hostnameにはINSTANCEスコープが指定されており、これは、値が検出によって解決されることを意味します。値NAMEは、検出XMLファイル内のフィールドと一致する必要があります。
<Property NAME="SNAPSHOT_TYPE" SCOPE="USER">SNAPSHOT_TYPE</Property>
このプロパティはコール元によって解決されます。SNAPSHOT_TYPEは、コール元にプロンプトを表示する際のプロパティの名前です。
<Property NAME="ENVNMUPM_TIMEOUT" OPTIONAL="TRUE" SCOPE="SYSTEMGLOBAL">NMUPM_TIMEOUT</Property>
プロパティENVNMUPM_TIMEOUTは、OPTIONALプロパティとして識別されています。OPTIONAL以外のすべてのプロパティは、fetchletをコールする前にEMAgentによって検証される必要があります。
Property要素の使用方法は、
QueryDescriptor、ValidIf、TargetMetadataの例を参照してください。
UIに表示されるラベルを表します。
<!ELEMENT Label (#PCDATA)>
<!ATTLIST Label
NLSID CDATA #REQUIRED>
この要素は、Display要素内に存在する必要があります。
<Label NLSID="host_load_cpuLoad">Run Queue Length (5 minute average)</Label>
この要素は、Display要素内で定義され、表示するラベルを表します。
Displayの例を参照してください。
ShortNameは、メトリック表示名を短縮したものです。長さを12文字未満にする必要があります。
<!ELEMENT ShortName (#PCDATA)>
<!ATTLIST ShortName
NLSID CDATA #REQUIRED>
<ShortName NLSID="host_load_cpuLoad_short">CPU Load (5min)</ShortName>
この要素は、Display要素内で定義され、表示する短縮名を表します。
Displayの例を参照してください。
表示されるエンティティの説明を保持します。
<!ELEMENT Description (#PCDATA)>
<!ATTLIST Description
NLSID CDATA #IMPLIED>
表示されるデータの単位情報を保持します。
いくつかの標準単位および単位のNLSIDがサポートされています。後述する標準単位に対して、適切なNLS IDおよび表示名を使用してください。システムでサポートされるこれらの単位(em__sys__で始まるNLSID)の変換は、システム・レベルで行われるため、ターゲット・タイプごとに変換する必要がありません。
サポートされている単位は次のとおりです。
標準パーセント: 値が0から100%のメトリックに使用します。
NLSID: "em__sys__standard_percent"
表示: %
使用方法: <Unit NLSID="em__sys__standard_percent">%</Unit>
汎用パーセント: 値が正のパーセントにも負のパーセントにもなる可能性があるメトリックに使用します(-50%や200%など)。
NLSID: "em__sys__generic_percent"
表示: %
使用方法: <Unit NLSID="em__sys__generic_percent">%</Unit>
<!ELEMENT Unit (#PCDATA)>
<!ATTLIST Unit
NLSID CDATA #IMPLIED>
MonitoringMode要素は、データ収集のメディエータを示します。TargetMetadata要素内にこの要素がある場合は、そのターゲットがクラスタ・タイプであることを示します。クラスタ・タイプには、すべてのクラスタ・タイプ・ターゲット・エージェントで一貫性のあるデータ収集を行うためのメディエーションが必要です。クラスタ・ターゲットは、OMSメディエート、エージェント・メディエートまたはリポジトリ・メディエートすることが可能です。MEDIATOR属性はメディエーションを指定します。CLUSTERDESCRIPTOR属性は、エージェントで必要なクラスタ・インタフェースを実装する共有ライブラリを指定します。これは、AgentMediatedクラスタのみに適用されます。
<!ELEMENT MonitoringMode (ValidIf*)>
<!ATTLIST MonitoringMode
MEDIATOR (AgentMediated|OMSMediated) #REQUIRED
CLUSTERDESCRIPTOR CDATA #IMPLIED>
MEDIATOR: 使用するメディエータを指定します。
サポートされている値は次のとおりです。
a) AgentMediated
b) OMSMediated
CLUSTERDESCRIPTOR: クラスタのタイプを示します。エージェント・メディエーションのみに適用されます。
<TargetMetadata META_VER="2.0" TYPE="example1" CATEGORY_PROPERTIES="OS;OSVersion">
. . .
<MonitoringMode MEDIATOR="OMSMediated">
<ValidIf>
<CategoryProp NAME="OSVersion" CHOICES="5.8"/>
<CategoryProp NAME="OSVersion" CHOICES="5.9"/>
</ValidIf
</MonitoringMode>
. . .
</TargetMetadata>
この例は、ターゲットexample1がクラスタ・タイプであり、OSVersionが5.8および5.9の場合のみOMSメディエートされることを示しています。他のバージョンの場合は、通常のターゲットのように動作します。すべての管理エージェントはターゲットをモニターします。この要素が存在しない場合、ターゲットは通常のターゲットになります。
エージェントには、接続障害によるメトリック・エラーの生成を抑えるために、停止中であることが認識されているターゲットのメトリックの評価をスキップするロジックがあります。Responseメトリックの評価でエラーが発生した場合や、ResponseのStatus条件にクリアされていない重大度がある場合は、そのたびにメトリックがスキップされます。ターゲットがResponseのStatus列以外の条件でメトリックの評価を停止する必要がある場合は、AltSkipCondition要素を作成してこれを指定することができます。
<!ELEMENT AltSkipCondition EMPTY >
<!ATTLIST AltSkipCondition
METRIC CDATA #REQUIRED
COLUMN CDATA #REQUIRED
ASSOC_TARGET CDATA #IMPLIED>
<TargetMetadata TYPE="example1" META_VER="2.0">
<AltSkipCondition METRIC="metric1" COLUMN="Status"/>
<Metric NAME="Response" TYPE="TABLE">
<TableDescriptor>
<ColumnDescriptor NAME="Status" TYPE="NUMBER" IS_KEY="FALSE"/>
</TableDescriptor>
<QueryDescriptor FETCHLET_ID="OS">
<Property NAME="hostname" SCOPE="INSTANCE">NAME</Property>
</QueryDescriptor>
</Metric>
<Metric NAME="metric1" TYPE="TABLE">
<TableDescriptor>
<ColumnDescriptor NAME="Status" TYPE="NUMBER" IS_KEY="FALSE"/>
</TableDescriptor>
<QueryDescriptor FETCHLET_ID="OS">
<Property NAME="homedir" SCOPE="INSTANCE">home</Property>
</QueryDescriptor>
</Metric>
</TargetMetadata>
この例は、Responseメトリックの評価でエラーが発生した場合や、ResponseのStatus列にクリアされていないの重大度がある場合に、その都度メトリック評価がスキップされるターゲットを示しています。それ以外にも、メトリック評価は、metric1メトリックのStatus列でエラーまたはクリアされていない重大度が発生した場合にスキップされます。
<AltSkipCondition METRIC="Response" COLUMN="State" ASSOC_TARGET="t2"/>
この例のexample1ターゲット・タイプが別のターゲット・タイプに関連付けられているとします。他のターゲット・タイプのResponseメトリックのState列に基づいてexample1のメトリックの評価をスキップするために、AltSkipConditionを使用できます。
アソシエーションt2は、example1のtargets.xmlファイルで定義する必要があります。
資格証明タイプは、資格証明のセットのメタデータです。資格証明タイプは、資格証明(CredentialTypeColumns)のコンポーネントを記述し、これはキーなどです。場合によっては、CredentialTypeは既存のCredentialType (このターゲット・タイプや他のターゲット・タイプにおける)で構成できます。
CredentialSetは、特定のターゲットに適用されるCredentialTypeのインスタンスです。値がターゲットのインスタンス・プロパティにマップされている資格証明セットを監視することは特に重要です。
<!ELEMENT CredentialInfo (CredentialType*, CredentialSet*)>
<TargetMetadata TYPE="example1" META_VER="2.0">
. . .
<CredentialInfo>
<CredentialType NAME="DBCreds" >
<CredentialTypeColumn NAME="DBUsername" IS_KEY="true" />
<CredentialTypeColumn NAME="DBPassword" />
<CredentialTypeColumn NAME="DBRole" />
</CredentialType>
<CredentialSet NAME="DBCredsMonitoring" CREDENTIAL_TYPE="DBCreds" USAGE="monitoring">
<CredentialSetColumn TYPE_COLUMN="DBUsername" SET_COLUMN="UserName" />
<CredentialSetColumn TYPE_COLUMN="DBPassword" SET_COLUMN="password" />
<CredentialSetColumn TYPE_COLUMN="DBRole" SET_COLUMN="role" />
</CredentialSet>
<CredentialSet NAME="DBCredsSysdba" CREDENTIAL_TYPE="DBCreds" USAGE="monitoring">
<CredentialSetColumn TYPE_COLUMN="DBUsername" SET_COLUMN="SYSDBAUserName" />
<CredentialSetColumn TYPE_COLUMN="DBPassword" SET_COLUMN="SYSDBApassword" />
<CredentialSetColumn TYPE_COLUMN="DBRole" SET_COLUMN="SYSDBArole" />
</CredentialSet>
</CredentialInfo>
. . .
</TargetMetadata>
CredentialInfoにはCredentialType要素およびCredentialSet要素が含まれる場合があります。この例はその場合に該当します。ターゲット・タイプexample1はDBCreds、DBCredsMonitoringおよびDBCredsSysdbaの各資格証明に関連付けられています。
CredentialType要素には、コンポーネント列の(そのうち1つはキー)で構成されているか、または他の事前定義済資格証明タイプのコンポジットとして、タイプの説明が含まれます。
<!ELEMENT CredentialType (Display?, (CredentialTypeColumn|CredentialTypeRef)+)>
<!ATTLIST CredentialType
NAME CDATA #REQUIRED>
CredentialTypeには、オプションのDisplay要素を含めることができます。Display要素は、CrendentialType、および1つ以上のCredentialTypeColumnもしくはCredentialTypeRefのどちらかの表示特性を指定します。
<CredentialType NAME="HostCreds" >
<CredentialTypeColumn NAME="HostUserName" IS_KEY="TRUE">
<CredentialTypeColumn NAME="HostPassword">
</CredentialType>
このサンプルのHostCredsはCredentialTypeとして宣言されています。CredentialInfoの詳細な例を参照してください。
CredentialTypeは資格証明列のセットとして定義されます。それぞれのCredentialTypeColumnは、この列に使用できる値のリストを提供します。
<!ELEMENT CredentialTypeColumn (Display?, CredentialTypeColumnValue*)>
<!ATTLIST CredentialTypeColumn
NAME CDATA #REQUIRED
IS_KEY (TRUE|FALSE) "FALSE">
NAME: 列の名前
IS_KEY: この資格証明タイプで複数のセットが作成されている場合、この列によって各セットは他のセットと区別されます。
TRUE | FALSE (デフォルト)
CredentialTypeColumnには、CredentialTypeColumn要素およびオプションのCredentialTypeColumnValue要素の表示特性を指定する、オプションのDisplay要素を含めることができます。
<CredentialTypeColumn NAME="HostUserName" IS_KEY="TRUE">
<Display FOR_SUMMARY_UI="TRUE">
<Label NLSID="host_username">UserName</Label>
</Display>
</CredentialTypeColumn>
HostUserName列は、(ユーザー名、パスワード)資格証明タイプのキーです。この列はUIの圧縮バージョンで表示され、これに関連付けられているラベルはUserNameです。CredentialInfoの詳細な例を参照してください。
CredentialTypeColumnValueは、CredentialTypeColumnに使用できる値を保持します。
<!ELEMENT CredentialTypeColumnValue (#PCDATA)>
<!ATTLIST CredentialTypeColumnValue
IS_DEFAULT (TRUE|FALSE) "FALSE">
<CredentialType NAME="DBCreds" >
<CredentialTypeColumn NAME="DBUsername" IS_KEY="true" />
<CredentialTypeColumn NAME="DBPassword" />
<CredentialTypeColumn NAME="DBRole">
<CredentialTypeColumnValue IS_DEFAULT="true">normal</CredentialTypeColumnValue>
<CredentialTypeColumnValue>sysdba</CredentialTypeColumnValue>
</CredentialTypeColumn>
</CredentialType>
DBCreds資格証明タイプのDBRole列には、次の値を指定できます。
1. normal (デフォルト値)
2. sysdba
CredentialInfoの例を参照してください。CredentialInfoの例は、CredentialType要素のコンテキストを示しています。
この要素では、資格証明タイプが他の事前定義済資格証明タイプを参照できます。この要素には、元の資格証明タイプの列と定義する資格証明タイプの列とのマッピングが含まれます。
<!ELEMENT CredentialTypeRef (CredentialTypeRefColumn*)> <!ATTLIST CredentialTypeRef REF_NAME CDATA #REQUIRED REF_TYPE CDATA #REQUIRED REF_TARGETTYPE CDATA #IMPLIED ASSOCIATION CDATA #IMPLIED>
REF_NAME: このCredentialTypeRef
の名前を指定します。
REF_TYPE: 参照先の資格証明タイプ。
REF_TARGETTYPE: 元の資格証明タイプを含むターゲット・タイプ。同じターゲット・タイプの場合はNULLを指定します。
ASSOCIATION: このターゲットと、資格証明がここで管理される他のターゲットの関連付けを表します。この値を、前述のAssocTarget要素の1つにする必要があります。
<CredentialType NAME="FMCreds" > <CredentialTypeRef NAME="FMDBCreds1" REF_TYPE="DBCreds" REF_TARGET_TYPE="oracle_database" ASSOCIATION="firstDB"> <CredentialTypeRefColumn NAME="FMUserName1" REF_TYPECOLUMN="DBUsername" /> <CredentialTypeRefColumn NAME="FMpassword1" REF_TYPECOLUMN="DBPassword" /> <CredentialTypeRefColumn NAME="FMRole1" REF_TYPECOLUMN="DBRole" /> </CredentialTypeRef> </CredentialType>
FMCredsは、列FMUserName1、Fmpassword1およびFMRoleがDBCredのDBUsername、DBPasswordおよびDBRole列にそれぞれマップされる資格証明タイプを定義します。
CredentialInfoの例を参照してください。CredentialInfoの例は、CredentialType要素のコンテキストを示しています。
この要素は、参照先資格証明タイプの列をこの資格証明タイプの列にマップします。
<!ELEMENT CredentialTypeRefColumn EMPTY> <!ATTLIST CredentialTypeRefColumn NAME CDATA #REQUIRED REF_TYPECOLUMN CDATA #REQUIRED>
この要素は、このターゲット・タイプの名前付き資格証明セットを形成する要素のセットを定義します。資格証明セットは、このターゲット・タイプに対して定義された資格証明タイプのうち、1つの資格証明タイプの値を提供します。資格証明セットには、監視、優先資格証明およびアプリケーション固有の機能の3つのうち、いずれかの使用方法に対する資格証明を含めることができます。
<!ELEMENT CredentialSet (Display?, CredentialSetColumn+)> <!ATTLIST CredentialSet NAME CDATA #REQUIRED CREDENTIAL_TYPE CDATA #REQUIRED USAGE (MONITORING|PREFERRED_CRED|SYSTEM) "MONITORING" CONTEXT_TYPE (TARGET|CONTAINER|COLLECTION) "TARGET" CONTEXT CDATA #IMPLIED>
NAME: 資格証明セットの名前
CREDENTIAL_TYPE: このセットによって値が提供される資格証明タイプ。
USAGE: この資格証明セットは優先資格証明として監視用に、またはアプリケーション固有の機能に使用されますか。サポートされている値は次のとおりです。
MONITORING(デフォルト): 管理アプリケーションがターゲットに直接接続するために使用できる資格証明を指定します。
PREFERRED_CRED: ユーザーの優先資格証明を指定します。
SYSTEM: 特定の特化したアプリケーション(パッチ適用、クローニングなど)で使用される一定の資格証明セットを指定します。
CONTEXT_TYPE: セットに関連するエンティティの種類を指定します。
サポートされている値は次のとおりです。
TARGET(デフォルト): ジョブ・システムやパッチ適用などのアプリケーションで使用できるターゲットの格納済資格証明です。
CONTAINER: コンテナの格納済資格証明です。これらは常に、ホスト資格証明です。
COLLECTION: これらはユーザー定義のメトリックに関連付けられている資格証明です。
CONTEXT: このセットの対象となるメトリックを指定します。COLLECTION資格証明のみを参照します。
CredentialSetには、オプションのDisplay要素が含まれます。Display要素は、CredentialSet要素および少なくとも1つのCredentialSetColumnの表示特性を指定します。
<CredentialSet NAME="HostPrefCreds" CREDENTIAL_TYPE="HostCreds" USAGE="PREFERRED_CRED"> <CredentialSetColumn TYPE_COLUMN="HostUsername" SET_COLUMN="HostPrefUserName" />\ <CredentialSetColumn TYPE_COLUMN="HostPassword" SET_COLUMN="HostPrefPassword" /> </CredentialSet>
このサンプルは、ユーザーの資格証明セットの使用方法を示しています。
<CredentialSet NAME="DBCredsMonitoring" CREDENTIAL_TYPE="DBCreds" USAGE="monitoring"> <CredentialSetColumn TYPE_COLUMN="DBUsername" SET_COLUMN="UserName"/> <CredentialSetColumn TYPE_COLUMN="DBPassword" SET_COLUMN="password"/> <CredentialSetColumn TYPE_COLUMN="DBRole" SET_COLUMN="role"/> </CredentialSet>
DBCredsMonitoring
データベースの監視のためにエージェントで使用できる資格証明セットを定義します。
<CredentialSet NAME="HostSystemCreds" CREDENTIAL_TYPE="HostCreds" USAGE="SYSTEM"> <CredentialSetColumn TYPE_COLUMN="HostUsername" SET_COLUMN="HostPrefUserName"/> <CredentialSetColumn TYPE_COLUMN="HostPassword" SET_COLUMN="HostPrefPassword"/> </CredentialSet>
HostSystemCreds
はSYSTEM資格証明タイプの一例です。
CredentialInfoの例を参照してください。この例は、CredentialType要素のコンテキストを示しています。
資格証明列は、資格証明タイプの列をその値のソースにマップします。監視資格証明セットの場合、ソースはターゲットのインスタンス・プロパティです。
<!ELEMENT CredentialSetColumn (Display?, CredentialSetColumnValue*) > <!ATTLIST CredentialSetColumn TYPE_COLUMN CDATA #REQUIRED SET_COLUMN CDATA #REQUIRED>
CredentialSetColumn
には、オプションのDisplay要素が含まれます。この要素は、CredentialSetColumn
要素とオプションのCredentialSetColumnValue
要素の表示特性を指定します。
CredentialSet
の例を参照してください
この要素は、CredentialSetColumnに使用できる値を保持します。
<!ELEMENT CredentialSetColumnValue (#PCDATA)> <!ATTLIST CredentialSetColumnValue IS_DEFAULT (TRUE|FALSE) "FALSE">
InstanceProperties要素は、ターゲット・タイプのプロパティを宣言します。targets.xmlファイルから取得できるプロパティもあれば、オプションまたは必須のプロパティもあり、他のプロパティの値を使ってDynamicProperties要素を使用して計算できるプロパティもあります。
エージェントはInstanceProperties要素の情報を使用して、ターゲットが十分に構成されていないときを求め、ターゲットの動的プロパティを計算します。コンソールUIはプロパティに関する情報を使用してUIを作成し、この場合、ターゲットはゼロから作成することも、既存のターゲットのプロパティを変更することもできます。
InstancePropertiesはターゲットのInstanceProperty要素およびDynamicProperties要素を保持します。
<!ELEMENT InstanceProperties ((InstanceProperty | DynamicProperties)*)>
InstanceProperty
要素には、インスタンス・プロパティの定義が含まれます。
<!ELEMENT InstanceProperty (ValidIf*, (PCDATA | Display)*)> <!ATTLIST InstanceProperty NAME CDATA #REQUIRED OPTIONAL (TRUE | FALSE) "FALSE" IN_PRIMARY_KEY (TRUE | FALSE) "FALSE" CHECK_FOR_MODIFIABLE (TRUE | FALSE) "FALSE" CREDENTIAL (TRUE | FALSE) "FALSE" READONLY (TRUE | FALSE) "FALSE" NEED_REENTER ( TRUE | FALSE) "FALSE" HIDE_ENTRY ( TRUE | FALSE) "TRUE" CHECK_ORIGINAL ( TRUE | FALSE) "FALSE" IS_COMPUTED (TRUE|FALSE) "FALSE" WAS_REQUIRED (FALSE|TRUE) "FALSE" >
NAME: プロパティの名前
OPTIONAL: 必要なプロパティの値
TRUE | FALSE (デフォルト)
CREDENTIAL: 機密的な性質を持つプロパティ。通常、このようなプロパティは不明瞭化されてtargets.xmlに保存されます。
TRUE | FALSE (デフォルト)
READONLY: この要素をReadOnlyとしてマークします。
TRUE | FALSE (デフォルト)
NEED_REENTER: TRUEの場合は、ユーザーがコマンドラインに値を2回入力する必要があります。
TRUE | FALSE (デフォルト)
HIDE_ENTRY: TRUEの場合は、ユーザーが入力した文字を*として表示します。
TRUE (デフォルト) | FALSE
CHECK_ORIGINAL: TRUEの場合、ユーザーは変更する前に元の値を入力する必要があります。
IS_COMPUTED: TRUEの場合は、動的プロパティを説明することを示します。
WAS_REQUIRED: これは、10.2より前は必須とされていたインスタンス・プロパティですが、現在は動的プロパティです。TRUEに設定されている場合、このプロパティは10.1 OMSに送られます。デフォルト値はFALSE (詳細は、バグ/ER 4631553を参照)です。
InstanceProperty要素にValidIf要素が含まれる場合、プロパティが評価されるには、すべての条件を満たす必要があります。InstancePropertyには、オプションとしてDisplay要素または文字データを含めることもできます。
<InstanceProperty NAME="password" OPTIONAL="FALSE" CREDENTIAL="TRUE">
この例では、oracle_databaseターゲットの1つのInstancePropertyに、OPTIONALではなくCREDENTIALのpasswordというNAMEが含まれます。
TargetMetadataに記載されているInstancePropertyの別の例も参照してください。
DynamicProperties要素を使用すると、ターゲットのインスタンス・プロパティに対応する値のセットを戻す問合せを、ターゲットが指定できます。値はターゲット・プロパティになり、INSTANCEスコープから他の問合せ記述子へのアクセスが可能です。
<!ELEMENT DynamicProperties (ValidIf*, (QueryDescriptor | ExecutionDescriptor)+) > <!ATTLIST DynamicProperties NAME CDATA #REQUIRED PROP_LIST CDATA #IMPLIED OPT_PROP_LIST CDATA #IMPLIED FORMAT (TABLE | ROW) "TABLE" IS_CRITICAL (TRUE | FALSE) "FALSE" >
注意:
DynamicProperty
評価によってCategoryProperties
がインスタンス化された場合、カテゴリ・プロパティの値がtargets.xmlに含まれていないかぎり、DynamicProperty
評価が失敗したことで、エージェントによるターゲットの拒否が発生します。
NAME: エラー・トレースなどのためにプロパティの収集者を単純に識別する属性。
PROP_LIST: 問合せ記述子によって返すことが可能なプロパティの名前のリストを指定する、セミコロン(;)で区切られた値を含みます。結果には、ここにリストされた値が含まれている必要があります。
OPT_PROP_LIST: 問合せ記述子によって返すことが可能なプロパティの名前のリストを指定する、セミコロン(;)で区切られた値を含みます。結果は、ここにリストされた値を含むことができます。
FORMAT: 戻されるデータの形式を指定します。
サポートされている値は次のとおりです。
TABLE (デフォルト): FORMATがTABLE (デフォルト)の場合、戻り値はインスタンス・プロパティ値の表であることが必要です。戻される表は、2列(NAME、VALUE)の表であることが必要です。
ROW: FORMATがROWの場合、PROP_LISTに記載されているのと同じ順序で、次にOPT_PROP_LISTに記載されているのと同じ順序で、1行の内容がプロパティの値とみなされます。
IS_CRITICAL: 動的プロパティがターゲットにとって重大であることを表すために、IS_CRITICALフラグ属性を指定できます。このフラグのデフォルト値はFALSEで、この属性が存在しない場合は想定されます。この属性の値をTRUEと指定した場合、その動的プロパティの計算が失敗/タイムアウトしたら、emd.propertiesファイルに記載されているパラメータの値に従って、ターゲットのすべての動的/インスタンス・プロパティの計算を再スケジュールします。
DynamicProperties
要素にValidIf
要素が含まれる場合、プロパティが評価されるには、すべての条件を満たす必要があります。また、QueryDescriptor
またはExecutionDescriptor
の1つ以上のインスタンスを含む必要もあります。
PROP_LIST
およびOPT_PROP_LIST
に含まれるプロパティ名は、ターゲット・タイプ・メタデータを評価する際に、InstanceProperty
宣言とともに使用されます。
<DynamicProperties NAME="VersionAndLocation" FORMAT="ROW" PROP_LIST="OS;OracleHome;Version">
VersionAndLocationというDynamicProperties
にはROW形式が指定されており、プロパティとしてOS、OracleHome、Versionを返します。
問合せ記述子がすでに使用可能であるプロパティ値を戻した場合、そのプロパティは無視されます。複数のDynamicProperties
問合せによってプロパティが戻された場合は、最初のプロパティの値が使用されます。
TargetMetadataの例に、DynamicProperties要素のコンテキストが含まれています。
ExecutionDescriptorは、メトリック評価の実行計画を指定します。MAgentは、定義された順序で計画の各文を実行し、メトリックの結果を作成します。実行計画の最後の文の評価結果として生成されたメトリックの結果が戻されます。
<!ELEMENT ExecutionDescriptor (ValidIf*, (GetTable | GetView | GroupBy | Union | JoinTables)*)>
ExecutionDescriptor
要素にValidIf
要素が含まれる場合、要素が評価されるには、すべての条件を満たす必要があります。また、GetTable、GetView、GroupBy、Union、JoinTables
のいずれかの要素のインスタンスを0以上含む必要もあります。
ExecutionDescriptor
は、集計メトリックの計算に使用されます。
<TargetMetadata META_VER="3.0" TYPE="host"> . . . <Metric NAME="Load" TYPE="TABLE"> . . . <ExecutionDescriptor> <GetTable NAME="DiskActivity"/> <GetView NAME="AvgSrvcTimeView" FROM_TABLE="DiskActivity"> <Column NAME="DiskActivityavserv"/> </GetView> <GroupBy NAME="DA_MaxAvServ" FROM_TABLE="AvgSrvcTimeView"> <AggregateColumn NAME="longestServ" COLUMN_NAME="DiskActivityavserv" OPERATOR="MAX" /> </GroupBy> <GetTable NAME="_LoadInternal"/> <JoinTables NAME="Load"> <Table NAME="_LoadInternal"/> <Table NAME="DA_MaxAvServ"/> </JoinTables> </ExecutionDescriptor> </Metric> <Metric NAME="_LoadInternal" TYPE="TABLE" USAGE_TYPE="HIDDEN"> . . . </Metric> <Metric NAME="DiskActivity" TYPE="TABLE"> . . . </Metric> </TargetMetadata> This ExecutionDescriptor in this sample generates the following intermediate Metric results after executing each statement: § GetTable: The metric result, ‘DiskActivity' contains all the columns of ‘DiskActivity' metric. The result of this operation is similar to the SQL statement, “Select * from DiskActivity" § GetView: The metric result, ‘AvgSrvcTimeView' contains only ‘DiskActivityavserv' column of ‘DiskActivity' metric. § GroupBy: Metric result, ‘DA_MaxAvServ' is a grouping of the ‘AvgSrvcTimeView' based on the ‘longestServ' which is the max value of the ‘DiskActivityavserv' column. § GetTable: Metric result, ‘_LoadInternal' contains all the columns of the ‘_LoadInternal' metric. § JoinTable: ‘Load' metric contains a join of the ‘_LoadInternal' and ‘DA_MaxAvServ' metrics.
Loadメトリックの結果として、最後のメトリックが返されます。
この要素はExecutionDescriptor要素内で使用され、次のSQL操作と同じです。
Select * from T
Tはメトリックです。
<!ELEMENT GetTable EMPTY> <!ATTLIST GetTable NAME CDATA #REQUIRED ASSOC_TARGET CDATA #IMPLIED METRIC_NAME CDATA #IMPLIED USE_CACHE (TRUE | FALSE | TRUE_IF_COLLECT) "FALSE">
NAME: メトリックの名前。
ASSOC_TARGET: データの収集元であるターゲット。この属性はオプションで、省略された場合はMETRIC_NAMEが同じターゲット内のメトリックを指定します。
METRIC_NAME: リクエスト元のメトリックの名前。省略した場合は、属性NAMEがMETRIC_NAMEとして使用されます。
USE_CACHE: データがキャッシュからフェッチ可能かどうかを指定します。
TRUE | FALSE(デフォルト)| TRUE_IF_COLLECT
GetView
表からサブ表を作成します。新しく作成された表は、NAME属性で識別されます。この表はExecutionDescriptor
内で一意である必要があります。この要素は次のSQL文と同じです。
Select column1, column2,. . . from T
Tはメトリックです。
<!ELEMENT GetView ((ComputeColumn | Column)*, (Filter | In)*)> <!ATTLIST GetView NAME CDATA #REQUIRED FROM_TABLE CDATA #REQUIRED>
GetView
には、ComputeColumn要素またはColumn要素のどちらかの0個以上のインスタンス、およびFilter要素またはIn要素のどちらかの0個以上のインスタンスを含めることができます。
<GetView NAME="AvgSrvcTimeView" FROM_TABLE="DiskActivity"> <Column NAME="DiskActivityavserv"/> </GetView>
これは、次のSQL文と同じです。
create view AvgSrvcTimeView as select DiskActivityavserv from DiskActivity.
Column要素がGetView
に含まれていない場合は、表のすべての列が含められます。
ExecutionDescriptorの例を参照してください。
フィルタ条件を指定します。フィルタは、行を新しい表に含めるかどうかを判断するために使用されます。フィルタ条件を満たさない場合、行は除外されます。
<!ELEMENT Filter (#PCDATA)> <!ATTLIST Filter COLUMN_NAME CDATA #REQUIRED SCOPE (GLOBAL | INSTANCE | SYSTEMGLOBAL) "GLOBAL" OPERATOR (EQ | LT | GT | LE | GE | NE | CONTAINS | MATCH | ISNULL | ISNOTNULL) "EQ">
COLUMN_NAME: フィルタ条件が適用される列の名前。
SCOPE:
サポートされている値は次のとおりです。
GLOBAL (デフォルト)
INSTANCE
SYSTEMGLOBAL
OPERATOR: 実行する演算を指定します。
サポートされている演算子は次のとおりです。
EQ (デフォルト): 等しい
LT: より少ない
GT: より大きい
LE: 以下
GE: 以上
NE: 等しくない
CONTAINS: 含む
MATCH: 一致する
ISNULL: NULLです
SNOTNULL: NULLではありません
新しい表に含める列を表します。
<!ELEMENT Column EMPTY> <!ATTLIST Column NAME CDATA #REQUIRED COLUMN_NAME CDATA #IMPLIED TABLE_NAME CDATA #IMPLIED>
NAME: メトリックの列の名前を指定します。
COLUMN_NAME: 列の名前を指定します。NAMEと同じ場合は省略できます。
TABLE_NAME: メトリックの名前を指定します。ColumnがGetView
要素の一部の場合は、この属性を除外する必要があります。
<Column NAME="DiskActivityavserv"/>
DiskActivityavservは、操作に対して選択されたメトリック列です。
<Column NAME="responseTime" TABLE_NAME="groupbyapps"/>
groupbyappsメトリックの列responseTimeが操作対象として選択されます。
ExecutionDescriptorの例を参照してください
この要素は、列の値の計算方法を示します。
<!ELEMENT ComputeColumn EMPTY> <!ATTLIST ComputeColumn NAME CDATA #REQUIRED EXPR CDATA #REQUIRED IS_VALUE (TRUE | FALSE) "FALSE" DEFAULT_WHEN_EMPTY (TRUE | FALSE) "FALSE" DEFAULT_VALUE CDATA #IMPLIED>
NAME: 列の名前。
EXPR: 値を計算するために評価される式。式の文法および使用方法の詳細は、ColumnDescriptorの例を参照してください。
IS_VALUE: TRUEに設定されている場合、EXPRは実際の文字列値を指定します。TRUE以外の場合、EXPRは列の計算に使用する式です。
TRUE | FALSE (デフォルト)
DEFAULT_WHEN_EMPTY:
TRUE | FALSE (デフォルト)
DEFAULT_VALUE: 列のデフォルト値。指定していない場合、デフォルト値は0に設定されます。
<GetView NAME="NEW_TABLE" FROM_TABLE="ORIG_TABLE"> <Column NAME="cn1" COLUMN_NAME="A" /> <Column NAME="cn2" COLUMN_NAME="B" /> <ComputeColumn NAME="cn3" EXPR="cn1+cn2" /> <ComputeColumn NAME="cn4" EXPR="cn1/cn2" DEFAULT_WHEN_EMPTY="TRUE" DEFAULT_VALUE="1"/> <ComputeColumn NAME="isMultiThreaded.value" IS_VALUE="TRUE" EXPR="true" /> <Filter COLUMN_NAME="C" OPERATOR="EQ">3</Filter> </GetView>
EXPR属性で許容される式の文法の詳細およびその他の例は、ColumnDescriptorの例を参照してください。
この要素は、SQL文select * from from_table where column_name in ( select in_column_name from in_table_name)と同じです
<!ELEMENT In EMPTY> <!ATTLIST In COLUMN_NAME CDATA #REQUIRED IN_TABLE_NAME CDATA #REQUIRED IN_COLUMN_NAME CDATA #REQUIRED>
COLUMN_NAME: 検索する列名。
IN_TABLE_NAME: 検索場所である表。
IN_COLUMN_NAME: IN_TABLE_NAME属性で指定された表の列名。
GroupByは、新しい表を作成するための集計操作を表またはビューで実行します。この要素は、Select sum(column_name) from table_nameというSQL文と同じです。
<!ELEMENT GroupBy (By*, (AggregateColumn | ComputeColumn)*)> <!ATTLIST GroupBy NAME CDATA #REQUIRED FROM_TABLE CDATA #REQUIRED>
この要素には、Byの0個以上の要素、およびAggregateColumn
またはComputeColumn
のいずれかの0個以上の要素を含めることができます。
<GroupBy NAME="DA_MaxAvServ" FROM_TABLE="AvgSrvcTimeView">
この文の結果、AvgSrvcTimeViewメトリックに適用されたgroupby操作の結果がDA_MaxAvServに含まれます。
ExecutionDescriptorの例を参照してください。
By要素は、GroupBy句を構成する列を定義します。各By要素は、列として結果表に追加されます。
<!ELEMENT By EMPTY> <!ATTLIST By NAME CDATA #REQUIRED COLUMN_NAME CDATA #IMPLIED>
この要素は、列で実行する演算を示します。
<!ELEMENT AggregateColumn EMPTY> <!ATTLIST AggregateColumn NAME CDATA #REQUIRED COLUMN_NAME CDATA #REQUIRED OPERATOR (MAX | MIN | SUM | AVG | COUNT) "SUM">
NAME: AggregateColumnの名前を指定します。
COLUMN_NAME: 演算を実行するメトリックの列名を指定します。
OPERATOR: 実行する演算を指定します。
サポートされている演算子は次のとおりです。
MAX
MIN
SUM (デフォルト)
AVG
COUNT
<AggregateColumn NAME="longestServ" COLUMN_NAME="DiskActivityavserv" OPERATOR="MAX" />
この演算の結果、DiskActivityavserv列から最大値が計算されます。
ExecutionDescriptorの例を参照してください。
Union要素は、2つ以上の表を結合またはマージする操作を示します。結合できるのは、同じ数の列を持つ表のみです。この要素は次のSQL文と同じです。
Select * from T1 Union Select * from T2 <!ELEMENT Union (Table+)> <!ATTLIST Union NAME CDATA #REQUIRED DISTINCT (TRUE | FALSE) "FALSE">
Union要素には少なくとも1つのTable要素を含める必要があります。
<Union NAME="result4"> <Table NAME="result" /> <Table NAME="result1" /> <Table NAME="result2" /> <Table NAME="result3" /> </Union>
result4は4つの表の結合になります。作成される表には、最初の表と同じ列名リストが含まれます。
注意:
結合できるのは、同じ数の列を持つ表のみです。新しく作成された表はNAMEで識別されます。ExecutionDescriptor
内では一意である必要があります。
この要素は、UnionやJoinTablesなどの表操作に関与する可能性があるメトリックを示します。
<!ELEMENT Table EMPTY> <!ATTLIST Table NAME CDATA #REQUIRED>
この要素は結合操作を記述します。これは次のSQL文と同じです。
Select C1, C2 where . . .
<!ELEMENT JoinTables (Table, Table+, (Column | ComputeColumn)*, Where*)> <!ATTLIST JoinTables NAME CDATA #REQUIRED OUTER (TRUE | FALSE) "FALSE" BOTH_SIDE (TRUE | FALSE) "FALSE">
NAME: 結合の名前を指定します。
OUTER: TRUEの場合はOUTER結合を指定します。
TRUE | FALSE (デフォルト)。
BOTH_SIDE: TRUEの場合はBOTH_SIDEを指定します。結果には、UNIONと同じ数の行が含まれます。
TRUE | FALSE (デフォルト)
JoinTablesには、少なくとも2つのTable要素、ColumnまたはComputeColumnのいずれかの0個以上の要素、およびWhereの0個以上の要素を含める必要があります。
<JoinTables NAME="Load"> <Table NAME="_LoadInternal"/> <Table NAME="DA_MaxAvServ"/> </JoinTables>
この例は、Loadを_LoadIntervalメトリックとDA_MaxAvServメトリックの結合として定義しています。
ExecutionDescriptorの例を参照してください。
<!ELEMENT Where EMPTY> <!ATTLIST Where FROM_TABLE CDATA #REQUIRED FROM_KEY CDATA #REQUIRED OPERATOR (EQ | GT | GE | LE | LT | NE | CONTAINS | MATCH) "EQ" JOIN_TABLE CDATA #REQUIRED JOIN_KEY CDATA #REQUIRED>
FROM_TABLE:
FROM_KEY:
OPERATOR: WHERE句の演算子を指定します。
サポートされている演算子は次のとおりです。
EQ (デフォルト): 等しい
GT: より大きい
GE: 以上
LE: 以下
LT: より少ない
NE: 等しくない
CONTAINS: 含む
MATCH: 一致する
JOIN_TABLE:
JOIN_KEY:
<JoinTables NAME="all" OUTER="TRUE"> <Table NAME="groupbyapps" /> <Table NAME="groupbyappsejb" /> <Column NAME="Application" TABLE_NAME="groupbyapps"/> <Column NAME="activeRequests" TABLE_NAME="groupbyapps"/> <Column NAME="responseTime" TABLE_NAME="groupbyapps"/> <Column NAME="activeMethods" TABLE_NAME="groupbyappsejb"/> <Column NAME="avgMethodExecTime" TABLE_NAME="groupbyappsejb"/> <Where FROM_TABLE="groupbyapps" JOIN_TABLE="groupbyappsejb" FROM_KEY="Application" JOIN_KEY="ApplicationName"/> </JoinTables>
push descriptorは、メトリックのデータまたはイベント、もしくはその両方を提供し、各ターゲット用にそのrecvletに渡されるデータを指定するrecvletを識別します。ここでrecvletに使用する名前は、recvlets.regで使用されるrecvlet名と一致する必要があります。
<!ELEMENT PushDescriptor (ValidIf*, Property*) > <!ATTLIST PushDescriptor RECVLET_ID CDATA #REQUIRED>
RECVLET_ID: 使用するrecvletの(EMAgentで認識されている)IDを指定します。この属性は、$ORACLE_HOME/lib/recvlets.regファイルからの要素を指定する必要があります。
PushDescriptorには、ValidIfおよびPropertyの0個以上の要素を含めることができます。
<Metric . . .> . . . <PushDescriptor RECVLET_ID="AQMetrics"> <Property NAME="QueueName" SCOPE="GLOBAL">ALERT_QUE</Property> <Property NAME="MachineName" SCOPE="INSTANCE">MachineName</Property> <Property NAME="Port" SCOPE="INSTANCE">Port</Property> <Property NAME="SID" SCOPE="INSTANCE">SID</Property> <Property NAME="UserName" SCOPE="INSTANCE">UserName</Property> <Property NAME="password" SCOPE="INSTANCE">password</Property> <Property NAME="Role" SCOPE="INSTANCE">Role</Property> <Property NAME="InstanceName" SCOPE="INSTANCE">InstanceName</Property> <Property NAME="KeyField" SCOPE="GLOBAL">OBJECT_NAME</Property> <Property NAME="KeyColumn" SCOPE="GLOBAL">name</Property> </PushDescriptor> </Metric>
PushDescriptorに含まれるプロパティは、AQMetricsというreceiveletに渡されます。このreceiveletは、メトリックのデータまたはイベント、あるいはその両方を提供します。
ターゲット収集は、中央リポジトリでの値のアップロード、または指定された条件に対する値のチェック、もしくはその両方の目的で、メトリックのバックグラウンド収集を駆動します。
このDTDに準拠するXMLファイルは、システムによって生成されます(サーブレット・フロントエンドまたはコレクタから生成可能です)。
EMAgentは、それぞれが特定のターゲットから収集する必要があるメトリックを含む、複数の収集ファイルを使用できます。
TargetCollectionは、特定のターゲットについて収集する必要のあるメトリックを記述します。この要素は、デフォルトの収集(タイプ・レベル)とインスタンス固有の収集の両方に適用されます。NAME、LEVELおよびINCLUDE_DEFAULT属性は、インスタンス固有の収集のみに適用されます。
0個以上のCollectionItem要素およびCollectionLevel要素を持つことができます。CollectionLevel要素は、デフォルトの収集のみに適用されます。
<!ELEMENT TargetCollection ( CollectionLevel*, CollectionItem* ) > <!ATTLIST TargetCollection TYPE CDATA #REQUIRED NAME CDATA #IMPLIED LEVEL CDATA #IMPLIED INCLUDE_DEFAULT (TRUE|FALSE) "TRUE">
TYPE: ターゲット・タイプを指定します。
NAME: ターゲットの名前を指定します。これがトップレベルの要素の場合、NAMEをNULLにすることはできません。このファイルが含まれている場合はNULLにすることができます。この属性は、インスタンス固有の収集のみに適用されます。
LEVEL: 収集レベルを指定します。デフォルトは最小になります。この属性は、インスタンス固有の収集のみに適用されます。
INCLUDE_DEFAULT: TRUEに設定された場合、同じターゲット・タイプのデフォルトの収集が含まれます。この属性は、インスタンス固有の収集のみに適用されます。
TRUE (デフォルト) | FALSE
<TargetCollection TYPE="preferred" > <CollectionItem NAME = "Load" UPLOAD_ON_FETCH="TRUE"> <Schedule OFFSET_TYPE="INCREMENTAL"> <IntervalSchedule INTERVAL = "15" TIME_UNIT = "Min"/> </Schedule> <MetricColl NAME = "NfsOperations"> <Filter COLUMN_NAME="NfsCallsRate" OPERATOR="LE">100000</Filter> <Condition COLUMN_NAME="NfsServPercentBadCalls" CRITICAL="10" WARNING="5" OPERATOR="GT" OCCURRENCES="3" MESSAGE="NFS Bad Calls are %value%%%." MESSAGE_NLSID="netapp_filer_nfs_operations_nfs_per_bad_calls"/> </MetricColl> <MetricColl NAME = "CifsOperations"> <Filter COLUMN_NAME="CifsCallsRate" OPERATOR="LE">100000</Filter> <Condition COLUMN_NAME="CifsPercentBadCalls" CRITICAL="10" WARNING="5" OPERATOR="GT" OCCURRENCES="3" MESSAGE="CIFS Bad Calls %value%%%." MESSAGE_NLSID="netapp_filer_cifs_operations_cifs_per_bad_calls"/> </MetricColl> <MetricColl NAME = "SystemLoad" /> </CollectionItem> </TargetCollection> This example illustrates the preferred method of declaring CollectionItems. One collection item specifies multiple metrics with their own filter criteria and Condition elements defined. <TargetCollection TYPE="network" > <CollectionItem NAME = "Response"> <Schedule> <IntervalSchedule INTERVAL = "300" TIME_UNIT = "Sec"/> </Schedule> <Condition COLUMN_NAME="Status" CRITICAL="ok" OPERATOR="NE" OCCURRENCES="3" MESSAGE="%target% adaptor is inaccesible or is connected." MESSAGE_NLSID="network_response_status"/> </CollectionItem> </TargetCollection>
この例は、networkターゲット・タイプのデフォルトの収集を示しています。メトリックはCollectionItemのNAME属性として指定されています。このようにCollectionItem内でメトリックNAMEを指定する方法は、下位互換性のみを目的としています。かわりに、MetricCollsの例を使用します。
TargetCollectionには、オプションのCollectionLevel要素およびCollectionItem要素が含まれます
<TargetCollection TYPE="oracle_beacon" >
NAME属性は、これがdefault_collectionsに含まれていない可能性があることを意味します。
この要素は、収集レベル・リストを表しています。これはデフォルトの収集にのみ適用されます。順序は、contains関係を意味しています。
<!ELEMENT CollectionLevel EMPTY> <!ATTLIST CollectionLevel NAME CDATA #REQUIRED>
<TargetCollection TYPE="example2"> <CollectionLevel NAME="LEVEL1"/> <CollectionLevel NAME="LEVEL2"/> <CollectionLevel NAME="LEVEL3"/> . . . <MetricColl NAME="metric1"> <ItemProperty NAME="prop1">foo</ItemProperty> <Condition COLUMN_NAME="value" CRITICAL="bar" OPERATOR="EQ"/> </MetricColl></TargetCollection>
収集レベルの順序は、LEVEL1収集項目がLEVEL2に含まれ、LEVEL2およびLEVEL1の両方の項目がLEVEL3に含まれることを意味します。
この要素を使用してレベルを宣言すると、LEVEL属性によってこれらのレベルが参照されます。
CollectionItemは、1つ以上のメトリックの収集を定義します。スケジュールを持っています。
<!ELEMENT CollectionItem (ValidIf*, Schedule?, (MetricColl+ | (ItemProperty*, Filter*, LimitRows?, Condition*) ) )> <!ATTLIST CollectionItem NAME CDATA #REQUIRED LEVEL CDATA #IMPLIED UPLOAD CDATA "YES" UPLOAD_ON_FETCH (TRUE | FALSE) "FALSE" ATOMIC_UPLOAD (TRUE | FALSE) “FALSE" POSTLOAD_PROC CDATA #IMPLIED PRELOAD_PROC CDATA #IMPLIED CONFIG (TRUE | FALSE) "FALSE" CONFIG_METADATA_VERSION CDATA #IMPLIED TIMEOUT CDATA #IMPLIED COLLECT_WHEN_DOWN (TRUE | FALSE) "FALSE" COLLECT_WHEN_ALTSKIP (TRUE | FALSE) "FALSE" COMBINE_WITH_OTHER_COLLECTION (TRUE | FALSE) "TRUE" PROXY_TARGET_NAME CDATA #IMPLIED PROXY_TARGET_TYPE CDATA #IMPLIED PROXY_TARGET_TZ CDATA #IMPLIED PROXY_TARGET_TZ_REGION CDATA #IMPLIED INITIAL_UPLOADS CDATA #IMPLIED DISABLED (TRUE | FALSE) "FALSE" REQUIRED (TRUE | FALSE) "FALSE">
NAME: 収集の名前を指定します。
LEVEL: 収集レベル。
UPLOAD: この属性が指定されていない場合は、YESとみなされます。NUMBERは、CollectionItemがアップロードされる頻度を示します。(n回の収集ごとにアップロード)。
YES (デフォルト) | NO | NUMERIC
UPLOAD_ON_FETCH: UPLOAD_ON_FETCHとしてマークされた収集項目は、ATOMIC_UPLOADと同じ動作をしますが、唯一の相違点はアップロードがただちに発生することです。
TRUE | FALSE (デフォルト)
COLLECT_WHEN_DOWN: デフォルトの動作では、Responseメトリック(ターゲットに対して存在する場合)によってターゲットのステータスが停止中と示された場合に収集が停止します。Responseメトリック自体である場合は例外です。ただし、ターゲットの停止中に収集を行わないという動作は、この属性をTRUEに設定することで上書きできます。
TRUE | FALSE (デフォルト)
COLLECT_WHEN_ALTSKIP: デフォルトの動作では、AltSkipConditionが定義済でその条件に重大度が存在する場合に、メトリックの収集が停止します。この属性をTRUEに設定すると、このような場合でも収集が続行されます。ResponseのStatus条件の重大度を解消する方法は、COLLECT_WHEN_DOWN属性を使用する以外にありません。
TRUE | FALSE (デフォルト)
PROXY_TARGET_NAME: プロキシ収集のサポート用に使用され、ターゲット・データの名前およびアップロード対象の重大度を指定します。
PROXY_TARGET_TYPE: プロキシ収集のサポート用に使用され、タイプを指定します。
PROXY_TARGET_TZ_REGION: プロキシ収集のサポート用に使用され、タイムゾーン・リージョン文字列(たとえばUS/Pacific)を指定します。
PROXY_TARGET_TZ: プロキシ収集のサポート用に使用され、タイムゾーン(グリニッジ標準時(GMT)からの分数、たとえば-420)を指定します。
TIMEOUT: メトリック評価がいつまでに終了する必要があるかを示す時間。時間は秒単位で指定されます。評価がこの時間内に終わらない場合は、エージェントによってメトリック評価が中断され、TIMEOUT例外が戻されます。この属性が指定されていないか、値がゼロの場合は、収集ファイルに含まれるこのメトリック評価頻度の2倍がデフォルト値になります。タイムアウトが一切発生しないようにするには、0より小さい値を指定します。0より小さい値を指定すると、メトリックが完全に評価されるまで、エージェントが待機します。
POSTLOAD_PROC: UPLOAD_ON_FETCHの状況でのみ適用されます。この属性は、受信者がこの収集の内容を含むファイルを受信したときに起動する必要がある、オプションのPL/SQLプロシージャを指定します。
PRELOAD_PROC: UPLOAD_ON_FETCHの状況でのみ適用されます。この属性は、受信者がこの収集の内容を含むファイルを受信したときに起動する必要がある、オプションのPL/SQLプロシージャを指定します。
CONFIG: この属性は、CONFIGメトリックの収集にタグを付けるために使用されます。これらは、Enterprise Managerフレームワークによって特別に処理されます。注意: CONFIGメトリックの収集項目は、ATOMIC_UPLOADをFALSEに指定できません。TRUE | FALSE (デフォルト)
INITIAL_UPLOADS: デフォルト値は2ですが、UPLOADパラメータに基づいてアップロードをスキップする前にその他の初期アップロードを送る必要がある場合は、別の数値に設定できます。
ATOMIC_UPLOAD:ATOMIC_UPLOADとしてマークされた収集項目は、通常のアップロード間隔(5分)でアップロードされる単一のファイルにバンドルされます。
TRUE | FALSE (デフォルト)
CONFIG_METADATA_VERSION: この属性は、CONFIGメトリックのバージョンを指定するのに使用されます。
COMBINE_WITH_OTHER_COLLECTION: 通常、エージェントは収集を結合して、時間間隔に基づいてスレッドで保存するために単一のスレッドで順次実行します。前のメトリック実行に時間がかかっている場合は、これによってメトリック実行に遅延が発生する可能性があります。ただし、一部のメトリックは時間どおりに実行する必要があります。このフラグをFALSEに設定すると、このメトリックが独自のスレッドで実行されます。
TRUE (デフォルト) | FALSE
DISABLED: TRUEに設定された場合、エージェントはこの収集項目を無視します。
REQUIRED: TRUEに設定された場合、コンソールはユーザーがこの項目を無効化することを許可しません。
CollectionItemにはValidIf要素を含めることができます。CollectionItemが評価されるには、この要素がすべて満たされている必要があります。これには、オプションのSchedule要素と、MetricColl要素、あるいはItemProperty、Filter、LimitRowsまたはCondition要素が含まれます。
下位互換性のために、NAME属性を使用して単一のメトリックを指定でき、そのプロパティ、フィルタおよび条件を子要素として指定できます。
新しい優先DTDには、CollectionItem内に1つ以上のMetric要素があり、それぞれは、収集するメトリック、関連付けるフィルタ、しきい値などを示しています。
<CollectionItem NAME="ProgramResourceUtilization">
この例は、この要素の最もわかりやすい形式を示しています。ProgramResourceUtilizationはCollectionItemの1つです。
<CollectionItem NAME = "general_collection" UPLOAD="12" INITIAL_UPLOADS="4">
このサンプルのgeneral_collectionは、最初に4回(INITIAL_UPLOADSで示された数値)アップロードされ、その後は12回(UPLOAD属性で示された数値)に1回アップロードされます。
<CollectionItem NAME = "Inventory" UPLOAD_ON_FETCH = "TRUE" TIMEOUT = "3600">
Inventory収集項目は、メトリックが収集されるときにアップロードされます。指定されたタイムアウトは1時間です。
<CollectionItem NAME = "oracle_security" UPLOAD_ON_FETCH = "TRUE" CONFIG = "TRUE">
この例のoracle_securityはCONFIGメトリックの収集に関与するため、EMAgentに対してそのように示す必要があります。
<CollectionItem NAME = "UserResourceUsage" UPLOAD="YES" UPLOAD_ON_FETCH="FALSE" COLLECT_WHEN_DOWN="FALSE">
UPLOAD属性にはYES、NOまたは数値を指定できます。UserResourceUsage収集は、レスポンス・メトリックによってターゲットが停止中であると示された場合でも試行されます。
PROXY_TARGET_TZ_REGIONは、PROXY_TARGET_TZのプロシージャを継承します(両方が指定されている場合)。
TargetCollectionの例を参照してください。
MetricColl要素は、収集項目内で収集されるメトリックを参照します。
<!ELEMENT MetricColl (ItemProperty*, Filter*, LimitRows?, Condition*)> <!ATTLIST MetricColl NAME CDATA #REQUIRED TRANSIENT (TRUE|FALSE) “FALSE" UPLOAD_IF_SEVERITY (WARNING|CRITICAL|CHANGE_ONLY) "CHANGE_ONLY">
NAME: これは収集するメトリックの名前です。
TRANSIENT: この属性がTRUEに設定されている場合、このメトリックのデータはアップロードされるか収集されて、他のメトリックの評価に使用されているキャッシュをリフレッシュすることを示しています。UPLOAD_IF_SEVERITY: UPLOAD=NOであり、UPLOAD=N>1の場合のみ有効です。
サポートされている値は次のとおりです。
CHANGE_ONLY (デフォルト): 重大度が変更されたときにデータをアップロードします
WARNING: 重大度に変更があり、条件がWARNINGまたはCRITICALの場合にデータをアップロードします
CRITICAL: 重大度に変更があり、条件がCRITICALの場合にデータをアップロードします
MetricCollには、オプションのItemProperty要素(単数または複数)、Filter要素(単数または複数)、オプションのLimitRows要素(単数)およびオプションのCondition要素(単数または複数)を含めることができます。
<MetricColl NAME = "WebServicesService"/>
これは、MetricCollの一般的な使用方法です。WebServicesServiceメトリックはCollectionItemに関連付けられます。
TargetCollectionの例を参照してください。
LimitRowsは、Upload Managerを介してリポジトリに送信される前の収集済データに適用できるフィルタ処理のメカニズムです。アップロードされる行数を制限します。
<!ELEMENT LimitRows EMPTY> <!ATTLIST LimitRows COLUMN_NAME CDATA #IMPLIED SORT_ORDER (ASCEND|DESCEND|NO_ORDER) "NO_ORDER" LIMIT_TO CDATA #REQUIRED>
COLUMN_NAME:
SORT_ORDER:
サポートされている値は次のとおりです。
ASCEND:
DESCEND:
NO ORDER (デフォルト):
LIMIT_TO: 収集での行数の制限を指定します。
この要素は、プロパティの名前/値ペアを示します。
<!ELEMENT ItemProperty (#PCDATA)> <!ATTLIST ItemProperty NAME CDATA #REQUIRED ENCRYPTED (NA|FALSE|TRUE) “NA" >
NAME: 項目プロパティの名前
ENCRYPTED: プロパティ値が暗号化されるかどうかを示します。
属性に対して次の値が定義されます。
NA(デフォルト): 暗号化を適用できません。値の暗号化はエージェントによって試行されません。
FALSE: 暗号化を適用できます。エージェントによって値の暗号化が試行されます。
TRUE: 暗号化を適用できます。エージェントによって値が暗号化されています。
<TargetCollection TYPE="example2"> . . . <MetricColl NAME="metric1"> <ItemProperty NAME="prop1">foo</ItemProperty> <Condition COLUMN_NAME="value" CRITICAL="bar" OPERATOR="EQ"/> </MetricColl> </TargetCollection>
ItemPropertyのprop1は、ターゲット・タイプexample2に対してTargetMetadataのmetric1のUSERスコープで定義されたprop1プロパティの値を計算するために使用されます。
Filterは、Upload Managerを介してリポジトリに送信される前の収集済データに適用できる、フィルタ処理のメカニズムです。フィルタ処理が適用されていない場合、fetchletを介して収集されたすべてのデータは、リポジトリに送信されます。その結果、リポジトリはいくつかのメトリックをアップロードするとすぐにいっぱいになります。この問題を改善するには、アップロード前のデータにフィルタ処理のメカニズムを適用します。フィルタ条件はcollection xmlで指定されます。
<!ELEMENT Filter (#PCDATA)> <!ATTLIST Filter COLUMN_NAME CDATA #REQUIRED OPERATOR (EQ|LT|GT|LE|GE|NE|CONTAINS|MATCH) "EQ" AFTER_SEVERITY_CHECKING (TRUE|FALSE) "FALSE" >
注意:
TargetCollection用のFilter要素とTargetMetadata用のFilter要素は異なります。
COLUMN_NAME: フィルタ処理を行うメトリックの列の名前。
OPERATOR: 演算子を指定します。
EQ (デフォルト): 等しい
LT: より少ない
GT: より大きい
LE: 以下
GE: 以上
NE: 等しくない
CONTAINS: 含む
MATCH: 一致する
AFTER_SECURITY_CHECKING: TRUEの場合、フィルタは重大度チェックの後に適用されます。
TRUE | FALSE (デフォルト)
Condition要素は、重大度がいつトリガーされるかを定義します。
<!ELEMENT Condition (CategoryValue*, KeyColumn*, FixitJob? )> <!ATTLIST Condition CRITICAL CDATA #IMPLIED WARNING CDATA #IMPLIED OPERATOR (EQ | LT | GT | LE | GE | NE | CONTAINS | MATCH ) "GT" OCCURRENCES CDATA "1" NO_CLEAR_ON_NULL (TRUE | FALSE) "FALSE" MESSAGE CDATA #IMPLIED MESSAGE_NLSID CDATA #IMPLIED COLUMN_NAME CDATA #REQUIRED PUSH (TRUE | FALSE) "FALSE" GENERATE_INIT_CLEAR (TRUE | FALSE) "FALSE" ALERT_CONTEXT CDATA #IMPLIED CLEAR_MESSAGE CDATA #IMPLIED CLEAR_MESSAGE_NLSID CDATA #IMPLIED STATELESS_ALERT (TRUE | FALSE) "FALSE" >
これが表メトリックの場合、行および列の識別に使用する列およびキーが、メトリック列を使用して定義されます。
メトリック列に対してKEYONLY_THRESHOLDSをTRUEに設定した場合は、Condition要素にKeyColumn要素を含める必要があります。
CRITICAL: しきい値。しきい値の特別値NotDefinedによって、OPERATORで指定された操作の結果は確実に失敗します。
WARNING: しきい値。WARNINGにもNotDefinedを適用できます。
OPERATOR: 条件を評価するための演算子を指定します。
EQ: 等しい
LT: より少ない
GT(デフォルト): より大きい
LE: 以下
GE: 以上
NE: 等しくない
CONTAINS: 含む
MATCH: 一致する
OCCURRENCES: デフォルト値は1です。
NO_CLEAR_ON_NULL: メトリック列に対してNULL値が戻されたときに重大度のクリアリングを制御するために、この属性は使用されます。デフォルトはFALSEで、NULL値が前のアラート重大度をクリアする動作をします。この属性にTRUE値が設定されている場合、重大度をクリアせずに、重大度の評価においてNULL値はスキップされます。
MESSAGE: この属性は、イベントが発生すると送信されるメッセージを生成するための、メッセージ・テンプレートです。このメッセージには次のプレースホルダを含めることができます。
%value%: メトリックの値 (またはメトリックの列)
%target%: ターゲットの名前
%metric_id%: メトリックID
%column_name%: 値列およびキー列を含むことが可能な列の値になります
%warning_threshold%: 条件の警告のしきい値
%critical_threshold%: 条件のクリティカルのしきい値
%num_of_occur%: 発生数
MESSAGE_NLSID: メッセージのリソース・バンドルの文字列IDを指定します。
*COLUMN_NAME: 表メトリックでは、COLUMN_NAMEは確認対象の列を定義します。KeyColumnを使用して行が識別されます。
PUSH: この属性は、プッシュベースのアラート用に作成された条件を、収集済データ全体で評価される条件と区別するために使用します。PUSH="TRUE"の条件はエージェントによって評価されません。
GENERATE_INIT_CLEAR: この属性は、最初にクリアが生成されたときに重大度を生成しないというエージェントの動作を上書きするために使用できます。最初のクリアを生成する場合は、TRUEに設定します。
ALERT_CONTEXT: この属性は、関連するアラート・コンテキストを渡すために使用します。この新しい属性には、セミコロン(;)区切りの列名のリストを含めることができます。
CLEAR_MESSAGE: アラートがクリアされた場合の異なるメッセージを指定します。この属性が含まれていない場合は、アラートのクリア時にMESSAGE属性が使用されます。
CLEAR_MESSAGE_NLSID: クリア・メッセージのNLSIDを指定します。存在しない場合は、アラートのクリア時にMESSAGE_NLSIDが使用されます。
STATELESS_ALERT: デフォルトはfalseです。この属性がTRUEに設定されている場合、Enterprise Managerは条件に関連付けられた状態を保持しないよう指示されます。デフォルトはFalseです。
Condition要素には、オプションのCategoryValue要素(単数または複数)、KeyColumn要素(単数または複数)、およびオプションのFixitJob要素(単数)を含めることができます。
キー適用後の結果に複数の行が含まれている場合、生成されたイベント発生には、しきい値を超えた行ごとの内容/メッセージが含まれます。
正規表現にはMATCHが使用されます。
次に例を示します。
OPERATIOR="MATCH" CRITICAL=".*ORA.*ERR.*"
この文では、ORAとERRの両方を含むORA-ERR 345のような文字列が一致します。
CategoryValueサブタグは、CLASSおよびCATEGORYの2つの軸に沿ったConditionを分類するのに使用されます。たとえばCLASS=Fruits、CATEGORY=RedFruitsなどの条件の分類は、その他の根本原因分析に役立ちます。
<Condition COLUMN_NAME="alertSeverity" CRITICAL="NotDefined" WARNING="NotDefined" OPERATOR="LE" OCCURRENCES="1" MESSAGE="%alertConcatString%" NO_CLEAR_ON_NULL="TRUE" MESSAGE_NLSID="host_alertLog_alertSeverity_cond"/> <Condition COLUMN_NAME="State" CRITICAL="open" OPERATOR="EQ" MESSAGE="%Description%" ALERT_CONTEXT="In-contextLaunchURL" NO_CLEAR_ON_NULL="TRUE" />
これらは、Condition要素の例です。
<TargetCollection TYPE="examplec1" > <CollectionItem NAME = "Response"> <Schedule> <IntervalSchedule INTERVAL = "300" TIME_UNIT = "Sec"/> </Schedule> <Condition COLUMN_NAME="Status" CRITICAL="ok" OPERATOR="NE" OCCURRENCES="3" MESSAGE="%target% adaptor is inaccesible or is connected." MESSAGE_NLSID="network_response_status"/> </CollectionItem> </TargetCollection>
このサンプルは、Condition要素のコンテキストを示しています。
その他の例は、TargetCollectionの例を参照してください。
KeyColumn要素は、表のキー列を指定するために使用されます。表の行を識別します。KEYONLY_THRESHOLDS属性がMetric列に対して設定されている場合、この要素はCondition要素内に存在している必要があります。
<!ELEMENT KeyColumn (#PCDATA)> <!ATTLIST KeyColumn COLUMN_NAME CDATA #REQUIRED OPERATOR (EQ | LIKE) "EQ">
この要素は、アラートに応じて実行される処置を示します。
<!ELEMENT FixitJob (Property*) > <!ATTLIST FixitJob TYPE CDATA #IMPLIED >
<TargetCollection TYPE="examplec1" > <CollectionItem NAME = "FixitExample" UPLOAD_ON_FETCH="TRUE"> <Schedule> <IntervalSchedule INTERVAL="60" TIME_UNIT="Sec" /> </Schedule> <MetricColl NAME="metric1"/> <Condition COLUMN_NAME="col2" CRITICAL="0" OPERATOR="GT" OCCURRENCES="1"> <FixitJob TYPE="OSCommand"> <Property NAME="prop_env" SCOPE="ENV">EMDROOT</Property> <Property NAME="prop_loc" SCOPE="INSTANCE">FILE_LOC</Property> <Property NAME="COMMAND" SCOPE="GLOBAL">rm %prop_loc %</Property> </FixitJob> </Condition> </CollectionItem> </TargetCollection>
この例は、条件に応じてファイルを削除する単純なFixitJobを示しています。COMMANDプロパティは、メトリックのcol2の値によって条件がトリガーされた場合に実行されるコマンドを指定します。