# <a id="bitdrift.public.unary.dashboards.v1.ResolvedChart"></a>ResolvedChart

**Source definition:** [`src/bitdrift/public/unary/dashboards/v1/api.proto#L20-L81`](<https://github.com/bitdriftlabs/api/blob/main/src/bitdrift/public/unary/dashboards/v1/api.proto#L20-L81>)

Metadata sufficient to render a single chart.

<section class="proto-fields-table" markdown>
| Field | Type | Description |
|---|---|---|
| id | <span class="proto-type proto-type-message">[<i class="proto-type-part">bitdrift</i><i class="proto-type-dot">.</i><i class="proto-type-part">public</i><i class="proto-type-dot">.</i><i class="proto-type-part">unary</i><i class="proto-type-dot">.</i><i class="proto-type-part">charts</i><i class="proto-type-dot">.</i><i class="proto-type-part">v1</i><i class="proto-type-dot">.</i><i class="proto-type-part">ChartIdentifier</i>](bitdrift_public_unary_charts_v1_ChartIdentifier.md "bitdrift.public.unary.charts.v1.ChartIdentifier")</span> | An opaque identifier object for the chart. This should be provided to the data API in order to fetch/stream the data. |
| line | <span class="proto-type proto-type-message">[<i class="proto-type-part">bitdrift</i><i class="proto-type-dot">.</i><i class="proto-type-part">public</i><i class="proto-type-dot">.</i><i class="proto-type-part">unary</i><i class="proto-type-dot">.</i><i class="proto-type-part">dashboards</i><i class="proto-type-dot">.</i><i class="proto-type-part">v1</i><i class="proto-type-dot">.</i><i class="proto-type-part">ResolvedChart</i><i class="proto-type-dot">.</i><i class="proto-type-part">Line</i>](#bitdrift.public.unary.dashboards.v1.ResolvedChart.Line "bitdrift.public.unary.dashboards.v1.ResolvedChart.Line")</span><span class="proto-field-annotation">only one of <em>line</em>, or <em>funnel</em>, <em>sankey</em>, <em>table</em> can be set</span> | The chart is a line chart, rendering one or more time series. |
| funnel | <span class="proto-type proto-type-message">[<i class="proto-type-part">bitdrift</i><i class="proto-type-dot">.</i><i class="proto-type-part">public</i><i class="proto-type-dot">.</i><i class="proto-type-part">unary</i><i class="proto-type-dot">.</i><i class="proto-type-part">dashboards</i><i class="proto-type-dot">.</i><i class="proto-type-part">v1</i><i class="proto-type-dot">.</i><i class="proto-type-part">ResolvedChart</i><i class="proto-type-dot">.</i><i class="proto-type-part">Funnel</i>](#bitdrift.public.unary.dashboards.v1.ResolvedChart.Funnel "bitdrift.public.unary.dashboards.v1.ResolvedChart.Funnel")</span><span class="proto-field-annotation">only one of <em>funnel</em>, or <em>line</em>, <em>sankey</em>, <em>table</em> can be set</span> | The chart is a funnel chart, rendering the data as a set of steps. |
| sankey | <span class="proto-type proto-type-message">[<i class="proto-type-part">bitdrift</i><i class="proto-type-dot">.</i><i class="proto-type-part">public</i><i class="proto-type-dot">.</i><i class="proto-type-part">unary</i><i class="proto-type-dot">.</i><i class="proto-type-part">dashboards</i><i class="proto-type-dot">.</i><i class="proto-type-part">v1</i><i class="proto-type-dot">.</i><i class="proto-type-part">ResolvedChart</i><i class="proto-type-dot">.</i><i class="proto-type-part">Sankey</i>](#bitdrift.public.unary.dashboards.v1.ResolvedChart.Sankey "bitdrift.public.unary.dashboards.v1.ResolvedChart.Sankey")</span><span class="proto-field-annotation">only one of <em>sankey</em>, or <em>line</em>, <em>funnel</em>, <em>table</em> can be set</span> | The chart is a sankey chart, rendering the data as a set of connected nodes. |
| table | <span class="proto-type proto-type-message">[<i class="proto-type-part">bitdrift</i><i class="proto-type-dot">.</i><i class="proto-type-part">public</i><i class="proto-type-dot">.</i><i class="proto-type-part">unary</i><i class="proto-type-dot">.</i><i class="proto-type-part">dashboards</i><i class="proto-type-dot">.</i><i class="proto-type-part">v1</i><i class="proto-type-dot">.</i><i class="proto-type-part">ResolvedChart</i><i class="proto-type-dot">.</i><i class="proto-type-part">Table</i>](#bitdrift.public.unary.dashboards.v1.ResolvedChart.Table "bitdrift.public.unary.dashboards.v1.ResolvedChart.Table")</span><span class="proto-field-annotation">only one of <em>table</em>, or <em>line</em>, <em>funnel</em>, <em>sankey</em> can be set</span> | The chart is a table chart, rendering the data as a set of rows and columns. |
| metadata | <span class="proto-type proto-type-message">[<i class="proto-type-part">bitdrift</i><i class="proto-type-dot">.</i><i class="proto-type-part">public</i><i class="proto-type-dot">.</i><i class="proto-type-part">unary</i><i class="proto-type-dot">.</i><i class="proto-type-part">charts</i><i class="proto-type-dot">.</i><i class="proto-type-part">v1</i><i class="proto-type-dot">.</i><i class="proto-type-part">ChartMetadata</i>](bitdrift_public_unary_charts_v1_ChartMetadata.md "bitdrift.public.unary.charts.v1.ChartMetadata")</span> | The display metadata for the chart. |

</section>
<p class="h4">Example</p>
<div class="proto-json-blob"><pre><code>{
  "id": {
    "workflow": {
      "aggregated_action_id": "count/fkQ1PfAZhdYvJexzY6DYuoYCZTEaWO0Y7spxwjr7akc",
      "chart_rule_id": "_i1yUnHjKfmWpCaD5Tazo",
      "workflow_id": "DFg5"
    }
  },
  "line": {
    "configurable_percentiles": [
      99.0
    ],
    "supports_multiple_percentiles": true
  },
  "metadata": {
    "metric_chart_metadata": {
      "metadata": [
        {
          "connector_export_config": [
            {
              "cloudwatch_connector_export_config": {
                "fixed_dimensions": {
                  "key": ""
                },
                "metric_name": "foreground_launches",
                "namespace": "mobile_metrics"
              },
              "connector_name": "cloudwatch-primary"
            }
          ],
          "limit_strategy": {
            "exclusions": {
              "dimension_identifiers": [
                {
                  "id": "time_series_id_opaque_example",
                  "labels": [
                    {
                      "name": "name",
                      "value": "value"
                    }
                  ]
                }
              ],
              "return_other": false
            },
            "sort_order": "MAX",
            "top_k_limit": {
              "top_k": 5
            }
          },
          "sort_order": "DESC",
          "title": "Time series title",
          "top_k_algorithm": "MAX",
          "y_axis": {
            "description": "Count",
            "unit": "COUNT"
          }
        }
      ],
      "time_series_display_mode": {}
    },
    "no_data_message": "Example text",
    "summary": {
      "description": "Example text"
    },
    "title": "Chart title"
  }
}</code></pre></div>

# <a id="bitdrift.public.unary.dashboards.v1.ResolvedChart.Line"></a>ResolvedChart.Line

**Source definition:** [`src/bitdrift/public/unary/dashboards/v1/api.proto#L25-L39`](<https://github.com/bitdriftlabs/api/blob/main/src/bitdrift/public/unary/dashboards/v1/api.proto#L25-L39>)

<section class="proto-fields-table" markdown>
| Field | Type | Description |
|---|---|---|
| configurable_percentiles | <span class="proto-type proto-type-primitive">array of float</span> | If the line chart contains histograms with a top-K grouping, this provides a best-effort list of suggested percentiles. The chart should default to the 0th element in the list, and callers may override that value via the chart API.<br><br>If this list is empty, the chart does not have suggested default percentile values, but callers may still choose a percentile via the chart API. |
| supports_multiple_percentiles | <span class="proto-type proto-type-primitive">bool</span> | Whether or not the chart supports selecting multiple percentiles at once. This will be false for charts which contain grouped histograms or multiple histograms, and true for charts with a single histogram. |

</section>
<p class="h4">Example</p>
<div class="proto-json-blob"><pre><code>{
  "configurable_percentiles": [
    99.0
  ],
  "supports_multiple_percentiles": true
}</code></pre></div>

# <a id="bitdrift.public.unary.dashboards.v1.ResolvedChart.Funnel"></a>ResolvedChart.Funnel

**Source definition:** [`src/bitdrift/public/unary/dashboards/v1/api.proto#L41-L42`](<https://github.com/bitdriftlabs/api/blob/main/src/bitdrift/public/unary/dashboards/v1/api.proto#L41-L42>)

No fields

# <a id="bitdrift.public.unary.dashboards.v1.ResolvedChart.Sankey"></a>ResolvedChart.Sankey

**Source definition:** [`src/bitdrift/public/unary/dashboards/v1/api.proto#L44-L45`](<https://github.com/bitdriftlabs/api/blob/main/src/bitdrift/public/unary/dashboards/v1/api.proto#L44-L45>)

No fields

# <a id="bitdrift.public.unary.dashboards.v1.ResolvedChart.Table"></a>ResolvedChart.Table

**Source definition:** [`src/bitdrift/public/unary/dashboards/v1/api.proto#L47-L61`](<https://github.com/bitdriftlabs/api/blob/main/src/bitdrift/public/unary/dashboards/v1/api.proto#L47-L61>)

<section class="proto-fields-table" markdown>
| Field | Type | Description |
|---|---|---|
| configurable_percentiles | <span class="proto-type proto-type-primitive">array of float</span> | If the line chart corresponding to this table contains histograms with a top-K grouping, this provides a best-effort list of suggested percentiles. The chart should default to the 0th element in the list, and callers may override that value via the chart API.<br><br>If this list is empty, the chart does not have suggested default percentile values, but callers may still choose a percentile via the chart API. |
| supports_multiple_percentiles | <span class="proto-type proto-type-primitive">bool</span> | Whether or not the chart supports selecting multiple percentiles at once. This will be false for charts which contain grouped histograms or multiple histograms, and true for charts with a single histogram. |

</section>
<p class="h4">Example</p>
<div class="proto-json-blob"><pre><code>{
  "configurable_percentiles": [
    99.0
  ],
  "supports_multiple_percentiles": true
}</code></pre></div>

