Hello Everybody,
I submitted today a PR for a long standing JIRA:
https://issues.jboss.org/browse/HWKMETRICS-24 ; here is a related one:
https://issues.jboss.org/browse/HWKMETRICS-57 , and the PR:
https://github.com/hawkular/hawkular-metrics/pull/473
The JIRAs recommend splitting '*/data' endpoint in two separate endpoints,
'/raw' and '/stats'. There are two issues with the current
'*/data'. First,
the code was really hard to maintain because it was serving two purposes.
Depending on the input parameters, the endpoint would serve raw ingested
data in some cases and bucketed results in some other cases. The PR still
has the old code (since it got just deprecated in this release) and it's
not pretty. The second problem was the actual API interface. There was no
simple way to know exactly what you get back from the endpoint because
sometimes it would return simple data points and sometimes bucketed data.
This was based on the query parameters specified in the request. And to
make things worse, some parameters could not be mixed, for example, the
user could not limit or order bucketed results; but the documentation had
to include all under the same endpoint.
The plan is to deprecate existing '*/data' endpoints in the upcoming
release (0.15.0) and remove them in the release after that (0.16.0). That
gives enough time (roughly 2 months) for all existing projects to migrate
to the newer API. Does anybody see any problem with this timeline?
I expect the transition to be simpler because most of the consumers were
using '*/data' with the intent to get bucketed results, which is now
'*/stats'. So it is just a simple change in most cases.
Are there any projects negatively affected by this change in the long-term?
Does the change make sense? Is the API interface for retrieving data easier
to understand after the change?
Thank you,
Stefan Negrea
Software Engineer