Define a new telemetry Stat API (#663)

* Define a new telemetry Stat API

Proposal definition for a new Stat API, for the purposes of satisfying the queries proposed in #627.
StatSummary will replace Stat once implemented and the original Stat deleted.
This commit is contained in:
Risha Mars 2018-04-03 14:45:58 -07:00 committed by GitHub
parent 06bf78ccdf
commit d1a39ea6bf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 822 additions and 82 deletions

View File

@ -36,6 +36,13 @@ func (c *grpcOverHttpClient) Stat(ctx context.Context, req *pb.MetricRequest, _
return &msg, err
}
// TODO: This will replace Stat, once implemented
func (c *grpcOverHttpClient) StatSummary(ctx context.Context, req *pb.StatSummaryRequest, _ ...grpc.CallOption) (*pb.StatSummaryResponse, error) {
var msg pb.StatSummaryResponse
err := c.apiRequest(ctx, "StatSummary", req, &msg)
return &msg, err
}
func (c *grpcOverHttpClient) Version(ctx context.Context, req *pb.Empty, _ ...grpc.CallOption) (*pb.VersionInfo, error) {
var msg pb.VersionInfo
err := c.apiRequest(ctx, "Version", req, &msg)

View File

@ -119,6 +119,10 @@ func (s *grpcServer) Stat(ctx context.Context, req *pb.MetricRequest) (*pb.Metri
return &pb.MetricResponse{Metrics: metrics}, err
}
func (s *grpcServer) StatSummary(ctx context.Context, req *pb.StatSummaryRequest) (*pb.StatSummaryResponse, error) {
return &pb.StatSummaryResponse{}, nil
}
func (s *grpcServer) queryMetric(ctx context.Context, req *pb.MetricRequest, metric pb.MetricName) metricResult {
result := metricResult{}

View File

@ -27,6 +27,11 @@ func (m *mockGrpcServer) Stat(ctx context.Context, req *pb.MetricRequest) (*pb.M
return m.ResponseToReturn.(*pb.MetricResponse), m.ErrorToReturn
}
func (m *mockGrpcServer) StatSummary(ctx context.Context, req *pb.StatSummaryRequest) (*pb.StatSummaryResponse, error) {
m.LastRequestReceived = req
return m.ResponseToReturn.(*pb.StatSummaryResponse), m.ErrorToReturn
}
func (m *mockGrpcServer) Version(ctx context.Context, req *pb.Empty) (*pb.VersionInfo, error) {
m.LastRequestReceived = req
return m.ResponseToReturn.(*pb.VersionInfo), m.ErrorToReturn

View File

@ -11,18 +11,23 @@ import (
)
type MockConduitApiClient struct {
ErrorToReturn error
VersionInfoToReturn *pb.VersionInfo
ListPodsResponseToReturn *pb.ListPodsResponse
MetricResponseToReturn *pb.MetricResponse
SelfCheckResponseToReturn *healthcheckPb.SelfCheckResponse
Api_TapClientToReturn pb.Api_TapClient
ErrorToReturn error
VersionInfoToReturn *pb.VersionInfo
ListPodsResponseToReturn *pb.ListPodsResponse
MetricResponseToReturn *pb.MetricResponse
StatSummaryResponseToReturn *pb.StatSummaryResponse
SelfCheckResponseToReturn *healthcheckPb.SelfCheckResponse
Api_TapClientToReturn pb.Api_TapClient
}
func (c *MockConduitApiClient) Stat(ctx context.Context, in *pb.MetricRequest, opts ...grpc.CallOption) (*pb.MetricResponse, error) {
return c.MetricResponseToReturn, c.ErrorToReturn
}
func (c *MockConduitApiClient) StatSummary(ctx context.Context, in *pb.StatSummaryRequest, opts ...grpc.CallOption) (*pb.StatSummaryResponse, error) {
return c.StatSummaryResponseToReturn, c.ErrorToReturn
}
func (c *MockConduitApiClient) Version(ctx context.Context, in *pb.Empty, opts ...grpc.CallOption) (*pb.VersionInfo, error) {
return c.VersionInfoToReturn, c.ErrorToReturn
}

View File

@ -22,6 +22,13 @@ It has these top-level messages:
Pod
TapRequest
ApiError
Resource
ResourceSelection
ResourceError
StatSummaryRequest
StatSummaryResponse
BasicStats
StatTable
*/
package conduit_public
@ -813,6 +820,579 @@ func (m *ApiError) GetError() string {
return ""
}
type Resource struct {
Namespace string `protobuf:"bytes,1,opt,name=namespace" json:"namespace,omitempty"`
Type string `protobuf:"bytes,2,opt,name=type" json:"type,omitempty"`
Name string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"`
}
func (m *Resource) Reset() { *m = Resource{} }
func (m *Resource) String() string { return proto.CompactTextString(m) }
func (*Resource) ProtoMessage() {}
func (*Resource) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} }
func (m *Resource) GetNamespace() string {
if m != nil {
return m.Namespace
}
return ""
}
func (m *Resource) GetType() string {
if m != nil {
return m.Type
}
return ""
}
func (m *Resource) GetName() string {
if m != nil {
return m.Name
}
return ""
}
type ResourceSelection struct {
Spec *Resource `protobuf:"bytes,1,opt,name=spec" json:"spec,omitempty"`
LabelSelector string `protobuf:"bytes,2,opt,name=label_selector,json=labelSelector" json:"label_selector,omitempty"`
}
func (m *ResourceSelection) Reset() { *m = ResourceSelection{} }
func (m *ResourceSelection) String() string { return proto.CompactTextString(m) }
func (*ResourceSelection) ProtoMessage() {}
func (*ResourceSelection) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} }
func (m *ResourceSelection) GetSpec() *Resource {
if m != nil {
return m.Spec
}
return nil
}
func (m *ResourceSelection) GetLabelSelector() string {
if m != nil {
return m.LabelSelector
}
return ""
}
type ResourceError struct {
Spec *Resource `protobuf:"bytes,1,opt,name=spec" json:"spec,omitempty"`
Error string `protobuf:"bytes,2,opt,name=error" json:"error,omitempty"`
}
func (m *ResourceError) Reset() { *m = ResourceError{} }
func (m *ResourceError) String() string { return proto.CompactTextString(m) }
func (*ResourceError) ProtoMessage() {}
func (*ResourceError) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} }
func (m *ResourceError) GetSpec() *Resource {
if m != nil {
return m.Spec
}
return nil
}
func (m *ResourceError) GetError() string {
if m != nil {
return m.Error
}
return ""
}
type StatSummaryRequest struct {
Resource *ResourceSelection `protobuf:"bytes,1,opt,name=resource" json:"resource,omitempty"`
TimeWindow TimeWindow `protobuf:"varint,2,opt,name=time_window,json=timeWindow,enum=conduit.public.TimeWindow" json:"time_window,omitempty"`
// Types that are valid to be assigned to Outbound:
// *StatSummaryRequest_None
// *StatSummaryRequest_OutToResource
// *StatSummaryRequest_OutFromResource
Outbound isStatSummaryRequest_Outbound `protobuf_oneof:"outbound"`
}
func (m *StatSummaryRequest) Reset() { *m = StatSummaryRequest{} }
func (m *StatSummaryRequest) String() string { return proto.CompactTextString(m) }
func (*StatSummaryRequest) ProtoMessage() {}
func (*StatSummaryRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} }
type isStatSummaryRequest_Outbound interface{ isStatSummaryRequest_Outbound() }
type StatSummaryRequest_None struct {
None *Empty `protobuf:"bytes,3,opt,name=none,oneof"`
}
type StatSummaryRequest_OutToResource struct {
OutToResource *Resource `protobuf:"bytes,4,opt,name=out_to_resource,json=outToResource,oneof"`
}
type StatSummaryRequest_OutFromResource struct {
OutFromResource *Resource `protobuf:"bytes,5,opt,name=out_from_resource,json=outFromResource,oneof"`
}
func (*StatSummaryRequest_None) isStatSummaryRequest_Outbound() {}
func (*StatSummaryRequest_OutToResource) isStatSummaryRequest_Outbound() {}
func (*StatSummaryRequest_OutFromResource) isStatSummaryRequest_Outbound() {}
func (m *StatSummaryRequest) GetOutbound() isStatSummaryRequest_Outbound {
if m != nil {
return m.Outbound
}
return nil
}
func (m *StatSummaryRequest) GetResource() *ResourceSelection {
if m != nil {
return m.Resource
}
return nil
}
func (m *StatSummaryRequest) GetTimeWindow() TimeWindow {
if m != nil {
return m.TimeWindow
}
return TimeWindow_TEN_SEC
}
func (m *StatSummaryRequest) GetNone() *Empty {
if x, ok := m.GetOutbound().(*StatSummaryRequest_None); ok {
return x.None
}
return nil
}
func (m *StatSummaryRequest) GetOutToResource() *Resource {
if x, ok := m.GetOutbound().(*StatSummaryRequest_OutToResource); ok {
return x.OutToResource
}
return nil
}
func (m *StatSummaryRequest) GetOutFromResource() *Resource {
if x, ok := m.GetOutbound().(*StatSummaryRequest_OutFromResource); ok {
return x.OutFromResource
}
return nil
}
// XXX_OneofFuncs is for the internal use of the proto package.
func (*StatSummaryRequest) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
return _StatSummaryRequest_OneofMarshaler, _StatSummaryRequest_OneofUnmarshaler, _StatSummaryRequest_OneofSizer, []interface{}{
(*StatSummaryRequest_None)(nil),
(*StatSummaryRequest_OutToResource)(nil),
(*StatSummaryRequest_OutFromResource)(nil),
}
}
func _StatSummaryRequest_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
m := msg.(*StatSummaryRequest)
// outbound
switch x := m.Outbound.(type) {
case *StatSummaryRequest_None:
b.EncodeVarint(3<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.None); err != nil {
return err
}
case *StatSummaryRequest_OutToResource:
b.EncodeVarint(4<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.OutToResource); err != nil {
return err
}
case *StatSummaryRequest_OutFromResource:
b.EncodeVarint(5<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.OutFromResource); err != nil {
return err
}
case nil:
default:
return fmt.Errorf("StatSummaryRequest.Outbound has unexpected type %T", x)
}
return nil
}
func _StatSummaryRequest_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
m := msg.(*StatSummaryRequest)
switch tag {
case 3: // outbound.none
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(Empty)
err := b.DecodeMessage(msg)
m.Outbound = &StatSummaryRequest_None{msg}
return true, err
case 4: // outbound.out_to_resource
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(Resource)
err := b.DecodeMessage(msg)
m.Outbound = &StatSummaryRequest_OutToResource{msg}
return true, err
case 5: // outbound.out_from_resource
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(Resource)
err := b.DecodeMessage(msg)
m.Outbound = &StatSummaryRequest_OutFromResource{msg}
return true, err
default:
return false, nil
}
}
func _StatSummaryRequest_OneofSizer(msg proto.Message) (n int) {
m := msg.(*StatSummaryRequest)
// outbound
switch x := m.Outbound.(type) {
case *StatSummaryRequest_None:
s := proto.Size(x.None)
n += proto.SizeVarint(3<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case *StatSummaryRequest_OutToResource:
s := proto.Size(x.OutToResource)
n += proto.SizeVarint(4<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case *StatSummaryRequest_OutFromResource:
s := proto.Size(x.OutFromResource)
n += proto.SizeVarint(5<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case nil:
default:
panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
}
return n
}
type StatSummaryResponse struct {
// Types that are valid to be assigned to Response:
// *StatSummaryResponse_Ok_
// *StatSummaryResponse_Error
Response isStatSummaryResponse_Response `protobuf_oneof:"response"`
}
func (m *StatSummaryResponse) Reset() { *m = StatSummaryResponse{} }
func (m *StatSummaryResponse) String() string { return proto.CompactTextString(m) }
func (*StatSummaryResponse) ProtoMessage() {}
func (*StatSummaryResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} }
type isStatSummaryResponse_Response interface{ isStatSummaryResponse_Response() }
type StatSummaryResponse_Ok_ struct {
Ok *StatSummaryResponse_Ok `protobuf:"bytes,1,opt,name=ok,oneof"`
}
type StatSummaryResponse_Error struct {
Error *ResourceError `protobuf:"bytes,2,opt,name=error,oneof"`
}
func (*StatSummaryResponse_Ok_) isStatSummaryResponse_Response() {}
func (*StatSummaryResponse_Error) isStatSummaryResponse_Response() {}
func (m *StatSummaryResponse) GetResponse() isStatSummaryResponse_Response {
if m != nil {
return m.Response
}
return nil
}
func (m *StatSummaryResponse) GetOk() *StatSummaryResponse_Ok {
if x, ok := m.GetResponse().(*StatSummaryResponse_Ok_); ok {
return x.Ok
}
return nil
}
func (m *StatSummaryResponse) GetError() *ResourceError {
if x, ok := m.GetResponse().(*StatSummaryResponse_Error); ok {
return x.Error
}
return nil
}
// XXX_OneofFuncs is for the internal use of the proto package.
func (*StatSummaryResponse) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
return _StatSummaryResponse_OneofMarshaler, _StatSummaryResponse_OneofUnmarshaler, _StatSummaryResponse_OneofSizer, []interface{}{
(*StatSummaryResponse_Ok_)(nil),
(*StatSummaryResponse_Error)(nil),
}
}
func _StatSummaryResponse_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
m := msg.(*StatSummaryResponse)
// response
switch x := m.Response.(type) {
case *StatSummaryResponse_Ok_:
b.EncodeVarint(1<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Ok); err != nil {
return err
}
case *StatSummaryResponse_Error:
b.EncodeVarint(2<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Error); err != nil {
return err
}
case nil:
default:
return fmt.Errorf("StatSummaryResponse.Response has unexpected type %T", x)
}
return nil
}
func _StatSummaryResponse_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
m := msg.(*StatSummaryResponse)
switch tag {
case 1: // response.ok
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(StatSummaryResponse_Ok)
err := b.DecodeMessage(msg)
m.Response = &StatSummaryResponse_Ok_{msg}
return true, err
case 2: // response.error
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(ResourceError)
err := b.DecodeMessage(msg)
m.Response = &StatSummaryResponse_Error{msg}
return true, err
default:
return false, nil
}
}
func _StatSummaryResponse_OneofSizer(msg proto.Message) (n int) {
m := msg.(*StatSummaryResponse)
// response
switch x := m.Response.(type) {
case *StatSummaryResponse_Ok_:
s := proto.Size(x.Ok)
n += proto.SizeVarint(1<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case *StatSummaryResponse_Error:
s := proto.Size(x.Error)
n += proto.SizeVarint(2<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case nil:
default:
panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
}
return n
}
type StatSummaryResponse_Ok struct {
StatTables []*StatTable `protobuf:"bytes,1,rep,name=stat_tables,json=statTables" json:"stat_tables,omitempty"`
}
func (m *StatSummaryResponse_Ok) Reset() { *m = StatSummaryResponse_Ok{} }
func (m *StatSummaryResponse_Ok) String() string { return proto.CompactTextString(m) }
func (*StatSummaryResponse_Ok) ProtoMessage() {}
func (*StatSummaryResponse_Ok) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18, 0} }
func (m *StatSummaryResponse_Ok) GetStatTables() []*StatTable {
if m != nil {
return m.StatTables
}
return nil
}
type BasicStats struct {
SuccessCount uint64 `protobuf:"varint,1,opt,name=success_count,json=successCount" json:"success_count,omitempty"`
FailureCount uint64 `protobuf:"varint,2,opt,name=failure_count,json=failureCount" json:"failure_count,omitempty"`
LatencyMsP50 uint64 `protobuf:"varint,3,opt,name=latency_ms_p50,json=latencyMsP50" json:"latency_ms_p50,omitempty"`
LatencyMsP90 uint64 `protobuf:"varint,4,opt,name=latency_ms_p90,json=latencyMsP90" json:"latency_ms_p90,omitempty"`
}
func (m *BasicStats) Reset() { *m = BasicStats{} }
func (m *BasicStats) String() string { return proto.CompactTextString(m) }
func (*BasicStats) ProtoMessage() {}
func (*BasicStats) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} }
func (m *BasicStats) GetSuccessCount() uint64 {
if m != nil {
return m.SuccessCount
}
return 0
}
func (m *BasicStats) GetFailureCount() uint64 {
if m != nil {
return m.FailureCount
}
return 0
}
func (m *BasicStats) GetLatencyMsP50() uint64 {
if m != nil {
return m.LatencyMsP50
}
return 0
}
func (m *BasicStats) GetLatencyMsP90() uint64 {
if m != nil {
return m.LatencyMsP90
}
return 0
}
type StatTable struct {
// Types that are valid to be assigned to Table:
// *StatTable_PodGroup_
Table isStatTable_Table `protobuf_oneof:"table"`
}
func (m *StatTable) Reset() { *m = StatTable{} }
func (m *StatTable) String() string { return proto.CompactTextString(m) }
func (*StatTable) ProtoMessage() {}
func (*StatTable) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} }
type isStatTable_Table interface{ isStatTable_Table() }
type StatTable_PodGroup_ struct {
PodGroup *StatTable_PodGroup `protobuf:"bytes,1,opt,name=pod_group,json=podGroup,oneof"`
}
func (*StatTable_PodGroup_) isStatTable_Table() {}
func (m *StatTable) GetTable() isStatTable_Table {
if m != nil {
return m.Table
}
return nil
}
func (m *StatTable) GetPodGroup() *StatTable_PodGroup {
if x, ok := m.GetTable().(*StatTable_PodGroup_); ok {
return x.PodGroup
}
return nil
}
// XXX_OneofFuncs is for the internal use of the proto package.
func (*StatTable) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
return _StatTable_OneofMarshaler, _StatTable_OneofUnmarshaler, _StatTable_OneofSizer, []interface{}{
(*StatTable_PodGroup_)(nil),
}
}
func _StatTable_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
m := msg.(*StatTable)
// table
switch x := m.Table.(type) {
case *StatTable_PodGroup_:
b.EncodeVarint(1<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.PodGroup); err != nil {
return err
}
case nil:
default:
return fmt.Errorf("StatTable.Table has unexpected type %T", x)
}
return nil
}
func _StatTable_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
m := msg.(*StatTable)
switch tag {
case 1: // table.pod_group
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(StatTable_PodGroup)
err := b.DecodeMessage(msg)
m.Table = &StatTable_PodGroup_{msg}
return true, err
default:
return false, nil
}
}
func _StatTable_OneofSizer(msg proto.Message) (n int) {
m := msg.(*StatTable)
// table
switch x := m.Table.(type) {
case *StatTable_PodGroup_:
s := proto.Size(x.PodGroup)
n += proto.SizeVarint(1<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case nil:
default:
panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
}
return n
}
type StatTable_PodGroup struct {
Rows []*StatTable_PodGroup_Row `protobuf:"bytes,1,rep,name=rows" json:"rows,omitempty"`
}
func (m *StatTable_PodGroup) Reset() { *m = StatTable_PodGroup{} }
func (m *StatTable_PodGroup) String() string { return proto.CompactTextString(m) }
func (*StatTable_PodGroup) ProtoMessage() {}
func (*StatTable_PodGroup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20, 0} }
func (m *StatTable_PodGroup) GetRows() []*StatTable_PodGroup_Row {
if m != nil {
return m.Rows
}
return nil
}
type StatTable_PodGroup_Row struct {
Spec *Resource `protobuf:"bytes,1,opt,name=spec" json:"spec,omitempty"`
TimeWindow TimeWindow `protobuf:"varint,2,opt,name=time_window,json=timeWindow,enum=conduit.public.TimeWindow" json:"time_window,omitempty"`
MeshedPodCount uint64 `protobuf:"varint,3,opt,name=meshed_pod_count,json=meshedPodCount" json:"meshed_pod_count,omitempty"`
TotalPodCount uint64 `protobuf:"varint,4,opt,name=total_pod_count,json=totalPodCount" json:"total_pod_count,omitempty"`
Stats *BasicStats `protobuf:"bytes,5,opt,name=stats" json:"stats,omitempty"`
}
func (m *StatTable_PodGroup_Row) Reset() { *m = StatTable_PodGroup_Row{} }
func (m *StatTable_PodGroup_Row) String() string { return proto.CompactTextString(m) }
func (*StatTable_PodGroup_Row) ProtoMessage() {}
func (*StatTable_PodGroup_Row) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20, 0, 0} }
func (m *StatTable_PodGroup_Row) GetSpec() *Resource {
if m != nil {
return m.Spec
}
return nil
}
func (m *StatTable_PodGroup_Row) GetTimeWindow() TimeWindow {
if m != nil {
return m.TimeWindow
}
return TimeWindow_TEN_SEC
}
func (m *StatTable_PodGroup_Row) GetMeshedPodCount() uint64 {
if m != nil {
return m.MeshedPodCount
}
return 0
}
func (m *StatTable_PodGroup_Row) GetTotalPodCount() uint64 {
if m != nil {
return m.TotalPodCount
}
return 0
}
func (m *StatTable_PodGroup_Row) GetStats() *BasicStats {
if m != nil {
return m.Stats
}
return nil
}
func init() {
proto.RegisterType((*HistogramValue)(nil), "conduit.public.HistogramValue")
proto.RegisterType((*Histogram)(nil), "conduit.public.Histogram")
@ -828,6 +1408,16 @@ func init() {
proto.RegisterType((*Pod)(nil), "conduit.public.Pod")
proto.RegisterType((*TapRequest)(nil), "conduit.public.TapRequest")
proto.RegisterType((*ApiError)(nil), "conduit.public.ApiError")
proto.RegisterType((*Resource)(nil), "conduit.public.Resource")
proto.RegisterType((*ResourceSelection)(nil), "conduit.public.ResourceSelection")
proto.RegisterType((*ResourceError)(nil), "conduit.public.ResourceError")
proto.RegisterType((*StatSummaryRequest)(nil), "conduit.public.StatSummaryRequest")
proto.RegisterType((*StatSummaryResponse)(nil), "conduit.public.StatSummaryResponse")
proto.RegisterType((*StatSummaryResponse_Ok)(nil), "conduit.public.StatSummaryResponse.Ok")
proto.RegisterType((*BasicStats)(nil), "conduit.public.BasicStats")
proto.RegisterType((*StatTable)(nil), "conduit.public.StatTable")
proto.RegisterType((*StatTable_PodGroup)(nil), "conduit.public.StatTable.PodGroup")
proto.RegisterType((*StatTable_PodGroup_Row)(nil), "conduit.public.StatTable.PodGroup.Row")
proto.RegisterEnum("conduit.public.MetricName", MetricName_name, MetricName_value)
proto.RegisterEnum("conduit.public.TimeWindow", TimeWindow_name, TimeWindow_value)
proto.RegisterEnum("conduit.public.AggregationType", AggregationType_name, AggregationType_value)
@ -846,6 +1436,7 @@ const _ = grpc.SupportPackageIsVersion4
type ApiClient interface {
Stat(ctx context.Context, in *MetricRequest, opts ...grpc.CallOption) (*MetricResponse, error)
StatSummary(ctx context.Context, in *StatSummaryRequest, opts ...grpc.CallOption) (*StatSummaryResponse, error)
Version(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*VersionInfo, error)
ListPods(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*ListPodsResponse, error)
SelfCheck(ctx context.Context, in *conduit_common_healthcheck.SelfCheckRequest, opts ...grpc.CallOption) (*conduit_common_healthcheck.SelfCheckResponse, error)
@ -869,6 +1460,15 @@ func (c *apiClient) Stat(ctx context.Context, in *MetricRequest, opts ...grpc.Ca
return out, nil
}
func (c *apiClient) StatSummary(ctx context.Context, in *StatSummaryRequest, opts ...grpc.CallOption) (*StatSummaryResponse, error) {
out := new(StatSummaryResponse)
err := grpc.Invoke(ctx, "/conduit.public.Api/StatSummary", in, out, c.cc, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *apiClient) Version(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*VersionInfo, error) {
out := new(VersionInfo)
err := grpc.Invoke(ctx, "/conduit.public.Api/Version", in, out, c.cc, opts...)
@ -932,6 +1532,7 @@ func (x *apiTapClient) Recv() (*conduit_common.TapEvent, error) {
type ApiServer interface {
Stat(context.Context, *MetricRequest) (*MetricResponse, error)
StatSummary(context.Context, *StatSummaryRequest) (*StatSummaryResponse, error)
Version(context.Context, *Empty) (*VersionInfo, error)
ListPods(context.Context, *Empty) (*ListPodsResponse, error)
SelfCheck(context.Context, *conduit_common_healthcheck.SelfCheckRequest) (*conduit_common_healthcheck.SelfCheckResponse, error)
@ -960,6 +1561,24 @@ func _Api_Stat_Handler(srv interface{}, ctx context.Context, dec func(interface{
return interceptor(ctx, in, info, handler)
}
func _Api_StatSummary_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(StatSummaryRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(ApiServer).StatSummary(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/conduit.public.Api/StatSummary",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(ApiServer).StatSummary(ctx, req.(*StatSummaryRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Api_Version_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(Empty)
if err := dec(in); err != nil {
@ -1043,6 +1662,10 @@ var _Api_serviceDesc = grpc.ServiceDesc{
MethodName: "Stat",
Handler: _Api_Stat_Handler,
},
{
MethodName: "StatSummary",
Handler: _Api_StatSummary_Handler,
},
{
MethodName: "Version",
Handler: _Api_Version_Handler,
@ -1069,80 +1692,111 @@ var _Api_serviceDesc = grpc.ServiceDesc{
func init() { proto.RegisterFile("public/api.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{
// 1189 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x56, 0xdb, 0x6e, 0xdb, 0x46,
0x13, 0x16, 0x45, 0xdb, 0x92, 0x46, 0xb6, 0xc2, 0x7f, 0x93, 0x3f, 0x60, 0xd5, 0xd4, 0x55, 0x89,
0xa2, 0x35, 0x8c, 0x56, 0x4e, 0xdd, 0x24, 0x80, 0x5b, 0x04, 0x81, 0x2c, 0x13, 0x91, 0x01, 0x1f,
0xd4, 0x95, 0x9c, 0x36, 0x40, 0x01, 0x63, 0x4d, 0xae, 0x29, 0xb6, 0x24, 0x97, 0x21, 0x97, 0x49,
0xd5, 0xdb, 0xa2, 0xb7, 0xbd, 0xee, 0x13, 0xf4, 0x25, 0xfa, 0x72, 0xc5, 0x1e, 0xa8, 0x53, 0x94,
0x20, 0x57, 0xda, 0xf9, 0xe6, 0x9b, 0xd9, 0x39, 0xed, 0x88, 0x60, 0xa5, 0xc5, 0x4d, 0x14, 0x7a,
0x07, 0x24, 0x0d, 0xbb, 0x69, 0xc6, 0x38, 0x43, 0x2d, 0x8f, 0x25, 0x7e, 0x11, 0xf2, 0xae, 0xd2,
0xb4, 0x77, 0x03, 0xc6, 0x82, 0x88, 0x1e, 0x48, 0xed, 0x4d, 0x71, 0x7b, 0xe0, 0x17, 0x19, 0xe1,
0x21, 0x4b, 0x14, 0xbf, 0x7d, 0xd7, 0x63, 0x71, 0xcc, 0x92, 0x03, 0xf5, 0xa3, 0xc1, 0xcf, 0x35,
0x38, 0xa1, 0x24, 0xe2, 0x13, 0x6f, 0x42, 0xbd, 0x5f, 0x17, 0xcf, 0x8a, 0xe5, 0xfc, 0x0c, 0xad,
0x41, 0x98, 0x73, 0x16, 0x64, 0x24, 0x7e, 0x41, 0xa2, 0x82, 0xa2, 0x47, 0xb0, 0x19, 0x91, 0x1b,
0x1a, 0xd9, 0x46, 0xc7, 0xd8, 0x6b, 0x1d, 0xee, 0x76, 0x97, 0x83, 0xe9, 0xce, 0xe8, 0x67, 0x82,
0x85, 0x15, 0x19, 0xdd, 0x83, 0xcd, 0xd7, 0xc2, 0xdc, 0xae, 0x76, 0x8c, 0x3d, 0x13, 0x2b, 0xc1,
0xe9, 0x43, 0x63, 0x46, 0x47, 0x4f, 0x60, 0x4b, 0xa2, 0xb9, 0x6d, 0x74, 0xcc, 0xbd, 0xe6, 0x7b,
0x3c, 0xcb, 0x40, 0xb0, 0x66, 0x3b, 0x7f, 0x1a, 0xd0, 0x3c, 0xa7, 0x3c, 0x0b, 0x3d, 0x15, 0x60,
0x1b, 0x6a, 0x1e, 0x2b, 0x12, 0x4e, 0x33, 0x19, 0xa2, 0x39, 0xa8, 0xe0, 0x12, 0x40, 0xf7, 0x61,
0x33, 0x20, 0x45, 0xa0, 0xc2, 0x30, 0x06, 0x15, 0xac, 0x44, 0x74, 0x04, 0x8d, 0x49, 0xe9, 0xdd,
0x36, 0x3b, 0xc6, 0x5e, 0xf3, 0xf0, 0xa3, 0x77, 0x5e, 0x3f, 0xa8, 0xe0, 0x39, 0xfb, 0xb8, 0xa6,
0x33, 0x73, 0x02, 0xb8, 0xa3, 0xc2, 0x38, 0x21, 0x9c, 0xa4, 0x2c, 0x4c, 0x38, 0xfa, 0xa6, 0xcc,
0xda, 0x90, 0x2e, 0x3f, 0x5e, 0x75, 0xb9, 0x10, 0xb6, 0x2e, 0x09, 0xfa, 0x0c, 0xb6, 0x79, 0x18,
0xd3, 0x9c, 0x93, 0x38, 0xbd, 0x8e, 0x73, 0x5d, 0xaf, 0xe6, 0x0c, 0x3b, 0xcf, 0x9d, 0x7f, 0x0d,
0xd8, 0x56, 0x96, 0x23, 0x9a, 0x85, 0x34, 0x47, 0x5d, 0xd8, 0x48, 0x48, 0x4c, 0x75, 0x47, 0xda,
0xeb, 0x6f, 0xb9, 0x20, 0x31, 0xc5, 0x92, 0x87, 0xbe, 0x83, 0x7a, 0x4c, 0x39, 0xf1, 0x09, 0x27,
0xd2, 0xff, 0x9a, 0x5a, 0x2b, 0x9b, 0x73, 0xcd, 0xc2, 0x33, 0x3e, 0x7a, 0x06, 0xe0, 0x97, 0xf9,
0xe5, 0xb6, 0x29, 0x3b, 0xf5, 0xe9, 0x7a, 0xeb, 0x59, 0x1d, 0xf0, 0x82, 0x89, 0xf3, 0x1a, 0x5a,
0xcb, 0xce, 0x91, 0x03, 0xdb, 0x9c, 0x64, 0x01, 0xe5, 0x27, 0x34, 0x8d, 0xd8, 0x54, 0xa6, 0xd1,
0xc0, 0x4b, 0x98, 0xe0, 0xe4, 0xac, 0xc8, 0x3c, 0xaa, 0x39, 0x55, 0xc5, 0x59, 0xc4, 0xd0, 0x03,
0x68, 0x78, 0x2c, 0x4e, 0x59, 0x42, 0x13, 0x2e, 0x9b, 0xd8, 0xc0, 0x73, 0xc0, 0x19, 0x94, 0xf7,
0x62, 0x9a, 0xa7, 0x2c, 0xc9, 0x29, 0x7a, 0x02, 0xb5, 0x58, 0x22, 0xe5, 0xc4, 0x3d, 0x58, 0x9f,
0x87, 0xaa, 0x32, 0x2e, 0xc9, 0xce, 0x5f, 0x55, 0xd8, 0x29, 0x5d, 0xbd, 0x2a, 0x68, 0xce, 0xd1,
0xa3, 0x65, 0x4f, 0xef, 0xef, 0x41, 0x49, 0x45, 0x87, 0xb0, 0xf5, 0x26, 0x4c, 0x7c, 0xf6, 0x46,
0x66, 0xb3, 0xc6, 0x68, 0x1c, 0xc6, 0xf4, 0x47, 0xc9, 0xc0, 0x9a, 0x89, 0x8e, 0xa0, 0x16, 0x64,
0xac, 0x48, 0x8f, 0xa7, 0x32, 0xc3, 0xd6, 0xdb, 0xb5, 0xef, 0x05, 0x41, 0x46, 0x03, 0xf9, 0xfc,
0xc7, 0xd3, 0x94, 0xe2, 0x92, 0x2f, 0xba, 0x7e, 0x1b, 0x46, 0x9c, 0x66, 0xc7, 0x53, 0x7b, 0xe3,
0xc3, 0xba, 0x5e, 0xf2, 0x45, 0x69, 0xf3, 0x22, 0x8e, 0x49, 0x16, 0xfe, 0x4e, 0xed, 0xcd, 0x8e,
0xb1, 0x57, 0xc7, 0x73, 0xc0, 0xa9, 0xc1, 0xa6, 0x1b, 0xa7, 0x7c, 0xea, 0xbc, 0x82, 0xe6, 0x0b,
0x9a, 0xe5, 0x21, 0x4b, 0x4e, 0x93, 0x5b, 0x26, 0xac, 0x02, 0xa6, 0x01, 0xdd, 0xd5, 0x39, 0x20,
0xb4, 0x37, 0x45, 0x18, 0xf9, 0x27, 0x84, 0x53, 0xdd, 0xcf, 0x39, 0x80, 0xbe, 0x80, 0x56, 0x46,
0x23, 0x4a, 0x72, 0x5a, 0x3a, 0x50, 0x1d, 0x5d, 0x41, 0x9d, 0xef, 0xc1, 0x3a, 0x0b, 0x73, 0x3e,
0x64, 0x7e, 0x3e, 0x6b, 0xec, 0x97, 0xb0, 0x91, 0x32, 0xbf, 0xec, 0xea, 0xdd, 0xd5, 0x2c, 0x87,
0xcc, 0xc7, 0x92, 0xe0, 0xfc, 0x5d, 0x05, 0x73, 0xc8, 0x7c, 0x84, 0x16, 0x1e, 0x50, 0x43, 0x3f,
0x92, 0x7b, 0xb0, 0x99, 0x32, 0xff, 0x74, 0xa8, 0x43, 0x53, 0x02, 0xda, 0x05, 0xf0, 0xe5, 0xb4,
0xc5, 0xf3, 0x21, 0x5b, 0x40, 0xd0, 0x7d, 0xd8, 0xca, 0x39, 0xe1, 0x45, 0x2e, 0x4b, 0xdc, 0xc0,
0x5a, 0x12, 0xde, 0x88, 0xef, 0x53, 0x5f, 0x17, 0x4f, 0x09, 0xa8, 0x0f, 0x77, 0xf2, 0x30, 0xf1,
0xe8, 0x19, 0xc9, 0x39, 0xa6, 0x29, 0xcb, 0xb8, 0xbd, 0xa5, 0x97, 0x8f, 0x5a, 0xe9, 0xdd, 0x72,
0xa5, 0x77, 0x4f, 0xf4, 0x4a, 0xc7, 0xab, 0x16, 0xe8, 0x21, 0xdc, 0xf5, 0x58, 0xc2, 0x33, 0x16,
0x45, 0x34, 0x13, 0x13, 0x96, 0xa7, 0xc4, 0xa3, 0x76, 0x4d, 0xde, 0xbf, 0x4e, 0x25, 0x1e, 0x93,
0x86, 0x87, 0x11, 0x49, 0xa8, 0x5d, 0x97, 0x31, 0x2d, 0x61, 0xce, 0x3f, 0x55, 0x80, 0x31, 0x49,
0xcb, 0x09, 0x47, 0x60, 0xa6, 0xcc, 0x57, 0x05, 0x1a, 0x54, 0xb0, 0x10, 0x50, 0x67, 0xa9, 0x16,
0x55, 0xad, 0x5a, 0xa9, 0x46, 0x4c, 0x7e, 0xc3, 0x69, 0x2e, 0x2b, 0x55, 0xc5, 0x5a, 0x12, 0x38,
0x67, 0x43, 0x91, 0xae, 0xa8, 0xd2, 0x0e, 0xd6, 0x92, 0xe8, 0x03, 0x67, 0xa7, 0x43, 0x59, 0xa4,
0x06, 0x96, 0x67, 0xd4, 0x86, 0xfa, 0x6d, 0xc6, 0xe2, 0x61, 0x59, 0x9c, 0x1d, 0x3c, 0x93, 0x85,
0x1f, 0x71, 0x3e, 0x1d, 0xea, 0x6c, 0xb5, 0x24, 0xbb, 0xe0, 0x4d, 0x68, 0xac, 0x52, 0x13, 0x5d,
0x90, 0x92, 0x8c, 0x87, 0xf2, 0x09, 0xf3, 0xed, 0x86, 0xc2, 0x95, 0x24, 0x46, 0x91, 0x14, 0x7c,
0xc2, 0xb2, 0x90, 0x4f, 0x6d, 0x50, 0xa3, 0x38, 0x03, 0x44, 0x54, 0x29, 0xe1, 0x13, 0xbb, 0xa9,
0xa2, 0x12, 0xe7, 0xe3, 0x3a, 0x6c, 0xa9, 0xfd, 0xe4, 0x74, 0xa0, 0xde, 0x4b, 0x43, 0x37, 0xcb,
0x58, 0x26, 0xba, 0x4c, 0xc5, 0x41, 0x0f, 0x92, 0x12, 0xf6, 0x9f, 0x02, 0xcc, 0x9f, 0x3f, 0xb2,
0x60, 0x1b, 0xbb, 0x3f, 0x5c, 0xb9, 0xa3, 0xf1, 0x35, 0xee, 0x8d, 0x5d, 0xab, 0x82, 0x9a, 0x50,
0x3b, 0xeb, 0x8d, 0xdd, 0x8b, 0xfe, 0x4b, 0xcb, 0x10, 0xea, 0xd1, 0x55, 0xbf, 0xef, 0x8e, 0x46,
0x4a, 0x5d, 0xdd, 0xef, 0x01, 0xcc, 0x17, 0x81, 0x20, 0x8f, 0xdd, 0x8b, 0xeb, 0x91, 0xdb, 0x57,
0x96, 0x97, 0x17, 0xee, 0xf5, 0xf9, 0xe9, 0x85, 0x65, 0x94, 0x1a, 0x21, 0x54, 0xd1, 0x36, 0xd4,
0x85, 0x66, 0x70, 0x79, 0x85, 0x2d, 0x73, 0xbf, 0x07, 0x77, 0x56, 0xd6, 0x02, 0xfa, 0x1f, 0xec,
0x8c, 0x7b, 0xf8, 0xb9, 0x3b, 0xbe, 0x3e, 0x71, 0x87, 0x67, 0x97, 0x2f, 0xad, 0x8a, 0x80, 0x46,
0x97, 0x57, 0xb8, 0xef, 0x96, 0x90, 0x81, 0xea, 0xb0, 0x71, 0xee, 0x8e, 0x06, 0x56, 0x75, 0xff,
0xe9, 0xc2, 0x87, 0x80, 0xfc, 0x67, 0x47, 0x35, 0x30, 0xc5, 0x5d, 0x15, 0x71, 0x18, 0x3e, 0x7e,
0x68, 0x19, 0xf2, 0x70, 0xf4, 0xd8, 0xaa, 0xaa, 0xc3, 0x91, 0x65, 0x4a, 0x4e, 0xef, 0x27, 0x6b,
0xe3, 0xf0, 0x0f, 0x13, 0xcc, 0x5e, 0x1a, 0xa2, 0xe7, 0xb0, 0x31, 0xe2, 0x84, 0xa3, 0x4f, 0xd6,
0xaf, 0x1e, 0x3d, 0x6e, 0xed, 0xdd, 0x77, 0xa9, 0xd5, 0x0b, 0x77, 0x2a, 0xe8, 0x19, 0xd4, 0xca,
0x45, 0xf2, 0xff, 0x55, 0xb2, 0x5c, 0x46, 0xed, 0xb7, 0xfe, 0x6d, 0x17, 0x56, 0x93, 0x53, 0x41,
0x2e, 0xd4, 0xcb, 0xc5, 0xf1, 0x2e, 0x0f, 0x9d, 0x55, 0x78, 0x75, 0xd3, 0x38, 0x15, 0xf4, 0x0b,
0x34, 0x46, 0x34, 0xba, 0xed, 0x8b, 0x6f, 0x26, 0xf4, 0xd5, 0xcc, 0x40, 0x7f, 0x6a, 0x2d, 0x7e,
0x50, 0xcd, 0x68, 0x65, 0x92, 0x5f, 0x7f, 0x20, 0x7b, 0x21, 0x67, 0x73, 0x4c, 0x52, 0xf4, 0xf6,
0xff, 0xc4, 0xec, 0x9d, 0xb6, 0xed, 0x55, 0x9f, 0x63, 0x92, 0xba, 0xaf, 0xc5, 0xff, 0x5f, 0xe5,
0xa1, 0x71, 0xb3, 0x25, 0xd7, 0xc9, 0xb7, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0x8d, 0x3d, 0x1a,
0x00, 0x53, 0x0a, 0x00, 0x00,
// 1688 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x57, 0xdd, 0x6e, 0xe3, 0xc6,
0x15, 0x16, 0x29, 0xd9, 0x92, 0x8e, 0x2c, 0x5b, 0x3b, 0x9b, 0x06, 0x8a, 0x9a, 0x6c, 0x1d, 0x26,
0xdd, 0x1a, 0xdb, 0x54, 0xeb, 0xba, 0x71, 0x50, 0x6f, 0xb0, 0x48, 0x65, 0x99, 0x59, 0x19, 0xf0,
0x8f, 0x3a, 0xd2, 0xa6, 0x09, 0x50, 0x40, 0x18, 0x93, 0x63, 0x89, 0x35, 0xc9, 0x61, 0x38, 0xc3,
0x75, 0xd5, 0xfb, 0xde, 0xf6, 0xb6, 0xbd, 0xee, 0x45, 0x5f, 0xa2, 0xe8, 0x5b, 0xb4, 0x97, 0x7d,
0x8b, 0x3e, 0x40, 0x31, 0x3f, 0xa4, 0x64, 0xad, 0xbc, 0xd9, 0x20, 0x57, 0x9a, 0xf3, 0xcd, 0x77,
0xce, 0x9c, 0xbf, 0x39, 0x1a, 0x42, 0x2b, 0xc9, 0xae, 0xc2, 0xc0, 0x7b, 0x4a, 0x92, 0xa0, 0x9b,
0xa4, 0x4c, 0x30, 0xb4, 0xed, 0xb1, 0xd8, 0xcf, 0x02, 0xd1, 0xd5, 0x3b, 0x9d, 0x47, 0x53, 0xc6,
0xa6, 0x21, 0x7d, 0xaa, 0x76, 0xaf, 0xb2, 0xeb, 0xa7, 0x7e, 0x96, 0x12, 0x11, 0xb0, 0x58, 0xf3,
0x3b, 0x0f, 0x3d, 0x16, 0x45, 0x2c, 0x7e, 0xaa, 0x7f, 0x0c, 0xf8, 0xb1, 0x01, 0x67, 0x94, 0x84,
0x62, 0xe6, 0xcd, 0xa8, 0x77, 0xb3, 0xbc, 0xd6, 0x2c, 0xe7, 0xf7, 0xb0, 0x3d, 0x08, 0xb8, 0x60,
0xd3, 0x94, 0x44, 0x5f, 0x91, 0x30, 0xa3, 0xe8, 0x53, 0xd8, 0x08, 0xc9, 0x15, 0x0d, 0xdb, 0xd6,
0xae, 0xb5, 0xb7, 0x7d, 0xf0, 0xa8, 0x7b, 0xd7, 0x99, 0x6e, 0x41, 0x3f, 0x93, 0x2c, 0xac, 0xc9,
0xe8, 0x1d, 0xd8, 0x78, 0x25, 0xd5, 0xdb, 0xf6, 0xae, 0xb5, 0x57, 0xc6, 0x5a, 0x70, 0xfa, 0x50,
0x2f, 0xe8, 0xe8, 0x33, 0xd8, 0x54, 0x28, 0x6f, 0x5b, 0xbb, 0xe5, 0xbd, 0xc6, 0x1b, 0x2c, 0x2b,
0x47, 0xb0, 0x61, 0x3b, 0x7f, 0xb6, 0xa0, 0x71, 0x4e, 0x45, 0x1a, 0x78, 0xda, 0xc1, 0x0e, 0x54,
0x3d, 0x96, 0xc5, 0x82, 0xa6, 0xca, 0xc5, 0xf2, 0xa0, 0x84, 0x73, 0x00, 0xbd, 0x0b, 0x1b, 0x53,
0x92, 0x4d, 0xb5, 0x1b, 0xd6, 0xa0, 0x84, 0xb5, 0x88, 0x8e, 0xa0, 0x3e, 0xcb, 0xad, 0xb7, 0xcb,
0xbb, 0xd6, 0x5e, 0xe3, 0xe0, 0xbd, 0x7b, 0x8f, 0x1f, 0x94, 0xf0, 0x82, 0x7d, 0x5c, 0x35, 0x91,
0x39, 0x53, 0xd8, 0xd1, 0x6e, 0x9c, 0x10, 0x41, 0x12, 0x16, 0xc4, 0x02, 0xfd, 0x32, 0x8f, 0xda,
0x52, 0x26, 0x7f, 0xbc, 0x6a, 0x72, 0xc9, 0x6d, 0x93, 0x12, 0xf4, 0x21, 0x6c, 0x89, 0x20, 0xa2,
0x5c, 0x90, 0x28, 0x99, 0x44, 0xdc, 0xe4, 0xab, 0x51, 0x60, 0xe7, 0xdc, 0xf9, 0xa7, 0x05, 0x5b,
0x5a, 0x73, 0x44, 0xd3, 0x80, 0x72, 0xd4, 0x85, 0x4a, 0x4c, 0x22, 0x6a, 0x2a, 0xd2, 0x59, 0x7f,
0xca, 0x05, 0x89, 0x28, 0x56, 0x3c, 0xf4, 0x0c, 0x6a, 0x11, 0x15, 0xc4, 0x27, 0x82, 0x28, 0xfb,
0x6b, 0x72, 0xad, 0x75, 0xce, 0x0d, 0x0b, 0x17, 0x7c, 0xf4, 0x05, 0x80, 0x9f, 0xc7, 0xc7, 0xdb,
0x65, 0x55, 0xa9, 0x9f, 0xac, 0xd7, 0x2e, 0xf2, 0x80, 0x97, 0x54, 0x9c, 0x57, 0xb0, 0x7d, 0xd7,
0x38, 0x72, 0x60, 0x4b, 0x90, 0x74, 0x4a, 0xc5, 0x09, 0x4d, 0x42, 0x36, 0x57, 0x61, 0xd4, 0xf1,
0x1d, 0x4c, 0x72, 0x38, 0xcb, 0x52, 0x8f, 0x1a, 0x8e, 0xad, 0x39, 0xcb, 0x18, 0x7a, 0x1f, 0xea,
0x1e, 0x8b, 0x12, 0x16, 0xd3, 0x58, 0xa8, 0x22, 0xd6, 0xf1, 0x02, 0x70, 0x06, 0xf9, 0xb9, 0x98,
0xf2, 0x84, 0xc5, 0x9c, 0xa2, 0xcf, 0xa0, 0x1a, 0x29, 0x24, 0xef, 0xb8, 0xf7, 0xd7, 0xc7, 0xa1,
0xb3, 0x8c, 0x73, 0xb2, 0xf3, 0x17, 0x1b, 0x9a, 0xb9, 0xa9, 0x6f, 0x33, 0xca, 0x05, 0xfa, 0xf4,
0xae, 0xa5, 0x37, 0xd7, 0x20, 0xa7, 0xa2, 0x03, 0xd8, 0xbc, 0x0d, 0x62, 0x9f, 0xdd, 0xaa, 0x68,
0xd6, 0x28, 0x8d, 0x83, 0x88, 0xfe, 0x4e, 0x31, 0xb0, 0x61, 0xa2, 0x23, 0xa8, 0x4e, 0x53, 0x96,
0x25, 0xc7, 0x73, 0x15, 0xe1, 0xf6, 0xeb, 0xb9, 0xef, 0x4d, 0xa7, 0x29, 0x9d, 0xaa, 0xeb, 0x3f,
0x9e, 0x27, 0x14, 0xe7, 0x7c, 0x59, 0xf5, 0xeb, 0x20, 0x14, 0x34, 0x3d, 0x9e, 0xb7, 0x2b, 0x6f,
0x57, 0xf5, 0x9c, 0x2f, 0x53, 0xcb, 0xb3, 0x28, 0x22, 0x69, 0xf0, 0x27, 0xda, 0xde, 0xd8, 0xb5,
0xf6, 0x6a, 0x78, 0x01, 0x38, 0x55, 0xd8, 0x70, 0xa3, 0x44, 0xcc, 0x9d, 0x6f, 0xa1, 0xf1, 0x15,
0x4d, 0x79, 0xc0, 0xe2, 0xd3, 0xf8, 0x9a, 0x49, 0xad, 0x29, 0x33, 0x80, 0xa9, 0xea, 0x02, 0x90,
0xbb, 0x57, 0x59, 0x10, 0xfa, 0x27, 0x44, 0x50, 0x53, 0xcf, 0x05, 0x80, 0x1e, 0xc3, 0x76, 0x4a,
0x43, 0x4a, 0x38, 0xcd, 0x0d, 0xe8, 0x8a, 0xae, 0xa0, 0xce, 0xe7, 0xd0, 0x3a, 0x0b, 0xb8, 0x18,
0x32, 0x9f, 0x17, 0x85, 0xfd, 0x19, 0x54, 0x12, 0xe6, 0xe7, 0x55, 0x7d, 0xb8, 0x1a, 0xe5, 0x90,
0xf9, 0x58, 0x11, 0x9c, 0xbf, 0xd9, 0x50, 0x1e, 0x32, 0x1f, 0xa1, 0xa5, 0x0b, 0x54, 0x37, 0x97,
0xe4, 0x1d, 0xd8, 0x48, 0x98, 0x7f, 0x3a, 0x34, 0xae, 0x69, 0x01, 0x3d, 0x02, 0xf0, 0x55, 0xb7,
0x45, 0x8b, 0x26, 0x5b, 0x42, 0xd0, 0xbb, 0xb0, 0xc9, 0x05, 0x11, 0x19, 0x57, 0x29, 0xae, 0x63,
0x23, 0x49, 0x6b, 0xc4, 0xf7, 0xa9, 0x6f, 0x92, 0xa7, 0x05, 0xd4, 0x87, 0x1d, 0x1e, 0xc4, 0x1e,
0x3d, 0x23, 0x5c, 0x60, 0x9a, 0xb0, 0x54, 0xb4, 0x37, 0xcd, 0xf0, 0xd1, 0x23, 0xbd, 0x9b, 0x8f,
0xf4, 0xee, 0x89, 0x19, 0xe9, 0x78, 0x55, 0x03, 0xed, 0xc3, 0x43, 0x8f, 0xc5, 0x22, 0x65, 0x61,
0x48, 0x53, 0xd9, 0x61, 0x3c, 0x21, 0x1e, 0x6d, 0x57, 0xd5, 0xf9, 0xeb, 0xb6, 0xe4, 0x65, 0x32,
0xf0, 0x30, 0x24, 0x31, 0x6d, 0xd7, 0x94, 0x4f, 0x77, 0x30, 0xe7, 0x1f, 0x36, 0xc0, 0x98, 0x24,
0x79, 0x87, 0x23, 0x28, 0x27, 0xcc, 0xd7, 0x09, 0x1a, 0x94, 0xb0, 0x14, 0xd0, 0xee, 0x9d, 0x5c,
0xd8, 0x66, 0x6b, 0x25, 0x1b, 0x11, 0xf9, 0x23, 0x4e, 0xb8, 0xca, 0x94, 0x8d, 0x8d, 0x24, 0x71,
0xc1, 0x86, 0x32, 0x5c, 0x99, 0xa5, 0x26, 0x36, 0x92, 0xac, 0x83, 0x60, 0xa7, 0x43, 0x95, 0xa4,
0x3a, 0x56, 0x6b, 0xd4, 0x81, 0xda, 0x75, 0xca, 0xa2, 0x61, 0x9e, 0x9c, 0x26, 0x2e, 0x64, 0x69,
0x47, 0xae, 0x4f, 0x87, 0x26, 0x5a, 0x23, 0xa9, 0x2a, 0x78, 0x33, 0x1a, 0xe9, 0xd0, 0x64, 0x15,
0x94, 0xa4, 0xfc, 0xa1, 0x62, 0xc6, 0xfc, 0x76, 0x5d, 0xe3, 0x5a, 0x92, 0xad, 0x48, 0x32, 0x31,
0x63, 0x69, 0x20, 0xe6, 0x6d, 0xd0, 0xad, 0x58, 0x00, 0xd2, 0xab, 0x84, 0x88, 0x59, 0xbb, 0xa1,
0xbd, 0x92, 0xeb, 0xe3, 0x1a, 0x6c, 0xea, 0xf9, 0xe4, 0xec, 0x42, 0xad, 0x97, 0x04, 0x6e, 0x9a,
0xb2, 0x54, 0x56, 0x99, 0xca, 0x85, 0x69, 0x24, 0x2d, 0x38, 0x43, 0xa8, 0x61, 0xaa, 0x27, 0x95,
0x3c, 0x29, 0x2e, 0x4a, 0x64, 0xae, 0x44, 0x01, 0xa8, 0xf8, 0xe7, 0x49, 0x7e, 0x1b, 0xd4, 0xba,
0xe8, 0xcd, 0xf2, 0xa2, 0x37, 0x9d, 0x19, 0x3c, 0xc8, 0x2d, 0x8e, 0x68, 0x48, 0x3d, 0xd9, 0x18,
0xe8, 0x13, 0xa8, 0xf0, 0x84, 0x7a, 0xe6, 0xbf, 0xa6, 0xbd, 0xda, 0xf5, 0xb9, 0x02, 0x56, 0x2c,
0xf4, 0x53, 0xd8, 0x56, 0xff, 0xcc, 0x13, 0xae, 0x0c, 0xb0, 0xd4, 0x1c, 0xda, 0x54, 0xe8, 0xc8,
0x80, 0xce, 0x08, 0x9a, 0xb9, 0xa2, 0x0e, 0xf1, 0xfb, 0x9d, 0x52, 0x24, 0xc4, 0x5e, 0x4e, 0xc8,
0x7f, 0x6c, 0x40, 0x23, 0x41, 0xc4, 0x48, 0x4d, 0x90, 0x79, 0xde, 0x63, 0xcf, 0xa1, 0x96, 0x1a,
0x75, 0x63, 0xfe, 0xc3, 0xfb, 0xcc, 0x17, 0x51, 0xe3, 0x42, 0x05, 0x7d, 0x0e, 0xea, 0x5f, 0x72,
0xf2, 0xd6, 0x33, 0x15, 0x44, 0xb1, 0x46, 0x3f, 0x87, 0x4a, 0xcc, 0x62, 0x6a, 0xfe, 0xfb, 0x7f,
0xb4, 0xaa, 0xa5, 0xc6, 0xdb, 0xa0, 0x84, 0x15, 0x09, 0x1d, 0xc3, 0x0e, 0xcb, 0xc4, 0x44, 0xb0,
0x49, 0xe1, 0x6f, 0xe5, 0xcd, 0xe9, 0x18, 0x94, 0x70, 0x93, 0x65, 0x62, 0xcc, 0x8a, 0x46, 0xf8,
0x12, 0x1e, 0x48, 0x1b, 0xb2, 0x61, 0x17, 0x56, 0x36, 0xbe, 0xd3, 0x8a, 0x3c, 0xf8, 0xcb, 0x94,
0x45, 0x39, 0x74, 0x0c, 0x50, 0x63, 0x99, 0xb8, 0x62, 0x59, 0xec, 0x3b, 0xff, 0xb6, 0xe0, 0xe1,
0x9d, 0xbc, 0x9a, 0x79, 0xf8, 0x6b, 0xb0, 0xd9, 0x8d, 0x49, 0xe9, 0xe3, 0x55, 0xe3, 0x6b, 0x14,
0xba, 0x97, 0x37, 0x83, 0x12, 0xb6, 0xd9, 0x0d, 0x3a, 0x5c, 0xae, 0x5f, 0xe3, 0xe0, 0x83, 0xfb,
0x3c, 0x53, 0xbd, 0x21, 0x9f, 0x53, 0x8a, 0xdd, 0xf9, 0x0d, 0xd8, 0x97, 0x37, 0xe8, 0x19, 0x34,
0xe4, 0xf4, 0x9b, 0x08, 0x72, 0x15, 0x16, 0xaf, 0xba, 0xf7, 0xd6, 0x9d, 0x3f, 0x96, 0x0c, 0x0c,
0x3c, 0x5f, 0x72, 0x19, 0x56, 0x6a, 0xbc, 0x71, 0xfe, 0x6e, 0x01, 0x1c, 0x13, 0x1e, 0x78, 0x92,
0xca, 0xd1, 0x47, 0xd0, 0xe4, 0x99, 0xe7, 0x51, 0xce, 0x27, 0xea, 0x59, 0xa7, 0x02, 0xab, 0xe0,
0x2d, 0x03, 0xf6, 0x25, 0x26, 0x49, 0xd7, 0x24, 0x08, 0xb3, 0x94, 0x1a, 0x92, 0xad, 0x49, 0x06,
0xd4, 0xa4, 0x8f, 0xe5, 0x1d, 0x10, 0x34, 0xf6, 0xe6, 0x93, 0x88, 0x4f, 0x92, 0xc3, 0x7d, 0x55,
0xfe, 0x0a, 0xde, 0x32, 0xe8, 0x39, 0x1f, 0x1e, 0xee, 0xaf, 0xb2, 0x8e, 0xf6, 0x55, 0xb1, 0xef,
0xb0, 0x8e, 0xf6, 0x9d, 0xbf, 0x96, 0xa1, 0x5e, 0x84, 0x82, 0x7a, 0x50, 0x4f, 0x98, 0x3f, 0x51,
0x7f, 0xbd, 0x26, 0xf1, 0xce, 0xbd, 0x81, 0xcb, 0x3f, 0xa4, 0x17, 0x92, 0x39, 0x28, 0xe1, 0x5a,
0x62, 0xd6, 0x9d, 0x7f, 0xd9, 0x50, 0xcb, 0x37, 0xd0, 0x33, 0xa8, 0xa4, 0xec, 0x36, 0xcf, 0xe1,
0xe3, 0xef, 0x36, 0xd5, 0xc5, 0xec, 0x16, 0x2b, 0x9d, 0xce, 0xff, 0x2c, 0x28, 0x63, 0x76, 0xfb,
0x3d, 0x6f, 0xee, 0x0f, 0xba, 0x4d, 0x7b, 0xd0, 0x8a, 0x28, 0x9f, 0x51, 0x7f, 0x22, 0xb3, 0xa0,
0x0b, 0xa0, 0x53, 0xbb, 0xad, 0xf1, 0x21, 0xf3, 0x75, 0x09, 0x1e, 0xc3, 0x8e, 0x60, 0x82, 0x84,
0x4b, 0x44, 0x9d, 0xdd, 0xa6, 0x82, 0x0b, 0xde, 0x3e, 0x6c, 0xc8, 0xee, 0xe0, 0xe6, 0x8a, 0xbc,
0xe6, 0xc8, 0xa2, 0x3f, 0xb0, 0x26, 0xca, 0x77, 0xb9, 0x6a, 0xbc, 0x27, 0xcf, 0x01, 0x16, 0xaf,
0x2f, 0xd4, 0x82, 0x2d, 0xec, 0xfe, 0xf6, 0xa5, 0x3b, 0x1a, 0x4f, 0x70, 0x6f, 0xec, 0xb6, 0x4a,
0xa8, 0x01, 0xd5, 0xb3, 0xde, 0xd8, 0xbd, 0xe8, 0x7f, 0xd3, 0xb2, 0xe4, 0xf6, 0xe8, 0x65, 0xbf,
0xef, 0x8e, 0x46, 0x7a, 0xdb, 0x7e, 0xd2, 0x03, 0x58, 0x44, 0x29, 0xc9, 0x63, 0xf7, 0x62, 0x32,
0x72, 0xfb, 0x5a, 0xf3, 0xf2, 0xc2, 0x9d, 0x9c, 0x9f, 0x5e, 0xb4, 0xac, 0x7c, 0x47, 0x0a, 0x36,
0xda, 0x82, 0x9a, 0xdc, 0x19, 0x5c, 0xbe, 0xc4, 0xad, 0xf2, 0x93, 0x1e, 0xec, 0xac, 0xbc, 0xca,
0xd0, 0x03, 0x68, 0x8e, 0x7b, 0xf8, 0x85, 0x3b, 0x9e, 0x9c, 0xb8, 0xc3, 0xb3, 0xcb, 0x6f, 0x5a,
0x25, 0x09, 0x8d, 0x2e, 0x5f, 0xe2, 0xbe, 0x9b, 0x43, 0x16, 0xaa, 0x41, 0xe5, 0xdc, 0x1d, 0x0d,
0x5a, 0xf6, 0x93, 0xe7, 0x4b, 0xdf, 0x61, 0xea, 0xc3, 0x0a, 0x55, 0xa1, 0x2c, 0xcf, 0x2a, 0xc9,
0xc5, 0xf0, 0x70, 0xbf, 0x65, 0xa9, 0xc5, 0xd1, 0x61, 0xcb, 0xd6, 0x8b, 0xa3, 0x56, 0x59, 0x71,
0x7a, 0x5f, 0xb7, 0x2a, 0x07, 0xff, 0x2d, 0x43, 0xb9, 0x97, 0x04, 0xe8, 0x05, 0x54, 0x64, 0x92,
0xd0, 0x07, 0xeb, 0x5f, 0x7e, 0x66, 0x12, 0x77, 0x1e, 0xdd, 0xb7, 0x6d, 0x6e, 0x64, 0x09, 0x7d,
0x0d, 0x8d, 0xa5, 0xc1, 0x81, 0x9c, 0x37, 0x4e, 0x15, 0x6d, 0xf4, 0xa3, 0xb7, 0x98, 0x3c, 0x4e,
0x09, 0x7d, 0x01, 0xd5, 0xfc, 0x85, 0xb8, 0x7e, 0x0c, 0x77, 0x5e, 0xfb, 0x8c, 0x5a, 0x7a, 0x73,
0x3a, 0x25, 0xe4, 0x42, 0x2d, 0x7f, 0x11, 0xde, 0x67, 0x61, 0x77, 0x15, 0x5e, 0x7d, 0x42, 0x3a,
0x25, 0xf4, 0x07, 0xa8, 0x8f, 0x68, 0x78, 0xdd, 0x97, 0x1f, 0xc3, 0xe8, 0x93, 0x42, 0xc1, 0x7c,
0x43, 0x2f, 0x7f, 0x29, 0x17, 0xb4, 0x3c, 0xd2, 0x5f, 0xbc, 0x25, 0x7b, 0x29, 0xe6, 0xf2, 0x98,
0x24, 0xe8, 0xf5, 0xeb, 0x55, 0x3c, 0xc0, 0x3a, 0xed, 0x55, 0x9b, 0x63, 0x92, 0xb8, 0xaf, 0xe4,
0x87, 0x4d, 0x69, 0xdf, 0xba, 0xda, 0x54, 0xef, 0xc4, 0x5f, 0xfd, 0x3f, 0x00, 0x00, 0xff, 0xff,
0x17, 0x1c, 0x82, 0x70, 0x2c, 0x10, 0x00, 0x00,
}

View File

@ -124,8 +124,73 @@ message ApiError {
string error = 1;
}
message Resource {
string namespace = 1;
string type = 2;
string name = 3;
}
message ResourceSelection {
Resource spec = 1;
string label_selector = 2;
}
message ResourceError {
Resource spec = 1;
string error = 2;
}
message StatSummaryRequest {
ResourceSelection resource = 1;
TimeWindow time_window = 2;
oneof outbound {
Empty none = 3;
Resource out_to_resource = 4;
Resource out_from_resource = 5;
}
}
message StatSummaryResponse {
oneof response {
Ok ok = 1;
ResourceError error = 2;
}
message Ok {
repeated StatTable stat_tables = 1;
}
}
message BasicStats {
uint64 success_count = 1;
uint64 failure_count = 2;
uint64 latency_ms_p50 = 3;
uint64 latency_ms_p90 = 4;
}
message StatTable {
oneof table {
PodGroup pod_group = 1;
}
message PodGroup {
repeated Row rows = 1;
message Row {
Resource spec = 1;
TimeWindow time_window = 2;
uint64 meshed_pod_count = 3;
uint64 total_pod_count = 4;
BasicStats stats = 5;
}
}
}
service Api {
rpc Stat(MetricRequest) returns (MetricResponse) {}
rpc StatSummary(StatSummaryRequest) returns (StatSummaryResponse) {}
rpc Version(Empty) returns (VersionInfo) {}
rpc ListPods(Empty) returns (ListPodsResponse) {}
rpc SelfCheck(common.healthcheck.SelfCheckRequest) returns (common.healthcheck.SelfCheckResponse) {}