# <a id="bitdrift.public.unary.alerts.v1.AlertHistoryDetails"></a>AlertHistoryDetails

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

Describes why an alert triggered and what data contributed to it.

<section class="proto-fields-table" markdown>
| Field | Type | Description |
|---|---|---|
| group_by_dimensions | <span class="proto-type proto-type-primitive">array of string</span> | If the alert was triggered by a group by dimension, this will contain the dimensions that  triggered the alert. |
| notification_failures | <span class="proto-type proto-type-primitive">array of string</span> | If there were errors sending notifications for the alert, they will be listed here. |
| alert_config | <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">alerts</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">AlertConfig</i>](bitdrift_public_unary_alerts_v1_AlertConfig.md "bitdrift.public.unary.alerts.v1.AlertConfig")</span> | Alert configuration snapshot captured when the alert triggered. |
| contributing_data | <span class="proto-type proto-type-message">array of [<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">alerts</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">AlertHistoryDetails</i><i class="proto-type-dot">.</i><i class="proto-type-part">ContributingData</i>](#bitdrift.public.unary.alerts.v1.AlertHistoryDetails.ContributingData "bitdrift.public.unary.alerts.v1.AlertHistoryDetails.ContributingData")</span> | The data points that contributed to the alert being triggered. |

</section>
<p class="h4">Example</p>
```json
{
  "alert_config": {
    "basic_alert": {
      "condition": "ABOVE",
      "consecutive_data_points": 3,
      "histogram_configuration": {
        "percentile": 1.0,
        "percentiles": [
          1.0
        ]
      },
      "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
        }
      },
      "threshold": 0.75,
      "unique_device_threshold": 50,
      "window": "3600s"
    },
    "common_config": {
      "custom_notification_text": "@checkout-oncall Please investigate.",
      "description": "Triggers when the checkout workflow error rate exceeds the configured threshold.",
      "labels": {
        "key": ""
      },
      "name": "Checkout error rate",
      "notifications": [
        {
          "min_time_between_notifications": "3600s",
          "notification_config": {
            "disabled": false,
            "notification_group": {
              "name": "engineering-oncall"
            }
          }
        }
      ]
    }
  },
  "contributing_data": [
    {
      "basic": {
        "data_points": [
          {
            "rate_details": {
              "denominator_count": 42,
              "numerator_count": 42
            },
            "timestamp": "2024-01-15T09:30:00Z",
            "unique_devices": 1,
            "value": 1.0
          }
        ]
      }
    }
  ],
  "group_by_dimensions": [
    "region:us-east-1"
  ],
  "notification_failures": [
    "PagerDuty returned an authentication error"
  ]
}
```

# <a id="bitdrift.public.unary.alerts.v1.AlertHistoryDetails.BasicContributingData"></a>AlertHistoryDetails.BasicContributingData

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

In the case of group by this might return multiple items.
 Describes the data points that contributed to a basic alert trigger.

<section class="proto-fields-table" markdown>
| Field | Type | Description |
|---|---|---|
| data_points | <span class="proto-type proto-type-message">array of [<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">shared</i><i class="proto-type-dot">.</i><i class="proto-type-part">workflows</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">DataPoint</i>](bitdrift_public_shared_workflows_v1_DataPoint.md "bitdrift.public.shared.workflows.v1.DataPoint")</span> | The data points that contributed to the alert. For grouped alerts, the response may include  multiple time series. |

</section>
<p class="h4">Example</p>
```json
{
  "data_points": [
    {
      "rate_details": {
        "denominator_count": 42,
        "numerator_count": 42
      },
      "timestamp": "2024-01-15T09:30:00Z",
      "unique_devices": 1,
      "value": 1.0
    }
  ]
}
```

# <a id="bitdrift.public.unary.alerts.v1.AlertHistoryDetails.SloContributingData"></a>AlertHistoryDetails.SloContributingData

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

Describes the burn-rate data that contributed to an SLO alert trigger.

<section class="proto-fields-table" markdown>
| Field | Type | Description |
|---|---|---|
| window_and_burn_rate | <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">alerts</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">SloAlertConfig</i><i class="proto-type-dot">.</i><i class="proto-type-part">WindowAndBurnRate</i>](bitdrift_public_unary_alerts_v1_SloAlertConfig.md "bitdrift.public.unary.alerts.v1.SloAlertConfig.WindowAndBurnRate")</span> | Burn-rate window configuration that triggered the alert. |
| short_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">Table</i>](bitdrift_public_unary_dashboards_v1_Table.md "bitdrift.public.unary.dashboards.v1.Table")</span> | Short-window comparison data for the alert trigger. |
| long_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">Table</i>](bitdrift_public_unary_dashboards_v1_Table.md "bitdrift.public.unary.dashboards.v1.Table")</span> | Long-window comparison data for the alert trigger. |

