Commit Graph

597 Commits

Author SHA1 Message Date
Matt T. Proud 35125cdac0 Implement Protocol Buffer Stream Decoding
This commit introduces protocol buffer telemetric stream decoding.
2013-06-26 18:19:50 +02:00
Matt T. Proud 03369306e0 Provide Discriminator For Protocol Buf. Streams
This commit introduces an incomplete processor that decodes varint
record length-delimited streams of io.prometheus.client.MetricFamily
Protocol Buffer messages.  The Go client presently does not support
generation of said messages, but this will unblock a number of Java
changes.
2013-06-26 13:25:10 +02:00
Matt T. Proud 6da8b95237 Fix: Include forgotten LabelSet.MergeFromMetric. 2013-06-23 14:42:10 +02:00
Matt T. Proud 5cadb31d7c Fix: Canned label const types.
We had a syntax error whereby canned label names were not LabelName.
2013-06-22 13:28:25 +02:00
Matt T. Proud 6b26678f98 Fix: Metric sorting comparators.
There was an oversight that resulted in indefinite recursion.
2013-06-22 13:28:15 +02:00
juliusv 024b00bcef Merge pull request #20 from prometheus/update/stringers
Update LabelSet and Metric String() methods from server.
2013-06-12 09:47:59 -07:00
Julius Volz 2c8b7cc19b Update LabelSet and Metric String() methods from server. 2013-06-12 18:47:30 +02:00
Matt T. Proud 14cbd6b8ce Merge pull request #19 from prometheus/refactor/model-inclusion
Include relevant server model artifacts.
2013-06-11 03:49:45 -07:00
Matt T. Proud f761854eff Code Review: Useless time and comment. 2013-06-11 12:42:31 +02:00
Matt T. Proud 10dae5d108 Include relevant server model artifacts.
This commit introduces all relevant server-side artifacts such that the
Result streams can be used by external parties for one-off tools and
such.  This will ultimately better enable us to support additional
wireformats with much more ease.
2013-06-11 11:45:21 +02:00
Matt T. Proud d36afbbd8d Merge pull request #18 from prometheus/refactor/decoder-inclusion
Extract core Prometheus value decoders.
2013-06-10 10:36:40 -07:00
Matt T. Proud 85899b3f4a Extract core Prometheus value decoders.
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.
2013-06-10 19:35:41 +02:00
Bernerd Schaefer c10c61ce05 Merge pull request #17 from prometheus/rename-test-helper-files
Rename test helper files to helpers_test.go
2013-05-06 02:17:18 -07:00
Bernerd Schaefer af56a93a80 Rename test helper files to helpers_test.go
This ensures that these files are properly included only in testing.

[Fixes #10]
2013-05-06 11:13:44 +02:00
Bernerd Schaefer 8296a0cb49 Merge pull request #16 from prometheus/fix/race-conditions
Fix race conditions in metric methods
2013-05-06 02:08:14 -07:00
Bernerd Schaefer d4ff2cc87a Fix race conditions in metric methods
Methods which expect to use a mutex must be defined for the pointer
value, because mutexes are not copyable.
2013-05-03 16:02:03 +02:00
Bernerd Schaefer 9ba7cdf4cf Merge pull request #15 'feature/expose-schema-through-content-type' 2013-04-29 10:18:09 +02:00
Matt T. Proud 4c1c13d109 Merge pull request #9 from prometheus/refactor/user-experience/standardized-directories
Rearrange file and package per convention.
2013-04-28 10:43:02 -07:00
Matt T. Proud 960107461e Migrate documentation to markdown. 2013-04-28 19:21:30 +02:00
Bernerd Schaefer f60c783b29 Adhere to telemetry schema 0.0.2
* The schema and version of telemetry data is exposed through the
  Content-Type header instead of through a custom HTTP Header.

See [Prometheus Client Data Exposition Format][1] for more details.

[1]: https://docs.google.com/a/soundcloud.com/document/d/1ZjyKiKxZV83VI9ZKAXRGKaUKK2BIWCT7oiGBKDBpjEY/edit#heading=h.wnviarbnyxcj
2013-04-25 17:43:03 +02:00
Bernerd Schaefer 04c7f7bc7f Merge pull request #12 from prometheus/refactor/reduce-marshaling-complexity
Refactor/reduce marshaling complexity
2013-04-19 06:12:13 -07:00
Bernerd Schaefer 71dd60e431 Registry and Metrics implement json.Marshaler
* Drop `AsMarshallable()` from the Metric interface. Use
  `json.Marshaler` and `MarshalJSON()`, and leverage JSON struct tags
  where possible.

* Add `MarshalJSON()` to Registry and remove `dumpToWriter`, which
  makes the registry handler much simpler.

In addition to simplifying some of the marshalling behavior, this also
has the nice side effect of cutting down the number of
`map[string]interface{}` instances.
2013-04-19 15:07:24 +02:00
Bernerd Schaefer 3433b798b3 Use raw string literals in tests 2013-04-19 15:04:07 +02:00
Bernerd Schaefer 0b30e065c8 Metrics explicitly implement Metric interface 2013-04-19 15:04:07 +02:00
Bernerd Schaefer c39c592874 Merge pull request #13 from prometheus/refactor/remove-timer
Remove timer.go and timer_test.go
2013-04-19 06:02:35 -07:00
Bernerd Schaefer 9fccb96989 Remove timer.go and timer_test.go 2013-04-19 14:44:15 +02:00
Matt T. Proud f320d28a6c Rearrange file and package per convention.
WIP - Please review but do not merge.
2013-04-04 15:27:09 +02:00
Matt T. Proud a087e013a5 Merge pull request #6 from prometheus/feature/user-love/http-mux-wrapper
Add HTTP multiplexor wrapper for automatic telemetry.
2013-04-02 03:41:10 -07:00
Matt T. Proud 643925d012 Merge pull request #7 from prometheus/refactor/pointers/only-on-mutation
Pointers to references for non-mutation calls.
2013-04-02 03:38:32 -07:00
Matt T. Proud c5b4952f97 Add HTTP multiplexor wrapper for automatic telemetry. 2013-04-02 12:10:12 +02:00
Matt T. Proud 9a416628a9 Pointers to references for non-mutation calls.
No performance differences, but more idiomatic with standard library.
2013-04-01 18:41:50 +02:00
juliusv 6c08aa2e95 Merge pull request #5 from prometheus/documentation/community/api-reference
Include link to generated API documentation.
2013-03-28 02:53:56 -07:00
Matt T. Proud e47bd1785d Include link to generated API documentation.
Include mailing list.
2013-03-28 10:46:16 +01:00
Matt T. Proud 552bef44bd Run gofmt on corpus and include deprecation. 2013-03-28 10:46:16 +01:00
juliusv ed0a3bcbc3 Merge pull request #4 from prometheus/usability/sundry
Run gofmt on corpus and include deprecation.
2013-02-18 07:34:00 -08:00
Matt T. Proud 95af66aca5 Run gofmt on corpus and include deprecation. 2013-02-18 09:30:47 -06:00
juliusv 339ecd434d Merge pull request #3 from prometheus/usability/sundry
Fix documentation after reading via server.
2013-02-18 04:59:08 -08:00
Matt T. Proud ee7ab62137 Fix documentation after reading via server.
Examining the existing documentation over the standard Go documentation
server revealed some serious formatting flaws.  Everything should be
readable now.
2013-02-17 22:28:56 -06:00
Matt T. Proud d822e70a37 Merge pull request #2 from prometheus/usability/sundry
Sundry cosmetic fixes across the board.
2013-02-13 09:24:06 -08:00
Matt T. Proud 6c3a2ddddb Sundry cosmetic fixes across the board.
- Comments are migrated from ``/* */`` to ``//`` per convention.

- ``NewDefaultHistogram`` helper.

- ``Registry.Handler`` and ``Registry.YieldExporter`` deprecation.

- Cleanup of legacy import paths.

- Updating examples to use acknowledged patterns.

- Parameterizing the random parameter namespaces for ``examples/random/main.go``, which is useful for demoing population behaviors.
2013-02-13 09:21:44 -08:00
juliusv e1bfb0c101 Merge pull request #1 from matttproud-soundcloud/feature/contrib/response-delegate
Include Daniel's ResponseWriter delegate type.
2013-01-31 06:36:22 -08:00
Matt T. Proud 13c269c19c Include Daniel's ResponseWriter delegate type. 2013-01-31 14:28:09 +01:00
Matt T. Proud b0dbdfcf11 Update wrong Travis CI path. 2013-01-25 18:06:33 +01:00
Matt T. Proud 989a398e79 Update paths to new repository location. 2013-01-25 17:50:41 +01:00
Matt T. Proud 5a29c27491 Merge pull request #13 from matttproud/feature/labels/base-exposed
Update client to reflect new API needs.
2013-01-23 04:09:17 -08:00
Matt T. Proud 0f93b588cd Update client to reflect new API needs.
1. The output format is now versioned per the Semantic Versioning scheme.  Mainline Prometheus will be adapted to use differing consumption methodologies as the generators' formats evolve to support legacy clients.

2. The telemetry outputter now supports GZIP output encoding.  In sample runs, this cuts the output size in half.

3. Basic sanity tests are added for registration with varying levels of pedanticness.

4. We have support for base labels in the registration and emission phases.

5. We have label support for individual metric mutation operations.

6. A number of simplications have been made.
2013-01-23 13:07:12 +01:00
Matt T. Proud 01c4092691 Merge pull request #12 from matttproud/refactor/decouple-from-bazaar
Decouple from Bazaar.
2013-01-18 07:36:48 -08:00
Matt T. Proud acf4e9ce2b Decouple from Bazaar.
Having to use Bazaar to access gocheck is onerous.  We have simply
forked it at a revision until all tests can be replaced with
table-driven ones.
2013-01-18 16:29:47 +01:00
Matt T. Proud c19702aca2 Merge pull request #11 from matttproud/feature/include-instance-uptime
Include instance uptime information in the stack.
2013-01-18 07:25:10 -08:00
Matt T. Proud 4cab4a892e Include instance uptime information in the stack. 2013-01-18 15:50:16 +01:00