/v1/metrics ingest.
List metric series
from- optional ISO 8601 start timestampto- optional ISO 8601 end timestampmetric_type- optionalgauge,sum,hist, orexponential_histogramservice_name- optional service filterenvironment- optional environment filterq- optional case-insensitive search across metric name, unit, and service namelimitoffset
from and to must be ISO 8601 timestamps with a timezone. If from is omitted, Squasher starts 24 hours before to; if to is omitted, the window ends at the current time. The Metrics API accepts windows up to 30 days and returns 400 before querying storage for invalid, reversed, or oversized windows.
Each row returns the metric name, type, unit, service, first/last seen times, point count, and sample count.
Get one metric timeline
metric_namemetric_type
fromtogranularity-1m,5m,15m,1h,6h, or1daggregation-avg,count,p50,p90,p95,p99, orsumservice_nameenvironment
granularity when a long window would exceed that cap; for example, use 5m or wider buckets instead of forcing 1m across multiple days.
Percentile aggregations work on gauges and sums directly, plus explicit histograms and delta exponential histograms using their stored bucket distributions.
Squasher applies OTLP aggregation temporality before charting sums and histograms:
- Delta points are aggregated as received.
- Cumulative points are differenced independently per metric series and instrumentation scope. A changed start time is treated as a reset; malformed same-start counter decreases establish a new baseline instead of being counted as an increase.
- For a cumulative series already running before the requested window, Squasher uses its latest point from the preceding hour as the baseline. If no recent baseline is retained, the first point contributes zero rather than scanning full retention or counting an unknown pre-window increase. A known start inside the window is included, while an OTLP zero-duration unknown-start reset contributes zero.
- Explicit histogram bucket arrays are differenced per series and merged in ClickHouse before percentile calculation.
avg, count, and sum queries use reset-aware count and sum deltas. Explicit percentile timeline requests return 422 UNSUPPORTED_METRIC_TEMPORALITY until differently scaled bucket layouts can be normalized safely; inspect summaries keep the normalized average and omit only those unsupported percentile timelines. Delta exponential histogram percentiles remain available.
Example:
timevaluepoint_countsample_count
Dashboard usage
Open Metrics in a project to investigate OTLP metric series without building a dashboard first. The explorer lets you:- Search by metric name, unit, or service
- Filter by time range, metric type, service, and environment
- Switch between average, sum, count, and percentile aggregations
- Compare the latest bucket with the previous bucket and inspect peak, point, and sample counts
- Pivot into logs and traces with the selected service and environment already applied
Inspect one metric
metric_namemetric_type
service_nameenvironmentfromto
highlights- compact takeaways for the metric right nowsnapshots[].aggregation-avg,p50,p90, andp99snapshots[].latest_valuesnapshots[].previous_valuesnapshots[].change_percentsnapshots[].recent_points- last few bucketssnapshots[].top_points- peak buckets in the selected window
CLI and MCP parity
squasher metrics inspect- MCP Code Mode: call
search("metrics.inspect"), thenexecutethe generated request