Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/circa10a/mcbroken-dashboard
Entry for digitalocean app platform hackathon
https://github.com/circa10a/mcbroken-dashboard
grafana mcbroken mcbroken-exporter metrics-visualization monitoring prometheus prometheus-exporter
Last synced: about 23 hours ago
JSON representation
Entry for digitalocean app platform hackathon
- Host: GitHub
- URL: https://github.com/circa10a/mcbroken-dashboard
- Owner: circa10a
- License: mit
- Archived: true
- Created: 2020-12-21T15:40:14.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2021-03-10T04:37:58.000Z (almost 4 years ago)
- Last Synced: 2024-10-09T17:46:40.933Z (4 months ago)
- Topics: grafana, mcbroken, mcbroken-exporter, metrics-visualization, monitoring, prometheus, prometheus-exporter
- Language: Go
- Homepage: https://dev.to/circa10a/the-mcbroken-dashboard-1eij
- Size: 19.5 KB
- Stars: 4
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# mcbroken-dashboard
Entry for digitalocean app platform hackathon. Deploy your own by clicking the button below!
[![Deploy to DO](https://mp-assets1.sfo2.digitaloceanspaces.com/deploy-to-do/do-btn-blue.svg)](https://cloud.digitalocean.com/apps/new?repo=https://github.com/circa10a/mcbroken-dashboard/tree/main)
![Build Status](https://github.com/circa10a/digitalocean-hackathon/workflows/deploy/badge.svg)
## Mcbroken Dashboard Overview
The mcbroken dashboard is an app template of 3 applications(listed below) which pre-configure a dashboard that is powered by [mcbroken.com](https://mcbroken.com). It's purpose is to provide availability information of all the broken Mcdonald's ice cream machines in the United States.
Stats include:
- Current broken percentage of mcdonald's ice cream machines in the US
- City with the most broken machines and it's outage percentage
- Outage percentage of most major US cities## Screenshots
### Desktop view
### Mobile view
## Components
There are 3 components(services) that make up this application.
- [mcbroken exporter](#mcbroken-exporter)
- [prometheus](#prometheus)
- [grafana](#grafana)### Mcbroken exporter
Access the exporter metrics here: https://mcbroken-dashboard-t7vfw.ondigitalocean.app/mcbroken/metrics
The primary component is a custom prometheus exporter that collects data from [mcbroken.com](https://mcbroken.com)
Technical components(go files) are located in the root of the repo and is deployed via the go buildpack.
#### Development
```bash
# build
make build
# run (listens on 8080)
make run
# docker build
make docker-build
# docker run
make docker-run
```Accessible at http://localhost:8080/metrics
### Prometheus
Access prometheus here: https://mcbroken-dashboard-t7vfw.ondigitalocean.app/
> It's worth nothing that stateful workloads such as prometheus are not ideal for the digitalocean app platform in its current state as of 12/2020. This is due to prometheus needing persistent storage to reliably hold data. The app platform currently only supports ephemeral storage. Prometheus would be better served on a droplet, but it was a good learning experience to wire up all of these componentes together on the app platform.
[Prometheus](https://prometheus.io/) is an an open source time series database that scrapes our custom exporter on short intervals and holds the data for 15 days by default.
Prometheus application and deployment configuration is housed in the [prometheus directory](/prometheus) and is deployed via [Dockerfile](/prometheus/Dockerfile).
### Grafana
Access Grafana here: https://mcbroken-dashboard-t7vfw.ondigitalocean.app/grafana
[Grafana](https://grafana.com/) is an open source dashboard front end that has the ability to connect to a variety of different data sources such as prometheus. Grafan application and deployment configuration is housed in the [grafana directory](/grafana) and is deployed via [Dockerfile](/grafana/Dockerfile).
## Deployment
Deployments are handled by github actions in the [.github/workflows directory](/.github/workflows) by using the [digitalocean CLI(doctl)](https://www.digitalocean.com/docs/apis-clis/doctl/how-to/install/) to update [the app template](/deployment.yaml) for all of the components.