Don't clone the metric if there's no remote writes.
The metric clone can't be further optimised, and is a non-trivial memory allocation cost so fast path it if there's no remote writes configured.
This commit is contained in:
parent
6c07453ec1
commit
1b8a474612
|
@ -77,6 +77,10 @@ func (s *ReloadableStorage) Append(smpl *model.Sample) error {
|
||||||
s.mtx.RLock()
|
s.mtx.RLock()
|
||||||
defer s.mtx.RUnlock()
|
defer s.mtx.RUnlock()
|
||||||
|
|
||||||
|
if s.queue == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
var snew model.Sample
|
var snew model.Sample
|
||||||
snew = *smpl
|
snew = *smpl
|
||||||
snew.Metric = smpl.Metric.Clone()
|
snew.Metric = smpl.Metric.Clone()
|
||||||
|
@ -92,9 +96,7 @@ func (s *ReloadableStorage) Append(smpl *model.Sample) error {
|
||||||
if snew.Metric == nil {
|
if snew.Metric == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
if s.queue != nil {
|
|
||||||
s.queue.Append(&snew)
|
s.queue.Append(&snew)
|
||||||
}
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue