Class MeterRegistryFactory<T extends io.micrometer.core.instrument.MeterRegistry>

java.lang.Object
nablarch.integration.micrometer.MeterRegistryFactory<T>
Type Parameters:
T - サブクラスで生成する具体的なMeterRegistryの型
All Implemented Interfaces:
ComponentFactory<T>
Direct Known Subclasses:
CloudWatchMeterRegistryFactory, DatadogMeterRegistryFactory, GlobalMeterRegistryFactory, LoggingMeterRegistryFactory, SimpleMeterRegistryFactory, StatsdMeterRegistryFactory

public abstract class MeterRegistryFactory<T extends io.micrometer.core.instrument.MeterRegistry> extends Object implements ComponentFactory<T>
MeterRegistryのコンポーネント生成に共通する処理をまとめた抽象クラス。
  • Field Details

    • prefix

      protected String prefix
      設定値のプレフィックス。
    • xmlConfigPath

      protected String xmlConfigPath
      設定ファイルのパス。

      未設定の場合に読み込まれるデフォルトのパスについてはMicrometerConfigurationを参照。

    • meterBinderListProvider

      protected MeterBinderListProvider meterBinderListProvider
      生成したMeterRegistryに適用するMeterBinderリストのプロバイダ。
    • tags

      protected Map<String,String> tags
      すべてのメトリクスに共通で設定するタグ。
    • applicationDisposer

      protected ApplicationDisposer applicationDisposer
      廃棄処理を行うインタフェース。
  • Constructor Details

    • MeterRegistryFactory

      public MeterRegistryFactory()
  • Method Details

    • doCreateObject

      protected T doCreateObject()
      ComponentFactory.createObject() の実処理を行うメソッド。

      サブクラスは、本メソッドを使って createObject() を次のように実装する。

      @Override
       public SimpleMeterRegistry createObject() {
           return doCreateObject();
       }

      これは、 createObject() の戻り値の型が総称型だった場合、 DIコンテナがコンポーネントの具象型を特定できないことに起因する。
      この問題は、上述のようにサブクラスで createObject() の戻り値の型を具象型として宣言することで回避できる。
      一方で、コンポーネントを作成するロジック自体はどの MeterRegistry でも共通なので、 コンポーネント作成処理を共通化するために、このメソッドが用意されている。

      Returns:
      作成された MeterRegistry オブジェクト
    • createMeterRegistry

      protected abstract T createMeterRegistry(MicrometerConfiguration micrometerConfiguration)
      MeterRegistryのインスタンスを生成する。
      Parameters:
      micrometerConfiguration - Micrometerの設定
      Returns:
      生成した MeterRegistryのインスタンス
    • setPrefix

      public void setPrefix(String prefix)
      プレフィックスを設定する。
      Parameters:
      prefix - プレフィックス
    • setXmlConfigPath

      public void setXmlConfigPath(String xmlConfigPath)
      XML設定ファイルのパスを設定する。
      Parameters:
      xmlConfigPath - XML設定ファイルのパス
    • setMeterBinderListProvider

      public void setMeterBinderListProvider(MeterBinderListProvider meterBinderListProvider)
      MeterBinderListProviderを設定する。
      Parameters:
      meterBinderListProvider - MeterBinderListProvider
    • setTags

      public void setTags(Map<String,String> tags)
      すべてのメトリクスに共通で設定するタグを指定する。
      Parameters:
      tags - すべてのメトリクスに共通で設定するタグ
    • setApplicationDisposer

      public void setApplicationDisposer(ApplicationDisposer applicationDisposer)
      ApplicationDisposerを設定する。
      Parameters:
      applicationDisposer - ApplicationDisposer