API 呼び出しの数を取得するにはどうすればよいですか? wso2 BAMは同様のデータの円グラフを表示するため、データがどこかにある必要があることはわかっています...
調停シーケンスでその番号を取得したいと思います。それは可能ですか?これは、DB ルックアップを介して達成される可能性がありますか?
API 呼び出しの数を取得するにはどうすればよいですか? wso2 BAMは同様のデータの円グラフを表示するため、データがどこかにある必要があることはわかっています...
調停シーケンスでその番号を取得したいと思います。それは可能ですか?これは、DB ルックアップを介して達成される可能性がありますか?
WSO2 API Manager での API 使用状況の監視がどのように機能するかというと、API ゲートウェイを通過する要求と応答ごとに呼び出されるAPI ハンドラー( org.wso2.carbon.apimgt.usage.publisher.APIUsageHandler ) があります。このハンドラーでは、API の使用に関するすべての関連情報が WSO2 BAM サーバーに発行されます。WSO2 BAM サーバーは、付属の Cassandra データベースにこのデータを保持します。次に、BAM サーバーにインストールできる Apache Hive を使用して記述された必要な分析スクリプトがパッケージ化された BAM ツールボックスがあります。これらのスクリプトは定期的にデータを要約し、要約されたデータを SQL データベースに保持します。そのため、 API Publisherに表示されるグラフとチャートはWeb アプリケーションは、SQL データベースから要約されたデータを使用して作成されます。
ここで、必要なものがこれらの要約された SQL テーブルから抽出できる場合、そのプロセスは非常に簡単だと思います。これには DBLookup メディエータを使用できます。ただし、必要なデータの一部のディメンションが集計によって失われた場合は、もう少し作業が必要になります。
2 つのオプションがあります。
写真に BAM が必要ない場合でも、次のように最小限のコーディングでそれを行うことができます。パブリッシュを実行する実装クラスはorg.wso2.carbon.apimgt.usage.publisher.APIMgtUsageDataBridgeDataPublisherです。このクラスは、インターフェイスorg.wso2.carbon.apimgt.usage.publisher.APIMgtUsageDataPublisherを実装します。インターフェイスには、次の 3 つのインスタンス メソッドがあります。
public void init()
public void publishEvent(RequestPublisherDTO requestPublisherDTO)
public void publishEvent(ResponsePublisherDTO responsePublisherDTO)
init() メソッドは、サーバーの起動時に 1 回だけ実行されます。ここで、クラスのブートストラップに必要なすべてのロジックを追加できます。publishEvent(RequestPublisherDTO) は要求イベントを発行する場所であり、publishEvent(ResponsePublisherDTO) は応答イベントを発行する場所です。DTO オブジェクトは、それぞれ要求データと応答データのカプセル化された表現です。
このインターフェースの新しい実装を作成し、それをapi-manager.xmlのDataPublisherImplプロパティの値として構成する必要があります。簡単にするために、既存のorg.wso2.carbon.apimgt.usage.publisher.APIMgtUsageDataBridgeDataPublisherを拡張し、必要なロジックを記述して、init()、publishEvent(RequestPublisherDTO)、および publishEvent(ResponsePublisherDTO 内の SQL データベースに使用状況データを永続化します。 )、各メソッドの最後で、それぞれのスーパー クラス メソッドを呼び出すだけです。たとえば、オーバーライドする init() は super().init() を呼び出します。このようにして、要件に必要なコードのみを追加し、BAM 統計収集要件をスーパー クラスに任せます。