6.3. CodeReady Workspaces モニタリングメトリクスの拡張

本セクションでは、CodeReady Workspaces が公開しているモニタリングメトリクスを拡張するために、メトリクスまたはメトリクスのグループを作成する方法を説明します。

CodeReady Workspaces には 2 つの主要なモジュールメトリクスがあります。

  • che-core-metrics-core — コアメトリクスモジュールが含まれます。
  • che-core-api-metrics — ワークスペースやユーザーマネージャーなどの CodeReady Workspaces のコアコンポーネントに依存するメトリクスが含まれます。

手順

  • MeterBinder クラスを拡張するクラスを作成します。これにより、作成されたメトリクスをオーバーライドされた bindTo(MeterRegistry registry) メソッドに登録することができます。

    以下は、その値を提供する機能が含まれるメトリクスの例です。

    メトリクスの例

    public class UserMeterBinder implements MeterBinder {
    
      private final UserManager userManager;
    
      @Inject
      public UserMeterBinder(UserManager userManager) {
        this.userManager = userManager;
      }
    
      @Override
      public void bindTo(MeterRegistry registry) {
        Gauge.builder("che.user.total", this::count)
            .description("Total amount of users")
            .register(registry);
      }
    
      private double count() {
        try {
          return userManager.getTotalCount();
        } catch (ServerException e) {
          return Double.NaN;
        }
      }

    または、メトリクスは参照情報と共に保存でき、コードの別の場所で手動で更新できます。