Tuning Manager APIリファレンスガイド

[目次][索引][前へ][次へ]


4.6 パフォーマンスデータの取得

HTM - Agentsが収集した監視対象のパフォーマンスデータを取得する方法を示します。なお,パフォーマンスデータは,CSV形式で提供します。

HTTPリクエスト構文(URI)

GET  <scheme>://<host>:<port>/<application>/<version>/objects/<object-type>?<query-string>

補足
  • objectsドメインの下の"<object-type>"は"<Agent種別_レコード名>"の形式になっています。例えば"<object-type>"が"RAID_PD_RGC"の場合,HTM - Agent for RAIDのPD_RGCレコードの情報を取得できます。
  • <query-string>(クエリ文字列)には,<key>=<value>の形式で,キーとその値を入力します。<key>=<value>の区切りには&を使います。クエリ文字列の指定例を「クエリ文字列」に示します。また,クエリ文字列に指定可能なキーと値の型を「表4-14 パフォーマンスデータ取得時に指定可能なクエリ文字列のキーと値」に示します。なお,クエリ文字列はPercent-Encodingが必要です。

クエリ文字列

クエリ文字の指定例:

 
hostName=HOST
&agentInstanceName=AgentInstance
&startTime=2013-12-01T13:00Z
&endTime=2013-12-01T15:00Z
&fields=RECORD_TIME%1FLDEV_NUMBER%1FRANDOM_TOTAL_IO_RATE
&LDEV_NUMBER=00:00:01
&LDEV_NUMBER=00:00:02

表4-14 パフォーマンスデータ取得時に指定可能なクエリ文字列のキーと値

キー 指定要否
値域 概要
hostName ホスト名 HTM - Agentsのホスト名 必須
agentInstanceName HTM - Agentsのインスタンス名 HTM - Agentsのインスタンスを一意に識別できる値 必須
startTime※1 次の規則で指定します。(ISO8601の拡張表記)
例:startTime=2013-11-20T19:54Z
Value = <Year>-<Month>-<Day>T<Hour>:<Minute>Z※2
それぞれの指定できる値について,説明します。
  • Year :0000~9999
  • Month:01~12
  • Day:01~31
  • Hour:00-23
  • Minute:00-59
なお,存在しない日付を指定した場合は,エラーとなります。
取得するパフォーマンスデータの開始時刻(UTC) 任意
endTime※1 startTimeと同じ規則です。
例:endTime=2013-11-21T19:54Z
取得するパフォーマンスデータの終了時刻(UTC) 任意
fields 次の規則で指定します。
Value = 1*VCHAR / Value "%1F"Value;※2
なお,複数指定※3する場合,%1F※4区切りとします。
レコードのフィールド名
各レコードのフィールド名については,マニュアル「Hitachi Command Suite Tuning Manager - Agents」 のレコードについての説明を参照のこと。
任意
<レコードの各フィールド名> 次の規則で指定します。
Value= *VCHAR ; ※2,※5
なお,値を複数指定※3する場合,%1F※4区切りとします。
キーにはフィールド名,値にはキーに指定したフィールドに対する値 任意
granularity※6,※7 指定できる値を次に示します。
  • 未集約データを取得する場合:raw
  • 時間単位の要約データを取得する場合:hour
  • 日単位の要約データを取得する場合:day
  • 週単位の要約データを取得する場合:week※8
  • 月単位の要約データを取得する場合:month※8
  • 年単位の要約データを取得する場合:year※8
指定しない場合は,rawを指定したと見なします。
PDレコードタイプのレコードの場合,要約データは存在しないため,rawを指定するか,または値を指定しないでください。
なお,大文字小文字は区別されません。
取得する性能情報の時間粒度 任意
accessMode※6,※7 指定できる値を次に示します。
  • Timeline方式でパフォーマンスデータを取得する場合:t
  • Snapshot方式でパフォーマンスデータを取得する場合:s
指定しない場合は,tを指定したと見なします。
なお,大文字小文字は区別されません。

補足
tを指定した場合でも,Timeline方式でパフォーマンスデータを取得する条件を満たさないときには,Snapshot方式でパフォーマンスデータを取得します。※9
クエリを実行する際の取得方法
Hybrid Storeで運用しているエージェントについて,Tuning Manager APIでデータを取得する場合の取得方式には,次の2つの取得方式があります。データを取得する際に指定する取得対象リソース,および取得対象期間に応じて,適切な取得方法をaccessModeに指定することで,データの取得性能が向上します。

Timeline方式
監視対象のリソースの中から特定のリソースに限定して,ある一定期間のパフォーマンスデータを取得したい場合に指定してください。特定のリソースに着目して,グラフを描画したい場合などに有効な取得方式です。

Snapshot方式
監視対象のリソースのパフォーマンスデータを一括取得したい場合に指定してください。取得したデータをすべてデータウェアハウスに一括格納する場合などに有効な取得方式です。
任意

注※1
startTimeとendTimeを指定する場合,次の点に注意してください。
  • startTimeおよびendTimeは,両方指定するか,または両方指定しないかのどちらかにしてください。一方だけを指定することはできません。
    なお,startTimeおよびendTimeの両方とも指定がない場合は,最新日時のパフォーマンスデータ(1スナップショット分)だけが返されます。
  • startTimeはendTime以下の値にしてください。

注※2
ABNF表記です。

注※3
複数指定可能なキーについては,値を%1Fで区切るほかに,同じキー名を指定することで複数指定でき,意味も同じになります。 また,1リクエスト内にこれらの表記を混在した指定もできます。
複数指定の例を次に示します。
  • 値を%1Fで区切る場合:
    fields=WRITE_IO_COUNT%1FWRITE_XFER_RATE
    LDEV_NUMBER=00:00:01%1F00:00:02
  • 同じキー名を指定する場合:
    fields=WRITE_IO_COUNT&fields=WRITE_XFER_RATE
    LDEV_NUMBER=00:00:01&LDEV_NUMBER=00:00:02

注※4
%1Fは,ASCIIコードのUnit Separator(印字不可能文字)です。

注※5
小数点を含む型(doubleおよびfloat)を選択条件の値として指定する場合,WebサーバやWebクライアントのロケールに関係なく,小数点にはピリオド(".")を使って指定してください。小数点にコンマ(",")を使って指定するとエラーになります。

注※6
Hybrid Storeを使用して運用しているエージェントのパフォーマンスデータを取得している場合にだけ指定できます。

注※7
パフォーマンスデータの保持期間が過ぎてから削除されるタイミングが,Timeline方式のデータかSnapshot方式のデータかで異なるため,granularityおよびaccessModeの指定によって取得できるデータが異なることがあります。

注※8
監視対象ストレージシステムがVSP Gx00モデル,VSP Fx00モデル,VSP E990,HUS VM,VSP 5000シリーズ,VSP G1000,G1500,VSP F1500,およびVirtual Storage Platformシリーズの場合で,TCP/IP接続を使用して収集できるパフォーマンスデータを取得するときは,CSVデータのヘッダーに付与されるメタ情報だけが出力されます。

注※9
次のパフォーマンスデータについてはTimeline方式のデータが存在しないため,”t”を指定してもSnapshot方式でパフォーマンスデータを取得します。
  • リストアまたはコンバートによって復元した期間のパフォーマンスデータ(復元した後に通常稼働してから収集した期間のパフォーマンスデータを同じ条件で参照するときと比較して,応答時間が遅くなります)
  • TCP/IP接続を使用して収集できるパフォーマンスデータ( VSP Gx00モデル,VSP Fx00モデル , VSP E990 ,HUS VM,VSP 5000シリーズ, VSP G1000,G1500,VSP F1500 ,およびVirtual Storage Platformシリーズの場合)

リクエストの構造

リクエストボディは,空でなければいけません。

レスポンスの構造

レスポンスボディの構造を次に示します。

 
FILE = NAME <RecordDelimiter> TYPE <RecordDelimiter> DATA_LINES <RecordDelimiter> <RecordDelimiter> ;
NAME = <SelectedFieldName> | NAME <FieldDelimiter> NAME ;
TYPE = <DataType> | TYPE <FieldDelimiter> TYPE ;
DATA_LINES = DATA | DATA_LINES <RecordDelimiter> DATA_LINES ;
DATA = <SelectedFieldValue> | DATA <FieldDelimiter> DATA ;

