feat(osd): enable SQL in Explore, query profiling, PPL alerting, and 3.9 Explore/dashboard flags - #474
feat(osd): enable SQL in Explore, query profiling, PPL alerting, and 3.9 Explore/dashboard flags#474ps48 wants to merge 1 commit into
Conversation
…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
left a comment
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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?
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 SQLexplore.queryProfiling(3.8) — warns when saving a complex, resource-heavy query as a visualizationopensearch_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, recommendationsdashboard.allowDashboardSections(3.9) — collapsible dashboard sectionsOSD 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.values+values-anonymous-auth) onopensearchproject/opensearch-dashboards:3.8.0→ starts cleanexplore.pplAnalyze.enabledon 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.sqlSupport/queryProfilingexist in OSD 3.8.0 and 3.9.0;pplAnalyze/allowDashboardSectionsonly in 3.9.0;pplAlertingEnabledexists in alerting-dashboards 3.7.0.0 and 3.8.0.0.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.