Librato metrics support #31

Merged
merged 30 commits into from Apr 2, 2013

Conversation

Projects
None yet
3 participants
Collaborator

roidrage commented Jul 8, 2012

This pull request brings support for Librato Metrics. Currently it replaces the Graphite functionality entirely, but the goal is to extract both ways to fetch metrics as a sort of pluggable transport.

Notable distinctions between both ways of fetching metrics are mostly that Graphite supports fetching multiple metrics at once and Librato Metrics doesn't. The code has changed around that a bit.

The implementation has moved from multi-dimensional arrays towards using hashes indexed by metric name instead.

Note that this is a work in progress.

Discuss!

roidrage added some commits Jul 7, 2012

Support for Librato Metrics.
Refactored most of the JavaScript for this, as Librato
doesn't support fetching multiple metrics in one requests.
Most data structures were moved from multi-dimensional arrays
to hashes indexed by the metric's target.
Support Librato's display transforms.
Also remove initialization or URL on load.
Restore old metric width.
Don't round down metrics > 2. Temporary fix as this makes
2.97 be rounded down to 2.
Support for fetching specific time ranges.
Resuming live feed works as well.
Index metrics by name and source.
Allows having the same metric with different source
multiple times.
Don't barf on empty measurements.
Also avoid scoping issues with the metric's name by explicitly
handing it over to the callback.

👍 Let me know if there's anything we can do to help with this.

roidrage added some commits Jul 27, 2012

Extract Librato Metrics code.
Basis for supporting multiple transports.
Extract Tasseo object.
Includes the common code that should be the same with every transport.
Collaborator

roidrage commented Jul 27, 2012

Started extracting a common Tasseo object and a LibratoMetrics transport. Looking good so far. Some more clean-up and then I'll re-add Graphite support.

Owner

obfuscurity commented Jul 27, 2012

🍰

@obfuscurity obfuscurity referenced this pull request in monitorama/hackathon Mar 6, 2013

Closed

Librato support for Tasseo #1

Collaborator

roidrage commented Mar 29, 2013

Remaining tasks:

  • Merge upstream changes
  • Split out a different backends for Graphite and Librato
  • Make backend configurable
  • Profit
Collaborator

roidrage commented Mar 29, 2013

Collaborator

roidrage commented Mar 29, 2013

There may be some upstream changes that may have gotten lost along the way, but I'll go through everything again to make sure I've included it.

roidrage added some commits Mar 29, 2013

Extract a Graphite backend.
This extracts some more common things into the Tasseo module,
makes configuration dependent on the environment variables and cleans
up a few things to rectify differences between fetching metrics from
Graphite and Librato.
Merge branch 'obfuscurity-master' into merge-upstream-librato
Conflicts:
	lib/tasseo/views/index.haml
	public/j/tasseo.js
Collaborator

roidrage commented Apr 1, 2013

It's a done deal.

Collaborator

roidrage commented Apr 1, 2013

Need to update the documentation to reflect the configuration updates.

Owner

obfuscurity commented Apr 1, 2013

👑💩

I'll take a look at this later tonight, test it against real data, and then merge if 🆗.

👏👏👏

Collaborator

roidrage commented Apr 1, 2013

Probably going to extract some more things into separate JS files and figure out the common API a little bit better too, so one could theoretically add new backends easily.

Owner

obfuscurity commented Apr 2, 2013

Yeah, there's some housekeeping I'd like to do but it looks good to merge in and do it there.

obfuscurity added a commit that referenced this pull request Apr 2, 2013

@obfuscurity obfuscurity merged commit da33263 into obfuscurity:master Apr 2, 2013

1 check passed

default The Travis build passed
Details
Collaborator

roidrage commented Apr 2, 2013

❤️

I'll get cracking on that clean-up work :)

Owner

obfuscurity commented Apr 2, 2013

Hmm, there might be a bug in the CORS stuff for the Graphite backend. I pushed master to production and it's broken for us.

Collaborator

roidrage commented Apr 2, 2013

I was only able to test against your Graphite unfortunately, sorry :(

Owner

obfuscurity commented Apr 2, 2013

Argh, disregard my last LAST comment (which I've since deleted). In the short time it took me to make that comment I forgot that I'd pushed the previous version back to production to fix things. So indeed, master is broken for us.

Collaborator

roidrage commented Apr 2, 2013

Any errors in the log I could work with?

Owner

obfuscurity commented Apr 2, 2013

Nah, it's ok. It was mismatched credentials with our internal proxy. I still can't explain why it worked with the old version + old creds, but it seems to be working fine with the new version + new creds. Sorry for the noise.

Owner

obfuscurity commented Apr 2, 2013

👍❤️💥⚡️

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment