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 }