Skip to content

Conversation

@yiannisnikolopoulos
Copy link
Contributor

@yiannisnikolopoulos yiannisnikolopoulos commented Dec 3, 2025

Release notes

  • Custom global ingest pipeline can be configured on SLO rollup data.
  • Custom global ingest pipeline can be added on SLO summary data.
  • Custom ingest pipeline specific to a SLO can be added for its summary data

Summary

Closes #244386

This PR adds support for global custom ingest pipelines for SLOs, allowing customers to create a single pipeline that applies to all SLO rollup and summary documents.

Changes

New global pipelines:

  • slo-rollup-global@custom - Applies to all SLO rollup documents
  • slo-summary-global@custom - Applies to all SLO summary documents

New per-SLO summary pipeline:

  • slo-summary-{sloId}@custom - Applies to a specific SLO's summary documents (similar to existing slo-{sloId}@custom for rollup)

Pipeline Execution Order

Rollup pipeline: Standard processors → slo-rollup-global@customslo-{sloId}@custom

Summary pipeline: Standard processors → slo-summary-global@customslo-summary-{sloId}@custom

🔬 How to test

  1. Start Elasticsearch and Kibana: yarn es snapshot and yarn start
  2. Create an SLO via the UI or API
  3. Verify the pipeline includes the new processors:
GET _ingest/pipeline/.slo-observability.sli.pipeline-*
GET _ingest/pipeline/.slo-observability.summary.pipeline-*

Test slo-rollup-global@custom

  1. Create the global rollup custom pipeline:
PUT _ingest/pipeline/slo-rollup-global@custom
   {
     "processors": [
       { "set": { "field": "custom.test", "value": "global pipeline works!" } }
     ]
   }
  1. Wait ~1 minute for the transform to run, then verify:
GET .slo-observability.sli-*/_search
   {
     "size": 1,
     "sort": [{ "@timestamp": "desc" }],
     "_source": ["custom.rollup_global", "slo.id"]
   }

Test slo-summary-global@custom

  1. Create the global summary custom pipeline:
PUT _ingest/pipeline/slo-summary-global@custom
   {
     "processors": [
       { "set": { "field": "custom.summary_global", "value": "summary global works!" } }
     ]
   }
  1. Wait ~1 minute, then verify:
GET .slo-observability.summary-*/_search
   {
     "size": 1,
     "sort": [{ "summaryUpdatedAt": "desc" }],
     "_source": ["custom.summary_global", "slo.id"]
   }

Test slo-summary-{sloId}@custom

  1. Create a per-SLO summary custom pipeline (replace {sloId} with your SLO ID):
PUT _ingest/pipeline/slo-summary-{sloId}@custom
   {
     "processors": [
       { "set": { "field": "custom.summary_per_slo", "value": "per-SLO summary works!" } }
     ]
   }
  1. Wait ~1 minute, then verify:
GET .slo-observability.summary-*/_search
   {
     "size": 1,
     "sort": [{ "summaryUpdatedAt": "desc" }],
     "_source": ["custom.summary_per_slo", "slo.id"]
   }

Note: Existing SLOs created before this change will need to be reset or updated to pick up the new pipeline structure.

@github-actions github-actions bot added the author:actionable-obs PRs authored by the actionable obs team label Dec 3, 2025
@yiannisnikolopoulos yiannisnikolopoulos added Team:actionable-obs Formerly "obs-ux-management", responsible for SLO, o11y alerting, significant events, & synthetics. backport:skip This PR does not require backporting ci:beta-faster-pr-build Uses an alternative PR build pipeline with speed optimizations v9.3.0 labels Dec 3, 2025
@yiannisnikolopoulos yiannisnikolopoulos marked this pull request as ready for review December 3, 2025 09:26
@yiannisnikolopoulos yiannisnikolopoulos requested a review from a team as a code owner December 3, 2025 09:26
@elasticmachine
Copy link
Contributor

Pinging @elastic/actionable-obs-team (Team:actionable-obs)

@elasticmachine
Copy link
Contributor

Pinging @elastic/obs-ux-management-team (Team:obs-ux-management)

Copy link
Contributor

@kdelemme kdelemme left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@kdelemme kdelemme added release_note:skip Skip the PR/issue when compiling release notes release_note:feature Makes this part of the condensed release notes and removed release_note:skip Skip the PR/issue when compiling release notes labels Dec 3, 2025
@kdelemme kdelemme enabled auto-merge (squash) December 3, 2025 16:15
@kdelemme kdelemme merged commit 19e9895 into elastic:main Dec 3, 2025
12 checks passed
@elasticmachine
Copy link
Contributor

💚 Build Succeeded

Metrics [docs]

✅ unchanged

History

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

author:actionable-obs PRs authored by the actionable obs team backport:skip This PR does not require backporting ci:beta-faster-pr-build Uses an alternative PR build pipeline with speed optimizations release_note:feature Makes this part of the condensed release notes Team:actionable-obs Formerly "obs-ux-management", responsible for SLO, o11y alerting, significant events, & synthetics. Team:obs-ux-management v9.3.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[SLO] Add a global custom ingest pipeline referenced by all SLO pipelines

3 participants