Skip to content

The goal of this mini-project is to introduce you to two important monitoring tools in the software landscape These are prometheus and grafana. In this project you will find implementations using micrometer and a store for metrics

License

Notifications You must be signed in to change notification settings

jesperancinha/moving-objects-service-root

Repository files navigation

Moving Objects Service


Twitter URL Generic badge License

mos-app e2e-mos-app

Codacy Badge

Codacy Badge codecov Coverage Status

GitHub language count GitHub top language GitHub top language


Technologies used

Please check the TechStack.md file for details.

Introduction

The goal of this mini-project is to introduce you to three important monitoring tools and data stores used in the software landscape. These are prometheus, grafana and influxDB. In this project you will find implementations using micrometer and a store for metrics. These modules have been implemented in a Reactive way with WebFlux and the Front End is implemented with Angular Materials.

This project is also the official support project of my article on medium:

Stable releases

Setup

In order to run this project we need to fulfill some requirements:

  1. Have an IDE
  2. Have JDK17 installed (Details on how to do that in this manual)
  3. Have Docker desktop installed or just use a Linux machine with docker-compose.
MAC-OS Installation
brew upgrade gradle
sdk install java 17-open
sdk use java 17-open
sdk install gradle 7.3.3

How to run

Open Version

make dcup-full-action

Secure version

Does not work with Cypress, and it needs to be configured. Check the Okta manual of this project for more details.

export REDIRECT_PORT=8080
make dcup-full-action-secure

Full Demo

These Cypress tests not only perform tests, but they also generate token files necessary to allow Telegraf to access InfluxDB. These are:

  1. docker-files/telegraf/.env
  2. docker-files/telegraf/token

The full demo Makefile script ensures that:

  1. The services start
  2. Cypress tests run
  3. Telegraf runs on a separate container

It can take anything between 5 and 10 minutes to get all the containers going, but then you'll get:

  1. Working InfluxDB scrappers: Pull from prometheus endpoints directly to InfluxDB
  2. Working Telegraf scrappers: Pull from prometheus and pushes data to Influx DB

Run Cypress

Against Nginx

make cypress-open-docker

Directly against the service ports

make cypress-open

Endpoint list

Direct

Via NGINX

Over Actuator

References

About me

GitHub followers