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  }