Class Metrics

java.lang.Object
org.jpos.metrics.Metrics

public class Metrics extends Object
Utility class for accessing Micrometer metrics in jPOS components.

This class provides convenient static access to the MeterRegistry for components that don't extend QBeanSupport or otherwise have direct access to the Q2 container.

Usage Examples

For QBeans (components extending QBeanSupport)

MeterRegistry registry = getServer().getMeterRegistry();

For Non-QBean components (e.g., providers, participants)

import org.jpos.metrics.Metrics;

MeterRegistry registry = Metrics.getMeterRegistry();
Counter counter = Counter.builder("my.metric")
    .description("My metric description")
    .register(registry);

Using MeterFactory for consistent metrics

MeterRegistry registry = Metrics.getMeterRegistry();
Counter counter = MeterFactory.counter(registry, myMeterInfo, Tags.of("key", "value"));
See Also:
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static io.micrometer.core.instrument.MeterRegistry
    Get the MeterRegistry from the default Q2 instance.
    static io.micrometer.core.instrument.MeterRegistry
    getMeterRegistry(long timeout)
    Get the MeterRegistry from the default Q2 instance, waiting up to timeout milliseconds.
    static io.micrometer.core.instrument.MeterRegistry
    Get the MeterRegistry from a named Q2 instance.
    static io.micrometer.core.instrument.MeterRegistry
    getMeterRegistry(String q2Name, long timeout)
    Get the MeterRegistry from a named Q2 instance, waiting up to timeout milliseconds.

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

  • Method Details

    • getMeterRegistry

      public static io.micrometer.core.instrument.MeterRegistry getMeterRegistry()
      Get the MeterRegistry from the default Q2 instance.

      For use by components that don't have direct access to Q2 (non-QBeans). This method looks up the Q2 instance registered as "Q2" in NameRegistrar and returns its MeterRegistry, or null if Q2 is not available.

      Note: Q2.getQ2() returns null if Q2 is not found (uses getIfExists internally).

      Returns:
      MeterRegistry from the default Q2 instance, or null if Q2 not available
    • getMeterRegistry

      public static io.micrometer.core.instrument.MeterRegistry getMeterRegistry(long timeout)
      Get the MeterRegistry from the default Q2 instance, waiting up to timeout milliseconds.

      This variant blocks until Q2 is available or the timeout expires. Useful during initialization when Q2 might not be fully started yet.

      Parameters:
      timeout - maximum time to wait in milliseconds
      Returns:
      MeterRegistry from Q2
      Throws:
      NameRegistrar.NotFoundException - if Q2 not found within timeout
    • getMeterRegistry

      public static io.micrometer.core.instrument.MeterRegistry getMeterRegistry(String q2Name)
      Get the MeterRegistry from a named Q2 instance.

      Use this when multiple Q2 instances are running and you need to access a specific instance's MeterRegistry.

      Parameters:
      q2Name - Q2 instance name (e.g., "Q2", "Q2-1", etc.)
      Returns:
      MeterRegistry from the named Q2 instance, or null if not found
    • getMeterRegistry

      public static io.micrometer.core.instrument.MeterRegistry getMeterRegistry(String q2Name, long timeout)
      Get the MeterRegistry from a named Q2 instance, waiting up to timeout milliseconds.
      Parameters:
      q2Name - Q2 instance name
      timeout - maximum time to wait in milliseconds
      Returns:
      MeterRegistry from named Q2 instance
      Throws:
      NameRegistrar.NotFoundException - if Q2 not found within timeout