Visualize dashboard content with panels

JSON representation format

⚠️

Chronosphere Internal

Don't share this information with customers. Any features or processes described here are meant for Chronosphere internal use only.

Panels are part of the JSON representation of the Chronosphere dashboard that contains them. In a JSON representation of a dashboard, Chronosphere models a time series chart panel as a plugin of "kind": "TimeSeriesChart".

This is the minimal representation of a time series chart panel, which results in an empty panel with no name, no defined query, and default settings:

{
  "kind": "Panel",
  "spec": {
    "display": {
      "name": ""
    },
    "plugin": {
      "kind": "TimeSeriesChart",
      "spec": {}
    },
    "queries": [],
    "links": []
  }
}

As an example, this is the panel representation for visualizing jobs in your Chronosphere instance by cardinality, as used by the Cardinality Overview Chronosphere-managed dashboard:

{
  "kind": "Panel",
  "spec": {
    "display": {
      "name": "Top $topX jobs by cardinality | Namespace: $namespace"
    },
    "plugin": {
      "kind": "TimeSeriesChart",
      "spec": {
        "legend": {
          "mode": "List",
          "position": "Bottom",
          "values": []
        },
        "visual": {},
        "y_axis": {
          "unit": {
            "abbreviate": true,
            "kind": "Decimal"
          }
        }
      }
    },
    "queries": [
      {
        "kind": "DataQuery",
        "spec": {
          "plugin": {
            "kind": "PrometheusTimeSeriesQuery",
            "spec": {
              "query": "topk($topX, cardinality_estimate({namespace=~\"$namespace\", job!=\"\"}) by (job))",
              "series_name_format": "{{job}}"
            }
          }
        }
      }
    ],
    "links": []
  }
}

It uses dashboard variables to define how many jobs to render and from which namespace.

To summarize, this JSON representation:

  • Defines a panel ("kind": "Panel").
  • Defines the panel's name (spec.display.name), including dashboard variables ($topX, $namespace).
  • Adds a legend (plugin.spec.legend) and defines it as a List oriented to the Bottom of the chart.
  • Configures the Y axis (spec.plugin.spec.y_axis) to use abbreviated ("abbreviate": true) Decimal units.
  • Defines a PrometheusTimeSeriesQuery and a series alias (series_name_format) for the returned time series, using dashboard variables.