A Simple "Go" based collector for IOS XR Telemetry that can get you
started on trying telemetry. IOS XR supports dialout and dialin modes
for connecting to router for streaming, this repo will have both the
collectors. These collectors only read the data as its sent from the
router and dump on to file or stdout, you can add on to these scripts
to push output to a DB. This is meant for beginners, if you are familiar with Go, GRPC and IOSXR, you should be using and modifying/extending Pipeline for your needs.
If you want to start from scratch or do not have "Go", Protoc, protoc-gen-go or grpc installed, you can check out Dialout-collector-howto.md. It has instructions on how to get started and how to write a simple collector.
Assuming "Go" is already installed, following instructions are for getting collector, building it and running it.
Note:
- Dialout collector supports GRPC, TCP and UDP transports
- Dialin Collector supports subscribe and get-proto RPCs to IOSXR device over GRPC as transport
- Decode logic in the collector including Compact GPB encoded messages is explained at docs/Decode-Compact-GPB-Message
- Streamed messages can be pushed to elasticsearch using "-out elasticsearch::" option when collector is started
Install instructions:
go get -d github.com/ios-xr/telemetry-go-collector
alternately, use git clone to get the collector to $GOPATH/src directory
git clone github.com/ios-xr/telemetry-go-collector $GOPATH/src
If git clone is used, change the import of mdt_grpc_dialout in telemetry_dialout_collector.go to make sure, path is correct relative to $GOPATH/src
Requirements
Need following to be available to be able to build the collectors, binaries can be used as is on linux