Full Multi-Agent Demo
This demo runs five OpAMP consumers against one provider:
| Agent | Consumer mode | Active config | Replacement config |
|---|---|---|---|
| Fluent Bit | Supervisor | active/fluent-bit.yaml |
replacements/fluent-bit.yaml |
| Fluentd | Supervisor | active/fluentd.conf |
replacements/fluentd.conf |
| Vector | Observer | active/vector.yaml |
replacements/vector.yaml |
| Elastic Agent | Observer | active/elastic-agent.yml |
replacements/elastic-agent.yml |
| Elastic Heartbeat | Observer | active/heartbeat.yml |
replacements/heartbeat.yml |
Fluent Bit and Vector connect to the provider over the OpAMP WebSocket transport. Fluentd, Elastic Agent, and Elastic Heartbeat use the OpAMP HTTP transport.
The provider config in provider/opamp-provider-full-demo.json enables remote config, effective config reporting, and the embedded Config Catalog. The catalog scans active/, replacements/, and consumers/, so the files are visible in the server UI at /catalog.
For a presentation-ready explanation with diagrams, see presentation-overview.md.
Start
Prepare a demo shell with the expected local agent tools on PATH:
cmd /k "call docs\full-demo\use-demo-agent-paths.cmd && powershell"
Run the remaining PowerShell commands from that inherited shell.
Start the provider with the full-demo provider config:
$repo = "D:\dev\opamp2"
$env:PYTHONPATH = "$repo\provider\src;$repo\config-service\src;$repo\catalog-service\src;$env:PYTHONPATH"
$env:OPAMP_CONFIG_PATH = "$repo\docs\full-demo\provider\opamp-provider-full-demo.json"
python -m opamp_provider.server --config-path $env:OPAMP_CONFIG_PATH --host 127.0.0.1 --port 8080
Start the Logstash container and all five consumers from the CLI demo profile:
$env:OPAMP_DEMO = "true"
opamp-cli start "Demo setup (Full multi-agent remote config)"
Start the observer-mode agents before or immediately after starting the consumers:
powershell -ExecutionPolicy Bypass -File docs\full-demo\start-observed-agents.ps1
The helper script accepts command names from PATH or explicit executable paths. By default it looks for these commands on PATH:
vectorelastic-agentheartbeat
Use use-demo-agent-paths.cmd for the default D:\dev-tools layout, or set PATH yourself if your local tool layout differs. The script also auto-checks common Vector locations, including D:\dev-tools\vector\bin\vector.exe.
For Vector specifically, you can also set one of these before running the script:
$env:OPAMP_VECTOR_EXECUTABLE_PATH = "D:\dev-tools\vector\bin\vector.exe"
$env:OPAMP_VECTOR_HOME = "D:\dev-tools\vector\bin"
If your Vector install lives somewhere else permanently, edit $VectorCandidatePaths in docs/full-demo/start-observed-agents.ps1.
You can also pass absolute paths directly:
powershell -ExecutionPolicy Bypass -File docs\full-demo\start-observed-agents.ps1 `
-VectorExe "D:\dev-tools\vector\bin\vector.exe" `
-ElasticAgentExe "D:\dev-tools\elastic-agent\elastic-agent-9.5.0-windows-x86_64\elastic-agent.exe" `
-HeartbeatExe "D:\dev-tools\elastic-heartbeat\heartbeat-9.5.3-windows-x86_64\heartbeat.exe"
Remote Config Demo
Open http://127.0.0.1:8080/ui, select a connected client, choose Select Configs, and pick the matching file from docs/full-demo/replacements. The replacement files keep the same service_instance_id values and change output paths or polling/logging behavior so the deployment is easy to spot.
Stop
opamp-cli stop "Demo setup (Full multi-agent remote config)"
powershell -ExecutionPolicy Bypass -File docs\full-demo\stop-observed-agents.ps1
The Logstash container writes demo events under docs/full-demo/out/logstash.
OpAMP