Release Notes
This is a new series (new minor version). A quick summary of what’s new in this series:
- “Engine v2”: monitor.Engine was rewritten to better handle long-running collectors, which simplifies delta counter handling in the new sink.Delta. Previously, two levels could run in parallel because metrics were originally designed and intended to be stateless. But delta counters are implicitly stateful: interval 1 is required before interval 2 in order to calculate the delta. Serial level collection solves the order problem but then requires new handling for long-running domains. Engine v2 handles all collection cases (normal and edge) correctly and consistently.
As per the Blip versioning guidelines, this new series is not entirely backwards-compatible with v1.1 due to these changes:
| # | Component | v1.0 | v1.1 |
|---|---|---|---|
| 1 | blip.Plugins | TransformMetrics func(*Metrics) | TransformMetrics func([]*Metrics) error |
| 2 | Events | See below | See below |
How to upgrade (by number in the table above):
- The first argument changed from one
*blip.Metricsto a slice of metrics, and it returns an error. Update yourTransformMetricsplugin function to match, and you’ll most likely wrap its original logic in aforloop, like:
func(metrics []*blip.Metrics) error {
for _, m := range metrics {
/* Original logic */
}
return nil
}
- If using an integration that works with Blip events, see event/list.go for the new event names.
- Fixed bug (panic) in
monitor/level_collectorwhen plan has no levels. - Added
plan/default.None.
- Rewrote monitor.Engine (“engine v2”) and some of level collector (LCO)
- Removed parallel level collection; made level collection serial
- Fixed long-running domain handling
- Added collector max runtime (CMR) context per domain equal to minimum level frequency
- Added
ErrMore - Added collector fault fencing: collector and its results are fenced off (dropped) if non-responsive or returns too late
- Added domain priority: collectors are started by ascending domain frequency (e.g. 5s domain collectors start before 20s domain collectors)
- Added
blip.Metrics.Intervalfield - Added
sink.Deltawrapper for automatic/transparent delta counter handling - Removed multi-component status
- Renamed and added several events
- Changed
blip.Plugins.TransformMetrics - Changed testing default from MySQL 5.7 to MySQL 8.0
This is a new series (new minor version). A quick summary of what’s new in this series:
- The Datadog sink sends delta counters, which is what Datadog expects.
- The repl.lag collector defaults to MySQL 8.x Performance Schema replication tables.
As per the Blip versioning guidelines, this new series is not entirely backwards-compatible with v1.0 due to these changes:
| # | Component | v1.0 | v1.1 |
|---|---|---|---|
| 1 | datadog sink | Sends cumulative counters | Sends delta counters |
| 2 | repl.lag collector | Default writer=blip | Default writer=auto will use Performance Schema on MySQL 8.x |
How to upgrade (by number in the table above):
- Datadog counters are deltas by default, so the new behavior works better. Use
.as_rate()instead of therate()function. Note that Datadog charts work best when the interval is set for each metric. - To continue using Blip heartbeats, explicitly configure
repl.lagwith optionwriter=blip.
datadogsink:- Changed to send delta counters instead of cumulative counters (PR #106)
repl.lagcollector:- Added MySQL 8.x Performance Schema support (auto-detected or writer=pfs) (PR #118)
wait.io.tablecollector:- Added
count_starto metrics
- Added
- Added sink
prom-pushgateway(Prometheus Pushgateway) - Updated built-in AWS RDS CA from rds-ca-2019 to the global bundle (PR #113)
- Made HA manager a configurable plugin (PR #116)
- Changed
max_used_connetionsto gauge (PR #111) - Fixed GitHub Dependabot alerts
datadogsink:- Fixed timestamps: DD expects timestamp as seconds, not milliseconds
- Send new
event.SINK_ERRORand debug DD API errors on successful request
query.response-timeandwait.io.tablecollectors:- Added
truncate-timeoutoption and error policy - Fixed docs: option
truncate-tabledefaults to “yes”
- Added
- Fixed GitHub Dependabot alerts
datadogsink:- Fixed intermittent panic
- Fixed HTTP error 413 (payload too large) by dynamically partitioning metrics
- Added option
api-compress(default: yes)
replcollector:- Added option
report-not-a-replica - Moved pkg vars
statusQueryandnewTermstoReplto handle multiple collectors on different versions - Fixed docs (only
repl.runningis currently collected)
- Added option
- Updated
aws/AuthToken.Password: pass context toauth.BuildAuthToken - Fixed GitHub Dependabot alerts
- Fixed
blip.VERSION
- First GA, production-ready release.