racker / gutsy Goto Github PK
View Code? Open in Web Editor NEWinternal dashboard bootstrap
License: Apache License 2.0
internal dashboard bootstrap
License: Apache License 2.0
Sometimes it would be great to have a full stack trace and the like for errors. Many errors are currently dumped at as a simple string to the user. Instead, we could dump out all sorts of things. Maybe node already has a good way of doing this?
Urls are case sensitive. This probably is not desired. For example this does not work:
http://dashboard.rax.io/p/reach
but this does:
http://dashboard.rax.io/p/Reach
middleware takes devops.json object and retrieves pager duty info (if any) and overwrites or adds to? ops contacts with on call rotation. Or create new field?
pager duty devops.json spec:
This looks close, but the metrics aren't so clear when there are a lot of them.
Certain apis take a long time and/or are rate limited and don't have a fine resolution in time. Use a simple internal cache with timestamps to sorta go around this.
This is an idea that I originally saw as a "new member init" script in a project. I would interactively take a person through entering passwords and usernames, sign them up for various systems (or at least email people who could), and then output a summary at the end.
Checking out code and running scripts works great for developers, but sometimes others folks want to be involved in various ways, eg leadership or customer support.
The idea here is that each dashboard would have a [join] button that did various things depending on creds and contacts in devops.json---or in some spec anyway:
There would also be a [leave] button.
For what can't be automated, either opens tabs at the correct URLs for the user, and/or emails appropriate people with a todo list and helpful urls + information.
Thoughts?
Something like "avg open time for bugs" or "weekly rate of defects opened and closed"
Figure out where this happened and revert it.
This only works for devops.json data that is hosted by github, rather than being a well known URI like originally envisioned.
Still it would be a nice feature when possible.
The errors list should probably include the API that generated the error so its easy to tell what setting is wrong, etc.
Add tests for settings against the schema from devops.json.
Alter load_devops to test against schema too maybe.
Add consistency checks for settings file.
--coverage is commented out from bin/tester because it doesn't work----shows NaN after the tests run. Would be fun if this worked. jscoverage port via whiskey test runner.
Javascript handles try/catch very strangely. See this article for the full story. This basically effects all of our async calls which may or may not fail silently now. A full review would probably not take long and be a good idea.
Would be nice to see dreadnot status on the release notes page to determine which merged branches are deployed.
I think most of these are just missing declarations and semicolons.
As it turns out, this is bad if you misspell a credential, as in version_one instead of versionone. Nothing happens and no feedback is given. Perhaps we should emit a warning somewhere if some related_api is specified but not used. This is obvious after the fact but surprisingly difficult to determine at the time.
Must use https://github.com/racker/devopsjson to validate.
Would be cool to send a URL to someone to share a list of release notes.
maybe this issue should go into devops.json not gutsy, but since gutsy is the only known user of devops.json....
but yeah, it would be nice if devops.json events were human readable.
get rid of mock request_maker and use nock https://github.com/flatiron/nock
This should improve error-handling quite a bit.
When a user clicks on their name on the high scores page, it should show the break-down of why they have the score they have.
Example: Reach's first defect on the list. It is closed. We should hide all closed defects.
Would be cool if events were a vertical timeline with the timestamps spaced out appropriately, and where now showed up, with a little countdown or color changing as now gets close to events.
The goal of gutsy is to make having a basic internal dashboard one-click (once a devops.json endpoint is created).
The deployment script should:
As a proof of concept, let's clone reach and use this script.
Kinda silly to have all three since they share a lot of data.
Something funny is going on so that only a single person shows up in leaderboard.
Using nock to mock API interaction might fix this, but it still seems wrong that this failing test would error out.
lucy@beethoven ~/raxbox/gutsy
(master) $ npm test
> [email protected] test /Users/lucy/raxbox/gutsy
> ./bin/test
/Users/lucy/raxbox/gutsy/tests/view_tests/test_index.js
test_example_minimum_none [OK]
test_example_simple_none [OK]
test_example_full_none [OK]
/Users/lucy/raxbox/gutsy/tests/view_tests/test_defects.js
test_example_minimum_only_versionone [OK]
test_example_simple_only_versionone [OK]
test_example_full_only_versionone [OK]
/Users/lucy/raxbox/gutsy/tests/view_tests/test_devhealth.js
test_example_minimum_only_github [OK]
test_example_simple_only_github [OK]
test_example_full_only_github [OK]
/Users/lucy/raxbox/gutsy/tests/middleware_tests/test_load_devops.js
test_example_minimum [OK]
test_example_simple [OK]
test_example_full [OK]
/Users/lucy/raxbox/gutsy/tests/middleware_tests/test_devops_directory_setter.js
test_example_minimum [OK]
test_example_simple [OK]
test_example_full [OK]
/Users/lucy/raxbox/gutsy/tests/middleware_tests/test_navbar.js
test_example_minimum [OK]
test_example_simple [OK]
test_example_full [OK]
/Users/lucy/raxbox/gutsy/tests/middleware_tests/test_github.js
test_example_minimum [OK]
test_example_simple [OK]
test_example_full [OK]
/Users/lucy/raxbox/gutsy/tests/middleware_tests/test_versionone.js
test_example_minimum [OK]
test_example_simple [OK]
test_example_full [OK]
/Users/lucy/raxbox/gutsy/tests/middleware_tests/test_newrelic.js
test_example_minimum [OK]
test_example_simple [OK]
test_example_full [OK]
/Users/lucy/raxbox/gutsy/tests/middleware_tests/test_pagerduty.js
test_example_minimum [OK]
test_example_simple [OK]
test_example_full__expected_timeout [FAIL]
Exception
AssertionError: null === "{\"message\":\"Account Not Found\",\"code\":2007}"
at Object.strictEqual (/Users/lucy/raxbox/gutsy/node_modules/whiskey/lib/assert.js:333:29)
at Object.isNull (/Users/lucy/raxbox/gutsy/node_modules/whiskey/lib/assert.js:74:14)
at /Users/lucy/raxbox/gutsy/tests/middleware_tests/base.js:40:16
at /Users/lucy/raxbox/gutsy/node_modules/async/lib/async.js:190:13
at /Users/lucy/raxbox/gutsy/node_modules/async/lib/async.js:116:25
at /Users/lucy/raxbox/gutsy/node_modules/async/lib/async.js:187:17
at /Users/lucy/raxbox/gutsy/node_modules/async/lib/async.js:491:34
at /Users/lucy/raxbox/gutsy/lib-cov/web/middleware/pagerduty.js:105:3
at IncomingMessage.<anonymous> (/Users/lucy/raxbox/gutsy/lib-cov/utils.js:73:3)
at IncomingMessage.emit (events.js:88:20)
timeout [TIMEOUT]
---------------------------------------------------------------------------------
Ran 30 tests in 22.085s
Successes: 29
Failures: 1
Timeouts: 1
Skipped: 0
FAILED
Test Coverage
+------------------------------------------+----------+------+------+--------+
| filename | coverage | LOC | SLOC | missed |
+------------------------------------------+----------+------+------+--------+
| web/middleware/index.js | 100.00 | 28 | 1 | 0 |
| web/middleware/logger.js | 8.70 | 59 | 23 | 21 |
| web/middleware/devops_directory_setter.js | 100.00 | 10 | 4 | 0 |
| web/middleware/load_devops.js | 65.00 | 58 | 20 | 7 |
| utils.js | 96.67 | 65 | 30 | 1 |
| web/urls.js | 100.00 | 5 | 5 | 0 |
| web/middleware/navbar.js | 100.00 | 19 | 6 | 0 |
| web/middleware/pagerduty.js | 68.75 | 78 | 32 | 10 |
| web/middleware/versionone.js | 39.02 | 98 | 41 | 25 |
| web/middleware/github.js | 56.03 | 288 | 141 | 62 |
| web/middleware/newrelic.js | 80.00 | 32 | 15 | 3 |
+------------------------------------------+----------+------+------+--------+
| 59.43 | 740 | 318 | 129 |
+----------+------+------+--------+
npm ERR! [email protected] test: `./bin/test`
npm ERR! `sh "-c" "./bin/test"` failed with 2
npm ERR!
npm ERR! Failed at the [email protected] test script.
npm ERR! This is most likely a problem with the gutsy package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! ./bin/test
npm ERR! You can get their info via:
npm ERR! npm owner ls gutsy
npm ERR! There is likely additional logging output above.
npm ERR!
npm ERR! System Darwin 10.8.0
npm ERR! command "node" "/usr/bin/npm" "test"
npm ERR! cwd /Users/lucy/raxbox/gutsy
npm ERR! node -v v0.6.11
npm ERR! npm -v 1.1.2
npm ERR! code ELIFECYCLE
npm ERR! message [email protected] test: `./bin/test`
npm ERR! message `sh "-c" "./bin/test"` failed with 2
npm ERR! errno {}
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /Users/lucy/raxbox/gutsy/npm-debug.log
npm not ok
Recreate some of the reports that reports.slicehost.com provides for Reach. Screenshots attached.
[Redacted screenshots of proprietary info.]
This includes most of utils and perhaps a few others. We should so something sane.
Involve designers and otherwise rethink dashboard layout and UX
The rules for where points come from---let's state those on this page somewhere.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.