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
Chem: collection of mostly python code for molecular visualization, QM/MM, FEP, etc

chem: collection of mostly python code for molecular visualization, QM/MM, FEP,

5 Sep 02, 2022
Collection of data visualizing projects through Tableau, Data Wrapper, and Power BI

Data-Visualization-Projects Collection of data visualizing projects through Tableau, Data Wrapper, and Power BI Indigenous-Brands-Social-Movements Pyt

Jinwoo(Roy) Yoon 1 Feb 05, 2022
A python package for animating plots build on matplotlib.

animatplot A python package for making interactive as well as animated plots with matplotlib. Requires Python = 3.5 Matplotlib = 2.2 (because slider

Tyler Makaro 394 Dec 18, 2022
Drug design and development team HackBio internship is a virtual bioinformatics program that introduces students and professional to advanced practical bioinformatics and its applications globally.

-Nyokong. Drug design and development team HackBio internship is a virtual bioinformatics program that introduces students and professional to advance

4 Aug 04, 2022
Visualize your pandas data with one-line code

PandasEcharts 简介 基于pandas和pyecharts的可视化工具 安装 pip 安装 $ pip install pandasecharts 源码安装 $ git clone https://github.com/gamersover/pandasecharts $ cd pand

陈华杰 2 Apr 13, 2022
A Python package that provides evaluation and visualization tools for the DexYCB dataset

DexYCB Toolkit DexYCB Toolkit is a Python package that provides evaluation and visualization tools for the DexYCB dataset. The dataset and results wer

NVIDIA Research Projects 107 Dec 26, 2022
Moscow DEG 2021 elections plots

Построение графиков на основе публичных данных о ДЭГ в Москве в 2021г. Описание Скрипты в данном репозитории позволяют собственноручно построить графи

9 Jul 15, 2022
Data aggregated from the reports found at the MCPS COVID Dashboard into a set of visualizations.

Montgomery County Public Schools COVID-19 Visualizer Contents About this project Data Support this project About this project Data All data we use can

James 3 Jan 19, 2022
Uniform Manifold Approximation and Projection

UMAP Uniform Manifold Approximation and Projection (UMAP) is a dimension reduction technique that can be used for visualisation similarly to t-SNE, bu

Leland McInnes 6k Jan 08, 2023
A simple agent-based model used to teach the basics of OOP in my lectures

Pydemic A simple agent-based model of a pandemic. This is used to teach basic principles of object-oriented programming to master students. It is not

Fabien Maussion 2 Jun 08, 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
Python+Numpy+OpenGL: fast, scalable and beautiful scientific visualization

Python+Numpy+OpenGL: fast, scalable and beautiful scientific visualization

Glumpy 1.1k Jan 05, 2023
https://there.oughta.be/a/macro-keyboard

inkkeys Details and instructions can be found on https://there.oughta.be/a/macro-keyboard In contrast to most of my other projects, I decided to put t

Sebastian Staacks 209 Dec 21, 2022
Generating interfaces(CLI, Qt GUI, Dash web app) from a Python function.

oneFace is a Python library for automatically generating multiple interfaces(CLI, GUI, WebGUI) from a callable Python object. oneFace is an easy way t

NaNg 31 Oct 21, 2022
Small binja plugin to import header file to types

binja-import-header (v1.0.0) Author: matteyeux Import header file to Binary Ninja types view Description: Binary Ninja plugin to import types from C h

matteyeux 15 Dec 10, 2022
1900-2016 Olympic Data Analysis in Python by plotting different graphs

🔥 Olympics Data Analysis 🔥 In Data Science field, there is a big topic before creating a model for future prediction is Data Analysis. We can find o

Sayan Roy 1 Feb 06, 2022
The plottify package is makes matplotlib plots more legible

plottify The plottify package is makes matplotlib plots more legible. It's a thin wrapper around matplotlib that automatically adjusts font sizes, sca

Andy Jones 97 Nov 04, 2022
An open-source tool for visual and modular block programing in python

PyFlow PyFlow is an open-source tool for modular visual programing in python ! Although for now the tool is in Beta and features are coming in bit by

1.1k Jan 06, 2023
Type-safe YAML parser and validator.

StrictYAML StrictYAML is a type-safe YAML parser that parses and validates a restricted subset of the YAML specification. Priorities: Beautiful API Re

Colm O'Connor 1.2k Jan 04, 2023
Python module for drawing and rendering beautiful atoms and molecules using Blender.

Batoms is a Python package for editing and rendering atoms and molecules objects using blender. A Python interface that allows for automating workflows.

Xing Wang 1 Jul 06, 2022