On Sat, 9 Dec 2017, Sanchayan Maity wrote:

On Saturday, December 9, 2017 at 7:50:05 PM UTC+5:30, Sanchayan Maity wrote:

There is a rust riemann client available
https://github.com/borntyping/rust-riemann_client

This seems to not implement the attributes property of an event. See the proto 
description below for event
https://github.com/borntyping/rust-riemann_client/blob/master/src/proto/mod.proto
From what I understand, riemann server understands this proto implementation. 
You just can't send anything over gRPC.

The idea I had in mind was to use this client and implement whatever is 
missing. Once the client is complete (it is already capable of sending events) 
we can use this as library crate for all monitoring agents we want to write. 
The monitoring agents will only collect information and this client library can 
be used to send event streams to Riemann.


a trade-off is required from an engineering perspective.


the components on the agent side are
-------------
. daemon
. communicator
. executor
. sensor / probe
. logger
. cli


Brief
--------------
01. Daemon is a generic design and stand alone. It doesn't know anything about 
the platform or the communication protocol

02. Communicator knows only about communicating on a gRPC stream and HTTP/2

03. Executor is a command design pattern

04. sensor or probe is a poller/checker

05. logger writes a record given a stream or handle

06. cli is the interface to interact with the agent.

Here is an approach that i'd like to suggest and we can discuss this morning.


Key insight
------------
Both Ruby FFI and Rust FFI are very well designed, stable and work well with 
each other

Riemann client written in Ruby and the various Gems are already using a 
complete and stable gRPC implementation to communicate with the Riemman server.

Daemon, Executor, Sensor, Probe, Logger, CLI can be implemented very 
efficiently in Rust.


Approach
------------
A generic agent framework is designed using traits.
We use Ruby gRPC implementation 'as is' through FFI integration
Implement the rest of the components using Rust.

Rust gRPC implementation, trouble shooting, enhancement etc can be done over 
the next six months or so.

However, we got the core of the agents in Rust in this hackathon itself.

What say ?


warm regards
Saifi.

--
https://meetup.com/rustox
--- You received this message because you are subscribed to the Google Groups "Rust Bangalore Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/rustox.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rustox/alpine.LNX.2.20.1712100839300.21031%40localhost.localdomain.
For more options, visit https://groups.google.com/d/optout.

Reply via email to