Git Product home page Git Product logo

graphite-graph-dsl's People

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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

graphite-graph-dsl's Issues

Allow setting colorList / template on a graph

Hi, Thanks for the great project. I would love to see the colorList/template property supported, which would allow specifying, per graph/target the colours to use. When using it directly you can specify a colorList directly after the target in the url, and it will cycle through those colours instead of the default. 'template' also lets you use a predefined set of colours from graphite.

specify output format

Graphite supports multiple output formats as a administrator I should be able to specify the format I want my data displayed in. The list of formats can be found at http://graphite.readthedocs.org/en/0.9.10/render_api.html#format.

It would be nice to specify the default in config/gdash.yaml. Having the ability to override the default at the graph level would be even nicer.

Possible DSL
title "CPU Usage"
vtitle "percent"
area :stacked
description "CPU Usage"
format :svg

give possibility to use substr() instead of alias() for some fields

The default behaviour of using alias() to force a meaningful label for a field really makes sense.

Although, sometimes we'd like to use graphite's abitilty to fetch a series of values instead of just one. Using alias() on a series of values traces lines for all values in the series but creates only one label for all of them.

One example of such a graph, that I was mentioning by e-mail could be that one wants to get the top 10 domains from a web server that generate the most traffic:

substr(highestAverage(nodes.*.apache.bytes, 10), 1, 2)

Since we don't know which ones will come out, we can't just enumerate the 10 fields.

It would be interesting to be able to make "field" use substr instead of alias. It could be another construct, but it would have pretty much the same properties as "field".. and it would still be possible to use the graphite functions that fetch multiple values in the :data argument to "field".

So, I would suggest having something like :substr => [being, end] in "field" to replace the alias.

Don't want to be forced to specify field name

I'm not sure if I've missed something in the documentation but I'm frustrated that I'm forced to specify a field name in the graph DSL.

In the Graphite Browser, I can use the following graph target:

groupByNode(request.browser.*.rate, 2, 'sumSeries')

The wildcard represents a browser (e.g. Chrome, Safari etc.). In the Graphite Browser the graph is generated with a correctly labelled legend - i.e. one field per browser type.

However, when I use the graph DSL like this:

field :browser, :data => "groupByNode(request.browser.*.rate, 2, 'sumSeries')"

Every item in the legend is named "browser" which is clearly not what I'm after! Is there any workaround to this? Ideally specifying a name for a field would be optional.

Version bump

Would you please bump the version? Lots of useful stuff happened recently.

Add support for exclude function

Not sure if this is currently possible due to the double quotes required by exclude. Is there a way to escape quotes from the :data definition?

From the graphte doc:
exclude(seriesList, pattern)

Takes a metric or a wildcard seriesList, followed by a regular expression in double quotes. Excludes metrics that match the regular expression.

Issue when displaying a mix of Stacked and Line Graph

Hi,
I ran into a couple of issues when plotting the following scenario -

Metrics
Server1 - Requests Served
Server2 - Requests Served
Total (Server1 + Server2) - Requests Served

Desired Plot
Server1 and Server2 are stacked.
Total is displayed as a line.
Legend - CactiStyle for all three metrics

Setting the area: to stacked in the DSL stacks everything and thus giving the impression that the total is really high.

I tried the stacked function in Graphite

Using the graphite composer ->
/render?
target=stacked(ip-10-245-39-2.requests)&target=stacked(ip-10-244-221-182..requests)&target=sumSeries(ip*..requests)

This works as expected - giving me the desired plot, but I discovered a bug in the CactiStyle Legend - graphite-project/graphite-web#115

I would love to hear any suggestions on the best approach here.

nesting subdirectories under template dir doesn't work

Hi,
I wanted to group dashboards by nesting subdirectories. R.I. mentioned you could do this here: http://www.devco.net/archives/2011/10/08/gdash-graphite-dashboard.php/comment-page-1#comment-126137

But it doesn't work for me:

root@graphite:/opt/gdash/graph_templates/dashboards# tree
.
|-- dash1
| |-- dash.yaml
| |-- proc-stat-cpu.graph
| |-- vmstat-cpu.graph
| |-- vmstat-io.graph
| |-- vmstat-memory.graph
| -- vmstat-procs.graph -- dash2
-- nested |-- dash.yaml |-- proc-stat-cpu.graph |-- vmstat-cpu.graph |-- vmstat-io.graph |-- vmstat-memory.graph -- vmstat-procs.graph

When I go to the app, it only lists dash1.

Everything else is working great.

Thanks for your help,
Brian

Add support for summarize and nonNegativeDerivative

Hello,
I've counters in my metrics, like total numbers of search executed.
When I want to graph these as search rate per minute, derivative() oder derivative => true in the DSL doesn't work, but I need summarize(nonNegativeDerivative(series, '1min')) for the outcome to be correct.
It would be nice to get this in the DSL, both nonNegativeDerivative instead of derivative and summarize added to the call.
The other use case which should be kept in mind is that when I compute the search rate per minute over the whole cluster, i use the call
summarize(sumSeries(nonNegativeDerivative((*.mysearchcount)), '1min')
which still should be supported, if not integrated into the DSL syntax.
Thanks for considering my feature request

alias_by_node and alias_sub should not be mutually exclusive

if target[:alias_by_node]
graphite_target = "aliasByNode(#{graphite_target},#{target[:alias_by_node]})"
elsif target[:alias_sub_search]
graphite_target = "aliasSub(#{graphite_target},"#{target[:alias_sub_search]}","#{target[:alias_sub_replace]}")"

Is there a reason for this being if/elsif? In graphite you can use the two in combination.

graph_columns

I cant seem to be able to override the default graph_columns in a graph-specific dash.yaml. No matter what I do, the central gdash.yaml setting is used.

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.