Table with Column Grouping extends the standard Grafana table panel with configurable multi-level headers and column group layouts.
Grafana's default table is strong for flat column structures. This plugin is designed for datasets where columns belong to logical groups and need a clearer visual hierarchy.
Use it when you need:
- Multi-level column headers with nested groups
- Vertical or horizontal group orientation
- Familiar table behavior (sorting, filtering, resizing)
- A visual editor for group configuration
- Grafana
>= 12.2.0
- Open your Grafana instance.
- Go to Administration -> Plugins.
- Search for Table with Column Grouping.
- Click Install.
- Build or download a plugin package.
- Extract it into the Grafana plugins directory:
unzip smelentyev-tablecolumngrouping-panel-<version>.zip -d /var/lib/grafana/plugins/- Restart Grafana:
systemctl restart grafana-server- Verify installation in Administration -> Plugins.
- Create (or edit) a dashboard panel.
- Select Table with Column Grouping as visualization.
- Configure your query.
- In panel options, enable/configure column grouping.
- Build header hierarchy in the grouping editor.
- Fine-tune field display options and widths.
- Nested group headers with flexible depth
- Group orientation controls (vertical / horizontal)
- Integrated sorting and filtering flows
- Column resize support
- Compatible with field options and display modes
npm installnpm run buildnpm run typechecknpm run lintnpm run test:cinpm run servernpm run e2eFor Grafana catalog submission, keep these assets current:
README.md(clear user-facing docs)CHANGELOG.md(release notes)src/plugin.jsonmetadata (description, links, screenshots)
The repository includes a provisioned Grafana test environment and a sample dashboard used for validation and review.
Manual validation flow:
- Start Grafana locally with
npm run server. - Open the provisioned dashboard
Provisioned Grafana_Advanced_Table dashboard. - Check panel
Grouped Columns Demofor grouped headers and pagination behavior. - Check panel
Sample Panel Titlefor the no-data state. - Check panel
Expression Filter Reprofor filter behavior. - In the
Sessioncolumn filter, selectExpressionand test an expression such as$<=228556801. - Confirm only matching rows remain visible and invalid expressions fail safely without executing arbitrary code.
Automated validation available in the repository:
- Unit tests:
npm run test:ci - E2E tests:
npm run e2e - Static checks:
npm run typecheckandnpm run lint - Build:
npm run build
Apache-2.0. See LICENSE.


