mAPIng
MONITORED API · NG
Sign in Start free →

What data is collected

mAPI-ng ships Summaries, not per-request events. Each flush window (10
seconds by default), the client aggregates every completed request in
process into one Summary per series, where a series is
(method, route-template, status-class). Only the aggregate crosses the
wire.

Fields in a Summary

Field Meaning
count Number of requests in this window for this series (drives rate)
latency sketch (DDSketch) Mergeable latency distribution, queried as p50/p95/p99
sum_duration Sum of request durations, for an exact mean
status_code_breakdown Exact status codes observed, bounded to the 20 most frequent per series
error_class_breakdown Bucketed error causes (panic, write-timeout, etc.)
request/response byte sums Total bytes in and out, for bandwidth per endpoint
sum_downstream_duration Time spent in tracked downstream calls, where instrumented

Every upload also carries an envelope with service, instance,
sdk_version, and dropped_summaries (client-side backpressure loss, made
visible rather than silently swallowed). Error rate is derived from
status-class counts at query time; it is not stored as a separate field.

What is not collected

  • No per-request events. Individual requests are aggregated in process
    and discarded; only the window's Summary leaves the service. Per-request
    forensics are out of scope.
  • No caller identity. Summaries carry no client IP, user ID, or session
    information.
  • No custom tags or user-defined labels. The series key is closed and
    fully auto-derived; there is no mechanism to attach arbitrary labels in v1.
  • Route templates only, never raw paths or query strings. An endpoint is
    always the registered route template (e.g. GET /users/:id), derived from
    the framework's routing (c.FullPath() on Gin). mAPI-ng never emits a raw
    request path, so a per-value path (/users/12345) or a query string cannot
    inflate the number of distinct series a service reports.
  • No in-flight/concurrency gauges beyond the per-instance USE stream.
    Saturation (CPU, RSS, goroutines, GC pauses) is sampled once per flush
    window per instance and shipped as a separate, low-cardinality stream, not
    folded into the endpoint series.

See Security & data flow for how a Summary moves
from the client to storage, and Runtime overhead for
why this shape keeps the client cheap.

mAPI-ng · home · source