/snap-plugin-lib-go

Primary LanguageGoApache License 2.0Apache-2.0

Snap Plugin Library for Go

This is a library for writing plugins in Go for the Snap telemetry framework.

Snap has three different plugin types and for instructions on how to write a plugin check out the collector, processor, and publisher plugin docs.

Before writing a Snap plugin:

If you do decide to write a plugin, open a new issue following the plugin wishlist guidelines and let us know you are working on one!

Brief Overview of Snap Architecture

Snap is an open and modular telemetry framework designed to simplify the collection, processing and publishing of data through a single HTTP based API. Plugins provide the functionality of collection, processing and publishing and can be loaded/unloaded, upgraded and swapped without requiring a restart of the Snap daemon.

A Snap plugin is a program that responds to a set of well defined gRPC services with parameters and return types specified as protocol buffer messages (see plugin.proto). The Snap daemon handshakes with the plugin over stdout and then communicates over gRPC.

Snap Plugin Go Library Examples

You will find example plugins that cover the basics for writing collector, processor, and publisher plugins in the examples folder.