mcpField
O
observability-manage-slos

observability-manage-slos

github.com/elasticCloud & DevOps6022.8k installsUpdated today
Repository

About observability-manage-slos

observability-manage-slos is a skill for creating and managing Elastic Observability SLOs through the Kibana API. It is for teams tracking service reliability targets and covers SLI types based on logs, metrics, APM, and Synthetics, along with configuration considerations.

Key features

  1. 01Create and manage SLOs
  2. 02Support log- and metric-based SLI types
  3. 03Support APM latency and availability SLIs
  4. 04Support Synthetics availability SLIs
  5. 05Authenticate and operate through the Kibana API

Use cases

  1. 01Define service targets from log queries
  2. 02Measure service performance with metric aggregations
  3. 03Track APM transaction latency or error rate
  4. 04Calculate availability from Synthetics monitors

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/elastic/agent-skills --skill observability-manage-slos

After installing, type/observability-manage-slosin Claude Code to confirm it loaded.

Details

From the project README

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

TypeAPI valueUse case
Custom KQLsli.kql.customRaw logs — good/total using KQL queries
Custom metricsli.metric.customMetric fields — equations with aggregations
Timeslice metricsli.metric.timesliceMetric fields — per-slice threshold check
Histogram metricsli.histogram.customHistogram fields — range/value_count
APM latencysli.apm.transactionDurationAPM — latency threshold
APM availabilitysli.apm.transactionErrorRateAPM — success rate
Synthetics availabilitysli.synthetics.availabilitySynthetics monitors — uptime percentage

Guidelines

  • objective.target is a decimal between 0 and 1 (for example 0.995 for 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 transform and ingest roles.
  • Use POST .../slos/{id}/_reset when 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 groupBy manually.
  • 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
Kibana SLO API
Troubleshooting and access

Comments

Markdown supported