openjts icon indicating copy to clipboard operation
openjts copied to clipboard

The Open Juniper Telemetry Stack Project

Juniper Telemetry Stack - aka. JTS

jts.png

Disclaimer

This project is a "side time project" supported in 'best-effor' :) and I'm not a software developper, so be indulgent with me :).

SUPPORTED USE CASES (Profiles)

Today OpenJTS supports:

  • HEALTH PROFILE: Monitoring the health of the router - many environmental data.
  • TRAFFIC PROFILE: Monitoring of traffic and traffic error including queue drops, VoQ, Queue depth (depends on HW), and many other traffic KPI for Physical and Logical interfaces.
  • BGP PROFILE: BGP statistics per neighbor, family, peer-group routing statistics, including on-change session events.
  • DDOS PROFILE: Monitoring of the DDOS Protection statistics
  • FILTER PROFILE: Monitoring of all your firewall filter counters and policers at PFE and port levels.
  • POWER PROFILE: Monitoring of the power consumption of each active chassis components. Include temperature and Fan speed monitoring. Include an aggregated view.
  • OPTIC PROFILE: Moniroting of the optic KPIs: level, alarms. Support OTN optics. ZR/ZR+ dedicated dashboard.
  • SRMPLS PROFILE: Monitoring of SR MPLS traffic: per interface and per label (SID)

Note: Depending the platform and the version you may have access to more of less information. Also, some profiles are not supported on some PF/Version. Please refer to the "doc" menu from the JTSO portal.

Note 2: Some statistics requiere specific device configuration.

Quick Overview

Embark on a journey to discover and embrace Juniper Telemetry solution with this simple project. Designed for effortless adoption, this all-in-one tool is here to demystify gRPC Telemetry on Juniper routing products. We currently support PTX 10K, MX (vMX, Neo and 10K platforms) & ACX 7K platforms. Junos/EVO 20.1 and onwards are supported.

Feel free to open issue if you experience some troubles for a given HW or SW version. The profiles have been tested with recent Junos releases so some older versions may use different "counters" naming - especially when OpenConfig models are used. I can easily patch a profile, in minutes, without touching the code. Moreover, if you want I develop a new profile for a new use case, don't hesitate to also open an issue.

This project is made around 3 main repos:

  • OpenJTS: https://github.com/door7302/openjts - provides the infra for deplying the stack and includes all theh profiles
  • JTSO: https://github.com/door7302/jtso - the source code of the jtso component
  • JTS Telegraf: https://github.com/door7302/jts_telegraf - a fork of the telegraf project which includes several plugins and enhancements for OpenJTS.

All comments, remarks, ideas are welcome. you can reach out to me here: [email protected]

Getting Start

Table of content:

  • Home
  • Installation
  • Configuration
  • Update Stack
  • Utilization
  • Profiles documentation

Presentation

This is a repo to build from scratch a Telemetry stack to monitor any Juniper Routing Devices.

This stack has the codename "JTS" which stands for Juniper Telemetry Stack

This stack relies on OpenSource software solutions such as Telegraf for collecting gNMI Telemetry state data (it also supports Netconf input plugin for data not yet available through Telemetry) and pre-processing the data, InfluxDB as a Time Series Database to store data, Kapacitor to aggregate and perform Alarming and finally Grafana to display contents. A specific piece of software developed by Juniper and called JTSO, which stands for JTS Orchestrator, is also present in the stack (Dev. in GOLANG). This piece of software developed by TME AWAN Team has 2 main roles: the first one is to manage the Stack (provision routers IP, select the pre shipped profils) and on the other hands provide an Enricher tool to enrich on-the-fly telemetry data for better visualization and aggregation).

JTS is pre-filled with templates of configuration and dashbords for typical use cases. Those profiles are tgz files store in compose/jso/profiles directory

JTS relies on Docker Compose to deploy in one command this stack. Please be sure you have done all the prerequisites before.

JTS has only been validated for Ubuntu/Debian Host OS.

{- Notice: Currently JTS uses a specific build of Telegraf which offers more functionalities (dev. by Juniper). Juniper will continue to push these enhancements to the official Telegraf project -}

jts.png