Migrate dashboards from ELK Stack
Migrating dashboards from Kibana to SigNoz requires manual recreation due to fundamental differences in the underlying data storage, query languages, and dashboard schemas.There is no direct import mechanism for Kibana dashboards into SigNoz.
Understanding the Differences:
- Query Language:
- Kibana: Relies on KQL (Kibana Query Language) or the more powerful Lucene syntax to query data stored in Elasticsearch. These languages are optimized for searching and filtering text within potentially semi-structured JSON documents stored in an inverted index. Key syntax elements include
field:value
, range queries like field:, boolean operators (AND, OR, NOT), existence checks (exists:field), and wildcards (*, ?).Lucene offers advanced features like regex and fuzzy search. - SigNoz: Primarily uses ClickHouse SQL for querying metrics, traces, and logs stored in its columnar database. It also provides a visual Query Builder that generates ClickHouse SQL or PromQL compatible queries, and supports direct PromQL for metrics. ClickHouse SQL is designed for fast analytical processing (aggregations, filtering, joins) over large structured datasets.
- Kibana: Relies on KQL (Kibana Query Language) or the more powerful Lucene syntax to query data stored in Elasticsearch. These languages are optimized for searching and filtering text within potentially semi-structured JSON documents stored in an inverted index. Key syntax elements include
- Data Model:
- Kibana: Visualizations query Elasticsearch indices containing JSON documents. The structure can be flexible but querying often relies on specific field names within those documents.
- SigNoz: Visualizations query structured tables within ClickHouse (e.g., signoz_index_v2, signoz_metrics, logs) with predefined columns and flexible tag maps (attributes_string, attributes_number, etc.). Understanding the target SigNoz ClickHouse schema is necessary for writing effective queries.
- Visualization Capabilities:
- Both platforms offer common visualization types like time series charts, bar charts, pie charts, tables, and single value displays (Value/Stat in SigNoz).
- SigNoz provides specialized observability visualizations like Flamegraphs and Gantt charts for traces, and Service Maps for dependencies. Kibana has its own specific visualizations like Tag Clouds, Heat Maps, and potentially more advanced map layers or custom Vega/TSVB charts.
- SigNoz currently lacks support for custom visualization plugins, which might be used in some Kibana setups.
Query Translation Process:
Manually recreating dashboards involves translating the intent of each Kibana panel's query and visualization into SigNoz.
- Identify Data Source: Determine what data the Kibana panel is visualizing (e.g., logs matching a query, aggregated metrics, trace latency) and find a suitable template in SigNoz Dashboard Templates repository
- Analyze Kibana Query: Understand the KQL or Lucene query used for filtering and the aggregation applied by the visualization itself (e.g., count of documents, average of a field, terms aggregation).
- Map to SigNoz Data: Locate the corresponding data in SigNoz (e.g., specific logs table, metrics table like
signoz_metrics
, or trace table likesignoz_index_v2
). Identify the relevant fields/attributes/tags in the SigNoz schema. - Rewrite Query in SigNoz:
- Use the SigNoz Query Builder for simpler queries involving filtering, aggregation (Count, Sum, Avg, P95, P99, etc.), and grouping by attributes.
- For more complex logic, write ClickHouse SQL queries directly against the appropriate SigNoz tables. This offers the most flexibility for complex aggregations or joins.
- Use PromQL for metric-based panels if preferred.
Table: KQL/Lucene vs. SigNoz (ClickHouse SQL/Query Builder) - Query Comparison
This table illustrates how common query patterns translate:
Query Task | Kibana (KQL Example) | Kibana (Lucene Example) | SigNoz (ClickHouse SQL Example - Simplified Schema) | SigNoz (Query Builder Approach) |
---|---|---|---|---|
Filter by field value | http.response.status_code: 200 | http.response.status_code:200 | SELECT... FROM logs WHERE attributes_string['http.response.status_code'] = '200' | Use Filters: attribute http.response.status_code, operator =, value 200 |
Filter by field existence | user.name:* | exists:user.name | SELECT... FROM logs WHERE mapContains(attributes_string, 'user.name') | Use Filters: attribute user.name, operator Exists |
Range query (numeric) | bytes: > 1024 | bytes:[1024 TO *] | SELECT... FROM metrics WHERE value > 1024 (if value is numeric column) | Use Filters: select metric, operator >, value 1024 |
Boolean logic | status:active AND region:us-west-1 | status:active AND region:us-west-1 | SELECT... WHERE attributes_string['status']='active' AND attributes_string['region']='us-west-1' | Add multiple filters connected by AND |
Text search (substring) | message: "error occurred" | message:"error occurred" | SELECT... FROM logs WHERE body ILIKE '%error occurred%' | Use Search bar (searches body) or Filter body CONTAINS error occurred |
Aggregation (count by status) | (Via Kibana Viz Aggregation) | (Via Kibana Viz Aggregation) | SELECT attributes_string['status'] as status, count() FROM logs GROUP BY status | Use Query Builder: Aggregation Count, Group By status attribute |
Aggregation (P99 latency) | (Via Kibana Viz Aggregation) | (Via Kibana Viz Aggregation) | SELECT quantile(0.99)(durationNano) FROM signoz_index_v2 WHERE... GROUP BY... | Use Query Builder: Aggregation P99, select durationNano metric |
Creating Custom Dashboards
In case there is no existing dashboard template that you can use, you can create a custom dashboard in SigNoz. Please follow Manage Dashboards in SigNoz documentation for more details.
Requesting Custom Dashboards
You can also request SigNoz to help you with creating custom dashboards. To request a custom dashboard, please create a GitHub issue providing details about the dashboard you want to create.
Dashboard Features
SigNoz supports essential dashboard features including:
- Variables: Create template variables for dynamic dashboards
- Panel Types: Various visualization options (time series, bar charts, tables, etc.)
- Query Builder: Construct queries visually or using PromQL or using Clickhouse queries
Panel Types
Signoz supports most of the common panel types supported by ELK
Panel Type | Signoz | ELK (Kibana) | Notes |
---|---|---|---|
Time Series | ✓ | ✓ | Both platforms excel at time series visualization (e.g., Kibana Lens, TSVB). Support thresholds, units. |
Bar Chart | ✓ | ✓ | Both support categorical data visualization (vertical, horizontal, stacked). |
Pie Chart | ✓ | ✓ | Both support proportional data visualization. |
Table | ✓ | ✓ | Both support tabular data display. Kibana's 'Discover' tab is also highly optimized for raw data/log exploration in table format. |
Histogram | ✓ | ✓ | Both support distribution visualization. Kibana often uses this within time series or bar charts via aggregations. |
Value/Stat | ✓ | ✓ | Single value display (Kibana 'Metric' visualization, Lens Metric). Both support thresholds/coloring. |
Gauge | - | ✓ | Kibana has dedicated Gauge panels. Signoz uses Value panels with thresholds for similar functionality. |
Node Graph | ✓ | ✓ | Signoz has Service Map. Kibana has Service Maps within its APM feature. Both show service dependencies. |
Logs | ✓ | ✓ | Signoz uses a List panel and a dedicated Logs explorer. ELK/Kibana's core strength is log analysis (Discover, Logs UI). |
Traces | ✓ | ✓ | Both provide dedicated APM features for trace visualization and exploration. |
Flame Graph | ✓ | ✓ | Both offer flame graphs as part of their APM trace detail views. |
XY Chart/Scatter | - | ✓ | Kibana Lens supports Scatter plots directly. |
Geomap | - | ✓ | Kibana has powerful 'Elastic Maps' for geospatial data visualization. |
Canvas | - | ✓ | Kibana 'Canvas' allows for free-form, infographic-style dashboard design. |
Tag Cloud | - | ✓ | Kibana offers Tag Clouds, often used for visualizing term frequency in text data. |
Heat Map | - | ✓ | Kibana offers Heat Map visualizations. |
Vega Viz | - | ✓ | Kibana supports custom Vega/Vega-Lite visualizations for advanced charting needs. |
Importing Dashboards: |
While Kibana dashboards cannot be imported, SigNoz does support importing dashboards from JSON files.This is useful for:
- Sharing dashboards created in SigNoz.
- Using pre-built dashboard templates provided by SigNoz (e.g., for APM metrics, HTTP monitoring, DB calls).
- Importing Grafana dashboards (if they use Prometheus data sources), although variables might need adjustment.
SigNoz does not currently support plugins, so in case you are using any plugins that provide additional panel types in your Grafana, you will need to find an alternative or recreate the same functionality using SigNoz's features.
Please refer to Panel Types documentation for more details on the panel types supported by SigNoz.