Generate OpenSearch Dashboards (Kibana) saved objects — index patterns, visualizations, and dashboards as JSON. Use when the user asks to create dashboards, charts, or visualizations for OpenSearch/Elasticsearch/Kibana.
Installation
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Generate OpenSearch Dashboards (Kibana) saved objects — index patterns, visualizations, and dashboards as JSON. Use when the user asks to create dashboards, charts, or visualizations for OpenSearch/Elasticsearch/Kibana.
date_histogram — time buckets (interval: 1m, 5m, 1h, 1d, auto)
terms — top N values of a field
range — custom numeric ranges
filters — named query filters
histogram — fixed-width numeric buckets
Step 4: Generate Visualization JSON
Template for a visualization saved object:
{"type":"visualization","id":"[unique-id]","attributes":{"title":"[Visualization Title]","visState":"{\"title\":\"[title]\",\"type\":\"[vis-type]\",\"aggs\":[...],\"params\":{...}}","uiStateJSON":"{}","description":"[what this shows]","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"index\":\"[index-pattern-id]\",\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}"}}}
Step 5: Compose Dashboard Layout
Arrange visualizations in a grid layout
Group related metrics together
Place summary/KPI panels at the top
Place detailed breakdowns below
Add markdown panels for section headers or notes
Dashboard saved object:
{"type":"dashboard","id":"[dashboard-id]","attributes":{"title":"[Dashboard Title]","description":"[what this dashboard monitors]","panelsJSON":"[{\"gridData\":{\"x\":0,\"y\":0,\"w\":24,\"h\":15,\"i\":\"1\"},\"panelIndex\":\"1\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"}]","optionsJSON":"{\"hidePanelTitles\":false,\"useMargins\":true}","timeRestore":true,"timeTo":"now","timeFrom":"now-24h","refreshInterval":{"pause":false,"value":30000},"kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}"}},"references":[{"name":"panel_0","type":"visualization","id":"[vis-id]"}]}
Step 6: Generate NDJSON Export
Combine all saved objects (index pattern + visualizations + dashboard)