Documentation

Documentation of myriarch, an open-source OpAMP server and fleet manager for OpenTelemetry Collectors: tutorials, how-to guides, concepts and reference.

Myriarch manages fleets of OpenTelemetry Collectors over OpAMP. Git holds the declared state, the web UI and the REST API operate within it, and every action is audited. The documentation is organized by what you want to do with it, following the Diátaxis framework: learn by doing, solve a problem, understand, look something up. If you are new, start with the tutorials, then read the concepts. To decide first whether myriarch fits, read What is Myriarch? for the facts in one place, the comparison of the OpAMP server options and the FAQ.

Tutorials: learn by doing

Getting started takes you from a fresh clone to a running system: the build, the development mode with an embedded PostgreSQL, the example GitOps repository, the simulator and the REST API. The central page is Local development; Your first fleet and rollout writes a fleet and a rollout policy and rolls out a change in waves, and Docker Compose starts the whole system from the release images. Kubernetes on kind installs both Helm charts on a local cluster and rolls out a configuration and a collector version. The kind probe is described in hack/kind/README.md.

How-to guides: solve a problem

How-to guides are step-by-step instructions for one job each, for example manage many collectors with OpAMP and Git, upgrade the collector on many hosts, connect a host, validate a GitOps repository, roll out a configuration change, roll out a collector version, track releases and notify, simulate a fleet, connect a real supervisor and run two replicas locally. To start your own GitOps repository, begin with the template described in gitops-template/README.md.

Concepts: understand how it works

Concepts explains how the system works: OpAMP, the Supervisor and the Collector, GitOps as the source of truth, agents and their identity, blueprints and how they are rendered, fleets and the target version, the inventory, rollouts in waves and the executors that apply version updates. The architecture describes the components, the data flows and the rollout engine, and the security model the controls.

Reference: look something up

Reference holds the exact definitions: the GitOps schema with every kind, field, template function and issue code, the generated command-line reference, the generated references for the server configuration, the environment variables and the metrics, the REST contract in api/openapi.yaml, and the values of the server chart and of the collector chart. The design contracts in design/ pin down protocols and behavior that code and tests follow.

Operations and security: run it

Operations is for people who run myriarch: Install with Helm for the server and Install the collector with Helm for collectors on Kubernetes, authentication (single sign-on, the bootstrap administrator, API tokens), the production checklist with the security-relevant settings, and troubleshooting.

The operations section also has High availability, the upgrade notes for v0.2.0 and Support levels and tested platforms. Guides for upgrades in general, backup and restore, monitoring, air-gapped installation and an artifact mirror are planned for v0.3.0.

The security section describes the controls of the system: trust boundaries, agent and user authentication, artifact verification, outbound connections and network policy. To report a vulnerability, read SECURITY.md.

Project: why and how it is built

The decision records explain why the system is built the way it is. The development guide covers the toolchain, the gates, the web UI and the end-to-end tests, and releasing describes the versioning and the checks that a release tag must pass. The roadmap lists what is planned, and the community files are CONTRIBUTING.md, CODE_OF_CONDUCT.md, GOVERNANCE.md, MAINTAINERS.md and CHANGELOG.md.

License

The documentation is licensed under CC-BY-4.0 (license text), and code snippets inside it are licensed under Apache-2.0 (LICENSE). The same holds for the other Markdown files of the repository, apart from the exceptions named in the README. See ADR-0018 and ADR-0030.


Getting started

Tutorials: run myriarch, an open-source OpAMP server for OpenTelemetry Collectors, on your own machine from source, with Docker Compose or on kind.

How-to guides

Step-by-step guides for the common jobs: enrolling hosts, validating the GitOps repository, rolling out changes and trying things locally.

Concepts

The ideas behind myriarch: OpAMP and the Supervisor, Git as the source of truth, agents, blueprints, fleets, inventory, rollouts and executors.

Reference

Exact descriptions of the GitOps objects, the command line tools and the REST API.

Operations

Run myriarchd in production: installation with Helm, authentication, the settings that matter for security, and troubleshooting.

Security

How myriarch protects the control plane, its agents and the software it delivers, and where to report a vulnerability.

Architecture

Components, data flows, high availability, security summary, scaling, data retention and observability of myriarch.

Architecture decision records

Index of the significant decisions about the project, recorded in MADR style.

Design documents

Normative design contracts of the project and the upstream facts they rest on.

Development

How to build, test and extend myriarch: toolchain, repository layout, build tags, the local gates, the web UI, end-to-end tests and the documentation tooling.

Releasing

How to release Myriarch: the VERSION file, the release workflow and its two approvals, release candidates, re-runs and one-time maintainer settings.