Commit Graph

31 Commits

Author SHA1 Message Date
beorn7 5b19c553c3 Merge branch 'master' into sparsehistogram 2022-01-11 14:01:38 +01:00
beorn7 f78dc19a65 Move flags and metrics into main()
Fixes #933.

Signed-off-by: beorn7 <beorn@grafana.com>
2021-11-10 16:20:42 +01:00
beorn7 31318b7523 Switch to base-2 buckets
This seem what OTel is converging towards, see
https://github.com/open-telemetry/oteps/pull/149 .

I see pros and cons with base-10 vs base-2. They are discussed in
detail in that OTel PR, and the gist of the discussion is pretty much
in line with my design doc. Since the balance is easy to tip here, I
think we should go with base-2 if OTel picks base-2. This also seems
to be in agreement with several proprietary solution (see again the
discussion on that OTel PR.)

The idea to make the number of buckets per power of 2 (or formerly 10)
a power of 2 itself was also sketched out in the design doc
already. It guarantees mergeability of different resolutions. I was
undecided between making it a recommendation or mandatory. Now I think
it should be mandatory as it has the additional benefit of playing
well with OTel's plans.

This commit also addresses a number of outstanding TODOs.

Signed-off-by: beorn7 <beorn@grafana.com>
2021-06-23 16:48:03 +02:00
beorn7 c98db4eccd Demo sparse histograms
Printf the structure of it instead of actually encoding it.

Signed-off-by: beorn7 <beorn@grafana.com>
2020-04-07 23:18:09 +02:00
beorn7 9903214237 Fix typo in doc comment
Signed-off-by: beorn7 <beorn@grafana.com>
2020-01-27 15:46:39 +01:00
beorn7 f34b09877c Pull out ...WithExemplar methods into separate interfaces
This is, sadly, the only way to avoid a breaking change. The cost is
that anyone using exemplars has to perform a type assertion. This is,
however, a common pattern where interfaces turn out to need additional
methods in a stable library or only some implementations can provide
the additional methods (AKA "interface upgrade").

Needless to say that in v2 of this library, we'll do things in a more
straight forward way.

