管理インターフェイス¶
コンテンツ :
- この文書の Apiary 版
- GET
/v1/version
- 統計情報
- グループ化ルール
- サブスクリプション
- ログ
- メトリック
- 利用可能なエイリアス
この文書のApiary版¶
この API 仕様は、Apiary でも確認できます。
GET /v1/version
¶
最後の Git コミットを含む実行中のソフトウェアのバージョンを取得します :
GET http://<cygnus_host>:<management_port>/v1/version
レスポンス :
{
"success": "true",
"version": "0.12.0_SNAPSHOT.52399574ea8503aa8038ad14850380d77529b550"
}
統計情報¶
GET /v1/stats
¶
設定された Flume コンポーネントに関する統計情報を取得します。統計情報をチャネルから収集するには、com.telefonica.iot.cygnus.channels.CygnusMemoryChannel
タイプまたは com.telefonica.iot.cygnus.channels.CygnusFileChannel
タイプでなければならないことに注意することが重要です。
ソースに関して、それは以下を返します :
- 設定で書かれたソースの名前
- ソースのセットアップ時間
- ソースの状態。開始または停止
- 処理されたイベントの数、ソースによって受信され、チャネルに入れられるようになったイベントの数
- チャネルに入れられた最終的なイベントの数
チャネルに関しては、以下を返します :
- 設定で書かれたチャンネルの名前
- チャネルのセットアップ時間
- チャネルのステータス。開始または停止
- チャネルに現在あるイベントの数
- 成功した puts の数
- 失敗した puts の数
- 成功した takes の数
- 失敗した takes の数
シンクに関して、それは以下を返します :
- 設定で書き込まれたシンクの名前
- シンクのセットアップ時間
- シンクの状態。開始または停止
- 処理されたイベントの数。チャネルから取得され、永続性のために試行されたイベントの数
- 最後に保持されたイベントの数
GET http://<cygnus_host>:<management_port>/v1/stats
レスポンス :
{
"stats": {
"channels": [
{
"name": "mysql-channel",
"num_events": 0,
"num_puts_failed": 0,
"num_puts_ok": 11858,
"num_takes_failed": 1,
"num_takes_ok": 11858,
"setup_time": "2016-02-05T10:34:25.80Z",
"status": "START"
}
],
"sinks": [
{
"name": "mysql-sink",
"num_persisted_events": 11800,
"num_processed_events": 11858,
"setup_time": "2016-02-05T10:34:24.978Z",
"status": "START"
}
],
"sources": [
{
"name": "http-source",
"num_processed_events": 11858,
"num_received_events": 11858,
"setup_time": "2016-02-05T10:34:24.921Z",
"status": "START"
}
]
},
"success": "true"
}
PUT /v1/stats
¶
設定されたFlumeコンポーネントに関する統計をリセットします。統計情報をチャネルからリセットするには、これらがcom.telefonica.iot.cygnus.channels.CygnusMemoryChannel
タイプ または com.telefonica.iot.cygnus.channels.CygnusFileChannel
タイプでなければならないことに注意することが重要です。
PUT http://<cygnus_host>:<management_port>/v1/stats
レスポンス :
{"success":"true"}
グループ化ルール¶
GET /v1/groupingrules
¶
設定済みのグループ化ルールを取得します。
GET http://<cygnus_host>:<management_port>/v1/groupingrules
レスポンス :
{
"grouping_rules": [
{
"destination": "allcars",
"fields": [
"entityType"
],
"fiware_service_path": "cars",
"id": 1,
"regex": "Car"
},
{
"destination": "allrooms",
"fields": [
"entityType"
],
"fiware_service_path": "rooms",
"id": 2,
"regex": "Room"
}
],
"success": "true"
}
POST /v1/groupingrules
¶
ペイロードに Json として渡された新しいルールをグループ化ルールに追加します。
POST http://<cygnus_host>:<management_port>/v1/groupingrules
{
"regex": "Room",
"destination": "allrooms",
"fiware_service_path": "rooms",
"fields": ["entityType"]
}
レスポンス :
{"success":"true"}
id
フィールドが投稿された Json の一部として渡されないことを確認してください。これは、管理インターフェースが適切な ID 挿入を自動的に処理するためです。
PUT /v1/groupingrules
¶
ID をクエリ・パラメータとして指定し、ルールをペイロードの Json として渡して、既存のグループ化ルールを更新します。
PUT http://<cygnus_host>:<management_port>/v1/groupingrules=id=2
{
"regex": "Room",
"destination": "otherrooms",
"fiware_service_path": "rooms",
"fields": ["entityType"]
}
レスポンス :
{"success":"true"}
DELETE /v1/groupingrules
¶
グループ ID をクエリ・パラメータとして指定して、グループ化ルールを削除します。
DELETE http://<cygnus_host>:<management_port>/v1/groupingrules?id=2
レスポンス :
{"success":"true"}
Subscriptions¶
POST /v1/subscriptions
¶
NGSI Version 1
¶
NGSI のバージョン(この場合では ngsi_version=1
)を指定して、Orion への新しいサブスクリプションを作成します。ペイロードに渡された Json には、Json サブスクリプション自体と Orion のエンドポイントの詳細が含まれています。
POST "http://<cygnus_host>:<management_port>/v1/subscriptions&ngsi_version=1"
{
"subscription":{
"entities": [
{
"type": "Room",
"isPattern": "false",
"id": "Room1"
}
],
"attributes": [],
"reference": "http://<reference_host>:<reference_port>",
"duration": "P1M",
"notifyConditions": [
{
"type": "ONCHANGE",
"condValues": []
}
],
"throttling": "PT5S"
},
"endpoint":{
"host":"<endpoint_host>",
"port":"<endpoint_port>",
"ssl":"false",
"xauthtoken":"234123123123123"
}
}
レスポンス :
有効なサブスクリプション :
{"success":"true","result":{"subscribeResponse":{"duration":"P1M","throttling":"PT5S","subscriptionId":"56f9081c3c6fb7e9d2a912a0"}}}
無効なサブスクリプション。この場合は未知のフィールド :
{"success":"true","result":{"subscribeError":{"errorCode":{"code":"400","reasonPhrase":"Bad Request","details":"JSON Parse Error: unknown field: \/extraField"}}}}
無効な JSON。空フィールドと欠落フィールド :
{"success":"false","error":"Invalid subscription, field 'duration' is empty"}
{"success":"false","error":"Invalid subscription, field 'notifyConditions' is missing"}
ペイロードで渡された Json が有効かどうか(構文的にも意味的にも)、Cygnus のチェックを観察してください。
NGSI Version 2
¶
NGSI のバージョン(この場合では、ngsi_version=2
)を指定して、Orion への新しいサブスクリプションを作成します。ペイロードに渡された Json には、Json サブスクリプション自体と Orion のエンドポイントの詳細が含まれています。
POST "http://<cygnus_host>:<management_port>/v1/subscriptions&ngsi_version=2"
{
"subscription":{
"description": "One subscription to rule them all",
"subject": {
"entities": [
{
"idPattern": ".*",
"type": "Room"
}
],
"condition": {
"attrs": [
"temperature"
],
"expression": {
"q": "temperature>40"
}
}
},
"notification": {
"http": {
"url": "http://localhost:1234"
},
"attrs": [
"temperature",
"humidity"
]
},
"expires": "2016-05-05T14:00:00.00Z",
"throttling": 5
},
"endpoint":{
"host":"<endpoint_host>",
"port":"<endpoint_port>",
"ssl":"false",
"xauthtoken":"QsENv67AJj7blC2qJ0YvfSc5hMWYrs"
}
}
レスポンス :
有効なサブスクリプション :
{"success":"true","result":{"SubscriptionID" : "572ae23d20e1387832ed98d0"}}
無効なサブスクリプション。この場合は未知のフィールド :
{"success":"false","error":"Parse error, malformed Json. Check it for errors"}
無効な JSON。たとえば、欠落しているフィールドまたは無効なエンドポイント :
{"success":"false","error":"Invalid subscription, field 'xxxxxx' is missing"}
{"success":"false","error":"Missing endpoint"}
ペイロードで渡された Json が有効かどうか(構文的にも意味的にも)、Cygnus のチェックを観察してください。
DELETE /v1/subscriptions
¶
ID と NGSI バージョンを指定して Orion からサブスクリプションを削除します。ペイロードに渡された Json には、Orion のエンドポイントの詳細が含まれています。
DELETE "http://<cygnus_host>:<management_port>/v1/subscriptions?subscription_id=<subscriptionId>&ngsi_version=<ngsiVersion>"
レスポンス :
v1 と v2 で削除されたサブスクリプション :
{"success":"true","result":"Subscription deleted"}
間違ったパラメータ :
{"success":"false","error":"Parse error, wrong parameter (subscription_id). Check it for errors"}
{"success":"false","error":"Parse error, wrong parameter (ngsi_version). Check it for errors"}
間違ったサブスクリプション ID :
[NGSI v1]
{"success":"false","result":{{"subscriptionId":"571872a9c0585c7451571be4","statusCode":{"code":"404","reasonPhrase":"No context element found","details":"subscriptionId: \/571872a9c0585c7451571be4\/"}}}}
[NGSI v2]
{"success":"false","result":{"description":"The requested subscription has not been found. Check id","error":"NotFound"}}
空または不足している認証トークン :
{"success":"false","error":"Empty Auth-Token. Required for DELETE subscriptions"}
{"success":"false","error":"Missing Auth-Token. Required for DELETE subscriptions"}
欠落しているフィールド(空または指定なし) :
{"success":"false","error":"Missing endpoint"}
{"success":"false","error":"Invalid endpoint, field 'host' is missing"}
{"success":"false","error":"Invalid endpoint, field 'ssl is empty"}
GET /v1/subscriptions
¶
GET subscription by ID¶
Orion から既存のサブスクリプションを取得します。これは、NGSI バージョンとサブスクリプション ID がクエリ・パラメータとして指定されています。
有効なNGSIバージョンは1と2(このメソッドは、バージョン 1
で実装されていないため、ngsi_version=2
でのみ動作します)。
GET "http://<cygnus_host>:<management_port>/v1/subscriptions?ngsi_version=<ngsiVersion>&subscription_id=<subscriptionId>" -d '{"host":"<host>", "port":"<port>", "ssl":"false", "xauthtoken":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}'
レスポンス :
正当な現在のサブスクリプション ID と正しい NGSI バージョン :
{"success":"true","result" : {{"notification":{"lastNotification":"2015-07-28T22:24:33.00Z","timesSent":8122767998226748692,"callback":"http:\/\/192.168.64.111\/ngsi23\/notifyContext","attributes":[]},"expires":"2016-09-25T08:17:47.00Z","subject":{"condition":{"expression":{"q":"","geometry":"","coords":"","georel":""},"attributes":["TimeInstant"]},"entities":[{"id":"","type":"sevilla:fountain","idPattern":"patternId"}]},"id":"54325022q460a3873d30oe95","status":"active"}}}
正しい NGSI バージョンの有効な、存在しないサブスクリプション ID :
{"success":"false","result":{"description":"","error":"subscriptionId does not correspond to an active subscription"}}
無効な NGSI バージョン :
{"success":"false","error":"Parse error, invalid parameter (ngsi_version): Must be 1 or 2. Check it for errors"}
有効であるが実装されていない NGSI バージョン(ngsi_version=1
を送信) :
{"success":"false","error":"GET /v1/subscriptions not implemented"}
欠落または空のパラメータ :
{"success":"false","error":"Parse error, missing parameter (subscription_id). Check it for errors"}
{"success":"false","error":"Parse error, empty parameter (ngsi_version). Check it for errors"}
GET all subscriptions¶
Orion からの既存のすべてのサブスクリプションを取得します。NGSI バージョンをクエリ・パラメータとして指定します。
有効な NGSI バージョンは1と2。このメソッドは、バージョン 1
で実装されていないため、ngsi_version=2
でのみ動作します。
GET "http://<cygnus_host>:<management_port>/v1/subscriptions?ngsi_version=<ngsiVersion>" -d '{"host":"<host>", "port":"<port>", "ssl":"false", "xauthtoken":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}'
レスポンス :
有効なサブスクリプション ID と受け入れられた NGSI バージョンが使用されている場合 :
{"success":"true","result" : {{"result":[{"notification":{"lastNotification":"2015-07-28T22:23:30.00Z","timesSent":7126568376946155044,"http":{"url":"http:\/\/192.168.83.112:1026\/ngsi23\/notifyContext"},"attrs":[]},"expires":"2016-09-13T09:27:15.00Z","subject":{"condition":{"attrs":["temperature"]},"entities":[{"id":"","type":"city:lights","idPattern":"City:LUCES:"}]},"id":"54228e7318sddf233as323sd","status":"active"},{"notification":{"lastNotification":"2015-07-28T22:24:33.00Z","timesSent":8122767998226748692,"http":{"url":"http:\/\/192.168.83.112:1026\/ngsi21\/notifyContext"},"attrs":[]},"expires":"2016-09-25T08:17:47.00Z","subject":{"condition":{"attrs":["noise"]},"entities":[{"id":"","type":"city:fountain","idPattern":"City:LUCES"}]}}]}}}
無効な NGSI バージョンが使用されています :
{"success":"false","error":"Parse error, invalid parameter (ngsi_version): Must be 1 or 2. Check it for errors"}
有効であるが実装されていない NGSI バージョン(ngsi_version=1
を送信) :
{"success":"false","error":"GET /v1/subscriptions not implemented for NGSI version 1"}
欠落または空のパラメータ :
{"success":"false","error":"Invalid endpoint, field 'ssl' is missing"}
Logs¶
GET /v1/admin/log/appenders
¶
GET appender by name¶
名前を指定して、実行中のロガーから既存のアペンダを取得します。実行中の Cygnus または log4j.properties
ファイルから取得できます。transient=true
でパラメータ化されている(またはこのパラメータを省略されている)場合、アペンダは Cygnus から取得されます。transient=false
の場合、ファイルから取得されます。
GET "http://<cygnus_host>:<management_port>/v1/admin/log/appenders?name=<appender_name>&transient=<transient_value>"
レスポンス :
アペンダは指定された名前で見つけられます :
{"success":"true","appender":"[{"name":".....","layout":"......"}]}
指定された名前のアペンダはありません :
{"success":"false","result":"Appender name not found"}
無効な transient
パラメータが指定されています :
{"success":"false","result":"Invalid 'transient' parameter"}
GET all appenders¶
実行中のロガーから存在するすべてのアペンダを取得します。実行中の Cygnus または log4j.properties
ファイルから取得できます。transient=true
でパラメータ化されている(またはこのパラメータを省略されている)場合、アペンダは Cygnus から取得されます。transient=false
の場合、ファイルから取得されます。
GET "http://<cygnus_host>:<management_port>/v1/admin/log/appenders?transient=<transient_value>"
レスポンス :
すべてのアペンダが見つかりました :
{"success":"true","appenders":[{"name":".....","layout":"......"},{"name":".....","layout":"....."}]}
表示されるアペンダはありません :
{"success":"false","result":"No log4j appenders found"}
無効な transient
パラメータが指定されています :
{"success":"false","result":"Invalid 'transient' parameter"}
GET /v1/admin/log/loggers
¶
GET logger by name¶
実行中の Cygnus から名前が与えられている既存のロガーを取得します。実行中のCygnusまたはlog4j.propertiesファイルから取得できます。transient=true
でパラメータ化されている(またはこのパラメータを省略されている)場合、ロガーはCygnus から取得されます。transient=false
の場合、ファイルから取得されます。
GET "http://<cygnus_host>:<management_port>/v1/admin/log/loggers?name=<logger_name>&transient=<transient_value>"
レスポンス :
ロガーは指定された名前で見つけられます :
{"success":"true","logger":[{"name":"....."}]}
指定された名前のロガーはありません :
{"success":"false","result":"logger name not found"}
無効な transient
パラメータが指定されています :
{"success":"false","result":"Invalid 'transient' parameter"}
GET all loggers¶
実行中の Cygnus からのすべての既存のロガーを取得します。実行中の Cygnusまたは log4j.properties
ファイルから取得できます。transient=true
でパラメータ化されている(またはこのパラメータを省略されている)場合、ロガーはCygnus から取得されます。transient=false
の場合、ファイルから取得されます。
GET "http://<cygnus_host>:<management_port>/v1/admin/log/loggers?transient=<transient_value>"
レスポンス :
すべてのロガーが見つかりました :
{"success":"true","loggers":[{"name":".......","level":"...."}]}
表示されるアペンダはありません :
{"success":"false","result":"No log4j loggers found"}
無効な transient
パラメータが指定された場合 :
{"success":"false","result":"Invalid 'transient' parameter"}
ロガーとアペンダのための PUT と POST メソッド¶
次の表は、すべてのモード(transient=true
または transient=false
)とすべてのメソッドの PUT および POST メソッドの動作を再開します :
APPENDER | LOGGER | |||
---|---|---|---|---|
Transient | No transient | Transient | No transient | |
--------------------- | ------------ | -------------- | ------------ | -------------- |
GET | YES | YES | YES | YES |
PUT | ONLY UPDATE | YES | ONLY UPDATE | YES |
POST | NO | YES | NO | YES |
DELETE | YES | YES | YES | YES |
PUT /v1/admin/log/appenders
¶
アペンダの名前とクラス、そのレイアウトとそのパターンの ConversionPattern に関する情報を持つ JSON を指定して、実行中の Cygnus にアペンダを置きます。transient=true
でパラメータ化されている(またはこのパラメータを省略した)場合、名前が現在のアクティブなアペンダと等しい場合、アペンダは更新されます。transient=false
の場合、アペンダは、ファイルに追加または更新されます。
PUT "http://<cygnus_host>:<management_port>/v1/admin/log/appenders?transient=<transient_value>" -d
'{
"appender": {
"name":".....",
"class":"....."
},
"pattern": {
"layout":".....",
"ConversionPattern":"....."
}
}'
レスポンス :
新しいアペンダが一時的なモードになり、名前が現在のアペンダと等しくない :
{"success":"false","result":"Appenders addition is not implemented"}
新しいアペンダが一時的なモードにならない :
{"success":"true","result":"Appender '....' put."}
アペンダが存在し、更新されます :
{"success":"true","result":"Appender '....' updated succesfully"}
無効な transient
パラメータが指定されています :
{"success":"false","result":"Invalid 'transient' parameter"}
JSON を使用せずにリクエストを送信するか、無効なリクエストを送信する :
{"success":"false","result":"Missing input JSON"}
{"success":"false","result":"Invalid input JSON"}
POST /v1/admin/log/appenders
¶
実行中の Cygnus にアペンダをポストし、アペンダの名前とクラス、そのレイアウトとそのパターンのConversionPattern に関する情報を JSON に与えます。transient=false
でパラメータ化されている場合は、ファイルにポストされます。POST メソッドは transient=true
で実装されていません。
POST "http://<cygnus_host>:<management_port>/v1/admin/log/loggers?transient=<transient_value>" -d
'{
"appender": {
"name":".....",
"class":"....."
},
"pattern": {
"layout":".....",
"ConversionPattern":"....."
}
}'
レスポンス :
transient=true
の新しいアペンダ :
{"success":"false","result":"POST appenders in transient mode is not implemented"}
transient=false
の新しいアペンダ :
{"success":"true","result":"Appender '........' posted."}
アペンダは既に存在します :
{"success":"false","result":{"Appender '........' already exist"}}
無効な transient
パラメータが指定されています :
{"success":"false","result":{"Invalid 'transient' parameter"}}
JSON または無効なものを使用せずにリクエストを送信する :
{"success":"false","result":"Missing input JSON"}
{"success":"false","result":"Invalid input JSON"}
PUT /v1/admin/log/loggers
¶
ロガーの名前とレベルに関する情報を含む JSON が与えられている実行中の Cygnus にロガーを置きます。transient=true
でパラメータ化する(またはこのパラメータを省略する)と、名前が現在のロガーと等しい場合、ロガーが更新されます。PUTメソッドは、コード内のロガー作成の制限により、一時モードでのみ更新されます。transient=false
の場合、アペンダがファイルに追加または更新されます。
PUT "http://<cygnus_host>:<management_port>/v1/admin/log/loggers?transient=false" -d
'{
"logger": {
"name":".....",
"level":"....."
}
}'
レスポンス :
transient=true
の新しいアペンダ :
{"success":"false","result":"Loggers addition is not implemented"}
アペンダが存在し、更新されます :
{"success":"true","result":"Appender '.......' updated successfully"}
transient=false
の新しいアペンダ :
{"success":"true","result":"Logger '......' put"}
無効な transient
パラメータが指定されています :
{"success":"false","result":{"Invalid 'transient' parameter"}}
JSON または無効なものを使用せずにリクエストを送信する :
{"success":"false","result":"Missing input JSON"}
{"success":"false","result":"Invalid input JSON"}
POST /v1/admin/log/loggers
¶
実行中の Cygnus にロガーをポストします。このメソッドは、コード内のロガー作成の制限により、パラメータ transient=false
のみを受け入れます。したがって、ロガーは log4j.properties
ファイルにポストされます。ロガーの名前とレベルに関する情報を含む JSON が与えられている実行中の Cygnus にロガーを投稿します。transient=false
でパラメータ化されている場合は、ファイルにポストされます。POSTメソッドは transient=true
で実装されていません。
POST "http://<cygnus_host>:<management_port>/v1/admin/log/loggers?transient=false" -d
'{
"logger": {
"name":".....",
"level":"....."
}
}'
レスポンス :
transient=true
の新しいロガー :
{"success":"false","result":"POST appenders in transient mode is not implemented"}
transient=false
の新しいロガー :
{"success":"true","result":"Logger '.......' posted"}
ロガーが存在し、更新されます :
{"success":"false","result":"Logger '.......' already exist"}
無効な transient
パラメータが指定された場合 :
{"success":"false","result":{"Invalid 'transient' parameter"}}
JSON または無効なものを使用せずにリクエストを送信する :
{"success":"false","result":"Missing input JSON"}
{"success":"false","result":"Invalid input JSON"}
DELETE /v1/admin/log/appenders
¶
DELETE appender by name¶
実行中のロガーから既存のアペンダを削除します。実行中の Cygnus 上または log4j.properties
ファイル内で削除することができます。transient=true
でパラメータ化した場合(または、このパラメータを省略した)場合、アペンダは、Cygnus 上で削除されます。transient=false
の場合、ファイル内で削除されます。
DELETE "http://<cygnus_host>:<management_port>/v1/admin/log/appenders?name=<appender_name>&transient=<transient_value>"
レスポンス :
名前の付いたアペンダが見つけられ、削除されたとき :
{"success":"true","result":"Appender '.....' removed successfully"}
指定された名前のアペンダがない場合 :
{"success":"false","result":"Appender name not found"}
無効な transient
パラメータが指定された場合 :
{"success":"false","result":"Invalid 'transient' parameter"}
DELETE all appenders¶
実行中のロガーから存在するすべてのアペンダを削除します。実行中の Cygnus 上または log4j.properties
ファイル内で削除することができます。transient=true
でパラメータ化する(またはこのパラメータを省略する)場合、Cygnus上でアペンダが削除されます。transient=false
の場合、ファイル内で削除されます。
DELETE "http://<cygnus_host>:<management_port>/v1/admin/log/appenders?transient=<transient_value>"
レスポンス :
すべてのアペンダが削除されると :
{"success":"true","result":"Appenders removed successfully"}
無効な transient
パラメータが指定された場合 :
{"success":"false","result":"Invalid 'transient' parameter"}
DELETE /v1/admin/log/loggers
¶
DELETE logger by name¶
実行中の Cygnus からその名前が付いた既存のロガーを削除します。実行中の Cygnus 上または log4j.properties
ファイル内で削除することができます。transient=true
でパラメータ化した場合(またはこのパラメータを省略した場合)は、Cygnusでロガーが削除されます。transient=false
の場合、ファイル内で削除されます。
DELETE "http://<cygnus_host>:<management_port>/v1/admin/log/loggers?name=<logger_name>&transient=<transient_value>"
レスポンス :
名前の付いたロガーが見つけられ、削除されたとき :
{"success":"true","result":"Logger '.....' removed successfully"}
指定された名前のロガーがない場合 :
{"success":"false","result":"Logger name not found"}
無効な transient
パラメータが指定された場合 :
{"success":"false","result":"Invalid 'transient' parameter"}
DELETE all loggers¶
実行中の Cygnus からすべての既存のロガーを削除します。実行中の Cygnus 上または log4j.properties
ファイル内で削除することができます。transient=true
でパラメータ化する(またはこのパラメータを省略する)場合、Cygnus上でロガーが削除されます。transient=false
の場合、ファイル内で削除されます。
DELETE "http://<cygnus_host>:<management_port>/v1/admin/log/loggers?transient=<transient_value>"
レスポンス :
すべてのロガーが削除された場合 :
{"success":"true","result":"Loggers removed successfully"}
無効な transient
パラメータが指定された場合 :
{"success":"false","result":"Invalid 'transient' parameter"}
Metrics¶
GET /v1/admin/metrics
¶
Cygnus エージェント全体のメトリックを取得します。具体的には :
- incomingTransactions : 着信トランザクションの数。トランザクションにはリクエストとレスポンスが含まれます。つまり、受信した NGSI 通知の数です
- incomingTransactionRequestSizes : 着信トランザクションに関連するリクエストの合計サイズ。バイト単位
- incomingTransactionResponseSizes : 着信トランザクションに関連するレスポンスの合計サイズ。バイト単位
- incomingTransactionErrors : エラーを引き起こした着信トランザクションの数
- serviceTime。トランザクション要求受信とトランザクション応答送信の間の平均時間
- outgoingTransactionss : 発信トランザクションの数。トランザクションには要求と応答が含まれます。言い換えると、持続オペレーションの数
- outgoingTransactionRequestSizes : 発信トランザクションに関連するリクエストの合計サイズ。バイト単位
- outgoingTransactionResponseSizes : 発信トランザクションに関連するレスポンスの合計サイズ。バイト単位
- outgoingTransactionErrors : エラーを引き起こす発信トランザクションの数
次のカスタムの Cygnus コンポーネントが使用されている場合にのみ、メトリックが収集されます :
NGISRestHandler
- どんなシンクも伸びている
NGSISink
GET http://<cygnus_host>:<management_port>/v1/admin/metrics[?reset=true|false]
レスポンス :
200 OK
{
"services": {
"service1": {
"subservs": {
"subservice1": {
<metrics for subservice1 within service1>
},
"subservice1": {
<metrics for subservice2 within service1>
}
},
"sum": {
<aggregated metrics for all subservices within service1>
}
},
"service2": {
"subservs": {
"subservice1": {
<metrics for subservice1 within service2>
},
"subservice2": {
<metrics for subservice2 within service2>
}
},
"sum": {
<aggregated metrics for all subservices within service2>
}
}
},
"sum": {
"subservs": {
"subservice1": {
<aggregated metrics for subservice1 within all the services>
},
"subservice2": {
<aggregated metrics for subservice2 within all the services>
}
},
"sum": {
<aggregated metrics for all subservices within all the services>
}
}
}
reset = true
の場合、メトリックは削除された直後に返される。メトリックの収集と削除はアトミック操作です。つまり、別のインターリーブされた GET 操作は削除が完了するまで待機します。
さらに、Cygnus はソース(イベント受信の責任者)とシンク(イベントの永続性を担う;イベントは2つ以上のシンクで並列処理される可能性がある)間でイベント処理を分散するためです :
- あるイベントが受信状態にあるが、処理された状態にはない可能性があるので、着信トランザクションの数はサービス時間に関して最終的に不一致である可能性があります
- サービス時間は、処理時間の合計(この文脈における処理時間をソース内での均一受信と無差別シンクのうちの1つにおける処理との間の時間として理解する)を、同じ着信イベントが持続される回数で割った値(つまり、着信トランザクションの数で除算されない)として計算されます。 したがって、N 個のイベントが M 回持続され(M> N)、平均サービス時間に影響を与える可能性があります
- 同じことがトランザクション・エラーの数で発生します。したがって、イベントが2つ以上のシンクによって処理されて、すべてが失敗しているため、この数値は着信トランザクションの数よりも大きくなる可能性があります
最後に、Cygnus は失敗した永続性操作の再試行メカニズムを実装しているため、(たとえ1つのシンクが使用されても)着信トランザクションの数よりも発信トランザクションおよびそれに関連するメトリックの数がはるかに多い可能性があることに注意する必要があります。これは、新しい再試行ごとに新しい発信トランザクションとしてカウントされるためです。たとえば、永続化操作で4回の再試行が必要で、最後に成功した場合、これは 4つの outgoingTransactions
を意味し、それらの3つが outgoingTransactionError
を意味します。
DELETE /v1/admin/metrics
¶
メトリックを削除し、カウンタをゼロにします。
DELETE http://<cygnus_host>:<management_port>/v1/admin/metrics
レスポンス :
200 OK
利用可能なエイリアス¶
Alias | Operation |
---|---|
GET /admin/metrics | GET /v1/admin/metrics |
DELETE /admin/metrics | DELETE /v1/admin/metrics |