Skip to content

Commit

Permalink
[WFLY-18582] Add prometheus endpoint to micrometer extension
Browse files Browse the repository at this point in the history
Add analysis document
  • Loading branch information
jasondlee committed May 23, 2024
1 parent cc716ec commit 17c797e
Showing 1 changed file with 103 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
---
categories:
- observability
---
= WFLY-18582 - Add prometheus endpoint to micrometer extension
:author: Jason Lee
:email: [email protected]
:toc: left
:icons: font
:idprefix:
:idseparator: -

== Overview

Micrometer replaced Micrometer Metrics as the user-facing metrics library provided by WildFly. As part of that
transition, the export behavior moved from a pull-based Prometheus-like format to push-based mechanism using the
OpenTelemetry Protocol. Based on feedback from users who still desire to use the pull-based approach, this change will
add support for the Prometheus Registry in addition to or in place of the OTLP Registry.

== Issue Metadata

=== Issue

* https://issues.redhat.com/browse/WFLY-18582[WFLY-18582]

=== Dev Contacts

* mailto:{email}[{author}]

=== QE Contacts

=== Testing By
* [x] Engineering

* [ ] QE

=== Affected Projects or Components

Only the Micrometer subsystem and related tests will be affected

=== Other Interested Projects

=== Relevant Installation Types
* [x] Traditional standalone server (unzipped or provisioned by Galleon)

* [ ] Managed domain

* [x] OpenShift s2i

* [x] Bootable jar

== Requirements

=== Hard Requirements

* Existing servers, if configured to use Micrometer (e.g., the `endpoint` property has been set), will be migrated to be
and OTLP-based configuration. Since OTLP is the only current option, there is no ambiguity in this migration.
* Existing servers with the extension enabled but with no endpoint set will not be changed. That is to say, Micrometer
will continue to use a no-op registry.
* Support for a new registry, `PrometheusRegistry` will be added.
** It can be added as the only registry, or it can be added _in addition to_ the OTLP Registry
** The only configuration option exposed for this registry is the web context (e.g., `/prometheus`) on which the metrics
will be exposed
** If the user would like to use `/metrics`, the WildFly metrics extension must be disabled first to avoid a naming conflict.

=== Non-Requirements

* Adding other arbitrary MeterRegistry types

== Backwards Compatibility

* Existing servers should continue to operate as is, using any existing OTLP configuration without manual intervention.

=== Default Configuration

* The default context for the Prometheus scrape will be undefined and must be specified by the user when enabling support (`context`)
* The context will be secured (`secutiry-enabled`) by default

=== Importing Existing Configuration

* See above.

=== Deployments

=== Interoperability


== Security Considerations

The implementation of securing this endpoint will mirror how base metrics are secured.

== Test Plan

* Tests will be added to `testsuite/integration/microprofile/`

== Community Documentation

The WildFly Administration Guide will be updated to include this new support.

== Release Note Content

The Micrometer extension has been modified to add support for the Prometheus Registry, allowing for pull-based/scraping
of metrics information for deployments where that is preferred.

0 comments on commit 17c797e

Please sign in to comment.