Export to Your Observability Backend
Mermin exports Flow Traces via the OpenTelemetry Protocol (OTLP), compatible with any OTLP-enabled observability backend or collector.
What You Need
To receive Flow Traces from Mermin, you need one of:
OTLP-Enabled Collector: OpenTelemetry Collector that receives OTLP and forwards to your backend(s)
OTLP Data Platform: An observability platform with native OTLP ingestion
OpenTelemetry Collector (Recommended)
The OpenTelemetry Collector provides the most flexibility:
Receives OTLP from Mermin via gRPC or HTTP
Processes, batches, and transforms telemetry data
Exports to multiple backends simultaneously
Provides buffering and retry logic
Example Configuration: See Mermin with OpenTelemetry Collector for a complete setup with OpenTelemetry Collector, including Mermin configuration and collector pipeline.
Basic Mermin Configuration
export "traces" {
otlp = {
endpoint = "http://otel-collector:4317" # Collector's OTLP gRPC endpoint
protocol = "grpc" # Optional; Mermin defaults to "grpc".
}
}OTLP-Compatible Data Platforms
Flow Traces work with any platform supporting OTLP trace ingestion:
Elastic Stack
Elasticsearch with APM Server or OpenTelemetry Collector ingests OTLP traces.
Use Case: Full-text search, complex aggregations, APM integration, machine learning
How to Connect:
Point Mermin → OpenTelemetry Collector → Elasticsearch exporter
Or point Mermin → Elastic APM Server (OTLP endpoint)
Example: See docs/deployment/examples/netobserv-os-simple-svc/ for OpenSearch (Elastic-compatible) deployment
OpenSearch
Open-source alternative to Elasticsearch with native OTLP support via OpenTelemetry Collector.
Use Case: Open-source search and analytics, cost-effective storage
Examples:
docs/deployment/examples/netobserv-os-simple-svc/- Basic OpenSearch setupdocs/deployment/examples/netobserv-os-simple-gke-gw/- GKE deployment with Gateway API
Greptime Ingestion
Greptime is a database designed for high-cardinality time series data that supports OTLP ingestion.
Example: docs/deployment/examples/greptime_simple_svc
Grafana Cloud, Datadog, New Relic, Honeycomb, etc
Most commercial observability platforms support OTLP ingestion.
How to Connect:
Obtain your platform's OTLP endpoint URL
Configure authentication (usually API key or bearer token)
Point Mermin to the endpoint with auth
Examples: Coming soon...
Flow Trace Data Model
Each Flow Trace is an OpenTelemetry span containing:
Span Attributes:
Network 5-tuple: source/dest IPs, ports, protocol
Bidirectional counters: bytes sent/received, packets sent/received
TCP state: flags (SYN, FIN, RST), connection state
Kubernetes metadata: pod, service, deployment, namespace, labels
Community ID for flow correlation across monitoring points
Resource Attributes:
Kubernetes cluster name
Node name
Mermin version
Query Flow Traces using native backend query languages (TraceQL, KQL, Lucene).
Testing with Stdout
For local development and testing, output Flow Traces to stdout instead of OTLP:
View traces in Mermin logs:
Next Steps
Configure OTLP Export: Set up endpoints, authentication, and TLS
Review Example Configurations: Complete deployment examples with backends
Filter Flows Before Export: Reduce volume and focus on critical traffic
Tune Export Batching: Optimize for your backend's ingestion rate
Need Help?
Troubleshoot Export Issues: Diagnose connection and authentication problems
GitHub Discussions: Share your backend setup and get community advice
Last updated