レスポンスボディにはCSV形式のパフォーマンスデータが入ります。レスポンスボディの変数について次の表に示します。

表4-15 レスポンスボディの変数

変数名 詳細
<SelectedFieldName_m> 指定フィールドの名称。※1
<FieldDelimiter> フィールド区切り。
RFC4180に従いコンマを指定します。(0x09)
<RecordDelimiter> データ行の区切り。
データの末尾には,データの最後であることを示すために,もう1つRecordDelimiterが入ります。
RFC4180に従いCRLF(0x0D 0x0A)を使用します。
<DataType_m> 指定フィールドのデータ型。※1
<SelectedFieldValue_lm> 取得情報選択機能で選択した指定フィールドの値。※1,※2,※3,※4

注※1
mは選択したフィールド番号です。

注※2
lは選択結果の行番号です。

注※3
小数点を含む型(doubleおよびfloat)の値を取得した場合は,WebサーバやWebクライアントのロケールに関係なく,小数点はピリオド(".")になります。

注※4
Hybrid Storeで運用している場合,データモデルがバージョンアップして既存のレコードに新しいフィールドが追加されたとき,追加されたフィールドには空文字(長さが0バイトの文字列)が出力されます。

パフォーマンスデータ取得で発生するエラー時のレスポンスについて次の表に示します。

表4-16 パフォーマンスデータ取得時のエラーレスポンス

エラー発生条件 HTTPレスポンス
ステータスコード ヘッダー Bodyに含まれるエラーID
Name Value
指定したホストのTuning Manager Agent REST APIコンポーネントにアクセスできましたが,指定したインスタンスのAgent種別の情報が取得できません。 404 追加されるヘッダーはありません。 KATR12054-E
指定したインスタンスをTuning Manager Serverが認識していません。 404 KATR12005-E
指定したインスタンスがエージェントホスト上で削除されています。 404 KATR11010-E
指定したエージェントインスタンスが稼働するホストに対するリクエストが集中しています。 503 Retry-After 60 KATR12001-W
存在しない,またはサポートしていないレコード種別を指定しました。 404 追加されるヘッダーはありません。 KATR11012-E
リクエスト不正です。 400 次のどれかです。
  • KATR11008-E
  • KATR11014-E
  • KATR11016-E
  • KATR11018-E
  • KATR11020-E
  • KATR12006-E
  • KATR12009-E
HTM - AgentsでTuning Manager APIを使うための設定が有効になっていません。 500 KATR12004-E
HTM - Agentsのバージョンが,実行しているAPIバージョンに対応していません。 500 KATR12003-E
Tuning Manager ServerとHTM - Agents間の通信エラー(接続拒否)が発生しました。 500 KATR12007-E
Tuning Manager ServerとHTM - Agents間の通信エラー(接続不可)が発生しました。 500 KATR12008-E
HTM - Agentsから,403以外のステータスコード,かつtext/csvまたはapplication/json以外のメディアタイプが返されました。 500 KATR12048-E
内部矛盾(Tuning Manager Server)が発生しました。 500 次のどれかです。
  • KATR00101-E
  • KATR00103-E
  • KATR12002-E
内部矛盾(HTM - Agents)が発生しました。 500 KATR11022-E
Agentインスタンスの初期化処理中です。 503 KATR11024-E
レスポンス返却中の内部エラーが発生しました。 レスポンスの返却を中止します。

実行例

実行例1(HTM - Agent for RAIDのPDレコードの情報を取得する場合)

curlコマンドを使用したリクエストメッセージ:

curl -v -u system:manager -X GET https://server_1:22016/TuningManager/v1/objects/RAID_PD?hostName=agent_1%26agentInstanceName=VSPG1000_instance

リクエストに対する実行結果/

リクエストヘッダー:

