You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Sep 2, 2025. It is now read-only.
Copy file name to clipboardExpand all lines: alerts-detectors-notifications/slo/create-slo.rst
+15-14Lines changed: 15 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,7 +19,7 @@ Follow these steps to create an SLO.
19
19
#. From the landing page of Splunk Observability Cloud, go to :strong:`Detectors & SLOs`.
20
20
#. Select the :strong:`SLOs` tab.
21
21
#. Select :guilabel:`Create SLO`.
22
-
#. Configure the service level indicator (SLI) for your SLO.
22
+
#. Configure the service level indicator (SLI) for your SLO. You can use a service or any metric of your choice as the system health indicator.
23
23
24
24
To use a service as the system health indicator for your SLI configuration, follow these steps:
25
25
@@ -46,21 +46,22 @@ Follow these steps to create an SLO.
46
46
* - :guilabel:`Filters`
47
47
- Enter any additional dimension names and values you want to apply this SLO to. Alternatively, use the ``NOT`` filter, represented by an exclamation point ( ! ), to exclude any dimension values from this SLO configuration.
48
48
49
-
To use a custom metric as the system health indicator for your SLI configuration, follow these steps:
49
+
To use a metric of your choice as the system health indicator for your SLI configuration, follow these steps:
50
50
51
-
.. list-table::
52
-
:header-rows: 1
53
-
:widths: 40 60
54
-
:width: 100%
51
+
#. For the :guilabel:`Metric type` field, select :guilabel:`Custom metric` from the dropdown menu. The SignalFlow editor appears.
52
+
#. In the SignalFlow editor, you can see the following code sample:
55
53
56
-
* - :strong:`Field name`
57
-
- :strong:`Actions`
58
-
* - :guilabel:`Metric type`
59
-
- Select :guilabel:`Custom metric` from the dropdown menu
60
-
* - :guilabel:`Good events (numerator)`
61
-
- Search for the metric you want to use for the success request count
62
-
* - :guilabel:`Total events (denominator)`
63
-
- Search for the metric you want to use for the total request count
54
+
.. code-block:: python
55
+
56
+
G = data('good.metric', filter=filter('sf_error', 'false'))
57
+
T = data('total.metric')
58
+
59
+
* Line 1 defines ``G`` as a data stream of ``good.metric`` metric time series (MTS). The SignalFlow ``filter()`` function queries for a collection of MTS with value ``false`` for the ``sf_error`` dimension. The filter distinguishes successful requests from total requests, making ``G`` the good events variable.
60
+
* Line 2 defines ``T`` as a data stream ``total.metric`` MTS. ``T`` is the total events variable.
61
+
62
+
Replace the code sample with your own SignalFlow program. You can define good events and total events variables using any metric and supported SignalFlow function. For more information, see :new-page:`Analyze data using SignalFlow <https://dev.splunk.com/observability/docs/signalflow>` in the Splunk Observability Cloud Developer Guide.
63
+
64
+
#. Select appropriate variable names for the :guilabel:`Good events (numerator)` and :guilabel:`Total events (denominator)` dropdown menus.
64
65
65
66
.. note:: Custom metric SLO works by calculating the percentage of successful requests over a given compliance period. This calculation works better for counter and histogram metrics than for gauge metrics. Gauge metrics are not suitable for custom metric SLO, so you might get confusing data when selecting gauge metrics in your configuration.
Copy file name to clipboardExpand all lines: alerts-detectors-notifications/slo/custom-metric-scenario.rst
+13-26Lines changed: 13 additions & 26 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,32 +17,22 @@ Use custom metric as service level indicator (SLI)
17
17
18
18
From the :guilabel:`Detectors &SLOs` page, Kai configures the SLI and sets up a target for their SLO. Kai follows these steps:
19
19
20
-
#. Kai wants to use custom metrics as the system health indicators, so they select the :guilabel:`Custom metric` from the :guilabel:`Metric type` menu.
21
-
#. Kai enters the custom metrics they want to measure in the following fields:
20
+
#. Kai wants to use a Synthetics metric as the system health indicators, so they select the :guilabel:`Custom metric` from the :guilabel:`Metric type` menu.
21
+
#. Kai enters following program into the SignalFlow editor:
T = data('synthetics.run.count', filter=filter('test', 'Monitoring Services - Emby check'))
31
27
32
-
* - :guilabel:`Good events (numerator)`
33
-
- :strong:`synthetics.run.count`
34
-
- Kai adds the following filters for this metric:
35
-
36
-
* :strong:`test = Emby check`
37
-
* :strong:`success = true`
38
-
- Kai uses the :strong:`success = true` filter to count the number of successful requests for the Emby service on the Buttercup Games website.
28
+
Kai defines variables ``G`` and ``T`` as two streams of ``synthetics.run.count`` metric time series (MTS) measuring the health of requests sent to the Emby service. To distinguish between the two data streams, Kai applies an additional filter on the ``success`` dimension in the definition for ``G``. This filter queries for a specific collection of MTS that track successful requests for the Emby service. In Kai's SignalFlow program, ``G`` is a data stream of good events and ``T`` is a data stream of total events.
:alt:This image shows Kai's SLO configuration using the ``synthetics.run.count`` metric and appropriate filters.
43
33
44
-
* :strong:`test = Emby check`
45
-
- Kai uses the same metric name and the :strong:`test = Emby check` filter to track the same Synthetics Browser test. However, Kai doesn't include the :strong:`success = true` dimension filter in order to count the number of total requests for the Emby service on the Buttercup Games website.
34
+
35
+
#. Kai assigns ``G`` to the :guilabel:`Good events (numerator)` dropdown menu and ``T`` to the :guilabel:`Total events (denominator)` dropdown menu.
46
36
47
37
#. Kai enters the following fields to define a target for their SLO:
48
38
@@ -64,11 +54,6 @@ From the :guilabel:`Detectors & SLOs` page, Kai configures the SLI and sets up a
64
54
65
55
#. Kai subscribes to receive an alert whenever there is a breach event for the SLO target.
:alt:This image shows Kai's SLO configuration using the ``synthetics.run.count`` metric and appropriate filters.
70
-
71
-
72
57
Summary
73
58
=======================
74
59
@@ -80,3 +65,5 @@ Learn more
80
65
For more information about creating an SLO, see :ref:`create-slo`.
81
66
82
67
For more information about the Synthetics Browser test, see :ref:`browser-test`.
68
+
69
+
For more information on SignalFlow, see :new-page:`Analyze data using SignalFlow <https://dev.splunk.com/observability/docs/signalflow>` in the Splunk Observability Cloud Developer Guide.
0 commit comments