[Hawkular-dev] Hawkular Metrics 0.3.3 - Release & Beyond

Michael Burman miburman at redhat.com
Sun May 3 04:37:49 EDT 2015


Hi,

My wish for version numbering in the future - this should have been called 0.4.0 because of extensive external API-changes. 0.3.3 would have been fine if the changes were just internal, but we should follow some sort of logic in the version numbering.

  - Micke

----- Original Message -----
From: "Stefan Negrea" <snegrea at redhat.com>
To: "Discussions around Hawkular development" <hawkular-dev at lists.jboss.org>
Sent: Friday, May 1, 2015 1:28:14 AM
Subject: [Hawkular-dev] Hawkular Metrics 0.3.3 - Release & Beyond

Hello Everybody,

I am happy to announce release 0.3.3 of Hawkular Metrics. The release is anchored by three major and notable changes: REST API reorganization, tenant id changes, and Docker + Kubernetes work.


1) REST API reoganization

- The API has been reorganized to follow a more traditional REST structure. 
- The numeric metrics have been renamed to Gauage. Going forward the term number will be used for an overarching category of metrics (gauge, counter, histograms, etc.). 
- The root of the project has been updated to be consistent with the rest of the Hawkular projects. The new root is http://host:port/hawkular/metrics

The attached pdf document has the comparison for the API changes between 0.3.1 and 0.3.3.


2) Tenant Id

The tenant id has been removed from the URL to either a header parameter or a query  parameter. The query parameter can be used in cases (such as curl)  where setting a header is not possible, difficult, or inconvenient. 

The concept of tenant will be an integral part of the project going forward. But we wanted more flexibility in the way the tenant id for a request is derived. So removing the tenant id from the URL will give us permanent &  consistent resource addresses (metrics and metric data points); and will gain a lot of flexibility on the security side. In the future, users could authenticate with a user/pass combo and the backend would transform that into a tenant id. If the same user later decides to use the tenant id header, the URL of the resources accessed with the user/pass combo would not change. Another expectation is that tenant id is not sufficient, it is typically a combo of id + secret; so we would have resorted to a header or query param for the second piece of information (the secret) in the long run anyway.

Here is an example of the change:

Existing URL:
/{tenantId}/gauge/{metricId}/data

New URL:
/gauge/{metricId}/data

Tenant id set via:
1) header - tenantId
2) query parameter - tenantId

There are two exceptions to this rule, /tenants and /db/{tenantid}/series.  The /tenants end-point will be changed into something different in the upcoming releases since it is mostly a management type API that does not  belong in the same place with the regular metrics endpoint. And /db/{tenantid}/series end-point is needed in this exact format for compatibility with Influxdb compatible services.

The attached pdf document includes the removal of the tenant id from the URL.


3) Docker and Kubernetes

Thanks to the amazing work done by Matt Wringe, we now have a subproject in Hawkular Metrics that can be used to create components to be run on Openshift/Fabric8 (https://github.com/hawkular/hawkular-metrics/tree/master/containers).

This includes:

a) A customized Cassandra docker image which uses a seed provider to automatically detect other nodes running behind the same service.

b) A standalone dockerized Hawkular Metrics image. This will startup a hawkular metrics instance which will automatically detect and connect to the Cassandra service.

c) A kubernetes application for a single step install into OpenShift or Fabric8. The zip can even be deployed via the drag-n-drop mechanism in the Fabric8 console!

This is the foundation for later integrations that would require the project package in the form of containers.


Github Release:
https://github.com/hawkular/hawkular-metrics/releases/tag/0.3.3

JBoss Nexus Maven artifacts:
http://origin-repository.jboss.org/nexus/content/repositories/public/org/hawkular/metrics/

Jira release tracker:
https://issues.jboss.org/browse/HWKMETRICS/fixforversion/12326937




Hawkular Metrics 0.3.4 and Beyond

Here is a list of features and enhancements that we planned for 0.3.4 and beyond. 
1) Gauge Aggregates - Long-term storage of numeric metrics at the expense of losing some fidelity. The design has been already presented and discussed during 0.3.3 release cycle. The task queue work has already been started by John. We expect at least an initial implementation to land in 0.3.4.
3) Go client - will help with integrating with third party metrics  collection framework. This work is the foundation for a Heapster sink.
4) Public Java API - following the work done in 0.3.1 for the core, the  goal is to separate the implementation from a public API and make that  available to clients
5) Update REST testing - while the current set of tests is a good gauge  for regressions, the overall coverage is still low. The plan for 0.3.2  is to increase coverage.
6) Improved docker and kubernetes support



A big "Thank you" goes to John Sanda, Thomas Segismont, Mike Thompson, Matt Wringe, and Heiko Rupp for their  project contributions. Special mentions go to Jeeva Kandasamy, Jirka  Kremser, and Michael Burman for their project help.



Thank you,
Stefan Negrea

Software Engineer


_______________________________________________
hawkular-dev mailing list
hawkular-dev at lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hawkular-dev


More information about the hawkular-dev mailing list