Merge pull request #15829 from prometheus/krajo/fix-metadata-enqueueing

fix(remotewrite2): do not send uninitialized garbage if no metadata
This commit is contained in:
Bartlomiej Plotka 2025-01-16 09:14:48 +01:00 committed by GitHub
commit d52e689a20
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1919,12 +1919,17 @@ func populateV2TimeSeries(symbolTable *writev2.SymbolsTable, batch []timeSeries,
var nPendingSamples, nPendingExemplars, nPendingHistograms, nPendingMetadata int
for nPending, d := range batch {
pendingData[nPending].Samples = pendingData[nPending].Samples[:0]
// todo: should we also safeguard against empty metadata here?
if d.metadata != nil {
pendingData[nPending].Metadata.Type = writev2.FromMetadataType(d.metadata.Type)
pendingData[nPending].Metadata.HelpRef = symbolTable.Symbolize(d.metadata.Help)
pendingData[nPending].Metadata.UnitRef = symbolTable.Symbolize(d.metadata.Unit)
nPendingMetadata++
} else {
// Safeguard against sending garbage in case of not having metadata
// for whatever reason.
pendingData[nPending].Metadata.Type = writev2.Metadata_METRIC_TYPE_UNSPECIFIED
pendingData[nPending].Metadata.HelpRef = 0
pendingData[nPending].Metadata.UnitRef = 0
}
if sendExemplars {