Hi everyone, Stevan and I have developed a small gRPC server to stream VPP metrics to an analytic stack.
That's right, there is already a program to do this in VPP, it is vpp_prometheus_export. Here are the main details/improvements regarding our implementation: * Our implementation is based on gNMI specification, a network standard co-written by several network actors to allow configuration and telemetry with RPCs. * Thanks to gNMI protobuf file, messages are easier to parse and use a binary format for better performances. * We are using gRPC and Protobuf, so this is a HTTP2 server * We are using a push model (or streaming) instead of a pull model. This mean that clients subscribe to metric paths with a sample interval, and our server streams counters according to the sample interval. * As we said just before, contrary to vpp_prometheus_export, our application let clients decide which metric will be streamed and how often. * For interface related counters, we also provide conversion of interface indexes into interface names. Ex: /if/rx would be output as /if/rx/tap0/thread0 But at this stage, this conversion is expensive because it uses a loop to collect vapi interface events. It is planned to write paths with interface names in STAT shared memory segment to avoid this loop. Here is the link to our project: https://github.com/vpp-telemetry-pfe/gnmi-grpc We have provided a docker scenario to illustrate our work. It can be found in docker directory of the project. You can follow the guide named guide.md. Do not hesitate to give us feedbacks regarding the scenario or the code. Yohan
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#12138): https://lists.fd.io/g/vpp-dev/message/12138 Mute This Topic: https://lists.fd.io/mt/29635594/21656 Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-