Service Level Indicator (SLI) Formulas | Honeycomb

Service Level Indicator (SLI) Formulas

Note
This feature is available as part of the Honeycomb Enterprise and Pro plans.

These examples show you how to identify different types of criteria and qualifiers when creating a derived column for an SLI and display the resulting formulas.

No Qualifier 

For all events, return true if duration_ms < 1000.

LT($duration_ms, 1000)

Qualifier is trace roots 

A trace root does not have a parent. This SLI returns true for trace roots whose response duration is under 100, false for trace roots whose duration is over 100, and null for non-roots.

IF(
  NOT(EXISTS($trace.parent_id)),
  LT($duration_ms, 100)
)

Criterion is Based on Both Duration and Error 

Our qualifier here is whether request.path is /home. If it is, then this SLI only returns true if both duration_ms is under 100, and there is no error message.

IF(
  EQUALS($request.path, "/home"),
  AND(
    LT($duration_ms, 100),
    NOT(EXISTS($app.error)),
  )
)

Complex Criterion, Complex Qualifier 

The qualifier here is events that hit the “/main” endpoint, using the method post, and are not marked as error code 401.

The criterion is that events must have a status code of 200. In addition, if they are part of a batch, then data processing must have taken less than 5 ms per item.

IF(
  AND(
    EQUALS($request.path, "main"),
    EQUALS($request.method, "POST"),
    NOT(EQUALS($response.status_code, 401))
  ),
  AND(
    EQUALS($response.status_code, 200),
    LT(
      DIV(
        $duration_ms,
        IF($app.batch, $app.batch_total_datapoints, 5)
      ),
      5
    )
  )
)