Hawkular Metrics 0.22.0 - Release
by Stefan Negrea
Hello,
I am happy to announce release 0.22.0 of Hawkular Metrics. This release is
anchored by performance and compression enhancements.
Here is a list of major changes:
- *Compression*
- Prevent OutOfMemoryError on Cassandra when compression job runs (
HWKMETRICS-520 <https://issues.jboss.org/browse/HWKMETRICS-520>)
- Avoid compression job executing in a loop when execution falls
behind (HWKMETRICS-536
<https://issues.jboss.org/browse/HWKMETRICS-536>)
- Avoid future executions of compression job from not running if
Cassandra is shutdown abruptly (HWKMETRICS-518
<https://issues.jboss.org/browse/HWKMETRICS-518>)
- Added a flag to disable the compression job; the data will be
persisted and retrieved without compression (HWKMETRICS-524
<https://issues.jboss.org/browse/HWKMETRICS-524>)
- The block size for compression is now configurable (HWKMETRICS-545
<https://issues.jboss.org/browse/HWKMETRICS-545>)
- The compression job can now be triggered manually (HWKMETRICS-502
<https://issues.jboss.org/browse/HWKMETRICS-502>)
- *Server Clustering*
- The external alerter is now cluster-aware and will not process the
same request on multiple nodes (HWKMETRICS-515
<https://issues.jboss.org/browse/HWKMETRICS-515>)
- Schema updates are correctly applied when multiple servers are
started at the same time (HWKMETRICS-514
<https://issues.jboss.org/browse/HWKMETRICS-514>)
- Added Cassandra connection information to the status page and
created an admin version with detailed Cassandra cluster information (
HWKMETRICS-526 <https://issues.jboss.org/browse/HWKMETRICS-526>)
- Internal system metrics are now persisted under admin tenant; this
gives a good overview of the current system load (HWKMETRICS-550
<https://issues.jboss.org/browse/HWKMETRICS-550>)
- *REST API*
- Added endpoint to allow fetching of available tag names (
HWKMETRICS-532 <https://issues.jboss.org/browse/HWKMETRICS-532>)
- Fixed an issue where the API would report an internal server error
on invalid query (HWKMETRICS-543
<https://issues.jboss.org/browse/HWKMETRICS-543>)
- *Hawkular Alerting - Updates*
- End to end performance enhancements
- Major improvements to REST API documentation
<http://www.hawkular.org/docs/rest/rest-alerts.html>
- New cross-tenant endpoints for for fetching alerts
- Email and webhook action plugins are now packaged in the main
distribution (HWKMETRICS-552
<https://issues.jboss.org/browse/HWKMETRICS-552>)
*Hawkular Alerting - included*
- Version 1.4.0
<https://issues.jboss.org/projects/HWKALERTS/versions/12331986>
- Project details and repository: Github
<https://github.com/hawkular/hawkular-alerts>
- Documentation: REST API Documentation
<http://www.hawkular.org/docs/rest/rest-alerts.html>, Examples
<https://github.com/hawkular/hawkular-alerts/tree/master/examples>,
Developer
Guide
<http://www.hawkular.org/community/docs/developer-guide/alerts.html>
*Hawkular Metrics Clients*
- Python: https://github.com/hawkular/hawkular-client-python
- Go: https://github.com/hawkular/hawkular-client-go
- Ruby: https://github.com/hawkular/hawkular-client-ruby
- Java: https://github.com/hawkular/hawkular-client-java
*Release Links*
Github Release:
https://github.com/hawkular/hawkular-metrics/releases/tag/0.22.0
JBoss Nexus Maven artifacts:
http://origin-repository.jboss.org/nexus/content/repositorie
s/public/org/hawkular/metrics/
Jira release tracker:
https://issues.jboss.org/projects/HWKMETRICS/versions/12332012
A big "Thank you" goes to John Sanda, Matt Wringe, Michael Burman, Joel
Takvorian, Jay Shaughnessy, Lucas Ponce, and Heiko Rupp for their project
contributions.
Thank you,
Stefan Negrea
9 years, 1 month
*/raw/query doesn't return CORS allow headers
by Gareth Healy
I am using the grafana plugin with Hawkular on OCP. If we *dont* set the
CORS allowed value to all, then the grafana plugin gets AJAX errors due to
CORS. As shown by some simple cURL commands below.
Hawkular CORS set to: http://test.com
**/counters/stats examples:*
Fails due to Origin mismatch but still returns data - didn't expect to get
data back if a 400 is returned... not sure if thats a bug or not.
localhost:hawkular-client-java garethah$ curl -u admin:admin --header
"Hawkular-Tenant: unit-testing" --request GET "
http://192.168.99.100:8080/hawkular/metrics/counters/stats?bucketDuration..."
--header "Origin: http://bob.com" -vvv
* Trying 192.168.99.100...
* Connected to 192.168.99.100 (127.0.0.1) port 8080 (#0)
* Server auth using Basic with user 'admin'
> GET
/hawkular/metrics/counters/stats?bucketDuration=1d&percentiles=90.0&metrics=noofzsny&stacked=true
HTTP/1.1
> Host: 192.168.99.100:8080
> Authorization: Basic YWRtaW46YWRtaW4=
> User-Agent: curl/7.49.1
> Accept: */*
> Hawkular-Tenant: unit-testing
> Origin: http://bob.com
>
< HTTP/1.1 400 Bad Request
< Expires: 0
< Cache-Control: no-cache, no-store, must-revalidate
< X-Powered-By: Undertow/1
< Server: WildFly/10
< Pragma: no-cache
< Date: Mon, 05 Dec 2016 17:25:22 GMT
< Connection: keep-alive
< Content-Type: application/json
< Content-Length: 217
<
* Connection #0 to host 192.168.99.100 left intact
[{"start":1480929922811,"end":1481016322811,"min":-5.3461447394508227E18,"avg":1.13394506239459277E18,"median":1.41820444399757005E18,"max":6.5335287915888394E18,"sum":1.1339450623945933E19,"samples":1,"empty":false}]
Working example with correctly returned Access-Control-Allow-Origin:
localhost:hawkular-client-java garethah$ curl -u admin:admin --header
"Hawkular-Tenant: unit-testing" --request GET "
http://192.168.99.100:8080/hawkular/metrics/counters/stats?bucketDuration..."
--header "Origin: http://test.com" -vvv
* Trying 192.168.99.100...
* Connected to 192.168.99.100 (127.0.0.1) port 8080 (#0)
* Server auth using Basic with user 'admin'
> GET
/hawkular/metrics/counters/stats?bucketDuration=1d&percentiles=90.0&metrics=noofzsny&stacked=true
HTTP/1.1
> Host: 192.168.99.100:8080
> Authorization: Basic YWRtaW46YWRtaW4=
> User-Agent: curl/7.49.1
> Accept: */*
> Hawkular-Tenant: unit-testing
> Origin: http://test.com
>
< HTTP/1.1 200 OK
< Expires: 0
< Cache-Control: no-cache, no-store, must-revalidate
< X-Powered-By: Undertow/1
< Access-Control-Allow-Headers: origin,accept,content-type,hawkular-tenant
< Server: WildFly/10
< Pragma: no-cache
< Date: Mon, 05 Dec 2016 17:26:13 GMT
< Connection: keep-alive
< Access-Control-Allow-Origin: http://test.com
< Access-Control-Allow-Credentials: true
< Content-Type: application/json
< Content-Length: 217
< Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS, HEAD
< Access-Control-Max-Age: 259200
<
* Connection #0 to host 192.168.99.100 left intact
[{"start":1480929973847,"end":1481016373847,"min":-5.3461447394508227E18,"avg":1.13394506239459277E18,"median":1.41820444399757005E18,"max":6.5335287915888394E18,"sum":1.1339450623945933E19,"samples":1,"empty":false}]
**/counters/raw/query examples:*
Gets data but doesn't return any Access-Control-Allow-Origin headers thus
will fail in grafana.
localhost:hawkular-client-java garethah$ curl -u admin:admin --header
"Hawkular-Tenant: unit-testing" --request POST "
http://192.168.99.100:8080/hawkular/metrics/counters/raw/query" --data
"{order:\"ASC\",ids:[\"noofzsny\"]}" --header "Content-Type:
application/json" --header "Origin: http://test.com" -vvv
* Trying 192.168.99.100...
* Connected to 192.168.99.100 (127.0.0.1) port 8080 (#0)
* Server auth using Basic with user 'admin'
> POST /hawkular/metrics/counters/raw/query HTTP/1.1
> Host: 192.168.99.100:8080
> Authorization: Basic YWRtaW46YWRtaW4=
> User-Agent: curl/7.49.1
> Accept: */*
> Hawkular-Tenant: unit-testing
> Content-Type: application/json
> Origin: http://test.com
> Content-Length: 30
>
* upload completely sent off: 30 out of 30 bytes
< HTTP/1.1 200 OK
< Expires: 0
< Cache-Control: no-cache, no-store, must-revalidate
< X-Powered-By: Undertow/1
< Server: WildFly/10
< Pragma: no-cache
< Date: Mon, 05 Dec 2016 17:30:38 GMT
< Connection: keep-alive
< Content-Type: application/json
< Content-Length: 590
<
* Connection #0 to host 192.168.99.100 left intact
[{"id":"noofzsny","data":[{"timestamp":1480943333446,"value":-5346144739450823145},{"timestamp":1480943363446,"value":5257714416350875295},{"timestamp":1480943393446,"value":4269323419475977241},{"timestamp":1480943423446,"value":4996234959867023108},{"timestamp":1480943453446,"value":-4477830536950343320},{"timestamp":1480943483446,"value":3744561193794180662},{"timestamp":1480943513446,"value":-3619119654582223963},{"timestamp":1480943543446,"value":6533528791588839899},{"timestamp":1480943573446,"value":225819548751014015},{"timestamp":1480943603446,"value":-244636774898588607}]}]
Have i missed something in the grafana / hawkular setup? or is this a bug?
Cheers.
9 years, 1 month
hawkular wildfly agent release with jmx support
by John Mazzitelli
Hawkular WildFly Agent 0.25.0.Final was just released - this has Jolokia support put back in, as well as new local JMX support. So this means just like we have remote and local DMR managed servers, we now have remote and local JMX managed servers.
There are integration tests that test both Jolokia and local JMX support.
9 years, 1 month