Skip to content

[Task] docs: Create exporter development guide #456

Description

@kcenon

Summary

Create a development guide for the 7 exporter types and 3 transport layers, documenting how to create custom exporters, configure transports, and handle data format transformation.

Parent Issue

Part of: [EPIC] docs: Address documentation gaps across all ecosystem systems (kcenon/common_system#325)

Background (Why)

monitoring_system supports 7 exporter types across metric and trace exporters, with 3 transport layers. While the API reference documents individual classes, there is no guide explaining how the exporter pipeline works end-to-end, how to create custom exporters, or how to configure transport layers.

Source files:

  • include/kcenon/monitoring/exporters/metric_exporters.h — Prometheus, StatsD, InfluxDB, Graphite
  • include/kcenon/monitoring/exporters/trace_exporters.h — Jaeger, Zipkin, OTLP, Console
  • include/kcenon/monitoring/exporters/opentelemetry_adapter.h — OpenTelemetry adapter
  • include/kcenon/monitoring/exporters/otlp_grpc_exporter.h — OTLP via gRPC
  • include/kcenon/monitoring/exporters/http_transport.h — HTTP transport layer
  • include/kcenon/monitoring/exporters/grpc_transport.h — gRPC transport layer
  • include/kcenon/monitoring/exporters/udp_transport.h — UDP transport layer

Scope (What)

Create docs/guides/EXPORTER_DEVELOPMENT.md covering:

1. Exporter Architecture

  • Export pipeline: metrics → serialization → transport → destination
  • Metric exporters vs trace exporters
  • Transport layer abstraction
  • OpenTelemetry integration path

2. Built-in Exporters

Exporter Protocol Format Transport Use Case
Prometheus HTTP pull OpenMetrics http_transport Standard monitoring
StatsD UDP push StatsD line udp_transport Legacy systems
InfluxDB HTTP push Line protocol http_transport Time-series DB
Graphite TCP push Plaintext TCP Legacy graphing
Jaeger HTTP/gRPC Thrift/Proto http/grpc Distributed tracing
Zipkin HTTP JSON http_transport Distributed tracing
OTLP gRPC Protobuf grpc_transport OpenTelemetry native
Console stdout Text N/A Development/debug

3. Transport Layer

  • http_transport.h — Configuration, TLS, authentication
  • grpc_transport.h — Channel configuration, streaming
  • udp_transport.h — Datagram configuration, batching

4. Creating Custom Exporters

  • Exporter interface implementation
  • Data format transformation
  • Error handling and retries
  • Backpressure handling
  • Buffering strategies

5. OpenTelemetry Integration

  • opentelemetry_adapter.h — Bridging to OTEL SDK
  • otlp_grpc_exporter.h — Direct OTLP export
  • Collector sidecar pattern (see OTEL_COLLECTOR_SIDECAR.md)

6. Configuration Examples

  • Prometheus endpoint setup
  • OTLP gRPC export to collector
  • Multi-exporter fan-out

Acceptance Criteria

  • Exporter pipeline architecture documented
  • All 8 built-in exporters documented with configuration
  • All 3 transport layers documented
  • Custom exporter implementation guide
  • OpenTelemetry integration patterns
  • At least 3 configuration examples

Metadata

Metadata

Assignees

Labels

area/metricsMetric collection and processingdocumentationImprovements or additions to documentationpriority/highHigh priority - Critical for production

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions