All Projects â†’ sergiitk â†’ Pagerbeauty

sergiitk / Pagerbeauty

Licence: mit
📟✨ PagerDuty on-call widget for monitoring dashboard. Datadog and Grafana compatible

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Pagerbeauty

Dark
(grafana) Dashboards As Resources in Kubernetes
Stars: ✭ 190 (-24%)
Mutual labels:  grafana, grafana-dashboard, dashboard
Grafana Dashboards
Grafana Dashboards
Stars: ✭ 228 (-8.8%)
Mutual labels:  grafana, grafana-dashboard, dashboard
Ngx Dynamic Dashboard Framework
This is a JSON driven angular x based dashboard framework that is inspired by JIRA's dashboard implementation and https://github.com/raulgomis/angular-dashboard-framework
Stars: ✭ 160 (-36%)
Mutual labels:  widget, dashboard
Hastic Grafana App
Hastic data management server for labeling patterns and anomalies in Grafana
Stars: ✭ 166 (-33.6%)
Mutual labels:  grafana, dashboard
Jarvis2
Awesome dashboard built with Flask and Mithril
Stars: ✭ 166 (-33.6%)
Mutual labels:  widget, dashboard
Legend
Legend builds and publishes Grafana dashboards for your services with prefilled metrics and alerts for your services.
Stars: ✭ 149 (-40.4%)
Mutual labels:  grafana, grafana-dashboard
Grafcli
Grafana CLI for quick and easy dashboards management.
Stars: ✭ 152 (-39.2%)
Mutual labels:  grafana, dashboard
Github Monitoring
Monitor your GitHub Repos with Docker & Prometheus
Stars: ✭ 163 (-34.8%)
Mutual labels:  grafana, dashboard
Stonky
A command line dashboard for monitoring stocks
Stars: ✭ 208 (-16.8%)
Mutual labels:  monitor, dashboard
Pfsense Dashboard
A functional and useful dashboard for pfSense that utilizes influxdb, grafana and telegraf
Stars: ✭ 208 (-16.8%)
Mutual labels:  grafana, dashboard
Grafana Influx Dashboard
Grafana InfluxDB scripted dashboard
Stars: ✭ 130 (-48%)
Mutual labels:  grafana, grafana-dashboard
Datav
📊https://datav.io is a modern APM, provide observability for your business, application and infrastructure. It's also a lightweight alternative to Grafana.
Stars: ✭ 2,757 (+1002.8%)
Mutual labels:  grafana, datadog
Laravel Database Schedule
Manage your Laravel Task Scheduling in a friendly interface and save schedules to the database.
Stars: ✭ 94 (-62.4%)
Mutual labels:  schedule, dashboard
Appmetrics
App Metrics is an open-source and cross-platform .NET library used to record and report metrics within an application.
Stars: ✭ 1,986 (+694.4%)
Mutual labels:  grafana, grafana-dashboard
Pi Hole Influx
A python daemon to send Pi-Hole stats for Grafana to InfluxDB
Stars: ✭ 126 (-49.6%)
Mutual labels:  grafana, grafana-dashboard
Opcache Dashboard
Set up properly and monitor your Zend OPcache with this dashboard that will help you checking memory, hits and status, configuring for optimal performance (warning you when cache full, validation, etc.) and reseting one or all scripts with one click.
Stars: ✭ 117 (-53.2%)
Mutual labels:  monitor, dashboard
Pingprom
Prometheus uptime monitoring quickstart
Stars: ✭ 107 (-57.2%)
Mutual labels:  grafana, monitor
Grafana
The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
Stars: ✭ 45,930 (+18272%)
Mutual labels:  grafana, dashboard
Iconshowcase Dashboard
A full-of-features, easy-to-customize, free and open source, Material Design dashboard for icon packs.
Stars: ✭ 197 (-21.2%)
Mutual labels:  widget, dashboard
Kube Opex Analytics
🎨 Kubernetes Cost Allocation and Capacity Planning Analytics Tool. Hourly, daily, monthly reports - Prometheus exporter - Built-in & Grafana dashboard.
Stars: ✭ 232 (-7.2%)
Mutual labels:  grafana-dashboard, dashboard

