mirror of
https://github.com/prometheus/prometheus.git
synced 2025-03-05 20:59:13 -08:00
Merge pull request #74 from prometheus/refactor/storage/simplifications
GetFingerprintsForLabelName simplifications.
This commit is contained in:
commit
cbad5da29b
|
@ -37,7 +37,7 @@ func (p *PersistenceAdapter) getMetricsWithLabels(labels model.LabelSet) ([]*mod
|
||||||
}
|
}
|
||||||
metrics := []*model.Metric{}
|
metrics := []*model.Metric{}
|
||||||
for _, fingerprint := range fingerprints {
|
for _, fingerprint := range fingerprints {
|
||||||
metric, err := p.persistence.GetMetricForFingerprint(fingerprint)
|
metric, err := p.persistence.GetMetricForFingerprint(*fingerprint)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -53,7 +53,7 @@ func (p *PersistenceAdapter) GetValueAtTime(labels model.LabelSet, timestamp *ti
|
||||||
}
|
}
|
||||||
samples := []*model.Sample{}
|
samples := []*model.Sample{}
|
||||||
for _, metric := range metrics {
|
for _, metric := range metrics {
|
||||||
sample, err := p.persistence.GetValueAtTime(metric, timestamp, p.stalenessPolicy)
|
sample, err := p.persistence.GetValueAtTime(*metric, *timestamp, *p.stalenessPolicy)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -74,7 +74,7 @@ func (p *PersistenceAdapter) GetBoundaryValues(labels model.LabelSet, interval *
|
||||||
sampleSets := []*model.SampleSet{}
|
sampleSets := []*model.SampleSet{}
|
||||||
for _, metric := range metrics {
|
for _, metric := range metrics {
|
||||||
// TODO: change to GetBoundaryValues() once it has the right return type.
|
// TODO: change to GetBoundaryValues() once it has the right return type.
|
||||||
sampleSet, err := p.persistence.GetRangeValues(metric, interval, p.stalenessPolicy)
|
sampleSet, err := p.persistence.GetRangeValues(*metric, *interval, *p.stalenessPolicy)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -97,7 +97,7 @@ func (p *PersistenceAdapter) GetRangeValues(labels model.LabelSet, interval *mod
|
||||||
|
|
||||||
sampleSets := []*model.SampleSet{}
|
sampleSets := []*model.SampleSet{}
|
||||||
for _, metric := range metrics {
|
for _, metric := range metrics {
|
||||||
sampleSet, err := p.persistence.GetRangeValues(metric, interval, p.stalenessPolicy)
|
sampleSet, err := p.persistence.GetRangeValues(*metric, *interval, *p.stalenessPolicy)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,21 +30,21 @@ type MetricPersistence interface {
|
||||||
Close() error
|
Close() error
|
||||||
|
|
||||||
// Record a new sample in the storage layer.
|
// Record a new sample in the storage layer.
|
||||||
AppendSample(sample model.Sample) error
|
AppendSample(model.Sample) error
|
||||||
|
|
||||||
// Get all of the metric fingerprints that are associated with the provided
|
// Get all of the metric fingerprints that are associated with the provided
|
||||||
// label set.
|
// label set.
|
||||||
GetFingerprintsForLabelSet(labelSet model.LabelSet) ([]*model.Fingerprint, error)
|
GetFingerprintsForLabelSet(model.LabelSet) ([]*model.Fingerprint, error)
|
||||||
|
|
||||||
// Get all of the metric fingerprints that are associated for a given label
|
// Get all of the metric fingerprints that are associated for a given label
|
||||||
// name.
|
// name.
|
||||||
GetFingerprintsForLabelName(labelName *model.LabelName) ([]*model.Fingerprint, error)
|
GetFingerprintsForLabelName(model.LabelName) ([]*model.Fingerprint, error)
|
||||||
|
|
||||||
GetMetricForFingerprint(f *model.Fingerprint) (*model.Metric, error)
|
GetMetricForFingerprint(model.Fingerprint) (*model.Metric, error)
|
||||||
|
|
||||||
GetValueAtTime(*model.Metric, *time.Time, *StalenessPolicy) (*model.Sample, error)
|
GetValueAtTime(model.Metric, time.Time, StalenessPolicy) (*model.Sample, error)
|
||||||
GetBoundaryValues(*model.Metric, *model.Interval, *StalenessPolicy) (*model.Sample, *model.Sample, error)
|
GetBoundaryValues(model.Metric, model.Interval, StalenessPolicy) (*model.Sample, *model.Sample, error)
|
||||||
GetRangeValues(*model.Metric, *model.Interval, *StalenessPolicy) (*model.SampleSet, error)
|
GetRangeValues(model.Metric, model.Interval, StalenessPolicy) (*model.SampleSet, error)
|
||||||
|
|
||||||
GetAllMetricNames() ([]string, error)
|
GetAllMetricNames() ([]string, error)
|
||||||
|
|
||||||
|
|
|
@ -791,7 +791,7 @@ func TestGetFingerprintsForLabelName(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
b := model.LabelName("name")
|
b := model.LabelName("name")
|
||||||
result, getErr := persistence.GetFingerprintsForLabelName(&b)
|
result, getErr := persistence.GetFingerprintsForLabelName(b)
|
||||||
|
|
||||||
if getErr != nil {
|
if getErr != nil {
|
||||||
t.Error(getErr)
|
t.Error(getErr)
|
||||||
|
@ -802,7 +802,7 @@ func TestGetFingerprintsForLabelName(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
b = model.LabelName("request_type")
|
b = model.LabelName("request_type")
|
||||||
result, getErr = persistence.GetFingerprintsForLabelName(&b)
|
result, getErr = persistence.GetFingerprintsForLabelName(b)
|
||||||
|
|
||||||
if getErr != nil {
|
if getErr != nil {
|
||||||
t.Error(getErr)
|
t.Error(getErr)
|
||||||
|
@ -813,7 +813,7 @@ func TestGetFingerprintsForLabelName(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
b = model.LabelName("language")
|
b = model.LabelName("language")
|
||||||
result, getErr = persistence.GetFingerprintsForLabelName(&b)
|
result, getErr = persistence.GetFingerprintsForLabelName(b)
|
||||||
|
|
||||||
if getErr != nil {
|
if getErr != nil {
|
||||||
t.Error(getErr)
|
t.Error(getErr)
|
||||||
|
@ -824,7 +824,7 @@ func TestGetFingerprintsForLabelName(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
b = model.LabelName("sprache")
|
b = model.LabelName("sprache")
|
||||||
result, getErr = persistence.GetFingerprintsForLabelName(&b)
|
result, getErr = persistence.GetFingerprintsForLabelName(b)
|
||||||
|
|
||||||
if getErr != nil {
|
if getErr != nil {
|
||||||
t.Error(getErr)
|
t.Error(getErr)
|
||||||
|
@ -887,7 +887,7 @@ func TestGetMetricForFingerprint(t *testing.T) {
|
||||||
t.Errorf("Expected one element.")
|
t.Errorf("Expected one element.")
|
||||||
}
|
}
|
||||||
|
|
||||||
v, e := persistence.GetMetricForFingerprint(result[0])
|
v, e := persistence.GetMetricForFingerprint(*result[0])
|
||||||
if e != nil {
|
if e != nil {
|
||||||
t.Error(e)
|
t.Error(e)
|
||||||
}
|
}
|
||||||
|
@ -912,7 +912,7 @@ func TestGetMetricForFingerprint(t *testing.T) {
|
||||||
t.Errorf("Expected one element.")
|
t.Errorf("Expected one element.")
|
||||||
}
|
}
|
||||||
|
|
||||||
v, e = persistence.GetMetricForFingerprint(result[0])
|
v, e = persistence.GetMetricForFingerprint(*result[0])
|
||||||
|
|
||||||
if e != nil {
|
if e != nil {
|
||||||
t.Error(e)
|
t.Error(e)
|
||||||
|
|
|
@ -231,7 +231,7 @@ func (l *LevelDBMetricPersistence) GetFingerprintsForLabelSet(labelSet model.Lab
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *LevelDBMetricPersistence) GetFingerprintsForLabelName(labelName *model.LabelName) (fps []*model.Fingerprint, err error) {
|
func (l *LevelDBMetricPersistence) GetFingerprintsForLabelName(labelName model.LabelName) (fps []*model.Fingerprint, err error) {
|
||||||
begin := time.Now()
|
begin := time.Now()
|
||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
|
@ -242,7 +242,7 @@ func (l *LevelDBMetricPersistence) GetFingerprintsForLabelName(labelName *model.
|
||||||
|
|
||||||
fps = make([]*model.Fingerprint, 0, 0)
|
fps = make([]*model.Fingerprint, 0, 0)
|
||||||
|
|
||||||
raw, err := l.labelNameToFingerprints.Get(coding.NewProtocolBufferEncoder(model.LabelNameToDTO(labelName)))
|
raw, err := l.labelNameToFingerprints.Get(coding.NewProtocolBufferEncoder(model.LabelNameToDTO(&labelName)))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -262,7 +262,7 @@ func (l *LevelDBMetricPersistence) GetFingerprintsForLabelName(labelName *model.
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *LevelDBMetricPersistence) GetMetricForFingerprint(f *model.Fingerprint) (m *model.Metric, err error) {
|
func (l *LevelDBMetricPersistence) GetMetricForFingerprint(f model.Fingerprint) (m *model.Metric, err error) {
|
||||||
begin := time.Now()
|
begin := time.Now()
|
||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
|
@ -271,7 +271,7 @@ func (l *LevelDBMetricPersistence) GetMetricForFingerprint(f *model.Fingerprint)
|
||||||
recordOutcome(storageOperations, storageLatency, duration, err, map[string]string{operation: getMetricForFingerprint, result: success}, map[string]string{operation: getMetricForFingerprint, result: failure})
|
recordOutcome(storageOperations, storageLatency, duration, err, map[string]string{operation: getMetricForFingerprint, result: success}, map[string]string{operation: getMetricForFingerprint, result: failure})
|
||||||
}()
|
}()
|
||||||
|
|
||||||
raw, err := l.fingerprintToMetrics.Get(coding.NewProtocolBufferEncoder(model.FingerprintToDTO(f)))
|
raw, err := l.fingerprintToMetrics.Get(coding.NewProtocolBufferEncoder(model.FingerprintToDTO(&f)))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -290,7 +290,7 @@ func (l *LevelDBMetricPersistence) GetMetricForFingerprint(f *model.Fingerprint)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *LevelDBMetricPersistence) GetBoundaryValues(m *model.Metric, i *model.Interval, s *metric.StalenessPolicy) (open *model.Sample, end *model.Sample, err error) {
|
func (l *LevelDBMetricPersistence) GetBoundaryValues(m model.Metric, i model.Interval, s metric.StalenessPolicy) (open *model.Sample, end *model.Sample, err error) {
|
||||||
begin := time.Now()
|
begin := time.Now()
|
||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
|
@ -300,14 +300,14 @@ func (l *LevelDBMetricPersistence) GetBoundaryValues(m *model.Metric, i *model.I
|
||||||
}()
|
}()
|
||||||
|
|
||||||
// XXX: Maybe we will want to emit incomplete sets?
|
// XXX: Maybe we will want to emit incomplete sets?
|
||||||
open, err = l.GetValueAtTime(m, &i.OldestInclusive, s)
|
open, err = l.GetValueAtTime(m, i.OldestInclusive, s)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
} else if open == nil {
|
} else if open == nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
end, err = l.GetValueAtTime(m, &i.NewestInclusive, s)
|
end, err = l.GetValueAtTime(m, i.NewestInclusive, s)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
} else if end == nil {
|
} else if end == nil {
|
||||||
|
@ -339,7 +339,7 @@ type iterator interface {
|
||||||
Value() []byte
|
Value() []byte
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *LevelDBMetricPersistence) GetValueAtTime(m *model.Metric, t *time.Time, s *metric.StalenessPolicy) (sample *model.Sample, err error) {
|
func (l *LevelDBMetricPersistence) GetValueAtTime(m model.Metric, t time.Time, s metric.StalenessPolicy) (sample *model.Sample, err error) {
|
||||||
begin := time.Now()
|
begin := time.Now()
|
||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
|
@ -353,7 +353,7 @@ func (l *LevelDBMetricPersistence) GetValueAtTime(m *model.Metric, t *time.Time,
|
||||||
// Candidate for Refactoring
|
// Candidate for Refactoring
|
||||||
k := &dto.SampleKey{
|
k := &dto.SampleKey{
|
||||||
Fingerprint: f,
|
Fingerprint: f,
|
||||||
Timestamp: indexable.EncodeTime(*t),
|
Timestamp: indexable.EncodeTime(t),
|
||||||
}
|
}
|
||||||
|
|
||||||
e, err := coding.NewProtocolBufferEncoder(k).Encode()
|
e, err := coding.NewProtocolBufferEncoder(k).Encode()
|
||||||
|
@ -473,7 +473,7 @@ func (l *LevelDBMetricPersistence) GetValueAtTime(m *model.Metric, t *time.Time,
|
||||||
firstTime = alternativeTime
|
firstTime = alternativeTime
|
||||||
}
|
}
|
||||||
|
|
||||||
firstDelta := firstTime.Sub(*t)
|
firstDelta := firstTime.Sub(t)
|
||||||
if firstDelta < 0 {
|
if firstDelta < 0 {
|
||||||
firstDelta *= -1
|
firstDelta *= -1
|
||||||
}
|
}
|
||||||
|
@ -486,7 +486,7 @@ func (l *LevelDBMetricPersistence) GetValueAtTime(m *model.Metric, t *time.Time,
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
sample = model.SampleFromDTO(m, t, firstValue)
|
sample = model.SampleFromDTO(&m, &t, firstValue)
|
||||||
|
|
||||||
if firstDelta == time.Duration(0) {
|
if firstDelta == time.Duration(0) {
|
||||||
return
|
return
|
||||||
|
@ -542,18 +542,18 @@ func (l *LevelDBMetricPersistence) GetValueAtTime(m *model.Metric, t *time.Time,
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
interpolated := interpolate(firstTime, secondTime, *firstValue.Value, *secondValue.Value, *t)
|
interpolated := interpolate(firstTime, secondTime, *firstValue.Value, *secondValue.Value, t)
|
||||||
|
|
||||||
sampleValue := &dto.SampleValue{
|
sampleValue := &dto.SampleValue{
|
||||||
Value: &interpolated,
|
Value: &interpolated,
|
||||||
}
|
}
|
||||||
|
|
||||||
sample = model.SampleFromDTO(m, t, sampleValue)
|
sample = model.SampleFromDTO(&m, &t, sampleValue)
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *LevelDBMetricPersistence) GetRangeValues(m *model.Metric, i *model.Interval, s *metric.StalenessPolicy) (v *model.SampleSet, err error) {
|
func (l *LevelDBMetricPersistence) GetRangeValues(m model.Metric, i model.Interval, s metric.StalenessPolicy) (v *model.SampleSet, err error) {
|
||||||
begin := time.Now()
|
begin := time.Now()
|
||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
|
|
|
@ -592,7 +592,7 @@ var testGetValueAtTime = func(t test.Tester) {
|
||||||
DeltaAllowance: input.staleness,
|
DeltaAllowance: input.staleness,
|
||||||
}
|
}
|
||||||
|
|
||||||
actual, err := persistence.GetValueAtTime(&m, &time, &p)
|
actual, err := persistence.GetValueAtTime(m, time, p)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("%d.%d(%s). Could not query for value: %q\n", i, j, behavior.name, err)
|
t.Errorf("%d.%d(%s). Could not query for value: %q\n", i, j, behavior.name, err)
|
||||||
}
|
}
|
||||||
|
@ -1058,7 +1058,7 @@ var testGetBoundaryValues = func(t test.Tester) {
|
||||||
DeltaAllowance: input.staleness,
|
DeltaAllowance: input.staleness,
|
||||||
}
|
}
|
||||||
|
|
||||||
openValue, endValue, err := persistence.GetBoundaryValues(&m, &interval, &p)
|
openValue, endValue, err := persistence.GetBoundaryValues(m, interval, p)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("%d.%d(%s). Could not query for value: %q\n", i, j, behavior.name, err)
|
t.Errorf("%d.%d(%s). Could not query for value: %q\n", i, j, behavior.name, err)
|
||||||
}
|
}
|
||||||
|
@ -1652,7 +1652,7 @@ var testGetRangeValues = func(t test.Tester) {
|
||||||
DeltaAllowance: input.staleness,
|
DeltaAllowance: input.staleness,
|
||||||
}
|
}
|
||||||
|
|
||||||
values, err := persistence.GetRangeValues(&m, &i, &p)
|
values, err := persistence.GetRangeValues(m, i, p)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("%d.%d(%s). Could not query for value: %q\n", i, j, behavior.name, err)
|
t.Errorf("%d.%d(%s). Could not query for value: %q\n", i, j, behavior.name, err)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue