[Hawkular-dev] Proposal for Query DSL

John Sanda jsanda at redhat.com
Mon Apr 17 22:33:50 EDT 2017


Hi Ben,

Comments inline...

> On Apr 17, 2017, at 6:10 PM, Benjamin Heiskell <bheiskell at datto.com> wrote:
> 
> Hey all,
> 
> I recently deployed Hawkular because I found its scaling model appealing. It has been working well for our basic monitoring usage when combined with Grafana.
> 
> One of my consumers is trying to graph KPIs that involve cross-metric mathematics like sums, division, and moving averages (i.e., post-ingress transformations). I looked into how to accomplish this with Hawkular, but I didn't see any obvious way to do it. The stats endpoint seems to only support aggregations on a single metric/tag at a time. I'm finding that we can't visualize these metrics the same way you can with other TSDBs like Graphite/Prometheus.

The stats endpoints actually do support querying across multiple metrics; however, docs are really lacking which makes it that much easier to miss. I have some docs updates underway. I will try to get to include sections on stats queries. Let me provide a few examples for now.

GET /hawkular/metrics/gauges/stats?tags=$tagsQuery

where tagsQuery might be like:

    'hostname=host1' 

    'hostname=host1 AND env=stage’

    'hostname=h <http://myserver.com/>ost1 OR hostname=host2’

    'hostname IN [host1, host2, host3]'

    'hostname NOT IN [host4, host5]’

The /gauges/stats endpoints supports all the other parameter that are supported by /gauges/{id}/stats. There is a corresponding endpoint for counters:

GET /hawkular/metrics/counters/stats?tags=$tagsQuery

You can also query for rates:

GET /hawkular/metrics/counters/rates/stats=$tagsQuery

Again, these endpoints all support the same query parameters.

There are POST version as well where the query parameters are instead specified as JSON in the request body.

POST /hawkular/metrics/gauges/stats/query
POST /hawkular/metrics/counters/stats/query

The POST endpoints were added in support of the Grafana data source plugin. See https://issues.jboss.org/browse/HWKMETRICS-410 <https://issues.jboss.org/browse/HWKMETRICS-410> and https://issues.jboss.org/browse/HWKMETRICS-465 <https://issues.jboss.org/browse/HWKMETRICS-465> for background on the POST endpoints. 

There are some other endpoints that provide batch query support. I will save the details on those since are not inquiring about them.
> 
> I did a little research, and found Heiko Rupp's blog post on HawkFX where he seems to already be exploring this idea [1]. Perhaps the query language item on the 2017 road map refers to incorporating this?
> 
> I would like to assist in developing this feature. Given that there is already a tags DSL, it seems like it would make sense to extend that to support metric transformations.
> 
> Grafana is also considering adding this to Grafana itself, but it doesn't look like the ticket has any traction [2]. Additionally, shipping potentially megabytes of data to Grafana (or the user's browser) to aggregate doesn't seem ideal.
> 
> I documented a few TSDB DSLs styles here [3].
> 
> What do you all think?

Absolutely agree that Hawkular Metrics would benefit greatly from query language. It would compliment the Grafana plugin nicely. Contributions of any kind, mailing list, IRC (#hawkular) discussion, pull requests, etc, are always welcomed and appreciated. I suggest creating a ticket at https://issues.jboss.org/secure/CreateIssue!default.jspa <https://issues.jboss.org/secure/CreateIssue!default.jspa> (be sure to select Hawkular Metrics for the project.

> 
> Thanks,
> Ben
> 
> [1] http://pilhuhn.blogspot.com/2016/09/computed-metrics-for-hawkfx.html <http://pilhuhn.blogspot.com/2016/09/computed-metrics-for-hawkfx.html>
> [2] https://github.com/grafana/grafana/issues/3677 <https://github.com/grafana/grafana/issues/3677>
> [3] https://gist.github.com/bheiskell/25af2543ee8588f70895b0311ef291d3 <https://gist.github.com/bheiskell/25af2543ee8588f70895b0311ef291d3>
> 
> _______________________________________________
> hawkular-dev mailing list
> hawkular-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/hawkular-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/hawkular-dev/attachments/20170417/3b7031b3/attachment-0001.html 


More information about the hawkular-dev mailing list