GET /TuningManager/v1/objects/RAID_PD?hostName=agent_1%26agentInstanceName=VSPG1000_instance HTTP/1.1
Authorization: Basic c3lzdGVtOm1hbmFnZXI=
User-Agent: curl/7.19.7 (i386-redhat-linux-gnu) libcurl/7.19.7
NSS/3.12.9.0 zlib/1.2.3 libidn/1.18 libssh2/1.2.2
Host: server_1:22016
Accept: */*

レスポンスヘッダー:

HTTP/1.1 200 OK
Date: Fri, 20 Jun 2014 13:09:05 GMT
Server: Cosminexus HTTP Server
Last-Modified: Fri, 20 Jun 2014 13:00:07 GMT
Keep-Alive: timeout=3, max=100
Cache-Control: no-cache
Transfer-Encoding: chunked
Content-Type: text/csv;charset=utf-8
X-Pad: avoid browser bug

レスポンスボディ:

DKC_SERIAL_NUMBER,VENDOR_ID,DKC_NAME,CACHE_MEMORY_CAPACITY,CACHE_MEMORY_INSTALLED_SIZE,MONITORED_SLPR_NUMBER,COLLECTION_TIME,INTERVAL,INPUT_RECORD_TYPE,RECORD_TIME
string(32),string(64),string(64),ulong,ulong,string(8),time_t,ulong,string(8),time_t
"10051","HITACHI","VSP G1000",469504,0,"",2014-06-20 13:00:07,3600,"PD",2014-06-20 13:00:07

実行例2(HTM - Agent for RAIDのPI_LDSレコードの情報を取得する場合)

curlコマンドを使用したリクエストメッセージ:

curl -v -u system:manager -X GET https://server_1:22016/TuningManager/v1/objects/RAID_PI_LDS?hostName=agent_1%26agentInstanceName=VSPG1000_instance

リクエストに対する実行結果/

リクエストヘッダー:

GET /TuningManager/v1/objects/RAID_PI_LDS?hostName=agent_1%26agentInstanceName=VSPG1000_instance HTTP/1.1
Authorization: Basic c3lzdGVtOm1hbmFnZXI=
User-Agent: curl/7.19.7 (i386-redhat-linux-gnu) libcurl/7.19.7
NSS/3.12.9.0 zlib/1.2.3 libidn/1.18 libssh2/1.2.2
Host: server_1:22016
Accept: */*

レスポンスヘッダー:

HTTP/1.1 200 OK
Date: Fri, 20 Jun 2014 13:20:15 GMT
Server: Cosminexus HTTP Server
Last-Modified: Fri, 20 Jun 2014 13:20:01 GMT
Keep-Alive: timeout=3, max=100
Cache-Control: no-cache
Transfer-Encoding: chunked
Content-Type: text/csv;charset=utf-8
X-Pad: avoid browser bug

レスポンスボディ:

LDEV_NUMBER,READ_IO_COUNT,READ_IO_RATE,READ_HIT_IO_COUNT,READ_HIT_RATE,WRITE_IO_COUNT,WRITE_IO_RATE,WRITE_HIT_IO_COUNT,WRITE_HIT_RATE,READ_MBYTES,READ_XFER_RATE,WRITE_MBYTES,WRITE_XFER_RATE,READ_TOTAL_RESPONSE,READ_RESPONSE_RATE,WRITE_TOTAL_RESPONSE,WRITE_RESPONSE_RATE,TOTAL_RESPONSE_RATE,RANDOM_TOTAL_IO_RATE,SEQUENTIAL_TOTAL_IO_RATE,RANDOM_TOTAL_XFER_RATE,SEQUENTIAL_TOTAL_XFER_RATE,VIRTUAL_SERIAL_NUMBER,VIRTUAL_DKC_NAME,VIRTUAL_LDEV_NUMBER,INTERVAL,INPUT_RECORD_TYPE,RECORD_TIME
string(16),ulong,float,ulong,float,ulong,float,ulong,float,ulong,float,ulong,float,double,float,double,float,float,float,float,float,float,string(32),string(32),string(16),ulong,string(8),time_t
"00:00:00",0,0.0000000E+000,0,0.0000000E+000,0,0.0000000E+000,0,0.0000000E+000,0,0.0000000E+000,0,0.0000000E+000,0.000000000000000E+000,0.0000000E+000,0.000000000000000E+000,0.0000000E+000,0.0000000E+000,0.0000000E+000,0.0000000E+000,0.0000000E+000,0.0000000E+000,"","","",301,"LDS",2014-06-20 13:20:01
"00:00:01",0,0.0000000E+000,0,0.0000000E+000,0,0.0000000E+000,0,0.0000000E+000,0,0.0000000E+000,0,0.0000000E+000,0.000000000000000E+000,0.0000000E+000,0.000000000000000E+000,0.0000000E+000,0.0000000E+000,0.0000000E+000,0.0000000E+000,0.0000000E+000,0.0000000E+000,"","","",301,"LDS",2014-06-20 13:20:01
"00:00:02",0,0.0000000E+000,0,0.0000000E+000,0,0.0000000E+000,0,0.0000000E+000,0,0.0000000E+000,0,0.0000000E+000,0.000000000000000E+000,0.0000000E+000,0.000000000000000E+000,0.0000000E+000,0.0000000E+000,0.0000000E+000,0.0000000E+000,0.0000000E+000,0.0000000E+000,"","","",301,"LDS",2014-06-20 13:20:01
     :
     :
