5.7.1 プラグイン処理実行
- 機能
-
プラグインの任意の関数処理を実行します。
- 実行権限
-
マニュアル「JP1/Integrated Management 3 - Manager 導入・設計ガイド」の「付録E.1 インテリジェント統合管理基盤によるシステムの運用監視で必要な操作権限」を参照してください。
JP1/PFMと連携する際に,パラメーターmethodに「_performanceDataGet」を指定した場合,JP1/PFMのエージェントの資源グループに対して,実行ユーザーにAdminまたはOperator権限が与えられている必要があります。
- APIのバージョン
-
v1
- 形式
-
- リクエスト行
POST /application/component/apiVersion/actions httpVersions
- リクエストのメッセージボディー
{ "method": 関数名称, "sid": 処理対象IM管理ノードのSID, "args": 処理内容指定 }
- レスポンスのメッセージボディー
-
処理結果
- パラメーター
-
- method
-
実行するプラグインの関数の名称を指定します。「__」(アンダースコア二つ)から始まる関数名は指定しないでください。
標準で提供される関数を次に示します。
関数名
プラグイン
処理内容
_performanceDataGet
JP1/PFMプラグイン
性能情報取得
- sid
-
プラグイン処理の対象のIM管理ノードを,構成情報のSIDの形式で指定します。指定できるのはシステム構成ツリーで末端のIM管理ノードだけです。
SIDについては「7.1 SID」を参照してください。
- args
-
実行するプラグイン関数の引数args.methodArgsに渡す値を指定します。渡す情報が存在しない場合は,空オブジェクト({})を指定します。
指定する値のサイズは,他のパラメーターも含めて10MB未満となるようにしてください。
methodパラメーターに「_performanceDataGet」を指定した場合にargs.methodArgsに渡す値を次に示します。
項番
メンバー名
データ型
省略可否
説明
1
recordId
string
不可
取得するレコードIDを指定します。指定できる文字は大文字だけです。
レコードIDの接頭辞「PI_」,「PD_」,「PL_」は省略可能です。
- 接頭辞「PI_」の場合の指定例
-
PI_LOGD → LOGD
なお,接頭辞違いにより一致するレコードが存在する場合は,そちらを指定したものとみなされます。
2
fieldIds
string[]
可
取得するフィールドを配列で指定します。指定できる文字は大文字だけです。
特定のフィールドのパフォーマンスデータを取得したい場合に,フィールドID※を指定します。配列の形式で指定します。
- 注※
-
レコードID_PFM - Manager名の形式です。PD_PDIレコードのCPU%の場合は,「PD_PDI_PCT_PROCESSOR_TIME」となります。指定の無い場合は指定したレコードに属するすべてのフィールドを出力します。値が空の場合(fieldIds:[ ]を指定)は指定なしとみなされます。
なお,次のデータ(レコードの特定に必要なキーフィールド)は,フィールドIDを指定しなくても出力されます。キーフィールドについては,各エージェントのマニュアルを参照してください。
■履歴レポート(単一エージェント)
- "Date and Time"フィールド
- ODBC キーフィールド
3
startTime
string
不可
レポート開始日時を指定します。ISO8601拡張形式表現(YYYY-MM-DDThh:mm:ssZ)で指定してください。末尾「Z」はタイムゾーンUTCの場合です。UTC以外の場合は「+hh:mm」または「-hh:mm」の形式で指定します。
4
endTime
string
不可
レポート終了日時を指定します。
タイムゾーン:UTCの日時をISO 8601拡張形式表現(YYYY-MM-DDThh:mm:ssZ)で指定してください。末尾「Z」はタイムゾーンUTCの場合です。UTC以外の場合は「+hh:mm」または「-hh:mm」の形式で指定します。
5
interval
string
不可
レポート間隔を指定します。次の形式で指定します。大文字小文字は区別しません。
-
MIN:分単位
-
HOUR:時単位
-
WEEK:週単位
-
DAY:日単位
-
MONTH:月単位
-
YEAR:年単位
PDレコードに対して指定した場合は無視されます。
6
filter
object[]
可
取得するパフォーマンスデータをフィールドの値でフィルターしたい場合に指定します。複数のフィールドに対して指定が可能です。
複数指定した場合はすべての条件に合致(AND条件)するパフォーマンスデータを取得します。
値が空の場合(fieldIds:[ ]を指定)の場合は指定なしとみなされます。
7
limit
number
可
取得レコード最大数を指定します。指定できる値は,1〜4320です。
省略した場合は,4320が指定されたものと仮定されます。指定できる値以外を指定した場合はエラーとし,処理を中断します。
filterに指定するオブジェクトの形式を次の表に示します。
項番
メンバー名
データ型
省略可否
説明
1
fieldId
string
不可
フィルター対象とするフィールドのフィルターIDを指定します。大文字のみ指定可能です。
2
operator
string
可
取得するパフォーマンスデータのフィルター条件を指定します。次のいずれかの値(半角)を指定します。
-
=:フィールドの値とvalueが等しい
-
<>:フィールドの値とvalueが異なる
-
<:フィールドの値がvalueより小さい
-
<=:フィールドの値がvalueより小さいか等しい
-
>:フィールドの値がvalueより大きい
-
>=:フィールドの値がvalueより大きいか等しい
省略した場合は,"="が指定されたものとみなされます。
3
value
string
不可
指定可能な値は,各JP1/PFM - AgentまたはJP1/PFM - RMのマニュアルに記述されているフィールドの形式に合わせて指定します。次に示す設定範囲で指定します。
■文字
指定値をそのまま設定します。ただし,"*"はワイルドカードとして扱います。
■整数
フィールドのデータ型の指定可能範囲の値「-2,147,483,648〜2,147,483,647」の範囲を超えての指定はできません。
ただし,データ型ulong(unsigned long)については,JP1/PFM - Web Consoleのconfig.xmlの
condExpValueUlongExtensionパラメーター
の設定により,チェック範囲の拡張が可能です。config.xmlパラメーターについては,マニュアル「JP1/Performance Managementリファレンス」を参照してください。
■小数
フィールドのデータ型の指定可能範囲の値を指定します。
対象のフィールドの形式が「float, double」かつ,小数点以下が4桁以上の場合,4桁目を四捨五入し,3桁に丸めます。
対象のフィールドの形式が「utime」かつ,小数点以下が7桁以上の場合,7桁目を四捨五入し,6桁に丸めます。
フィールドの形式については,JP1/PFM - AgentまたはJP1/PFM - RMのマニュアルの各フィールドの説明個所を参照してください。
■日付
日時をISO 8601 拡張形式表現( "YYYY-MM-DDThh:mm:ssZ")で指定します。末尾「Z」はタイムゾーンUTCの場合です。UTC 以外の場合は「+hh:mm」または「-hh:mm」の形式で指定します。(時刻はHH:mm:ss固定)
なお,値に制御文字および「( ) [ ] < > = ''」の文字を指定した場合はエラーとなります。指定できるバイト数は,最大2,048バイトです。
- ステータスコード
-
リクエストに対するレスポンスとして返却されるステータスコードを,次の表に示します。
ステータスコード
メッセージ
説明
200
なし
プラグイン処理実行に成功しました。
400
KAJY22003-E
リクエストのパラメーター指定形式が不正です。
403
KAJY22004-E
指定されたIM管理ノードに対するアクセス権限がありません。
500
KAJY22005-E
プラグイン処理中にエラーが発生しました。
メッセージの詳細については,マニュアル「JP1/Integrated Management 3 - Manager メッセージ」を参照してください。
- 戻り値
-
項番
メンバー名
データ型
説明
1
−
Object
プラグイン処理の実行結果を格納するオブジェクトです。プラグイン関数の戻り値を設定します。
パラメーターmethodに「_performanceDataGet」を指定した場合の戻り値を次の表に示します。
項番
メンバー名
データ型
説明
1
component
string
コンポーネント名
「HITACHI/JP1/PFM/CONFINFO」固定です。
2
productId
string
パフォーマンスデータ取得対象エージェントのプロダクトID
3
dataModelVersion
string
パフォーマンスデータ取得対象エージェントのデータモデルバージョン
4
rc
number
リターンコード
-
0:データ取得に成功した
-
1:データ取得に成功したが,limitによって取得できなかったレコードが存在する
-
2:指定期間のデータが存在しない
5
fields
object[]
フィールド情報オブジェクトの配列
6
data
string[][]
パフォーマンスデータの[行データ][列データ]となる2次元配列。
列データの出力順は,フィールド情報の出力順を保証します。
なお,日時データは,タイムゾーン:UTCの日時を,ISO 8601拡張形式表現("YYYY-MM-DDThh:mm:ssZ")で返却します。UTC以外のタイムゾーンはサポート対象外です。また,出力データのdataTypeがFOLAT,DOUBLE,SECTIMEDOUBLEのどれかで,値が10の-3乗未満,10の7乗以上の場合,浮動小数表示形式(1.01E10など)で出力します。
フィールド情報オブジェクトの形式を次の表に示します。
項番
メンバー名
データ型
説明
1
id
string
フィールドID
2
displayName
string
フィールド表示名
3
dataType
string
フィールドのデータ種別
-
STR:文字列
-
SHORT:16ビット整数値
-
INT:32ビット整数値
-
LONG:64ビット整数値
-
FLOAT:32ビット単精度浮動小数点数
-
DOUBLE:64ビット倍精度浮動小数点数
-
SECTIMELONG:ある一時点※1からの時間(秒)を表すlong値
-
SECTIMEDOUBLE:ある一時点※1からの時間(秒)を表すdouble値
-
MILLTIME:ある一時点※1からの時間(ミリ秒)を表すlong値
-
DATE:年月日のみを表現するデータ(yyyy-MM-DDThh:mm:ssZ)
-
DATETIME:年月日,時刻(時分秒)のみを表現するデータ(yyyy-MM-DDThh:mm:ssZ)
-
TIME:時刻のみを表現するデータ(yyyy-MM-DDThh:mm:ssZ(出力情報として時刻のみ)
4
keyType
string
データ(レコード)の特定に必要なフィールドのキーの属性※2
-
DATE
全フィールド中必ず1つのフィールドで指定され,時間を特定するためのキーとなるフィールドであることを示す。
-
INST
全フィールド中,0または1つ以上のフィールドで指定され,データ(レコード)固有のキーとなるフィールドであることを示す。
-
NONE
キーとなるフィールドではないことを示す。
- 注※1
-
基準とする時点は,フィールドによって異なります。JP1/PFM - AgentまたはJP1/PFM - RMの各フィールド(utimeを形式とするフィールド)を参照してください。
- 注※2
-
データ(レコード)の特定に必要なキー属性の組み合わせを次の表に示します。
レポート種別
レコード種別
データ特定に必要な属性の組み合わせ
履歴レポート
(単一エージェント)
単一行レコード
-
DATE
複数行レコード
-
DATE
-
INST
-
- 使用例
-
次の条件で実行した場合の使用例を説明します。
-
使用機能:JP1/PFMプラグイン性能情報取得
-
JP1/PFMマネージャーホスト名:mgrhost1
-
JP1/PFMエージェントホスト名:agenthost1
-
処理対象IM管理ノード:JP1/Performance Management - Agent Option for Platform(Windows用)
-
取得監視項目:CPU使用率
-
出力期間始点:日本時間 2017年4月1日0時0分0秒
-
出力期間終点:日本時間 2017年4月1日1時0分0秒
- リクエスト:
POST /im/api/v1/actions HTTP/1.1 Authorization:Bearer xxxx Accept-Language: ja Content-Type: application/json Accept: application/json { "method": "_performanceDataGet", "sid": "_JP1PFM-M_MGRHOST1/_JP1PFM-AHOST_AGENTHOST1/_HOST_AGENTHOST1/_JP1PFM-A_TA1agenthost1", "args": { "recordId": "PI", "fieldIds": ["PI_PCT_TOTAL_PROCESSOR_TIME"], "startTime": "2017-04-01T00:00:00+09:00", "endTime": "2017-04-01T01:00:00+09:00", "interval":"HOUR" } }
- レスポンス:
{ "component": "/HITACHI/JP1/PFM/CONFINFO", "productId": "T", "dataModelVersion": "8.4", "rc": 0, "fields": [ { "id": "PI_DATETIME", "displayName": "Date and Time", "dataType": "DATETIME", "keyType": "DATE" }, { "id": "PI_PCT_TOTAL_PROCESSOR_TIME", "displayName": "CPU %", "dataType": "FLOAT", "keyType": "NONE" } ], "data": [ [ "2017-03-31T15:00:00Z", "14.04" ], [ "2017-03-31T16:00:00Z","13.55" ] ] }
-