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.
  • 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.

  1. 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
  2. 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).
  3. Map to SigNoz Data: Locate the corresponding data in SigNoz (e.g., specific logs table, metrics table like signoz_metrics, or trace table like signoz_index_v2). Identify the relevant fields/attributes/tags in the SigNoz schema.
  4. 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 TaskKibana (KQL Example)Kibana (Lucene Example)SigNoz (ClickHouse SQL Example - Simplified Schema)SigNoz (Query Builder Approach)
Filter by field valuehttp.response.status_code: 200http.response.status_code:200SELECT... FROM logs WHERE attributes_string['http.response.status_code'] = '200'Use Filters: attribute http.response.status_code, operator =, value 200
Filter by field existenceuser.name:*exists:user.nameSELECT... FROM logs WHERE mapContains(attributes_string, 'user.name')Use Filters: attribute user.name, operator Exists
Range query (numeric)bytes: > 1024bytes:[1024 TO *]SELECT... FROM metrics WHERE value > 1024 (if value is numeric column)Use Filters: select metric, operator >, value 1024
Boolean logicstatus:active AND region:us-west-1status:active AND region:us-west-1SELECT... 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 statusUse 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 TypeSignozELK (Kibana)Notes
Time SeriesBoth platforms excel at time series visualization (e.g., Kibana Lens, TSVB). Support thresholds, units.
Bar ChartBoth support categorical data visualization (vertical, horizontal, stacked).
Pie ChartBoth support proportional data visualization.
TableBoth support tabular data display. Kibana's 'Discover' tab is also highly optimized for raw data/log exploration in table format.
HistogramBoth support distribution visualization. Kibana often uses this within time series or bar charts via aggregations.
Value/StatSingle 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 GraphSignoz has Service Map. Kibana has Service Maps within its APM feature. Both show service dependencies.
LogsSignoz uses a List panel and a dedicated Logs explorer. ELK/Kibana's core strength is log analysis (Discover, Logs UI).
TracesBoth provide dedicated APM features for trace visualization and exploration.
Flame GraphBoth 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.

Was this page helpful?