(ctx context.Context, meta *backend.BlockMeta, req *tempopb.SearchTagValuesBlockRequest, opts common.SearchOptions)
| 475 | } |
| 476 | |
| 477 | func (rw *readerWriter) SearchTagValues(ctx context.Context, meta *backend.BlockMeta, req *tempopb.SearchTagValuesBlockRequest, opts common.SearchOptions) (response *tempopb.SearchTagValuesResponse, err error) { |
| 478 | block, err := encoding.OpenBlock(meta, rw.r) |
| 479 | if err != nil { |
| 480 | return &tempopb.SearchTagValuesResponse{}, err |
| 481 | } |
| 482 | |
| 483 | dv := collector.NewDistinctString(0, req.SearchReq.MaxTagValues, req.SearchReq.StaleValueThreshold) |
| 484 | mc := collector.NewMetricsCollector() |
| 485 | rw.cfg.Search.ApplyToOptions(&opts) |
| 486 | err = block.SearchTagValues(ctx, req.SearchReq.TagName, dv.Collect, mc.Add, opts) |
| 487 | |
| 488 | orgID, _ := user.ExtractOrgID(ctx) |
| 489 | if dv.Exceeded() { |
| 490 | level.Warn(log.Logger).Log("msg", "Search tags exceeded limit, reduce cardinality or size of tags", "orgID", orgID, "stopReason", dv.StopReason()) |
| 491 | } |
| 492 | |
| 493 | return &tempopb.SearchTagValuesResponse{ |
| 494 | TagValues: dv.Strings(), |
| 495 | Metrics: &tempopb.MetadataMetrics{InspectedBytes: mc.TotalValue()}, |
| 496 | }, err |
| 497 | } |
| 498 | |
| 499 | func (rw *readerWriter) SearchTagValuesV2(ctx context.Context, meta *backend.BlockMeta, req *tempopb.SearchTagValuesRequest, opts common.SearchOptions) (*tempopb.SearchTagValuesV2Response, error) { |
| 500 | block, err := encoding.OpenBlock(meta, rw.r) |
nothing calls this directly
no test coverage detected