Releases: allegro/hermes
0.11.4 (15.05.2017)
Features
(764) Custom button on UI.
Allows to configure custom view near topic buttons area on hermes-console. Custom view can be set via configuration file, example:
{
"topic": {
"buttonsExtension": "<a class=\"btn btn-info {{topic.contentType === 'JSON' ? 'ng-show' : 'ng-hide'}}\" ng-href='http://migrator.example/topics/{{topic.name}}'>Migrate to AVRO</a>",
}
}
0.11.3 (13.04.2017)
Features
(753) Filtering by headers
Added new filter type: header
that allows on filtering messages by HTTP headers. Example of filter definition:
{"type": "header", "header": "My-Propagated-Header", "matcher": "^abc.*"}
Mind that by default no headers are propagated from Frontend to Consumers. To enable headers propagation, define and register
own HeadersPropagator
via HermesFrontend.Builder#withHeadersPropagator
.
(749) Handling avro/json
content type
When converting messages from JSON to Avro Hermes uses json-avro-converter
to provide smooth experience, that does not require changing already produced JSONs (for instance to to support optional
fields).
However in some rare cases it might be desired to send JSON messages that are compatible with
standard Avro JSON encoding. To use vanilla JSON -> Avro converter and bypass json-avro-converter
, send requests with avro/json
content type.
Enhancements
(748) Topic authorization controls and status in Console
Console now has support for toggling auth on topics. This is an opt-in feature, enable by specifying:
{
"topic": {
"authEnabled": true,
}
}
In Console config.json
.
(710) Limit size of messages in preview
(751) Move Zookeeper cache update logs to DEBUG level
(750) Move Schema Registry cache refresh logs to DEBUG level
Bugfixes
(737) Updating subscription in hermes-console resets OAuth password
(734) Prevent manual setting of subscription state to PENDING
(743) Better defaults for max-rate algorithm
0.11.2 (15.03.2017)
Enhancements
(738) Payload content-type check and error handling
From now on, clients who send HTTP request without specified Content-Type
on an Avro topic will receive proper error message.
(739) Added latency metrics for schema registry
Metrics are available in the following path:
schema.<schema-repo-type>.latency.read-schema
Bugfixes
(740) Invalid metrics names in zookeeper for topics with underscore in name
0.11.1 (7.03.2017)
Features
(733) Topic authorization
Added feature to control which system has permission to publish on particular topic.
(722) Frontend security context initialization
Added feature to configure SSL context.
(735) Configurable http keep_alive
(707) Throughput limit
Added feature to limit throughput in bytes/sec when publishing to particular topic.
Can be configured to work as simple threshold or dynamically calculated value.
(687) Throughput metric
Metric can be found under {producer|consumer}.{hostname}.throughput.{group}.{topic}
0.11.0 (15.02.2017)
Features
(693) Owners instead of support teams
Replaces group and subscription support team, contact and technical owner with a
single notion – owner. Topics and subscriptions have assigned owners, groups no longer
do, so everyone can create a topic in any group.
Migration guide
After deployment to hermes-management you need to run a migration task.
It will initialise topic and subscription owners by assigning what used to be related group and subscription support teams.
Perform with admin credentials:
POST /migrations/support-team-to-owner?source=Plaintext
(or source=Crowd
if you used Crowd support teams)
Enhancements
(721) Creator must be an owner of created topic or subscription
(714) Don't match when queried nested field doesn't exist instead of failing
(726) Pass Avro validation errors to users
Bugfixes
(717) NPE in Hermes frontend related to BlacklistZookeeperNotifyingCache
0.10.6 (07.02.2017)
Features
(611) Consumers rate negotiation
Max rate negotiation algorithm for balancing maximum delivery rate across subscription consumers.
Enhancements
(703) Update Curator dependency
(701) Updated migration guide for 0.10.5
(713) Admin scripts catalogue with initial migration script for 0.10.5
Bugfixes
(709) Fix docker-compose and docker setup
0.10.5 (31.01.2017)
Enhancements
(688) Selective algorithm healing
Improved durability of assignments during restarts and zookeeper flaps.
Reporting of assignments and running consumers has been improved and made consistent.
More reliable handling of consumer processes.
Migration guide:
To utilize these improvements it is required to stop all instances in hermes cluster, remove all nodes from {zookeeper.root}/consumers-workload/{kafka.cluster.name}/runtime
and restart instances.
This adds a marker in selective algorithm's consumer assignments, which allows rebalancing with removing automatically created assignments.
Alternatively, to avoid switching off your cluster, a script updating assignments' zookeeper nodes' data to AUTO_ASSIGNED
can be used. It should be also applied after all nodes run the new version, as previous run could shuffle assignments during deployment.
(698) Fix Dockerfile build
0.10.4 (23.01.2017)
Enhancements
(690) Update json-avro-converter to 0.2.5
(687) Added throughput metric
(684) Limit number of retries for inflight on Frontend graceful shutdown
Bugfixes
(694) Leaking file descriptors
Handling corner case in a race between ack and timeout task.
Because of it number of messages in backup storage was growing with a time.
Eventually, it lead to full backup-storage and further writes ended with an exception which was not caught.
This exception was the reason of file descriptor leak.
Mentioned corner case was fixed in this issue. Beside that, additional exception handling was added and backup-storage size
is from now on monitored.
(695) Decouple filtering rate limiting from backpressure based rate limiting
Filtered messages do not influence on a sending rate.
(686) Do not merge topic.contentType with default value
Fix in hermes-console.
0.10.3 (02.01.2017)
0.10.2 (19.12.2016)
This release introduces a crucial warming-up phase when starting Hermes Frontend.
Features
(591) Frontend graceful startup
Frontend tries to load and cache all Avro schemas and Kafka topic metadata before accepting any traffic.
Before this change large clusters were throwing 5xx and had very big latencies during warmup phase.
Currently startup moment is barely noticable for clients (and in metrics).
(667) Declare max message size on topic
With this change users are asked to specify the maximum size of message on a topic during topic creation.
This size is then used to calculate the size of Kafka buffers in Hermes Consumers. Prior to this change
Consumer Kafka buffers were set to the same size for every topic (default: 10Mb per partition), which could
cause crashes when starting Consumers with large number of subscriptions with lags.
By default message size is a soft limit, warn
log is emitted when message larger than declared size is received.
frontend.force.topic.max.message.size
flag can be switched to make it a hard limit (Frontend will return
http 413 Payload Too Large
status).
Also calculation based on message size os disabled by default (will be enabled by default in next versions). To use this
feature set consumer.use.topic.message.size
flag.
(666) Options to configure Consumer HTTP client SSL Context
New options to configure Consumers HTTP client:
consumer.http.client.validate.certs
consumer.http.client.validate.peer.certs
consumer.http.client.enable.crldp