observability-manage-slos
elastic/agent-skills
Create and manage SLOs in Elastic Observability using the Kibana API.
What is observability-manage-slos?
Define and track Service-Level Objectives (SLOs) against measurable targets using service-level indicators (SLIs) computed from Elasticsearch data. Use this skill when setting performance targets, defining error budgets, or managing the SLO lifecycle through the Kibana API.
- Create SLOs with multiple SLI types: custom KQL, custom metrics, timeslice metrics, histograms, APM latency, APM availability, and Synthetics availability
- Manage SLO lifecycle: get, update, delete, reset, enable, and disable SLOs via Kibana API
- Authenticate using API keys or basic auth with support for non-default Kibana spaces
- Configure objective targets as decimals (e.g., 0.995 for 99.5%) and budgeting methods
- Group SLOs by field values to create instances per unique value for multi-dimensional tracking
- Reset SLOs when stuck or after index mapping changes to recompute historical data
How to install observability-manage-slos
npx skills add https://github.com/elastic/agent-skills --skill observability-manage-slos- Elastic Observability deployment with Kibana access
- Kibana API key or basic authentication credentials
- Elasticsearch cluster with nodes having both transform and ingest roles
- Appropriate permissions configured for SLO access in Kibana
How to use observability-manage-slos
- 1.Authenticate to Kibana using an API key or basic auth credentials
- 2.Choose an SLI type matching your data source (APM, Synthetics, custom KQL, or metrics)
- 3.Define the objective target as a decimal between 0 and 1 (e.g., 0.995 for 99.5%)
- 4.Create the SLO via POST request to /api/observability/slos with the appropriate SLI payload
- 5.Optionally configure group-by fields for multi-dimensional SLOs (avoid high-cardinality fields)
- 6.Monitor SLO status and manage via get, update, delete, or reset operations as needed
Use cases
- Define latency SLOs for API endpoints using APM transaction duration data
- Track error rate targets for microservices using APM transaction error rates
- Monitor uptime percentages for synthetic monitors across multiple locations
- Create custom SLOs from raw logs using KQL queries for good/total event counts
- Set up metric-based SLOs with threshold checks per time slice for infrastructure components
- SRE and DevOps engineers managing service reliability targets
- Platform teams defining and tracking SLO compliance across services
- Observability engineers setting up performance monitoring and alerting
- Teams using Elastic Observability for incident management and burn rate tracking
observability-manage-slos FAQ
Seven types: custom KQL (raw logs), custom metric (metric equations), timeslice metric (per-slice thresholds), histogram metric (range/value_count), APM latency (transaction duration), APM availability (error rate), and Synthetics availability (uptime percentage).
Use either an API key with Authorization header or basic auth. Include the kbn-xsrf: true header on all POST, PUT, and DELETE requests. For non-default spaces, prefix the path with /s/<space_id>.
Updating an SLO resets the underlying transform and recomputes historical data. Use POST .../slos/{id}/_reset if an SLO is stuck or after index mapping changes.
Yes, group-by SLOs create one instance per unique value. Avoid high-cardinality fields. Synthetics SLOs are auto-grouped by monitor and location; do not set groupBy manually.
No, burn rate alert rules are not auto-created via the API. Set them up separately in Kibana after creating the SLO.
Full instructions (SKILL.md)
Source of truth, from elastic/agent-skills.
name: observability-manage-slos description: > Create and manage SLOs in Elastic Observability using the Kibana API. Use when defining SLIs, setting error budgets, or managing SLO lifecycle. metadata: author: elastic version: 0.2.0
Service-Level Objectives (SLOs)
Create and manage SLOs in Elastic Observability. SLOs track service performance against measurable targets using service-level indicators (SLIs) computed from Elasticsearch data.
Authentication
SLO operations go through the Kibana API. Authenticate with either an API key or basic auth:
# API key
curl -H "Authorization: ApiKey <base64-encoded-key>" -H "kbn-xsrf: true" <KIBANA_URL>/api/observability/slos
# Basic auth
curl -u "$KIBANA_USER:$KIBANA_PASSWORD" -H "kbn-xsrf: true" <KIBANA_URL>/api/observability/slos
For non-default spaces, prefix the path: /s/<space_id>/api/observability/slos.
Include kbn-xsrf: true on all POST, PUT, and DELETE requests.
SLI Types
| Type | API value | Use case |
|---|---|---|
| Custom KQL | sli.kql.custom | Raw logs — good/total using KQL queries |
| Custom metric | sli.metric.custom | Metric fields — equations with aggregations |
| Timeslice metric | sli.metric.timeslice | Metric fields — per-slice threshold check |
| Histogram metric | sli.histogram.custom | Histogram fields — range/value_count |
| APM latency | sli.apm.transactionDuration | APM — latency threshold |
| APM availability | sli.apm.transactionErrorRate | APM — success rate |
| Synthetics availability | sli.synthetics.availability | Synthetics monitors — uptime percentage |
Guidelines
objective.targetis a decimal between 0 and 1 (for example0.995for 99.5%).- Timeslice metric indicators require
budgetingMethod: "timeslices". - Updating an SLO resets the underlying transform — historical data is recomputed.
- The cluster needs nodes with both
transformandingestroles. - Use
POST .../slos/{id}/_resetwhen an SLO is stuck or after index mapping changes. - Group-by SLOs create one instance per unique value — avoid high-cardinality fields.
- Synthetics SLOs are auto-grouped by monitor and location; do not set
groupBymanually. - Burn rate alert rules are not auto-created using the API — set them up separately.
Additional references
For official documentation, refer to the following resources:
SLO documentation
- Service-level objectives (SLOs) — concepts, SLI types, budgeting methods, and dashboard panels.
- Create an SLO — step-by-step guide for creating SLOs in the Kibana UI.
- View and manage SLOs — searching, filtering, and managing existing SLOs.
Kibana SLO API
- Create an SLO — full request body schema with all SLI type payloads.
- Get an SLO | Update | Delete | Reset
- Enable | Disable | Get definitions
Troubleshooting and access
Related skills
More from elastic/agent-skills and the wider catalog.

observability-service-health
Assess APM service health using SLOs, alerts, ML anomalies, latency, error rate, and dependencies.

security-alert-triage
Triage Elastic Security alerts: gather context, classify threats, create cases, and acknowledge.

security-case-management
Create, search, update, and manage SOC cases via Kibana Cases API for incident tracking and triage.

security-detection-rule-management
Create, tune, and manage Elastic Security detection rules via Kibana API to reduce false positives and close coverage gaps.

security-generate-security-sample-data
Generate ECS-compliant security events, attack scenarios, and synthetic alerts for Elastic Security demos and testing.

seedance-storyboard
将任何想法转换成即梦 Seedance 2.0 专业分镜提示词。当用户想要生成视频、制作短视频、创作分镜、使用 Seedance/即梦/剪映 AI 视频时调用。