Class Metrics

java.lang.Object
io.kroxylicious.proxy.internal.util.Metrics

public class Metrics extends Object
  • Field Details

  • Method Details

    • clientToProxyMessageCounterProvider

      public static io.micrometer.core.instrument.Meter.MeterProvider<io.micrometer.core.instrument.Counter> clientToProxyMessageCounterProvider(String clusterName, @Nullable Integer nodeId)
    • proxyToClientMessageSizeDistributionProvider

      public static io.micrometer.core.instrument.Meter.MeterProvider<io.micrometer.core.instrument.DistributionSummary> proxyToClientMessageSizeDistributionProvider(String clusterName, @Nullable Integer nodeId)
    • proxyToClientMessageCounterProvider

      public static io.micrometer.core.instrument.Meter.MeterProvider<io.micrometer.core.instrument.Counter> proxyToClientMessageCounterProvider(String clusterName, @Nullable Integer nodeId)
    • clientToProxyMessageSizeDistributionProvider

      public static io.micrometer.core.instrument.Meter.MeterProvider<io.micrometer.core.instrument.DistributionSummary> clientToProxyMessageSizeDistributionProvider(String clusterName, @Nullable Integer nodeId)
    • serverToProxyMessageSizeDistributionProvider

      public static io.micrometer.core.instrument.Meter.MeterProvider<io.micrometer.core.instrument.DistributionSummary> serverToProxyMessageSizeDistributionProvider(String clusterName, @Nullable Integer nodeId)
    • proxyToServerMessageSizeDistributionProvider

      public static io.micrometer.core.instrument.Meter.MeterProvider<io.micrometer.core.instrument.DistributionSummary> proxyToServerMessageSizeDistributionProvider(String clusterName, @Nullable Integer nodeId)
    • serverToProxyMessageCounterProvider

      public static io.micrometer.core.instrument.Meter.MeterProvider<io.micrometer.core.instrument.Counter> serverToProxyMessageCounterProvider(String clusterName, @Nullable Integer nodeId)
    • proxyToServerMessageCounterProvider

      public static io.micrometer.core.instrument.Meter.MeterProvider<io.micrometer.core.instrument.Counter> proxyToServerMessageCounterProvider(String clusterName, @Nullable Integer nodeId)
    • clientToProxyConnectionCounter

      public static io.micrometer.core.instrument.Meter.MeterProvider<io.micrometer.core.instrument.Counter> clientToProxyConnectionCounter(String clusterName, @Nullable Integer nodeId)
    • clientToProxyDisconnectsCounter

      public static io.micrometer.core.instrument.Meter.MeterProvider<io.micrometer.core.instrument.Counter> clientToProxyDisconnectsCounter(String clusterName, @Nullable Integer nodeId, String cause)
      Creates a counter for tracking client to proxy disconnections by cause.
      Parameters:
      clusterName - the virtual cluster name
      nodeId - the node ID (can be null for bootstrap connections)
      cause - the disconnect cause label (e.g., "idle_timeout", "client_closed", "server_closed")
      Returns:
      a meter provider for the disconnect counter
    • clientToProxyErrorCounter

      public static io.micrometer.core.instrument.Meter.MeterProvider<io.micrometer.core.instrument.Counter> clientToProxyErrorCounter(String clusterName, @Nullable Integer nodeId)
    • proxyToServerConnectionCounter

      public static io.micrometer.core.instrument.Meter.MeterProvider<io.micrometer.core.instrument.Counter> proxyToServerConnectionCounter(String clusterName, @Nullable Integer nodeId)
    • proxyToServerErrorCounter

      public static io.micrometer.core.instrument.Meter.MeterProvider<io.micrometer.core.instrument.Counter> proxyToServerErrorCounter(String clusterName, @Nullable Integer nodeId)
    • serverToProxyBackpressureTimer

      public static io.micrometer.core.instrument.Meter.MeterProvider<io.micrometer.core.instrument.Timer> serverToProxyBackpressureTimer(String clusterName, @Nullable Integer nodeId)
    • clientToProxyBackpressureTimer

      public static io.micrometer.core.instrument.Meter.MeterProvider<io.micrometer.core.instrument.Timer> clientToProxyBackpressureTimer(String clusterName, @Nullable Integer nodeId)
    • clientToProxyConnectionToken

      public static ActivationToken clientToProxyConnectionToken(VirtualClusterNode node)
    • clientToProxyConnectionCounter

      public static AtomicInteger clientToProxyConnectionCounter(VirtualClusterNode node)
    • proxyToServerConnectionToken

      public static ActivationToken proxyToServerConnectionToken(VirtualClusterNode node)
    • proxyToServerConnectionCounter

      public static AtomicInteger proxyToServerConnectionCounter(VirtualClusterNode node)
    • taggedCounter

      public static io.micrometer.core.instrument.Counter taggedCounter(String counterName, List<io.micrometer.core.instrument.Tag> tags)
    • tags

      public static List<io.micrometer.core.instrument.Tag> tags(String name, String value)
    • tags

      public static List<io.micrometer.core.instrument.Tag> tags(String name1, String value1, String name2, String value2)
    • tags

      public static List<io.micrometer.core.instrument.Tag> tags(String... tagsAndValues)
    • versionInfoMetric

      public static void versionInfoMetric(VersionInfo versionInfo)
      Exposes a build info metric describing Kroxylicious version etc.
      Parameters:
      versionInfo - version info
    • reconfigureCounter

      public static io.micrometer.core.instrument.Counter reconfigureCounter(String outcome)
      Counter of reconfigure() invocations that got past pre-flight validation, tagged by outcome (success, partial_failure, catastrophic). Pre-attempt rejections (concurrent / static-section change) are deliberately not counted here — they surface as distinct exceptions and would otherwise pollute failure alerting.
    • reconfigureDurationTimer

      public static io.micrometer.core.instrument.Timer reconfigureDurationTimer()
      Timer for end-to-end reconfigure duration. Percentile histogram is published because reconfigures are rare events, so the extra bucket series are cheap and make the distribution queryable in Prometheus.
    • reconfigureClustersAffectedCounter

      public static io.micrometer.core.instrument.Counter reconfigureClustersAffectedCounter(String operation, String outcome)
      Counter of per-virtual-cluster operations applied during reconfigures, tagged by operation (add, remove, modify) and outcome (success, failure).
    • updateVirtualClusterState

      public static void updateVirtualClusterState(String clusterName, String state)
      Updates the kroxylicious_virtual_cluster_state state-set gauge so the series for state reads 1 and every other state for clusterName reads 0.

      The first call for a cluster registers a gauge for every VirtualClusterLifecycleState at once. This must only be invoked once the proxy is past startup (i.e. on a lifecycle transition, not at lifecycle construction)

    • virtualClusterStateDurationTimer

      public static io.micrometer.core.instrument.Timer virtualClusterStateDurationTimer(String clusterName, String state)
      Timer for the time a virtual cluster spent in a given lifecycle state (recorded when it leaves that state). Percentile histogram is published — lifecycle transitions are rare.
    • virtualClusterTransitionsCounter

      public static io.micrometer.core.instrument.Counter virtualClusterTransitionsCounter(String clusterName, String from, String to)
      Counter of virtual cluster lifecycle state transitions, tagged by from and to state.
    • clear

      public static void clear()
    • bindNettyEventExecutorMetrics

      public static void bindNettyEventExecutorMetrics(io.netty.channel.EventLoopGroup... eventLoopGroups)
    • bindNettyAllocatorMetrics

      public static void bindNettyAllocatorMetrics(io.netty.buffer.ByteBufAllocator alloc)