"00:AF:00",0,0.0000000E+000,0,0.0000000E+000,0,0.0000000E+000,0,0.0000000E+000,0,0.0000000E+000,0,0.0000000E+000,0.000000000000000E+000,0.0000000E+000,0.000000000000000E+000,0.0000000E+000,0.0000000E+000,0.0000000E+000,0.0000000E+000,0.0000000E+000,0.0000000E+000,"","","",301,"LDS2",2014-06-20 13:20:01

実行例3(HTM - Agent for RAIDのPD_PTCレコードの情報取得)

curlコマンドを使用したリクエストメッセージ:

curl -v -u system:manager -X GET https://server_1:22016/TuningManager/v1/objects/RAID_PD_PTC?hostName=agent_1%26agentInstanceName=VSPG1000_instance

リクエストに対する実行結果/

リクエストヘッダー:

GET /TuningManager/v1/objects/RAID_PD_PTC?hostName=agent_1%26agentInstanceName=VSPG1000_instance HTTP/1.1
Authorization: Basic c3lzdGVtOm1hbmFnZXI=
User-Agent: curl/7.19.7 (i386-redhat-linux-gnu) libcurl/7.19.7
NSS/3.12.9.0 zlib/1.2.3 libidn/1.18 libssh2/1.2.2
Host: server_1:22016
Accept: */*

レスポンスヘッダー:

HTTP/1.1 200 OK
Date: Fri, 20 Jun 2014 12:36:36 GMT
Server: Cosminexus HTTP Server
Last-Modified: Fri, 20 Jun 2014 12:00:07 GMT
Keep-Alive: timeout=3, max=100
Cache-Control: no-cache
Transfer-Encoding: chunked
Content-Type: text/csv;charset=utf-8
X-Pad: avoid browser bug

レスポンスボディ:

PORT_NUMBER,PORT_NAME,CHA_NAME,PORT_WWN,PORT_TYPE,PORT_ROLE,PORT_SPEED,SLPR_NUMBER,COLLECTION_TIME,INTERVAL,INPUT_RECORD_TYPE,RECORD_TIME
string(8),string(64),string(16),string(32),string(8),string(16),string(8),string(8),time_t,ulong,string(8),time_t
"0","CL1-A","CHA-1EU","50060E8007274300","FIBRE","Target","Auto","",2014-06-20 12:00:07,3600,"PTC",2014-06-20 12:00:07
"1","CL1-B","CHA-1EU","50060E8007274301","FIBRE","Target","Auto","",2014-06-20 12:00:07,3600,"PTC",2014-06-20 12:00:07
"2","CL1-C","CHA-1EL","50060E8007274302","FIBRE","External","8Gbps","",2014-06-20 12:00:07,3600,"PTC",2014-06-20 12:00:07
"3","CL1-D","CHA-1EL","50060E8007274303","FIBRE","Target","Auto","",2014-06-20 12:00:07,3600,"PTC",2014-06-20 12:00:07
   :
   :
"116","CL8-E","CHA-2RU","","FICON","Target","","",2014-06-20 12:00:07,3600,"PTC",2014-06-20 12:00:07
"117","CL8-F","CHA-2RU","","FICON","Target","","",2014-06-20 12:00:07,3600,"PTC",2014-06-20 12:00:07
"118","CL8-G","CHA-2RL","50060E8007274376","FCoE","Target","10Gbps","",2014-06-20 12:00:07,3600,"PTC",2014-06-20 12:00:07
"119","CL8-H","CHA-2RL","50060E8007274377","FCoE","Target","10Gbps","",2014-06-20 12:00:07,3600,"PTC",2014-06-20 12:00:07

実行例4(HTM - Agent for RAIDのPI_PRCSレコードの情報をstartTimeおよびendTimeを指定して取得する場合)

curlコマンドを使用したリクエストメッセージ:

curl -v -u system:manager -X GET https://server_1:22016/TuningManager/v1/objects/RAID_PI_PRCS?hostName=agent_1%26agentInstanceName=VSPG1000_instance%26startTime=2014-06-19T01:00Z%26endTime=2014-06-19T02:30Z

リクエストに対する実行結果/

リクエストヘッダー:

GET /TuningManager/v1/objects/RAID_PI_PRCS?hostName=agent_1%26agentInstanceName=VSPG1000_instance%26startTime=2014-06-19T01:00Z%26endTime=2014-06-19T02:30Z HTTP/1.1
Authorization: Basic c3lzdGVtOm1hbmFnZXI=
User-Agent: curl/7.19.7 (i386-redhat-linux-gnu) libcurl/7.19.7
NSS/3.12.9.0 zlib/1.2.3 libidn/1.18 libssh2/1.2.2
Host: server_1:22016
Accept: */*

