MCPcopy Create free account
hub / github.com/cortexproject/cortex / LabelNamesStream

Method LabelNamesStream

pkg/ingester/ingester.go:2009–2042  ·  view source on GitHub ↗

LabelNamesStream return all the label names.

(req *client.LabelNamesRequest, stream client.Ingester_LabelNamesStreamServer)

Source from the content-addressed store, hash-verified

2007
2008// LabelNamesStream return all the label names.
2009func (i *Ingester) LabelNamesStream(req *client.LabelNamesRequest, stream client.Ingester_LabelNamesStreamServer) (err error) {
2010 defer recoverIngester(i.logger, &err)
2011
2012 ctx := stream.Context()
2013 userID, userErr := users.TenantID(ctx)
2014 if userErr != nil {
2015 return userErr
2016 }
2017
2018 // Set pprof labels for profiling
2019 pprof.Do(ctx, pprof.Labels("user", userID), func(ctx context.Context) {
2020 var resp *client.LabelNamesResponse
2021 var cleanup func()
2022 resp, cleanup, err = i.labelNamesCommon(ctx, req)
2023 defer cleanup()
2024
2025 if err != nil {
2026 return
2027 }
2028
2029 for i := 0; i < len(resp.LabelNames); i += metadataStreamBatchSize {
2030 j := min(i+metadataStreamBatchSize, len(resp.LabelNames))
2031 resp := &client.LabelNamesStreamResponse{
2032 LabelNames: resp.LabelNames[i:j],
2033 }
2034 err = client.SendLabelNamesStream(stream, resp)
2035 if err != nil {
2036 return
2037 }
2038 }
2039 })
2040
2041 return err
2042}
2043
2044// labelNamesCommon return all the label names.
2045// this should be used by LabelNames and LabelNamesStream.

Callers

nothing calls this directly

Implementers 1

Ingesterpkg/ingester/ingester.go

Calls 8

labelNamesCommonMethod · 0.95
TenantIDFunction · 0.92
SendLabelNamesStreamFunction · 0.92
recoverIngesterFunction · 0.85
cleanupFunction · 0.85
DoMethod · 0.65
ContextMethod · 0.45
LabelsMethod · 0.45

Tested by

no test coverage detected