Skip to content

0.3.3

Compare
Choose a tag to compare
@stefannegrea stefannegrea released this 30 Apr 22:07
· 1985 commits to master since this release

Three major and notable changes are part of this release: 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 path to either a header parameter or a query parameter. The query parameter is to 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 addresses for resources (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 a tenant id header, the URL of the resources he just 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).

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 which 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.

A big "Thank you" goes to @jsanda, @tsegismont, @mtho11, @mwringe, and @pilhuhn for their project contributions. Special mentions go to @jkandasa, @Jiri-Kremser , and @burmanm for their project help.