Component actions
StackState Self-hosted v5.1.x
Last updated
StackState Self-hosted v5.1.x
Last updated
This how-to describes the steps to create a that's available for specific components. Component actions can be executed from the component context menu in the StackState UI Topology Perspective or the right panel details tab when detailed information about a component has been selected - Component details.
The component actions available in StackState can be managed in the StackState UI from the page Settings > Actions > Component Actions.
To add a new component action, click the ADD COMPONENT ACTION button.
To edit an existing component action, click the ... menu to the right of its description and select Edit.
Each component action includes the following details:
Name - The name displayed to users in the StackState UI when the component action is available for a component. The component action name is case-sensitive.
Description - The text shown in the tooltip when a user hovers over the component action name in the StackState UI.
The STQL query specified in a component action determines which components of the topology will be able to use this component action. This should be an advanced topology query that returns all of the components that should have access to this specific component action. For example, to bind a component action to all components in the "Production" domain that are present in the "databases" layer, you would use the STQL query:
Component action scripts always have access to a component
variable, this represents the component for which the component action was invoked.
The properties in the table below can be accessed directly in the component action script:
component.id
Long
The StackGraph ID of the component.
component.lastUpdateTimestamp
Long
The timestamp when the component was last updated.
component.name
String
The name of the component.
component.description
Option[String]
The description of the component.
component.labels
Set[Label]
Set of labels, each containing a name
property.
component.state.healthState
HealthStateValue
The health state of the component. Can be UNKNOWN
, CLEAR
, DEVIATING
or CRITICAL
.
component.state.propagatedHealthState
HealthStateValue
The propagated health state of the component. Can be UNKNOWN
, CLEAR
, DEVIATING
or CRITICAL
.
component.layer
Long
The StackGraph ID of the layer that the component is in.
component.domain
Long
The StackGraph ID of the domain that the component is in.
component.environments
Set[Long]
The StackGraph IDs of all environments that the component is in.
Other variables accessible from the script are the following:
telemetryTimeEnd: Instant
- is a telemetry interval end. For live mode the variable value is null
.
The component action script below will direct the StackState UI to open a new topology query:
The component action script below will direct the StackState UI to navigate to a specific URL:
The component action script below will direct the StackState UI to navigate to an external monitoring system at point of time:
The component action script below will invoke an HTTP request to a remote URL. This call is made from the StackState server:
STQL Query - An advanced topology query that returns all components for which this component action should be available. For details, see the section below.
Script - A script written in StackState Scripting Language that's run whenever the component action is executed in the StackState UI. For details, see the section and the below.
Identifier - Optional. A unique identifier for the component action. For details, see the section below.
You can find more information about writing advanced topology queries in StackState on the page .
The script determines behavior of the component action when it's executed by a user. YOu can use the to script almost any action you need, such as redirecting a user to another view with a specific context, restarting remote components, or calling predictions for components. Some are available below to help you get started.
Other properties of the component can be accessed using the .
topologyTime: Instant
- is a of the timeline. For the variable value is null
.
telemetryTimeStart: Instant
- is a start. This variable always have a value.
For more details for time usage in scripts see .
Providing an identifier is optional, but is necessary when you want to store your component action in a StackPack. A valid for a component action is a URN that follows the convention: