Use when creating or reviewing Kibana assets in packages, including dashboard export structure, naming, and data stream alignment.
Install
npx skills add https://github.com/elastic/integration-skills --skill dashboard-guidelinesSKILL.md
dashboard-guidelines
When to use
Use this skill when tasks include:
- creating new Kibana dashboards for an integration package
- reviewing dashboard JSON changes in
kibana/folders - exporting dashboard updates from Kibana into package source
- verifying dashboard naming and file layout against package spec
- checking dashboard/data stream alignment through
data_stream.datasetfiltering
When not to use
Do not use this skill as the primary guide for:
- package and data stream directory scaffolding (
create-integration,package-structure) - ingest pipeline parsing and normalization logic (
ingest-pipelines) - package-wide command orchestration and stack lifecycle decisions (
elastic-package-cli) - test suite selection outside dashboard-focused checks (
integration-testing→references/system-testing.md)
Preconditions
Before creating or updating dashboard assets, verify:
- you are in the correct package directory (
packages/<package_name>/) - Kibana/Elastic services are available for editing and exporting assets
- sample data exists and dashboards can be validated against realistic events/metrics
- package
manifest.ymlcompatibility constraints (conditions.kibana.version) are understood
Workflow: create, export, validate
- Build or update dashboards in Kibana.
- Prefer Lens for new visualizations.
- Keep panels in the dashboard itself (by value) unless shared-library behavior is intentionally required.
- Export assets back into the package.
# from package root
elastic-package export
- If you need to modify installed managed dashboards before exporting:
elastic-package edit dashboards
elastic-package export dashboards
Review exported files under
kibana/:- file names match package spec
- no stale field names after mapping changes
- dashboard filters are scoped to integration datasets
Run package validation commands before opening a PR:
elastic-package check
Naming conventions
Use naming conventions from dashboard creation guidance:
- Visualization title:
<Name>(avoid repeating package name in each panel title)
- Dashboard title:
[<Metrics | Logs> <PACKAGE NAME>] <Name>- examples:
[Metrics System] Host overview,[Logs Nginx] Access overview
- Dashboard asset file:
{PACKAGE_NAME}-{identifier}.json- example:
nginx-046212a0-a2a1-11e7-928f-5dbe6f6f5519.json
Design and modeling best practices
- Use stable released Kibana versions (avoid SNAPSHOT).
- Keep dashboards focused; split overloaded boards and provide navigation links.
- Prefer by-value panels so dashboards remain self-contained.
- Prefer Lens over TSVB for new visualizations.
- Add controls using dashboard-native Controls (not deprecated input controls visualization).
- Include dataset-aware filtering to prevent broad
logs-*/metrics-*queries where possible.- baseline recommendation: filter by
data_stream.dataset
- baseline recommendation: filter by
- Keep visual hierarchy clear:
- most important summary panels near the top
- related charts grouped together
- margins enabled for readability
- Use concise, self-explanatory panel titles and consistent accessible colors.
Quality checklist before PR
- dashboard assets are in
kibana/dashboard/and follow expected naming pattern - dashboard content reflects current field names and types
- visualizations are embedded by value unless there is a documented exception
- dashboard or panel queries include integration-relevant filters (
data_stream.datasetwhen applicable) - controls/drilldowns/navigation are coherent for multi-dashboard packages
- exported dependencies are committed (dashboards plus required saved objects)
elastic-package checkpasses for the package
Common pitfalls
- exporting from an unstable Kibana build and committing incompatible saved object data
- using generic, unfiltered
logs-*/metrics-*queries that cause noisy or slow panels - keeping stale field references after pipeline/field mapping changes
- overloading one dashboard instead of splitting into overview and deep-dive views
- relying on library visualizations unintentionally, causing hidden dependencies
- inconsistent naming between dashboard title, file name, and package context
Handoff to other skills
After dashboard updates are in place, continue with:
dashboard-reviewfor reviewing dashboard JSON changes in a PR or branchintegration-testing→references/system-testing.mdfor system test validationelastic-package-clifor broader check/lint/test command selectionpackage-specwhen dashboard changes require a release note entry
References
references/kibana-assets-layout.md
Related skills
azure-diagnosticsmicrosoft608KDebug Azure production issues on Azure using AppLens, Azure Monitor, resource health, and safe triage. WHEN: debug production issues, troubleshoot app service, app service high CPU, app service deployment failure, troubleshoot container apps, troubleshoot functions, troubleshoot AKS, VM RDP, Linux SSH, VM black screen, can't connect to VM, reset VM password, NSG or firewall blocking, kubectl cannot connect, kube-system/CoreDNS failures, pod pending, crashloop, node not ready, upgrade failures, aazure-preparemicrosoft608KPrepare azd-based Azure projects for deployment: generates azure.yaml, infrastructure (Bicep/Terraform), and Dockerfiles for the Azure Developer CLI (azd) workflow. USE ONLY when the user explicitly wants to use azd as the deployment tool, or the project already has an azure.yaml file. DO NOT USE FOR: non-azd deployments, Python App Service code-only deploys (use python-appservice-deploy), or cross-cloud migration (use azure-cloud-migrate). WHEN: prepare app for azd, create azure.yaml, set up azazure-aimicrosoft608KUse for Azure AI: Search, Speech, OpenAI, Document Intelligence. Helps with search, vector/hybrid search, speech-to-text, text-to-speech, transcription, OCR. WHEN: AI Search, query search, vector search, hybrid search, semantic search, speech-to-text, text-to-speech, transcribe, OCR, convert text to speech.azure-deploymicrosoft607KExecute Azure deployments for ALREADY-PREPARED applications that have existing .azure/deployment-plan.md and infrastructure files. DO NOT use this skill when the user asks to CREATE a new application — use azure-prepare instead. This skill runs azd up, azd deploy, terraform apply, and az deployment commands with built-in error recovery. Requires .azure/deployment-plan.md from azure-prepare and validated status from azure-validate. WHEN: \"run azd up\", \"run azd deploy\", \"execute deployment\",
