Skip to content

Commit d461eac

Browse files
authored
Merge pull request #826 from openconfig/0.45.0-changelog
Add changelog for version 0.45.0
2 parents 4bbf2fc + 5e71fff commit d461eac

File tree

1 file changed

+134
-13
lines changed

1 file changed

+134
-13
lines changed

docs/changelog.md

Lines changed: 134 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,56 @@
11
## Changelog
22

3+
### v0.45.0 - March 2nd 2026
4+
5+
- Prometheus and Prometheus RemoteWrite outputs:
6+
7+
- When converting values to labels, duplicate label names are now resolved by prepending parent path elements until uniqueness is achieved, preventing metrics from being dropped.
8+
9+
- Get/Set commands:
10+
11+
- Custom gNMI extensions can be included in requests via `--registered-extensions` and a JSON payload; use `--proto-dir` and `--proto-file` to specify the extension Protobuf definitions.
12+
13+
- Formatters:
14+
15+
- JSON output no longer escapes HTML characters (`<`, `>`, `&`), producing more readable output for values such as path prefixes containing `->`.
16+
17+
- Outputs:
18+
19+
- OTLP: Implemented dynamic config via `Update()` and `UpdateProcessor()`, configurable Resource vs DataPoint level attributes, support for multiple metrics per gNMI message, and include gNMIc version in OTLP resource scope.
20+
21+
- Target:
22+
23+
- Target last error is now reflected in a consistent way across collector state and API responses.
24+
25+
- gNMI API:
26+
27+
- Improved error formatting and added tests for the `pkg/api` package.
28+
29+
- Performance:
30+
31+
- Pool bytes buffers and strings builders where it makes sense to reduce allocations.
32+
33+
- Dependencies:
34+
35+
- Bumped `github.com/cloudflare/circl` from 1.6.1 to 1.6.3.
36+
- Bumped `github.com/go-git/go-git/v5` from 5.13.0 to 5.16.5.
37+
- Bumped `go.opentelemetry.io/otel/sdk` from 1.38.0 to 1.40.0.
38+
339
### v0.44.0 - February 17th 2026
440

5-
- gNMI Extension:
41+
- gNMI Extensions:
642

7-
- gNMI extension are not parsed and properly displayed given the corresponding Protobuf files
43+
- gNMI extensions in get, set, and subscribe responses are now parsed and displayed as JSON when using `--proto-dir`, `--proto-file`, and `--registered-extensions` with the corresponding Protobuf files.
844

945
- Collector mode:
1046

1147
- Collector mode now stores Targets state (gNMI connection and subscription(s) state) in a separate store.
1248

1349
- Collector mode supports an SSE endpoint streaming config and state for any object (Target, subscription, outputs, etc.)
1450

15-
- Target
51+
- Target:
1652

17-
- Multiple gRPC level config knobs can now be set per target: gRPC read/write buffer, gRPC window size,...
53+
- Multiple gRPC level config knobs can now be set per target: gRPC read/write buffer, gRPC window size, and other dial options. Configuration is documented in the target configuration reference.
1854

1955
### v0.43.0 - February 1st 2026
2056

@@ -23,46 +59,131 @@
2359
- Jetstream:
2460
- Added support for configuring `max-ack-pending` to limit the maximum number of unacknowledged messages on a NATS JetStream input.
2561
- DeliverPolicy and AckPolicy are now fully configurable for greater flexibility and control.
62+
- Added NATS JetStream workqueue retention pattern support for exactly-once message processing in task distribution scenarios.
63+
64+
- Outputs:
65+
66+
- Jetstream:
67+
- Added `retention-policy` configuration option with support for `limits` (default) and `workqueue` retention policies.
68+
- Stream existence verification with detailed logging; omit `create-stream` to use existing streams.
69+
70+
- Introduced support for OpenTelemetry Protocol (OTLP) as an output destination, enabling direct export of telemetry data to OTLP-compatible backends with full metric conversion (gauges, counters, histograms) and custom resource attributes.
2671

2772
- Commands:
2873

2974
- Added the new `collector` command: Runs gNMIc in collector mode, enabling dynamic, live updates to all configuration objects including targets, subscriptions, outputs, inputs, and processors. Unlike the `subscribe` command, the `collector` command supports on-the-fly configuration changes via the REST API, without requiring a restart. gNMIc automatically reconciles changes to maintain the desired state.
3075

3176
- The `collector` command also includes a suite of subcommands, allowing you to configure the gNMIc collector directly from the CLI.
3277

33-
- Outputs:
78+
- Formatters:
79+
80+
- Flat format: Fixed leading slash handling when origin is not included in prefix or prefix is non-existent, ensuring consistent path formatting across all notification types.
81+
82+
- Processors:
83+
84+
- `event_group_by` processor now correctly handles delete events.
3485

35-
- Introduced support for OpenTelemetry as an output destination, enabling seamless integration with observability platforms.
86+
- API:
3687