Signed-off-by: beorn7 <beorn@grafana.com>
2020-01-27 15:41:13 +01:00
beorn7 57d41259e1 Add exemplars to counter and histogram
Signed-off-by: beorn7 <beorn@grafana.com>
2020-01-24 17:12:08 +01:00
beorn7 8576729b6f Add a simple buildInfoCollector
Signed-off-by: beorn7 <beorn@grafana.com>
2019-06-06 22:24:23 +02:00
Peter Sutherland e9d57b3892 Move both examples into single Dockerfile for Docker Hub (fixes #347)
Signed-off-by: Peter Sutherland <peter@pedrosland.co.uk>
2018-07-09 19:09:06 +01:00
Damien Lespiau ec06aca188 Create Docker images for the examples
When those are published on Dockerhub, people will be able to start those
examples in fewer steps than the current documentation:

  https://prometheus.io/docs/introduction/getting_started/#starting-up-some-sample-targets

While relying on Docker may not be always wished, giving the possibility to
quickly start a daemon that exposes metrics can be useful in many tutorials.

The simple and random example are build as static binaries and packaged as
single binaries in Docker images.

This commit tries really hard to limit the number of per-example maintenance
work by sharing most of the Makefile to build the Docker images. The tiny top
level Makefiles in each example directory are strictly identical.

Updates: #347
2017-09-19 13:59:05 +01:00
beorn7 9c4b7780d7 Allow Summaries with empty objectives and deprecate DefObjectives
This also updates all tests and examples to use explicitly set
objectives.

In v0.10, DefObjectives will be completely removed, and the default
Summary will have no objectives then.

Fixes #118
2016-11-23 18:35:02 +01:00
beorn7 d703c70ef1 Adjust examples to modern usage
- Use seconds instead of microseconds.
- Use promhttp.Handler instead of prometheus.Handler
2016-11-12 16:36:39 +01:00
Marcus Franke 17f1add33c Changed example sources according to the basic documentation example 2016-11-02 10:52:31 +01:00
beorn7 28973f4d4f Add a histogram to the random example. 2015-02-23 16:19:01 +01:00
Bjoern Rabenstein d7f8eb1083 Change "Prometheus Team" to "The Prometheus Authors". 2015-02-02 15:14:36 +01:00
Julius Volz eb24b39865 Make random example more interesting.
Have different RPC rates for the three services and vary them according
to a diurnal period.
2015-01-06 18:19:44 +01:00
Julius Volz 06f26c5fa8 Re-add some simple example binaries.
I intentionally left out the Makefile infrastructure that we had
previously for this, as it's not strictly needed and adds
complexity/maintenance burden.
2015-01-06 15:41:10 +01:00
Bjoern Rabenstein 5d40912fd2 Complete rewrite of the exposition library.
This rewrite had may backs and forths. In my git repository, it
consists of 35 commits which I cannot group or merge into reasonable
review buckets. Gerrit breaks fundamental git semantics, so I have to
squash the 35 commits into one for the review.

I'll push this not with refs/for/master, but with refs/for/next so
that we can transition after submission in a controlled fashion.

For the review, I recommend to start with looking at godoc and in
particular the many examples. After that, continue with a line-by-line
detailed review. (The big picture is hopefully as expected after
wrapping up the discussion earlier.)

Change-Id: Ib38cc46493a5139ca29d84020650929d94cac850
2014-06-17 14:08:22 +02:00
Matt T. Proud 624e57d292 Enclose artifact generation process into Makefile.
Completely decouple the build process from Travis and other things we
cannot control.
2013-07-21 17:45:53 +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 c5b4952f97 Add HTTP multiplexor wrapper for automatic telemetry. 2013-04-02 12:10:12 +02: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 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
Matt T. Proud 989a398e79 Update paths to new repository location. 2013-01-25 17:50:41 +01: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 1134be8073 Add ``baseLabels`` to the registration signature. 2013-01-15 20:18:43 +01:00
Matt T. Proud e53e7ec940 Add docstrings in registration signature. 2013-01-15 20:10:04 +01:00
Matt T. Proud 1800ee2925 Make listening port for examples to be settable.
This will be better for our own internal tests.
2013-01-11 22:52:36 +01:00
Daniel Bornkessel 4cb006cce4 Split Gauge into Gauge and Counter
Counter is a separate metric now
2012-12-19 11:49:38 +01:00
Matt T. Proud e0b92aec7a - Separate out the packages' files' documentation into a separate documentation file per package.
- Provide better examples in the examples subdirectory.
- Make the comments consistent in terms of using multi-line format for future-proofing.
- Extract major constants out.
2012-05-24 20:02:44 +02:00
Matt T. Proud 5ea9b1a0b5 - Improved comments throughout the package.
- Added normal and exponential distributions to one of the examples.
- Improved the naming of a couple of local variables.
- Handled an error in the AccumulatingBucket ValueForIndex function whereby
  the vestigal old behavior was accidentally preserved and not updated.
  This could have been caught had the tests been updated first.
- Simplify Histogram prospectiveIndexForPercentile such that various
  small tasks it performs are extracted into separate functions for easier
  testing and code comprehension.
- Remedy a regression in Histogram prospectiveIndexForPercentile whereby
  the prospective index may have included the terminating element of a
  bucket.
- Provide help for Histogram prospectiveIndexForPercentile such that requesting
  the terminating element of a bucket will fast-forward to the first element of
  the next non-empty bucket.
- Fix TallingBucket's boundary constant, because they were originally keyed toward
  percentages [0, 100], not decimal-based ones.  The antique tests had been
  temporarily commented out, which prevented this regression from being exposed.
2012-05-22 09:20:09 +02:00