Skip to content
Merged
Show file tree
Hide file tree
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
2 changes: 2 additions & 0 deletions SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
* [Troubleshooting](use/alerting/notifications/troubleshooting.md)
* [Customize](dynamic/customize-alerting.md)
* [Add a monitor using the CLI](use/alerting/k8s-add-monitors-cli.md)
* [Derived State monitor](use/alerting/k8s-derived-state-monitors.md)
* [Override monitor arguments](use/alerting/k8s-override-monitor-arguments.md)
* [Write a remediation guide](use/alerting/k8s-write-remediation-guide.md)

Expand Down Expand Up @@ -139,6 +140,7 @@
* [v2.2.1 - 10/Dec/2024](setup/release-notes/v2.2.1.md)
* [v2.3.0 - 30/Jan/2025](setup/release-notes/v2.3.0.md)
* [v2.3.1 - 17/Mar/2025](setup/release-notes/v2.3.1.md)
* [v2.3.2 - 22/Apr/2025](setup/release-notes/v2.3.2.md)
* [Upgrade SUSE Observability](setup/upgrade-stackstate/README.md)
* [Migration from StackState](setup/upgrade-stackstate/migrate-from-6.md)
* [Steps to upgrade](setup/upgrade-stackstate/steps-to-upgrade.md)
Expand Down
28 changes: 28 additions & 0 deletions setup/release-notes/v2.3.2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
Copy link
Contributor

Choose a reason for hiding this comment

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

this MR should unclude the latest version of the staging branch (i happen to know some new stuff came in)

description: SUSE Observability Self-hosted
---

# v2.3.2 - 22/April/2025

## Release Notes: SUSE Observability Helm Chart v2.3.2

### New Features & Enhancements

* **Analytics Deprecation:** The Analytics feature is now deprecated and disabled by default for all users. To re-enable it, grant the `access-analytics` and `execute-scripts` permissions to the relevant users or roles.
* **Log Noise Reduction:** Implemented a fix to suppress `x-forwarded-for` errors in logs when an IP:Port combination is used in the forwarding configuration.
* **Derived State Monitor:** Introduced a new "Derived State Monitor" feature, allowing the derivation of a state based on the status of logical components.

### Bug Fixes

* **Traces in HA Profile:** Resolved an issue where the Traces functionality was partially disabled in the `4000-ha` profile.
* **Broken Link Fixes:** Fixed various broken links identified throughout the product user interface and documentation.
* **STS CLI Error Handling:** The STS CLI command for uploading a new stackpack now provides more informative and actionable error messages.
* **Private Agent Repository in Rancher:** Addressed various issues related to configuring and utilizing a private repository for the agent within the Rancher UI.
* **Logs API Key via Header:** The API key for accessing logs is now securely passed as a header in API requests.

## Agent Bug Fixes

* **Static Pod Log Scraping:** The agent has been enhanced to now scrape logs for static pods. This is achieved by utilizing the `kubernetes.io/config.mirror` annotation for system pods.
* **Secret Environment Variables:** Fixed an issue to ensure proper support for the `global.extraEnv.secret` configuration, allowing the addition of secret environment variables to the agent pods.
* **Process Agent Kernel Compatibility:** Enabled the process-agent to run on a wider range of Linux kernel versions, specifically between 5.0 and 5.11 (inclusive).
* **Private Image Registry** Fixed various issues around providing a private docker repository in the rancher UI.
41 changes: 41 additions & 0 deletions use/alerting/k8s-derived-state-monitors.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
description: SUSE Observability
---

# Derived State Monitors

## Overview

In Observability scenarios where logical (business) components lack direct monitors but are affected by issues in their technical dependencies, you can use the derived-state-monitor function to derive a state from the connected technical components for the logical component.
This monitor traverses component dependencies and selects the most critical health state based on direct observations (e.g., from metrics), ignoring any already-derived states. It will apply the derived state to all components selected through the `componentTypes` parameter.
During traversal, only components with observed (non-derived) health states are considered for health derivation. Components with derived states are skipped in evaluation but still traversed to reach deeper dependencies—for example, logical components depending on other logical components.

## Derived Health State Monitor example

A Monitor implemented using the `derived-state-monitor` function looks like:

```
- _type: "Monitor"
name: "Aggregated health state of a Deployment, StatefulSet, ReplicaSet and DaemonSet"
tags:
- deployments
- replicasets
- statefulsets
- daemonsets
- derived
- propagated
identifier: "urn:custom:monitor:..."
status: "DISABLED"
description: "Description"
function: {{ get "urn:stackpack:common:monitor-function:derived-state-monitor" }}
arguments:
componentTypes: "deployment, replicaset, statefulset, daemonset"
intervalSeconds: 30
remediationHint: "Investigate component [{{ causeComponentName }}](/#/components/{{ causeComponentUrnForUrl }}) as is causing the workload to be unhealthy."
```
* The function has a single argument `componentTypes` where you can express the different component types as a single string of `,` separated values
* The function offers three values to use in the remediation guide
* `componentName` being the name of the logical component.
* `causeComponentName` being the component name where the state is propagated from and its `causeComponentUrnForUrl` to be able to create a link.

The monitor can be implemented using the guide at [Add a threshold monitor to components using the CLI](/use/alerting/k8s-add-monitors-cli.md)
22 changes: 9 additions & 13 deletions use/alerting/kubernetes-monitors.md
Original file line number Diff line number Diff line change
Expand Up @@ -144,22 +144,18 @@ Cluster doesn't have any health itself. But a cluster is build from few componen
- all nodes
and then takes the most critical health state.

### Aggregated health state of a DaemonSet
### Derived Workloads health state (Deployment, DaemonSet, ReplicaSet, StatefulSet)

The monitor aggregates states of all children Pods and then returns the most critical health state.
The monitor aggregates states of all top-most dependencies and then returns the most critical health state based on direct observations (e.g., from metrics).
This approach ensures that health signals propagate from low-level technical components (like Pods) to higher-level logical components, but only when the component itself lacks an observed health state.
To use this monitor effectively, make sure that some or all of following health checks are disabled:
* Deployment desired replicas
* DaemonSet desired replicas
* ReplicaSet desired replicas
* StatefulSet desired replicas

### Aggregated health state of a Deployment
If you have a use case where logical components have no direct monitors then you can use the [Derived State Monitor](/use/alerting/k8s-derived-state-monitors.md) function to infer their health based on the technical components they depend on.

The monitor aggregates states of all children ReplicaSets and then returns the most critical health state. ReplicaSets have
the similar Monitor, so eventually this one aggregates health states of all children ReplicaSets and Pods.

### Aggregated health state of a ReplicaSet

The monitor aggregates states of all children Pods and then returns the most critical health state.

### Aggregated health state of a StatefulSet

The monitor aggregates states of all children Pods and then returns the most critical health state.

## See also

Expand Down