Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 27 additions & 25 deletions observability/alert_rules.yml
Original file line number Diff line number Diff line change
@@ -1,68 +1,70 @@
groups:
- name: fastapi-inference
- name: cloud-run-inference
rules:
- alert: HighPredictionErrorRate
- alert: HighCloudRunErrorRate
expr: >
sum(rate(fastapi_fastapi_predictions_total{status="error"}[5m]))
sum(rate(stackdriver_cloud_run_revision_run_googleapis_com_container_request_count{response_code_class="5xx"}[5m]))
/
sum(rate(fastapi_fastapi_predictions_total[5m]))
sum(rate(stackdriver_cloud_run_revision_run_googleapis_com_container_request_count[5m]))
> 0.05
for: 5m
labels:
severity: critical
annotations:
summary: "Prediction error rate > 5% for 5 minutes"
summary: "Cloud Run 5xx error rate > 5% for 5 minutes"

- alert: NoPredictionsFlowing
expr: sum(rate(fastapi_fastapi_predictions_total[10m])) == 0
expr: sum(rate(stackdriver_dataflow_job_custom_googleapis_com_dataflow_prediction_success[10m])) == 0
for: 10m
labels:
severity: critical
annotations:
summary: "Zero predictions in last 10 minutes — service may be down"
summary: "Zero predictions in last 10 minutes — pipeline or FastAPI may be down"

- alert: HighPredictionLatency
expr: >
histogram_quantile(0.95,
sum(rate(fastapi_fastapi_predict_duration_bucket[5m])) by (le)
) > 1.0
sum(stackdriver_dataflow_job_custom_googleapis_com_dataflow_prediction_latency_ms_mean)
> 1000
for: 5m
labels:
severity: warning
annotations:
summary: "p95 prediction latency exceeds 1 second"
summary: "Mean prediction latency exceeds 1 second"

- name: dataflow-pipeline-errors
rules:
- alert: FeatureFetchFailureSpike
expr: >
sum(rate(dataflow_job_user_counter{metric_name=~"FetchFeaturesFromOnlineStore-fetch_failure|FetchFeaturesFromOnlineStore-fetch_missing_features"}[5m])) > 10
sum(rate(stackdriver_dataflow_job_custom_googleapis_com_dataflow_fetch_failure[5m]))
+ sum(rate(stackdriver_dataflow_job_custom_googleapis_com_dataflow_fetch_retry[5m]))
> 10
for: 3m
labels:
severity: warning
annotations:
summary: "Feature fetch failures spiking — check Bigtable / online store"

- alert: HighParseErrorRate
- alert: PredictionRetrySpike
expr: >
sum(rate(dataflow_job_user_counter{metric_name="ParsePubSubMessage-parse_error"}[5m]))
/
(sum(rate(dataflow_job_user_counter{metric_name="ParsePubSubMessage-parse_success"}[5m])) + 1)
> 0.1
for: 5m
sum(rate(stackdriver_dataflow_job_custom_googleapis_com_dataflow_prediction_retry[5m])) > 5
for: 3m
labels:
severity: warning
severity: critical
annotations:
summary: "Pub/Sub message parse error rate > 10%"
summary: "Prediction retries spiking — check FastAPI service health"

- alert: PredictionBatchFailureSpike
- alert: ParseToFetchDropoff
expr: >
sum(rate(dataflow_job_user_counter{metric_name="BatchCallFastAPIService-prediction_error"}[5m])) > 5
for: 3m
(sum(rate(stackdriver_dataflow_job_custom_googleapis_com_dataflow_parse_success[5m]))
- sum(rate(stackdriver_dataflow_job_custom_googleapis_com_dataflow_fetch_success[5m])))
/
(sum(rate(stackdriver_dataflow_job_custom_googleapis_com_dataflow_parse_success[5m])) + 1)
> 0.1
for: 5m
labels:
severity: critical
severity: warning
annotations:
summary: "Prediction batch failures spiking — check FastAPI service health"
summary: "More than 10% of parsed messages not reaching fetch — messages being dropped"

- name: cost-attribution
rules:
Expand Down
5 changes: 0 additions & 5 deletions observability/prometheus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,6 @@ alerting:
- targets: ["alertmanager:9093"]

scrape_configs:
- job_name: "otel-collector"
static_configs:
- targets: ["otel-collector:8889"]
scrape_interval: 10s

- job_name: "stackdriver-exporter"
static_configs:
- targets: ["stackdriver-exporter:9255"]
Expand Down
Loading