From 727ae40318f956dc3d3cf88831bb2964dbfde127 Mon Sep 17 00:00:00 2001 From: Radoslav Husar Date: Mon, 21 Oct 2024 13:03:19 +0200 Subject: [PATCH 1/4] WFLY-19592 MicroProfile Fault Tolerance 4.1 --- ...9592_MicroProfile_Fault_Tolerance_4_1.adoc | 133 ++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 microprofile/WFLY-19592_MicroProfile_Fault_Tolerance_4_1.adoc diff --git a/microprofile/WFLY-19592_MicroProfile_Fault_Tolerance_4_1.adoc b/microprofile/WFLY-19592_MicroProfile_Fault_Tolerance_4_1.adoc new file mode 100644 index 00000000..1762331a --- /dev/null +++ b/microprofile/WFLY-19592_MicroProfile_Fault_Tolerance_4_1.adoc @@ -0,0 +1,133 @@ +--- +categories: +- microprofile +stability-level: default +issue: https://github.com/wildfly/wildfly-proposals/issues/626 +feature-team: + developer: rhusar + sme: + - rhusar + outside-perspective: + - fabiobrz +promotes: +promoted-by: +--- += WFLY-19592 [MP Platform 7] MicroProfile Fault Tolerance 4.1 +:author: Radoslav Husar +:email: rhusar@redhat.com +:toc: left +:icons: font +:idprefix: +:idseparator: - + +== Overview + +The goal is to integrate MicroProfile (MP) Fault Tolerance (FT) 4.1 specification from the MP Platform 7.0 to WildFly at default stability level. +To certify functionality, the MP FT TCK is run as part of the WildFly testsuite. + +=== User Stories + +User wants to deploy an application using MicroProfile Fault Tolerance 4.1 from MicroProfile Platform 7.0. +Users electing to employ MicroProfile Telemetry metrics will have MicroProfile Fault Tolerance metrics collected as well. + +== Issue Metadata + +* https://issues.redhat.com/browse/WFLY-19592[WFLY-19592 MicroProfile Fault Tolerance 4.1] + +=== Related Issues + +* https://issues.redhat.com/browse/WFLY-19588[WFLY-19588 Implement MicroProfile Platform 7] – MP Platform parent issue +* https://issues.redhat.com/browse/WFLY-19590[WFLY-19590 MicroProfile Telemetry 2.0] – dependency of this issue for full Telemetry metrics integration + +=== Affected Projects or Components + +* https://github.com/wildfly/wildfly[WildFly] + +=== Other Interested Projects + +* https://github.com/eclipse/microprofile-fault-tolerance[Eclipse MicroProfile Fault Tolerance] – MP Specification and TCK sources +* https://github.com/smallrye/smallrye-fault-tolerance[SmallRye Fault Tolerance] – implementation + +=== Relevant Installation Types + +* Traditional standalone server (unzipped or provisioned by Galleon) +* Managed domain +* OpenShift Source-to-Image (S2I) +* Bootable jar + +== Requirements + +* Upgrade MP FT specification modules to 4.1. +* Upgrade SmallRye FT to 6.5.x. +* Enable collecting metrics with MP Telemetry when the subsystem is available in the server configuration. + +=== Changed requirements + +* N/A + +=== Non-Requirements + +* N/A + +=== Future Work + +None. + +== Backwards Compatibility + +The specification and the implementation do not introduce any incompatibilities from the previous version (MP FT 4.0). + +=== Default Configuration + +There are no changes to the existing configuration. + +=== Importing Existing Configuration + +The subsystem does not have any configuration, so existing subsystem configuration is not affected. + +=== Deployments + +The specification and the implementation do not introduce any incompatibilities from the previous version relevant to deployments. + +=== Interoperability + +* N/A + +== Implementation Plan + +For the integration with Telemetry metrics to function, +the integration of its https://issues.redhat.com/browse/WFLY-19590[subsystem and modules] is required. +Implementation will be done in the created `mp-7-wip` https://github.com/wildfly/wildfly/tree/mp-7-wip[branch] in WildFly upstream repository. + +== Admin Clients + +* No effect on the existing clients, there are no model changes. + +== Security Considerations + +* No security implications of this integration. + +[[test_plan]] +== Test Plan + +Manual testing, apart from initial exploratory testing, +will be performed to validate existing MP FT quickstart still functions and behaves as expected. + +The following test suites will be used to validate this change: + +* MicroProfile Fault Tolerance TCK tests will be added and executed by CI as part of the WildFly testsuite (in `testsuite/integration/microprofile-tck/fault-tolerance` module) +* WildFly-specific behavior and configuration is covered by existing tests in the WildFly testsuite (in `testsuite/integration/microprofile` module) +* Upstream https://github.com/smallrye/smallrye-fault-tolerance/tree/main/testsuite[implementation] testsuite is executed. +* The corresponding MicroProfile tests from https://github.com/jboss-eap-qe/eap-microprofile-test-suite[EAP MicroProfile test suite] + +== Community Documentation + +References to the MP FT specifications in the existing documentation will be updated to reflect the updated versions. + +== Release Note Content + +[quote] +---- +MicroProfile Fault Tolerance support in WildFly has been updated to version 4.1, implemented by SmallRye Fault Tolerance project version 6.5. +This new release brings bug fixes and updates to MP FT support, as well as adding support for Telemetry metrics. +---- From 3905bc183a4a03d7eea29d2c3587fdef771ad9d4 Mon Sep 17 00:00:00 2001 From: Radoslav Husar Date: Thu, 14 Nov 2024 12:04:43 +0100 Subject: [PATCH 2/4] Update microprofile/WFLY-19592_MicroProfile_Fault_Tolerance_4_1.adoc Co-authored-by: Fabio Burzigotti <34456377+fabiobrz@users.noreply.github.com> --- microprofile/WFLY-19592_MicroProfile_Fault_Tolerance_4_1.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/microprofile/WFLY-19592_MicroProfile_Fault_Tolerance_4_1.adoc b/microprofile/WFLY-19592_MicroProfile_Fault_Tolerance_4_1.adoc index 1762331a..001e326e 100644 --- a/microprofile/WFLY-19592_MicroProfile_Fault_Tolerance_4_1.adoc +++ b/microprofile/WFLY-19592_MicroProfile_Fault_Tolerance_4_1.adoc @@ -118,7 +118,7 @@ The following test suites will be used to validate this change: * MicroProfile Fault Tolerance TCK tests will be added and executed by CI as part of the WildFly testsuite (in `testsuite/integration/microprofile-tck/fault-tolerance` module) * WildFly-specific behavior and configuration is covered by existing tests in the WildFly testsuite (in `testsuite/integration/microprofile` module) * Upstream https://github.com/smallrye/smallrye-fault-tolerance/tree/main/testsuite[implementation] testsuite is executed. -* The corresponding MicroProfile tests from https://github.com/jboss-eap-qe/eap-microprofile-test-suite[EAP MicroProfile test suite] +* The corresponding MicroProfile tests from https://github.com/jboss-eap-qe/eap-microprofile-test-suite[EAP MicroProfile test suite], also covering MicroProfile Fault tolerance -> MicroProfile Telemetry integration. == Community Documentation From fd1c06335238ecebd8ebdaeafdd4b9284e4263d1 Mon Sep 17 00:00:00 2001 From: Radoslav Husar Date: Thu, 14 Nov 2024 12:04:53 +0100 Subject: [PATCH 3/4] Update microprofile/WFLY-19592_MicroProfile_Fault_Tolerance_4_1.adoc Co-authored-by: Fabio Burzigotti <34456377+fabiobrz@users.noreply.github.com> --- microprofile/WFLY-19592_MicroProfile_Fault_Tolerance_4_1.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/microprofile/WFLY-19592_MicroProfile_Fault_Tolerance_4_1.adoc b/microprofile/WFLY-19592_MicroProfile_Fault_Tolerance_4_1.adoc index 001e326e..cb62af1b 100644 --- a/microprofile/WFLY-19592_MicroProfile_Fault_Tolerance_4_1.adoc +++ b/microprofile/WFLY-19592_MicroProfile_Fault_Tolerance_4_1.adoc @@ -117,7 +117,7 @@ The following test suites will be used to validate this change: * MicroProfile Fault Tolerance TCK tests will be added and executed by CI as part of the WildFly testsuite (in `testsuite/integration/microprofile-tck/fault-tolerance` module) * WildFly-specific behavior and configuration is covered by existing tests in the WildFly testsuite (in `testsuite/integration/microprofile` module) -* Upstream https://github.com/smallrye/smallrye-fault-tolerance/tree/main/testsuite[implementation] testsuite is executed. +* Upstream https://github.com/smallrye/smallrye-fault-tolerance/tree/main/testsuite[implementation] testsuite is executed, also covering MicroProfile Fault tolerance -> MicroProfile Telemetry integration. * The corresponding MicroProfile tests from https://github.com/jboss-eap-qe/eap-microprofile-test-suite[EAP MicroProfile test suite], also covering MicroProfile Fault tolerance -> MicroProfile Telemetry integration. == Community Documentation From 26bb44b551c0f1d322fd66cefe7aa01082448908 Mon Sep 17 00:00:00 2001 From: Radoslav Husar Date: Thu, 21 Nov 2024 13:08:31 +0100 Subject: [PATCH 4/4] WFLY-19592 Define Telemetry and Micrometer metrics in the MicroProfile Fault Tolerance 4.1 upgrade. --- ...Y-19592_MicroProfile_Fault_Tolerance_4_1.adoc | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/microprofile/WFLY-19592_MicroProfile_Fault_Tolerance_4_1.adoc b/microprofile/WFLY-19592_MicroProfile_Fault_Tolerance_4_1.adoc index cb62af1b..14b79d2f 100644 --- a/microprofile/WFLY-19592_MicroProfile_Fault_Tolerance_4_1.adoc +++ b/microprofile/WFLY-19592_MicroProfile_Fault_Tolerance_4_1.adoc @@ -23,6 +23,7 @@ promoted-by: == Overview The goal is to integrate MicroProfile (MP) Fault Tolerance (FT) 4.1 specification from the MP Platform 7.0 to WildFly at default stability level. +The specification is implemented by SmallRye (SR) FT project. To certify functionality, the MP FT TCK is run as part of the WildFly testsuite. === User Stories @@ -58,8 +59,21 @@ Users electing to employ MicroProfile Telemetry metrics will have MicroProfile F == Requirements * Upgrade MP FT specification modules to 4.1. -* Upgrade SmallRye FT to 6.5.x. +* Upgrade SmallRye FT to latest relevant version that implements this spec. * Enable collecting metrics with MP Telemetry when the subsystem is available in the server configuration. +** Simultaneous metrics collection: +Historically, when WildFly removed MP Metrics support, +we have provided an optional Micrometer integration in SR FT in order to keep providing metrics collection support. +This integration is not defined by the FT spec. +The MP FT 4.1 spec defined MP Telemetry metrics collection. +The spec also defines concurrent collection when both MP Metrics and MP Telemetry is available. +Analogously, when both subsystems are available, we will collect metrics also with Micrometer. +While this is helpful for instance as an upgrade path, +simultaneous metrics collection might not be desirable in all situations. +For that purpose, we will be supporting MP Config properties to fine-tune metrics collectors in use. +These properties `smallrye.faulttolerance.micrometer.disabled` and `smallrye.faulttolerance.opentelemetry.disabled` +are now supported by upstream SR FT (since SR FT 6.6.3 and 6.7.0) and documented. +Note, that this is in addition to an existing spec-defined MP Config property to disable metrics collection by MP FT altogether. === Changed requirements