Derived State monitor

SUSE Observability

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

Last updated