grafana / grafonnet

Jsonnet library for generating Grafana dashboards.
https://grafana.github.io/grafonnet/
Apache License 2.0
322 stars 19 forks source link

Support startY in makegrid to run function more than once. #109

Closed v-zhuravlev closed 10 months ago

v-zhuravlev commented 10 months ago

This small addition allows to run makeGrid more than once or combine generated grid with panels generated some other way.

            + g.dashboard.withPanels(
                    g.util.grid.makeGrid(
                    [
                        g.panel.row.new("CPU")
                            + g.panel.row.withPanels([
                                g.panel.stat.new("test"),
                                g.panel.stat.new("test"),
                                g.panel.stat.new("test"),
                                g.panel.stat.new("test"),
                                g.panel.stat.new("test"),
                                g.panel.stat.new("test"),
                                g.panel.stat.new("test"),
                                g.panel.stat.new("test"),
                                g.panel.stat.new("test"),
                            ]),
                    ],
                    6, 2)
                    +
                    g.util.grid.makeGrid(
                    [
                        g.panel.row.new("CPU")
                            + g.panel.row.withPanels([
                                g.panel.stat.new("test"),
                                g.panel.stat.new("test"),
                                g.panel.stat.new("test"),
                            ]),
                        g.panel.row.new("CPU100")
                            + g.panel.row.withPanels([
                                g.panel.stat.new("test"),
                                g.panel.stat.new("test"),
                                g.panel.stat.new("test"),
                                g.panel.stat.new("test"),
                            ]),
                    ],
                    8, 6, startY=100),
            )

Produces: image

malcolmholmes commented 10 months ago

I wonder if makeGrid could store startY as a hidden element on panels[]. Then you wouldn't need to specify it, each invocation will build on where the last one left off.

v-zhuravlev commented 10 months ago

I wonder if makeGrid could store startY as a hidden element on panels[]. Then you wouldn't need to specify it, each invocation will build on where the last one left off.

Sounds like some 'magic' :)