Skip to content
Try Hanzo
Language: English (United States)

Hanzo Telemetry

telemetry.hanzo.ai

The collector that sits between your app and wherever the data goes

tracesOTLP incollectormemory_limiterbatchOTLP out

tracesmetricslogsgRPCHTTPOTLP incollectormemory_limiterbatchOTLP out

One hop you control

  1. 01

    OTLP in, OTLP out

    Receives over gRPC and HTTP, exports the same way. OTLP is the format the OpenTelemetry SDKs already speak, so nothing in your code changes to point at it.

    receivers:

  2. 02

    Traces, metrics and logs

    All three move through the same process, so there is one thing to run, one config to read and one place to look when telemetry stops arriving.

    pipelines:

  3. 03

    Batching

    Spans arrive one at a time and leave in batches. That is the difference between a request per span and a request per few thousand, and your backend feels it.

    batch:

  4. 04

    A memory ceiling

    Tell it how much memory it may use and it refuses work rather than exceeding it. Telemetry is the thing that should degrade during an incident, not the thing that causes one.

    memory_limiter:

  5. 05

    Assembled, not installed

    This is the collector itself. Build a distribution with the receivers, processors and exporters you actually want, and ship one binary containing those and nothing else.

    build:

  6. 06

    It runs where you run

    A binary in your own network. Whatever you decide not to forward, you decide before the data has left — which is the only point where that is still your call.

    exporters:

01 / 06

OTLP inpipelinesmemory_limiterbatchOTLP out
config.yamlbuilder.yaml
 1receivers:
 2  otlp:
 3    protocols:
 4      grpc:
 5      http:
 6
 7processors:
 8  memory_limiter:
 9    limit_mib: ${CEILING}
10  batch:
11
12exporters:
13  otlp:
14    endpoint: ${BACKEND}
15
16service:
17  pipelines:
18    traces:  [otlp] → [memory_limiter, batch] → [otlp]
19    metrics: [otlp] → [memory_limiter, batch] → [otlp]
20    logs:    [otlp] → [memory_limiter, batch] → [otlp]

Put it in front of your backend

Your config

signals

protocols

processors

config.yaml
receivers:
  otlp:
    protocols:
      grpc:
      http:
processors:
  memory_limiter:
    limit_mib: ${CEILING}
  batch:
exporters:
  otlp:
    endpoint: ${BACKEND}
service:
  pipelines:
    traces:
      receivers: [otlp]
      processors: [memory_limiter, batch]
      exporters: [otlp]
    metrics:
      receivers: [otlp]
      processors: [memory_limiter, batch]
      exporters: [otlp]
    logs:
      receivers: [otlp]
      processors: [memory_limiter, batch]
      exporters: [otlp]

Get Telemetry

OpenTelemetry ingest

License: Apache-2.0hanzoaiDeploy to Cloud

Paste and ship

Paste this into any agent. It reads the skill manifest and calls Telemetry from there.

Agent prompt
Read https://hanzo.ai/skill.md and use Hanzo Telemetry in my project.