Class MetricsConfig.BuilderBase.MetricsConfigImpl

java.lang.Object
io.helidon.metrics.api.MetricsConfig.BuilderBase.MetricsConfigImpl
All Implemented Interfaces:
Prototype.Api, MetricsConfig
Enclosing class:
MetricsConfig.BuilderBase<BUILDER extends MetricsConfig.BuilderBase<BUILDER,PROTOTYPE>,PROTOTYPE extends MetricsConfig>

protected static class MetricsConfig.BuilderBase.MetricsConfigImpl extends Object implements MetricsConfig
Generated implementation of the prototype, can be extended by descendant prototype implementations.
  • Field Details

    • METRICS_CONFIG_KEY

      static final String METRICS_CONFIG_KEY
      The config key containing settings for all of metrics.
      See Also:
    • SCOPE_CONFIG_KEY

      static final String SCOPE_CONFIG_KEY
      Config key for scope-related settings.
      See Also:
    • KEY_PERFORMANCE_INDICATORS_CONFIG_KEY

      static final String KEY_PERFORMANCE_INDICATORS_CONFIG_KEY
      Config key for KPI metrics settings.
      See Also:
    • DEFAULT_JSON_UNITS_DEFAULT

      static final TimeUnit DEFAULT_JSON_UNITS_DEFAULT
  • Constructor Details

    • MetricsConfigImpl

      protected MetricsConfigImpl(MetricsConfig.BuilderBase<?,?> builder)
      Create an instance providing a builder.
      Parameters:
      builder - extending builder base of this prototype
  • Method Details

    • lookupConfig

      public Optional<String> lookupConfig(String key)
      Description copied from interface: MetricsConfig
      Looks up a single config value within the metrics configuration by config key.
      Specified by:
      lookupConfig in interface MetricsConfig
      Parameters:
      key - config key to fetch
      Returns:
      config value
    • isScopeEnabled

      public boolean isScopeEnabled(String scope)
      Description copied from interface: MetricsConfig
      Reports whether the specified scope is enabled, according to any scope configuration that is part of this metrics configuration.
      Specified by:
      isScopeEnabled in interface MetricsConfig
      Parameters:
      scope - scope name
      Returns:
      true if the scope as a whole is enabled; false otherwise
    • isMeterEnabled

      public boolean isMeterEnabled(String name, String targetScope)
      Description copied from interface: MetricsConfig
      Reports whether the specified meter within the indicated scope is enabled, according to the metrics configuration.
      Specified by:
      isMeterEnabled in interface MetricsConfig
      Parameters:
      name - meter name
      targetScope - scope within which to check
      Returns:
      whether the meter is enabled
    • enabled

      public boolean enabled()
      Description copied from interface: MetricsConfig
      Whether metrics functionality is enabled.
      Specified by:
      enabled in interface MetricsConfig
      Returns:
      if metrics are configured to be enabled
    • permitAll

      public boolean permitAll()
      Description copied from interface: MetricsConfig
      Whether to allow anybody to access the endpoint.
      Specified by:
      permitAll in interface MetricsConfig
      Returns:
      whether to permit access to metrics endpoint to anybody, defaults to true
      See Also:
    • roles

      public List<String> roles()
      Description copied from interface: MetricsConfig
      Hints for role names the user is expected to be in.
      Specified by:
      roles in interface MetricsConfig
      Returns:
      list of hints
    • keyPerformanceIndicatorMetricsConfig

      public KeyPerformanceIndicatorMetricsConfig keyPerformanceIndicatorMetricsConfig()
      Description copied from interface: MetricsConfig
      Key performance indicator metrics settings.
      Specified by:
      keyPerformanceIndicatorMetricsConfig in interface MetricsConfig
      Returns:
      key performance indicator metrics settings
    • tags

      public List<Tag> tags()
      Description copied from interface: MetricsConfig
      Global tags.
      Specified by:
      tags in interface MetricsConfig
      Returns:
      name/value pairs for global tags
    • appName

      public Optional<String> appName()
      Description copied from interface: MetricsConfig
      Value for the application tag to be added to each meter ID.
      Specified by:
      appName in interface MetricsConfig
      Returns:
      application tag value
    • appTagName

      public Optional<String> appTagName()
      Description copied from interface: MetricsConfig
      Name for the application tag to be added to each meter ID.
      Specified by:
      appTagName in interface MetricsConfig
      Returns:
      application tag name
    • scoping

      public ScopingConfig scoping()
      Description copied from interface: MetricsConfig
      Settings related to scoping management.
      Specified by:
      scoping in interface MetricsConfig
      Returns:
      scoping settings
    • restRequestEnabled

      public boolean restRequestEnabled()
      Description copied from interface: MetricsConfig
      Whether automatic REST request metrics should be measured.
      Specified by:
      restRequestEnabled in interface MetricsConfig
      Returns:
      true/false
    • restRequestEnabledShadow

      public Optional<Boolean> restRequestEnabledShadow()
      Description copied from interface: MetricsConfig
      Whether automatic REST request metrics should be measured (as indicated by the deprecated config key rest-request-enabled, the config key using a hyphen instead of a dot separator).
      Specified by:
      restRequestEnabledShadow in interface MetricsConfig
      Returns:
      true/false
    • virtualThreadsEnabled

      public boolean virtualThreadsEnabled()
      Description copied from interface: MetricsConfig
      Whether Helidon should expose meters related to virtual threads.
      Specified by:
      virtualThreadsEnabled in interface MetricsConfig
      Returns:
      true to include meters related to virtual threads
    • virtualThreadsPinnedThreshold

      public Duration virtualThreadsPinnedThreshold()
      Description copied from interface: MetricsConfig
      Threshold for sampling pinned virtual threads to include in the pinned threads meter.
      Specified by:
      virtualThreadsPinnedThreshold in interface MetricsConfig
      Returns:
      threshold used to filter virtual thread pinning events
    • config

      public Config config()
      Description copied from interface: MetricsConfig
      Metrics configuration node.
      Specified by:
      config in interface MetricsConfig
      Returns:
      metrics configuration
    • gcTimeType

      public GcTimeType gcTimeType()
      Description copied from interface: MetricsConfig
      Whether the gc.time meter should be registered as a gauge (vs. a counter). The gc.time meter is inspired by the MicroProfile Metrics spec, in which the meter was originally checked to be a counter but starting in 5.1 was checked be a gauge. For the duration of Helidon 4.x users can choose which type of meter Helidon registers for gc.time.
      Specified by:
      gcTimeType in interface MetricsConfig
      Returns:
      the type of meter to use for registering gc.time
    • builtInMeterNameFormat

      public BuiltInMeterNameFormat builtInMeterNameFormat()
      Description copied from interface: MetricsConfig
      Output format for built-in meter names.

      BuiltInMeterNameFormat.SNAKE selects "snake_case" which does not conform to the MicroProfile Metrics specification.

      Specified by:
      builtInMeterNameFormat in interface MetricsConfig
      Returns:
      the output format for built-in meter names
    • jsonUnitsDefault

      public Optional<TimeUnit> jsonUnitsDefault()
      Description copied from interface: MetricsConfig
      Default units for timer output in JSON if not specified on a given timer.

      If the configuration key is absent, the Helidon JSON output uses TimeUnit.SECONDS. If the configuration key is present, Helidon formats each timer using that timer's specific units (if set) and the config value otherwise.

      Specified by:
      jsonUnitsDefault in interface MetricsConfig
      Returns:
      default TimeUnit to use for JSON timer output
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object