Skip to content

Releases: hawkular/hawkular-metrics

0.22.0

06 Dec 17:30
Compare
Choose a tag to compare

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)
    • Avoid compression job executing in a loop when execution falls behind (HWKMETRICS-536)
    • Avoid future executions of compression job from not running if Cassandra is shutdown abruptly (HWKMETRICS-518)
    • Added a flag to disable the compression job; the data will be persisted and retrieved without compression (HWKMETRICS-524)
    • The block size for compression is now configurable (HWKMETRICS-545)
    • The compression job can now be triggered manually (HWKMETRICS-502)
  • Server Clustering
    • The external alerter is now cluster-aware and will not process the same request on multiple nodes (HWKMETRICS-515)
    • Schema updates are correctly applied when multiple servers are started at the same time (HWKMETRICS-514)
    • Added Cassandra connection information to the status page and created an admin version with detailed Cassandra cluster information (HWKMETRICS-526)
    • Internal system metrics are now persisted under admin tenant; this gives a good overview of the current system load (HWKMETRICS-550)
  • REST API
    • Added endpoint to allow fetching of available tag names (HWKMETRICS-532)
    • Fixed an issue where the API would report an internal server error on invalid query (HWKMETRICS-543)
  • Hawkular Alerting - Updates
    • End to end performance enhancements
    • Major improvements to REST API documentation
    • New cross-tenant endpoints for for fetching alerts
    • Email and webhook action plugins are now packaged in the main distribution (HWKMETRICS-552)

Hawkular Alerting - included

Hawkular Metrics Clients

JBoss Nexus Maven artifacts:
http://origin-repository.jboss.org/nexus/content/repositories/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.

0.21.5

06 Dec 19:10
Compare
Choose a tag to compare

Contains the following fixes:

  • HWKMETRICS-539 - Fix divergence in schema upgrade scripts
  • HWKMETRICS-536 - Compression job can execute in loop when execution falls far behind
  • HWKMETRICS-540 - Update to Alerting 1.3.2.Final
  • HWKMETRICS-538 - Update infinispan configuration
    to contain correct cache configuration

0.21.4

06 Dec 19:07
Compare
Choose a tag to compare

Contains the following fixes:

0.21.3

06 Dec 19:05
Compare
Choose a tag to compare

Contains the following fixes:

  • HWKMETRICS-520 - Cassandra crashes with OutOfMemoryError when compression job runs
  • HWKMETRICS-515 - Make external alerter cluster-aware
  • HWKMETRICS-516 - Make batch size configurable in InsertedDataSubscriber
  • HWKMETRICS-518 - Future executions of compression job may not run if Cassandra shutdown abruptly
  • HWKMETRICS-524 - Disable option needed for compression job
  • HWKMETRICS-531 - InsertedDataSubscriber not using configured value for buffer size

0.21.2

25 Oct 16:57
Compare
Choose a tag to compare

Contains the following fix:

0.21.1

25 Oct 16:56
Compare
Choose a tag to compare

Contains the following fix:

  • HWKMETRICS-517 - Hawkular Metrics fails due to classpath issues with combined EAR.

0.21.0

25 Oct 17:59
Compare
Choose a tag to compare

This release is anchored by performance enhancements and general fixes.

Here is a list of major changes:

  • Cassandra
    • Cassandra 3.0.9 is now the supported version of Cassandra.
    • Note: this is a rollback from previously supported version of 3.7 due to Cassandra community recommendations for stability and production deployment. Cassandra 3.7 or 3.9 are still compatible but development and testing now use 3.0.9 release.
  • Compression
    • Fixed an issue that allowed duplicate instances of the compression job to get scheduled on server restart (HWKMETRICS-492)
    • Improved the fault tolerance of the compression job (HWKMETRICS-494)
    • Improved the performance of the merge process for reading compressed data (HWKMETRICS-488)
    • Fixed wrong ordering when fetching compressed and uncompressed data (HWKMETRICS-506)
    • Compression job provides back pressure (HWKMETRICS-500)
    • The job scheduler now handles failure scenarios (HWKMETRICS-505)
  • Cassandra Schema
    • Fixed an issue where the server can fail to start due to Cassalog being in inconsistent state (HWKMETRICS-495)
    • gc_grace_second is set to zero for single node clusters (HWKMETRICS-381)
  • API Updates
    • Inserting data points has server side retries to increase the fault tolerance for simple error scenarios (HWKMETRICS-510)
    • fromEarliest parameter is now supported in all query endpoints (HWKMETRICS-445)
    • Non-existant tag queries are now supported via !tag:* format; example: !partition:* (HWKMETRICS-480)
  • Configuration
    • The configuration options did not have a consistent naming scheme. hawkular-metrics, hawkular.metrics, and hawkular prefixes were used along no prefixes at all.
    • In this release the naming schema has been standardized to hawkular.metrics.* for metrics specific configuration and hawkular.* for general configuration.
    • Here is list of all configuration options currently available: ConfigurationKey
    • For more details: HWKMETRICS-508

Hawkular Alerting - included

Hawkular Metrics Clients

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

Jira release tracker:
https://issues.jboss.org/projects/HWKMETRICS/versions/12331718

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.

0.20.1

25 Oct 16:58
Compare
Choose a tag to compare

