Closed donbourne closed 2 hours ago
2024-03-22 - Comments from UFO review meeting:
io.openliberty.*
as pkg prefix for new API class HttpServerRequestMXBean (Fixed - original slide is now slide 27)Related to 7. is this issue investigating performance impact of overlapping filters and looking at alt. design. (Design issue discussed here https://github.com/OpenLiberty/open-liberty/issues/28098)
@Channyboy , UFO link is broken...perhaps forgot to set the link expiry?
@Channyboy I have a few questions before approving:
server_port="9079“}1.0
is that {1.0
right? It looks like a typonetwork_protocol_name
and url_scheme
will these ever have different values?@NottyCode
Will this only capture http stats for Jakarta EE 9+ or will it also work for Java EE 7+?
Currently supports JEE10+, backport for EE9 and earlier was intended for later. (Updated page16)
The UFO indicates that an existing problem is we only get metrics for some stats, not for all http, but later it talks about doing metrics for servlets which could read as if this will only work for servlets. Talking to @donbourne he suggests this will capture all http requests, but I don't think that is clear in the UFO
The feature relies on the servlet engine and the use of the servlet filters to capture the necessary information. Any feature that uses it (i.e., for JEE10+ any feature that makes uses io.openliberty.servlet.internal-6.0
and io.openliberty.servlet.internal-6.1
) like pages-3.1
, restfulWS-3.1
, servlet-6.0
, xmlWS-4.0
if requests made are captured by the servlet filter then HTTP metrics will be reported for it. (Updated page16)
slide 21
Typo fixed.
These will be the same values. network.protocol.name
is conditionally required if the version is set and the name is not http
. It will always be http, so we can remove this attribute.
Currently supports JEE10+, backport for EE9 and earlier was intended for later. (Updated page16)
Discussed with @Channyboy that we need this capability back to EE7.
@NottyCode UFO updated on page 16 to mention support back to EE7 for mpTelemetry-2.0
Sorry, I was a little keen adding the FAT Focal approval! FTS passed review but the testing still needs to go through a the mini-SOE early next week.
OL:
Serviceability Approval Comment - Please answer the following questions for serviceability approval:
UFO -- does the UFO identify the most likely problems customers will see and identify how the feature will enable them to diagnose and solve those problems without resorting to raising a PMR? Have these issues been addressed in the implementation?
Test and Demo -- As part of the serviceability process we're asking feature teams to test and analyze common problem paths for serviceability and demo those problem paths to someone not involved in the development of the feature (eg. IBM Support, test team, or another development team).
a) What problem paths were tested and demonstrated?
b) Who did you demo to?
c) Do the people you demo'd to agree that the serviceability of the demonstrated problem scenarios is sufficient to avoid PMRs for any problems customers are likely to encounter, or that IBM Support should be able to quickly address those problems without need to engage SMEs?
SVT -- SVT team is often the first team to try new features and often encounters problems setting up and using them. Note that we're not expecting SVT to do full serviceability testing -- just to sign-off on the serviceability of the problem paths they encountered. a) Who conducted SVT tests for this feature? b) Do they agree that the serviceability of the problems they encountered is sufficient to avoid PMRs, or that IBM Support should be able to quickly address those problems without need to engage SMEs?
Which IBM Support / SME queues will handle PMRs for this feature? Ensure they are present in the contact reference file and in the queue contact summary, and that the respective IBM Support/SME teams know they are supporting it. Ask Don Bourne if you need links or more info.
Does this feature add any new metrics or emit any new JSON events? If yes, have you updated the JMX metrics reference list / Metrics reference list / JSON log events reference list in the Open Liberty docs?
Approving. David Mueller indicated that he has/will have the info that he needs to make the doc updates.
@clarkek123 will be handling the serviceability approval for this epic.
Thanks for completing the FTS. The results from the mini-SOE are good, so adding FAT Focal approval.
Approving performance while noting some work may need to be done in the future: https://github.com/OpenLiberty/open-liberty/issues/29396.
@clarkek123 Serviceability Approval Comment - Please answer the following questions for serviceability approval:
UFO -- does the UFO identify the most likely problems customers will see and identify how the feature will enable them to diagnose and solve those problems without resorting to raising a PMR? Have these issues been addressed in the implementation?
There are no common error scenarios expected as listed in the UFO. However a customer may come across a performance problems or concerns since the underlying
monitor-1.0
feature enables all runtime components to create stats/metrics. The customer can customize this by using thefilter
attribute of themonitor-1.0
configuration element (<monitor>
) to explicitly enable the runtime components they want (i.e., only HTTP). This is configuration related tomonitor-1.0
separate from this feature. This feature just relies on the appearance of the stats bymonitor-1.0
and creating metrics with the provided information. (i.e., synchronizing/reading with available data).
Test and Demo -- As part of the serviceability process we're asking feature teams to test and analyze common problem paths for serviceability and demo those problem paths to someone not involved in the development of the feature (eg. IBM Support, test team, or another development team). a) What problem paths were tested and demonstrated?
As mentioned above, there are no common error scenarios. But will demo the use of the
monitor-1.0
filter attribute and the switch between runtime and application configured MP Telemetry behavior (behavior that is part of by parent MP Telemetry 2.0 feature)
b) Who did you demo to?
Install team.
c) Do the people you demo'd to agree that the serviceability of the demonstrated problem scenarios is sufficient to avoid PMRs for any problems customers are likely to encounter, or that IBM Support should be able to quickly address those problems without need to engage SMEs?
Yes.
SVT -- SVT team is often the first team to try new features and often encounters problems setting up and using them. Note that we're not expecting SVT to do full serviceability testing -- just to sign-off on the serviceability of the problem paths they encountered. a) Who conducted SVT tests for this feature?
Dan Guinan
b) Do they agree that the serviceability of the problems they encountered is sufficient to avoid PMRs, or that IBM Support should be able to quickly address those problems without need to engage SMEs?
Yes
Which IBM Support / SME queues will handle PMRs for this feature? Ensure they are present in the contact reference file and in the queue contact summary, and that the respective IBM Support/SME teams know they are supporting it. Ask Don Bourne if you need links or more info.
WAS L3: Metrics
Does this feature add any new metrics or emit any new JSON events? If yes, have you updated the JMX metrics reference list / Metrics reference list / JSON log events reference list in the Open Liberty docs?
Yes
@Channyboy I have reviewed the Serviceability information above and have additional questions. The UFO for HTTP Metrics Serviceability page 42 shows N/A, so perhaps there are no common error scenarios that require testing for this feature. Please confirm if that is the case.
The purpose of the Serviceability review is to ensure that common error scenarios have been tested and reviewed by a team other than the local team. For common error scenarios, the feature should provide good messages or responses so that customers can resolve the errors themselves without having to call IBM support. Common errors could be conflicts in configuration parameters, connection errors, feature configured with incompatible JakartaEE or Java level, and so on.
I have added serviceability approval based on the information provided in the UFO and template along with the demo to the install team and serviceability review by the SVT team.
Description
Open Liberty needs HTTP metrics to allow for:
For mpMetrics, metric naming should be based on rules from OpenTelemetry semantic conventions. Note that work on MP Metrics 5.0 is in progress and that spec could influence the naming of HTTP metrics. see https://opentelemetry.io/docs/reference/specification/metrics/semantic_conventions/http-metrics/#http-server
Metrics for HTTP MUST avoid cardinality explosion. To that end, the use of URL templates is required so that metrics are meaningful and number of distinct metric names is not unbounded.
see also what metrics Spring includes for HTTP: https://www.baeldung.com/micrometer
Documents
When available, add links to required feature documents. Use "N/A" to mark particular documents which are not required by the feature.
Aha: Externally raised RFE (Aha)
UFO: Link to Upcoming Feature Overview document
FTS: Link to Feature Test Summary GH Issue https://github.com/OpenLiberty/open-liberty/issues/29385
Beta Blog: Link to Beta Blog Post GH Issue https://github.com/OpenLiberty/open-liberty/issues/29019
GA Blog: Link to GA Blog Post GH Issue: https://github.com/OpenLiberty/open-liberty/issues/29558 (shared blog with main Telemetry 2.0 feature)
Process Overview
Prioritization
Design
Implementation
Legal and Translation
Beta
GA
Other Deliverables
General Instructions
The process steps occur roughly in the order as presented. Process steps occasionally overlap.
Each process step has a number of tasks which must be completed or must be marked as not applicable ("N/A").
Unless otherwise indicated, the tasks are the responsibility of the Feature Owner or a Delegate of the Feature Owner.
If you need assistance, reach out to the OpenLiberty/release-architect.
Important: Labels are used to trigger particular steps and must be added as indicated.
Prioritization (Complete Before Development Starts)
The (OpenLiberty/chief-architect) and area leads are responsible for prioritizing the features and determining which features are being actively worked on.
Prioritization
[x] Feature added to the "New" column of the Open Liberty project board
[x] Priority assigned
Design (Complete Before Development Starts)
Design preliminaries determine whether a formal design, which will be provided by an Upcoming Feature Overview (UFO) document, must be created and reviewed. A formal design is required if the feature requires any of the following: UI, Serviceability, SVT, Performance testing, or non-trivial documentation/ID.
Design Preliminaries
ID Required
, if non-trivial documentation needs to be created by the ID team.ID Required - Trivial
, if no design will be performed and only trivial ID updates are needed.Design
Design Review Request
Design Approved
No Design
No Design Approval Request
No Design Approved
FAT Documentation
[ ] "Feature Test Summary" child task created
Implementation
A feature must be prioritized and socialized (or
No Design Approved
) before any implementation work may begin and is the minimum before any beta code may be delivered. All new Liberty content must be inaccessible in our GA releases until it is Feature Complete by either marking itkind=noship
or beta fencing it.Code may not GA until this feature has obtained the "Design Approved" or "No Design Approved" label, along with all other tasks outlines in GA section.
Feature Development Begins
In Progress
labelLegal and Translation
In order to avoid last minute blockers and significant disruptions to the feature, the legal items need to be done as early in the feature process as possible, either in design or as early into the development as possible. Similarly, translation is to be done concurrently with development. Both MUST be completed before Beta or GA is requested.
Legal (Complete before Feature Complete Date)
Translation (Complete 1 week before Feature Complete Date)
[ ] PII updates are merged, or N/A. Note timing with translation shipments.
Beta
In order to facilitate early feedback from users, all new features and functionality should first be released as part of a beta release.
Beta Code
kind=beta
,ibm:beta
,ProductInfo.getBetaEdition()
target:beta
and the appropriatetarget:YY00X-beta
(where YY00X is the targeted beta version).release:YY00X-beta
(where YY00X is the first beta version that included the functionality).Beta Blog (Complete 1.5 weeks before beta eGA)
[x] Beta blog issue created and populated using the Open Liberty BETA blog post template.
GA
A feature is ready to GA after it is Feature Complete and has obtained all necessary Focal Point Approvals.
Feature Complete
target:ga
and the appropriatetarget:YY00X
(where YY00X is the targeted GA version).Focal Point Approvals (Complete by Feature Complete Date)
These occur only after GA of this feature is requested (by adding a
target:ga
label). GA of this feature may not occur until all approvals are obtained.All Features
focalApproved:fat
.focalApproved:demo
.focalApproved:globalization
.Design Approved Features
focalApproved:accessibility
.focalApproved:externals
focalApproved:id
.focalApproved:performance
.focalApproved:sve
.focalApproved:ste
.focalApproved:svt
.Remove Beta Fencing (Complete by Feature Complete Date)
GA Blog (Complete by Feature Complete Date)
Post GA
[ ] Replace
target:YY00X
label with the appropriaterelease:YY00X
. (OpenLiberty/release-manager)Other Deliverables
[ ] OL Guides OL Guides assessment is complete or N/A. (Yee-Kang Chang)
[ ] Standalone Feature Blog Post A blog post specifically about your feature or N/A. (OpenLiberty/release-architect)
[ ] WDT Liberty Developer Tools work is complete or N/A. (Leonard Theivendra)