Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WFLY-19846] Migrate MP Tel 2.0 from PREVIEW to DEFAULT #624

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
115 changes: 115 additions & 0 deletions observability/WFLY-19846-promote-mp-tel-2-to-default.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
---
categories:
- microprofile
- observability
stability-level: default
issue: https://github.com/wildfly/wildfly-proposals/issues/619
feature-team:
developer: jasondlee
sme:
-
outside-perspective:
-
promotes: https://issues.redhat.com/browse/WFLY-19590
promoted-by: https://github.com/wildfly/wildfly-proposals/issues/619
---
= [Default] Promote MicroProfile Telemetry 2.0 to WildFly Standard
:author: Jason Lee
:email: jasondlee@redhat.com
:toc: left
:icons: font
:idprefix:
:idseparator: -

== Overview

MicroProfile Telemetry 2.0 shipped with WildFly Preview 34. To meet WildFly and product roadmap goals, this feature needs to be migrated to the WildFly feature pack, and its stability level promoted to `DEFAULT`.

=== User Stories

User wants to deploy an application using MicroProfile Telemetry 2.0 from MicroProfile Platform 7.0.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you please elaborate how users can benefit from new features brought by MP Telemetry 2.0? https://microprofile.io/specifications/telemetry/2-0/ describes new features against MP Telemetry 1.1 that we have earlier


== Issue Metadata

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

=== Related Issues

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I noticed that telemetry PR adds grpc dependency here. Is this telemetry RFE blocked by grpc RFE? (https://issues.redhat.com/browse/EAP7-1819 / https://issues.redhat.com/browse/WFLY-15495 ) If yes, I believe that it should be stressed out here.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@marekkopecky No, it doesn't, this is just an internal dependency.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for your feedback! I'm not sure whether I understand. Is this dependency in module.xml not used in module.xml in built WF?


- https://issues.redhat.com/browse/EAP7-2227[]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can't recall if there was a decision to stop adding these links in the analysis doc. @darranl, @bstansberry or @jmesnil do you recall?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good question, these are useless for community. They are just convenience for us so we don't have to open the main issue and then click the linked EAP7 issue.


=== Affected Projects or Components

- MicroProfile Fault Tolerance
- AMQP

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How this WF feature affects AMQP or Kafka?

- Kafka

=== Other Interested Projects

=== Relevant Installation Types

* Traditional standalone server (unzipped or provisioned by Galleon)
* OpenShift Source-to-Image (S2I)
* Bootable jar

== Requirements

* WildFly must fully support MicroProfile Telemetry 2.0:
** Tracing - Existing support
** Metrics - New feature
** Logs - New feature
* OpenTelemetry versions must be updated to match those required by MicroProfile Telemetry 2.0

=== Changed requirements

N/A

=== Non-Requirements

Currently, neither OpenTelemetry nor MicroProfile Telemetry are supported in domain mode. While this is now technically feasible, given the push nature of the export process, support for this will have to be delivered under a different (to-be-file) feature request.

=== Future Work

N/A

== Backwards Compatibility

* There are no known breaking changes. The upstream OpenTelemetry project made a number of breaking changes to the metrics semantic conventions (which could affect user dashboards), but metrics support will be new with this release, so those changes will not affect existing installations.
Copy link

@marekkopecky marekkopecky Oct 23, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

MP Telemetry main page explicitelly mentioned two backward incompatible changes against MP telemetry 1.1 that we used earlier. Can you please double-check this?

https://microprofile.io/specifications/telemetry/2-0/

It could require additional MTA work ...


=== Default Configuration

* The default configuration will be unchanged and continue to work as is.

=== Deployments

Deployment behavior will be unaffected.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems that any work/checks for some env variables needs to be changed, see "Incompatible changes" section in https://microprofile.io/specifications/telemetry/2-0/


=== Interoperability

N/A

== Implementation Plan

N/A. Will be delivered in one release.

== Admin Clients

N/A

== Security Considerations

This change will have no effect on security. As stated in the MicroProfile Telemetry 1.0, there is no baked in notion of security with OpenTelemetry, so systems administrators will need to make sure that the endpoint for the push publication is properly configured, and that the receiving system -- whatever it may, e.g. and OpenTelemetry Collector -- is secured as desired and appropriate for that system. Such a configuration is outside the scope of the work here.

[[test_plan]]
== Test Plan

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you please add "Manual tests", "Miscellaneous checks" and "Compatibility tests" sections here according to the template?

*** Manual tests: briefly describe checks to be performed during one-time exploratory testing. The purpose of this testing is to check corner cases and other cases that are not worth implementing as automated tests. Typical checks are: bad configurations are easy to reveal, attribute descriptions and error messages are clear, names are descriptive and consistent with similar resources, default values are reasonable.


There are a number of tests already in WildFly and various downstream repositories. The WildFly test suite will be modified to add test coverage for the newly added observability signals, metrics and logging. Those tests reside in `testsuite/integration/microprofile`.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you going to add tests for observability signals and logging to https://github.com/wildfly/wildfly/pull/18305/files ? Or is there some another tracker for this?


Additionally, the MicroProfile Telemetry TCK, located in `testsuite/integration/microprofile-tck/telemetry`, will be updated to run the new MicroProfile Telemetry 2.0 TCK.

== Community Documentation

MicroProfile Telemetry already has some documentation in the community guides covering the tracing aspect. This documentation will be updated to cover metrics and logging as well.

== Release Note Content

"MicroProfile Telemetry support in WildFly has been updated to version 2.0. This new release brings bug fixes and updates to OpenTelemetry tracing support, as well as adding support for metrics and logging."