Skip to main content

api.PipelineMetricSample

api.PipelineMetricSample API schema defining 8 fields, including bytes input, bytes output, components, and 5 more.

bytes_inputinteger

BytesInput / BytesOutput are the per-stage byte totals (bytes) over the batch interval, matching the pipeline_bytes_total{stage} counter. Always serialized (no omitempty) so a zero-throughput window reads as 0, not a gap.

bytes_outputinteger
components object[]

Components carries per-component throughput + latency, one entry per Benthos component path (e.g. "root.pipeline.processors.1").

  • Array [
  • component_namestring

    ComponentName is the component's plugin/type name (e.g. "generate", "http_server", "mapping") -- the component_name label on the OTLP/Prometheus series. Empty for an older edge that does not report it, or a component that carries no name attribute.

    errorsinteger
    latency object

    Latency is the component latency histogram (seconds).

    boundsnumber[]

    Bounds are the explicit upper bounds (le), ascending.

    bucket_countsinteger[]

    BucketCounts are the per-bucket counts; len == len(Bounds)+1, where the final entry is the +Inf overflow bucket. NOTE: these are OTel DELTA (non-cumulative) per-bucket counts. A Prometheus _bucket{le} series / PromQL histogram_quantile needs CUMULATIVE counts, so a remote-write must ascending-cumsum them first. The counts are consistent with Count (sum(BucketCounts) == Count).

    countinteger
    sumnumber

    seconds for durations

    pathstring

    Path is the Benthos component path, e.g. "root.pipeline.processors.1".

    receivedinteger

    Received / Sent / Errors are message counts over the batch interval.

    sentinteger
    stagestring

    Stage is the component's stage: "input", "processor", or "output" (derived from the emitting metric name; reconstructs the series name).

  • ]
  • execution_idstring
    orchestration_errorsinteger

    OrchestrationErrors is the pipeline.orchestration.errors count over the batch interval (pipeline-level; no per-component attribution). Always serialized (no omitempty): zero is a meaningful value for a health series, and a consumer charting it must not see the field vanish on a healthy window.

    pipeline_idstring
    readiness object

    Readiness is the pipeline.readiness.duration histogram (seconds), pipeline-level.

    boundsnumber[]

    Bounds are the explicit upper bounds (le), ascending.

    bucket_countsinteger[]

    BucketCounts are the per-bucket counts; len == len(Bounds)+1, where the final entry is the +Inf overflow bucket. NOTE: these are OTel DELTA (non-cumulative) per-bucket counts. A Prometheus _bucket{le} series / PromQL histogram_quantile needs CUMULATIVE counts, so a remote-write must ascending-cumsum them first. The counts are consistent with Count (sum(BucketCounts) == Count).

    countinteger
    sumnumber

    seconds for durations

    timestampstring

    Timestamp is the collection time on the edge (NOT arrival time), so a reconnect catch-up flush renders in the correct window rather than collapsing into a spike.

    api.PipelineMetricSample
    {
    "bytes_input": 0,
    "bytes_output": 0,
    "components": [
    {
    "component_name": "string",
    "errors": 0,
    "latency": {
    "bounds": [
    0
    ],
    "bucket_counts": [
    0
    ],
    "count": 0,
    "sum": 0
    },
    "path": "string",
    "received": 0,
    "sent": 0,
    "stage": "string"
    }
    ],
    "execution_id": "string",
    "orchestration_errors": 0,
    "pipeline_id": "string",
    "readiness": {
    "bounds": [
    0
    ],
    "bucket_counts": [
    0
    ],
    "count": 0,
    "sum": 0
    },
    "timestamp": "string"
    }