</section>
<p class="h4">Example</p>
```json
{
  "long_table": {
    "cardinality_overflows": {
      "group_by_overflows": 1,
      "query_group_by_collapsed": false,
      "total_overflows": 42
    },
    "group_column_key_names": [
      "app_id"
    ],
    "rows": [
      {
        "aggregated_values": [
          {
            "rate_details": {
              "denominator_count": 42,
              "numerator_count": 42
            },
            "value": 1.0
          }
        ],
        "group_column_values": [
          "io.example.app"
        ],
        "unique_devices": 1
      }
    ],
    "title": "Table title",
    "unique_devices": 1,
    "value_column_key_names": [
      "count"
    ]
  },
  "short_table": {
    "cardinality_overflows": {
      "group_by_overflows": 1,
      "query_group_by_collapsed": false,
      "total_overflows": 42
    },
    "group_column_key_names": [
      "app_id"
    ],
    "rows": [
      {
        "aggregated_values": [
          {
            "rate_details": {
              "denominator_count": 42,
              "numerator_count": 42
            },
            "value": 1.0
          }
        ],
        "group_column_values": [
          "io.example.app"
        ],
        "unique_devices": 1
      }
    ],
    "title": "Table title",
    "unique_devices": 1,
    "value_column_key_names": [
      "count"
    ]
  },
  "window_and_burn_rate": {
    "burn_rate": 14.0,
    "long_window": "3600s",
    "notifications": {
      "custom_notification_text": "@incident-commander Review the current burn rate.",
      "notifications": [
        {
          "min_time_between_notifications": "3600s",
          "notification_config": {
            "disabled": false,
            "notification_group": {
              "name": "engineering-oncall"
            }
          }
        }
      ]
    },
    "short_window": "3600s"
  }
}
```

# <a id="bitdrift.public.unary.alerts.v1.AlertHistoryDetails.ContributingData"></a>AlertHistoryDetails.ContributingData

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

Wraps the contributing data for whichever alert type triggered.

<section class="proto-fields-table" markdown>
| Field | Type | Description |
|---|---|---|
| basic | <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">alerts</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">AlertHistoryDetails</i><i class="proto-type-dot">.</i><i class="proto-type-part">BasicContributingData</i>](#bitdrift.public.unary.alerts.v1.AlertHistoryDetails.BasicContributingData "bitdrift.public.unary.alerts.v1.AlertHistoryDetails.BasicContributingData")</span><span class="proto-field-annotation">only one of <em>basic</em>, or <em>slo</em> can be set</span> | Contributing data for a basic alert. |
| slo | <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">alerts</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">AlertHistoryDetails</i><i class="proto-type-dot">.</i><i class="proto-type-part">SloContributingData</i>](#bitdrift.public.unary.alerts.v1.AlertHistoryDetails.SloContributingData "bitdrift.public.unary.alerts.v1.AlertHistoryDetails.SloContributingData")</span><span class="proto-field-annotation">only one of <em>slo</em>, or <em>basic</em> can be set</span> | Contributing data for an SLO alert. |

</section>
<p class="h4">Example</p>
```json
{
  "basic": {
    "data_points": [
      {
        "rate_details": {
          "denominator_count": 42,
          "numerator_count": 42
        },
        "timestamp": "2024-01-15T09:30:00Z",
        "unique_devices": 1,
        "value": 1.0
      }
    ]
  }
}
```

