管理インターフェイス

コンテンツ :

この文書の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

トップ