Skip to content

Commit

Permalink
Merge pull request #3449 from OpenLiberty/staging
Browse files Browse the repository at this point in the history
Publish 23.0.0.11 (and updated 23.0.0.10)
  • Loading branch information
mbroz2 authored Nov 10, 2023
2 parents e0e90d5 + 2597b2c commit 2f3a9a1
Show file tree
Hide file tree
Showing 3 changed files with 255 additions and 5 deletions.
10 changes: 6 additions & 4 deletions blog_tags.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"blog_tags": [
{
"name": "announcements",
"posts": ["23.0.0.11-beta",
"posts": ["23.0.0.11", "23.0.0.11-beta",
"23.0.0.10", "23.0.0.10-beta",
"23.0.0.9", "23.0.0.9-beta",
"23.0.0.8", "23.0.0.8-beta",
Expand Down Expand Up @@ -72,7 +72,8 @@
"featured": "true"
},{
"name": "MicroProfile",
"posts": ["23.0.0.11-beta", "23.0.0.10-beta",
"posts": ["23.0.0.11",
"23.0.0.11-beta", "23.0.0.10-beta",
"liberty-ide-tools-maven-gradle-plugins-for-java-developers", "23.0.0.6",
"rapid-startup-instanton", "23.0.0.5",
"23.0.0.3", "devnexus",
Expand Down Expand Up @@ -163,7 +164,8 @@
},
{
"name": "release",
"posts": ["23.0.0.11-beta", "23.0.0.10",
"posts": ["23.0.0.11",
"23.0.0.11-beta", "23.0.0.10",
"23.0.0.10-beta", "23.0.0.9",
"23.0.0.9-beta", "23.0.0.8",
"23.0.0.8-beta", "23.0.0.7",
Expand Down Expand Up @@ -317,7 +319,7 @@
},
{
"name": "metrics",
"posts": ["23.0.0.11-beta",
"posts": ["23.0.0.11", "23.0.0.11-beta",
"23.0.0.10-beta","23.0.0.3",
"22.0.0.12-beta", "logrecordcontext-22007",
"liberty-deep-dive", "request-timing-21006",
Expand Down
7 changes: 6 additions & 1 deletion posts/2023-10-17-23.0.0.10.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,13 @@ Laura Cowen <https://github.com/lauracowen>

Java 21 is finally here! Java 21 is the first long-term support (LTS) release since Java 17 was released two years ago. It offers some new functionality and changes that you’ll want to check out for yourself. In particular, there's the introduction of virtual threads.

In this release of Open Liberty, we also have an update to the `featureUtility` command; the command now verifies feature authenticity by default when you install a new feature into Liberty.
In this release of Open Liberty, we also have an update to the `featureUtility` command; the command now verifies feature authenticity by default when you install a new feature into Liberty. Also introduced in this release is the ability to include all files in a specified directory in your server configuration.

In link:{url-about}[Open Liberty] 23.0.0.10:

* <<java21, Support for Java 21 in Open Liberty>>
* <<feature, featureUtility now verifies feature signatures by default>>
* <<include, Include all files in a specified directory in your server configuration>>

View the list of fixed bugs in link:https://github.com/OpenLiberty/open-liberty/issues?q=label%3Arelease%3A230010+label%3A%22release+bug%22[23.0.0.10].

Expand Down Expand Up @@ -159,6 +160,10 @@ For more information, see:

// DO NOT MODIFY THIS LINE. </GHA-BLOG-TOPIC>

[#include]
== Include all files in a specified directory in your server configuration
Check out the 23.0.0.11 blog post's link:/blog/2023/11/14/23.0.0.11.html[Include all files in a specified directory in your server configuration] section.

== Get Open Liberty 23.0.0.10 now

Available through <<run,Maven, Gradle, Docker, and as a downloadable archive>>.
243 changes: 243 additions & 0 deletions posts/2023-11-14-23.0.0.11.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,243 @@
---
layout: post
title: "New vendor metrics for MicroProfile Metrics in Open Liberty 23.0.0.11"
# Do NOT change the categories section
categories: blog
author_picture: https://avatars3.githubusercontent.com/lauracowen
author_github: https://github.com/lauracowen
seo-title: New vendor metrics for MicroProfile Metrics in Open Liberty 23.0.0.11 - OpenLiberty.io
seo-description: New vendor metrics for MicroProfile Metrics that you can add directly to your dashboards, and a security fix.
blog_description: New vendor metrics for MicroProfile Metrics that you can add directly to your dashboards, and a security fix.
open-graph-image: https://openliberty.io/img/twitter_card.jpg
open-graph-image-alt: Open Liberty Logo
---
= New vendor metrics for MicroProfile Metrics in Open Liberty 23.0.0.11
Laura Cowen <https://github.com/lauracowen>
:imagesdir: /
//Blank line here is necessary before starting the body of the post.

Open Liberty 23.0.0.11 includes new vendor metrics for MicroProfile Metrics that you can add directly to your dashboards in various monitoring tools, without any additional computation on your part. Also announced in this release, but available since 23.0.0.10, is the ability to include all files in a specified directory in your server configuration. And there's a security fix.

In link:/[Open Liberty] 23.0.0.11:

* <<mpmetrics, New convenience computed metrics for MicroProfile Metrics 3.0, 4.0, and 5.0>>
* <<include, Include all files in a specified directory in your server configuration>>
* <<CVEs, Security Vulnerability (CVE) Fixes>>


View the list of fixed bugs in link:https://github.com/OpenLiberty/open-liberty/issues?q=label%3Arelease%3A230011+label%3A%22release+bug%22[23.0.0.11].

Check out link:/blog/?search=release&search!=beta[previous Open Liberty GA release blog posts].

== Develop and run your apps using 23.0.0.11

Open Liberty 23.0.0.11 is available through <<run,Maven, Gradle, Docker, and as a downloadable archive>>.

[link=https://stackoverflow.com/tags/open-liberty]
image::img/blog/blog_btn_stack.svg[Ask a question on Stack Overflow, align="center"]

// // // // DO NOT MODIFY THIS COMMENT BLOCK <GHA-BLOG-TOPIC> // // // //
// Blog issue: https://github.com/OpenLiberty/open-liberty/issues/26785
// Contact/Reviewer: pgunapal
// // // // // // // //

// The following excerpt for issue https://github.com/OpenLiberty/open-liberty/issues/26406 was found in 2023-10-31-23.0.0.11-beta.adoc.
// ------ <Excerpt From Previous Post: Start> ------
// Contact/Reviewer: pgunapal
// // // // // // // //
[#mpmetrics]
== New vendor metrics for MicroProfile Metrics 3.0, 4.0, 5.0

This update to MicroProfile Metrics 5.0 (`mpMetrics-5.0`) on Open Liberty includes some new link:/docs/latest/metrics-list.html#_base_and_vendor_metrics[vendor metrics] at the `/metrics` endpoint.

Previously, you could calculate the new metrics for yourself from the `Time` and `Total` counts that were already provided for various monitoring components. For example, to obtain a "response time per request" metric, you would calculate it using the array of time series data provided by the MicroProfile Metrics feature. However, not all monitoring tools support such complex time series expressions.

With the MicroProfile Metrics 5.0 feature, you can use the new metrics directly in the dashboards of various monitoring tools, without any additional computation.

The following table lists the new vendor metrics:

[cols="1,1,1"]
|===
|Metric 2+| Endpoint output (Prometheus format)

| | MicroProfile Metrics 5.0 | MicroProfile Metrics 3.0 & 4.0

|Process CPU Utilization Percent
|`# HELP cpu_processCpuUtilization_percent The recent CPU time that is used by the JVM process from all processors that are available to the JVM. The value is between 0 and 1. +
# TYPE cpu_processCpuUtilization_percent gauge
cpu_processCpuUtilization_percent{mp_scope="vendor",} 0.03710604254625131`
|`# TYPE vendor_cpu_processCpuUtilization_percent gauge +
# HELP vendor_cpu_processCpuUtilization_percent The recent CPU time that is used by the JVM process from all processors that are available to the JVM. The value is between 0 and 1.
vendor_cpu_processCpuUtilization_percent 0.03721734429065744`

|Heap Utilization Percent
|`# HELP memory_heapUtilization_percent The portion of the maximum heap memory that is currently in use. This metric displays -1 if the maximum heap memory size is unknown. The value is between 0 and 1.+
# TYPE memory_heapUtilization_percent gauge
memory_heapUtilization_percent{mp_scope="vendor",} 0.007193807512521744`
|`# TYPE vendor_memory_heapUtilization_percent gauge +
# HELP vendor_memory_heapUtilization_percent The portion of the maximum heap memory that is currently in use. This metric displays -1 if the maximum heap memory size is unknown. The value is between 0 and 1.
vendor_memory_heapUtilization_percent 0.0061398036777973175`

|GC Time per Cycle
|`# HELP gc_time_per_cycle_seconds The recent average time spent per garbage collection cycle. This metric displays -1 if the garbage collection elapsed time or count is unknown for this collector. +
# TYPE gc_time_per_cycle_seconds gauge
gc_time_per_cycle_seconds{mp_scope="vendor",name="global",} 0.005`
|`# TYPE vendor_gc_time_per_cycle_seconds gauge +
# HELP vendor_gc_time_per_cycle_seconds The recent average time spent per garbage collection cycle. This metric displays -1 if the garbage collection elapsed time or count is unknown for this collector.
vendor_gc_time_per_cycle_seconds{name="global"} 0.004385714285714285`

|Connection Pool in Use Time per Used Connection
|`# HELP connectionpool_inUseTime_per_usedConnection_seconds The recent average time that connections are in use. +
# TYPE connectionpool_inUseTime_per_usedConnection_seconds gauge connectionpool_inUseTime_per_usedConnection_seconds{datasource="jdbc_exampleDS1",mp_scope="vendor",} 0.497`
|`# TYPE vendor_connectionpool_inUseTime_per_usedConnection_seconds gauge +
# HELP vendor_connectionpool_inUseTime_per_usedConnection_seconds The recent average time that connections are in use.
vendor_connectionpool_inUseTime_per_usedConnection_seconds{datasource="jdbc_exampleDS1"} 0.743`

|Connection Pool Wait Time per Queued Request
|`# HELP connectionpool_waitTime_per_queuedRequest_seconds The recent average wait time for queued connection requests. +
# TYPE connectionpool_waitTime_per_queuedRequest_seconds gauge connectionpool_waitTime_per_queuedRequest_seconds{datasource="jdbc_exampleDS1",mp_scope="vendor",} 35.0`
|`# TYPE vendor_connectionpool_waitTime_per_queuedRequest_seconds gauge +
# HELP vendor_connectionpool_waitTime_per_queuedRequest_seconds The recent average wait time for queued connection requests.
vendor_connectionpool_waitTime_per_queuedRequest_seconds{datasource="jdbc_exampleDS1"} 45.0`

|Servlet Elapsed Time per Request
|`# HELP servlet_request_elapsedTime_per_request_seconds The recent average elapsed response time per servlet request. +
# TYPE servlet_request_elapsedTime_per_request_seconds gauge servlet_request_elapsedTime_per_request_seconds{mp_scope="vendor",servlet=”myapp_servletA",} 0.001256676333333333
servlet_request_elapsedTime_per_request_seconds{mp_scope="vendor",servlet=" myapp_servletB",} 0.00372855566666666
servlet_request_elapsedTime_per_request_seconds{mp_scope="vendor",servlet=" myapp_servletC",} 1.731813674`
|`# TYPE vendor_servlet_request_elapsedTime_per_request_seconds gauge +
# HELP vendor_servlet_request_elapsedTime_per_request_seconds The recent average elapsed response time per servlet request.
vendor_servlet_request_elapsedTime_per_request_seconds{servlet=”myapp_servletA",} 0.36816000695238094
vendor_servlet_request_elapsedTime_per_request_seconds{servlet=" myapp_servletB",} 0.384967335
vendor_servlet_request_elapsedTime_per_request_seconds{servlet=" myapp_servletC",} 1.333671328`

|REST Elapsed Time per Request
|`# HELP REST_request_elapsedTime_per_request_seconds The recent average elapsed response time per RESTful resource method request. +
# TYPE REST_request_elapsedTime_per_request_seconds gauge REST_request_elapsedTime_per_request_seconds{class=”my.package.MyClass",method=”simpleGet",mp_scope=”vendor"} 0.0061460695`
|`# TYPE vendor_REST_request_elapsedTime_per_request_seconds gauge +
# HELP vendor_REST_request_elapsedTime_per_request_seconds The recent average elapsed response time per RESTful resource method request.
vendor_REST_request_elapsedTime_per_request_seconds{class=”my.package.MyClass",method=”simpleGet"} 0.0024352581`

|===


The Heap Utilization and CPU Utilization metrics are available when the server is started. The Connection Pool, REST, and Servlet metrics are available if the application contains any of the relevant data sources, REST APIs, or servlets, as is the case with the existing vendor metrics.

The new vendor metrics are available in the `/metrics` output when you enable the relevant Microprofile Metrics feature (version 3.0, 4.0, or 5.0) in your `server.xml`; for example:

[source, xml]
----
<featureManager>
   <feature>mpMetrics-5.0</feature>
</featureManager>
----

For more information, see:

* link:/docs/latest/introduction-monitoring-metrics.html[Microservice observability with metrics]
* link:/docs/latest/reference/feature/mpMetrics-5.0.html[MicroProfile Metrics 5.0 feature]
* link:/docs/latest/metrics-list.html[Metrics reference list]


// ------ <Excerpt From Previous Post: End> ------

// DO NOT MODIFY THIS LINE. </GHA-BLOG-TOPIC>


// // // // DO NOT MODIFY THIS COMMENT BLOCK <GHA-BLOG-TOPIC> // // // //
// Blog issue: https://github.com/OpenLiberty/open-liberty/issues/26175
// Contact/Reviewer: rsherget
// // // // // // // //
[#include]

== Include all files in a specified directory in your server configuration


You can use the `include` element in your `server.xml` file to specify the location of files to include in your server configuration. In previous releases, you had to specify the location for each include file individually. Starting with the 23.0.0.10 release, you can place all the included files in a directory and just specify the directory location in the `include` element.


This is important because when running on Kubernetes, mounting secrets as a whole folder is the only way to reflect the change from the secret dynamically in the running pod.


In the `location` attribute of the `include` element of the `server.xml` file, enter the directory that contains your configuration files. For example:


[source,xml]
----
<include location="./common/"/>
----

After you make the changes, you can see the following output in the log:


[source]
----
[AUDIT ] CWWKG0028A: Processing included configuration resource: /Users/rickyherget/libertyGit/open-liberty/dev/build.image/wlp/usr/servers/com.ibm.ws.config.include.directory/common/a.xml
[AUDIT ] CWWKG0028A: Processing included configuration resource: /Users/rickyherget/libertyGit/open-liberty/dev/build.image/wlp/usr/servers/com.ibm.ws.config.include.directory/common/b.xml
[AUDIT ] CWWKG0028A: Processing included configuration resource: /Users/rickyherget/libertyGit/open-liberty/dev/build.image/wlp/usr/servers/com.ibm.ws.config.include.directory/common/c.xml
----
The files in the directory are processed in alphabetical order and subdirectories are ignored.

For more information about Liberty configuration includes, see link:/docs/latest/reference/config/server-configuration-overview.html#include-processing[Include configuration docs].

// DO NOT MODIFY THIS LINE. </GHA-BLOG-TOPIC>

[#CVEs]
== Security vulnerability (CVE) fixes in this release
[cols="5*"]
|===
|CVE |CVSS Score |Vulnerability Assessment |Versions Affected |Notes


|http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-46158[CVE-2023-46158]
|4.9
|Weaker security
|23.0.0.9 - 23.0.0.10
|Affects the link:/docs/latest/reference/feature/appSecurity-1.0.html[Application Security 1.0], link:/docs/latest/reference/feature/appSecurity-2.0.html[Application Security 2.0], link:/docs/latest/reference/feature/appSecurity-3.0.html[Application Security 3.0], link:/docs/latest/reference/feature/appSecurity-4.0.html[Application Security 4.0] and link:/docs/latest/reference/feature/appSecurity-5.0.html[Application Security 5.0] features.
|===

For a list of past security vulnerability fixes, reference the link:/docs/latest/security-vulnerabilities.html[Security vulnerability (CVE) list].


[#run]
== Get Open Liberty 23.0.0.11 now

If you're using link:{url-prefix}/guides/maven-intro.html[Maven], include the following in your `pom.xml` file:

[source,xml]
----
<plugin>
<groupId>io.openliberty.tools</groupId>
<artifactId>liberty-maven-plugin</artifactId>
<version>3.9</version>
</plugin>
----

Or for link:{url-prefix}/guides/gradle-intro.html[Gradle], include the following in your `build.gradle` file:

[source,gradle]
----
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'io.openliberty.tools:liberty-gradle-plugin:3.7'
}
}
apply plugin: 'liberty'
----

Or if you're using link:{url-prefix}/docs/latest/container-images.html[container images]:

[source]
----
FROM icr.io/appcafe/open-liberty
----

Or take a look at our link:{url-prefix}/start/[Downloads page].

If you're using link:https://plugins.jetbrains.com/plugin/14856-liberty-tools[IntelliJ IDEA], link:https://marketplace.visualstudio.com/items?itemName=Open-Liberty.liberty-dev-vscode-ext[Visual Studio Code] or link:https://marketplace.eclipse.org/content/liberty-tools[Eclipse IDE], you can also take advantage of our open source link:https://openliberty.io/docs/latest/develop-liberty-tools.html[Liberty developer tools] to enable effective development, testing, debugging and application management all from within your IDE.

[link=https://stackoverflow.com/tags/open-liberty]
image::img/blog/blog_btn_stack.svg[Ask a question on Stack Overflow, align="center"]

0 comments on commit 2f3a9a1

Please sign in to comment.