Skip to content

Commit

Permalink
Add 1.34.0 release page
Browse files Browse the repository at this point in the history
Signed-off-by: Andrew Clayton <[email protected]>
  • Loading branch information
ac000 committed Dec 18, 2024
1 parent 2650c94 commit 9b64fd5
Show file tree
Hide file tree
Showing 2 changed files with 167 additions and 0 deletions.
9 changes: 9 additions & 0 deletions source/news/2024/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,15 @@ News of 2024

News archive for the year 2024.

.. nxt_news_entry::
:author: Unit Team
:description: Version 1.34.0 includes three new configuration options and a
CLI tool.
:email: [email protected]
:title: Unit 1.34.0 Released
:url: news/2024/unit-1.34.0-released
:date: 2024-12-19

.. nxt_news_entry::
:author: Unit Team
:description: Version 1.33.0 includes three new configuration options and a CLI tool.
Expand Down
158 changes: 158 additions & 0 deletions source/news/2024/unit-1.34.0-released.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
:orphan:

####################
Unit 1.34.0 Released
####################

We are pleased to announce the release of NGINX Unit 1.34.0. This release
includes a number of new features and changes:

**************************
JSON formatted access logs
**************************

This release introduces the ability to specify a JSON format for access logs.

When defining an access log you can specify 'format' as an object defining
JSON field name/value pairs, e.g.

.. code-block:: json
{
"access_log": {
"path": "/tmp/access.log",
"format": {
"remote_addr": "$remote_addr",
"time_local": "$time_local",
"request_line": "$request_line",
"status": "$status",
"body_bytes_sent": "$body_bytes_sent",
"header_referer": "$header_referer",
"header_user_agent": "$header_user_agent"
}
}
}
The JSON *values* support being strings, variables and JavaScript.

********************
OpenTelemetry (OTEL)
********************

This release includes initial support for OpenTelemtry (OTEL)
<https://opentelemetry.io/>

This support has been added via the OpenTelemetry Rust SDK and as such
requires cargo/rust to build.

An example configuration looks like

.. code-block:: json
{
"listeners": {
"[::1]:8080": {
"pass": "routes"
}
},
"settings": {
"telemetry": {
"batch_size": 20,
"endpoint": "http://example.com/v1/traces",
"protocol": "http",
"sampling_ratio": 1
}
},
"routes": [
{
"match": {
"headers": {
"accept": "*text/html*"
}
},
"action": {
"share": "/usr/share/unit/welcome/welcome.html"
}
}, {
"action": {
"share": "/usr/share/unit/welcome/welcome.md"
}
}
]
}
* **endpoint**

The endpoint for the OpenTelemetry (OTEL) Collector. This is required.

It takes a URL to either a gRPC or HTTP endpoint.

* **protocol**

Determines the protocol used to communicate with the endpoint. This is
required.

Can be either "http" or "grpc".

* **batch_size**

Number of spans to cache before triggering a transaction with the
configured endpoint. This is optional.

This allows the user to cache up to N spans before the OpenTelemetry
(OTEL) background thread sends spans over the network to the collector.

Must be a positive integer.

* **sampling_ratio**

Percentage of requests to trace. This is optional.

This allows the user to only trace anywhere from 0% to 100% of requests
that hit Unit. In high throughput environments this percentage should be
lower. This allows the user to save space in storing span data, and to
collect request metrics like time to decode headers and whatnot without
storing massive amounts of duplicate superfluous data.

Must be a positive floating point number.

This support is disabled by default but can be enabled by passing --otel
to ./configure.

***************************
Changes to language modules
***************************

* The Perl language module no longer adds a 'new' constructor to parsed
scripts. It's not required and could interfere with scripts that were
trying to use 'new' themselves...

**********************
Changes for developers
**********************

* -funsigned-char

We now compile Unit with -funsigned-char, this ensures we are using the
same char type on all platforms (what you get by default varies by
platform).

This is also a first step in getting rid of (mostly at least) our usage of
u_char and using char instead, which better aligns with libc interfaces etc.

**************
Full Changelog
**************

.. code-block:: none
Changes with Unit 1.34.0 19 Dec 2024
*) Feature: initial OpenTelemetry (OTEL) support. (Disabled by default).
*) Feature: support for JSON formatted access logs.
*) Bugfix: tweak the Perl language module to avoid breaking scripts in
some circumstances.

0 comments on commit 9b64fd5

Please sign in to comment.