Skip to main content
Version: NG-2.16

Quarkus

Introduction

The Quarkus O11ySource provides comprehensive observability for Quarkus-based JVM applications by collecting and exposing key application and JVM metrics. It offers end-to-end visibility into application performance and health, including HTTP server requests, latency, error rates, active connections, JVM memory utilization, garbage collection, thread activity, class loading, buffer pools, Netty metrics, worker pool utilization, process and system CPU usage, file descriptor utilization, and runtime information.

Getting Started

Compatibility

vuSmartMaps support Quarkus monitoring for applications with the following requirements:

  • Quarkus Runtime: JVM mode
  • Quarkus Version: 2.x LTS or 3.x LTS
  • Java Version: 11 or above for Quarkus 2.x; Java 17 or above for Quarkus 3.x
  • Build Tool: Maven 3.8.4 or above
  • Required metrics extension: quarkus-micrometer-registry-prometheus
  • Optional health extension: quarkus-smallrye-health
  • GraalVM native mode is partially supported only for non-JVM metrics; JVM memory, GC, thread, and classloading panels will not populate for native-mode services.

Data Collection Method

The Quarkus O11ySource utilizes the vuSmartMaps internal agent to collect Quarkus application metrics. The agent pulls Micrometer metrics from the Quarkus metrics endpoint and forwards the events through the metrics pipeline. No agent installation is required on the Quarkus host.

Prerequisites

Inputs for Configuring Data Source

  • Host: The IP address or FQDN of the Quarkus application. This field uniquely identifies each application added in this source configuration.
  • Port Number: The port in which the Quarkus application or management endpoint is running.
  • Period (in seconds): How frequently data is gathered. The period should be between 60 seconds and 300 seconds.

Firewall Requirement

To collect data from this O11ySource, ensure the following ports are opened:

Source IPDestination IPDestination PortProtocolDirection
vuSmartMaps IPIP Address or FQDN of the Quarkus applicationThe Quarkus application port (typically 8080) or the Quarkus management port (typically 9000) when quarkus.management.enabled=trueTCPOutbound

*Before providing the firewall requirements, please update the port based on the customer environment.

Configuring the Target

The Quarkus application must be configured to expose metrics before onboarding:

