cbe221c969
sync.Pool is after all faster than the home-made free list. Especially under contention. To prove that, this commit also adds a benchmark for concurrent fingerprint calculation. Benchmark results: (Run with -cpu=1,2,4. x-y -> x goroutines with GOMAXPROCS=y.) benchmark old ns/op new ns/op delta BenchmarkMetricToFingerprintTripleConc4-4 320 138 -56.88% BenchmarkMetricToFingerprintTripleConc8-4 314 141 -55.10% BenchmarkMetricToFingerprintTripleConc4-2 344 264 -23.26% BenchmarkMetricToFingerprintTripleConc2-4 331 256 -22.66% BenchmarkMetricToFingerprintTripleConc8-2 338 263 -22.19% BenchmarkMetricToFingerprintTripleConc1-4 599 505 -15.69% BenchmarkMetricToFingerprintTripleConc4 553 493 -10.85% BenchmarkMetricToFingerprintTripleConc2-2 327 292 -10.70% BenchmarkMetricToFingerprintTripleConc8 554 496 -10.47% BenchmarkMetricToFingerprintTripleConc2 555 501 -9.73% BenchmarkMetricToFingerprintTripleConc1 554 509 -8.12% BenchmarkMetricToFingerprintTripleConc1-2 551 513 -6.90% |
||
---|---|---|
Godeps | ||
examples | ||
extraction | ||
model | ||
prometheus | ||
text | ||
.gitignore | ||
.travis.yml | ||
AUTHORS.md | ||
CHANGELOG.md | ||
CONTRIBUTING.md | ||
LICENSE | ||
Makefile | ||
NOTICE | ||
README.md | ||
VERSION |
README.md
Overview
This is the Prometheus Go client library. It provides several distinct functions, and there is separate documentation for each respective component. You will want to select the appropriate topic below to continue your journey:
-
See the exposition library if you want to export metrics to a Prometheus server or pushgateway
-
See the consumption library if you want to process metrics exported by a Prometheus client. (The Prometheus server is using that library.)
Getting Started
- The source code is periodically indexed: Go Exposition Client.
- All of the core developers are accessible via the Prometheus Developers Mailinglist.
Testing
$ go test ./...
Continuous Integration
Contributing
See the contributing guidelines.