github.com/thanos-io/thanos@v0.32.5/pkg/store/hintspb/hints.proto (about) 1 // Copyright (c) The Thanos Authors. 2 // Licensed under the Apache License 2.0. 3 4 syntax = "proto3"; 5 package hintspb; 6 7 import "gogoproto/gogo.proto"; 8 import "store/storepb/types.proto"; 9 10 option go_package = "hintspb"; 11 12 option (gogoproto.sizer_all) = true; 13 option (gogoproto.marshaler_all) = true; 14 option (gogoproto.unmarshaler_all) = true; 15 option (gogoproto.goproto_getters_all) = false; 16 17 // Do not generate XXX fields to reduce memory. 18 option (gogoproto.goproto_unkeyed_all) = false; 19 option (gogoproto.goproto_unrecognized_all) = false; 20 option (gogoproto.goproto_sizecache_all) = false; 21 22 message SeriesRequestHints { 23 /// block_matchers is a list of label matchers that are evaluated against each single block's 24 /// labels to filter which blocks get queried. If the list is empty, no per-block filtering 25 /// is applied. 26 repeated thanos.LabelMatcher block_matchers = 1 [(gogoproto.nullable) = false]; 27 28 bool enable_query_stats = 2; 29 } 30 31 message SeriesResponseHints { 32 /// queried_blocks is the list of blocks that have been queried. 33 repeated Block queried_blocks = 1 [(gogoproto.nullable) = false]; 34 /// query_stats contains statistics of querying store gateway. 35 QueryStats query_stats = 2 [(gogoproto.nullable) = true]; 36 } 37 38 message Block { 39 string id = 1; 40 } 41 42 43 message LabelNamesRequestHints { 44 /// block_matchers is a list of label matchers that are evaluated against each single block's 45 /// labels to filter which blocks get queried. If the list is empty, no per-block filtering 46 /// is applied. 47 repeated thanos.LabelMatcher block_matchers = 1 [(gogoproto.nullable) = false]; 48 } 49 50 message LabelNamesResponseHints { 51 /// queried_blocks is the list of blocks that have been queried. 52 repeated Block queried_blocks = 1 [(gogoproto.nullable) = false]; 53 } 54 55 message LabelValuesRequestHints { 56 /// block_matchers is a list of label matchers that are evaluated against each single block's 57 /// labels to filter which blocks get queried. If the list is empty, no per-block filtering 58 /// is applied. 59 repeated thanos.LabelMatcher block_matchers = 1 [(gogoproto.nullable) = false]; 60 } 61 62 message LabelValuesResponseHints { 63 /// queried_blocks is the list of blocks that have been queried. 64 repeated Block queried_blocks = 1 [(gogoproto.nullable) = false]; 65 } 66 67 /// QueryStats fields are unstable and might change in the future. 68 message QueryStats { 69 int64 blocks_queried = 1; 70 int64 merged_series_count = 2; 71 int64 merged_chunks_count = 3; 72 73 int64 postings_touched = 4; 74 int64 postings_touched_size_sum = 5; 75 int64 postings_to_fetch = 6; 76 int64 postings_fetched = 7; 77 int64 postings_fetched_size_sum = 8; 78 int64 postings_fetch_count = 9; 79 80 int64 series_touched = 10; 81 int64 series_touched_size_sum = 11; 82 int64 series_fetched = 12; 83 int64 series_fetched_size_sum = 13; 84 int64 series_fetch_count = 14; 85 86 int64 chunks_touched = 15; 87 int64 chunks_touched_size_sum = 16; 88 int64 chunks_fetched = 17; 89 int64 chunks_fetched_size_sum = 18; 90 int64 chunks_fetch_count = 19; 91 92 int64 data_downloaded_size_sum = 20; 93 }