A new system for working with alerts has been introduced. This alerting system allows you to configure topics for alert events and then configure handlers for various topics. This way alert generation is decoupled from alert handling.
Existing TICKscripts will continue to work without modification.
To use this new alerting system remove any explicit alert handlers from your TICKscript and specify a topic. Then configure the handlers for the topic.
stream |from() .measurement('cpu') .groupBy('host') |alert() // Specify the topic for the alert .topic('cpu') .info(lambda: "value" > 60) .warn(lambda: "value" > 70) .crit(lambda: "value" > 80) // No handlers are configured in the script, they are instead defined on the topic via the API.
The API exposes endpoints to query the state of each alert and endpoints for configuring alert handlers. See the API docs for more details. The kapacitor CLI has been updated with commands for defining alert handlers.
This release introduces a new feature where you can window based off the number of points instead of their time. For example:
stream |from() .measurement('my-measurement') // Emit window for every 10 points with 100 points per window. |window() .periodCount(100) .everyCount(10) |mean('value') |alert() .crit(lambda: "mean" > 100) .slack() .channel('#alerts')
With this change alert nodes will have an anonymous topic created for them. This topic is managed like all other topics preserving state etc. across restarts. As a result existing alert nodes will now remember the state of alerts after restarts and disiabling/enabling a task.
NOTE: The new alerting features are being released under technical preview. This means breaking changes may be made in later releases until the feature is considered complete. See the API docs on technical preview for specifics of how this effects the API.
No changes to Kapacitor, only upgrading to GoLang 1.7.4 for security patches.
New K8sAutoscale node that allows you to auotmatically scale Kubernetes deployments driven by any metrics Kapacitor consumes. For example, to scale a deployment
myapp based off requests per second:
// The target requests per second per host var target = 100.0 stream |from() .measurement('requests') .where(lambda: "deployment" == 'myapp') // Compute the moving average of the last 5 minutes |movingAverage('requests', 5*60) .as('mean_requests_per_second') |k8sAutoscale() .resourceName('app') .kind('deployments') .min(4) .max(100) // Compute the desired number of replicas based on target. .replicas(lambda: int(ceil("mean_requests_per_second" / target)))
New API endpoints have been added to be able to configure InfluxDB clusters and alert handlers dynamically without needing to restart the Kapacitor daemon. Along with the ability to dynamically configure a service, API endpoints have been added to test the configurable services. See the API docs for more details.
connect_errorsstat from the query node was removed since the client changed, all errors are now counted in the
.createproperty to InfluxDBOut node, which when set will create the database and retention policy on task start.
First release of Kapacitor v1.0.0.
© 2015 InfluxData, Inc.
Licensed under the MIT license.