Deployments
There are numerous ways gnmic
can be deployed, each fulfilling a specific use case.
Whether it is gNMI telemetry collection and export to a single output, or clustered data pipelines with high availability and redundancy, the below examples should cover the most common use cases.
In this section you will find multiple deployment examples, using docker-compose or containerlab. Each deployment comes with:
- a
docker-compose
orclab
file - one or multiple
gnmic
configuration file(s) - extra configuration files if required by the use case (e.g: prometheus, grafana,...)
The containerlab examples come with a fabric deployed using Nokia's SR Linux
If you don't find an example that fits your needs, feel free to open an issue on github
Single Instance#
These examples showcase single gnmic
instance deployments with the most commonly used outputs
- NATS output: clab, docker-compose
- Kafka output: clab, docker-compose
- InfluxDB output: clab, docker-compose
- Prometheus output: clab, docker-compose
- Multiple outputs: clab, docker-compose
Clusters#
gnmic
can also be deployed in clustered mode to either load share the targets connections between multiple instances and offer connection resiliency, and/or replicate the collected data among all the cluster members
- InfluxDB output: clab, docker-compose
- Prometheus output: clab, docker-compose
- Prometheus output with data replication: clab, docker-compose
Pipelines#
Building data pipelines using gnmic
is achieved using the outputs and inputs plugins.
You will be able to process the data in a serial fashion, split it for parallel processing or mirror it to create a forked pipeline.
- NATS to Prometheus: docker-compose
- NATS to InfluxDB: docker-compose
- Clustered pipeline: docker-compose
- Forked pipeline: docker-compose