[Coordination & infra OTel] Regenerate OTel dashboards with adHocDataViews - #20483
Open
giorgi-imerlishvili-elastic wants to merge 2 commits into
Conversation
…Views Recompile the committed Kibana dashboards for etcd_otel, zookeeper_otel, airflow_otel, nvidia_gpu_otel and vsphere_otel with the Elastic fork of the dashboard compiler so every ES|QL Lens layer gains a populated adHocDataViews, internalReferences and per-layer index. This fixes the broken "Explore in Discover" action on Kibana 9.3+ (elastic/obs-integration-team#1014). All 187 ES|QL Lens layers across the 14 dashboards were regenerated. The diff contains only those additions: no query, title, visualization type, layout or filter changed. The YAML sources are left untouched so the pinned CI dashboard compiler does not recompile empty adHocDataViews and fail validation. Bumps each package's patch version and adds a bugfix changelog entry (PR link placeholder to be replaced once the PR number is known).
The changelog links were written before the PR existed, so they carried a placeholder number. Replace it with elastic#20483 now that the PR is open.
Contributor
✅ Elastic Docs Style Checker (Vale)No issues found on modified lines! The Vale linter checks documentation changes against the Elastic Docs style guide. To use Vale locally or report issues, refer to Elastic style guide for Vale. |
Contributor
|
✅ All changelog entries have the correct PR link. |
💚 Build Succeeded
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Proposed commit message
WHAT
Recompiles the committed Kibana dashboard JSON for five OTel content packages —
etcd_otel,zookeeper_otel,airflow_otel,nvidia_gpu_otel,vsphere_otel— from their existing, unchanged_dev/shared/kibana/*.yamlsources. Across 14 dashboards and 187 ES|QL Lens layers, every layer nowcarries the three pieces of state a Lens ES|QL panel needs to resolve its own data view:
state.datasourceStates.textBased.layers.<layerId>.index— the ad-hoc data view idstate.adHocDataViews.<id>—titleequal to the layer's ES|QLFROM/TSindex pattern,timeFieldName: "@timestamp"state.internalReferences— the matchingindex-patternreferenceCounts after regeneration (1:1 on every layer, no orphans, no duplicates):
layer.indexadHocDataViewsinternalReferencesetcd_otelzookeeper_otelairflow_otelnvidia_gpu_otelvsphere_otelNothing else changes. A field-by-field diff against the committed 0.3.0 JSON shows the additions
above (plus the
indexPatternRefsbookkeeping the compiler writes alongside them) and no otheredits: ES|QL queries, visualization types and dimensions, panel titles, layout, dashboard-level
filters, controls and drill-down links are byte-identical.
manifest.ymlgoes 0.3.0 -> 0.3.1 with abugfixchangelog entry per package.WHY
On Kibana 9.3+ a Lens ES|QL panel whose layer has no
index/adHocDataViewscannot resolve a dataview, so the "Explore in Discover" panel action is never registered and the panel loses its
drill-down. The failure is silent — the action is simply absent rather than erroring — so it is easy
to miss in review. Populating the three fields restores the drill-down without touching any query or
visualization.
Checklist
changelog.ymlfile.Author's Checklist
layer.index,adHocDataViews,internalReferencesandindexPatternRefs— no query, visualization, filter, control, title or layout changes.adHocDataViews[<id>].titlematches its layer's ES|QL source index pattern andthat
timeFieldNameis@timestamp.(
kb-dashboard-cli==0.4.1,.github/workflows/validate-yaml-dashboards.requirements.txt)produces — 0.4.1 emits 0
adHocDataViews. The "Validate Dashboard Compilation" workflow is ano-op here because no YAML changed, but the compiler fix must be released and the pin bumped
before the next PR touches these YAML sources, or the fix will be recompiled away.
etcd_otel, 1 inzookeeper_otel) nowopen Discover but the handed-off query is rejected by Elasticsearch:
[:] operator cannot operate on [data_stream.dataset] ... in non-STANDARD mode [time_series].Kibana appends the dashboard-level KQL filter as
| WHERE `data_stream.dataset` : "..."andES|QL rejects the
:match operator againsttime_seriesindices for these rate/counterqueries. The same 159-pass/28-fail split occurs when the simulation is run against the
committed 0.3.0 JSON, so it is independent of this change — it was previously unreachable
because the action did not exist. All four
vsphere_oteldashboards have no dashboard-levelfilter and see 0 failures.
How to test this PR locally
Executed while preparing this PR (Kibana/Elasticsearch 9.5, local
elastic-packagestack)Package validation — all five pass:
vsphere_oteladditionally reports 4 pre-existingSVR00002findings ("expected filter indashboard") as skipped errors; they are identical on the committed 0.3.0 files and do not fail the
check.
Structural verification of all 187 layers (ids agree across
layer.index,adHocDataViewsandinternalReferences; data-view title equals the ES|QL source;timeFieldName == "@timestamp"; noduplicate refs; no orphan data views): 187/187 pass, 0 failures.
Live validation on 9.5 with synthetic OTel metrics ingested into TSDB indices for all five datasets:
render errors. Non-ES|QL panels (markdown, links) correctly do not offer it.
ES|QL panels of
etcd_otel-overview, and present on the same 17 panels after regeneration.TS,FROMandFORKqueries) open Discoverwith the query text, index pattern, columns and time range preserved, and results matching the
panel. No
Cannot read properties of undefined (reading 'id')in the console.controls populate, and dashboard-to-dashboard links preserve the time range.
layer.index,adHocDataViewsandinternalReferenceson all 13 panels of the saved copy, and the action still works.GET /api/dashboards/<id>returns HTTP 200 for all 14 dashboards with no schema failure, and thepanel counts, panel types and ES|QL query sets are identical before and after.
Note for 9.5 reviewers: "Explore in Discover" is a panel hover button
(
embeddablePanelAction-ACTION_OPEN_IN_DISCOVER), not an entry in the panel⋯menu.For the reviewer
Related issues
Screenshots
N/A — no UI or dashboard content changes; the panels render exactly as before. The change only
restores the "Explore in Discover" panel action, which is described under "How to test this PR
locally".