mirror of
https://github.com/prometheus/prometheus.git
synced 2024-11-10 23:54:05 -08:00
commit
55dcb55498
15
CHANGELOG.md
15
CHANGELOG.md
|
@ -1,3 +1,18 @@
|
|||
## 0.12.0 / 2015-03-04
|
||||
* [CHANGE] Use client_golang v0.3.1. THIS CHANGES FINGERPRINTING AND INVALIDATES
|
||||
ALL PERSISTED FINGERPRINTS. You have to wipe your storage to use this or
|
||||
later versions. There is a version guard in place that will prevent you to
|
||||
run Prometheus with the stored data of an older Prometheus.
|
||||
* [BUGFIX] The change above fixes a weakness in the fingerprinting algorithm.
|
||||
* [ENHANCEMENT] The change above makes fingerprinting faster and less allocation
|
||||
intensive.
|
||||
* [FEATURE] OR operator and vector matching options. See docs for details.
|
||||
* [ENHANCEMENT] Scientific notation and special float values (Inf, NaN) now
|
||||
supported by the expression language.
|
||||
* [CHANGE] Dockerfile makes Prometheus use the Docker volume to store data
|
||||
(rather than /tmp/metrics).
|
||||
* [CHANGE] Makefile uses Go 1.4.2.
|
||||
|
||||
## 0.11.1 / 2015-02-27
|
||||
* [BUGFIX] Make series maintenance complete again. (Ever since 0.9.0rc4,
|
||||
or commit 0851945, series would not be archived, chunk descriptors would
|
||||
|
|
16
Godeps/Godeps.json
generated
16
Godeps/Godeps.json
generated
|
@ -29,23 +29,23 @@
|
|||
},
|
||||
{
|
||||
"ImportPath": "github.com/prometheus/client_golang/extraction",
|
||||
"Comment": "0.3.0",
|
||||
"Rev": "dbbb6c9e1dbb3bf19d0f9a61baa852cbfcee1896"
|
||||
"Comment": "0.3.1",
|
||||
"Rev": "f688948916633c167d810a9548d4b775da43b0b0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/prometheus/client_golang/model",
|
||||
"Comment": "0.3.0",
|
||||
"Rev": "dbbb6c9e1dbb3bf19d0f9a61baa852cbfcee1896"
|
||||
"Comment": "0.3.1",
|
||||
"Rev": "f688948916633c167d810a9548d4b775da43b0b0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/prometheus/client_golang/prometheus",
|
||||
"Comment": "0.3.0",
|
||||
"Rev": "dbbb6c9e1dbb3bf19d0f9a61baa852cbfcee1896"
|
||||
"Comment": "0.3.1",
|
||||
"Rev": "f688948916633c167d810a9548d4b775da43b0b0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/prometheus/client_golang/text",
|
||||
"Comment": "0.3.0",
|
||||
"Rev": "dbbb6c9e1dbb3bf19d0f9a61baa852cbfcee1896"
|
||||
"Comment": "0.3.1",
|
||||
"Rev": "f688948916633c167d810a9548d4b775da43b0b0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/prometheus/client_model/go",
|
||||
|
|
15
Godeps/_workspace/src/github.com/prometheus/client_golang/model/signature.go
generated
vendored
15
Godeps/_workspace/src/github.com/prometheus/client_golang/model/signature.go
generated
vendored
|
@ -17,6 +17,7 @@ import (
|
|||
"bytes"
|
||||
"hash"
|
||||
"hash/fnv"
|
||||
"sync"
|
||||
)
|
||||
|
||||
// SeparatorByte is a byte that cannot occur in valid UTF-8 sequences and is
|
||||
|
@ -28,7 +29,7 @@ var (
|
|||
// cache the signature of an empty label set.
|
||||
emptyLabelSignature = fnv.New64a().Sum64()
|
||||
|
||||
hashAndBufPool = make(chan *hashAndBuf, 1024)
|
||||
hashAndBufPool sync.Pool
|
||||
)
|
||||
|
||||
type hashAndBuf struct {
|
||||
|
@ -37,19 +38,15 @@ type hashAndBuf struct {
|
|||
}
|
||||
|
||||
func getHashAndBuf() *hashAndBuf {
|
||||
select {
|
||||
case hb := <-hashAndBufPool:
|
||||
return hb
|
||||
default:
|
||||
hb := hashAndBufPool.Get()
|
||||
if hb == nil {
|
||||
return &hashAndBuf{h: fnv.New64a()}
|
||||
}
|
||||
return hb.(*hashAndBuf)
|
||||
}
|
||||
|
||||
func putHashAndBuf(hb *hashAndBuf) {
|
||||
select {
|
||||
case hashAndBufPool <- hb:
|
||||
default:
|
||||
}
|
||||
hashAndBufPool.Put(hb)
|
||||
}
|
||||
|
||||
// LabelsToSignature returns a unique signature (i.e., fingerprint) for a given
|
||||
|
|
38
Godeps/_workspace/src/github.com/prometheus/client_golang/model/signature_test.go
generated
vendored
38
Godeps/_workspace/src/github.com/prometheus/client_golang/model/signature_test.go
generated
vendored
|
@ -15,6 +15,7 @@ package model
|
|||
|
||||
import (
|
||||
"runtime"
|
||||
"sync"
|
||||
"testing"
|
||||
)
|
||||
|
||||
|
@ -216,3 +217,40 @@ func TestEmptyLabelSignature(t *testing.T) {
|
|||
t.Fatal("expected LabelsToSignature with empty labels not to perform allocations")
|
||||
}
|
||||
}
|
||||
|
||||
func benchmarkMetricToFingerprintConc(b *testing.B, m Metric, e Fingerprint, concLevel int) {
|
||||
var start, end sync.WaitGroup
|
||||
start.Add(1)
|
||||
end.Add(concLevel)
|
||||
|
||||
for i := 0; i < concLevel; i++ {
|
||||
go func() {
|
||||
start.Wait()
|
||||
for j := b.N / concLevel; j >= 0; j-- {
|
||||
if a := metricToFingerprint(m); a != e {
|
||||
b.Fatalf("expected signature of %d for %s, got %d", e, m, a)
|
||||
}
|
||||
}
|
||||
end.Done()
|
||||
}()
|
||||
}
|
||||
b.ResetTimer()
|
||||
start.Done()
|
||||
end.Wait()
|
||||
}
|
||||
|
||||
func BenchmarkMetricToFingerprintTripleConc1(b *testing.B) {
|
||||
benchmarkMetricToFingerprintConc(b, Metric{"first-label": "first-label-value", "second-label": "second-label-value", "third-label": "third-label-value"}, 15738406913934009676, 1)
|
||||
}
|
||||
|
||||
func BenchmarkMetricToFingerprintTripleConc2(b *testing.B) {
|
||||
benchmarkMetricToFingerprintConc(b, Metric{"first-label": "first-label-value", "second-label": "second-label-value", "third-label": "third-label-value"}, 15738406913934009676, 2)
|
||||
}
|
||||
|
||||
func BenchmarkMetricToFingerprintTripleConc4(b *testing.B) {
|
||||
benchmarkMetricToFingerprintConc(b, Metric{"first-label": "first-label-value", "second-label": "second-label-value", "third-label": "third-label-value"}, 15738406913934009676, 4)
|
||||
}
|
||||
|
||||
func BenchmarkMetricToFingerprintTripleConc8(b *testing.B) {
|
||||
benchmarkMetricToFingerprintConc(b, Metric{"first-label": "first-label-value", "second-label": "second-label-value", "third-label": "third-label-value"}, 15738406913934009676, 8)
|
||||
}
|
||||
|
|
2
Godeps/_workspace/src/github.com/prometheus/client_golang/text/parse_test.go
generated
vendored
2
Godeps/_workspace/src/github.com/prometheus/client_golang/text/parse_test.go
generated
vendored
|
@ -385,7 +385,7 @@ request_duration_microseconds_count 2693
|
|||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
for i, scenario := range scenarios {
|
||||
|
|
Loading…
Reference in a new issue