mirror of
https://github.com/prometheus/prometheus.git
synced 2025-03-05 20:59:13 -08:00
Simplify Encoder's encoding signature.
The reality is that if we ever try to encode a Protocol Buffer and it fails, it's likely that such an error is ultimately not a runtime error and should be fixed forthwith. Thusly, we should rename ``Encoder.Encode`` to ``Encoder.MustEncode`` and drop the error return value.
This commit is contained in:
parent
516101f015
commit
4e0c932a4f
|
@ -14,5 +14,5 @@
|
||||||
package coding
|
package coding
|
||||||
|
|
||||||
type Encoder interface {
|
type Encoder interface {
|
||||||
Encode() ([]byte, error)
|
MustEncode() []byte
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,15 +22,15 @@ type ProtocolBuffer struct {
|
||||||
message proto.Message
|
message proto.Message
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p ProtocolBuffer) Encode() (raw []byte, err error) {
|
func (p ProtocolBuffer) MustEncode() []byte {
|
||||||
raw, err = proto.Marshal(p.message)
|
raw, err := proto.Marshal(p.message)
|
||||||
|
|
||||||
// XXX: Adjust legacy users of this to not check for error.
|
// XXX: Adjust legacy users of this to not check for error.
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return
|
return raw
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p ProtocolBuffer) String() string {
|
func (p ProtocolBuffer) String() string {
|
||||||
|
|
|
@ -341,11 +341,7 @@ func (w watermarkOperator) Operate(key, _ interface{}) (oErr *storage.OperatorEr
|
||||||
FirstTimestamp: seriesFrontier.optimalStartTime(curationState),
|
FirstTimestamp: seriesFrontier.optimalStartTime(curationState),
|
||||||
}
|
}
|
||||||
|
|
||||||
prospectiveKey, err := coding.NewProtocolBuffer(startKey.ToDTO()).Encode()
|
prospectiveKey := coding.NewProtocolBuffer(startKey.ToDTO()).MustEncode()
|
||||||
if err != nil {
|
|
||||||
// An encoding failure of a key is no reason to stop.
|
|
||||||
return &storage.OperatorError{error: err, Continuable: true}
|
|
||||||
}
|
|
||||||
if !w.sampleIterator.Seek(prospectiveKey) {
|
if !w.sampleIterator.Seek(prospectiveKey) {
|
||||||
// LevelDB is picky about the seek ranges. If an iterator was invalidated,
|
// LevelDB is picky about the seek ranges. If an iterator was invalidated,
|
||||||
// no work may occur, and the iterator cannot be recovered.
|
// no work may occur, and the iterator cannot be recovered.
|
||||||
|
|
|
@ -115,10 +115,7 @@ func newSeriesFrontier(f model.Fingerprint, d diskFrontier, i leveldb.Iterator)
|
||||||
Timestamp: upperSeek,
|
Timestamp: upperSeek,
|
||||||
}
|
}
|
||||||
|
|
||||||
raw, err := coding.NewProtocolBuffer(key).Encode()
|
raw := coding.NewProtocolBuffer(key).MustEncode()
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
i.Seek(raw)
|
i.Seek(raw)
|
||||||
|
|
||||||
if i.Key() == nil {
|
if i.Key() == nil {
|
||||||
|
@ -160,10 +157,7 @@ func newSeriesFrontier(f model.Fingerprint, d diskFrontier, i leveldb.Iterator)
|
||||||
|
|
||||||
key.Timestamp = lowerSeek
|
key.Timestamp = lowerSeek
|
||||||
|
|
||||||
raw, err = coding.NewProtocolBuffer(key).Encode()
|
raw = coding.NewProtocolBuffer(key).MustEncode()
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
i.Seek(raw)
|
i.Seek(raw)
|
||||||
|
|
||||||
|
|
|
@ -194,10 +194,7 @@ func levelDBGetRangeValues(l *LevelDBMetricPersistence, fp model.Fingerprint, i
|
||||||
Timestamp: indexable.EncodeTime(i.OldestInclusive),
|
Timestamp: indexable.EncodeTime(i.OldestInclusive),
|
||||||
}
|
}
|
||||||
|
|
||||||
e, err := coding.NewProtocolBuffer(k).Encode()
|
e := coding.NewProtocolBuffer(k).MustEncode()
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
iterator := l.MetricSamples.NewIterator(true)
|
iterator := l.MetricSamples.NewIterator(true)
|
||||||
defer iterator.Close()
|
defer iterator.Close()
|
||||||
|
|
|
@ -488,7 +488,7 @@ func (t *TieredStorage) loadChunkAroundTime(iterator leveldb.Iterator, frontier
|
||||||
}
|
}
|
||||||
|
|
||||||
// Try seeking to target key.
|
// Try seeking to target key.
|
||||||
rawKey, _ := coding.NewProtocolBuffer(targetKey).Encode()
|
rawKey := coding.NewProtocolBuffer(targetKey).MustEncode()
|
||||||
iterator.Seek(rawKey)
|
iterator.Seek(rawKey)
|
||||||
|
|
||||||
foundKey, err := extractSampleKey(iterator)
|
foundKey, err := extractSampleKey(iterator)
|
||||||
|
|
|
@ -32,24 +32,15 @@ func NewBatch() *batch {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *batch) Drop(key coding.Encoder) {
|
func (b *batch) Drop(key coding.Encoder) {
|
||||||
keyEncoded, err := key.Encode()
|
keyEncoded := key.MustEncode()
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
b.drops++
|
b.drops++
|
||||||
|
|
||||||
b.batch.Delete(keyEncoded)
|
b.batch.Delete(keyEncoded)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *batch) Put(key, value coding.Encoder) {
|
func (b *batch) Put(key, value coding.Encoder) {
|
||||||
keyEncoded, err := key.Encode()
|
keyEncoded := key.MustEncode()
|
||||||
if err != nil {
|
valueEncoded := value.MustEncode()
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
valueEncoded, err := value.Encode()
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
b.puts++
|
b.puts++
|
||||||
|
|
||||||
b.batch.Put(keyEncoded, valueEncoded)
|
b.batch.Put(keyEncoded, valueEncoded)
|
||||||
|
|
|
@ -251,10 +251,7 @@ func (l *LevelDBPersistence) Close() {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *LevelDBPersistence) Get(value coding.Encoder) (b []byte, err error) {
|
func (l *LevelDBPersistence) Get(value coding.Encoder) (b []byte, err error) {
|
||||||
key, err := value.Encode()
|
key := value.MustEncode()
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
return l.storage.Get(l.readOptions, key)
|
return l.storage.Get(l.readOptions, key)
|
||||||
}
|
}
|
||||||
|
@ -271,26 +268,16 @@ func (l *LevelDBPersistence) Has(value coding.Encoder) (h bool, err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *LevelDBPersistence) Drop(value coding.Encoder) (err error) {
|
func (l *LevelDBPersistence) Drop(value coding.Encoder) (err error) {
|
||||||
key, err := value.Encode()
|
key := value.MustEncode()
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
err = l.storage.Delete(l.writeOptions, key)
|
err = l.storage.Delete(l.writeOptions, key)
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *LevelDBPersistence) Put(key, value coding.Encoder) (err error) {
|
func (l *LevelDBPersistence) Put(key, value coding.Encoder) (err error) {
|
||||||
keyEncoded, err := key.Encode()
|
keyEncoded := key.MustEncode()
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
valueEncoded, err := value.Encode()
|
valueEncoded := value.MustEncode()
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
err = l.storage.Put(l.writeOptions, keyEncoded, valueEncoded)
|
err = l.storage.Put(l.writeOptions, keyEncoded, valueEncoded)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue