Search Panel Configuration¶
The search panel type is used to embed the results of a pre-existing, saved Kibana search directly onto your dashboard. This allows you to display dynamic log views, event lists, or any other data set defined by a saved search in Discover.
A Poem for the Log Detectives¶
For those who hunt through haystacks for needles:
The case runs hot. The logs are cold.
But Discover's got the clues on hold.
Embedded here upon your board—
No need to leave; it's all aboard.
Security breaches? Last night's crime?
System errors frozen in time?
Columns lined up, suspects neat,
Each row of evidence, complete.
saved_search_id—that's your lead,
The only clue you'll ever need.
Filters applied, the query's set,
The perp's in there. I'd place a bet.
From error logs to audit trails,
This search panel never fails.
Dynamic views that auto-scroll—
The log detective's on patrol.
Search Panel¶
Represents a Search panel configuration.
Search panels are used to display the results of a saved Kibana search.
Examples:
Minimal search panel:
dashboards:
- name: "Log Monitoring Dashboard"
panels:
- title: "All System Logs"
size: { w: 48, h: 10 }
search:
saved_search_id: "a1b2c3d4-e5f6-7890-1234-567890abcdef"
Search panel with hidden title:
dashboards:
- name: "Security Incidents Overview"
panels:
- hide_title: true
description: "Critical security alerts from the last 24 hours"
size: { w: 48, h: 8 }
search:
saved_search_id: "critical-security-alerts-saved-search"
Attributes:
| Name | Type | Description |
|---|---|---|
search |
SearchPanelConfig
|
Search panel configuration. |
Show JSON schema:
{
"$defs": {
"DashboardDrilldown": {
"additionalProperties": false,
"description": "Dashboard-to-dashboard drilldown configuration.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional unique identifier for the drilldown. If not provided, one will be generated.",
"title": "Id"
},
"name": {
"description": "Display name for the drilldown.",
"title": "Name",
"type": "string"
},
"triggers": {
"description": "List of triggers that activate this drilldown. Defaults to ['click'].",
"items": {
"$ref": "#/$defs/DrilldownTrigger"
},
"title": "Triggers",
"type": "array"
},
"dashboard": {
"description": "Target dashboard ID or friendly identifier.",
"title": "Dashboard",
"type": "string"
},
"with_filters": {
"default": true,
"description": "Whether to carry over current filters to the target dashboard. Defaults to True.",
"title": "With Filters",
"type": "boolean"
},
"with_time": {
"default": true,
"description": "Whether to carry over current time range to the target dashboard. Defaults to True.",
"title": "With Time",
"type": "boolean"
}
},
"required": [
"name",
"dashboard"
],
"title": "DashboardDrilldown",
"type": "object"
},
"DrilldownTrigger": {
"description": "User-facing drilldown trigger types.",
"enum": [
"click",
"filter",
"range"
],
"title": "DrilldownTrigger",
"type": "string"
},
"DrilldownTypes": {
"anyOf": [
{
"$ref": "#/$defs/DashboardDrilldown"
},
{
"$ref": "#/$defs/UrlDrilldown"
}
]
},
"Position": {
"additionalProperties": false,
"description": "Panel position configuration.\n\nDetermines the x/y coordinates of a panel on the dashboard grid.\nIf not specified, the panel will be auto-positioned.",
"properties": {
"x": {
"anyOf": [
{
"maximum": 48,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "The horizontal starting position of the panel on the grid (0-based). If None, position will be auto-calculated.",
"title": "X"
},
"y": {
"anyOf": [
{
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "The vertical starting position of the panel on the grid (0-based). If None, position will be auto-calculated.",
"title": "Y"
}
},
"title": "Position",
"type": "object"
},
"SearchPanelConfig": {
"additionalProperties": false,
"description": "Configuration specific to Search panels.",
"properties": {
"saved_search_id": {
"description": "The ID of the saved Kibana search object to display in the panel.",
"title": "Saved Search Id",
"type": "string"
}
},
"required": [
"saved_search_id"
],
"title": "SearchPanelConfig",
"type": "object"
},
"Size": {
"additionalProperties": false,
"description": "Panel size configuration.\n\nDetermines the width and height of a panel on the dashboard grid.\nWidth accepts semantic values ('whole', 'half', etc.) or integers.",
"properties": {
"w": {
"anyOf": [
{
"type": "integer"
},
{
"enum": [
"whole",
"half",
"third",
"quarter",
"sixth",
"eighth"
],
"type": "string"
}
],
"default": 12,
"description": "The width of the panel in grid units.\n\nDefaults to 12 (quarter width). Accepts semantic values ('whole', 'half', 'third', 'quarter', 'sixth', 'eighth') or integers (1-48).",
"title": "W"
},
"h": {
"default": 8,
"description": "The height of the panel in grid units. Defaults to 8.",
"exclusiveMinimum": 0,
"title": "H",
"type": "integer"
}
},
"title": "Size",
"type": "object"
},
"UrlDrilldown": {
"additionalProperties": false,
"description": "URL drilldown configuration.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional unique identifier for the drilldown. If not provided, one will be generated.",
"title": "Id"
},
"name": {
"description": "Display name for the drilldown.",
"title": "Name",
"type": "string"
},
"triggers": {
"description": "List of triggers that activate this drilldown. Defaults to ['click'].",
"items": {
"$ref": "#/$defs/DrilldownTrigger"
},
"title": "Triggers",
"type": "array"
},
"url": {
"description": "Target URL template. Can include Kibana template variables.",
"title": "Url",
"type": "string"
},
"new_tab": {
"default": false,
"description": "Whether to open the URL in a new tab. Defaults to False.",
"title": "New Tab",
"type": "boolean"
},
"encode_url": {
"default": true,
"description": "Whether to URL-encode the template variables. Defaults to True.",
"title": "Encode Url",
"type": "boolean"
}
},
"required": [
"name",
"url"
],
"title": "UrlDrilldown",
"type": "object"
}
},
"additionalProperties": false,
"description": "Represents a Search panel configuration.\n\nSearch panels are used to display the results of a saved Kibana search.\n\nExamples:\n Minimal search panel:\n ```yaml\n dashboards:\n - name: \"Log Monitoring Dashboard\"\n panels:\n - title: \"All System Logs\"\n size: { w: 48, h: 10 }\n search:\n saved_search_id: \"a1b2c3d4-e5f6-7890-1234-567890abcdef\"\n ```\n\n Search panel with hidden title:\n ```yaml\n dashboards:\n - name: \"Security Incidents Overview\"\n panels:\n - hide_title: true\n description: \"Critical security alerts from the last 24 hours\"\n size: { w: 48, h: 8 }\n search:\n saved_search_id: \"critical-security-alerts-saved-search\"\n ```",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier for the panel. If not provided, one may be generated during compilation.",
"title": "Id"
},
"title": {
"default": "",
"description": "The title displayed on the panel header. Can be an empty string.",
"title": "Title",
"type": "string"
},
"hide_title": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, the panel title will be hidden. Defaults to `false` (title is shown).",
"title": "Hide Title"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A brief description of the panel's content or purpose. Defaults to an empty string.",
"title": "Description"
},
"size": {
"$ref": "#/$defs/Size",
"description": "Defines the panel's size on the dashboard grid."
},
"position": {
"$ref": "#/$defs/Position",
"description": "Defines the panel's position on the dashboard grid. If not specified, position will be auto-calculated."
},
"drilldowns": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/DrilldownTypes"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional list of drilldowns to attach to this panel.",
"title": "Drilldowns"
},
"search": {
"$ref": "#/$defs/SearchPanelConfig",
"description": "Search panel configuration."
}
},
"required": [
"search"
],
"title": "SearchPanel",
"type": "object"
}
Search Panel Configuration¶
Configuration specific to Search panels.
Attributes:
| Name | Type | Description |
|---|---|---|
saved_search_id |
str
|
The ID of the saved Kibana search object to display in the panel. |
Show JSON schema:
{
"additionalProperties": false,
"description": "Configuration specific to Search panels.",
"properties": {
"saved_search_id": {
"description": "The ID of the saved Kibana search object to display in the panel.",
"title": "Saved Search Id",
"type": "string"
}
},
"required": [
"saved_search_id"
],
"title": "SearchPanelConfig",
"type": "object"
}
Note on Behavior: The appearance, columns displayed, sort order, and underlying query of the Search panel are primarily controlled by the configuration of the saved search itself within Kibana's Discover application. The dashboard panel configuration mainly serves to embed that saved search.
Related Documentation¶
- Base Panel Configuration
- Dashboard Configuration
- Kibana Discover and Saved Searches documentation (external to this project).