Extract data from ThousandEyes REST API and visualize it on your customized Grafana Dashboard.

Overview

ThousandEyes Grafana Dashboard

Extract data from the ThousandEyes REST API and visualize it on your customized Grafana Dashboard. Deploy Grafana, InfluxDBv2 and the Python connector script within a few minutes.

Supported Functions

  • Get historic data (custom time range) and pull new data (set your own interval) from your ThousandEyes tests.
  • Grafana, a sample Dashboard-template and InfluxDBv2 are already pre-configured
  • Collected data is persistent! It will remain untouched even after the containers will be restarted.
  • Currently Supported Tests:
    • (Web) Page load
    • (Web) HTTP server
    • (Network) End-to-End metrics
    • (Network) Path visualization

Visuals

Prepare: Create Label (optional), clone git-repo, change settings in config.py

Run: Start containers, copy and insert testId into Grafana

Dashboard-Template Screenshots

Installation

Prerequisites

  • git, Docker/Docker-compose installed

Installation Steps

  1. Clone repository
git clone https://github.com/flopach/thousandeyes-grafana-dashboard.git
  1. Change your desired settings in the docker/py_connector/config.py file.

  2. Start all containers from the docker/ directory. This may take some minutes.

docker-compose up

More useful commands:

  • Run as daemon mode: docker-compose up -d
  • Stops containers: docker-compose down
  • Build again the containers (when you changed the Python scripts): docker-compose build

Configuration

Configure: config.py

Simply open docker/py_connector/config.py in any text-editor to set your desired configuration.

  • Create OAuth Bearer Token: Account Settings > Users and Roles >> User API Tokens
  • 2 data selection options:
    • Default: py_connector will add ALL HTTP-Server and Page-Load tests
    • Option: py_connector will add ONLY tests with the defined label
  • time window
  • pull interval

Example: When you've created a ThousandEyes page-load test (see below), you will receive data from 4 views:

Configure: Dashboards

Login to Grafana dashboard and configure your dashboard modules by inserting the ThousandEyes testId. Additionally, use the query editor from the InfluxDB UI as a help to create and copy the Flux language syntax snippet.

Login Grafana - http://localhost:3000

  • username: admin
  • password: admin123

Login InfluxDB - http://localhost:8086

  • username: admin
  • password: admin123

Configure: docker-compose.yml (optional)

If you are not familiar with Docker compose, go ahead to check the documentation. Basically, 4 containers will be spun up:

  • InfluxDBv2: data will be stored outside of the container
  • InfluxDBv2 CLI setup instance: Will setup the other InfluxDBv2 container if it is not setup yet
  • Grafana Dashboard: configuration settings will be stored outside of the container
  • Py connector: Python connector scripts (stored in the py_connector folder)

Good to knows

- InfluxDB Setup Error

When you have already started docker-compose and are re-starting the containers, this error is normal:

influxdb_setup_1  | Error: instance at "http://influxdb:8086" has already been setup
influxdb_setup_1  | See 'influx setup -h' for help
influxdb_setup_1 exited with code 1

- Changing the settings in config.py

When you have already started docker-compose once and would like to change the settings, you need to re-build the py_connector container:

docker-compose build

Versioning

1.0 (Sep 2021) - Initial version

License

This project is licensed under the Cisco Samplel Code License 1.1 - see the LICENSE.md file for details

Further Links

Owner
Flo Pachinger
Developer Advocate at Cisco DevNet
Flo Pachinger
This repository contains a streaming Dataflow pipeline written in Python with Apache Beam, reading data from PubSub.

Sample streaming Dataflow pipeline written in Python This repository contains a streaming Dataflow pipeline written in Python with Apache Beam, readin

Israel Herraiz 9 Mar 18, 2022
This GitHub Repository contains Data Analysis projects that I have completed so far! While most of th project are focused on Data Analysis, some of them are also put here to show off other skills that I have learned.

Welcome to my Data Analysis projects page! This GitHub Repository contains Data Analysis projects that I have completed so far! While most of th proje

Kyle Dini 1 Jan 31, 2022
Bcc2telegraf: An integration that sends ebpf-based bcc histogram metrics to telegraf daemon

bcc2telegraf bcc2telegraf is an integration that sends ebpf-based bcc histogram

Peter Bobrov 2 Feb 17, 2022
Plot-configurations for scientific publications, purely based on matplotlib

