📈 Monitoring with Prometheus and Bob

May 07, 2019

In the subsequent post I detail my thoughts and findings while exploring Prometheus and Grafana as an effort to better understand monitoring in a container based world.

Table of Contents

  1. Context
  2. My Objectives
  3. Things to explore
  4. The Sandbox

Context

...for some context #lmgtfy

Prometheus is an open-source systems monitoring and alerting toolkit originally built at SoundCloud. Since its inception in 2012, many companies and organizations have adopted Prometheus, and the project has a very active developer and user community. It is now a standalone open source project and maintained independently of any company. To emphasize this, and to clarify the project's governance structure, Prometheus joined the Cloud Native Computing Foundation in 2016 as the second hosted project, after Kubernetes.

Grafana The tool for beautiful monitoring and metric analytics & dashboards for Graphite, InfluxDB & Prometheus & More

My Objectives

  • Learn something! ~ Exercising my brain on something new!
  • Get a better grasp of monitoring in a containerized world.
  • Create an extendable playground to practice on.

Things to Explore

  • Learn the query langauge used to create dashboards
  • Capture and embeding grafana dashboards in code.
  • Understanding the use cases of push gateway with scheduled jobs
  • Create simple services that emit data
  • Create alerts for priority services

The Sandbox

A docker Environment to experiment with Prometheus and Grafana

Note: you can find the codebase for this blog post in this Github repo.

Get the project

#Clone the Repo
git clone https://github.com/grahamplata/PrometheusSandbox.git
cd PrometheusSandbox
#Start the demo cluster:
./bin/start
#Stop the demo cluster
./bin/stop

Project Structure

.
├── README.md
├── bin
│   ├── start
│   └── stop
├── containers
│   ├── app_one
│   ├── app_two
│   ├── grafana
│   └── prometheus
└── docker-compose.yml

Accessing Exposed Services

Defaults

  • Grafana credentials: admin:admin