qmp-testing-suite/golang-producer-consumer/vendor/gitlab-app.eng.qops.net/golang/metrics/design.md

10 lines
886 B
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Goals
The goals of the metrics package are the following:
1. Provide a `Reporter` interface so we standardize what our shared packages accept to make it easier to use Qualtrics packages. It will also make the transition easier when we extract a pkg from an existing service to make it a shared package.
2. Provide a client with good defaults to store items in DevOps metrics service.
3. Provide a `DiscardReporter` similar to [`ioutil.Discard`](https://godoc.org/io/ioutil#pkg-variables) for testing and dev environments.
# Implementation
The current implementation of `StatsDReporter` wraps an existing statsd client. In the future we can remove this dependency by writing our own while keeping the same `Reporter` interface. We also hope to change the `NewReporter` behavior to still return a "retrying" reporter if there is an error establishing a connection during creation.