elastic / elastic/docs-content

Anomaly detection and data frame analytics pages are mistagged serverless: ga for project types where they're not available today

Open
#7,911 1 comment 0 reactions 0 assignees View on GitHub
applies_to Team:SKI
Dominant language
No language data
Stars
47
Forks
261
Avg merge
3d 21h
Merged PRs (30d)
141

Description

## Problem

Pages under `explore-analyze/machine-learning/anomaly-detection/` and `explore-analyze/machine-learning/data-frame-analytics/` all carry a flat, unscoped frontmatter tag:

```yaml
applies_to:
stack: ga
serverless: ga
```

This says the page fully applies to all three Serverless project types. That's not true today. Our own docs already say so, in prose, on the parent hub page [`explore-analyze/machine-learning.md`](https://www.elastic.co/docs/explore-analyze/machine-learning) under **Feature availability by project type**:

> * {{es-serverless}} projects have trained models.
> * {{observability}} projects have {{anomaly-jobs}}.
> * {{elastic-sec}} projects have {{anomaly-jobs}}, {{dfanalytics-jobs}}, and trained models.

So per our own stated availability:
- **Anomaly detection** is unavailable in Serverless Elasticsearch (Search) projects — only Observability and Security have it.
- **Data frame analytics** is unavailable in both Serverless Elasticsearch (Search) *and* Observability projects — only Security has it.

A reader who lands directly on an anomaly-detection or DFA page (very plausible — these are the actual overview/procedure pages, not the hub) sees `serverless: ga` and has no reason to know the feature doesn't exist for their project type. The hub-page prose caveat doesn't reach them.

## Why this isn't a version/lifecycle question

`applies_to.serverless` supports per-project-type subkeys with a real `unavailable` lifecycle value, precisely for this "GA in some serverless project types, not others" case:

```yaml
applies_to:
stack: ga
serverless:
elasticsearch: unavailable
observability: ga
security: ga
```

