Class MetricsConfig.BuilderBase<BUILDER extends MetricsConfig.BuilderBase<BUILDER,PROTOTYPE>,PROTOTYPE extends MetricsConfig>

java.lang.Object
io.helidon.metrics.api.MetricsConfig.BuilderBase<BUILDER,PROTOTYPE>
Type Parameters:
BUILDER - type of the builder extending this abstract builder
PROTOTYPE - type of the prototype interface that would be built by Prototype.Builder.buildPrototype()
All Implemented Interfaces:
Prototype.Builder<BUILDER,PROTOTYPE>, ConfigBuilderSupport.ConfiguredBuilder<BUILDER,PROTOTYPE>
Direct Known Subclasses:
MetricsConfig.Builder
Enclosing interface:
MetricsConfig

public abstract static class MetricsConfig.BuilderBase<BUILDER extends MetricsConfig.BuilderBase<BUILDER,PROTOTYPE>,PROTOTYPE extends MetricsConfig> extends Object implements ConfigBuilderSupport.ConfiguredBuilder<BUILDER,PROTOTYPE>
Fluent API builder base for MetricsConfig.
  • Constructor Details

    • BuilderBase

      protected BuilderBase()
      Protected to support extensibility.
  • Method Details

    • from

      public BUILDER from(MetricsConfig prototype)
      Update this builder from an existing prototype instance. This method disables automatic service discovery.
      Parameters:
      prototype - existing prototype to update this builder from
      Returns:
      updated builder instance
    • from

      public BUILDER from(MetricsConfig.BuilderBase<?,?> builder)
      Update this builder from an existing prototype builder instance.
      Parameters:
      builder - existing builder prototype to update this builder from
      Returns:
      updated builder instance
    • config

      public BUILDER config(Config config)
      Update builder from configuration (node of this type). If a value is present in configuration, it would override currently configured values.
      Specified by:
      config in interface ConfigBuilderSupport.ConfiguredBuilder<BUILDER extends MetricsConfig.BuilderBase<BUILDER,PROTOTYPE>,PROTOTYPE extends MetricsConfig>
      Parameters:
      config - configuration instance used to obtain values to update this builder
      Returns:
      updated builder instance
    • enabled

      public BUILDER enabled(boolean enabled)
      Whether metrics functionality is enabled.
      Parameters:
      enabled - if metrics are configured to be enabled
      Returns:
      updated builder instance
      See Also:
    • permitAll

      public BUILDER permitAll(boolean permitAll)
      Whether to allow anybody to access the endpoint.
      Parameters:
      permitAll - whether to permit access to metrics endpoint to anybody, defaults to true
      Returns:
      updated builder instance
      See Also:
    • roles

      public BUILDER roles(List<String> roles)
      Hints for role names the user is expected to be in.
      Parameters:
      roles - list of hints
      Returns:
      updated builder instance
      See Also:
    • addRoles

      public BUILDER addRoles(List<String> roles)
      Hints for role names the user is expected to be in.
      Parameters:
      roles - list of hints
      Returns:
      updated builder instance
      See Also:
    • keyPerformanceIndicatorMetricsConfig

      public BUILDER keyPerformanceIndicatorMetricsConfig(KeyPerformanceIndicatorMetricsConfig keyPerformanceIndicatorMetricsConfig)
      Key performance indicator metrics settings.
      Parameters:
      keyPerformanceIndicatorMetricsConfig - key performance indicator metrics settings
      Returns:
      updated builder instance
      See Also:
    • keyPerformanceIndicatorMetricsConfig

      public BUILDER keyPerformanceIndicatorMetricsConfig(Consumer<KeyPerformanceIndicatorMetricsConfig.Builder> consumer)
      Key performance indicator metrics settings.
      Parameters:
      consumer - consumer of builder for key performance indicator metrics settings
      Returns:
      updated builder instance
      See Also:
    • keyPerformanceIndicatorMetricsConfig

      public BUILDER keyPerformanceIndicatorMetricsConfig(Supplier<? extends KeyPerformanceIndicatorMetricsConfig> supplier)
      Key performance indicator metrics settings.
      Parameters:
      supplier - supplier of key performance indicator metrics settings
      Returns:
      updated builder instance
      See Also:
    • tags

      public BUILDER tags(List<? extends Tag> tags)
      Global tags.
      Parameters:
      tags - name/value pairs for global tags
      Returns:
      updated builder instance
      See Also:
    • addTags

      public BUILDER addTags(List<? extends Tag> tags)
      Global tags.
      Parameters:
      tags - name/value pairs for global tags
      Returns:
      updated builder instance
      See Also:
    • clearAppName

      public BUILDER clearAppName()
      Clear existing value of this property.
      Returns:
      updated builder instance
      See Also:
    • appName

      public BUILDER appName(String appName)
      Value for the application tag to be added to each meter ID.
      Parameters:
      appName - application tag value
      Returns:
      updated builder instance
      See Also:
    • clearAppTagName

      public BUILDER clearAppTagName()
      Clear existing value of this property.
      Returns:
      updated builder instance
      See Also:
    • appTagName

      public BUILDER appTagName(String appTagName)
      Name for the application tag to be added to each meter ID.
      Parameters:
      appTagName - application tag name
      Returns:
      updated builder instance
      See Also:
    • scoping

      public BUILDER scoping(ScopingConfig scoping)
      Settings related to scoping management.
      Parameters:
      scoping - scoping settings
      Returns:
      updated builder instance
      See Also:
    • scoping

      public BUILDER scoping(Consumer<ScopingConfig.Builder> consumer)
      Settings related to scoping management.
      Parameters:
      consumer - consumer of builder for scoping settings
      Returns:
      updated builder instance
      See Also:
    • scoping

      public BUILDER scoping(Supplier<? extends ScopingConfig> supplier)
      Settings related to scoping management.
      Parameters:
      supplier - supplier of scoping settings
      Returns:
      updated builder instance
      See Also:
    • restRequestEnabled

      public BUILDER restRequestEnabled(boolean restRequestEnabled)
      Whether automatic REST request metrics should be measured.
      Parameters:
      restRequestEnabled - true/false
      Returns:
      updated builder instance
      See Also:
    • virtualThreadsEnabled

      public BUILDER virtualThreadsEnabled(boolean virtualThreadsEnabled)
      Whether Helidon should expose meters related to virtual threads.
      Parameters:
      virtualThreadsEnabled - true to include meters related to virtual threads
      Returns:
      updated builder instance
      See Also:
    • virtualThreadsPinnedThreshold

      public BUILDER virtualThreadsPinnedThreshold(Duration virtualThreadsPinnedThreshold)
      Threshold for sampling pinned virtual threads to include in the pinned threads meter.
      Parameters:
      virtualThreadsPinnedThreshold - threshold used to filter virtual thread pinning events
      Returns:
      updated builder instance
      See Also:
    • gcTimeType

      @Deprecated(since="4.1", forRemoval=true) public BUILDER gcTimeType(GcTimeType gcTimeType)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Provided for backward compatibility only; no replacement
      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.
      Parameters:
      gcTimeType - the type of meter to use for registering gc.time
      Returns:
      updated builder instance
      See Also:
    • builtInMeterNameFormat

      public BUILDER builtInMeterNameFormat(BuiltInMeterNameFormat builtInMeterNameFormat)
      Output format for built-in meter names.

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

      Parameters:
      builtInMeterNameFormat - the output format for built-in meter names
      Returns:
      updated builder instance
      See Also:
    • clearJsonUnitsDefault

      public BUILDER clearJsonUnitsDefault()
      Clear existing value of this property.
      Returns:
      updated builder instance
      See Also:
    • jsonUnitsDefault

      public BUILDER jsonUnitsDefault(TimeUnit jsonUnitsDefault)
      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.

      Parameters:
      jsonUnitsDefault - default TimeUnit to use for JSON timer output
      Returns:
      updated builder instance
      See Also:
    • enabled

      public boolean enabled()
      Whether metrics functionality is enabled.
      Returns:
      the enabled
    • permitAll

      public boolean permitAll()
      Whether to allow anybody to access the endpoint.
      Returns:
      the permit all
      See Also:
    • roles

      public List<String> roles()
      Hints for role names the user is expected to be in.
      Returns:
      the roles
    • keyPerformanceIndicatorMetricsConfig

      public Optional<KeyPerformanceIndicatorMetricsConfig> keyPerformanceIndicatorMetricsConfig()
      Key performance indicator metrics settings.
      Returns:
      the key performance indicator metrics config
    • tags

      public List<Tag> tags()
      Global tags.
      Returns:
      the tags
    • appName

      public Optional<String> appName()
      Value for the application tag to be added to each meter ID.
      Returns:
      the app name
    • appTagName

      public Optional<String> appTagName()
      Name for the application tag to be added to each meter ID.
      Returns:
      the app tag name
    • scoping

      public Optional<ScopingConfig> scoping()
      Settings related to scoping management.
      Returns:
      the scoping
    • restRequestEnabled

      public boolean restRequestEnabled()
      Whether automatic REST request metrics should be measured.
      Returns:
      the rest request enabled
    • virtualThreadsEnabled

      public boolean virtualThreadsEnabled()
      Whether Helidon should expose meters related to virtual threads.
      Returns:
      the virtual threads enabled
    • virtualThreadsPinnedThreshold

      public Duration virtualThreadsPinnedThreshold()
      Threshold for sampling pinned virtual threads to include in the pinned threads meter.
      Returns:
      the virtual threads pinned threshold
    • gcTimeType

      @Deprecated(since="4.1", forRemoval=true) public GcTimeType gcTimeType()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Provided for backward compatibility only; no replacement
      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.
      Returns:
      the gc time type
    • builtInMeterNameFormat

      public BuiltInMeterNameFormat builtInMeterNameFormat()
      Output format for built-in meter names.

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

      Returns:
      the built in meter name format
    • jsonUnitsDefault

      public Optional<TimeUnit> jsonUnitsDefault()
      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.

      Returns:
      the json units default
    • config

      public Optional<Config> config()
      If this instance was configured, this would be the config instance used.
      Returns:
      config node used to configure this builder, or empty if not configured
    • toString

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

      protected void preBuildPrototype()
      Handles providers and decorators.
    • validatePrototype

      protected void validatePrototype()
      Validates required properties.