TelemetryBackendPlugin
Purpose: Pluggable OTLP backends for traces, metrics, and logs
Location: packages/floe-core/src/floe_core/plugins/telemetry.py
Entry Point: floe.telemetry_backends
ADR: ADR-0035: Observability Plugin Interface
TelemetryBackendPlugin separates telemetry collection (OpenTelemetry SDK, enforced) from backend storage/visualization (pluggable). This enables organizations to use existing observability infrastructure while maintaining standardized telemetry emission.
Note: OpenTelemetry instrumentation is enforced across all floe components. This plugin only controls where telemetry data is sent.
Interface Definition
Section titled “Interface Definition”The live ABC is TelemetryBackendPlugin in
packages/floe-core/src/floe_core/plugins/telemetry.py. The snippet below is a
conceptual excerpt for the public contract.
from abc import ABC, abstractmethodfrom typing import Any
class TelemetryBackendPlugin(ABC): """Plugin interface for OTLP telemetry backends.
Configure backends for storing and visualizing OpenTelemetry traces, metrics, and logs. """
name: str version: str floe_api_version: str
@abstractmethod def get_otlp_exporter_config(self) -> dict[str, Any]: """Generate OTLP Collector exporter configuration.
Returns: Dictionary containing OTLP exporter config for the backend. Example for Datadog: { "exporters": { "datadog": { "api": {"key": "${env:DD_API_KEY}"}, "site": "datadoghq.com" } } } """ pass
@abstractmethod def get_helm_values_override(self) -> dict[str, Any]: """Generate Helm values for deploying backend services.
Returns: Dictionary with Helm chart values for backend services. Example for Jaeger: { "jaeger": { "enabled": true, "collector": {"service": {"type": "ClusterIP"}}, "query": {"service": {"type": "LoadBalancer"}} } } """ passReference Implementations
Section titled “Reference Implementations”| Plugin | Description | Self-Hosted |
|---|---|---|
JaegerTelemetryPlugin | Local/self-hosted observability reference path | Yes |
DatadogTelemetryPlugin | SaaS APM and distributed tracing | No |
GrafanaCloudTelemetryPlugin | Managed Grafana + Tempo + Loki | No |
Related Documents
Section titled “Related Documents”- ADR-0035: Observability Plugin Interface
- Plugin Architecture
- LineageBackendPlugin - Companion observability plugin