RainbowMango
af6ade7230
Fix unit test failing with Go1.14+
...
Signed-off-by: RainbowMango <renhongcai@huawei.com>
2020-04-23 15:14:34 +08:00
RainbowMango
3c5e60edc1
Porting promlint from prometheus/prometheus.
...
Signed-off-by: RainbowMango <renhongcai@huawei.com>
2020-04-23 14:09:29 +08:00
beorn7
a9d0066408
Add note about pow-of-10 precision issue
...
Signed-off-by: beorn7 <beorn@grafana.com>
2020-04-13 16:43:23 +02:00
beorn7
d1f5366b52
Fix span offset
...
Signed-off-by: beorn7 <beorn@grafana.com>
2020-04-13 15:50:40 +02:00
cobolbaby
c6babafd27
feat: Change processMemoryCounters struct uint declaration to uintptr
...
Signed-off-by: cobolbaby <cobolbaby@qq.com>
2020-04-13 10:44:09 +08:00
cobolbaby
0bb7f92c09
fix: process_resident_memory_bytes detected is incorrect in Win7 32bit
...
Ref: https://github.com/prometheus/client_golang/issues/728
Signed-off-by: Cobolbaby <Zhang.Xing-Long@inventec.com>
2020-04-10 16:38:16 +08:00
beorn7
abe540f8c0
Encode sparse histograms in protobuf
...
Signed-off-by: beorn7 <beorn@grafana.com>
2020-04-07 23:18:40 +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
586178b4ab
Fix promhttp error handling
...
Essentially, just don't try to set a status code and send any error
message in the body once metrics gathering has succeeded. At that
point, the most likely reason for errors is anyway that the client has
disconnected, in which sending an error is moot. The other possible
reason for an error is a problem during metrics encoding. This is
unlikely to happen (it's a coding error here in client_golang in any
case), and if it is happening, the odds are we have already sent
something to the ResponseWriter, which means we cannot set a status
code anymore. The doc comment for HTTPErrorOnError now describes these
circumstances explicitly and recommends to set a logger to report that
kind of error.
This should fix the reason for the infamous `superfluous
response.WriteHeader call` message.
Signed-off-by: beorn7 <beorn@grafana.com>
2020-03-13 00:10:32 +01:00
Björn Rabenstein
b25ce2693a
Merge pull request #713 from prometheus/beorn7/promauto
...
Add a "factory" to make promauto work for custom registries
2020-02-14 16:41:32 +01:00
beorn7
1c2884b807
Add NewUntypedFunc to promauto
...
This constructor was simply forgotten.
Signed-off-by: beorn7 <beorn@grafana.com>
2020-02-13 22:08:18 +01:00
beorn7
92c1ac77e7
Add a "factory" to make promauto work for custom registries
...
Also, update the package documentation. The concerns about the global
registry aren't really valid anymore because promauto now also works
with custom registries.
The musings about the http.DefaultMux are more a digression and
shouldn't be in a doc comment.
Signed-off-by: beorn7 <beorn@grafana.com>
2020-02-13 22:03:30 +01:00
beorn7
87f9434351
Remove obsolete references to `Untyped` from doc comments
...
Signed-off-by: beorn7 <beorn@grafana.com>
2020-02-13 22:03:05 +01:00
beorn7
aa6eadda9c
Explicitly forward metricVec methods Collect, Describe, Reset
...
Interestingly, methods implicitly forwarded from embedded types are
detected by GoDoc if they are just one level deep. Embedded types in
the embedded type are not recognized. This commit therefore adds
explicit forwarding methods for Collect, Describe, and Reset.
Signed-off-by: beorn7 <beorn@grafana.com>
2020-02-13 20:22:37 +01:00
Shreyas Srivatsan
bc9e50c39f
Initialize now fn for counters
...
Signed-off-by: Shreyas Srivatsan <shreyas@chronosphere.io>
2020-02-05 22:25:47 -08: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
c32ffd121f
Add tests for examplars
...
Signed-off-by: beorn7 <beorn@grafana.com>
2020-01-24 17:12:36 +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
Bartlomiej Plotka
9e9cc003f8
Added testutil.CollectAndCount
...
Signed-off-by: Bartlomiej Plotka <bwplotka@gmail.com>
2020-01-09 11:20:19 +00:00
beorn7
2be4bb406e
Improve doc string for `go_gc_duration_seconds`
...
Fixes #618 .
Signed-off-by: beorn7 <beorn@grafana.com>
2020-01-06 13:38:35 +01:00
beorn7
de74638693
Improve doc comment for NewGaugeFunc
...
- Simplify confusing wording about concurrency safety.
- Add link to example for info metric.
Signed-off-by: beorn7 <beorn@grafana.com>
2019-12-09 18:20:27 +01:00
Dean Coakley
508fc33903
Fix link to writing exporters guide
...
Signed-off-by: Dean Coakley <dean.s.coakley@gmail.com>
2019-11-28 15:01:46 +00:00
kamaev
06342cf74f
fix tests
...
Signed-off-by: kamaev <timurkamaev@protonmail.com>
2019-10-23 00:15:54 +05:00
kamaev
c333d152b1
add graphite tags
...
Signed-off-by: kamaev <timurkamaev@protonmail.com>
2019-10-23 00:15:41 +05:00
Jeff Widman
0dc0c2165f
Remove old reference to basicMetricVec
...
Contrary to the code comment, I see no `basicMetricVec` implementation.
Grep'ing this project shows this is the only reference. So I suspect
it's an outdated comment and can be removed to minimize confusion.
I'm unclear whether other parts of that comment are also incorrect and
need updating.
Signed-off-by: Jeff Widman <jeff@jeffwidman.com>
2019-10-18 10:05:25 -07:00
Leo Antunes
4be0ab45ec
ensure same collectorID calculated on reg and unreg
...
Signed-off-by: Leo Antunes <leo@costela.net>
2019-10-17 14:16:32 +02:00
beorn7
679da921f7
Simplify code
...
`gofmt -s` taught me that this is possible.
Signed-off-by: beorn7 <beorn@grafana.com>
2019-10-16 12:18:16 +02:00
beorn7
19af62dcc8
Use a cleaner initialization of `separatorByteSlice`
...
The `const separatorByte` wasn't used anymore actually. In `vec.go`,
we were using `model.SeparatorByte`, which is better anyway. So remove
the unused constant and initialize `separatorByteSlice` with
`model.SeparatorByte`, too.
Signed-off-by: beorn7 <beorn@grafana.com>
2019-10-15 19:52:31 +02:00
Björn Rabenstein
c13325c862
Merge pull request #655 from prometheus/beorn7/test
...
Unflake TestGoCollectorGoroutines
2019-10-15 13:19:50 +02:00
Björn Rabenstein
8b3e008442
Merge pull request #657 from prometheus/beorn7/registry
...
Make hash collisions in the registry much less likely
2019-10-15 11:43:02 +02:00
beorn7
ee1078a03c
Move registry hashing to xxhash
...
This is a much stronger hash function than fnv64a and comparably fast
(with super-fast assembly implementation for amd64).
Performance is not critical here anyway.
The old fnv64a is kept for vectors, where collision detection is in
place and the weakness of the hashing doesn't matter that much. I
implemented a vector version with xxhash and found that xxhash is
slower in all cases except very very high cardinality (where it is
only slightly faster). Also, ``xxhash.New`` comes with an allocation
of 80 bytes. Thus, to keep vectors alloc-free, we needed to add a
`sync.Pool`, which would have an additional performance overhead.
Signed-off-by: beorn7 <beorn@grafana.com>
2019-10-14 21:18:38 +02:00
beorn7
c2e3855f3b
Minimal “fix” for hash collisions
...
This makes the collisions a bit less likely by XOR'ing descIDs rather
than adding them up for the collectorID.
Signed-off-by: beorn7 <beorn@grafana.com>
2019-10-14 20:14:43 +02:00
beorn7
bf9ff715fe
Expose bug #633
...
Signed-off-by: beorn7 <beorn@grafana.com>
2019-10-14 20:02:58 +02:00
beorn7
6fa429cf42
Unflake TestGoCollectorGoroutines
...
This is not a great solution, but it's also hard to test for this
moving target.
Signed-off-by: beorn7 <beorn@grafana.com>
2019-10-14 19:44:28 +02:00
beorn7
bd362a9ced
Use HTTP status code constants rather than numerical literals
...
Signed-off-by: beorn7 <beorn@grafana.com>
2019-10-14 19:27:09 +02:00
beorn7
f24de70161
Update push test to use status code 200
...
Signed-off-by: beorn7 <beorn@grafana.com>
2019-10-14 19:24:20 +02:00
Xin Zhang
7c6a9d7568
Fix check status code
...
Signed-off-by: Xin Zhang <ahjdzx1990@gmail.com>
2019-10-12 16:08:00 +08:00
beorn7
ad58180fde
Add WriteHeader call to Flush
...
Flush is another of the methods that will call WriteHeader if it
hasn't happened yet. Since we want to call observeWriteHeader (if
set), we need to do the WriteHeader call already here, similar to what
we have done in Write and ReadFrom.
This commit also adds comments explaining the above to not tempt
developers to remove the WriteHeader call.
Signed-off-by: beorn7 <beorn@grafana.com>
2019-08-19 18:19:23 +02:00
Andrey Yurchenkov
b0bcec8f2e
Fix typo in documentation
...
Signed-off-by: Andrey Yurchenkov <painhardcore@gmail.com>
2019-08-13 13:43:39 +03:00
beorn7
4b95c4ab42
Support new base64 encoding for pushing to the Pushgateway
...
This should only be released after PGW 0.9 is released.
Signed-off-by: beorn7 <beorn@grafana.com>
2019-07-22 20:31:37 +02:00
beorn7
48cd700822
Use method constants from the http package
...
Signed-off-by: beorn7 <beorn@grafana.com>
2019-06-28 15:23:00 +02:00
beorn7
9a1440d469
Add Delete method
...
Fixes #611 .
Signed-off-by: beorn7 <beorn@grafana.com>
2019-06-28 15:12:09 +02:00
beorn7
2f3a0f8f2e
Make the AlreadyRegisteredError useful for wrapped registries
...
Signed-off-by: beorn7 <beorn@grafana.com>
2019-06-14 17:55:35 +02:00
beorn7
f61dbeaded
Update doc comment of NewProcessCollector
...
- Now also works on MS Windows.
- The hints for updating from older versions is obsolete by now.
Signed-off-by: beorn7 <beorn@grafana.com>
2019-06-14 12:33:52 +02:00
Calle Pettersson
c5f4190338
Implement process collector for Windows ( #596 )
...
* Implement process collector for Windows
Signed-off-by: Calle Pettersson <calle@cape.nu>
2019-06-14 12:26:55 +02:00
beorn7
e7f6132a76
Remove work duplication in doc comment
...
Signed-off-by: beorn7 <beorn@grafana.com>
2019-06-12 01:46:17 +02:00
beorn7
761a2ff07c
Remove all deprecated features
...
This is in preparation of the upcoming v1 release.
Signed-off-by: beorn7 <beorn@grafana.com>
2019-06-11 16:28:47 +02:00
beorn7
8576729b6f
Add a simple buildInfoCollector
...
Signed-off-by: beorn7 <beorn@grafana.com>
2019-06-06 22:24:23 +02:00
beorn7
4d8144c11a
Add test for the new promhttp_metric_handler_errors_total metric
...
Signed-off-by: beorn7 <beorn@grafana.com>
2019-06-06 16:56:58 +02:00
beorn7
3fa9fca2cb
Add an error counter for internal errors in the HTTP handler
...
The doc comments explain the rationale in a quite detailed way.
Fixes #543 and #542
Signed-off-by: beorn7 <beorn@grafana.com>
2019-06-05 20:07:49 +02:00
beorn7
3d1d93eb51
Remove use of deprecated procfs functions
...
Signed-off-by: beorn7 <beorn@grafana.com>
2019-06-04 19:26:20 +02:00
Björn Rabenstein
388f9869ac
Merge pull request #588 from prometheus/beorn7/test
...
Attempt to fix flakiness of TestGoCollectorMemStats
2019-05-26 23:20:33 +02:00
beorn7
c818d96e15
Unflake TestGoCollectorGC
...
It is perfectly possible that a normal GC happens just before the
forced one. Thus seeing 2 GCs is fine.
Whenever this test failed, it was because two GCs were seen.
Signed-off-by: beorn7 <bjoern@rabenste.in>
2019-05-26 14:11:51 +02:00
beorn7
fe90eea9bb
Attempt to fix flakiness of TestGoCollectorMemStats
...
This is really lame as it essentially just uses longer times to
wait. The test is still timing-dependent and thus could still
theoretically fail with unlucky scheduling. However, we are testing
something that _is_ about timing. Turning this all into something not
timing-dependent would be first quite involved and second might defeat
the purpose of testing code that is inherently about timing.
Let's see how this works out in practice.
Signed-off-by: beorn7 <bjoern@rabenste.in>
2019-05-26 13:25:59 +02:00
beorn7
b5f69192ee
Purge remaining references to v0.10 from doc comments
...
Signed-off-by: beorn7 <bjoern@rabenste.in>
2019-05-16 23:35:36 +02:00
beorn7
bc54582c5e
Make use of pre-existing context in InstrumentRoundTripperTrace
...
Fixes #580
Signed-off-by: beorn7 <bjoern@rabenste.in>
2019-05-16 17:52:19 +02:00
beorn7
6c520f6aca
Add test to expose #580
...
Tests are heavily inspired by @shturec, see #584 .
Signed-off-by: beorn7 <bjoern@rabenste.in>
2019-05-16 17:52:19 +02:00
Björn Rabenstein
775f94f6fc
Merge pull request #581 from prometheus/beorn7/test
...
Fix race in TestGoCollectorMemStats
2019-05-16 15:31:37 +02:00
beorn7
e91cd81632
Remove outdated use-case description from doc comment
...
We stopped advertising binary-wide setting of a label quite a while
ago. This doc comment was missed in the cleanup.
Signed-off-by: beorn7 <bjoern@rabenste.in>
2019-05-16 11:23:48 +02:00
beorn7
709dc4b1de
Fix race in TestGoCollectorMemStats
...
Related to #573 (but only partially fixes it).
Signed-off-by: beorn7 <bjoern@rabenste.in>
2019-05-16 10:37:37 +02:00
Camilo Viecco
facfcc21f8
fix regression issue 574
...
Signed-off-by: Camilo Viecco <camilo_viecco1@symantec.com>
2019-05-14 11:44:55 -07:00
beorn7
886e2ee0c0
Clarify deprecation of `DefObjectives`
...
Previously, the whole `Objectives` field was marked as deprecated by
linters.
Signed-off-by: beorn7 <bjoern@rabenste.in>
2019-05-08 13:38:43 +02:00
Björn Rabenstein
2d3b0fe0e0
Merge pull request #568 from prometheus/beorn7/go-collector
...
Return previous memstats if Go collector needs longer than 1s
2019-05-07 00:10:32 +02:00
Bjoern Rabenstein
7cf0955421
Handle long ReadMemStats duration in Go collector
...
tl;dr: Return previous memstats if reading new ones takes longer than
1s.
See the doc comment of NewGoCollector for details.
Signed-off-by: beorn7 <bjoern@rabenste.in>
2019-05-06 23:28:31 +02:00
beorn7
547c945a62
Replace fmt.Sprintf by simple concatenation
...
In this simple case, it's the fastest and easiest.
Signed-off-by: beorn7 <bjoern@rabenste.in>
2019-05-06 23:28:31 +02:00
beorn7
016273b1f9
Fix and tweak Go collector tests
...
Signed-off-by: beorn7 <bjoern@rabenste.in>
2019-05-06 23:28:31 +02:00
Björn Rabenstein
f1d50bcc55
Merge pull request #559 from nghialt/master
...
Add HTTPClient interface to Pusher struct
2019-05-06 01:31:30 +02:00
NghiaLT
6ea6f07918
Replace HTTPClient with HTTPDoer; Update document accordingly
...
Signed-off-by: NghiaLT <nghialt.11@gmail.com>
2019-05-06 04:28:14 +07:00
Björn Rabenstein
906d2976cb
Merge pull request #567 from prometheus/beorn7/counter
...
Make TestCounterAddLarge more robust
2019-05-04 18:08:04 +02:00
Bjoern Rabenstein
bf1f4e4a24
Make TestCounterAddLarge more robust
...
The previous `float64(math.MaxUint64 + 1)` is too close to
`float64(math.MaxUint64)` to actually overflow as indended.
The counter code is actually converting forward and backward and
compare the original and twice-converted value. On most platform, this
will create a deviation and thus trigger the expected behavior. By
sheer "luck", one might end up with the same value and thus still use
the uint64 representation. Which is OK within the precision we can
expect. But it breaks the test. With this change, the next
representable floating point value greater than the floating point
value used to represent math.MaxUint64 is used.
Signed-off-by: Bjoern Rabenstein <bjoern@rabenste.in>
2019-05-03 22:25:32 +02:00
Bjoern Rabenstein
57f7bd35fd
Remove remaining traces of pre-go-1.8 handling
...
Signed-off-by: Bjoern Rabenstein <bjoern@rabenste.in>
2019-05-03 21:30:30 +02:00
KevinBetterQ
a325fb7566
fix: fix a typo
...
Signed-off-by: KevinBetterQ <1093850932@qq.com>
2019-05-01 17:50:23 +08:00
Bjoern Rabenstein
1173d73405
Increase minimum required Go version to 1.9
...
This allows us to simplify a bunch of code while still supporting the
last four Go minor versions.
We have also run into minor annoyances a couple of times by now to
keep supporting 1.7 and 1.8.
It's time to pull the plug!
Signed-off-by: Bjoern Rabenstein <bjoern@rabenste.in>
2019-04-28 23:28:57 +02:00
NghiaLT
c9d77912ac
Add HTTPClient interface to Pusher struct
...
Signed-off-by: NghiaLT <nghialt.11@gmail.com>
2019-04-26 16:53:21 +07:00
Simon Pasquier
6894bb3c7c
Add .golangci.yml
...
Signed-off-by: Simon Pasquier <spasquie@redhat.com>
2019-04-25 10:38:07 +02:00
Simon Pasquier
15da21f1e4
*: replace golang.org/x/net/context by context
...
The context package is available since Go 1.7 which is the minimal version
supported by client_golang.
Signed-off-by: Simon Pasquier <spasquie@redhat.com>
2019-04-09 15:10:51 +02:00
Sergiusz Urbaniak
60728f445d
prometheus/promhttp: actually observe values in trace in example
...
This is similar to
https://github.com/prometheus/client_golang/pull/535 fixing ExampleInstrumentRoundTripperDuration.
Signed-off-by: Sergiusz Urbaniak <sergiusz.urbaniak@gmail.com>
2019-03-06 13:59:53 +01:00
Frank Spitulski
10e34c668f
fix(push): incorporate changes from review
...
Signed-off-by: Frank Spitulski <fspituls@ucsd.edu>
2019-02-24 15:15:35 -08:00
Frank Spitulski
7b127b3fe5
feat(push): add format builder option
...
Allow users to specify which format the pusher should push in.
Signed-off-by: Frank Spitulski <fspituls@ucsd.edu>
2019-02-24 12:51:45 -08:00
beorn7
4c99dd6630
Port histogram improvements into noObjectivesSummary
...
Signed-off-by: beorn7 <beorn@soundcloud.com>
2019-02-11 19:10:17 +01:00
beorn7
295f7e4861
Fix some comment and naming nits as leftover from #536
...
Signed-off-by: beorn7 <beorn@soundcloud.com>
2019-02-11 18:52:52 +01:00
Pascal S. de Kloe
19ff277483
Save memory on histograms: slightly faster with less code ( #536 )
...
Use the highest bit for buffer switch tracking in histograms
Signed-off-by: Pascal S. de Kloe <pascal@quies.net>
2019-02-11 18:29:02 +01:00
kklipsch
a11607d7ae
fix client trace examples to actually capture metrics
...
Signed-off-by: kklipsch <kklipsch@example.com>
2019-02-04 20:30:19 +00:00
beorn7
8785922956
Revert "Fix tests to adhere to the recent change in prometheus/common"
...
This reverts commit 2c9811f88e
.
This is necessary because the changes in prometheus/common got reverted.
Signed-off-by: beorn7 <beorn@soundcloud.com>
2019-01-27 23:18:44 +01:00
Matt Layher
da7d5640a2
prometheus: reword comment to avoid cursing
...
Signed-off-by: Matt Layher <mdlayher@gmail.com>
2019-01-16 17:03:06 -05:00
beorn7
b3d6096432
Improve testutil error messages
...
This also satisfy newer staticcheck versions.
Signed-off-by: beorn7 <beorn@soundcloud.com>
2019-01-06 00:22:03 +01:00
beorn7
91b385db44
Fix staticcheck errors in push_test.go
...
Signed-off-by: beorn7 <beorn@soundcloud.com>
2019-01-05 22:11:07 +01:00
Björn Rabenstein
2945395678
Merge pull request #525 from RomanKrasavtsev/patch-1
...
fix typo
2019-01-05 21:35:34 +01:00
Björn Rabenstein
cf7da0f496
Merge pull request #521 from prometheus/beorn7/summary
...
Lock-free summaries without objectives
2019-01-05 21:23:43 +01:00
Roman Krasavtsev
c51ed6941c
fix typo
...
Signed-off-by: Roman Krasavtsev <mr.krasavtsev@gmail.com>
2019-01-04 21:14:10 +01:00
JoeWrightss
fb3d5cb2ad
Fix some spelling errors ( #523 )
...
* Fix some spelling errors
Signed-off-by: JoeWrightss <zhoulin.xie@daocloud.io>
2018-12-30 21:31:21 +01:00
gkze
ee4e5e071e
Fix typo again
...
Signed-off-by: gkze <george.kontridze@gmail.com>
2018-12-26 17:39:47 -08:00
beorn7
226b83ac2e
Provide lock-free implementation for Summary without objectives
...
Signed-off-by: beorn7 <beorn@soundcloud.com>
2018-12-24 11:23:13 +01:00
beorn7
a006a7550a
Remove unused constants and fields
...
Signed-off-by: beorn7 <beorn@soundcloud.com>
2018-12-24 11:22:57 +01:00
gkze
67bb2a7be3
Fix typo
...
Signed-off-by: gkze <george.kontridze@gmail.com>
2018-12-21 15:40:57 -08:00
beorn7
2c9811f88e
Fix tests to adhere to the recent change in prometheus/common
...
Signed-off-by: beorn7 <beorn@soundcloud.com>
2018-12-18 17:20:25 +01:00
beorn7
000ceb266b
Fix doc comment typo
...
Signed-off-by: beorn7 <beorn@soundcloud.com>
2018-12-18 16:30:34 +01:00
beorn7
619eb595ba
Simplify an `append` to `copy`
...
Signed-off-by: beorn7 <beorn@soundcloud.com>
2018-12-06 11:37:34 +01:00
beorn7
fae889635c
Fix #512
...
Signed-off-by: beorn7 <beorn@soundcloud.com>
2018-12-06 11:35:30 +01:00
beorn7
9542e4005c
Expose #512
...
Signed-off-by: beorn7 <beorn@soundcloud.com>
2018-12-06 11:22:30 +01:00
beorn7
48d3ae798b
Return observed duration from Timer.ObserveDuration
...
Signed-off-by: beorn7 <beorn@soundcloud.com>
2018-12-03 21:10:34 +01:00
beorn7
8d9c21f0cf
Nitpicking a doc comment
...
Signed-off-by: beorn7 <beorn@soundcloud.com>
2018-11-20 13:41:38 +01:00
Björn Rabenstein
f6443e74d4
Merge pull request #495 from SvenDowideit/add-extra-hints-to-clustermanager-example
...
Add the last few lines needed to show a new user how the Collector/Gatherer fits together
2018-11-20 13:35:42 +01:00
Dowideit, Sven (O&A, St. Lucia)
8324e65597
Add the last few lines needed to show a new user how the Collector/Gatherer fits together
...
Signed-off-by: Dowideit, Sven (O&A, St. Lucia) <Sven.Dowideit@csiro.au>
2018-11-20 15:46:27 +10:00
Peter Jausovec
a199184c14
Update the label is not valid error message to include the fqName
...
Fixes #504 .
Signed-off-by: Peter Jausovec <peter.jausovec@oracle.com>
2018-11-19 16:51:57 -08:00
beorn7
8c67c139e2
Remove accidental gogo/protobuf import
...
Signed-off-by: beorn7 <beorn@soundcloud.com>
2018-11-16 13:23:08 +01:00
beorn7
c4c1f3461e
Fix tiny punctuation issue in doc comment
...
Signed-off-by: beorn7 <beorn@soundcloud.com>
2018-11-15 18:40:33 +01:00
PhilipGough
f9739b3d97
Compare text strings directly in testutil
...
Signed-off-by: PhilipGough <philip.p.gough@gmail.com>
2018-11-15 16:03:57 +00:00
PhilipGough
30503fe98e
Exposes bug #498 - unexpected results for Histograms in testutil
...
Signed-off-by: PhilipGough <philip.p.gough@gmail.com>
2018-11-14 11:58:43 +00:00
beorn7
86702ea6b4
Fix metric comparison for empty labels
...
reflect.DeepEqual is not suitable for zero occurrences of repeated
proto messages. This changes the comparison to act on the string
representation of proto messages.
Signed-off-by: beorn7 <beorn@soundcloud.com>
2018-11-13 16:25:02 +01:00
beorn7
1db43792db
Expose bug #494
...
Signed-off-by: beorn7 <beorn@soundcloud.com>
2018-11-13 15:48:48 +01:00
Björn Rabenstein
da11cf2c83
Merge pull request #488 from peterj/master
...
Add more info to the inconsistent cardinality errors
2018-11-02 19:52:54 +01:00
Sevag Hanssian
88f4223778
Fix permissions of tempfile
...
Signed-off-by: Sevag Hanssian <sevag.hanssian@gmail.com>
2018-11-02 09:59:03 -07:00
Peter Jausovec
f1bec54758
Update the ExampleRegister test
...
Signed-off-by: Peter Jausovec <peter.jausovec@oracle.com>
2018-11-02 09:46:03 -07:00
Sevag Hanssian
924d5919f3
Improve WriteToTextfile doc
...
Signed-off-by: Sevag Hanssian <sevag.hanssian@gmail.com>
2018-11-02 09:31:41 -07:00
Peter Jausovec
b686a9e02e
Remove fmt from import
...
Signed-off-by: Peter Jausovec <peter.jausovec@oracle.com>
2018-11-02 09:21:12 -07:00
Peter Jausovec
ea348d7c20
Update code based on the PR feedback
...
Signed-off-by: Peter Jausovec <peter.jausovec@oracle.com>
2018-11-02 09:01:14 -07:00
Sevag Hanssian
42e6616334
Use code that already existed
...
Signed-off-by: Sevag Hanssian <sevag.hanssian@gmail.com>
2018-11-02 08:37:26 -07:00
Sevag Hanssian
1d54dabd43
Add WriteToTextfile test
...
Signed-off-by: Sevag Hanssian <sevag.hanssian@gmail.com>
2018-10-31 23:34:50 -07:00
Sevag Hanssian
c5bdd15ac3
Remove typo
...
Signed-off-by: Sevag Hanssian <sevag.hanssian@gmail.com>
2018-10-31 15:31:42 -07:00
Sevag Hanssian
e6fe89ce22
Add support for histograms and summaries
...
Signed-off-by: Sevag Hanssian <sevag.hanssian@gmail.com>
2018-10-31 15:27:11 -07:00
Sevag Hanssian
9416ff209b
First commit - WriteToTextfile
...
Signed-off-by: Sevag Hanssian <sevag.hanssian@gmail.com>
2018-10-31 14:22:11 -07:00
Peter Jausovec
ceb819208d
copy/pasta error
...
Signed-off-by: Peter Jausovec <peter.jausovec@oracle.com>
2018-10-31 11:16:16 -07:00
Peter Jausovec
4fe949f2fd
Add missing fmt import
...
Signed-off-by: Peter Jausovec <peter.jausovec@oracle.com>
2018-10-31 11:09:12 -07:00
Peter Jausovec
902733d080
Add more info to the inconsistent cardinality errors
...
Signed-off-by: Peter Jausovec <peter.jausovec@oracle.com>
2018-10-31 11:01:42 -07:00
beorn7
fb0f7fe8c2
Pull up HTTP changes into deprecated functions
...
So that also users of those can benefit. Obviously, we will end
updating deprecated functions one day (at latest once v0.10 is out).
Signed-off-by: beorn7 <beorn@soundcloud.com>
2018-10-22 12:36:33 +02:00
beorn7
62361fc0fb
Use streaming encoding of metrics
...
Signed-off-by: beorn7 <beorn@soundcloud.com>
2018-10-22 01:04:52 +02:00
beorn7
752f50d366
Merge branch 'use-gzip-pool' of github.com:glefloch/client_golang into beorn7/http
2018-10-20 00:51:31 +02:00
glefloch
c2c6fd2ab4
Fix PR comments
...
Signed-off-by: glefloch <glfloch@gmail.com>
2018-10-19 13:51:45 +02:00
glefloch
fdf4cbc87b
Use sync.Pool for gzipWriter
...
Signed-off-by: glefloch <glfloch@gmail.com>
2018-10-17 13:17:33 +02:00
beorn7
5e8ac3cd58
Add a concurrent end-to-end test for observe-register-gather
...
This is an attempt to expose
https://github.com/istio/istio/issues/8906 . The failure to do so
makes me believe the error is either already fixed in current
client_golang, or something weird I haven't spotted yet is happening
in the istio code.
Signed-off-by: beorn7 <beorn@soundcloud.com>
2018-10-10 16:59:24 +02:00
beorn7
e1fb14a776
Adjust TestRegisterWithOrGet to the present
...
Signed-off-by: beorn7 <beorn@soundcloud.com>
2018-10-10 15:41:21 +02:00
beorn7
edb489a1ef
Add check for duplicated label names
...
Fixes #471
Signed-off-by: beorn7 <beorn@soundcloud.com>
2018-09-30 16:25:48 +02:00
beorn7
dd9e125455
Expose failure to detect duplicate label names
...
This is #471 .
Signed-off-by: beorn7 <beorn@soundcloud.com>
2018-09-30 16:25:48 +02:00
beorn7
ff0177896a
Be more precise about concurrency requirements
...
Signed-off-by: beorn7 <beorn@soundcloud.com>
2018-09-29 10:47:28 +02:00
beorn7
7eb5e8a08a
Drain the desc channel after registering
...
This avoids leaking goroutines.
Signed-off-by: beorn7 <beorn@soundcloud.com>
2018-09-29 10:44:19 +02:00
David E Worth
c2c648fdcb
fix exponential buckets failure message
...
it appears there is a copy/paste error in the exponential buckets test failure message which is fixed here.
Signed-off-by: David Worth <dworth@strava.com>
2018-09-25 17:42:06 -06:00
beorn7
7973e4709d
Ensure 64bit alignment on 32bit platforms for histograms
...
Signed-off-by: beorn7 <beorn@soundcloud.com>
2018-09-24 13:28:13 +02:00
beorn7
3a6edf5ff8
Handle items newly deprecated in Go 1.11
...
Remove where possible and ignore staticcheck warnings where we have
to.
Signed-off-by: beorn7 <beorn@soundcloud.com>
2018-09-19 13:30:14 +02:00
beorn7
663a9ad019
Make Help strings optional
...
This is in line with
https://prometheus.io/docs/instrumenting/writing_clientlibs/#metric-description-and-help
Since the zero value of a string in Go is `""`, we cannot distinguish
between a Help string not set and an empty Help string. Thus, we just
make it formally optional here with an encouragement to set it in the
doc comment.
In v0.10, the Help string will probably become a "normal" argument of
the constructor rather than a field in an Opts struct.
Signed-off-by: beorn7 <beorn@soundcloud.com>
2018-09-17 12:07:31 +02:00
beorn7
713e6eb604
Let NewConst... functions detect invalid Desc
...
The error of the invalid Desc is returned in that case.
Signed-off-by: beorn7 <beorn@soundcloud.com>
2018-09-17 11:50:42 +02:00
beorn7
b7b390014b
Reformat doc comment of InstrumentHandler
...
To help linters detect the Deprecated message.
Signed-off-by: beorn7 <beorn@soundcloud.com>
2018-09-14 13:24:05 +02:00
beorn7
cec67c9ec8
Improve deprecated doc comment
...
Signed-off-by: beorn7 <beorn@soundcloud.com>
2018-09-14 12:48:16 +02:00
Björn Rabenstein
1362cad3aa
Merge pull request #458 from prometheus/beorn7/registry
...
Wrappable registerers
2018-09-14 12:15:22 +02:00
beorn7
fe28f32433
Discourage prefixing every metris with WrapRegistererWithPrefix
...
Signed-off-by: beorn7 <beorn@soundcloud.com>
2018-09-14 11:59:13 +02:00
beorn7
cf9b2a8c78
Rename WrapWith... to WrapRegistererWith...
...
Signed-off-by: beorn7 <beorn@soundcloud.com>
2018-09-13 17:43:05 +02:00
beorn7
837c7cb1f4
Update Collector example
...
It now uses the new WrapWith function instead of ConstLabels. Describe
is now implemented via DescribeByCollect.
Signed-off-by: beorn7 <beorn@soundcloud.com>
2018-09-12 15:34:13 +02:00
beorn7
84d7aa0cd9
Add wrapping of Registerers with labels and prefix
...
Essentially middleware for Registerers!
Signed-off-by: beorn7 <beorn@soundcloud.com>
2018-09-12 15:34:07 +02:00
beorn7
1b2bd1d665
Make Histogram observations atomic while keeping them lock-free
...
Fixes #275
This is rather tricky and required some studying of the Go memory
model. I have added copious code comments to explain what's going on.
Benchmarks haven't changed significantly, despite the additional
atomic operations now required during Observe. Write performance is
noticable, but it is also much more involved now and has a mutex. (But
note that Write is supposed to be a relatively rare operation and thus
not in the hot path compared to Observe.) Allocs haven't changed at
all.
OLD:
BenchmarkHistogramWithLabelValues-4 10000000 151 ns/op 0 B/op 0 allocs/op
BenchmarkHistogramNoLabels-4 50000000 36.0 ns/op 0 B/op 0 allocs/op
BenchmarkHistogramObserve1-4 50000000 28.1 ns/op 0 B/op 0 allocs/op
BenchmarkHistogramObserve2-4 10000000 160 ns/op 0 B/op 0 allocs/op
BenchmarkHistogramObserve4-4 5000000 378 ns/op 0 B/op 0 allocs/op
BenchmarkHistogramObserve8-4 2000000 768 ns/op 0 B/op 0 allocs/op
BenchmarkHistogramWrite1-4 1000000 1589 ns/op 896 B/op 37 allocs/op
BenchmarkHistogramWrite2-4 500000 2973 ns/op 1792 B/op 74 allocs/op
BenchmarkHistogramWrite4-4 300000 6979 ns/op 3584 B/op 148 allocs/op
BenchmarkHistogramWrite8-4 100000 10701 ns/op 7168 B/op 296 allocs/op
NEW:
BenchmarkHistogramWithLabelValues-4 10000000 191 ns/op 0 B/op 0 allocs/op
BenchmarkHistogramNoLabels-4 30000000 50.1 ns/op 0 B/op 0 allocs/op
BenchmarkHistogramObserve1-4 30000000 40.0 ns/op 0 B/op 0 allocs/op
BenchmarkHistogramObserve2-4 20000000 91.5 ns/op 0 B/op 0 allocs/op
BenchmarkHistogramObserve4-4 5000000 317 ns/op 0 B/op 0 allocs/op
BenchmarkHistogramObserve8-4 2000000 636 ns/op 0 B/op 0 allocs/op
BenchmarkHistogramWrite1-4 1000000 2072 ns/op 896 B/op 37 allocs/op
BenchmarkHistogramWrite2-4 300000 3729 ns/op 1792 B/op 74 allocs/op
BenchmarkHistogramWrite4-4 200000 7847 ns/op 3584 B/op 148 allocs/op
BenchmarkHistogramWrite8-4 100000 16975 ns/op 7168 B/op 296 allocs/op
Signed-off-by: beorn7 <beorn@soundcloud.com>
2018-09-12 15:03:44 +02:00
beorn7
1e08f788cf
Add test to expose #275
...
Signed-off-by: beorn7 <beorn@soundcloud.com>
2018-09-07 19:04:00 +02:00