Contains the following fixes:

  • HWKMETRICS-501 - ClassLoader issue (AvailabilityType,fromByte() not found)
  • HWKMETRICS-507 - InsertedDataSubscriber does too many calls to AlertService.sendData()

0.20.0

06 Oct 14:54
Compare
Choose a tag to compare

This is a major release anchored by the inclusion of Hawkular Alerting in the distribution, a brand new compression algorithm, and numerous API enhancements and fixes.

Hawkular Metrics + Alerting

Hawkular Metrics now includes Hawkular Alerting out of the box; it's no longer necessary to install and manage two separate components. Hawkular Metrics delivers a single EAR file containing components from both projects. Incoming metric data is efficiently filtered and evaluated, generating alerts and events for defined triggers. The combined EAR artifact is the primary binary distribution of Hawkular Metrics going forward. For more details: HWKMETRICS-491

Hawkular Alerting Details

Deployment Notes

  1. Deployment Naming
    • The new EAR should be deployed as 'hawkular-metrics.ear' in WildFly. This naming is required to allow for proper dependencies to be established by the EAR components.
  2. standalone.xml Configuration
    • The following snippet must be added to standalone.xml to support the Hawkular Alerting component. Add this additional cache-container entry after the existing cache-container entries:
<cache-container name="hawkular-alerts" module="org.jboss.as.clustering.infinispan">
    <local-cache name="partition"/>
    <local-cache name="triggers"/>
    <local-cache name="data"/>
    <local-cache name="publish"/>
    <local-cache name="schema"/>
</cache-container>

Usage Notes

To use Hawkular Alerting with Hawkular Metrics there is a naming convention when defining trigger conditions. For a metric with name 'X', the alerting DataId to reference it will be 'X', where the depends on the metric's type. For example, let's consider a metric with name 'HeapUsed' and type 'gauge'. This example defines a trigger condition to test if the used heap exceeded 80%: hm_g_HeapUsed > .8. The 'hm_g' prefix indicates that HeapUsed is a gauge.

Because Hawkular Metrics allows the same metric name for different types, the prefix is needed to make clear the target metric. The prefixes are:

  • hm_a: availability
  • hm_c: counter
  • hm_cr: counter rate
  • hm_g: gauge
  • hm_gr: gauge rate
  • hm_s: string

Compression

Hawkular Metrics will now compress all the data with a compression scheme based on Facebook's Gorilla paper. A job will be run every two hours that compresses data received during the 2 hour block since last compression (there's one hour time for out-of-order writes to be written to the Cassandra). These data points are then written to a new storage format that's designed after the Gorilla compression and also compressed with the LZ4 algorithm to give even better compression ratio. Benefits include a faster reading time of larger block of datapoints and very large disk space savings. For more details: HWKMETRICS-464

Other major changes

  • REST API - Query Improvements
    • Querying raw & rate data by tags is now also possible via POST {metric_type}/query endpoints for all types of metrics (HWKMETRICS-466)
    • Added new POST endpoints for stats gauges/stats/query and counters/stats/query (HWKMETRICS-465)
    • It is now possible to fetch metric definitions filtered by a list of ids not just tags (HWKMETRICS-461)
  • Cassandra Driver Configuration
    • Driver configuration options are now exposed for connection and request timeouts
    • Connection timeout can be configured via CASSANDRA_CONNECTION_TIMEOUT environment variable, or hawkular-metrics.cassandra.connection.timeout system property; value is specified in milliseconds and defaults to 5 seconds.
    • Request timeout can be configured via CASSANDRA_REQUEST_TIMEOUT environment variable, or hawkular-metrics.cassandra.request.timeout system property; value is specified in milliseconds and defaults to 12 seconds.
    • For more details: HWKMETRICS-490
  • Job Scheduler
    • Duplicate instances of jobs were wrongly scheduled on server restart because the job scheduler was not checking if the job was already scheduled (HWKMETRICS-461)
    • Triggers now have a delay to properly schedule jobs in the future (HWKMETRICS-224)
    • Resolved an issue where long running job can miss future executions because the current execution takes longer than the repeat interval (HWKMETRICS-477)
    • Prevent execution of a job multiple times for the same execution time (HWKMETRICS-486)
    • RepeatingTrigger now allows specifying trigger start time (HWKMETRICS-476)
  • Admin Endpoints
    • Admin related endpoints are going to be protected via an admin token, to be sent for admin related REST endpoints via Hawkular-Admin-Token request header
    • The first endpoint to be protected by this mechanism is /tenants since its functionality is cross tenant
    • The admin token can be set via command line arguments or environment variable at container startup; by default it is not set which means no access to protected endpoints
    • This is the foundation for adding more admin related functionality in upcoming releases (such as Cassandra cluster metrics, system telemetry, or admin operations)
    • The details:
      • system property key: hawkular.metrics.admin-token
      • environment variable: ADMIN_TOKEN
      • default value: null (admin endpoints are not accessible until set)
      • header name: Hawkular-Admin-Token
      • stored in system config using one-way hashing
    • For more details: HWKMETRICS-478

Hawkular Metrics Clients

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/12331360

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.

0.18.4

25 Oct 16:50
Compare
Choose a tag to compare

Contains the following fix:

  • HWKMETRICS-483 - Restart during cassalog prevents Hawkular Metrics from ever connecting