[grpc-io] C++ - multi-vendor gRPC -C++ "dial-out" collector

127 views
Skip to first unread message

Salvatore Cuzzilla

unread,
Jun 8, 2022, 9:08:35 AM6/8/22
to grpc.io
Hi Community,

I was looking for an efficient way to collect metrics from a relatively big (>1000) & multi-vendor network.

Nowadays, all big players (Cisco, Huawei, Juniper, Nokia ...) support "yang" to model the data & gRPC with multiple encoding (JSON, GPB-KV, GPB) to share it across the network.

This is why I recently started the development of a gRPC-C++ "dial-out" collector & I was asking myself if someone else is already working on something similar or might be interested in joining the project.

The development is done with C++ using the gRPC's async API plus multi-threading to maximize scalability.


Regards,
Salvatore.

Richard Belleville

unread,
Jun 15, 2022, 1:40:59 PM6/15/22
to grpc.io
> Nowadays, all big players (Cisco, Huawei, Juniper, Nokia ...) support "yang" to model the data & gRPC with multiple encoding (JSON, GPB-KV, GPB) to share it across the network.

Interesting. I used to work in telecom until 2018. Back then, RESTConf still seemed to be the dominant format. The telecom industry's penchant for acronyms doesn't disappoint. I had to look up what GPB stands for even though I work on the gRPC team.

> This is why I recently started the development of a gRPC-C++ "dial-out" collector & I was asking myself if someone else is already working on something similar or might be interested in joining the project.

I'm not aware of any existing system specifically for OSS gRPC. I imagine you'd write a client interceptor that would log the initiation of an outgoing connection, which would log the connection to a per-process datastore. Then, a separate thread would periodically send a batch of updates to an aggregation server. Depending on the scale of your system, the design of the aggregation server could get tricky.

Salvatore Cuzzilla

unread,
Jun 16, 2022, 2:33:12 AM6/16/22
to grpc.io
Hi Richard,

the project in now open to everyone, today I officially went public: https://github.com/scuzzilla/mdt-dialout-collector .
As you will see, it's still in an early development stage, however already usable.

More features & stability improvements will come in the next weeks, meanwhile any technical contribution is really appreciated.


Regards,
Salvatore.
Reply all
Reply to author
Forward
0 new messages