レスポンスヘッダー:

HTTP/1.1 200 OK
Date: Fri, 20 Jun 2014 13:10:42 GMT
Server: Cosminexus HTTP Server
Last-Modified: Thu, 19 Jun 2014 02:29:01 GMT
Keep-Alive: timeout=3, max=100
Cache-Control: private, max-age=864000
Transfer-Encoding: chunked
Content-Type: text/csv;charset=utf-8

レスポンスボディ:

PROCESSOR_ID,ADAPTOR_ID,CONTROLLER,PROCESSOR_TYPE,PROCESSOR_BUSY_RATE,MAX_PROCESSOR_BUSY_RATE,MAX_BUFFER_LENGTH,BUFFER_IO_COUNT,MAX_BUFFER_IO_COUNT,BUFFER_IO_RATE,MAX_BUFFER_IO_RATE,INTERVAL,INPUT_RECORD_TYPE,RECORD_TIME
string(16),string(16),string(8),string(8),float,float,float,float,float,float,float,ulong,string(8),time_t
"00","MPB0","","MP",8.8735523E-001,8.8735523E-001,6.5535002E+004,1.0000000E+000,1.0000000E+000,1.5259022E-003,1.5259022E-003,54,"PRCS",2014-06-19 01:14:01
"01","MPB0","","MP",1.2086518E+000,1.2086518E+000,6.5535002E+004,1.0000000E+000,1.0000000E+000,1.5259022E-003,1.5259022E-003,54,"PRCS",2014-06-19 01:14:01
"02","MPB0","","MP",9.0272198E-001,9.0272198E-001,6.5535002E+004,1.0000000E+000,1.0000000E+000,1.5259022E-003,1.5259022E-003,54,"PRCS",2014-06-19 01:14:01
     :
     :
"2E","MPB5","","MP",3.0648675E+000,3.0648675E+000,6.5535002E+004,1.0000000E+000,1.0000000E+000,1.5259022E-003,1.5259022E-003,61,"PRCS",2014-06-19 02:29:01
"2F","MPB5","","MP",3.1383426E+000,3.1383426E+000,6.5535002E+004,1.0000000E+000,1.0000000E+000,1.5259022E-003,1.5259022E-003,61,"PRCS",2014-06-19 02:29:01
"_Total","MPB5","","MPB",3.0528414E+000,3.0528414E+000,6.5535002E+004,1.0000000E+000,1.0000000E+000,1.5259022E-003,1.5259022E-003,61,"PRCS",2014-06-19 02:29:01

[目次] [前へ] [次へ]


[マニュアル発行元]

All Rights Reserved. Copyright© 2014, 2020, Hitachi, Ltd.