
Skill
dashboard-guidelines
create and review Kibana dashboard assets
Description
Use when creating or reviewing Kibana assets in packages, including dashboard export structure, naming, and data stream alignment.
SKILL.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
More skills from the integration-skills repository
View all 14 skillsanonymize-logs
anonymize sensitive log data
Jul 18Data CleaningLogsPrivacySecuritycel-programs
write CEL programs for data collection
Jul 12API DevelopmentData EngineeringElasticIntegrationscreate-integration
create Elastic integration packages
Jul 12ElasticsearchIntegrationsdashboard-review
review Elastic dashboard JSON changes
Jul 12Code ReviewDashboardsElasticKibanaecs-field-mappings
define ECS field mappings for integrations
Jul 12Data ModelingData QualityElasticIntegrationselastic-package-cli
develop and validate Elastic integrations
Jul 12CLIElasticIntegrationsTesting
More from Elastic
View publisheraccessing-benchmark-results
retrieve and analyze Rally benchmark results
rally
Jul 12AnalyticsData AnalysisElasticPerformancedeveloping-rally
develop and debug Rally source code
rally
Jul 12DebuggingElasticEngineeringLocal Developmentrunning-benchmarks
run Rally benchmarks against Elasticsearch
rally
Jul 12ElasticElasticsearchPerformanceTestingcloud-access-management
manage Elastic Cloud organization access
agent-skills
Jul 12CloudElasticOperationsPermissionscloud-create-project
create Elastic Cloud Serverless projects
agent-skills
Jul 12CloudDeploymentElasticsearchcloud-manage-project
manage Elastic Cloud Serverless projects
agent-skills
Jul 12CloudElasticsearchOperations