EPAgent RESTful インターフェースの設定

EPAgent RESTful インターフェースの設定
apmdevops98jp
アプリケーションまたは環境から収集されるメトリックを送信するように EPAgent HTTP RESTful インターフェースを設定することができます。 HTTP RESTful インターフェースは、既存の EPAgent メトリック収集ソリューションと組み合わせて使用することができます。 ステートフル/ステートレス プラグイン、ネットワーク ソケット リスナ、ならびに GET とクエリ パラメータを使用する HTTP メソッドが含まれます。
EPAgent に対して REST インターフェースを有効にするには、IntroscopeEPAgent.properties ファイルの introscope.epagent.config.httpServerPort を設定します。 REST インターフェースは、HTTP POST 呼び出しを使用して、JSON 構文のメトリック データのペイロードにより、メトリック データを受信します。 さらに、EPAgent REST インターフェースは、GZIP 圧縮の JSON メトリック データを処理できます。
内容
2
タイプ
メトリック
{"type" : "<a supported metric type>",
"name"  : "<a unique metric name (including path but excluding host|process|agent)>",
"value" : "<the metric value>"}
}
有効なメトリック タイプ
メトリックの type 属性は、以下のいずれかである必要があります。
タイプ
説明
PerintervalCounter
値は間隔ごとのレート。間隔は変更可能です。
これらのメトリックは、値を合計することによって、一定期間で集約されます。 たとえば、15 秒間に10 のメソッド呼び出しがあり、次の15 秒間に 15 のメソッド呼び出しがあった場合、30 秒に集約すると、30 秒間に25 メソッド呼び出しになります。
1 時間ごとのマイル数や間隔ごとのエラー数などのメトリックに有益です。
新しい間隔ごとにゼロにリセットされます。
IntCounter
増加または減少可能な int 値。
キュー内のメッセージ数などの集計メトリックに有益です。
新しい値が報告されるまで値が変更されません。
IntAverage
IntAverage -- 徐々に平均される int 値。
秒単位の平均時間などの応答時間に有益です。
この値は、該当するすべてのメトリック(ループ内など)をレポートし、間隔の最後に計算を自動実行します。
IntRate
1 秒あたりのレート。
これらのメトリックは、値の平均値から一定期間で集約されます。
 
LongCounter
増加または減少可能な long 値。
IntCounter と同じことを非常に多くの数に対して実行します。
LongAverage
徐々に平均される long 値。
IntAverage と同じことを非常に多くの数に対して実行します。
StringEvent
定期的に文字列を生成するタイプを表しています。
このレコーダは、現在の値の概念を持ちません。 レポートされた順番にイベントをレポートするのみです。
スタートアップ コマンドラインやログ エントリなどの文字列値のレポートに有益です。
タイムスタンプ
連続して増加するタイプスタンプを生成するタイプ。
値は、1970 年 1 月 1 日 00 時 00 分 00 秒(UTC)以降のミリ秒数である UNIX 時間です。
 
Metric Feed
{"host"    : "<agent hostname>",     (Optional.  If set, it must match that in IntroscopeEPAgent.properties)
 "process" : "<agent process name>", (Optional.  If set, it must match that in IntroscopeEPAgent.properties)
 "agent"   : "<agent name>",         (Optional.  If set, it must match that in IntroscopeEPAgent.properties)
 "metrics" : [{"type" : "<type>", "name" : "<name>", "value" : "<value>"},
              {"type" : "<type>", "name" : "<name>", "value" : "<value>"},
              {"type" : "<type>", "name" : "<name>", "value" : "<value>"}
MetricFeedResponse
{"errorCode"  : (Only included when errors processing metric feed bundle occur)
"errorMessage" : "One or more metric specifications were invalid", (Only included when errors processing metric feed bundle occur)
"invalidCount" : 2,  (Only included when count > 0)
"validCount"   : 1
"metricErrors" : [
{"metricName" : "<metric name>", "metricErrorCode" : "<error code>", "metricErrorMsg" : "<error message>", "metricErrorIndex" : <the index of the erroneous metric in the submitted metric list>},
{"metricName" : "<metric name>", "metricErrorCode" : "<error code>", "metricErrorMsg" : "<error message>", "metricErrorIndex" : <the index of the erroneous metric in the submitted metric list>}
]  (metricErrors only included when there are errors processing one or more metrics)
}
 
URI
メトリック フィード URI
URL:
http://<EPA Host>:<EPA HTTP Port>/apm/metricFeed
メソッド:
POST
ヘッダ:
"Content-Type:application/json"
 
HTTP 成功応答コード:
200 (OK)
        {"validMetricCount" : <正常に送信されたメトリックの数>}
GZIP 圧縮
GZIP 圧縮を有効にするには、HTTP ペイロード全体に対して gzip を実行し、以下の HTTP ヘッダを含めます。
           
ヘッダ:
"Content-Encoding:gzip"
エラー コード
ペイロード エラー
コード
メッセージ
1,000
Invalid Request.  A valid request must have a Content-Type header.  The only supported value is application/json. 
A valid request must have a valid json payload containing a MetricFeed object. 
A valid request may have a Content-Encoding header.  Supported encodings are gzip, x-gzip, and identity. 
A valid request may specify a charset in the Content-Type header.  The specified charset must be supported by the
installed java implementation.
 
1001
Invalid JSON
入力が、JSON として解析可能ではありません。
1010
One or more metric specifications were invalid
応答には、無効な各メトリックについて、メトリックごとのエラーが含まれます。最初の 100 件に制限されます。
メトリックごとのエラー
コード
メッセージ
1011
Invalid metric name
Name = (MetricName) | (ResourceSegments “:” MetricName)
各項目の説明:
ResourceSegments = (ResourceName) | (ResourceSegments “|” ResourceName)
MetricName = 「|」または「:」以外の任意の Unicode 文字列(後続スペースなし)
ResourceName = 「|」または「:」以外の任意の Unicode 文字列
1012
Invalid metric type
有効なタイプは、LongAverage、IntAverage、LongCounter、IntCounter、IntRate、StringEvent、TimeStamp、PerIntervalCounter です。
1013
Invalid metric value
通常、値が指定されたタイプと一致しない場合に表示されます( IntCounter の値が「hello world」の場合など)。
1014
Metric clamp exceeded
IntroscopeEPAgent.properties で指定された設定済みメトリック クランプに到達したため、メトリックを作成できませんでした。
HTTP 応答コード
コード
メッセージ
200
Success
出力に、送信された有効なメトリックの数が含まれています。
400
Invalid request
上記のエラー コード 1000 および 1001 にマップされます。
409
Partial success
上記のエラー コード 1010にマップされ、送信されたエラーのあるメトリックごとに個別のメトリック エラーが示されます。
415
Invalid encoding
gzip または Identity 以外の Content-Encoding ヘッダがメトリック バンドルとともに送信されました。