There's existing precedent for this shape in the corpus, e.g. `deploy-manage/manage-spaces.md`'s "Customize Kibana's home page" section (`elasticsearch: unavailable, security: unavailable, observability: ga`). See [cumulative docs guidance](https://www.elastic.co/docs/contribute-docs/how-to/cumulative-docs) and the [`applies_to` syntax reference](https://elastic.github.io/docs-builder/syntax/applies/#serverless).

## Suggested fix

**Anomaly detection pages** — add `serverless.elasticsearch: unavailable` (keep `observability: ga`, `security: ga`):
- `explore-analyze/machine-learning/anomaly-detection.md`
- `explore-analyze/machine-learning/anomaly-detection/anomaly-detection-scale.md`
- `explore-analyze/machine-learning/anomaly-detection/anomaly-how-tos.md`
- `explore-analyze/machine-learning/anomaly-detection/geographic-anomalies.md`
- `explore-analyze/machine-learning/anomaly-detection/mapping-anomalies.md`
- `explore-analyze/machine-learning/anomaly-detection/ml-ad-algorithms.md`
- `explore-analyze/machine-learning/anomaly-detection/ml-ad-concepts.md`
- `explore-analyze/machine-learning/anomaly-detection/ml-ad-dst-calendars.md`
- `explore-analyze/machine-learning/anomaly-detection/ml-ad-explain.md`
- `explore-analyze/machine-learning/anomaly-detection/ml-ad-finding-anomalies.md`
- `explore-analyze/machine-learning/anomaly-detection/ml-ad-forecast.md`
- `explore-analyze/machine-learning/anomaly-detection/ml-ad-plan.md`
- `explore-analyze/machine-learning/anomaly-detection/ml-ad-resources.md`
- `explore-analyze/machine-learning/anomaly-detection/ml-ad-run-jobs.md`
- `explore-analyze/machine-learning/anomaly-detection/ml-ad-troubleshooting.md`
- `explore-analyze/machine-learning/anomaly-detection/ml-ad-view-results.md`
- `explore-analyze/machine-learning/anomaly-detection/ml-anomaly-detection-job-types.md`
- `explore-analyze/machine-learning/anomaly-detection/ml-api-quickref.md`
- `explore-analyze/machine-learning/anomaly-detection/ml-configuring-aggregation.md`
- `explore-analyze/machine-learning/anomaly-detection/ml-configuring-alerts.md`
- `explore-analyze/machine-learning/anomaly-detection/ml-configuring-categories.md`
- `explore-analyze/machine-learning/anomaly-detection/ml-configuring-detector-custom-rules.md`
- `explore-analyze/machine-learning/anomaly-detection/ml-configuring-populations.md`
- `explore-analyze/machine-learning/anomaly-detection/ml-configuring-transform.md`
- `explore-analyze/machine-learning/anomaly-detection/ml-configuring-url.md`
- `explore-analyze/machine-learning/anomaly-detection/ml-delayed-data-detection.md`
- `explore-analyze/machine-learning/anomaly-detection/ml-functions.md`
- `explore-analyze/machine-learning/anomaly-detection/ml-getting-started.md`
- `explore-analyze/machine-learning/anomaly-detection/ml-jobs-from-lens.md`
- `explore-analyze/machine-learning/anomaly-detection/ml-limitations.md`
- `explore-analyze/machine-learning/anomaly-detection/ml-reverting-model-snapshot.md`
- `explore-analyze/machine-learning/anomaly-detection/ootb-ml-jobs.md`

**Data frame analytics pages** — add `serverless.elasticsearch: unavailable` and `serverless.observability: unavailable` (keep `security: ga`):
- `explore-analyze/machine-learning/data-frame-analytics.md`
- `explore-analyze/machine-learning/data-frame-analytics/dfa-regression-lossfunction.md`
- `explore-analyze/machine-learning/data-frame-analytics/hyperparameters.md`
- `explore-analyze/machine-learning/data-frame-analytics/ml-dfa-classification.md`
- `explore-analyze/machine-learning/data-frame-analytics/ml-dfa-concepts.md`
- `explore-analyze/machine-learning/data-frame-analytics/ml-dfa-custom-urls.md`
- `explore-analyze/machine-learning/data-frame-analytics/ml-dfa-finding-outliers.md`
- `explore-analyze/machine-learning/data-frame-analytics/ml-dfa-limitations.md`
- `explore-analyze/machine-learning/data-frame-analytics/ml-dfa-overview.md`
- `explore-analyze/machine-learning/data-frame-analytics/ml-dfa-phases.md`
- `explore-analyze/machine-learning/data-frame-analytics/ml-dfa-regression.md`
- `explore-analyze/machine-learning/data-frame-analytics/ml-dfa-resources.md`
- `explore-analyze/machine-learning/data-frame-analytics/ml-dfa-scale.md`
- `explore-analyze/machine-learning/data-frame-analytics/ml-dfanalytics-apis.md`
- `explore-analyze/machine-learning/data-frame-analytics/ml-feature-encoding.md`
- `explore-analyze/machine-learning/data-frame-analytics/ml-feature-importance.md`
- `explore-analyze/machine-learning/data-frame-analytics/ml-feature-processors.md`

Not included: `data-frame-analytics/ml-trained-models.md` — trained models have a *different* availability matrix (GA in Elasticsearch and Security serverless, per the same hub-page prose) and need their own pass; bundling them here would conflate two different fixes.

## Out of scope for this issue

There's a separate product proposal to restore full anomaly detection/DFA support in Serverless Elasticsearch (Search) projects. This issue is **not** about that future state — it's about correcting the tags to match what's actually shipped today. If/when that proposal ships, the fix is a one-line flip per file (`elasticsearch: unavailable` → `ga`), tracked separately once there's a PR/issue to hang it on.

## Possible related follow-up (unverified, not part of this issue)

The same hub-page prose implies trained-model/NLP pages (ELSER, E5, rerank, etc.) may have an analogous gap for Observability serverless projects (trained models aren't listed as available there). Not verified against product source — flagging for separate investigation, not bundling into this fix.

Contributor guide

No contributing guide indexed for this repository

Research direction

Read the feature-availability section in explore-analyze/machine-learning.md and the applies_to serverless syntax reference, then inspect the frontmatter in the listed anomaly-detection and data-frame-analytics files. Update each named page's serverless matrix to match the documented availability, leaving ml-trained-models.md and the proposed future-state work unchanged; done means all listed pages accurately expose their project-type support.

Written by the indexing model from the issue text.

Assessment

Tech stack
yaml
Domain
documentation
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.