Pager Beauty CircleCI dependencies Status

Add concise PagerDuty on-call widget to your monitoring dashboard. Live Demo!

Who's on-call?

PagerDuty On Call

Active PagerDuty Incident Active PagerDuty Incident
PagerBeauty on Real Datadog Dashboard PagerBeauty on Real Datadog Dashboard
PagerBeauty on Grafana Dashboard PagerBeauty on Grafana Dashboard

Running on Heroku

Deploy to Heroku

The easiest way give PagerBeauty a run is one-click deployment using Heroku Button.
Refer to advanced PagerBeauty on Heroku documentation for manual deployments using Heroku CLI and keeping PagerBeauty up-to-date.

Running on AWS

PagerBeauty is available as a CloudFourmation template. Refer to advanced PagerBeauty on AWS manual.

Running with Docker

Docker repo: sergiitk/pagerbeauty

You can run PagerBeauty locally on your infrastructure using Docker.
Create .env file as instructed in configuration and run:

docker run --rm -p 8080:8080 --env-file=.env -it sergiitk/pagerbeauty:latest

Or set individual environment variables as needed:

docker run --rm -p 8080:8080 -e PAGERBEAUTY_PD_API_KEY=yourkey -e PAGERBEAUTY_PD_SCHEDULES=SCHEDL1,SCHEDL2 -it sergiitk/pagerbeauty:latest

Example running PagerBeauty using test key:

docker run --rm -p 8080:8080 -e PAGERBEAUTY_PD_API_KEY=y_NbAkKc66ryYTWUXYEu -e PAGERBEAUTY_PD_SCHEDULES=PJ1P5JQ,P538IZH -it sergiitk/pagerbeauty:latest

Running with Node

NPM repo: pagerbeauty

Setup PagerBeauty by following configuration section and run:

yarn add pagerbeauty
node -r esm node_modules/pagerbeauty/src/pagerbeauty.js

Configuration

Configure PagerBeauty with .env file or by exporting environment variables:

# For Docker compatibility, do not placed quotation marks around the values.
# https://docs.docker.com/compose/env-file/

# PagerDuty REST API v2 Access Key (Read-only)
# Docs: https://support.pagerduty.com/docs/using-the-api
PAGERBEAUTY_PD_API_KEY=yourkey

# Comma-separated list of PagerDuty schedule ids
# You can find schedule id in the URL of the schedule on PagerDuty website after symbol #
# For example, schedule https://example.pagerduty.com/schedules#PJ1P5JQ has id PJ1P5JQ
PAGERBEAUTY_PD_SCHEDULES=SCHEDL1,SCHEDL2

# (Optional) How often to refresh the schedules, in minutes.
# Default: 10.
# PAGERBEAUTY_REFRESH_RATE_MINUTES=10

# (Optional) Disable polling for active incidents.
# Default: false
# PAGERBEAUTY_INCIDENTS_DISABLE=true

# (Optional) How often to refresh active incidents, in minutes.
# Default: 1
# PAGERBEAUTY_INCIDENTS_REFRESH_RATE_MINUTES=5

# (Optional) Enable user phone fetching on schedule loading
# Default: false
# PAGERBEAUTY_LOAD_USER_CONTACT_METHODS=true

# (Optional) Highest logging level to include into application logs.
# One of: error, warn, info, verbose, debug, silly
# Default: info
# PAGERBEAUTY_LOG_LEVEL=verbose

# (Optional) Log format. One of:
# machine - Machine-readable JSON format
# human   - Human-readable colorized format
# Default: resolved to `human` for development and `machine` for production.
# PAGERBEAUTY_LOG_FORMAT=machine

# (Optional) The port for HTTP server to listen on.
# Default: 8080
# PAGERBEAUTY_HTTP_PORT=80

# (Optional) Enable basic HTTP authentication
# Default: disabled
# PAGERBEAUTY_HTTP_USER=basic_username
# PAGERBEAUTY_HTTP_PASSWORD=basic_password

