resource "sentry_dashboard" "checkout_errors" { name = "Checkout Errors" } resource "sentry_dashboard_panel" "error_rate" { dashboard_id = sentry_dashboard.checkout_errors.id title = "5xx rate over time" query = "service=checkout status>=500 | timechart count" viz_type = "line" position_x = 0 position_y = 0 width = 6 height = 4 } # Unlike sentry_alert_rule/sentry_notification_target, this resource # supports a real in-place update -- api/dashboards.Handler has a real # PUT /dashboards/{id}/panels/{panelId}. Only dashboard_id forces a # destroy-and-recreate (there's no API operation to move a panel between # dashboards).