See: https://grafana.com/docs/grafana/latest/panels/visualizations/state-timeline/
Right now the dashboard uses a 3rd party plugin, but it has some issues like geerlingguy/internet-monitoring#8 — maybe this 1st-party graph type will resolve that issue?