> ## 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.

# Visualize the status history

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

A *status history* panel visualizes status data returned by a
[query](/investigate/querying). Status history depicts the state over time of query
results, such as page visits or service status. State history is presented as a series
of boxes, each with their status and time result.

## Use a status history chart's tooltip

When you hold the pointer over a status history box, Palo Alto Networks Cortex XCOR
displays a tooltip that
includes the date and time where the cursor is
pointing. The tooltip also displays the value of the series at that point in time.
Moving the pointer along the series updates the values in the tooltip to the new point
in time.

### Pin a point in time

To pin the tooltip to a specific point in time, click the chart. The tooltip remains
visible until you click **Unpin <Icon icon="x" alt="Close icon" />** inside
the tooltip.

## Status history chart queries

Status history charts use one or more
[queries](/observe/dashboards/panels#change-a-panels-query) to retrieve data to
visualize.

Status history charts use the following query **Options** to refine the
displayed information, depending on your **Datasource**:

<Tabs>
  <Tab title="Metrics (Prometheus)" id="queries-metrics">
    * **Series naming**: Select a method to filter for metrics:
      * **Labels** require a **Naming pattern**. Use `{{ label_name }}` to include a
        label value. For example, `{{ env }}` will be replaced with values like staging-1, prod-1.
      * **Regex**: Use a [regular expression](/investigate/querying/regular-expressions)
        in the **Regex** text field to match a time series. You can also use a
        **Naming pattern** to rename series using capture groups.
    * **Min step**: The step parameter of the PromQL query.

    - **Truncation strategy**: Truncation strategy to apply to the query. This modifies
      the raw query. Cortex XCOR selects the best strategy for fit when
      possible, and displays `Auto` as the selected strategy.

      Available strategies are:

      * `Auto`
      * `Off`
      * `Avg`
      * `Min`
      * `Max`

      Changing your truncation strategy adds truncation information as additional bands
      or bars on your chart and details into the legend.
  </Tab>

  <Tab title="Graphite" id="queries-graphite">
    Graphite doesn't have additional query options.
  </Tab>

  <Tab title="Logs" id="queries-logs">
    **Series naming**: Select a method to filter for metrics:

    * **Labels** require a **Naming pattern**. Use `{{ label_name }}` to include a
      label value. For example, `{{ env }}` will be replaced with values like staging-1, prod-1.
    * **Regex**: Use a [regular expression](/investigate/querying/regular-expressions)
      in the **Regex** text field to match a time series. You can also use a
      **Naming pattern** to rename series using capture groups.
  </Tab>
</Tabs>

## Configure a status history chart

Configure a status history chart by
[modifying its <Icon icon="settings" /> **Settings**](/observe/dashboards/panels#edit-a-panel).

Cortex XCOR doesn't fully support directly editing a panel's JSON
representation. To configure a panel, edit it and modify individual fields. Use the JSON
representation only for managing your configuration as code with tools such as
[Chronoctl](/tooling/chronoctl) and [Terraform](/tooling/infrastructure/terraform).

### Modify a status history chart's properties

Use the **Density** slider in the **Settings** tab to change the vertical density of
the rows. Modify the resolution in the **Query** tab to change horizontal density.

### Choose how status history applies color

In the **Settings** tab, set whether row colors follow **metric values** or
**label values**:

* **By value**: Cortex XCOR picks colors from numeric thresholds.
  Define those thresholds in the [**Value mappings**](#modify-a-status-history-charts-value-mappings)
  section.
* **By label**: Cortex XCOR picks colors from the value of a label you
  choose. Map each label value to a color. Set a base color for series whose label
  value doesn't match any mapping.

### Modify status history units and formatting

The **Unit and formatting** section changes the display of units on the chart.

* **Unit**: Defines the unit used to render the Y-axis. This has the most significant
  effect when you enable Abbreviate. Defaults to `Decimal`.
  * **Decimal**: Base 10 values. Cortex XCOR renders a value of
    `1000000` as `1M`.
  * **Bytes**: As decimal multiple-byte units. Cortex XCOR renders a
    value of `1000000` as `1MB`.
  * **Time**: Determines the [unit of time](/overview/concepts/time-units)
    that Cortex XCOR uses to interpret a numeric value.
  * **Percent**: Interprets the value as a percentile, representing 0% to 100% in a
    range of either 0.0 to 1.0 (**Percent (0.0-1.0)**) or 0 and 100
    (**Percent (0-100)**).

    For example, Cortex XCOR renders a value of `1.0` in **Percent
    (0.0-1.0)** as `100%`, and in **Percent (0-100)** as `1%`.
* **Decimals**: Defines how many decimal places Cortex XCOR renders for
  values.
  **Default** renders decimal places only if necessary and rounds to the nearest
  value. Numeric values from `0` to `4` render the corresponding number of decimal
  places.
* **Abbreviate**: Toggles whether to abbreviate units on the Y-axis. For example, if
  enabled, Cortex XCOR renders a value of `100000000` as `100M`. You can
  toggle this setting only if you set the **Unit** to `Decimal` or `Bytes`; `Time`
  units are always abbreviated and `Percent` values don't require the toggle.
  Defaults to `true`.

### Modify a status history chart's value mappings

When you color **By value**, the **Value mappings** section in the panel's **Settings**
tab defines numeric thresholds where Cortex XCOR renders each range. Define
threshold values as absolute numeric values.

To create a new value mapping:

1. Click the plus sign (**+**) in the **Value mappings** section header.
2. In the **When value is** field that appears, choose an operation:

   * `>=`: Greater than or equal to
   * `=`: Equal to
3. Enter a threshold value for the status color line.
4. Click the caret (**>**) to open the field to add a **Label**.
5. Optional: Click the color indicator, depicted as a colored circle, to open a
   color selector and choose a color for the threshold.
6. In the **Edit panel** interface, click **Apply** to save your changes.
7. After you've finished editing the panel, click **Save** on the dashboard to save
   your changes.

To delete a value mapping, click the caret (**>**) to expand the value mapping
definition, and then click the **<Icon icon="trash" alt="Delete icon" /> Delete** icon
on its corresponding row of the Value mappings section.


## Related topics

- [History and rollback](/ingest/pipeline/v2/configure/history-rollback.md)
- [Visualize data using dashboards](/observe/dashboards.md)
- [Visualize dashboard contents with panels](/observe/dashboards/panels.md)
- [Visualize proportional data with pie charts](/observe/dashboards/panels/pie-chart.md)
- [Visualize time series with charts](/observe/dashboards/panels/time-series-chart.md)


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