Bernerd had suggested extracting the value decoders and bundling them
into the client library. After some reflection, I tend to agree with
this, since we can start breaking the onion of Prometheus itself and
localize the protocol management into its own scope.
A couple of major changes since moving:
- Protocol 0.0.2 has moved to a struct{} so that our tests can perform
value matching, which cannot be done against function literals.
- Processing now acquires options to dictate behavioral changes of
metrics bodies.
- Processing no longer closes the stream, thusly returning this to the
hands of the caller.
- Process() has been renamed to ProcessSingle to better convey that it
works on complete message bodies. This paves the way for better
streaming payload support that the next API version will offer.
Even though Travis does NOT offer a consistent Go platform, I want
to nevertheless simplify the scaffolding scripts around it to make
it easier for other folks to perform pull requests, reviews, etc.
while letting the tests run.
Aalok Shah informs me that Travis CI ought to be permissive with the
languages it supports. This is a trial at setting it to Go, given that
apparently Erlang now requires a OTP release.