1.3. DiscoveryRegistrationCheckHandler
Pluggable Discovery
API は、DisoveryRegistrationCheckHandler
ハンドラーを使用して、プラグインが Cryostat サーバーインスタンス上の登録ステータスを定期的にチェックできるようにします。
DisoveryRegistrationCheckHandler
ハンドラーは、プラグインから Cryostat への GET
リクエストを管理します。ハンドラーを使用することにより、外部プラグインは、登録先の Cryostat サーバーインスタンスが引き続きアクティブであることを定期的に確認し、プラグインの以前の登録を認識することができます。
Cryostat callback
URL エンドポイントがプラグインインスタンスをチェックする方法 (Cryostat がcallback
URL を読み取り、プラグインに GET
リクエストを送信する方法) と同様に、DisoveryRegistrationCheckHandler
ハンドラーも同じ方法で動作しますが、リクエストを逆方向に送信します。つまり、プラグインは Cryostat サーバーに GET
リクエストを送信し、Cryostat サーバー上の登録ステータスを確認します。リクエストが失敗した場合、たとえば、Unexpected 401
または Unexpected 404
エラー応答を受信した場合、プラグインは既存の登録情報を破棄し、再度登録を試みることができます。
外部プラグインから送信される GET
リクエストの例
$ http -v https://my-cryostat.my-namespace.cluster.local:8181/api/v2.2/discovery/<plugin-registration-id>?token=<current-plugin-registration-token>
GET
リクエストのチェックが成功し、Cryostat がプラグインの現在の登録を認識した場合の Cryostat の応答例
HTTP/1.1 200 OK content-encoding: gzip content-length: 86 content-type: application/json { "data": { "result": null }, "meta": { "mimeType": "JSON", "status": "OK" } }
Cryostat がプラグインの登録詳細を認識しないために GET
リクエストのチェックが失敗した場合の Cryostat の応答例
HTTP/1.1 404 Not Found content-encoding: gzip content-length: 95 content-type: application/json { "data": { "reason": null }, "meta": { "status": "Not Found", "type": "text/plain" } }