GithubHelp home page GithubHelp logo

aaronpederson / pagerduty-dashboard Goto Github PK

View Code? Open in Web Editor NEW

This project forked from telus-archive/pagerduty-dashboard

0.0 1.0 0.0 296 KB

PagerDuty dashboard powered by Node and Angular

License: MIT License

JavaScript 63.37% HTML 16.10% CSS 20.53%

pagerduty-dashboard's Introduction

PagerDuty Dashboard

Dependency Status devDependency Status

Grabs services from PagerDuty, groups them, and then highlights issues. For details on the grouping process, refer to the "Conventions" section below.

Docker Image

Running the gondek/pagerduty-dashboard docker image starts the dashboard with the mock data. For deployment, you will have to copy in your API information. You could use a Dockerfile like this (where config.json contains the API information):

FROM gondek/pagerduty-dashboard
ADD ./config.json /opt/pagerduty-dashboard/

Setup

  1. Install Node.js and Gulp
  2. Copy config.sample.json to config.json, enter your API information, and change "mock" to false.
  3. Install dependencies: npm install
  4. Build the front-end/client: gulp
  5. Start the back-end/server: node app.js

You can then access the page at localhost:3000 (or at whatever port was configured).

During development, running gulp dev will restart the server and/or run builds when files change.

To use the sample data, set "mock" to true to config.json.

Custom View Configuration

To configure how the dashboard functions, go to localhost:3000/#/customize and note down the generated URL.

Conventions

These rules determine how the dashboard processes and displays data.

"Core" vs. "Other" Services

A service that contains [dashboard-primary] anywhere in its description is a core service. Core services get separated into core groups. The remaining services get put into the "Other" group.

"Core" Groups

Core groups are generated from the core services. A colon acts as a separator between the group and service within the service name (eg. <group>: <service>). In the interface, these services are labeled as "features". Features with names of <group>: Site or <group>: Server get separated and enlarged.

Core groups can have dependencies, which are specified in their services. To specify a dependency, add [dashboard-depends|Some Service,Dependency.*] to the service's description. Each comma-delimited entry can be a service name (Some Service) or a regular expression (Dependency.*). Dependencies of dependencies do not get added (i.e. dependencies are only followed to a depth of 1). In the interface, these dependencies are labeled as "services".

A core group's status is only determined from its features (main services) and not its dependencies.

"Other" Group

If one or more services within the other group are failing, the group gets broken up into two pieces, one holding the offline/failing services and the other holding the online/okay services.

Ideas

  • Play sound on status change (or other event)
  • Display assigned users of failing services/features
  • Dependencies: Allow dependency chains of more than depth 1. Dependency failures trickle up the chain:
    • Immediate (distance 1) dependency failures give the dependent a status of dependency-down (a status worse than active and better than warning)
    • Upstream (distance >1) dependency failures give the dependent a status of dependency-degraded (a status worse than active and better than dependency-down)
    • The new mapping of status numbers would be: ..., active=2, dependency-degraded=3, dependency-down=4, warning=5, ...
    • The two new statuses could have special colors or other ui changes (exclamation or question marks).
  • Spin-off project: False-positive analysis and dampen issues from services that tend to fix themselves

pagerduty-dashboard's People

Contributors

gondek avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.