Skip to Content
v1.33.6 · shipped One-screen report · Looks like your app Read the changelog →
Admin consoleUnusual spikes
Confirmed regressions auto-open reports · · open live demo ↗

Unusual spikes

Route: /health?view=spikes (Mushi Mushi health → Unusual spikes). The old /anomalies link redirects there. Until October 2026 this was its own page, called Anomaly detection.

First on the page: one sentence on the spikes to confirm or dismiss. Once metrics arrive, Your metrics, with releases and spikes draws each metric over time (those with an open spike first, up to three) with a dashed line per release and a dot per spike, and Confirm / Dismiss under the chart. With no metrics yet the page is one Add metrics step. The detectors read Sudden jump (z-score), Slow drift (Page-Hinkley) and Started with a release.

Mushi Mushi applies statistical detectors to the time-series metrics you send, every hour and whenever you click Check now. When a metric behaves unexpectedly, it shows up as a spike. A spike that starts right after a release also files a bug report.


Tabs

The tabs are Summary, Spikes and Metrics.

Spikes

The summary counts include Spikes to review, After a release, High score, Auto-reported, Metrics watched and Dismissed.

The spike table shows:

ColumnDescription
MetricThe metric name the detector is watching
MethodDetection algorithm badge: Page-Hinkley, Z-score, or release-regression
ScoreThe anomaly score (higher = more anomalous)
ValueThe observed metric value that triggered the alert
BaselineThe expected value based on history (mean)
DetectedTimestamp

Actions:

  • Confirm: marks the spike as real
  • Dismiss: marks it as noise and removes it from the open list

Metrics

Feed time-series data into the detection pipeline:

FieldDescription
Metric nameIdentifier for the series (e.g. checkout_errors, p95_latency)
ValueNumeric measurement
TimestampDate and time (defaults to now)

Click Ingest to store the value. After several data points, a mini bar chart appears per metric showing up to 50 recent values with min/max range.

Check now

The Spikes tab has a card to run a detection pass on demand:

FieldDescription
Metric nameOptional filter — leave blank to run on all metrics
Lookback (hours)1 to 720 hours of history to analyse (starts at 48)

Click Check now to run the detection pass. The result shows the count of new anomalies found.


Detection methods

Method (label in the chart)Best for
Page-Hinkley (Slow drift)Gradual drift in a running mean (e.g. slowly rising error rate)
Z-score (Sudden jump)Sudden spikes above a rolling standard deviation band
release-regression (Started with a release)Metrics that changed significantly right after a release

Auto-reporting

When a spike is a release regression (it started right after a release), Mushi Mushi creates a bug report in Bugs with severity high and category regression, and marks the spike confirmed. Other spikes wait for you to confirm or dismiss them.


API

# List anomalies GET /v1/admin/anomalies?project_id=<pid>&limit=100 # Ingest a metric data point POST /v1/admin/metric-series { "project_id": "<pid>", "metric_name": "p95_latency", "value": 1240, "ts": "2026-05-19T12:00:00Z" } # Run detection POST /v1/admin/anomalies/detect { "project_id": "<pid>", "lookback_hours": 24 } # Confirm / dismiss PATCH /v1/admin/anomalies/<id> { "status": "confirmed" }

  • Bugs — auto-filed regression reports appear here
  • Releases — the releases drawn on each metric chart
  • Experiments — A/B test changes that might affect your metrics
Last updated on