Skip to content

Stop generating global dashboard using state in specific grafana instance #111

Closed
@consideRatio

Description

@consideRatio

This project's dashboards are jsonnet templates that render to grafana readable .json dashboard files.

One jsonnet dashboard template stands out though, the global dashboard. It needs to be generated using explicitly listed datasource names - names that are unique to the grafana instance. This is handled by the deploy.py script, which when asked to dpeloy the dashboards to a grafana instance first reads information about data sources, and then passes that to jsonnet when rendering the global dashboard.

I'd like us to transition away from generating the global dashboard using grafana instance specific state, because then:

  1. We can pre-render all dashboards and publish them (Publish grafana dashboards in the public grafana dashboards page #63)
  2. Users of the global dashboard doesn't have to re-generate and re-deploy the dashboards if for example a datasource is added

The reason this was done in the first place is that it wasn't (and still isn't) possible to have a single panel providing info from a variable set of datasources.

About the impossibility of having a single panel querying X datasources

While its possible to repeat a panel or row of panels per datasource, it doesn't seem to be possible to repeat a query per datasource within a panel.

I propose we accept this limitation, and pivot to provide multiple panels or rows of panels - one per datasource (one per prometheus-server / one per k8s cluster with hubs).

Proposal

We provide the ability to view one row of these four panels per datasource:

dashboard-idea

These four panels are already available in the "Jupyterhub dashboard" within a row, so in practice I suggest a modification there to support repeating these four panels and deleting the global dashboard entirely rather than providing the same stuff in two places.

What we currently have and the proposal replaces

image

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions