Quentin D
644c80d136
Do not allocate memory when there's no constraints ( #1296 )
...
Signed-off-by: Quentin Devos <4972091+Okhoshi@users.noreply.github.com>
2023-06-27 12:21:36 +01:00
Soroosh Azary Marhabi
2cfd1eb960
Enable same linters as the Prometheus repo itself ( #1056 )
...
* Add gofumpt to github workflow & fix all files for it
Signed-off-by: sazary <soroosh@azary.ir>
* Add goimports to golangci & fix it's issues
Signed-off-by: sazary <soroosh@azary.ir>
* Add revive to golangci & fix it's issues
Signed-off-by: sazary <soroosh@azary.ir>
* Add errcheck & misspell to golangci and fix their issues
Signed-off-by: sazary <soroosh@azary.ir>
* Add govet & gosimple to golangci and fix their issues
Signed-off-by: sazary <soroosh@azary.ir>
* Enable all default linters of golangci
Signed-off-by: sazary <soroosh@azary.ir>
2022-06-17 09:04:06 +02:00
Bartlomiej Plotka
1f81b3e913
Added Transactional Gatherer allowed cached solutions ( #989 )
...
* Added cached collector.
Signed-off-by: Bartlomiej Plotka <bwplotka@gmail.com>
update.
Signed-off-by: Bartlomiej Plotka <bwplotka@gmail.com>
Attempt 2
Signed-off-by: Bartlomiej Plotka <bwplotka@gmail.com>
Added blocking registry, with raw collector and transactional handler.
Signed-off-by: Bartlomiej Plotka <bwplotka@gmail.com>
Added fast path to normal (empty) registry to save 8 allocs and 3K5B per Gather.
Signed-off-by: Bartlomiej Plotka <bwplotka@gmail.com>
Simplified API, added tests.
Signed-off-by: Bartlomiej Plotka <bwplotka@gmail.com>
Fix.
Signed-off-by: Bartlomiej Plotka <bwplotka@gmail.com>
Simplified implementation.
Signed-off-by: Bartlomiej Plotka <bwplotka@gmail.com>
Added benchmark.
Signed-off-by: Bartlomiej Plotka <bwplotka@gmail.com>
Optimized.
Signed-off-by: Bartlomiej Plotka <bwplotka@gmail.com>
* Optimization attempt.
Signed-off-by: Bartlomiej Plotka <bwplotka@gmail.com>
* Revert "Optimization attempt."
This reverts commit 2fcaf51be9
.
Optimization was not worth it:
benchstat v1.txt v2.txt
name old time/op new time/op delta
CachedTGatherer_Update/Update_of_one_element_without_reset-12 2.64µs ± 0% 4.05µs ± 0% ~ (p=1.000 n=1+1)
CachedTGatherer_Update/Update_of_all_elements_with_reset-12 701ms ± 0% 358ms ± 0% ~ (p=1.000 n=1+1)
CachedTGatherer_Update/Gather-12 535µs ± 0% 703934µs ± 0% ~ (p=1.000 n=1+1)
name old alloc/op new alloc/op delta
CachedTGatherer_Update/Update_of_one_element_without_reset-12 208B ± 0% 208B ± 0% ~ (all equal)
CachedTGatherer_Update/Update_of_all_elements_with_reset-12 40.2MB ± 0% 41.1MB ± 0% ~ (p=1.000 n=1+1)
CachedTGatherer_Update/Gather-12 48.6kB ± 0% 84.3kB ± 0% ~ (p=1.000 n=1+1)
name old allocs/op new allocs/op delta
CachedTGatherer_Update/Update_of_one_element_without_reset-12 3.00 ± 0% 3.00 ± 0% ~ (all equal)
CachedTGatherer_Update/Update_of_all_elements_with_reset-12 6.00 ± 0% 4003.00 ± 0% ~ (p=1.000 n=1+1)
CachedTGatherer_Update/Gather-12 1.00k ± 0% 2.01k ± 0% ~ (p=1.000 n=1+1)
* nit.
Signed-off-by: Bartlomiej Plotka <bwplotka@gmail.com>
* Another optimization attempt.
Signed-off-by: Bartlomiej Plotka <bwplotka@gmail.com>
* rename and further optimization.
Signed-off-by: Bartlomiej Plotka <bwplotka@gmail.com>
* Hopefully final optimization.
benchstat -delta-test=none v6.txt v9.txt
name old time/op new time/op delta
CachedTGatherer_Update/Update_of_one_element_without_reset-12 13.1ms ± 0% 0.0ms ± 0% -99.81%
CachedTGatherer_Update/Update_of_all_elements_with_reset-12 309ms ± 0% 282ms ± 0% -8.77%
CachedTGatherer_Update/Gather-12 422ms ± 0% 0ms ± 0% -99.95%
name old alloc/op new alloc/op delta
CachedTGatherer_Update/Update_of_one_element_without_reset-12 208B ± 0% 208B ± 0% 0.00%
CachedTGatherer_Update/Update_of_all_elements_with_reset-12 2.47kB ± 0% 1.67kB ± 0% -32.56%
CachedTGatherer_Update/Gather-12 52.8kB ± 0% 24.6kB ± 0% -53.34%
name old allocs/op new allocs/op delta
CachedTGatherer_Update/Update_of_one_element_without_reset-12 3.00 ± 0% 3.00 ± 0% 0.00%
CachedTGatherer_Update/Update_of_all_elements_with_reset-12 0.00 0.00 0.00%
CachedTGatherer_Update/Gather-12 1.00k ± 0% 0.00k ± 0% -99.60%
Signed-off-by: Bartlomiej Plotka <bwplotka@gmail.com>
* Removed obsolete comment
Signed-off-by: Bartlomiej Plotka <bwplotka@gmail.com>
* Fixed tests.
Signed-off-by: Bartlomiej Plotka <bwplotka@gmail.com>
* Removed cache.
Signed-off-by: Bartlomiej Plotka <bwplotka@gmail.com>
* Fixed tests.
Signed-off-by: Bartlomiej Plotka <bwplotka@gmail.com>
* Re-add cache.
Signed-off-by: Bartlomiej Plotka <bwplotka@gmail.com>
* Removed cache.
Signed-off-by: Bartlomiej Plotka <bwplotka@gmail.com>
2022-02-23 11:22:52 +00: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
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
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
62361fc0fb
Use streaming encoding of metrics
...
Signed-off-by: beorn7 <beorn@soundcloud.com>
2018-10-22 01:04:52 +02:00
Karsten Weiss
958ea82988
Fix typos
...
Signed-off-by: Karsten Weiss <knweiss@gmail.com>
2018-04-13 23:23:52 +02:00
beorn7
c551c3c661
promhttp: Introduce limit for connections in flight and timeout
2018-02-09 17:05:10 +01:00
beorn7
8fd47d2e8f
Provide an InstrumentedHandler
...
See https://github.com/prometheus/client_golang/issues/316 for details.
2018-02-08 16:27:51 +01:00
stuart nelson
d01fd62222
new handler instrumentation ( #285 )
...
Add new HTTP handler instrumentation
2017-04-24 15:13:19 -04:00
beorn7
a6321dd0b1
Create a "merge gatherer"
...
This allows to finally get rid of the infamous injection hook in the
interface. The old SetMetricFamilyInjectionHook still exist as a
deprecated function but is now implemented with the new plumbing under
the hood.
Now that we have multiple Gatherer implementation, I renamed
push.Registry to push.FromGatherer.
This commit also improves the consistency checks, which happened as a
byproduct of the refactoring to allow checking in both the "merge
gatherer" Gatherers as well as in the normal Registry.
2016-08-12 21:34:17 +02:00
beorn7
1dc03a72f6
Replace hashicorp/go-multierror by own implementation
...
The own implementation is much easier as it only has to serve our one
use case.
2016-08-04 16:03:06 +02:00
beorn7
bc0b2a3b17
Move http stuff in its own package promhttp
...
To keep backwards compatibility while not creating circular import
chains, some code had to be duplicated. But all functions using it
have been declared deprecated hereby.
The new ways of instrumenting handlers will all go into the new
package, and ultimately, the prometheus package itself will be
completely igorant of HTTP.
2016-08-03 18:06:48 +02:00