diff --git a/CHANGELOG.md b/CHANGELOG.md index 9b691ffe498..c9839e0a631 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,19 @@ ## main / unreleased - +* [CHANGE] **Breaking Change** Remove support tolerate_failed_blocks. [#2416](https://github.com/grafana/tempo/pull/2416) (@joe-elliott) + Removed config option: + ``` + query_frontend: + tolerate_failed_blocks: + ``` * [ENHANCEMENT] Add support to filter using negated regex operator `!~` [#2410](https://github.com/grafana/tempo/pull/2410) (@kousikmitra) * [ENHANCEMENT] Add `prefix` configuration option to `storage.trace.azure` and `storage.trace.gcs` [#2386](https://github.com/grafana/tempo/pull/2386) (@kousikmitra) * [ENHANCEMENT] Add `prefix` configuration option to `storage.trace.s3` [#2362](https://github.com/grafana/tempo/pull/2362) (@kousikmitra) +* [ENHANCEMENT] Add support for `concurrent_shards` under `trace_by_id` [#2416](https://github.com/grafana/tempo/pull/2416) (@joe-elliott) + ``` + query_frontend: + trace_by_id: + concurrent_shards: 3 + ``` * [FEATURE] Add support for `q` query param in `/api/v2/search//values` to filter results based on a TraceQL query [#2253](https://github.com/grafana/tempo/pull/2253) (@mapno) * [FEATURE] Add a GRPC streaming endpoint for traceql search [#2366](https://github.com/grafana/tempo/pull/2366) (@joe-elliott) * [ENHANCEMENT] Add `scope` parameter to `/api/search/tags` [#2282](https://github.com/grafana/tempo/pull/2282) (@joe-elliott) diff --git a/docs/sources/tempo/configuration/_index.md b/docs/sources/tempo/configuration/_index.md index a751295dc67..d1cf5b1c816 100644 --- a/docs/sources/tempo/configuration/_index.md +++ b/docs/sources/tempo/configuration/_index.md @@ -357,11 +357,6 @@ query_frontend: # (default: 2) [max_retries: ] - # number of block queries that are tolerated to error before considering the entire query as failed - # numbers greater than 0 make possible for a read to return partial results - # (default: 0) - [tolerate_failed_blocks: ] - search: # Maximum number of outstanding requests per tenant per frontend; requests beyond this error with HTTP 429. # (default: 2000) @@ -417,6 +412,10 @@ query_frontend: # (default: 50) [query_shards: ] + # The maximum number of shards to execute at once. If set to 0 query_shards is used. + # (default: 0) + [concurrent_shards: ] + # If set to a non-zero value, a second request will be issued at the provided duration. # Recommended to be set to p99 of search requests to reduce long-tail latency. [hedge_requests_at: | default = 2s ] diff --git a/modules/frontend/config.go b/modules/frontend/config.go index 902a52cee44..2b18e896037 100644 --- a/modules/frontend/config.go +++ b/modules/frontend/config.go @@ -18,11 +18,10 @@ var ( ) type Config struct { - Config v1.Config `yaml:",inline"` - MaxRetries int `yaml:"max_retries,omitempty"` - TolerateFailedBlocks int `yaml:"tolerate_failed_blocks,omitempty"` - Search SearchConfig `yaml:"search"` - TraceByID TraceByIDConfig `yaml:"trace_by_id"` + Config v1.Config `yaml:",inline"` + MaxRetries int `yaml:"max_retries,omitempty"` + Search SearchConfig `yaml:"search"` + TraceByID TraceByIDConfig `yaml:"trace_by_id"` } type SearchConfig struct { @@ -31,9 +30,10 @@ type SearchConfig struct { } type TraceByIDConfig struct { - QueryShards int `yaml:"query_shards,omitempty"` - Hedging HedgingConfig `yaml:",inline"` - SLO SLOConfig `yaml:",inline"` + QueryShards int `yaml:"query_shards,omitempty"` + ConcurrentShards int `yaml:"concurrent_shards,omitempty"` + Hedging HedgingConfig `yaml:",inline"` + SLO SLOConfig `yaml:",inline"` } type HedgingConfig struct { @@ -54,7 +54,6 @@ func (cfg *Config) RegisterFlagsAndApplyDefaults(string, *flag.FlagSet) { cfg.Config.MaxOutstandingPerTenant = 2000 cfg.MaxRetries = 2 - cfg.TolerateFailedBlocks = 0 cfg.Search = SearchConfig{ Sharder: SearchSharderConfig{ QueryBackendAfter: 15 * time.Minute, diff --git a/modules/frontend/frontend.go b/modules/frontend/frontend.go index 507efb3c787..05606e790c3 100644 --- a/modules/frontend/frontend.go +++ b/modules/frontend/frontend.go @@ -97,7 +97,7 @@ func newTraceByIDMiddleware(cfg Config, logger log.Logger) Middleware { rt := NewRoundTripper( next, newDeduper(logger), - newTraceByIDSharder(cfg.TraceByID.QueryShards, cfg.TolerateFailedBlocks, cfg.TraceByID.SLO, logger), + newTraceByIDSharder(&cfg.TraceByID, logger), newHedgedRequestWare(cfg.TraceByID.Hedging), ) diff --git a/modules/frontend/tracebyidsharding.go b/modules/frontend/tracebyidsharding.go index f0716e61767..333b5f11db1 100644 --- a/modules/frontend/tracebyidsharding.go +++ b/modules/frontend/tracebyidsharding.go @@ -5,7 +5,6 @@ import ( "context" "encoding/binary" "encoding/hex" - "fmt" "io" "math" "net/http" @@ -18,6 +17,7 @@ import ( "github.com/golang/protobuf/proto" //nolint:all //deprecated "github.com/grafana/tempo/modules/querier" "github.com/grafana/tempo/pkg/api" + "github.com/grafana/tempo/pkg/boundedwaitgroup" "github.com/grafana/tempo/pkg/model/trace" "github.com/grafana/tempo/pkg/tempopb" "github.com/opentracing/opentracing-go" @@ -29,26 +29,22 @@ const ( maxQueryShards = 100_000 ) -func newTraceByIDSharder(queryShards, maxFailedBlocks int, sloCfg SLOConfig, logger log.Logger) Middleware { +func newTraceByIDSharder(cfg *TraceByIDConfig, logger log.Logger) Middleware { return MiddlewareFunc(func(next http.RoundTripper) http.RoundTripper { return shardQuery{ next: next, - queryShards: queryShards, - sloCfg: sloCfg, + cfg: cfg, logger: logger, - blockBoundaries: createBlockBoundaries(queryShards - 1), // one shard will be used to query ingesters - maxFailedBlocks: uint32(maxFailedBlocks), + blockBoundaries: createBlockBoundaries(cfg.QueryShards - 1), // one shard will be used to query ingesters } }) } type shardQuery struct { next http.RoundTripper - queryShards int - sloCfg SLOConfig + cfg *TraceByIDConfig logger log.Logger blockBoundaries [][]byte - maxFailedBlocks uint32 } // RoundTrip implements http.RoundTripper @@ -75,11 +71,14 @@ func (s shardQuery) RoundTrip(r *http.Request) (*http.Response, error) { } // execute requests - wg := sync.WaitGroup{} + concurrentShards := uint(s.cfg.QueryShards) + if s.cfg.ConcurrentShards > 0 { + concurrentShards = uint(s.cfg.ConcurrentShards) + } + wg := boundedwaitgroup.New(concurrentShards) mtx := sync.Mutex{} var overallError error - var totalFailedBlocks uint32 combiner := trace.NewCombiner() combiner.Consume(&tempopb.Trace{}) // The query path returns a non-nil result even if no inputs (which is different than other paths which return nil for no inputs) statusCode := http.StatusNotFound @@ -140,14 +139,6 @@ func (s shardQuery) RoundTrip(r *http.Request) (*http.Response, error) { return } - if traceResp.Metrics != nil { - totalFailedBlocks += traceResp.Metrics.FailedBlocks - if totalFailedBlocks > s.maxFailedBlocks { - overallError = fmt.Errorf("too many failed block queries %d (max %d)", totalFailedBlocks, s.maxFailedBlocks) - return - } - } - // if not found bail if resp.StatusCode == http.StatusNotFound { return @@ -166,10 +157,6 @@ func (s shardQuery) RoundTrip(r *http.Request) (*http.Response, error) { return nil, overallError } - if totalFailedBlocks > 0 { - _ = level.Warn(s.logger).Log("msg", "some blocks failed. returning success due to tolerate_failed_blocks", "failed", totalFailedBlocks, "tolerate_failed_blocks", s.maxFailedBlocks) - } - overallTrace, _ := combiner.Result() if overallTrace == nil || statusCode != http.StatusOK { // translate non-404s into 500s. if, for instance, we get a 400 back from an internal component @@ -187,10 +174,8 @@ func (s shardQuery) RoundTrip(r *http.Request) (*http.Response, error) { } buff, err := proto.Marshal(&tempopb.TraceByIDResponse{ - Trace: overallTrace, - Metrics: &tempopb.TraceByIDMetrics{ - FailedBlocks: totalFailedBlocks, - }, + Trace: overallTrace, + Metrics: &tempopb.TraceByIDMetrics{}, }) if err != nil { _ = level.Error(s.logger).Log("msg", "error marshalling response to proto", "err", err) @@ -198,8 +183,8 @@ func (s shardQuery) RoundTrip(r *http.Request) (*http.Response, error) { } // only record metric when it's enabled and within slo - if s.sloCfg.DurationSLO != 0 { - if reqTime < s.sloCfg.DurationSLO { + if s.cfg.SLO.DurationSLO != 0 { + if reqTime < s.cfg.SLO.DurationSLO { // we are within SLO if query returned 200 within DurationSLO seconds // TODO: we don't have throughput metrics for TraceByID. sloTraceByIDCounter.WithLabelValues(tenantID).Inc() @@ -225,7 +210,7 @@ func (s *shardQuery) buildShardedRequests(parent *http.Request) ([]*http.Request return nil, err } - reqs := make([]*http.Request, s.queryShards) + reqs := make([]*http.Request, s.cfg.QueryShards) // build sharded block queries for i := 0; i < len(s.blockBoundaries); i++ { reqs[i] = parent.Clone(ctx) diff --git a/modules/frontend/tracebyidsharding_test.go b/modules/frontend/tracebyidsharding_test.go index b31e7518bbf..bdcc342f21e 100644 --- a/modules/frontend/tracebyidsharding_test.go +++ b/modules/frontend/tracebyidsharding_test.go @@ -11,6 +11,7 @@ import ( "net/http" "net/http/httptest" "testing" + "time" "github.com/go-kit/log" "github.com/gogo/protobuf/proto" @@ -20,6 +21,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/weaveworks/common/user" + "go.uber.org/atomic" ) func TestCreateBlockBoundaries(t *testing.T) { @@ -95,7 +97,9 @@ func TestBuildShardedRequests(t *testing.T) { queryShards := 2 sharder := &shardQuery{ - queryShards: queryShards, + cfg: &TraceByIDConfig{ + QueryShards: queryShards, + }, blockBoundaries: createBlockBoundaries(queryShards - 1), } @@ -243,77 +247,27 @@ func TestShardingWareDoRequest(t *testing.T) { err2: errors.New("booo"), expectedError: errors.New("booo"), }, - { - name: "failedBlocks under: 200+200", - status1: 200, - trace1: trace1, - status2: 200, - trace2: trace2, - failedBlockQueries1: 1, - failedBlockQueries2: 1, - expectedStatus: 200, - expectedTrace: splitTrace, - }, - { - name: "failedBlocks over: 200+200", - status1: 200, - trace1: trace1, - status2: 200, - trace2: trace2, - failedBlockQueries1: 0, - failedBlockQueries2: 5, - expectedError: errors.New("too many failed block queries 5 (max 2)"), - }, - { - name: "failedBlocks under: 200+404", - status1: 200, - trace1: trace1, - status2: 404, - failedBlockQueries1: 1, - failedBlockQueries2: 0, - expectedStatus: 200, - expectedTrace: trace1, - }, - { - name: "failedBlocks under: 404+200", - status1: 200, - trace1: trace1, - status2: 404, - failedBlockQueries1: 0, - failedBlockQueries2: 1, - expectedStatus: 200, - expectedTrace: trace1, - }, - { - name: "failedBlocks over: 404+200", - status1: 200, - trace1: trace1, - status2: 404, - failedBlockQueries1: 0, - failedBlockQueries2: 5, - expectedError: errors.New("too many failed block queries 5 (max 2)"), - }, } for _, tc := range tests { t.Run(tc.name, func(t *testing.T) { - sharder := newTraceByIDSharder(2, 2, testSLOcfg, log.NewNopLogger()) + sharder := newTraceByIDSharder(&TraceByIDConfig{ + QueryShards: 2, + SLO: testSLOcfg, + }, log.NewNopLogger()) next := RoundTripperFunc(func(r *http.Request) (*http.Response, error) { var testTrace *tempopb.Trace var statusCode int var err error - var failedBlockQueries int if r.RequestURI == "/querier/api/traces/1234?mode=ingesters" { testTrace = tc.trace1 statusCode = tc.status1 err = tc.err1 - failedBlockQueries = tc.failedBlockQueries1 } else { testTrace = tc.trace2 err = tc.err2 statusCode = tc.status2 - failedBlockQueries = tc.failedBlockQueries2 } if err != nil { @@ -324,17 +278,13 @@ func TestShardingWareDoRequest(t *testing.T) { if statusCode != 500 { if testTrace != nil { resBytes, err = proto.Marshal(&tempopb.TraceByIDResponse{ - Trace: testTrace, - Metrics: &tempopb.TraceByIDMetrics{ - FailedBlocks: uint32(failedBlockQueries), - }, + Trace: testTrace, + Metrics: &tempopb.TraceByIDMetrics{}, }) require.NoError(t, err) } else { resBytes, err = proto.Marshal(&tempopb.TraceByIDResponse{ - Metrics: &tempopb.TraceByIDMetrics{ - FailedBlocks: uint32(failedBlockQueries), - }, + Metrics: &tempopb.TraceByIDMetrics{}, }) require.NoError(t, err) } @@ -377,3 +327,52 @@ func TestShardingWareDoRequest(t *testing.T) { }) } } + +func TestConcurrentShards(t *testing.T) { + concurrency := 2 + + sharder := newTraceByIDSharder(&TraceByIDConfig{ + QueryShards: 20, + ConcurrentShards: concurrency, + SLO: testSLOcfg, + }, log.NewNopLogger()) + + sawMaxConcurrncy := atomic.NewBool(false) + currentlyExecuting := atomic.NewInt32(0) + next := RoundTripperFunc(func(r *http.Request) (*http.Response, error) { + current := currentlyExecuting.Inc() + if current > int32(concurrency) { + t.Fatal("too many concurrent requests") + } + if current == int32(concurrency) { + // future developer. i'm concerned under pressure this won't be set b/c only 1 request will be executed at a time + // feel free to remove + sawMaxConcurrncy.Store(true) + } + + // force concurrency + time.Sleep(100 * time.Millisecond) + resBytes, err := proto.Marshal(&tempopb.TraceByIDResponse{ + Trace: &tempopb.Trace{}, + Metrics: &tempopb.TraceByIDMetrics{}, + }) + require.NoError(t, err) + + currentlyExecuting.Dec() + return &http.Response{ + Body: io.NopCloser(bytes.NewReader(resBytes)), + StatusCode: 200, + }, nil + }) + + testRT := NewRoundTripper(next, sharder) + + req := httptest.NewRequest("GET", "/api/traces/1234", nil) + ctx := req.Context() + ctx = user.InjectOrgID(ctx, "blerg") + req = req.WithContext(ctx) + + _, err := testRT.RoundTrip(req) + require.NoError(t, err) + require.True(t, sawMaxConcurrncy.Load()) +} diff --git a/modules/querier/querier.go b/modules/querier/querier.go index c9cd0b3e43e..ed600baf297 100644 --- a/modules/querier/querier.go +++ b/modules/querier/querier.go @@ -241,7 +241,6 @@ func (q *Querier) FindTraceByID(ctx context.Context, req *tempopb.TraceByIDReque ot_log.Int("combinedTraces", traceCountTotal)) } - var failedBlocks int if req.QueryMode == QueryModeBlocks || req.QueryMode == QueryModeAll { span.LogFields(ot_log.String("msg", "searching store")) span.LogFields(ot_log.String("timeStart", fmt.Sprint(timeStart))) @@ -253,13 +252,8 @@ func (q *Querier) FindTraceByID(ctx context.Context, req *tempopb.TraceByIDReque return nil, retErr } - if blockErrs != nil { - failedBlocks = len(blockErrs) - span.LogFields( - ot_log.Int("failedBlocks", failedBlocks), - ot_log.Error(multierr.Combine(blockErrs...)), - ) - _ = level.Warn(log.Logger).Log("msg", fmt.Sprintf("failed to query %d blocks", failedBlocks), "blockErrs", multierr.Combine(blockErrs...)) + if len(blockErrs) > 0 { + return nil, multierr.Combine(blockErrs...) } span.LogFields( @@ -274,10 +268,8 @@ func (q *Querier) FindTraceByID(ctx context.Context, req *tempopb.TraceByIDReque completeTrace, _ := combiner.Result() return &tempopb.TraceByIDResponse{ - Trace: completeTrace, - Metrics: &tempopb.TraceByIDMetrics{ - FailedBlocks: uint32(failedBlocks), - }, + Trace: completeTrace, + Metrics: &tempopb.TraceByIDMetrics{}, }, nil } diff --git a/pkg/tempopb/tempo.pb.go b/pkg/tempopb/tempo.pb.go index 41280bc64b9..9e3dd548c19 100644 --- a/pkg/tempopb/tempo.pb.go +++ b/pkg/tempopb/tempo.pb.go @@ -151,7 +151,6 @@ func (m *TraceByIDResponse) GetMetrics() *TraceByIDMetrics { } type TraceByIDMetrics struct { - FailedBlocks uint32 `protobuf:"varint,1,opt,name=failedBlocks,proto3" json:"failedBlocks,omitempty"` } func (m *TraceByIDMetrics) Reset() { *m = TraceByIDMetrics{} } @@ -187,13 +186,6 @@ func (m *TraceByIDMetrics) XXX_DiscardUnknown() { var xxx_messageInfo_TraceByIDMetrics proto.InternalMessageInfo -func (m *TraceByIDMetrics) GetFailedBlocks() uint32 { - if m != nil { - return m.FailedBlocks - } - return 0 -} - // SearchRequest takes no block parameters and implies a "recent traces" search type SearchRequest struct { // case insensitive partial match @@ -1432,97 +1424,96 @@ func init() { func init() { proto.RegisterFile("pkg/tempopb/tempo.proto", fileDescriptor_f22805646f4f62b6) } var fileDescriptor_f22805646f4f62b6 = []byte{ - // 1437 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x57, 0x4d, 0x73, 0x1b, 0x45, - 0x13, 0xf6, 0xda, 0xb2, 0x64, 0xb5, 0x2c, 0xc7, 0x9e, 0x37, 0x71, 0x14, 0x39, 0xaf, 0xed, 0x5a, - 0x5c, 0x60, 0x28, 0x22, 0xc7, 0x4a, 0x20, 0x90, 0x54, 0x41, 0xe1, 0xb2, 0xc9, 0xa7, 0x43, 0x58, - 0x19, 0x1f, 0xb8, 0xad, 0x76, 0x27, 0xca, 0x96, 0xa5, 0x1d, 0x65, 0x77, 0xe4, 0xb2, 0x38, 0x71, - 0xe2, 0xc4, 0x81, 0xbf, 0x40, 0x15, 0x55, 0xfc, 0x10, 0x2e, 0x39, 0xe6, 0x48, 0x71, 0x48, 0x51, - 0xc9, 0x2f, 0xe0, 0xc8, 0x8d, 0xea, 0x9e, 0x99, 0xfd, 0xb2, 0x6c, 0x0a, 0x38, 0x69, 0xfa, 0x99, - 0x67, 0x7a, 0xba, 0x9f, 0xe9, 0xe9, 0x1d, 0xc1, 0xe5, 0xe1, 0x51, 0x6f, 0x4b, 0xf2, 0xc1, 0x50, - 0x0c, 0xbb, 0xea, 0xb7, 0x35, 0x8c, 0x84, 0x14, 0xac, 0xa2, 0xc1, 0xe6, 0x45, 0x19, 0xb9, 0x1e, - 0xdf, 0x3a, 0xde, 0xde, 0xa2, 0x81, 0x9a, 0x6e, 0x2e, 0x7b, 0x62, 0x30, 0x10, 0x21, 0xc2, 0x6a, - 0xa4, 0xf1, 0x6b, 0xbd, 0x40, 0x3e, 0x1b, 0x75, 0x5b, 0x9e, 0x18, 0x6c, 0xf5, 0x44, 0x4f, 0x6c, - 0x11, 0xdc, 0x1d, 0x3d, 0x25, 0x8b, 0x0c, 0x1a, 0x29, 0xba, 0xfd, 0x9d, 0x05, 0x8b, 0x07, 0xe8, - 0x76, 0x67, 0x7c, 0x7f, 0xd7, 0xe1, 0xcf, 0x47, 0x3c, 0x96, 0xac, 0x01, 0x15, 0xda, 0xea, 0xfe, - 0x6e, 0xc3, 0x5a, 0xb7, 0x36, 0xe7, 0x1d, 0x63, 0xb2, 0x55, 0x80, 0x6e, 0x5f, 0x78, 0x47, 0x1d, - 0xe9, 0x46, 0xb2, 0x31, 0xbd, 0x6e, 0x6d, 0x56, 0x9d, 0x0c, 0xc2, 0x9a, 0x30, 0x47, 0xd6, 0x5e, - 0xe8, 0x37, 0x66, 0x68, 0x36, 0xb1, 0xd9, 0x55, 0xa8, 0x3e, 0x1f, 0xf1, 0x68, 0xbc, 0x2f, 0x7c, - 0xde, 0x98, 0xa5, 0xc9, 0x14, 0xb0, 0x43, 0x58, 0xca, 0xc4, 0x11, 0x0f, 0x45, 0x18, 0x73, 0xb6, - 0x01, 0xb3, 0xb4, 0x33, 0x85, 0x51, 0x6b, 0x2f, 0xb4, 0xb4, 0x26, 0x2d, 0xa2, 0x3a, 0x6a, 0x92, - 0xdd, 0x80, 0xca, 0x80, 0xcb, 0x28, 0xf0, 0x62, 0x8a, 0xa8, 0xd6, 0xbe, 0x92, 0xe7, 0xa1, 0xcb, - 0x7d, 0x45, 0x70, 0x0c, 0xd3, 0xfe, 0x30, 0x93, 0xb7, 0x9e, 0x64, 0x36, 0xcc, 0x3f, 0x75, 0x83, - 0x3e, 0xf7, 0x77, 0x30, 0xe6, 0x98, 0x76, 0xad, 0x3b, 0x39, 0xcc, 0xfe, 0x69, 0x1a, 0xea, 0x1d, - 0xee, 0x46, 0xde, 0x33, 0xa3, 0xd6, 0x6d, 0x28, 0x1d, 0xb8, 0x3d, 0x64, 0xcf, 0x6c, 0xd6, 0xda, - 0xeb, 0xc9, 0xde, 0x39, 0x56, 0x0b, 0x29, 0x7b, 0xa1, 0x8c, 0xc6, 0x3b, 0xa5, 0x17, 0xaf, 0xd6, - 0xa6, 0x1c, 0x5a, 0xc3, 0x36, 0xa0, 0xbe, 0x1f, 0x84, 0xbb, 0xa3, 0xc8, 0x95, 0x81, 0x08, 0xf7, - 0x55, 0x02, 0x75, 0x27, 0x0f, 0x12, 0xcb, 0x3d, 0xc9, 0xb0, 0x66, 0x34, 0x2b, 0x0b, 0xb2, 0x8b, - 0x30, 0xfb, 0x28, 0x18, 0x04, 0xb2, 0x51, 0xa2, 0x59, 0x65, 0x20, 0x1a, 0xd3, 0x61, 0xcd, 0x2a, - 0x94, 0x0c, 0xb6, 0x08, 0x33, 0x3c, 0xf4, 0x1b, 0x65, 0xc2, 0x70, 0x88, 0xbc, 0x2f, 0xf1, 0x30, - 0x1a, 0x73, 0x74, 0x32, 0xca, 0x68, 0xde, 0x82, 0x6a, 0x12, 0x38, 0x2e, 0x3a, 0xe2, 0x63, 0x52, - 0xa5, 0xea, 0xe0, 0x10, 0x17, 0x1d, 0xbb, 0xfd, 0x11, 0xd7, 0x95, 0xa0, 0x8c, 0xdb, 0xd3, 0x1f, - 0x59, 0xf6, 0xb7, 0x33, 0xc0, 0x94, 0x00, 0xa4, 0x9b, 0xd1, 0xea, 0x26, 0x54, 0x63, 0x23, 0x8b, - 0x3e, 0xd4, 0xe5, 0xc9, 0x82, 0x39, 0x29, 0x11, 0xeb, 0x91, 0xaa, 0xe8, 0xfe, 0xae, 0xde, 0xc8, - 0x98, 0x58, 0x53, 0x94, 0xd0, 0x13, 0xb7, 0xc7, 0xb5, 0x2a, 0x29, 0x80, 0xba, 0x0d, 0xdd, 0x1e, - 0x8f, 0x0f, 0x84, 0x72, 0xad, 0x95, 0xc9, 0x83, 0x58, 0xb3, 0x3c, 0xf4, 0x84, 0x1f, 0x84, 0x3d, - 0x5d, 0x96, 0x89, 0x8d, 0x1e, 0x82, 0xd0, 0xe7, 0x27, 0xe8, 0xae, 0x13, 0x7c, 0xc3, 0xb5, 0x62, - 0x79, 0x10, 0xeb, 0x46, 0x0a, 0xe9, 0xf6, 0x1d, 0xee, 0x89, 0xc8, 0x8f, 0x1b, 0x15, 0x55, 0x37, - 0x59, 0x0c, 0x39, 0xbe, 0x2b, 0xdd, 0x3d, 0xb3, 0x93, 0x92, 0x39, 0x87, 0x61, 0x9e, 0xc7, 0x3c, - 0x8a, 0x03, 0x11, 0x36, 0xaa, 0x2a, 0x4f, 0x6d, 0x32, 0x06, 0xa5, 0x18, 0xb7, 0x87, 0x75, 0x6b, - 0xb3, 0xe4, 0xd0, 0x18, 0xef, 0xe2, 0x53, 0x21, 0x24, 0x8f, 0x28, 0xb0, 0x1a, 0xed, 0x99, 0x41, - 0xec, 0x13, 0x58, 0x30, 0x8a, 0xea, 0xeb, 0x74, 0x13, 0xca, 0x74, 0x63, 0x4c, 0xad, 0x5e, 0xcd, - 0xdf, 0x13, 0xc5, 0xde, 0xe7, 0xd2, 0xc5, 0xa8, 0x1c, 0xcd, 0x65, 0xd7, 0x8b, 0xd7, 0xab, 0x78, - 0x62, 0xa7, 0xee, 0xd6, 0x9f, 0x16, 0xfc, 0x6f, 0x82, 0xc7, 0x62, 0x5f, 0xa9, 0xa6, 0x7d, 0x65, - 0x13, 0x2e, 0x44, 0x42, 0xc8, 0x0e, 0x8f, 0x8e, 0x03, 0x8f, 0x3f, 0x76, 0x07, 0xa6, 0xa4, 0x8a, - 0x30, 0x9e, 0x08, 0x42, 0xe4, 0x9e, 0x78, 0xaa, 0xcd, 0xe4, 0x41, 0xf6, 0x3e, 0x2c, 0x51, 0x19, - 0x1c, 0x04, 0x03, 0xfe, 0x55, 0x18, 0x9c, 0x3c, 0x76, 0x43, 0x41, 0xa7, 0x5f, 0x72, 0x4e, 0x4f, - 0xa0, 0x92, 0x7e, 0x7a, 0xb9, 0xd4, 0x45, 0xc9, 0x20, 0xec, 0x3d, 0xa8, 0xc4, 0x43, 0x37, 0xec, - 0x70, 0x49, 0xe7, 0x5f, 0x6b, 0x2f, 0xa6, 0x0a, 0x28, 0xdc, 0x31, 0x04, 0xfb, 0x1e, 0x54, 0x34, - 0xc6, 0xde, 0x82, 0x59, 0x44, 0x8d, 0xda, 0xf5, 0xdc, 0x22, 0x47, 0xcd, 0xa1, 0x26, 0x03, 0x57, - 0x7a, 0xcf, 0xb8, 0xaf, 0xef, 0xbe, 0x31, 0xed, 0x5f, 0x2c, 0x28, 0x21, 0x93, 0x2d, 0x43, 0x19, - 0xb9, 0x89, 0x6a, 0xda, 0xc2, 0xa2, 0x08, 0x53, 0xa5, 0x68, 0x3c, 0x39, 0xf1, 0x99, 0xb3, 0x12, - 0xdf, 0x80, 0xba, 0x49, 0x13, 0xed, 0x58, 0x4b, 0x94, 0x07, 0xd9, 0x1d, 0x00, 0x57, 0xca, 0x28, - 0xe8, 0x8e, 0x24, 0x47, 0x79, 0x30, 0x99, 0x95, 0x24, 0x19, 0xfd, 0xf5, 0x39, 0xde, 0x6e, 0x3d, - 0xe4, 0xe3, 0x43, 0x6c, 0x00, 0x4e, 0x86, 0x6e, 0xff, 0x61, 0x99, 0x7e, 0x69, 0xba, 0xec, 0x26, - 0x5c, 0x08, 0xc2, 0x78, 0xc8, 0x3d, 0xc9, 0xfd, 0x03, 0x53, 0x8e, 0x98, 0x79, 0x11, 0x66, 0x6f, - 0xc3, 0x42, 0x02, 0xed, 0x8c, 0x71, 0xf3, 0x69, 0x8a, 0xaf, 0x80, 0xb2, 0x75, 0xa8, 0xd1, 0x5d, - 0xd3, 0x6d, 0x5b, 0xf5, 0x81, 0x2c, 0x84, 0x89, 0x7a, 0x62, 0x30, 0xec, 0x73, 0xc9, 0xfd, 0x07, - 0xa2, 0x1b, 0x9b, 0x4e, 0x90, 0x03, 0xb1, 0x9b, 0xd0, 0x22, 0x62, 0xa8, 0x32, 0x48, 0x01, 0x8c, - 0x3b, 0x75, 0xa9, 0xc2, 0x29, 0x53, 0x38, 0x45, 0xd8, 0x7e, 0x17, 0x96, 0x54, 0xca, 0xd8, 0x3b, - 0x4d, 0xeb, 0xc3, 0x46, 0xec, 0x89, 0x21, 0xd7, 0x87, 0xa8, 0x0c, 0xfb, 0xba, 0x69, 0x93, 0x8a, - 0xaa, 0x2f, 0x6a, 0x13, 0xe6, 0xa4, 0xdb, 0xc3, 0x4a, 0x56, 0xc5, 0x53, 0x75, 0x12, 0xdb, 0x7e, - 0x00, 0x17, 0xd3, 0x15, 0x87, 0xed, 0x64, 0x4d, 0x1b, 0xca, 0xe4, 0xd2, 0x94, 0x5b, 0xb3, 0x70, - 0x4b, 0x15, 0xbd, 0x83, 0x14, 0x47, 0x33, 0xed, 0x3b, 0xd9, 0x40, 0xf5, 0x64, 0x52, 0x56, 0x56, - 0xa6, 0xac, 0x18, 0x94, 0x24, 0x7e, 0xe3, 0xa6, 0x29, 0x18, 0x1a, 0xdb, 0xf7, 0x60, 0x39, 0x59, - 0x4c, 0xe7, 0x1e, 0x67, 0xdf, 0x0f, 0x2a, 0xdc, 0xe4, 0x9e, 0x2b, 0x13, 0x45, 0xa0, 0x4f, 0xbe, - 0xf9, 0x60, 0x90, 0x61, 0xdf, 0x82, 0xcb, 0xa7, 0x3c, 0xe9, 0xac, 0xf0, 0x48, 0x0c, 0xa8, 0xa5, - 0x48, 0x01, 0xfb, 0x26, 0xcc, 0x99, 0x25, 0x14, 0xe2, 0x38, 0x91, 0x97, 0xc6, 0x93, 0xbf, 0x4f, - 0xf6, 0x23, 0xb8, 0x52, 0xd8, 0x2e, 0x23, 0xe3, 0x56, 0x71, 0xc3, 0x5a, 0x7b, 0x29, 0x6d, 0x93, - 0x7a, 0x26, 0x1b, 0xc3, 0x0e, 0xcc, 0x52, 0xb9, 0xb2, 0x8f, 0xa1, 0xd2, 0xa5, 0xab, 0x6b, 0xd6, - 0xad, 0x25, 0xeb, 0xd4, 0xc3, 0xed, 0x78, 0xbb, 0xe5, 0xf0, 0x58, 0x8c, 0x22, 0x8f, 0xe3, 0xbd, - 0x8e, 0x1d, 0xc3, 0xb7, 0x17, 0x60, 0xfe, 0xc9, 0x28, 0x4e, 0x1a, 0xb5, 0xfd, 0xa3, 0x05, 0x8b, - 0x08, 0x50, 0x39, 0x19, 0x55, 0xaf, 0x25, 0xdd, 0x1b, 0x4f, 0x61, 0x7e, 0xe7, 0x12, 0xbe, 0x23, - 0x7e, 0x7b, 0xb5, 0x56, 0x7f, 0x12, 0x71, 0xb7, 0xdf, 0x17, 0x9e, 0x62, 0x9b, 0xb6, 0xfd, 0x0e, - 0xcc, 0x04, 0x3e, 0x5e, 0x86, 0x73, 0xb8, 0xc8, 0x60, 0x1f, 0x00, 0xa8, 0x4f, 0xed, 0xae, 0x2b, - 0xdd, 0x46, 0xe9, 0x3c, 0x7e, 0x86, 0x68, 0xef, 0xab, 0x10, 0x55, 0x26, 0x3a, 0xc4, 0xff, 0x20, - 0xc1, 0x06, 0x80, 0x7e, 0x8f, 0xe1, 0x8d, 0x5e, 0xce, 0x7d, 0xa9, 0xe6, 0x4d, 0x52, 0xf6, 0x27, - 0x50, 0x7d, 0x14, 0x84, 0x47, 0x9d, 0x7e, 0xe0, 0x71, 0xb6, 0x0d, 0xb3, 0xfd, 0x20, 0x3c, 0x32, - 0x7b, 0xad, 0x9c, 0xde, 0x0b, 0xf7, 0x68, 0xe1, 0x02, 0x47, 0x31, 0xdb, 0xdf, 0x5b, 0x50, 0xc6, - 0xa8, 0x79, 0xc4, 0x3e, 0x85, 0x6a, 0x22, 0x31, 0x4b, 0x5f, 0x8c, 0x45, 0xd9, 0x9b, 0x97, 0x72, - 0x53, 0xc9, 0x11, 0x4d, 0xb1, 0xcf, 0xa0, 0x96, 0x90, 0x0f, 0xdb, 0xff, 0xc6, 0x45, 0xbb, 0x03, - 0x8b, 0xba, 0x2b, 0xde, 0xe5, 0x21, 0x8f, 0x5c, 0x29, 0x92, 0xb8, 0x48, 0x9e, 0x82, 0xd3, 0xac, - 0xd6, 0x67, 0x3b, 0xfd, 0xb9, 0x04, 0x15, 0x7c, 0xbd, 0x05, 0x3c, 0x62, 0xf7, 0xa0, 0xfe, 0x79, - 0x10, 0xfa, 0xc9, 0x4b, 0x97, 0x4d, 0x78, 0x1a, 0x1b, 0x87, 0xcd, 0x49, 0x53, 0x99, 0x6c, 0xe7, - 0xcd, 0x6b, 0xc2, 0xe3, 0xa1, 0x64, 0x67, 0x3c, 0xdb, 0x9a, 0x97, 0x4f, 0xe1, 0x89, 0x8b, 0x3d, - 0xa8, 0x65, 0x9e, 0x84, 0x6c, 0xa5, 0xc0, 0xcc, 0x3e, 0x14, 0xcf, 0x73, 0x73, 0x17, 0x20, 0x6d, - 0x5a, 0x6c, 0x52, 0x9b, 0x33, 0x4e, 0x56, 0x26, 0xce, 0x25, 0x8e, 0x1e, 0x9a, 0x94, 0x54, 0xf7, - 0x3b, 0xd7, 0xd5, 0xff, 0x27, 0x76, 0xd3, 0x8c, 0xb3, 0x43, 0xb8, 0x50, 0x68, 0x2a, 0x6c, 0xed, - 0xf4, 0x9a, 0x5c, 0x9f, 0x6c, 0xae, 0x9f, 0x4d, 0x48, 0xfc, 0x7e, 0x9d, 0x69, 0xd1, 0xa6, 0x59, - 0xfd, 0xbd, 0x67, 0xfb, 0x2c, 0x42, 0x36, 0xe6, 0xf6, 0x17, 0xb0, 0xd8, 0x91, 0x11, 0x77, 0x07, - 0x41, 0xd8, 0x33, 0x15, 0x73, 0x07, 0xca, 0xfa, 0x5d, 0xfc, 0x4f, 0x4f, 0xf8, 0xba, 0xb5, 0xd3, - 0x78, 0xf1, 0x7a, 0xd5, 0x7a, 0xf9, 0x7a, 0xd5, 0xfa, 0xfd, 0xf5, 0xaa, 0xf5, 0xc3, 0x9b, 0xd5, - 0xa9, 0x97, 0x6f, 0x56, 0xa7, 0x7e, 0x7d, 0xb3, 0x3a, 0xd5, 0x2d, 0xd3, 0xdf, 0xcd, 0x1b, 0x7f, - 0x05, 0x00, 0x00, 0xff, 0xff, 0xe1, 0x4b, 0x32, 0xa6, 0xef, 0x0e, 0x00, 0x00, + // 1420 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x57, 0x4f, 0x6f, 0x1b, 0x45, + 0x14, 0xcf, 0x26, 0x8e, 0x1d, 0x3f, 0x27, 0x69, 0x32, 0xb4, 0xa9, 0xeb, 0x14, 0xc7, 0x5a, 0x22, + 0x08, 0x88, 0x3a, 0x8d, 0x5b, 0x54, 0x68, 0x25, 0x10, 0x56, 0x42, 0xff, 0xa6, 0x94, 0x75, 0xc8, + 0x81, 0xdb, 0x7a, 0x3d, 0x75, 0x57, 0xb1, 0x77, 0xdc, 0xdd, 0x71, 0x14, 0x73, 0xe2, 0xc4, 0x89, + 0x03, 0x5f, 0x01, 0x09, 0x89, 0x0f, 0xc2, 0xa5, 0xc7, 0x1e, 0x11, 0x87, 0x0a, 0xb5, 0x9f, 0x80, + 0x23, 0x37, 0xf4, 0xde, 0xcc, 0xec, 0xbf, 0x38, 0x41, 0xc0, 0xc9, 0xf3, 0x7e, 0xf3, 0x9b, 0x37, + 0x6f, 0x7e, 0xf3, 0xde, 0xdb, 0x31, 0x5c, 0x1e, 0x1d, 0xf5, 0xb7, 0x25, 0x1f, 0x8e, 0xc4, 0xa8, + 0xab, 0x7e, 0x9b, 0xa3, 0x50, 0x48, 0xc1, 0x4a, 0x1a, 0xac, 0x5d, 0x94, 0xa1, 0xeb, 0xf1, 0xed, + 0xe3, 0x9d, 0x6d, 0x1a, 0xa8, 0xe9, 0xda, 0x9a, 0x27, 0x86, 0x43, 0x11, 0x20, 0xac, 0x46, 0x1a, + 0xbf, 0xd6, 0xf7, 0xe5, 0xb3, 0x71, 0xb7, 0xe9, 0x89, 0xe1, 0x76, 0x5f, 0xf4, 0xc5, 0x36, 0xc1, + 0xdd, 0xf1, 0x53, 0xb2, 0xc8, 0xa0, 0x91, 0xa2, 0xdb, 0xdf, 0x5b, 0xb0, 0x72, 0x80, 0x6e, 0xdb, + 0x93, 0xfb, 0xbb, 0x0e, 0x7f, 0x3e, 0xe6, 0x91, 0x64, 0x55, 0x28, 0xd1, 0x56, 0xf7, 0x77, 0xab, + 0x56, 0xc3, 0xda, 0x5a, 0x74, 0x8c, 0xc9, 0xea, 0x00, 0xdd, 0x81, 0xf0, 0x8e, 0x3a, 0xd2, 0x0d, + 0x65, 0x75, 0xb6, 0x61, 0x6d, 0x95, 0x9d, 0x14, 0xc2, 0x6a, 0xb0, 0x40, 0xd6, 0x5e, 0xd0, 0xab, + 0xce, 0xd1, 0x6c, 0x6c, 0xb3, 0xab, 0x50, 0x7e, 0x3e, 0xe6, 0xe1, 0x64, 0x5f, 0xf4, 0x78, 0x75, + 0x9e, 0x26, 0x13, 0xc0, 0x0e, 0x60, 0x35, 0x15, 0x47, 0x34, 0x12, 0x41, 0xc4, 0xd9, 0x26, 0xcc, + 0xd3, 0xce, 0x14, 0x46, 0xa5, 0xb5, 0xdc, 0xd4, 0x9a, 0x34, 0x89, 0xea, 0xa8, 0x49, 0x76, 0x03, + 0x4a, 0x43, 0x2e, 0x43, 0xdf, 0x8b, 0x28, 0xa2, 0x4a, 0xeb, 0x4a, 0x96, 0x87, 0x2e, 0xf7, 0x15, + 0xc1, 0x31, 0x4c, 0x9b, 0xa5, 0xce, 0xad, 0x27, 0xed, 0x9f, 0x67, 0x61, 0xa9, 0xc3, 0xdd, 0xd0, + 0x7b, 0x66, 0x94, 0xb8, 0x0d, 0x85, 0x03, 0xb7, 0x1f, 0x55, 0xad, 0xc6, 0xdc, 0x56, 0xa5, 0xd5, + 0x88, 0xfd, 0x66, 0x58, 0x4d, 0xa4, 0xec, 0x05, 0x32, 0x9c, 0xb4, 0x0b, 0x2f, 0x5e, 0x6d, 0xcc, + 0x38, 0xb4, 0x86, 0x6d, 0xc2, 0xd2, 0xbe, 0x1f, 0xec, 0x8e, 0x43, 0x57, 0xfa, 0x22, 0xd8, 0x57, + 0xc1, 0x2d, 0x39, 0x59, 0x90, 0x58, 0xee, 0x49, 0x8a, 0x35, 0xa7, 0x59, 0x69, 0x90, 0x5d, 0x84, + 0xf9, 0x47, 0xfe, 0xd0, 0x97, 0xd5, 0x02, 0xcd, 0x2a, 0x03, 0xd1, 0x88, 0x2e, 0x62, 0x5e, 0xa1, + 0x64, 0xb0, 0x15, 0x98, 0xe3, 0x41, 0xaf, 0x5a, 0x24, 0x0c, 0x87, 0xc8, 0xfb, 0x0a, 0x85, 0xae, + 0x2e, 0x90, 0xea, 0xca, 0xa8, 0xdd, 0x82, 0x72, 0x1c, 0x38, 0x2e, 0x3a, 0xe2, 0x13, 0xd2, 0xb9, + 0xec, 0xe0, 0x10, 0x17, 0x1d, 0xbb, 0x83, 0x31, 0xd7, 0xb7, 0xac, 0x8c, 0xdb, 0xb3, 0x1f, 0x5b, + 0xf6, 0x77, 0x73, 0xc0, 0x94, 0x00, 0x6d, 0xbc, 0x5b, 0xa3, 0xd5, 0x4d, 0x28, 0x47, 0x46, 0x16, + 0x7d, 0x61, 0x6b, 0xd3, 0x05, 0x73, 0x12, 0x22, 0xe6, 0x1a, 0x65, 0xc8, 0xfd, 0x5d, 0xbd, 0x91, + 0x31, 0x31, 0x5f, 0xe8, 0x40, 0x4f, 0xdc, 0x3e, 0xd7, 0xaa, 0x24, 0x00, 0xea, 0x36, 0x72, 0xfb, + 0x3c, 0x3a, 0x10, 0xca, 0xb5, 0x56, 0x26, 0x0b, 0x62, 0x3e, 0xf2, 0xc0, 0x13, 0x3d, 0x3f, 0xe8, + 0xeb, 0x94, 0x8b, 0x6d, 0xf4, 0xe0, 0x07, 0x3d, 0x7e, 0x82, 0xee, 0x3a, 0xfe, 0xb7, 0x5c, 0x2b, + 0x96, 0x05, 0x99, 0x0d, 0x8b, 0x52, 0x48, 0x77, 0xe0, 0x70, 0x4f, 0x84, 0xbd, 0xa8, 0x5a, 0x22, + 0x52, 0x06, 0x43, 0x4e, 0xcf, 0x95, 0xee, 0x9e, 0xd9, 0x49, 0xc9, 0x9c, 0xc1, 0xf0, 0x9c, 0xc7, + 0x3c, 0x8c, 0x7c, 0x11, 0x54, 0xcb, 0xea, 0x9c, 0xda, 0x64, 0x0c, 0x0a, 0x11, 0x6e, 0x0f, 0x0d, + 0x6b, 0xab, 0xe0, 0xd0, 0x18, 0xeb, 0xec, 0xa9, 0x10, 0x92, 0x87, 0x14, 0x58, 0x85, 0xf6, 0x4c, + 0x21, 0xf6, 0x09, 0x2c, 0x1b, 0x45, 0x75, 0xa9, 0xdc, 0x84, 0x22, 0x55, 0x83, 0xc9, 0xd5, 0xab, + 0xd9, 0x1a, 0x50, 0xec, 0x7d, 0x2e, 0x5d, 0x8c, 0xca, 0xd1, 0x5c, 0x76, 0x3d, 0x5f, 0x3a, 0xf9, + 0x1b, 0x3b, 0x55, 0x37, 0x7f, 0x59, 0xf0, 0xd6, 0x14, 0x8f, 0xf9, 0x9e, 0x51, 0x4e, 0x7a, 0xc6, + 0x16, 0x5c, 0x08, 0x85, 0x90, 0x1d, 0x1e, 0x1e, 0xfb, 0x1e, 0x7f, 0xec, 0x0e, 0x4d, 0x4a, 0xe5, + 0x61, 0xbc, 0x11, 0x84, 0xc8, 0x3d, 0xf1, 0x54, 0x0b, 0xc9, 0x82, 0xec, 0x43, 0x58, 0xa5, 0x34, + 0x38, 0xf0, 0x87, 0xfc, 0xeb, 0xc0, 0x3f, 0x79, 0xec, 0x06, 0x82, 0x6e, 0xbf, 0xe0, 0x9c, 0x9e, + 0x40, 0x25, 0x7b, 0x49, 0x71, 0xa9, 0x42, 0x49, 0x21, 0xec, 0x03, 0x28, 0x45, 0x23, 0x37, 0xe8, + 0x70, 0x49, 0xf7, 0x5f, 0x69, 0xad, 0x24, 0x0a, 0x28, 0xdc, 0x31, 0x04, 0xfb, 0x1e, 0x94, 0x34, + 0xc6, 0xde, 0x81, 0x79, 0x44, 0x8d, 0xda, 0x4b, 0x99, 0x45, 0x8e, 0x9a, 0x43, 0x4d, 0x86, 0xae, + 0xf4, 0x9e, 0xf1, 0x9e, 0xae, 0x7d, 0x63, 0xda, 0xbf, 0x5a, 0x50, 0x40, 0x26, 0x5b, 0x83, 0x22, + 0x72, 0x63, 0xd5, 0xb4, 0x85, 0x49, 0x11, 0x24, 0x4a, 0xd1, 0x78, 0xfa, 0xc1, 0xe7, 0xce, 0x3a, + 0xf8, 0x26, 0x2c, 0x99, 0x63, 0xa2, 0x1d, 0x69, 0x89, 0xb2, 0x20, 0xbb, 0x03, 0xe0, 0x4a, 0x19, + 0xfa, 0xdd, 0xb1, 0xe4, 0x28, 0x0f, 0x1e, 0x66, 0x3d, 0x3e, 0x8c, 0xfe, 0xb2, 0x1c, 0xef, 0x34, + 0x1f, 0xf2, 0xc9, 0x21, 0x36, 0x00, 0x27, 0x45, 0xb7, 0xff, 0xb4, 0x4c, 0xbf, 0xd4, 0x69, 0x82, + 0x77, 0xed, 0x07, 0xd1, 0x88, 0x7b, 0x92, 0xf7, 0x0e, 0x4c, 0x3a, 0xe2, 0xc9, 0xf3, 0x30, 0x7b, + 0x17, 0x96, 0x63, 0xa8, 0x3d, 0xc1, 0xcd, 0x67, 0x29, 0xbe, 0x1c, 0xca, 0x1a, 0x50, 0xa1, 0x5a, + 0xa3, 0x56, 0x63, 0xba, 0x63, 0x1a, 0xc2, 0x83, 0x7a, 0x62, 0x38, 0x1a, 0x70, 0xc9, 0x7b, 0x0f, + 0x44, 0x37, 0x32, 0x9d, 0x20, 0x03, 0x62, 0x37, 0xa1, 0x45, 0xc4, 0x50, 0x69, 0x90, 0x00, 0x18, + 0x77, 0xe2, 0x52, 0x85, 0x53, 0xa4, 0x70, 0xf2, 0xb0, 0xfd, 0x3e, 0xac, 0xaa, 0x23, 0x63, 0xef, + 0x34, 0xad, 0x0f, 0x1b, 0xb1, 0x27, 0x46, 0x5c, 0x5f, 0xa2, 0x32, 0xec, 0xeb, 0xa6, 0x4d, 0x2a, + 0xaa, 0x2e, 0xd4, 0x1a, 0x2c, 0x48, 0xb7, 0x8f, 0x99, 0xac, 0x92, 0xa7, 0xec, 0xc4, 0xb6, 0xfd, + 0x00, 0x2e, 0x26, 0x2b, 0x0e, 0x5b, 0xf1, 0x9a, 0x16, 0x14, 0xc9, 0xa5, 0x49, 0xb7, 0x5a, 0xae, + 0x4a, 0x15, 0xbd, 0x83, 0x14, 0x47, 0x33, 0xed, 0x3b, 0xe9, 0x40, 0xf5, 0x64, 0x9c, 0x56, 0x56, + 0x2a, 0xad, 0x18, 0x14, 0x24, 0x7e, 0xe3, 0x66, 0x29, 0x18, 0x1a, 0xdb, 0xf7, 0x60, 0x2d, 0x5e, + 0x4c, 0xf7, 0x1e, 0xa5, 0xdf, 0x06, 0x2a, 0xdc, 0xb8, 0xce, 0x95, 0x89, 0x22, 0xd0, 0xe7, 0xdc, + 0x7c, 0x30, 0xc8, 0xb0, 0x6f, 0xc1, 0xe5, 0x53, 0x9e, 0xf4, 0xa9, 0xf0, 0x4a, 0x0c, 0xa8, 0xa5, + 0x48, 0x00, 0xfb, 0x26, 0x2c, 0x98, 0x25, 0x14, 0xe2, 0x24, 0x96, 0x97, 0xc6, 0xd3, 0xbf, 0x4f, + 0xf6, 0x23, 0xb8, 0x92, 0xdb, 0x2e, 0x25, 0xe3, 0x76, 0x7e, 0xc3, 0x4a, 0x6b, 0x35, 0x69, 0x93, + 0x7a, 0x26, 0x1d, 0x43, 0x1b, 0xe6, 0x29, 0x5d, 0xd9, 0x27, 0x50, 0xea, 0x52, 0xe9, 0x9a, 0x75, + 0x1b, 0xf1, 0x3a, 0xf5, 0x28, 0x3b, 0xde, 0x69, 0x3a, 0x3c, 0x12, 0xe3, 0xd0, 0xe3, 0x58, 0xd7, + 0x91, 0x63, 0xf8, 0xf6, 0x32, 0x2c, 0x3e, 0x19, 0x47, 0x71, 0xa3, 0xb6, 0x7f, 0xb2, 0x60, 0x05, + 0x01, 0x4a, 0x27, 0xa3, 0xea, 0xb5, 0xb8, 0x7b, 0xe3, 0x2d, 0x2c, 0xb6, 0x2f, 0xe1, 0x3b, 0xe2, + 0xf7, 0x57, 0x1b, 0x4b, 0x4f, 0x42, 0xee, 0x0e, 0x06, 0xc2, 0x53, 0x6c, 0xd3, 0xb6, 0xdf, 0x83, + 0x39, 0xbf, 0x87, 0xc5, 0x70, 0x0e, 0x17, 0x19, 0xec, 0x23, 0x00, 0xf5, 0xa9, 0xdd, 0x75, 0xa5, + 0x5b, 0x2d, 0x9c, 0xc7, 0x4f, 0x11, 0xed, 0x7d, 0x15, 0xa2, 0x3a, 0x89, 0x0e, 0xf1, 0x7f, 0x48, + 0xb0, 0x09, 0xa0, 0xdf, 0x5a, 0x58, 0xd1, 0x6b, 0x99, 0x2f, 0xd5, 0xa2, 0x39, 0x94, 0xfd, 0x29, + 0x94, 0x1f, 0xf9, 0xc1, 0x51, 0x67, 0xe0, 0x7b, 0x9c, 0xed, 0xc0, 0xfc, 0xc0, 0x0f, 0x8e, 0xcc, + 0x5e, 0xeb, 0xa7, 0xf7, 0xc2, 0x3d, 0x9a, 0xb8, 0xc0, 0x51, 0xcc, 0xd6, 0x0f, 0x16, 0x14, 0x31, + 0x6a, 0x1e, 0xb2, 0xcf, 0xa0, 0x1c, 0x4b, 0xcc, 0x92, 0xd7, 0x60, 0x5e, 0xf6, 0xda, 0xa5, 0xcc, + 0x54, 0x7c, 0x45, 0x33, 0xec, 0x73, 0xa8, 0xc4, 0xe4, 0xc3, 0xd6, 0x7f, 0x71, 0xd1, 0xea, 0xc0, + 0x8a, 0xee, 0x8a, 0x77, 0x79, 0xc0, 0x43, 0x57, 0x8a, 0x38, 0x2e, 0x92, 0x27, 0xe7, 0x34, 0xad, + 0xf5, 0xd9, 0x4e, 0x7f, 0x29, 0x40, 0x09, 0x5f, 0x6f, 0x3e, 0x0f, 0xd9, 0x3d, 0x58, 0xfa, 0xc2, + 0x0f, 0x7a, 0xf1, 0x2b, 0x96, 0x4d, 0x79, 0xf6, 0x1a, 0x87, 0xb5, 0x69, 0x53, 0xa9, 0xd3, 0x2e, + 0x9a, 0xd7, 0x84, 0xc7, 0x03, 0xc9, 0xce, 0x78, 0xb6, 0xd5, 0x2e, 0x9f, 0xc2, 0x63, 0x17, 0x7b, + 0x50, 0x49, 0x3d, 0x09, 0xd9, 0x7a, 0x8e, 0x99, 0x7e, 0x28, 0x9e, 0xe7, 0xe6, 0x2e, 0x40, 0xd2, + 0xb4, 0xd8, 0xb4, 0x36, 0x67, 0x9c, 0xac, 0x4f, 0x9d, 0x8b, 0x1d, 0x3d, 0x34, 0x47, 0x52, 0xdd, + 0xef, 0x5c, 0x57, 0x6f, 0x4f, 0xed, 0xa6, 0x29, 0x67, 0x87, 0x70, 0x21, 0xd7, 0x54, 0xd8, 0xc6, + 0xe9, 0x35, 0x99, 0x3e, 0x59, 0x6b, 0x9c, 0x4d, 0x88, 0xfd, 0x7e, 0x93, 0x6a, 0xd1, 0xa6, 0x59, + 0xfd, 0xb3, 0x67, 0xfb, 0x2c, 0x42, 0x3a, 0xe6, 0xd6, 0x97, 0xb0, 0xd2, 0x91, 0x21, 0x77, 0x87, + 0x7e, 0xd0, 0x37, 0x19, 0x73, 0x07, 0x8a, 0xfa, 0x5d, 0xfc, 0x6f, 0x6f, 0xf8, 0xba, 0xd5, 0xae, + 0xbe, 0x78, 0x5d, 0xb7, 0x5e, 0xbe, 0xae, 0x5b, 0x7f, 0xbc, 0xae, 0x5b, 0x3f, 0xbe, 0xa9, 0xcf, + 0xbc, 0x7c, 0x53, 0x9f, 0xf9, 0xed, 0x4d, 0x7d, 0xa6, 0x5b, 0xa4, 0xbf, 0x92, 0x37, 0xfe, 0x0e, + 0x00, 0x00, 0xff, 0xff, 0xab, 0xa2, 0x10, 0x06, 0xcb, 0x0e, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -2220,11 +2211,6 @@ func (m *TraceByIDMetrics) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if m.FailedBlocks != 0 { - i = encodeVarintTempo(dAtA, i, uint64(m.FailedBlocks)) - i-- - dAtA[i] = 0x8 - } return len(dAtA) - i, nil } @@ -3237,9 +3223,6 @@ func (m *TraceByIDMetrics) Size() (n int) { } var l int _ = l - if m.FailedBlocks != 0 { - n += 1 + sovTempo(uint64(m.FailedBlocks)) - } return n } @@ -4009,25 +3992,6 @@ func (m *TraceByIDMetrics) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: TraceByIDMetrics: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FailedBlocks", wireType) - } - m.FailedBlocks = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTempo - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.FailedBlocks |= uint32(b&0x7F) << shift - if b < 0x80 { - break - } - } default: iNdEx = preIndex skippy, err := skipTempo(dAtA[iNdEx:]) diff --git a/pkg/tempopb/tempo.proto b/pkg/tempopb/tempo.proto index 5962bf41742..2445942fd29 100644 --- a/pkg/tempopb/tempo.proto +++ b/pkg/tempopb/tempo.proto @@ -44,7 +44,6 @@ message TraceByIDResponse { } message TraceByIDMetrics { - uint32 failedBlocks = 1; } // SearchRequest takes no block parameters and implies a "recent traces" search