Having service levels on critical business capabilities, like login or authorize payment, will rapidly close the language barrier between IT and business. Service level scores on capabilities also give you better opportunities to fix service levels when they begin to worsen. For example, if the login service level begins to degrade, you'll know to look at identity mangement dependencies and workflows starting at the consumer-facing API.
You don't need to have intimate knowledge of an application or service in order to complete this task. You only need to find the consumer-facing API (service boundary) and follow the steps below to create a capability service level:
Identify the service boundary application as described in the establishing an output SLI doc.
Run the following NRQL query to identify baselines on the most frequently used transactions. Remember to replace
Order-Processing
with the application name you identified.FROM Transaction SELECT count(*), percentile(duration, 95) WHERE appName='Order-Processing' FACET name SINCE 1 WEEK AGOYou should see something similar to the screenshot below. You'll see the first transaction states it has something to do with "purchase." You can now create a "purchase" capability service level.
Add
WHERE name='Controller/Sinatra//purchase'
to the end of your query, replacingController/Sinatra//purchase
with your transaction name.Run the query to make sure it works. You should now see only the one transaction in your result. Copy this query and the
DURATION (95%)
result into a notepad. You'll need both in a moment.Create a new service level in the platform. Starting a new service level is described in Establishing an input performance SLI.
In this case you want to find your application (APM Entity
type) in the list so we can retain the metadata (tags) through the entity GUID. Instead of "Synthetic monitor" as in section above, select "APM" in the entity filter dropdown.
Select the "Latency" guided workflow so the valid queries auto-populate for you.
Use your notepad to copy just the
name='your/transaction/name/here'
.Add this condition to both queries in service levels, preceded with an
AND
, as underlined in the screenshot below.Adjust the
duration < 1.78
portion of the second query to match theDURATION (95%)
result in your original baseline copied to your notepad.Name this service level, update the description, and save the service level.
From here, we recommend you set up a few of these capability service levels and present to the application team and your leadership for feedback.