Giter Site home page Giter Site logo

calibreapp / geckoboard Goto Github PK

View Code? Open in Web Editor NEW
24.0 4.0 5.0 412 KB

Receive Calibre snapshot webhooks, push to Geckoboard datasets.

Home Page: https://calibreapp.com/docs/geckoboard

License: GNU General Public License v3.0

JavaScript 82.93% Handlebars 17.07%
geckoboard metrics calibre dashboard performance performance-dashboard

geckoboard's Introduction

Calibre Metrics on a Geckoboard Dashboard 📈

Calibre metrics on a Geckoboard preview

Tldr; setup guide

  • Get your Geckoboard API key
  • Deploy this app to Heroku Deploy
  • Visit the url of the heroku app you just deployed to find the webhook url (<your-deployed-app>.herokuapp.com/webhook)
  • For each site that you want to report metrics from, create a new webhook (Calibre→Site→Settings→Integrations) and paste in the webhook URL
  • You‘re done. Time to make the web fast. 🎉

Settings

  • GECKOBOARD_API_KEY - The API key from your Geckoboard account
  • METRIC_WHITELIST - (Optional configuration) Eg: visually-complete,oncontentload (Full list available below).

Metrics Calibre outputs

As of writing, Calibre outputs the following metrics. From time to time, new metrics will become available and this list will be updated.

  • console-warnings
  • speed-index
  • visually-complete
  • firstrender
  • lighthouse-best-practices-score
  • lighthouse-accessibility-score
  • lighthouse-performance-score
  • lighthouse-pwa-score
  • first-contentful-paint
  • first-meaningful-paint
  • dom-size
  • estimated-input-latency
  • first-interactive
  • consistently-interactive
  • json-size-in-bytes
  • image-size-in-bytes
  • font-size-in-bytes
  • js-size-in-bytes
  • css-size-in-bytes
  • html-size-in-bytes
  • page-wait-timing
  • page-size-in-bytes
  • asset-count
  • onload
  • oncontentload

Step by step walk through

All the links and reference that you need are available at the top of this README.

2

Visit the Geckoboard account details page, copy your API Key.

Click this deploy button:

Deploy

Name the application, something like yourcompany-calibre-geckoboard.

3

Paste in your Geckoboard API Key.

4

5

Optional step - Add a comma separated list of metrics that you’d like sent to Geckoboard. (Leaving this blank means that Calibre will deliver ALL of the metrics that it records to Geckoboard)

6

Click Deploy.

Once the app has been deployed, click the view button.

7

Copy the '/webhook' URL.

8

Go to your Calibre account.

For each site that you want to report metrics from, create a new webhook (Calibre → Site → Settings → Integrations) and paste in the webhook URL

9

Check "Snapshot", and save the notification.

11

At the end of every snapshot Calibre will send the collected metrics to this app using the webhook you just set up. This app will format those metrics for Geckoboard and send it using the Geckoboard API key.

Once a snapshot has been completed, visit your Geckoboard account and click 'Add widget'.

12

Choose 'datasets' as the source. You should now see Calibre metrics 👍

13

For timeseries charts, it can be valuable to 'split' metrics by 'Device profile'. In the screenshot example below, you’ll notice that we have two profiles "Chrome Desktop" and "iPhone 6, 3G connection".

14

You did it! Great work. 🏆


Troubleshooting

If you’ve set everything up, run some snapshots and there appears to be no new Calibre datasets in your Geckoboard account, try running heroku logs --tail --app YOUR_APP_NAME_HERE to get a log from the deployed application.

If you think you’ve discovered a bug, issue or have ideas for how to improve calibre-geckoboard, please file an issue or raise a PR. (ps, We’ll send stickers and eternal 👏 for PRs)

geckoboard's People

Contributors

benschwarz avatar dependabot-preview[bot] avatar dependabot[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

geckoboard's Issues

How does Geckoboard differentiate data from diff sites configured in calibre?

I have a need to create different dashboards based on different sites that are configured in my calibre account? After following your instructions on this github project, am not sure where is the distinction made on the geckoboard side for specific site's dataset.
Do I need to create a new heroku app every time I need to see data from a new site on calibre?
If so, how do I create a gecko dashboard that shows the calibre dataset from a specific site?

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.