fesen-httpclientの改善

fesen-httpclientは、OpenSearch/Elasticsearch用のHTTPクライアントライブラリです。今回、OpenSearch 3.xの各種Stats APIに対応するためのHTTPアクション実装を追加しました。

追加したエンドポイント

以下の6つのStats API向けアクションを実装しました。

アクションクラスエンドポイント説明
HttpClusterStatsAction/_cluster/statsクラスター全体の統計情報(ノード数、インデックス数、リソース使用状況など)
HttpIndicesStatsAction/{index}/_statsインデックスレベルの詳細統計(ドキュメント数、ストアサイズ、インデキシング、検索など)
HttpDataStreamsStatsAction/_data_stream/_statsデータストリームの統計情報
HttpRemoteStoreStatsAction/_remotestore/statsリモートストアの統計情報
HttpSegmentReplicationStatsAction/_segment_replicationセグメントレプリケーションの統計情報
HttpWlmStatsAction/_wlm/statsワークロード管理(WLM)の統計情報

今後の予定

今回の変更でStats APIのサポートを拡充しましたが、まだ対応していないエンドポイントもあります。今後も対応できるものは追加していきたいと考えています。

AWS SDK Javaの更新でUnknownHostException

fess-ds-s3プラグインのsoftware.amazon.awssdk:s3を2.30.33に更新したら、

Caused by: software.amazon.awssdk.core.exception.SdkClientException: Unable to execute HTTP request: fess-0.localhost (SDK Attempt Count: 4)

みたいな例外が出るようになった…。何かなと思ったら、これにあるように、endpointを指定している場合は、forcePathStyle(true)も必要になっていた。なので、追加したら解決した。

sdkmanでJavaの切り替え

sdkmanでJavaを入れて使っているけど、特定のディレクトリに入ったときにJavaのバージョンを切り替えたい場合にどうするのが良いかを調べてみると、切り替えたいディレクトリで

sdk env init

をすると、.sdkmanrcファイルが生成されるので、そこで指定しておけば良さそう。たとえば、

java=17.0.12-tem

みたいな感じ。でも、これだけだとディレクトリに入ったときに自動では切り替わらないので、自動で切り替わるようにしておく設定が必要。

sdk config

とすると設定値が編集できるので、

sdkman_auto_env=true

としておく。この設定をすぐに有効にしたい場合は

sdk env

をして反映しておく。

という感じことをしておけば、自動でJavaのバージョンを切り替えて利用できるはず。