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());
}
}