> ## Documentation Index
> Fetch the complete documentation index at: https://docs-xcor.paloaltonetworks.com/llms.txt
> Use this file to discover all available pages before exploring further.

# JSON representation format

> Create and customize data visualization panels for Palo Alto Networks Cortex XCOR dashboards.

Panels are part of the JSON representation of the Palo Alto Networks Cortex XCOR dashboard
that contains
them. In a JSON representation of a dashboard, Cortex XCOR 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:

```json theme={null}
{
  "kind": "Panel",
  "spec": {
    "display": {
      "name": ""
    },
    "plugin": {
      "kind": "TimeSeriesChart",
      "spec": {}
    },
    "queries": [],
    "links": []
  }
}
```

As an example, this is the panel representation for visualizing jobs in your Cortex XCOR
instance by cardinality, as used by the Cardinality Overview
[Cortex XCOR-managed dashboard](/observe/dashboards/managed-dashboards):

```json theme={null}
{
  "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](/observe/dashboards/customization/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](/observe/dashboards/customization/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.

To produce a panel like this one without writing its JSON, describe the panel you
want to [Operator](/navigate/operator) while the dashboard is open. See
[Edit a dashboard with Operator](/observe/dashboards#edit-a-dashboard-with-operator).


## Related topics

- [Visualize dashboard contents with panels](/observe/dashboards/panels.md)
- [Chronoctl](/tooling/chronoctl.md)
- [Debug endpoints](/ingest/metrics-traces/collector/debugging.md)
- [Scrape Prometheus native histograms](/ingest/metrics-traces/collector/configure/native-histograms.md)
- [Manage service configuration](/administer/service-discovery.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.