github.com/thanos-io/thanos@v0.32.5/pkg/info/infopb/rpc.proto (about)

     1  // Copyright (c) The Thanos Authors.
     2  // Licensed under the Apache License 2.0.
     3  
     4  syntax = "proto3";
     5  package thanos.info;
     6  
     7  import "store/labelpb/types.proto";
     8  import "gogoproto/gogo.proto";
     9  
    10  option go_package = "infopb";
    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 footprint and opening a door
    18  // for zero-copy casts to/from prometheus data types.
    19  option (gogoproto.goproto_unkeyed_all) = false;
    20  option (gogoproto.goproto_unrecognized_all) = false;
    21  option (gogoproto.goproto_sizecache_all) = false;
    22  
    23  // Info represents the API that is responsible for gathering metadata about the all APIs supported by the component.
    24  service Info {
    25      // Info returns the metadata (Eg. LabelSets, Min/Max time) about all the APIs the component supports.
    26      rpc Info(InfoRequest) returns (InfoResponse);
    27  }
    28  
    29  message InfoRequest {}
    30  
    31  message InfoResponse {
    32      repeated ZLabelSet label_sets      = 1 [(gogoproto.nullable) = false];
    33      string ComponentType               = 2;
    34  
    35      // StoreInfo holds the metadata related to Store API if exposed by the component otherwise it will be null.
    36      StoreInfo store                    = 3;
    37  
    38      // RulesInfo holds the metadata related to Rules API if exposed by the component otherwise it will be null.
    39      RulesInfo rules                    = 4;
    40  
    41      // MetricMetadataInfo holds the metadata related to Metadata API if exposed by the component otherwise it will be null.
    42      MetricMetadataInfo metric_metadata = 5;
    43  
    44      // TargetsInfo holds the metadata related to Targets API if exposed by the component otherwise it will be null.
    45      TargetsInfo targets                = 6;
    46  
    47      // ExemplarsInfo holds the metadata related to Exemplars API if exposed by the component otherwise it will be null.
    48      ExemplarsInfo exemplars            = 7;
    49  
    50      // QueryAPIInfo holds the metadata related to Query API if exposed by the component, otherwise it will be null.
    51      QueryAPIInfo query                 = 8;
    52  }
    53  
    54  // StoreInfo holds the metadata related to Store API exposed by the component.
    55  message StoreInfo {
    56      reserved 4; // Deprecated send_sorted, replaced by supports_without_replica_labels now.
    57  
    58      int64 min_time = 1;
    59      int64 max_time = 2;
    60      bool supports_sharding = 3;
    61  
    62      // replica_aware means this store supports without_replica_labels of StoreAPI.Series.
    63      bool supports_without_replica_labels = 5;
    64  
    65      // TSDBInfos holds metadata for all TSDBs exposed by the store.
    66      repeated TSDBInfo tsdb_infos = 6 [(gogoproto.nullable) = false];
    67  }
    68  
    69  // RulesInfo holds the metadata related to Rules API exposed by the component.
    70  message RulesInfo {
    71  }
    72  
    73  // MetricMetadataInfo holds the metadata related to Metadata API exposed by the component.
    74  message MetricMetadataInfo {
    75  }
    76  
    77  // TargetsInfo holds the metadata related to Targets API exposed by the component.
    78  message TargetsInfo {
    79  }
    80  
    81  // ExemplarsInfo holds the metadata related to Exemplars API exposed by the component.
    82  message ExemplarsInfo {
    83      int64 min_time = 1;
    84      int64 max_time = 2;
    85  }
    86  
    87  // QueryInfo holds the metadata related to Query API exposed by the component.
    88  message QueryAPIInfo {
    89  }
    90  
    91  message TSDBInfo {
    92      ZLabelSet labels = 1 [(gogoproto.nullable) = false];
    93  
    94      int64 min_time = 2;
    95      int64 max_time = 3;
    96  }