client_golang/prometheus
Seth Bunce 4d54769c6b
Fix float64 comparison test failure on archs using FMA (#1133)
* Fix float64 comparison test failure on archs using FMA

Architectures using FMA optimization yield slightly different results so
we cannot assume floating point values will be precisely the same across
different architectures.

The solution in this change is to check "abs(a-b) < tolerance" instead
of comparing the exact values. This will give us confidence that the
histogram buckets are near identical.

Signed-off-by: Seth Bunce <seth.bunce@getcruise.com>

* Apply suggestions from code review

Co-authored-by: Daniel Swarbrick <daniel.swarbrick@gmail.com>
Signed-off-by: Seth Bunce <seth.bunce@getcruise.com>

* copy float compare dependency

Per discussion in the pull request, we'd like to avoid having an extra
dependency on a float comparison package. Instead, we copy the float compare
functions from the float comparison package.

The float comparison package we're choosing is this. The author of this
package has commented in the pull request and it looks like we have consensus
that this is the best option.
github.com/beorn7/floats

Signed-off-by: Seth Bunce <seth.bunce@gmail.com>

* remove float32 variant, relocate into separate file

This change removes the float32 variant of the AlmostEqual funcs, that we will
likely never use. This change also relocates the function into a separate file
to avoid modifying a file that's a fork of another vendored package.

Signed-off-by: Seth Bunce <seth.bunce@gmail.com>

Signed-off-by: Seth Bunce <seth.bunce@getcruise.com>
Signed-off-by: Seth Bunce <seth.bunce@gmail.com>
Co-authored-by: Daniel Swarbrick <daniel.swarbrick@gmail.com>
2022-11-07 19:20:43 +01:00
..
collectors collectors.GoCollector: Added rule support for granular metric configuration. (#1102) 2022-08-05 19:37:46 +02:00
graphite Enable same linters as the Prometheus repo itself (#1056) 2022-06-17 09:04:06 +02:00
internal Fix float64 comparison test failure on archs using FMA (#1133) 2022-11-07 19:20:43 +01:00
promauto Clarify documentation around what constructors do (#1125) 2022-09-12 11:17:56 +02:00
promhttp Clarify exemplar(Add|Observe) by renaming to (add|observe)WithExemplar (#1122) 2022-08-22 17:31:08 +02:00
push fix assorted oddities found by golangci-lint (#1040) 2022-08-03 06:30:51 +02:00
testutil testutil: Add ScrapeAndCompare (#1043) 2022-08-05 16:27:47 +02:00
.gitignore Rearrange file and package per convention. 2013-04-04 15:27:09 +02:00
README.md Update status badgets 2021-06-23 10:12:43 +02:00
benchmark_test.go Add a benchmark for concurrent counter increments 2018-01-19 15:15:10 -08:00
build_info_collector.go Use the runtime/metrics package for the Go collector for 1.17+ (#955) 2022-01-16 16:41:56 +00:00
collector.go collectors.GoCollector: Added rule support for granular metric configuration. (#1102) 2022-08-05 19:37:46 +02:00
collector_test.go Enable same linters as the Prometheus repo itself (#1056) 2022-06-17 09:04:06 +02:00
counter.go Fix race condition with Exemplar in Counter (#1146) 2022-10-17 20:50:50 +02:00
counter_test.go Raise exemplar labels limit from 64 to 128 (#1091) 2022-07-19 16:50:45 +02:00
desc.go Enable same linters as the Prometheus repo itself (#1056) 2022-06-17 09:04:06 +02:00
desc_test.go Add missing license headers 2018-08-22 13:53:56 +02:00
doc.go Update basic example to use custom registry 2022-10-21 16:06:49 +02:00
example_clustermanager_test.go Nitpicking a doc comment 2018-11-20 13:41:38 +01:00
example_metricvec_test.go Enable same linters as the Prometheus repo itself (#1056) 2022-06-17 09:04:06 +02:00
example_timer_complex_test.go Enable same linters as the Prometheus repo itself (#1056) 2022-06-17 09:04:06 +02:00
example_timer_gauge_test.go Enable same linters as the Prometheus repo itself (#1056) 2022-06-17 09:04:06 +02:00
example_timer_test.go Enable same linters as the Prometheus repo itself (#1056) 2022-06-17 09:04:06 +02:00
examples_test.go fix assorted oddities found by golangci-lint (#1040) 2022-08-03 06:30:51 +02:00
expvar_collector.go Add new collectors package 2021-05-08 10:43:31 +09:00
expvar_collector_test.go Simplify if expr in ExampleNewExpvarCollector() 2018-04-13 23:23:52 +02:00
fnv.go Add missing license headers 2018-08-22 13:53:56 +02:00
gauge.go Export MetricVec (again) 2020-10-15 14:32:54 +02:00
gauge_test.go fix tests warning about string(int) type conversions 2020-07-06 21:19:31 +09:00
gen_go_collector_metrics_set.go Generate new Go runtime metrics for go 1.19 (#1105) 2022-08-05 15:48:33 +02:00
get_pid.go Fix build against GopherJS (#897) 2022-08-05 16:28:54 +02:00
get_pid_gopherjs.go Fix build against GopherJS (#897) 2022-08-05 16:28:54 +02:00
go_collector.go collectors.GoCollector: Added rule support for granular metric configuration. (#1102) 2022-08-05 19:37:46 +02:00
go_collector_go116.go gocollector: Added options to Go Collector for changing the (#1031) 2022-04-13 09:55:22 +01:00
go_collector_go116_test.go Use the runtime/metrics package for the Go collector for 1.17+ (#955) 2022-01-16 16:41:56 +00:00
go_collector_latest.go collectors.GoCollector: Added rule support for granular metric configuration. (#1102) 2022-08-05 19:37:46 +02:00
go_collector_latest_test.go collectors.GoCollector: Added rule support for granular metric configuration. (#1102) 2022-08-05 19:37:46 +02:00
go_collector_metrics_go117_test.go Remove -Inf buckets from go collector histograms (#1049) 2022-05-13 10:04:45 +02:00
go_collector_metrics_go118_test.go Remove -Inf buckets from go collector histograms (#1049) 2022-05-13 10:04:45 +02:00
go_collector_metrics_go119_test.go Generate new Go runtime metrics for go 1.19 (#1105) 2022-08-05 15:48:33 +02:00
go_collector_test.go Use simpler locking in the Go 1.17 collector (#975) 2022-01-25 08:43:45 +01:00
histogram.go Avoid the term 'sparse' where possible 2022-10-31 16:23:08 +01:00
histogram_test.go Fix float64 comparison test failure on archs using FMA (#1133) 2022-11-07 19:20:43 +01:00
labels.go fix assorted oddities found by golangci-lint (#1040) 2022-08-03 06:30:51 +02:00
metric.go Fix `CumulativeCount` value of `+Inf` bucket created from exemplar (#1148) 2022-10-13 13:52:19 +02:00
metric_test.go Fix `CumulativeCount` value of `+Inf` bucket created from exemplar (#1148) 2022-10-13 13:52:19 +02:00
num_threads.go Fix build against GopherJS (#897) 2022-08-05 16:28:54 +02:00
num_threads_gopherjs.go Fix build against GopherJS (#897) 2022-08-05 16:28:54 +02:00
observer.go Update documentation for exemplar label limit (#1095) 2022-07-27 17:45:49 +02:00
process_collector.go Fix build against GopherJS (#897) 2022-08-05 16:28:54 +02:00
process_collector_js.go Fix build against GopherJS (#897) 2022-08-05 16:28:54 +02:00
process_collector_other.go Fix build against GopherJS (#897) 2022-08-05 16:28:54 +02:00
process_collector_test.go Add new go:build lines for go 1.17 2021-12-17 23:38:35 +01:00
process_collector_windows.go feat: Change processMemoryCounters struct uint declaration to uintptr 2020-04-13 10:44:09 +08:00
process_collector_windows_test.go Implement process collector for Windows (#596) 2019-06-14 12:26:55 +02:00
registry.go Extend prometheus.Registry to implement Collector (#1103) 2022-08-23 11:09:29 +02:00
registry_test.go Extend prometheus.Registry to implement Collector (#1103) 2022-08-23 11:09:29 +02:00
summary.go Document implications of negative observations 2021-05-26 23:41:30 +02:00
summary_test.go fix tests warning about string(int) type conversions 2020-07-06 21:19:31 +09:00
timer.go Return observed duration from Timer.ObserveDuration 2018-12-03 21:10:34 +01:00
timer_test.go Enable same linters as the Prometheus repo itself (#1056) 2022-06-17 09:04:06 +02:00
untyped.go Remove the deprecated uses of Untyped metrics 2017-08-29 17:31:45 +02:00
value.go Raise exemplar labels limit from 64 to 128 (#1091) 2022-07-19 16:50:45 +02:00
value_test.go Add missing license headers 2018-08-22 13:53:56 +02:00
vec.go Enable same linters as the Prometheus repo itself (#1056) 2022-06-17 09:04:06 +02:00
vec_test.go Enable same linters as the Prometheus repo itself (#1056) 2022-06-17 09:04:06 +02:00
wrap.go Enable same linters as the Prometheus repo itself (#1056) 2022-06-17 09:04:06 +02:00
wrap_test.go Enable same linters as the Prometheus repo itself (#1056) 2022-06-17 09:04:06 +02:00

README.md

See Go Reference.