Class MicrometerMetricsOptions

java.lang.Object
io.vertx.core.metrics.MetricsOptions
io.vertx.micrometer.MicrometerMetricsOptions

public class MicrometerMetricsOptions extends MetricsOptions
Vert.x micrometer configuration.

It is required to set either influxDbOptions, prometheusOptions or jmxMetricsOptions (or, programmatically, micrometerRegistry) in order to actually report metrics.

Author:
Joel Takvorian
  • Field Details

    • DEFAULT_REGISTRY_NAME

      public static final String DEFAULT_REGISTRY_NAME
      Default registry name is 'default'
      See Also:
    • DEFAULT_LABELS

      public static final List<Label> DEFAULT_LABELS
      Default label match for public http server: exclude remote label
    • DEFAULT_JVM_METRICS_ENABLED

      public static final boolean DEFAULT_JVM_METRICS_ENABLED
      Whether JVM metrics should be collected by default = false.
      See Also:
    • DEFAULT_NETTY_METRICS_ENABLED

      public static final boolean DEFAULT_NETTY_METRICS_ENABLED
      Whether Netty metrics should be collected by default = false.
      See Also:
    • DEFAULT_METRICS_NAMING

      public static final MetricsNaming DEFAULT_METRICS_NAMING
      Default metrics naming = Vert.x 4 naming
    • DEFAULT_METER_CACHED_ENABLED

      @Deprecated(forRemoval=true) public static final boolean DEFAULT_METER_CACHED_ENABLED
      Deprecated, for removal: This API element is subject to removal in a future version.
      as of 5.1, this is no longer used since Vert.x 5.0
      Whether a meter cache should be enabled by default = true.
      See Also:
  • Constructor Details

    • MicrometerMetricsOptions

      public MicrometerMetricsOptions()
      Creates default options for Micrometer metrics.
    • MicrometerMetricsOptions

      public MicrometerMetricsOptions(MicrometerMetricsOptions other)
      Creates new options object for Micrometer metrics, which is a copy of other.
    • MicrometerMetricsOptions

      public MicrometerMetricsOptions(JsonObject json)
      Creates new options object for Micrometer metrics from json input.
  • Method Details

    • toJson

      public JsonObject toJson()
      Overrides:
      toJson in class MetricsOptions
      Returns:
      a JSON representation of these options
    • setEnabled

      public MicrometerMetricsOptions setEnabled(boolean enable)
      Set whether metrics will be enabled on the Vert.x instance. Metrics are not enabled by default.
      Overrides:
      setEnabled in class MetricsOptions
      Parameters:
      enable - true if metrics enabled, or false if not.
      Returns:
      a reference to this, so the API can be used fluently
    • getDisabledMetricsCategories

      public Set<String> getDisabledMetricsCategories()
      Returns:
      the disabled metrics types.
    • setDisabledMetricsCategories

      public MicrometerMetricsOptions setDisabledMetricsCategories(Set<String> disabledMetricsCategories)
      Sets metrics types that are disabled.
      Parameters:
      disabledMetricsCategories - to specify the set of metrics types to be disabled.
      Returns:
      a reference to this, so that the API can be used fluently
    • addDisabledMetricsCategory

      public MicrometerMetricsOptions addDisabledMetricsCategory(MetricsDomain metricsDomain)
      Set metric that will not be registered. Schedulers will check the set disabledMetricsCategories when registering metrics suppliers
      Parameters:
      metricsDomain - the type of metrics
      Returns:
      a reference to this, so that the API can be used fluently
    • addDisabledMetricsCategory

      public MicrometerMetricsOptions addDisabledMetricsCategory(String category)
      Set metric that will not be registered. Schedulers will check the set disabledMetricsCategories when registering metrics suppliers
      Parameters:
      category - the type of metrics
      Returns:
      a reference to this, so that the API can be used fluently
    • isMetricsCategoryDisabled

      public boolean isMetricsCategoryDisabled(MetricsDomain metricsDomain)
      Is the given metrics category disabled?
      Returns:
      true if it is disabled
    • isMetricsCategoryDisabled

      public boolean isMetricsCategoryDisabled(String category)
      Is the given metrics category disabled?
      Returns:
      true if it is disabled
    • getRegistryName

      public String getRegistryName()
      Get the metrics registry name set in these options
    • setRegistryName

      public MicrometerMetricsOptions setRegistryName(String registryName)
      Set a name for the metrics registry, so that a new registry will be created and associated with this name. If registryName is not provided (or null), a default registry will be used. If the same name is given to several Vert.x instances (within the same JVM), they will share the same registry.
      Parameters:
      registryName - a name to uniquely identify this registry
    • getLabels

      public Set<Label> getLabels()
      Returns:
      the enabled labels.
    • setLabels

      public MicrometerMetricsOptions setLabels(Set<Label> labels)
      Sets enabled labels. These labels can be fine-tuned later on using Micrometer's Meter filters (see http://micrometer.io/docs/concepts#_meter_filters)
      Parameters:
      labels - the set of enabled labels - this set will replace any previously enabled labels, including the default ones
      Returns:
      a reference to this, so that the API can be used fluently
    • addLabels

      public MicrometerMetricsOptions addLabels(Label... labels)
      Add a labels to enable. These labels can be fine-tuned later on using Micrometer's Meter filters (see http://micrometer.io/docs/concepts#_meter_filters)
      Parameters:
      labels - the labels to enable
      Returns:
      a reference to this, so that the API can be used fluently
    • getLabelMatches

      public List<Match> getLabelMatches()
      Returns:
      the list of label matching rules
    • setLabelMatches

      public MicrometerMetricsOptions setLabelMatches(List<Match> matches)
      Set a list of rules for label matching.
      Parameters:
      matches - the new list of rules
      Returns:
      a reference to this, so the API can be used fluently
    • addLabelMatch

      public MicrometerMetricsOptions addLabelMatch(Match match)
      Add a rule for label matching.
      Parameters:
      match - the label match
      Returns:
      a reference to this, so the API can be used fluently
    • getInfluxDbOptions

      public VertxInfluxDbOptions getInfluxDbOptions()
      Get the specific options for InfluxDB reporting.
    • setInfluxDbOptions

      public MicrometerMetricsOptions setInfluxDbOptions(VertxInfluxDbOptions influxDbOptions)
      Set InfluxDB options. Setting a registry backend option is mandatory in order to effectively report metrics.
      Parameters:
      influxDbOptions - backend options for InfluxDB
    • getPrometheusOptions

      public VertxPrometheusOptions getPrometheusOptions()
      Get the specific options for Prometheus reporting.
    • setPrometheusOptions

      public MicrometerMetricsOptions setPrometheusOptions(VertxPrometheusOptions prometheusOptions)
      Set Prometheus options. Setting a registry backend option is mandatory in order to effectively report metrics.
      Parameters:
      prometheusOptions - backend options for Prometheus
    • getJmxMetricsOptions

      public VertxJmxMetricsOptions getJmxMetricsOptions()
      Get the specific options for JMX reporting.
    • setJmxMetricsOptions

      public MicrometerMetricsOptions setJmxMetricsOptions(VertxJmxMetricsOptions jmxMetricsOptions)
      Set JMX metrics options. Setting a registry backend option is mandatory in order to effectively report metrics.
      Parameters:
      jmxMetricsOptions - backend options for JMX reporting
    • isJvmMetricsEnabled

      public boolean isJvmMetricsEnabled()
      Returns:
      true if JVM metrics should be collected, false otherwise
    • setJvmMetricsEnabled

      public MicrometerMetricsOptions setJvmMetricsEnabled(boolean jvmMetricsEnabled)
      Whether JVM metrics should be collected. Defaults to false.
      Parameters:
      jvmMetricsEnabled - true to collect JVM metrics, false otherwise. Defaults to false.
      Returns:
      a reference to this, so the API can be used fluently
    • isNettyMetricsEnabled

      public boolean isNettyMetricsEnabled()
      Returns:
      true if Netty metrics should be collected, false otherwise
    • setNettyMetricsEnabled

      public MicrometerMetricsOptions setNettyMetricsEnabled(boolean nettyMetricsEnabled)
      Whether Netty metrics should be collected. Defaults to false.
      Parameters:
      nettyMetricsEnabled - true to collect Netty metrics, false otherwise. Defaults to false.
      Returns:
      a reference to this, so the API can be used fluently
    • getMetricsNaming

      public MetricsNaming getMetricsNaming()
      MetricsNaming is a structure that holds names of all metrics, each one can be changed individually.
      Returns:
      the configured MetricsNaming object (defaults to Vert.x names).
    • setMetricsNaming

      public MicrometerMetricsOptions setMetricsNaming(MetricsNaming metricsNaming)
      MetricsNaming is a structure that holds names of all metrics, each one can be changed individually. For instance, to retrieve compatibility with the names used in Vert.x 3.x, use setMetricsNaming(MetricsNaming.v3Names())
      Parameters:
      metricsNaming - a MetricsNaming object.
      Returns:
      a reference to this, so the API can be used fluently
    • getServerRequestTagsProvider

      public Function<HttpRequest, Iterable<io.micrometer.core.instrument.Tag>> getServerRequestTagsProvider()
      Returns:
      an optional custom tags provider for HTTP server requests
    • setServerRequestTagsProvider

      public MicrometerMetricsOptions setServerRequestTagsProvider(Function<HttpRequest, Iterable<io.micrometer.core.instrument.Tag>> serverRequestTagsProvider)
      Sets a custom tags provider for HTTP server requests. Allows to generate custom tags for every HttpRequest object processed through the metrics SPI.
      Parameters:
      serverRequestTagsProvider - an object that returns an iterable of Tag for a HttpRequest.
      Returns:
      a reference to this, so that the API can be used fluently
    • getClientRequestTagsProvider

      public Function<HttpRequest, Iterable<io.micrometer.core.instrument.Tag>> getClientRequestTagsProvider()
      Returns:
      an optional custom tags provider for HTTP client requests
    • setClientRequestTagsProvider

      public MicrometerMetricsOptions setClientRequestTagsProvider(Function<HttpRequest, Iterable<io.micrometer.core.instrument.Tag>> clientRequestTagsProvider)
      Sets a custom tags provider for HTTP client requests. Allows to generate custom tags for every HttpRequest object processed through the metrics SPI.
      Parameters:
      clientRequestTagsProvider - an object that returns an iterable of Tag for a HttpRequest.
      Returns:
      a reference to this, so that the API can be used fluently
    • isMeterCacheEnabled

      @Deprecated(forRemoval=true) public boolean isMeterCacheEnabled()
      Deprecated, for removal: This API element is subject to removal in a future version.
      as of 5.1, this is no longer used since Vert.x 5.0
      Returns:
      true if a meter cache should be enabled, false otherwise
    • setMeterCacheEnabled

      @Deprecated(forRemoval=true) public MicrometerMetricsOptions setMeterCacheEnabled(boolean meterCacheEnabled)
      Deprecated, for removal: This API element is subject to removal in a future version.
      as of 5.1, this is no longer used since Vert.x 5.0
      Whether a meter cache should be enabled. Defaults to true.
      Parameters:
      meterCacheEnabled - true to enable a meter cache, false otherwise. Defaults to true.
      Returns:
      a reference to this, so the API can be used fluently