88+
- Fixed the API path to patch subscriptions for a target ID.
89+
90+
- Target:
91+
92+
- When a target is removed, it is now also removed from the configuration.
93+
94+
- Dependencies:
95+
96+
- Fixed `gnmic/pkg/api` module version mismatch in go.mod for consumers building gNMIc as a dependency.
97+
- Bumped `golang.org/x/crypto` to v0.45.0.
3798

3899
### v0.42.0 - September 19th 2025
39100

40101
- Inputs:
41102

42103
- Add support for NATS Jetstream input type.
43104

105+
- Kafka: Fixed event parsing when `eventMsg` was not initialized, preventing nil pointer dereference.
106+
44107
- Loader:
45108

46-
- Loaded targets subscribe requests are now subject the `subscribe-backoff` timer.
47-
- Loaded target configuration now supports ENV variables when `expand-env` is set to true.
109+
- Loaded targets subscribe requests are now subject to the `subscribe-backoff` timer when new targets are added via loaders (HTTP, file, etc.) or config change events.
110+
111+
- Loaded target configuration now supports environment variable expansion when `expand-env` is set to true, enabling per-target credentials via env vars.
112+
113+
- Consul loader: Fixed tag matching logic to allow services with extra metadata tags (subset matching); services with required tags plus additional tags are no longer incorrectly rejected.
114+
115+
- Consul loader: Improved Go template parsing for target name and event-tags.
116+
117+
- HTTP loader: Various fixes and added tests (fixes #712).
118+
119+
- Outputs:
120+
121+
- Kafka: Fixed missing label in error metric that could cause panics when error reason was unavailable.
48122

49123
- gNMI server:
50124

51-
- The unary RPCs timeout is now configurable.
125+
- The unary RPCs timeout is now configurable via `gnmi-server.timeout` in the config (default remains 2 minutes).
126+
127+
- Get command:
128+
129+
- Added optional organization and version for model selection: prepend `/` for organization, append `:` for version when specifying models.
130+
131+
- Subscribe:
132+
133+
- Fixed `sync_response` output being suppressed for ONCE mode subscriptions; behavior now matches STREAM mode.
52134

53135
- Targets:
54136

55-
- A new internal prometheus metric was added `gnmic_target_connection_state`. It reflect the gRPC client connection state with values: 0(UNKNOWN), 1 (IDLE), 2 (CONNECTING), 3 (READY), 4 (TRANSIENT_FAILURE), or 5 (SHUTDOWN).
56-
137+
- A new internal Prometheus metric `gnmic_target_connection_state` reflects the gRPC client connection state with values: 0 (UNKNOWN), 1 (IDLE), 2 (CONNECTING), 3 (READY), 4 (TRANSIENT_FAILURE), or 5 (SHUTDOWN). The `target_up` metric now correctly reflects connection failures (e.g., auth issues).
138+
139+
- Bug fixes:
140+
141+
- Fixed memory leak when subscription fails: `cancel()` reference was kept alive indefinitely.
142+
143+
- Fixed OS environment variable values being incorrectly lowercased (fixes #663).
144+
145+
- API:
146+
147+
- Documentation updated for `POST /api/v1/config/targets` to reflect that the `name` field is required for proper target identification.
148+
149+
- Dependencies:
150+
151+
- Bumped `golang.org/x/crypto` to v0.41.0.
152+
- Bumped `golang.org/x/oauth2` to v0.31.0.
153+
57154
### v0.41.0 - April 6th 2025
58155

59156
- Processors:
60157

61-
- Added `event-time-epoch` processor, enabling converting string-based time values into epoch timestamps
158+
- Added `event-time-epoch` processor, enabling converting string-based time values into epoch timestamps.
159+
160+
- Fixed `ieeefloat32` processor for correct handling of binary IEEE float32 values.
62161

63162
- Target Discovery:
64163

65-
- Consul loader: Adds the ability to use Go Templates on Consul targets to set target name as well as event-tags
164+
- Consul loader: Adds the ability to use Go Templates on Consul targets to set target name as well as event-tags (e.g., `target-name`, `target-tags` with `{{.Meta.*}}`).
165+
166+
- Loader:
167+
168+
- When a target configuration changes, loaders now generate delete and add actions so the subscription is restarted to apply the new parameters (fixes #563).
169+
170+
- Outputs:
171+
172+
- Messages are now exported to outputs in sequence to avoid sync responses being sent before initial notifications (fixes #612).
173+
174+
- Output internal metrics are now registered only once, preventing duplicate registration errors (fixes #586).
175+
176+
- Path generation:
177+
178+
- Fixed xpath generation with prefix: module prefix is now replaced with module name when generating xpaths (fixes #633).
179+
180+
- Targets:
181+
182+
- `target_up` metric now resets before creating metrics so deleted targets (e.g., via Consul) no longer show as still up (fixes #604).
183+
184+
- Dependencies:
185+
186+
- Bumped `github.com/golang/glog` to v1.2.4.
66187

67188
### v0.40.0 - January 27th 2025
68189

0 commit comments

Comments
 (0)