metrics

module
v0.0.0-...-11fc026 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 23, 2018 License: Apache-2.0

README

license Build Status

Metrics Query Engine (Version 1.0)

go get "github.com/square/metrics"

Metrics Query Engine(MQE) provides SQL-like interface to time series data with powerful functions to aggregate, filter and analyze.

For example, to find which 10 endpoints have the highest HTTP latency on your web application farm:

select connection.http.latency
| aggregate.sum(group by endpoint)
| filter.highest_mean(10)
where application = 'httpd'
from -2hr to now

Or maybe you want to compare cpus used vs allocated across your cluster for a particular application

inspect.cgroup.cpustat.usage | aggregate.sum,
inspect.cgroup.cpustat.total | aggregate.sum
where service match 'blueflood'
from -10m to now

Or you want to see how many cumulative seconds have been spent serving an API request.

transform.integral(
 aggregate.sum(transform.rate(`framework.actions.service-api.response_codes.X00`[type='200'])
 *
`framework.actions.service-api.response_times.histogram`[distribution='mean'])
)

where app = 'secretapp' and service = 'SecretService' and api = 'GetSecret'

from -1w to now

Why

Square collects millions of signals every few seconds from application servers and datacenters. The large volume of unstructured metric names makes it difficult to search for and discover metrics relevant to a particular host, app, service, connection type, or data center. Metrics Query Engine uses tagged metrics as a way to structure metric names so that they can be more easily queried and discovered.

Go Version

MQE supports Go 1.7 and up.

See wiki for installation, setup and development.

Directories

Path Synopsis
demo
builtin/transform
Package transform contains all the logic to parse and execute queries against the underlying metric system.
Package transform contains all the logic to parse and execute queries against the underlying metric system.
log
Package log is used to control logging within the square/metrics framework.
Package log is used to control logging within the square/metrics framework.
main
ruletester
program which takes - a rule file - a sample list of metrics and sees how well the rule performs against the metrics.
program which takes - a rule file - a sample list of metrics and sees how well the rule performs against the metrics.
web
web/static
Package static is dummy package to ensure that this directory is included in godep.
Package static is dummy package to ensure that this directory is included in godep.
web/static/js
Package js is dummy package to ensure that this directory is included in godep.
Package js is dummy package to ensure that this directory is included in godep.
Package metadata holds the interface for accessing metadata for indexing metrics.
Package metadata holds the interface for accessing metadata for indexing metrics.
query
parser
Package parser contains all the logic to parse
Package parser contains all the logic to parse
testing_support
assert
Package assert contains wrapper on top of go's testing library to make tests easier.
Package assert contains wrapper on top of go's testing library to make tests easier.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL