Can StatLite monitor a Pyronaut Python app?

A focused compatibility check: can a Pyronaut application use StatLite's existing Micronaut collector without Pyronaut-specific StatLite code?

Question

Can a Python app built with Pyronaut expose the Micronaut and Micrometer Prometheus metrics that StatLite already understands?

Setup

ComponentVersion
Pyronaut CLI0.1.0
Micronaut Core / Platform5.2.14 / 5.2.1
Micronaut Micrometer / Micrometer6.1.0 / 1.17.1
GraalPy25.4.4.1.1, Python 3.13.14
GraalVM CE / JDK25.4.4.1.1 / 25.0.4.1.1
StatLite0.6.0, released

The app was a one-route HTTP service, run in Docker on Ubuntu 24.04.4 x86_64. It explicitly enabled Micronaut management, Micrometer, and the Prometheus registry, and configured `/prometheus` and `/health`.

Test

  1. Start the small Pyronaut app; /hello returns Hello from Pyronaut.
  2. Request /hello several times and make a 404 request so request metrics are materialized.
  3. Inspect /prometheus and /health.
  4. Poll /prometheus with released StatLite using the ordinary Micronaut target every five seconds.
targets:
  - name: pyronaut-demo
    type: micronaut
    url: http://127.0.0.1:18088/prometheus

Result

PASS. StatLite 0.6.0 detected Micronaut Metrics, reported the target compatible, and collected 15 successful polls over about 68 seconds. Application health was UP, with no collection failures. All nine supported normalized signals were available:

  • http_requests_total
  • http_404_total
  • http_4xx_total
  • http_5xx_total
  • http_request_time_total_seconds
  • process_cpu_usage
  • jvm_heap_used_bytes
  • process_start_time
  • process_uptime

HTTP count and duration changed after traffic. The raw HTTP timer was a Micrometer summary with the expected `_count` and `_sum` series and method, status, URI, and exception labels.

Why it works

With Micronaut management and Micrometer Prometheus enabled, the Pyronaut app exposes the ordinary Prometheus series StatLite's existing Micronaut target already collects, so no StatLite changes were required.

Caveat

This demonstrates Pyronaut compatibility, not generic Python framework support. It says nothing about FastAPI, Django, Flask, or other Python applications. JVM CPU, heap, start-time, and uptime metrics describe the underlying JVM/GraalPy process. The heap metric is not a separate Python interpreter heap measurement.

Sources