OpenLIT makes dashboards interactive by letting you add filters and dynamically bind their values to ClickHouse queries. This enables you to create reusable dashboards that respond to user inputs like time range, environment, region, and more.

🧩 What Are Filters?

Filters are interactive controls (e.g. date ranges) placed at the top of a dashboard. You can bind these filters to your widgets so their values get passed into SQL queries in real time.

πŸͺ„ What Are Dynamic Bindings?

OpenLIT uses mustache-style bindings to inject filter values into your queries.

βœ… Format:

{{variable_name}}
At runtime, OpenLIT replaces each binding with the user-provided filter value.

Common Examples:

  • {{filter.timeLimit.start}} and {{filter.timeLimit.end}} β€” for date range filters

πŸ› οΈ How to Add and Use Filters


πŸ” SQL Example with Mustache Bindings

SELECT
  toStartOfHour(event_time) AS time,
  count() AS value
FROM user_events
WHERE event_time BETWEEN {{filter.timeLimit.start}} AND {{filter.timeLimit.end}}
GROUP BY time
ORDER BY time
In this example:
  • {{filter.timeLimit.start}} & {{filter.timeLimit.end}} are bound to a date range filter

πŸ› οΈ Supported Filter Types

  • Date Range β†’ {{filter.timeLimit.start}}, {{filter.timeLimit.end}}
  • (Coming soon): Dynamic filters etc

βœ… Best Practices

  • Always use meaningful keys like team_id, env, or region
  • Use coalesce({{param}}, 'default') to provide fallback values in ClickHouse
  • Test your queries in the SQL editor with example values for clarity
  • Avoid hardcoded constraintsβ€”use bindings to keep dashboards flexible