During DevJam 2020, I decided to work on two projects. One helping Chandra writing a client app for the OIA gRPC Server, and simultaneously work on a proof of concept for another gRPC related application.
This application, which I call “gominion”, is an implementation of a Minion purely in Go using gRPC for IPC.
There was an attempt to do the same in the past, which I checked out for educational purposes, but I decided to start over from scratch.
- Clear interfaces for the RPC API covering and the Sink API, and the respective DTO, similar to how they are defined in OpenNMS.
- Clear interfaces for Detectors and Poller Monitors with basic implementations.
- Full support for SNMP (detect, monitor, data collection).
- Registration service to discover implementations at runtime prior to starting the gRPC client.
- SNMP Trap receiver
- Syslog receiver
I’ll present a docker environment running the following:
- gRPC server
The reason for not using the embedded gRPC server is to show another project I worked prior DevJam, a Go implementation for the OpenNMS server: