OpAMP Control Plane Architecture for OpenTelemetry Fleets
CollectorCtrl is built on the core principle of Absolute Fleet Governance. By providing a vendor-neutral, self-hosted control plane, it decouples OpenTelemetry collector management from proprietary vendor SaaS lock-in and host OS environments. Read the architectural rationale: If You Don't Own the Control Plane, You're Not Vendor-Neutral.
CollectorCtrl decouples the management plane from the data routing plane. The Supervisor manages any compiled OTel binary (Core, Contrib, ADOT, Splunk, Dynatrace, or custom OCB builds), granting infrastructure teams complete freedom to swap out binaries and route telemetry to parallel destinations.
1. Interactive System Architecture Flow
Explore the interactive architecture diagram below to understand how the CollectorCtrl Management Server, CollectorCtrl Supervisor, and OpenTelemetry Collector communicate, including network port bindings, protocol directions, and operational capabilities:
System Architecture & Component Interaction
Interactive architectural model of CollectorCtrl Server, Supervisor, and OTel Collector

CollectorCtrl Supervisor Agent
System Service DaemonLightweight host-level daemon running as a Linux systemd service or Windows Service. It connects outbound to the CollectorCtrl server via OpAMP, watches `/etc/collectorctrl/supervisor.yaml`, performs pre-flight syntax validation, manages child collector processes, and executes rollback if upgrades fail.
- accepts_remote_config: Receives versioned YAML configs
- reports_effective_config: SHA-256 hash tracking
- reports_health: Monitored process watchdog & alerts
- accepts_packages: Remote binary updates with zero SSH
- rollback_watchdog: Auto-reverts if new binary fails health gate
| Port 13133 | TCP / HTTP Localhost probe → OTel Collector · Continuous health check extension polling |
| Linux Service | /etc/systemd/system/collectorctrl-supervisor.service |
| Windows Service | CollectorCtrlSupervisor (LocalSystem/Service Account) |
| Pre-Flight Check | Executes `otelcol validate` before config apply |
| Memory Footprint | < 35 MB resident set size (RSS) |
2. Component Responsibility Matrix
To help enterprise architects and DevOps engineers understand the separation of concerns, the table below outlines the boundaries between each component:
| Architectural Tier | CollectorCtrl Server | CollectorCtrl Supervisor | OpenTelemetry Collector |
|---|---|---|---|
| Role & Purpose | Central fleet management, policy engine & OpAMP gateway | Host-level daemon managing worker process lifecycle | Ingestion, transformation, and forwarding of telemetry data |
| Process Model | Standalone server / cluster (systemd / Docker) | Background system service (systemd / Windows Service) | Supervised child worker process spawned by Supervisor |
| Network Boundary | Inbound ports 4320 (OpAMP) and 4321 (Web UI/API) | Zero inbound ports required — outbound WS only | Localhost/Cluster ports: 4317 (gRPC), 4318 (HTTP), 13133 (Health) |
| Configuration | Generates & versions YAML configs in PostgreSQL/SQLite | Watches /etc/collectorctrl/supervisor.yaml | Consumes generated effective collector configuration YAML |
| Failure Isolation | Server outage does not interrupt running collectors | Supervisor crash leaves active OTel child running | Collector failure triggers automated restart by Supervisor |
| Binary Swapping | Distributes packages via internal HTTP mirror | Applies binary updates with watchdog rollback | Supports Core, Contrib, ADOT, Splunk, or custom builds |
3. Network Ports & Firewall Specifications
Enterprise security teams can lock down networks with minimal exposure: no inbound ports need to be opened on target host nodes.
| Port | Protocol | Traffic Direction | Source → Destination | Security & Authentication | Purpose |
|---|---|---|---|---|---|
| 4320 | TCP / WebSocket | Inbound to Server | Agent Node → Server | TLS (wss://), API Bearer Token or mTLS | OpAMP protocol: heartbeats, remote configs, & package downloads |
| 4321 | TCP / HTTP | Inbound to Server | Browser / CI/CD → Server | Plain HTTP / HTTPS (Reverse Proxy) | Web Console UI, REST API, and local package repository mirror |
| 13133 | TCP / HTTP | Localhost only | Supervisor → OTel Collector | Loopback (127.0.0.1) | OTel Collector health check extension probe |
| 4317 | TCP / gRPC | Inbound to Node | Application Workload → OTel Collector | Optional mTLS / In-cluster | OTLP gRPC telemetry ingestion (Traces, Metrics, Logs) |
| 4318 | TCP / HTTP | Inbound to Node | Application Workload → OTel Collector | Optional TLS / In-cluster | OTLP HTTP telemetry ingestion (Traces, Metrics, Logs) |
| 5432 | TCP | Localhost / Internal | CollectorCtrl Server → PostgreSQL | SCRAM-SHA-256 / Trust (local) | Persistent storage for fleet state, policy revisions, and RBAC |
4. Supervisor Capabilities & Safety Watchdogs
CollectorCtrl implements the OpenTelemetry Agent Management Protocol (OpAMP) with built-in safety gates that prevent malformed configurations or bad binaries from disrupting observability pipelines:
OpAMP Capabilities Implemented
accepts_remote_config: Allows the CollectorCtrl server to push versioned OpenTelemetry configuration files directly to the agent over the persistent WebSocket channel.reports_effective_config: The Supervisor calculates an SHA-256 hash of the currently running configuration and reports it back to the server, enabling instant drift detection and GitOps reconciliation.reports_health: Streams continuous health observations (CPU RSS, memory load, process restart counts, and error logs) back to the server every 10 seconds.accepts_packages: Enables remote zero-touch binary upgrades without requiring SSH, Ansible, or manual server access.accepts_restart_command: Gracefully signals the collector worker process to restart and reload configuration without dropping buffered in-flight data.
Two-Tier Safety Watchdogs
[ Server Pushes New Config ]
│
▼
[ 1. Pre-Flight Syntax Gate ] ───► Fails? ───► Refuse apply, report "Validation Failed", keep running old config
│ Passes
▼
[ 2. Apply & Health Probe ] ────► 13133 fails? ──► Trigger Automatic Rollback to previous working version
│ HTTP 200 OK
▼
[ Report Sync to Dashboard ]
- Pre-Flight Syntax Validation: Before writing a new YAML configuration to disk, the Supervisor executes
otelcol validatein a isolated dry-run container/subprocess. If YAML syntax is invalid, the update is rejected with zero impact to the running collector. - Crash-Loop & Rollback Watchdog: When upgrading collector or supervisor binaries, the Supervisor starts a monitored probation timer. If the new binary fails to reach
HTTP 200on the health check endpoint (port 13133) or fails to establish an OpAMP connection within 60 seconds, it automatically reverts to the previous known-good binary.
5. Cross-Platform OS Deployment Models
🏢 Windows Enterprise Deployment (Native Windows Service)
On Windows Server hosts, the Supervisor installs as a native Windows Service (CollectorCtrlSupervisor.exe) under LocalSystem or a dedicated Service Account:
- Spawns and supervises
otelcol-contrib.exeas a child process using Windows Job Objects for resource containment. - Captures local system performance counters and Windows Event Logs (
wineventlog).
🐧 Linux Infrastructure Deployment (systemd Daemon)
On Linux servers (Ubuntu, RHEL, Debian, Amazon Linux 2023), the Supervisor runs as a systemd unit (collectorctrl-supervisor.service):
- Monitors the process tree health and supervises stdout/stderr log output.
- Enforces Linux cgroups v2 resource limits to cap CPU and memory consumption.
☸️ Kubernetes Workload Observation (pilot)
For collectors you already deploy to Kubernetes with Helm, GitOps or your own pipeline:
- Observer: One CollectorCtrl observer per cluster watches
CollectorMonitorresources. Each monitor selects one Deployment, DaemonSet or StatefulSet and its collector container. - Read-only by design: The observer reads workloads, pods and mounted ConfigMaps through the Kubernetes API and reports a snapshot over a trusted
wss://OpAMP connection. It never modifies workloads or ConfigMaps; your deployment system keeps control. - Separate from host management: Observed workloads appear in their own Fleet view and are excluded from host policies, canaries, Supervisor upgrades and host-only actions.
See Kubernetes Workload Observation for installation and current limits.
6. Enterprise Security & Governance
CollectorCtrl is 100% self-hosted. Your configuration files, credentials, API tokens, database schemas, and telemetry payloads never leave your network boundary.
- Single Sign-On (SSO): OIDC integration for Okta, Azure Active Directory / Entra ID, Auth0, and Keycloak.
- Audit Compliance: Immutable audit logs track every policy deployment, package upload, and user action.
- Air-Gapped Operation: Built-in package mirror mode eliminates all external internet dependencies for target nodes.