# (Optional) Enable authentication access token (RFC6750)
# Note: embedding iframes that link to a page with basic HTTP name/password
# authentication is not supported by most modern browsers. To bypass it, you
# can set random access_token and append it to schedule URL. For example, if you can't embed schedule
# https://pb.example.com/v1/schedules/P538IZH.html, you can append your access token like so:
# https://pb.example.com/v1/schedules/P538IZH.html?acccess_token=your_token
# This link is embeddable now. Please use HTTPS.
# Default: disabled
# PAGERBEAUTY_HTTP_ACCESS_TOKEN=your_token

Adding to Datadog dashboard

Add PagerDuty to Datadog dashboard

  1. Open the schedules list in PagerBeauty. Make sure the app is running behind HTTPS
  2. Find the schedule you want to embed, copy its URL
  3. Open your Datadog dashboard, click Edit Board.
  4. Drag IFrame widget to the board
  5. Paste copied PagerBeauty schedule URL to IFrame URL on Datadog board
  6. Resize and save!

Add to Grafana dashboard

Add PagerDuty to Grafana dashboard

  1. Install AJAX plugin:
    grafana-cli plugins install ryantxu-ajax-panel
  2. Restart Grafana Server
  3. Open the schedules list in PagerBeauty
  4. Find the schedule you want to embed, open it, copy its URL
  5. Open your Grafana dashboard, click "Add Panel"
  6. Select AJAX panel
  7. Click Panel title -> Edit
  8. On Request tab, fill out:
    URL: paste copied PagerBeauty schedule URL
    Method: iframe
    Parameters: { theme: "grafana" }
  9. On General tab, set your panel title and check Transparent
  10. Close panel edit, resize and save!

FAQ

How it works?

PagerBeauty acts as a local cache server for PagerDuty schedules. It fetches and refreshes PagerDuty schedules in the background using secret PagerDuty API key and makes them available through web interface. This is done to protect your secret API key from public exposure. This means you'll need to run PagerBeauty as a service.

How to add my userpic?

PagerDuty uses Gravatar to manage profile photos. If you already have a Gravatar account, you can attach your PagerDuty login email to this account.

How can I set a custom timezone?

By default From and To fields are displayed in the timezone of the schedule.
You can override this by adding ?timezone=value to schedule URL. Use any timezone value supported by luxon. Examples:

Contributing

Contribution guide and step-by-step local development instructions.
The source code of Pager Beauty is maintained by @sergiitk. It's an Open Source project under MIT License. Contributions are welcomed. Follow the usual GitHub Pull Request process. Be nice.

Roadmap

  • 2019-04-01 – 2019-10-01: Maintentnce mode: security and depdendency updates.
  • 2020-10-01 — 2021-03-01: Major features, see Version 2.0.

Version 1.0

  • [x] Load and process on-calls
  • [x] JSON response
  • [x] HTML response
  • [x] HTML responsive layout
  • [x] Basic autorefresh
  • [x] MVP: Embed in Datadog dashboard as an iframe
  • [x] Show dates in local time
  • [x] Configurable refresh period
  • [x] HTTP Basic Authentication
  • [x] On-call TimeZone is loaded from the PagerDuty schedule settings
  • [x] Application logging
  • [x] Ajax refresh
  • [x] Automated Testing
  • [x] Automated Builds
  • [x] No limit on the total number of schedules supported
  • [x] Make on-call view red during an active incident
  • [x] HTTP authentication bypass support for embeds

Version 2.0

  • [ ] Built-in SSL Support
  • [ ] Next on duty

Version 3.0

  • [ ] Websocket refresh

Documentation and examples

  • [x] Live demo on Heroku
  • [x] Example: Heroku
  • [ ] Example: Custom SSL certificate using Docker
  • [ ] Example: Digital Ocean

Sponsors and Supporters

JW Player

Questions?

Ask me on Twitter: @sergiitk

License

Pager Beauty is released under the MIT License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].