Dependencies: Add the following to your pom.xml: <dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-micrometer-registry-prometheus</artifactId> </dependency> <dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-smallrye-health</artifactId> </dependency> Application Properties: Confirm or add the following in src/main/resources/application.properties: quarkus.micrometer.enabled=true quarkus.micrometer.export.prometheus.enabled=true quarkus.micrometer.export.prometheus.path=/q/metrics quarkus.smallrye-health.root-path=/q/health quarkus.micrometer.binder.http-server.match-patterns=/api/users/{id}=/api/users,/api/orders/{id}=/api/orders Optional Configuration:

    • Enable JDBC pool metrics only if required: quarkus.datasource.metrics.enabled=true
    • If quarkus.management.enabled=true, use the management port for all /q/* endpoints. The default management port is 9000.
    • If the metrics endpoint is protected, configure the matching authentication mode for the metrics endpoint.

Endpoints to verify from the collector host:

    • curl http://<host>:<port>/q/metrics
    • curl http://<host>:<port>/q/health

Configuration Steps

  • Enable the O11ySource for Quarkus.
  • Select the Sources tab and press the + button to add a new Quarkus instance.
  • Provide the required configurations in the UI:
  • *Host
  • *Port
  • *Period
  • Verify the host and port point to the Quarkus application port or to the management port if management endpoints are enabled.
  • Click Save to create the instance.

Metrics Collected

NameDescriptionData Type
TimestampCollection timestamp with millisecond precision used for time filtering and partitioning.DateTime64(3)
NameRaw Telegraf measurement name emitted by the metrics input.String
Doc TypeDocument or measurement type used to route Quarkus telemetry records.String
HostHost label from Telegraf for the scraped Quarkus endpoint.String
URLFull metrics scrape URL used by Telegraf.String
ActionGarbage collection action label.String
Allocator TypeNetty allocator type label.String
AreaJVM memory area label such as heap or nonheap.String
Cache TypeCache type label emitted by Quarkus/Micrometer when present.String
CauseGarbage collection cause label.String
ClassClass label emitted by runtime metrics when present.String
ExecutorExecutor or worker pool label.String
GCGarbage collector name label.String
IDMetric identifier label, commonly JVM memory pool name.String
Memory TypeMemory type label emitted by allocator metrics.String
MethodHTTP method label for server request metrics.String
OutcomeHTTP request outcome label such as SUCCESS or SERVER_ERROR.String
PoolPool label for worker, allocator, or memory pool metrics.String
Pool NameDetailed pool name label.String
Pool TypePool type label.String
RuntimeRuntime label, usually JVM runtime information.String
Server PortServer port label for the Quarkus HTTP endpoint.String
StateJVM thread state label.String
StatusHTTP response status label for server request metrics.String
URIHTTP route or URI label for server request metrics.String
URL SchemeURL scheme label such as http or https.String
VendorJVM vendor label.String
VersionJVM or runtime version label.String
Demo Background Jobs TotalDemo application background job counter exposed through application metrics.UInt64
HTTP Server Active ConnectionsCurrent number of active HTTP server connections.UInt64
HTTP Server Active RequestsCurrent number of in-flight HTTP server requests.UInt64
HTTP Server Bytes Read CountHTTP server bytes read metric emitted by Quarkus/Micrometer.UInt64
HTTP Server Bytes Read MaxHTTP server bytes read metric emitted by Quarkus/Micrometer.Float64
HTTP Server Bytes Read SumHTTP server bytes read metric emitted by Quarkus/Micrometer.Float64
HTTP Server Bytes Written CountHTTP server bytes written metric emitted by Quarkus/Micrometer.UInt64
HTTP Server Bytes Written MaxHTTP server bytes written metric emitted by Quarkus/Micrometer.Float64
HTTP Server Bytes Written SumHTTP server bytes written metric emitted by Quarkus/Micrometer.Float64
HTTP Server Connections Seconds Active CountHTTP server connection duration metric emitted by Quarkus/Micrometer.UInt64
HTTP Server Connections Seconds Duration SumHTTP server connection duration metric emitted by Quarkus/Micrometer.Float64
HTTP Server Connections Seconds MaxHTTP server connection duration metric emitted by Quarkus/Micrometer.Float64
HTTP Server Errors TotalCumulative HTTP server error count.UInt64
HTTP Server Requests Seconds CountCumulative HTTP server request count from Quarkus Micrometer metrics.Float64
HTTP Server Requests Seconds MaxMaximum observed HTTP server request duration in seconds for the scrape window.Float64
HTTP Server Requests Seconds SumCumulative HTTP server request duration in seconds; used with request count for average latency.Float64
JVM Buffer Count BuffersJVM buffer pool metric collected from the Quarkus metrics endpoint.UInt64
JVM Buffer Memory Used BytesJVM buffer pool metric collected from the Quarkus metrics endpoint.UInt64
JVM Buffer Total Capacity BytesJVM buffer pool metric collected from the Quarkus metrics endpoint.UInt64
JVM Classes Loaded ClassesJVM class loading metric collected from the Quarkus metrics endpoint.UInt64
JVM Classes Loaded Count Classes TotalJVM class loading metric collected from the Quarkus metrics endpoint.UInt64
JVM Classes Unloaded Classes TotalJVM class loading metric collected from the Quarkus metrics endpoint.UInt64
JVM GC Live Data Size BytesJVM garbage collection metric collected from the Quarkus metrics endpoint.UInt64
JVM GC Max Data Size BytesJVM garbage collection metric collected from the Quarkus metrics endpoint.UInt64
JVM GC Memory Allocated Bytes TotalJVM garbage collection metric collected from the Quarkus metrics endpoint.UInt64
JVM GC Memory Promoted Bytes TotalJVM garbage collection metric collected from the Quarkus metrics endpoint.UInt64
JVM GC OverheadJVM garbage collection metric collected from the Quarkus metrics endpoint.Float64
JVM GC Pause Seconds CountJVM garbage collection metric collected from the Quarkus metrics endpoint.Float64
JVM GC Pause Seconds MaxJVM garbage collection metric collected from the Quarkus metrics endpoint.Float64
JVM GC Pause Seconds SumJVM garbage collection metric collected from the Quarkus metrics endpoint.Float64
JVM Info TotalJVM information metric with runtime/vendor/version dimensions.UInt64
JVM Memory Committed BytesJVM memory metric collected from the Quarkus metrics endpoint.UInt64
JVM Memory Max BytesJVM memory metric collected from the Quarkus metrics endpoint.Int64
JVM Memory Usage After GCJVM memory metric collected from the Quarkus metrics endpoint.Float64
JVM Memory Used BytesJVM memory metric collected from the Quarkus metrics endpoint.UInt64
JVM Threads Daemon ThreadsJVM thread metric collected from the Quarkus metrics endpoint.UInt64
JVM Threads Live ThreadsJVM thread metric collected from the Quarkus metrics endpoint.UInt64
JVM Threads Peak ThreadsJVM thread metric collected from the Quarkus metrics endpoint.UInt64
JVM Threads Started Threads TotalJVM thread metric collected from the Quarkus metrics endpoint.UInt64
JVM Threads States ThreadsJVM thread metric collected from the Quarkus metrics endpoint.UInt64
Netty Allocator Memory PinnedNetty allocator metric exposed by Quarkus/Micrometer.UInt64
Netty Allocator Memory UsedNetty allocator metric exposed by Quarkus/Micrometer.UInt64
Netty Allocator Pooled ArenasNetty allocator metric exposed by Quarkus/Micrometer.UInt64
Netty Allocator Pooled Cache SizeNetty allocator metric exposed by Quarkus/Micrometer.UInt64
Netty Allocator Pooled Chunk SizeNetty allocator metric exposed by Quarkus/Micrometer.UInt64
Netty Allocator Pooled Threadlocal CachesNetty allocator metric exposed by Quarkus/Micrometer.UInt64
Netty Eventexecutor Tasks PendingNetty event executor metric exposed by Quarkus/Micrometer.UInt64
Netty Eventexecutor WorkersNetty event executor metric exposed by Quarkus/Micrometer.UInt64
Process CPU Time Ns TotalJVM process resource metric collected from the Quarkus metrics endpoint.UInt64
Process CPU UsageJVM process resource metric collected from the Quarkus metrics endpoint.Float64
Process Files Max FilesJVM process resource metric collected from the Quarkus metrics endpoint.UInt64
Process Files Open FilesJVM process resource metric collected from the Quarkus metrics endpoint.UInt64
Process Start Time SecondsJVM process resource metric collected from the Quarkus metrics endpoint.Float64
Process Uptime SecondsJVM process resource metric collected from the Quarkus metrics endpoint.Float64
System CPU CountSystem resource metric collected from the Quarkus metrics endpoint.UInt64
System CPU UsageSystem resource metric collected from the Quarkus metrics endpoint.Float64
System Load Average 1mSystem resource metric collected from the Quarkus metrics endpoint.Float64
Worker Pool ActiveQuarkus worker pool metric collected from the metrics endpoint.UInt64
Worker Pool Completed TotalQuarkus worker pool metric collected from the metrics endpoint.UInt64
Worker Pool IdleQuarkus worker pool metric collected from the metrics endpoint.UInt64
Worker Pool Queue Delay Seconds CountQuarkus worker pool metric collected from the metrics endpoint.Float64
Worker Pool Queue Delay Seconds MaxQuarkus worker pool metric collected from the metrics endpoint.Float64
Worker Pool Queue Delay Seconds SumQuarkus worker pool metric collected from the metrics endpoint.Float64
Worker Pool Queue SizeQuarkus worker pool metric collected from the metrics endpoint.UInt64
Worker Pool RatioQuarkus worker pool metric collected from the metrics endpoint.Float64
Worker Pool Rejected TotalQuarkus worker pool metric collected from the metrics endpoint.UInt64
Worker Pool Usage Seconds CountQuarkus worker pool metric collected from the metrics endpoint.Float64
Worker Pool Usage Seconds MaxQuarkus worker pool metric collected from the metrics endpoint.Float64
Worker Pool Usage Seconds SumQuarkus worker pool metric collected from the metrics endpoint.Float64
TargetTarget Quarkus instance identifier or IP used as lookup key.String