TUEplots Plot-configurations for scientific publications, purely based on matplotlib. Usage Please have a look at the examples in the example/ directo

Nicholas Krämer 487 Jan 08, 2023
Decision Border Visualizer for Classification Algorithms

dbv Decision Border Visualizer for Classification Algorithms Project description A python package for Machine Learning Engineers who want to visualize

Sven Eschlbeck 1 Nov 01, 2021
Streaming pivot visualization via WebAssembly

Perspective is an interactive visualization component for large, real-time datasets. Originally developed for J.P. Morgan's trading business, Perspect

The Fintech Open Source Foundation (www.finos.org) 5.1k Dec 27, 2022
Custom ROI in Computer Vision Applications

EasyROI Helper library for drawing ROI in Computer Vision Applications Table of Contents EasyROI Table of Contents About The Project Tech Stack File S

43 Dec 09, 2022
script to generate HeN ipfs app exports of GLSL shaders

HeNerator A simple script to generate HeN ipfs app exports from any frag shader created with: GlslViewer GlslEditor The Book of Shaders glslCanvas VS

Patricio Gonzalez Vivo 22 Dec 21, 2022
Profile and test to gain insights into the performance of your beautiful Python code

Profile and test to gain insights into the performance of your beautiful Python code View Demo - Report Bug - Request Feature QuickPotato in a nutshel

Joey Hendricks 138 Dec 06, 2022
Comparing USD and GBP Exchange Rates

Currency Data Visualization Comparing USD and GBP Exchange Rates This is a bar graph comparing GBP and USD exchange rates. I chose blue for the UK bec

5 Oct 28, 2021
Schema validation just got Pythonic

Schema validation just got Pythonic schema is a library for validating Python data structures, such as those obtained from config-files, forms, extern

Vladimir Keleshev 2.7k Jan 06, 2023
OpenStats is a library built on top of streamlit that extracts data from the Github API and shows the main KPIs

Open Stats Discover and share the KPIs of your OpenSource project. OpenStats is a library built on top of streamlit that extracts data from the Github

Pere Miquel Brull 4 Apr 03, 2022
In-memory Graph Database and Knowledge Graph with Natural Language Interface, compatible with Pandas

CogniPy for Pandas - In-memory Graph Database and Knowledge Graph with Natural Language Interface Whats in the box Reasoning, exploration of RDF/OWL,

Cognitum Octopus 34 Dec 13, 2022
nptsne is a numpy compatible python binary package that offers a number of APIs for fast tSNE calculation.

nptsne nptsne is a numpy compatible python binary package that offers a number of APIs for fast tSNE calculation and HSNE modelling. For more detail s

Biomedical Visual Analytics Unit LUMC - TU Delft 29 Jul 05, 2022
Simple spectra visualization tool for astronomers

SpecViewer A simple visualization tool for astronomers. Dependencies Python = 3.7.4 PyQt5 = 5.15.4 pyqtgraph == 0.10.0 numpy = 1.19.4 How to use py

5 Oct 07, 2021
This is a Boids Simulation, written in Python with Pygame.

PyNBoids A Python Boids Simulation This is a Boids simulation, written in Python3, with Pygame2 and NumPy. To use: Save the pynboids_sp.py file (and n

Nik 17 Dec 18, 2022
Personal IMDB Graphs with Bokeh

Personal IMDB Graphs with Bokeh Do you like watching movies and also rate all of them in IMDB? Would you like to look at your IMDB stats based on your

2 Dec 15, 2021
A visualization tool made in Pygame for various pathfinding algorithms.

Pathfinding-Visualizer 🚀 A visualization tool made in Pygame for various pathfinding algorithms. Pathfinding is closely related to the shortest path

Aysha sana 7 Jul 09, 2022
100 data puzzles for pandas, ranging from short and simple to super tricky (60% complete)

100 pandas puzzles Puzzles notebook Solutions notebook Inspired by 100 Numpy exerises, here are 100* short puzzles for testing your knowledge of panda

Alex Riley 1.9k Jan 08, 2023
By default, networkx has problems with drawing self-loops in graphs.

By default, networkx has problems with drawing self-loops in graphs. It makes it hard to draw a graph with self-loops or to make a nicely looking chord diagram. This repository provides some code to

Vladimir Shitov 5 Jan 06, 2022