Releases: istreamlabs/go-metrics
Releases · istreamlabs/go-metrics
Go Metrics 1.3.0
- Add
WithRate(float64)to the metrics interface and to all clients that implement
the interface. All metrics calls support sample rates.- The
LoggerClient:- Applies the sample rate when printing log messages. If the rate is
0.1and you callIncr()ten times, expect about one message to have been printed out. - Displays the sample rate for counts if it is not
1.0, e.g:Count foo:0.2 (2 * 0.1) [tag1 tag2]. This shows the sampled value, the passed value, and the sample rate. - Gauges, timings, and histograms will show the sample rate, but he value is left unmodified just like the DataDog implementation.
- Applies the sample rate when printing log messages. If the rate is
- The
RecorderClient:-
Records all sample rates for metrics calls in
MetricCall.Rate. No calls are excluded from the call list based on the sample rate, and the value recorded is the full value before multiplying by the sample rate. -
Adds a
Rate(float64)query method to filter by sampled metrics. -
The following should work:
recorder := metrics.NewRecorderClient().WithTest(t) recorder.WithRate(0.1).Count("foo", 5) recorder.Expect("foo").Rate(0.1).Value(5)
-
- The
- Add
Colorized()method toLoggerClient, and automatically detect a TTY and enable color whennilis passed to theNewLoggerClientconstructor. - Test with Go 1.10.x.
Go Metrics 1.2.0
- Update build to test with Go 1.9, drop support for 1.7 since
depnow
requires Go 1.8+. Go 1.7 users can still use this library but must manage
their own dependencies. - Add
WithRate(rate float)to the DataDog client to limit traffic sent to
thedogstatsddaemon. The set rate will be applied to all calls made
with the returnedClient. - Automatically assign tags to events.
Go Metrics 1.1.0
-
Make
RecorderClientgoroutine-safe so that metrics can be written and
checked concurrently. For example:package main import ( "sync" "github.com/istreamlabs/go-metrics/metrics" ) func main() { client := metrics.NewRecorderClient() wg := sync.WaitGroup{} wg.Add(3) for i := 0; i < 3; i++ { go func() { client.Incr("concurrent.access") wg.Done() }() } wg.Wait() }
Initial Release
- Make project public on GitHub.