Class 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 Detail

      • DEFAULT_REGISTRY_NAME

        public static final String DEFAULT_REGISTRY_NAME
        Default registry name is 'default'
        See Also:
        Constant Field Values
      • 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:
        Constant Field Values
      • DEFAULT_NETTY_METRICS_ENABLED

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

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

        public static final boolean DEFAULT_METER_CACHED_ENABLED
        Whether a meter cache should be enabled by default = true.
        See Also:
        Constant Field Values
    • Constructor Detail

      • 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 Detail

      • 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
      • getRequestsTagsProvider

        @Deprecated
        public java.util.function.Function<HttpRequest,​Iterable<io.micrometer.core.instrument.Tag>> getRequestsTagsProvider()
        Deprecated.
        use getServerRequestTagsProvider instead
        Returns:
        an optional custom tags provider for HTTP server requests
      • setRequestsTagsProvider

        @Deprecated
        public MicrometerMetricsOptions setRequestsTagsProvider​(java.util.function.Function<HttpRequest,​Iterable<io.micrometer.core.instrument.Tag>> serverRequestTagsProvider)
        Deprecated.
        use setServerRequestTagsProvider instead
        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 implementing the CustomTagsProvider interface for HttpRequest.
        Returns:
        a reference to this, so that the API can be used fluently
      • getServerRequestTagsProvider

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

        public MicrometerMetricsOptions setServerRequestTagsProvider​(java.util.function.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 java.util.function.Function<HttpRequest,​Iterable<io.micrometer.core.instrument.Tag>> getClientRequestTagsProvider()
        Returns:
        an optional custom tags provider for HTTP client requests
      • setClientRequestTagsProvider

        public MicrometerMetricsOptions setClientRequestTagsProvider​(java.util.function.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

        public boolean isMeterCacheEnabled()
        Returns:
        true if a meter cache should be enabled, false otherwise
      • setMeterCacheEnabled

        public MicrometerMetricsOptions setMeterCacheEnabled​(boolean meterCacheEnabled)
        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