Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/universeclouddev/Universe/llms.txt

Use this file to discover all available pages before exploring further.

Universe ships two metrics extension JARs that implement the MetricsProvider interface: one for Prometheus (pull-based) and one for InfluxDB 2.x (push-based). Both use Micrometer under the hood and record the same set of Universe-specific gauges and counters — the difference is only in how metrics are delivered to your monitoring stack.
Only one MetricsProvider can be active at a time. If you load both extension JARs, the last one registered during startup wins. Use extension list to verify which provider is active, and remove the unwanted JAR from ./extensions/ to disable it.

Available Metrics

Both extensions record the following metrics:
MetricTypeTagsDescription
universe.instancesGaugestate=online/offline/stoppedNumber of instances per state
universe.nodesGaugeTotal connected cluster nodes
universe.configsGaugeNumber of loaded instance configurations
universe.node.ramGaugenode_id=...RAM usage reported by each node (MB)
universe.node.cpuGaugenode_id=...CPU usage reported by each node (0.0–1.0)
In addition, both extensions automatically register Micrometer’s standard JVM and system binders:
  • JVM Memory — heap and non-heap usage, GC pool breakdown
  • JVM GC — collection counts and pause times
  • JVM Threads — live, daemon, and peak thread counts
  • CPU — system and process CPU usage
  • Uptime — JVM uptime in seconds
The Prometheus extension registers a PrometheusMeterRegistry and exposes metrics in Prometheus text format at the /api/metrics endpoint on the Master node’s REST API port.Installation: Place extension-metrics-prometheus.jar in ./extensions/ and restart Universe. No configuration file is needed.Scrape endpoint:
GET http://<master-host>:7000/api/metrics
The endpoint returns plain text in the standard Prometheus exposition format. It requires no authentication.Prometheus scrape configuration:
scrape_configs:
  - job_name: 'universe'
    static_configs:
      - targets: ['localhost:7000']
    metrics_path: '/api/metrics'
Example metric output:
# HELP universe_instances Number of instances per state
# TYPE universe_instances gauge
universe_instances{state="online"} 5.0
universe_instances{state="offline"} 0.0
universe_instances{state="stopped"} 1.0
# HELP universe_nodes Total connected cluster nodes
# TYPE universe_nodes gauge
universe_nodes 2.0
# HELP universe_node_ram_megabytes RAM usage per node in megabytes
# TYPE universe_node_ram_megabytes gauge
universe_node_ram_megabytes{node_id="node-1"} 1024.0
universe_node_ram_megabytes{node_id="node-2"} 2048.0
# HELP jvm_memory_used_bytes
# TYPE jvm_memory_used_bytes gauge
jvm_memory_used_bytes{area="heap",id="G1 Eden Space"} 6.7108864E7
Grafana dashboard: Import the JVM Micrometer dashboard (ID 4701) from grafana.com as a starting point, then add panels for the universe.* metrics.

Implementing a Custom MetricsProvider

You can ship your own metrics backend as an extension by implementing the MetricsProvider interface and registering it via MetricsRegistry. See Building Extensions for details.

Build docs developers (and LLMs) love