Skip to content

feat(osd): enable SQL in Explore, query profiling, PPL alerting, and 3.9 Explore/dashboard flags - #474

Open
ps48 wants to merge 1 commit into
opensearch-project:mainfrom
ps48:feat/osd-3.8-3.9-flags
Open

ps48 wants to merge 1 commit into
opensearch-project:mainfrom
ps48:feat/osd-3.8-3.9-flags

Conversation

@ps48

@ps48 ps48 commented Oct 1, 2026

Copy link
Copy Markdown
Member

Description

OSD 3.8 and 3.9 added several observability features that ship off by default. This turns them on so the stack exposes them out of the box.

Chart + docker-compose (safe on the 3.8 images the chart currently pins):

  • explore.sqlSupport (3.8) — SQL alongside PPL in the Explore query language picker, incl. the Patterns tab for SQL
  • explore.queryProfiling (3.8) — warns when saving a complex, resource-heavy query as a visualization
  • opensearch_alerting.pplAlertingEnabled — surfaces Create alert rule in Explore logs (docker-compose already set this; the chart did not)

docker-compose only (3.9-only keys; the chart follows with the 3.9 image bump):

  • explore.pplAnalyze (3.9) — Analyze panel: query phase timeline, operator waterfall, recommendations
  • dashboard.allowDashboardSections (3.9) — collapsible dashboard sections

OSD rejects unknown config keys at startup, so a 3.9-only key in the chart would break Dashboards on a 3.8 image. Verified below.

Testing

  • ./test/helm-test.sh — helm lint + 73 unit tests across 12 suites pass.
  • Booted the rendered OSD config in real containers:
    • rendered chart config (values + values-anonymous-auth) on opensearchproject/opensearch-dashboards:3.8.0 → starts clean
    • same config on 3.9 → starts clean
    • docker-compose template (all 5 flags) on 3.9 → starts clean
    • negative control: chart config + explore.pplAnalyze.enabled on 3.8 → FATAL ValidationError: [config validation of [explore].pplAnalyze]: definition for this key is missing. This is why the 3.9 keys are docker-only for now.
  • Flag availability per version confirmed against release tags: sqlSupport/queryProfiling exist in OSD 3.8.0 and 3.9.0; pplAnalyze/allowDashboardSections only in 3.9.0; pplAlertingEnabled exists in alerting-dashboards 3.7.0.0 and 3.8.0.0.
  • Applied the 3.8-safe flags plus the two 3.9 flags to the live playground (now on 3.9): the query language picker offers PPL | SQL, and Create alert rule appears in the Explore logs toolbar.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

…3.9 Explore/dashboard flags

OSD 3.8 and 3.9 added several observability features that ship off by
default. Turn them on so the stack exposes them out of the box:

- explore.sqlSupport (3.8): SQL alongside PPL in the Explore query
  language picker, including the Patterns tab for SQL.
- explore.queryProfiling (3.8): warns when saving a complex,
  resource-heavy query as a visualization.
- opensearch_alerting.pplAlertingEnabled: surfaces "Create alert rule"
  in Explore logs, matching what docker-compose already sets.

The chart stays on 3.8 images, so the two 3.9-only flags go to
docker-compose (already on 3.9.0) and follow in the chart with the 3.9
bump:

- explore.pplAnalyze (3.9): Analyze panel with query phase timeline,
  operator waterfall and recommendations.
- dashboard.allowDashboardSections (3.9): collapsible dashboard sections.

OSD rejects unknown config keys at startup, so a 3.9-only key in the
chart would break Dashboards on 3.8 images.

Signed-off-by: Shenoy Pratik Gurudatt <ps48@users.noreply.github.com>

@kylehounslow kylehounslow left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

AI-assisted review (Claude), checked and posted by me.

Thanks for the negative control on 3.8. It makes the chart vs. compose split easy to trust. I checked the flag schemas against the release tags: sqlSupport/queryProfiling are in explore/common/config.ts on 3.8.0 and 3.9.0, and pplAnalyze and dashboard.allowDashboardSections are only on 3.9.0. Adding pplAlertingEnabled to the chart also closes a real gap with compose.

Approving. Two small comments inline, neither blocking.

explore.logsDrilldown.enabled: true
explore.logsQueryBuilder.enabled: true
explore.sqlSupport.enabled: true
explore.queryProfiling.enabled: true

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

AI-assisted review comment.

Heads up that this does more than the description suggests. On 3.9.0 it adds profile: true to every PPL query Explore sends, not just when saving a visualization: query_actions.ts#L857-L859

Probably fine for the playground. However, people copy these values into real deployments, so it's worth knowing what profiling costs per query on the SQL plugin side. Do you have a sense of the overhead, or someone on the SQL team we could ask? Either way, can we update the PR description to say it profiles every PPL query?

# Analyze panel in Explore logs: query phase timeline, operator waterfall and
# recommendations from the PPL analyze endpoint. Ships in OSD 3.9, off by
# default.
explore.pplAnalyze.enabled: true

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

AI-assisted review comment.

nit: these two 3.9 keys now exist only in compose, and the chart picking them up depends on someone remembering at the image bump. Could we open a tracking issue, or leave a comment next to tag: "3.8.0" in values.yaml, so the chart doesn't drift from compose?

This branch has not been deployed

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants