Skip to content

Building a dashboard🔗

package example;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.grafana.foundation.dashboard.Dashboard;
import com.grafana.foundation.common.Constants;
import com.grafana.foundation.dashboard.DashboardBuilder;
import com.grafana.foundation.dashboard.DashboardDashboardTimeBuilder;
import com.grafana.foundation.dashboard.RowBuilder;
import com.grafana.foundation.prometheus.DataqueryBuilder;
import com.grafana.foundation.timeseries.PanelBuilder;

import java.util.List;

public class Main {
    public static void main(String[] args) throws JsonProcessingException {
        Dashboard dashboard = new DashboardBuilder("Sample Dashboard").
                uid("generated-from-java").
                tags(List.of("generated", "from", "java")).
                refresh("1m").
                time(new DashboardDashboardTimeBuilder().
                        from("now-30m").
                        to("now")
                ).
                timezone(Constants.TimeZoneBrowser).
                withRow(new RowBuilder("Overview")).
                withPanel(new PanelBuilder().
                        title("Network Received").
                        unit("bps").
                        min(0.0).
                        withTarget(new DataqueryBuilder().
                                expr("rate(node_network_receive_bytes_total{job=\"integrations/raspberrypi-node\", device!=\"lo\"}[$__rate_interval]) * 8").
                                legendFormat("{{ device }}")
                        )
                ).build();

        System.out.println(dashboard.toJSON());
    }
}