enhance: Add proxy task queue metrics (#42156)

issue: #42155

Signed-off-by: Cai Zhang <cai.zhang@zilliz.com>
This commit is contained in:
cai.zhang 2025-06-04 11:26:32 +08:00 committed by GitHub
parent e9b5d9e8bc
commit 5566a85bcc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
46 changed files with 2034 additions and 1902 deletions

View File

@ -435,9 +435,18 @@ generate-mockery-types: getdeps
$(INSTALL_PATH)/mockery --name=QueryNodeComponent --dir=$(PWD)/internal/types --output=$(PWD)/internal/mocks --filename=mock_querynode.go --with-expecter --structname=MockQueryNode
# DataNode
$(INSTALL_PATH)/mockery --name=DataNodeComponent --dir=$(PWD)/internal/types --output=$(PWD)/internal/mocks --filename=mock_datanode.go --with-expecter --structname=MockDataNode
# RootCoord
$(INSTALL_PATH)/mockery --name=RootCoordComponent --dir=$(PWD)/internal/types --output=$(PWD)/internal/mocks --filename=mock_rootcoord.go --with-expecter --structname=MockRootCoord
# QueryCoord
$(INSTALL_PATH)/mockery --name=QueryCoordComponent --dir=$(PWD)/internal/types --output=$(PWD)/internal/mocks --filename=mock_querycoord.go --with-expecter --structname=MockQueryCoord
# DataCoord
$(INSTALL_PATH)/mockery --name=DataCoordComponent --dir=$(PWD)/internal/types --output=$(PWD)/internal/mocks --filename=mock_datacoord.go --with-expecter --structname=MockDataCoord
# Clients
$(INSTALL_PATH)/mockery --name=MixCoordClient --dir=$(PWD)/internal/types --output=$(PWD)/internal/mocks --filename=mock_mixcoord_client.go --with-expecter --structname=MockMixCoordClient
$(INSTALL_PATH)/mockery --name=RootCoordClient --dir=$(PWD)/internal/types --output=$(PWD)/internal/mocks --filename=mock_rootcoord_client.go --with-expecter --structname=MockRootCoordClient
$(INSTALL_PATH)/mockery --name=QueryCoordClient --dir=$(PWD)/internal/types --output=$(PWD)/internal/mocks --filename=mock_querycoord_client.go --with-expecter --structname=MockQueryCoordClient
$(INSTALL_PATH)/mockery --name=DataCoordClient --dir=$(PWD)/internal/types --output=$(PWD)/internal/mocks --filename=mock_datacoord_client.go --with-expecter --structname=MockDataCoordClient
$(INSTALL_PATH)/mockery --name=QueryNodeClient --dir=$(PWD)/internal/types --output=$(PWD)/internal/mocks --filename=mock_querynode_client.go --with-expecter --structname=MockQueryNodeClient
$(INSTALL_PATH)/mockery --name=DataNodeClient --dir=$(PWD)/internal/types --output=$(PWD)/internal/mocks --filename=mock_datanode_client.go --with-expecter --structname=MockDataNodeClient
$(INSTALL_PATH)/mockery --name=ProxyClient --dir=$(PWD)/internal/types --output=$(PWD)/internal/mocks --filename=mock_proxy_client.go --with-expecter --structname=MockProxyClient

View File

@ -1059,3 +1059,7 @@ func (s *mixCoordImpl) NotifyDropPartition(ctx context.Context, channel string,
func (s *mixCoordImpl) RegisterStreamingCoordGRPCService(server *grpc.Server) {
s.streamingCoord.RegisterGRPCService(server)
}
func (s *mixCoordImpl) GetQuotaMetrics(ctx context.Context, req *internalpb.GetQuotaMetricsRequest) (*internalpb.GetQuotaMetricsResponse, error) {
return s.rootcoordServer.GetQuotaMetrics(ctx, req)
}

View File

@ -197,6 +197,10 @@ func (m *mockMixCoord) AddCollectionField(ctx context.Context, req *milvuspb.Add
panic("implement me")
}
func (m *mockMixCoord) GetQuotaMetrics(ctx context.Context, req *internalpb.GetQuotaMetricsRequest) (*internalpb.GetQuotaMetricsResponse, error) {
panic("implement me")
}
func newMockMixCoord() *mockMixCoord {
return &mockMixCoord{state: commonpb.StateCode_Healthy}
}

View File

@ -210,8 +210,8 @@ func TestGlobalScheduler_TestSchedule(t *testing.T) {
scheduler.Enqueue(task)
assert.Eventually(t, func() bool {
s := scheduler.(*globalTaskScheduler)
s.mu.RLock(task.GetTaskID())
defer s.mu.RUnlock(task.GetTaskID())
s.mu.RLock(1)
defer s.mu.RUnlock(1)
return task.GetTaskState() == taskcommon.Retry &&
s.runningTasks.Len() == 0 && len(s.pendingTasks.TaskIDs()) == 1
}, 10*time.Second, 10*time.Millisecond)

View File

@ -1805,3 +1805,14 @@ func (c *Client) UpdateLoadConfig(ctx context.Context, req *querypb.UpdateLoadCo
return client.UpdateLoadConfig(ctx, req)
})
}
func (c *Client) GetQuotaMetrics(ctx context.Context, req *internalpb.GetQuotaMetricsRequest, opts ...grpc.CallOption) (*internalpb.GetQuotaMetricsResponse, error) {
req = typeutil.Clone(req)
commonpbutil.UpdateMsgBase(
req.GetBase(),
commonpbutil.FillMsgBaseFromClient(paramtable.GetNodeID(), commonpbutil.WithTargetID(c.grpcClient.GetNodeID())),
)
return wrapGrpcCall(ctx, c, func(client MixCoordClient) (*internalpb.GetQuotaMetricsResponse, error) {
return client.GetQuotaMetrics(ctx, req)
})
}

View File

@ -37,6 +37,7 @@ import (
"github.com/milvus-io/milvus/pkg/v2/log"
"github.com/milvus-io/milvus/pkg/v2/proto/datapb"
"github.com/milvus-io/milvus/pkg/v2/proto/indexpb"
"github.com/milvus-io/milvus/pkg/v2/proto/internalpb"
"github.com/milvus-io/milvus/pkg/v2/util/etcd"
"github.com/milvus-io/milvus/pkg/v2/util/merr"
"github.com/milvus-io/milvus/pkg/v2/util/paramtable"
@ -2554,3 +2555,36 @@ func Test_GetChannelRecoveryInfo(t *testing.T) {
_, err = client.GetChannelRecoveryInfo(ctx, &datapb.GetChannelRecoveryInfoRequest{})
assert.ErrorIs(t, err, context.Canceled)
}
func Test_GetQuotaMetrics(t *testing.T) {
paramtable.Init()
ctx := context.Background()
client, err := NewClient(ctx)
assert.NoError(t, err)
assert.NotNil(t, client)
defer client.Close()
mockRC := mocks.NewMockRootCoordClient(t)
mockmix := MixCoordClient{
RootCoordClient: mockRC,
}
mockGrpcClient := mocks.NewMockGrpcClient[MixCoordClient](t)
mockGrpcClient.EXPECT().Close().Return(nil)
mockGrpcClient.EXPECT().ReCall(mock1.Anything, mock1.Anything).RunAndReturn(func(ctx context.Context, f func(MixCoordClient) (interface{}, error)) (interface{}, error) {
return f(mockmix)
})
mockGrpcClient.EXPECT().GetNodeID().Return(1)
client.(*Client).grpcClient = mockGrpcClient
// test success
mockRC.EXPECT().GetQuotaMetrics(mock1.Anything, mock1.Anything).Return(&internalpb.GetQuotaMetricsResponse{
Status: merr.Success(),
MetricsInfo: `{"proxy": {"tasks": 100}}`,
}, nil).Once()
resp, err := client.GetQuotaMetrics(ctx, &internalpb.GetQuotaMetricsRequest{})
assert.Nil(t, err)
assert.Equal(t, commonpb.ErrorCode_Success, resp.GetStatus().GetErrorCode())
assert.Equal(t, `{"proxy": {"tasks": 100}}`, resp.GetMetricsInfo())
}

View File

@ -907,3 +907,7 @@ func (s *Server) ListImports(ctx context.Context, in *internalpb.ListImportsRequ
func (s *Server) ListIndexes(ctx context.Context, in *indexpb.ListIndexesRequest) (*indexpb.ListIndexesResponse, error) {
return s.mixCoord.ListIndexes(ctx, in)
}
func (s *Server) GetQuotaMetrics(ctx context.Context, req *internalpb.GetQuotaMetricsRequest) (*internalpb.GetQuotaMetricsResponse, error) {
return s.mixCoord.GetQuotaMetrics(ctx, req)
}

View File

@ -743,4 +743,13 @@ func Test_NewServer(t *testing.T) {
assert.NoError(t, err)
assert.Equal(t, commonpb.ErrorCode_Success, resp.GetErrorCode())
})
t.Run("GetQuotaMetrics", func(t *testing.T) {
req := &internalpb.GetQuotaMetricsRequest{}
mockMixCoord.EXPECT().GetQuotaMetrics(mock.Anything, req).Return(&internalpb.GetQuotaMetricsResponse{Status: merr.Success(), MetricsInfo: `{"proxy": {"tasks": 100}}`}, nil)
resp, err := server.GetQuotaMetrics(ctx, req)
assert.NoError(t, err)
assert.Equal(t, commonpb.ErrorCode_Success, resp.GetStatus().GetErrorCode())
assert.Equal(t, `{"proxy": {"tasks": 100}}`, resp.GetMetricsInfo())
})
}

View File

@ -240,3 +240,9 @@ func (c *Client) GetSegmentsInfo(ctx context.Context, req *internalpb.GetSegment
return client.GetSegmentsInfo(ctx, req)
})
}
func (c *Client) GetQuotaMetrics(ctx context.Context, req *internalpb.GetQuotaMetricsRequest, opts ...grpc.CallOption) (*internalpb.GetQuotaMetricsResponse, error) {
return wrapGrpcCall(ctx, c, func(client proxypb.ProxyClient) (*internalpb.GetQuotaMetricsResponse, error) {
return client.GetQuotaMetrics(ctx, req)
})
}

View File

@ -36,6 +36,7 @@ const (
CollectionFieldCategory = "/collections/fields/"
ResourceGroupCategory = "/resource_groups/"
SegmentCategory = "/segments/"
QuotaCenterCategory = "/quotacenter/"
ListAction = "list"
HasAction = "has"

View File

@ -205,6 +205,7 @@ func (h *HandlersV2) RegisterRoutesToV2(router gin.IRouter) {
// segment group
router.POST(SegmentCategory+DescribeAction, timeoutMiddleware(wrapperPost(func() any { return &GetSegmentsInfoReq{} }, wrapperTraceLog(h.getSegmentsInfo))))
router.POST(QuotaCenterCategory+DescribeAction, timeoutMiddleware(wrapperPost(func() any { return &GetQuotaMetricsReq{} }, wrapperTraceLog(h.getQuotaMetrics))))
}
type (
@ -2688,3 +2689,16 @@ func (h *HandlersV2) getSegmentsInfo(ctx context.Context, c *gin.Context, anyReq
}
return resp, err
}
func (h *HandlersV2) getQuotaMetrics(ctx context.Context, c *gin.Context, anyReq any, dbName string) (interface{}, error) {
req := &internalpb.GetQuotaMetricsRequest{}
resp, err := wrapperProxy(ctx, c, req, h.checkAuth, false, "/milvus.proto.milvus.MilvusService/GetQuotaMetrics", func(reqCtx context.Context, req any) (interface{}, error) {
return h.proxy.GetQuotaMetrics(reqCtx, req.(*internalpb.GetQuotaMetricsRequest))
})
if err == nil {
response := resp.(*internalpb.GetQuotaMetricsResponse)
HTTPReturn(c, http.StatusOK, gin.H{HTTPReturnCode: merr.Code(nil), HTTPReturnData: response.GetMetricsInfo()})
}
return resp, err
}

View File

@ -2724,3 +2724,32 @@ func TestSearchV2(t *testing.T) {
})
validateTestCases(t, testEngine, queryTestCases, false)
}
func TestGetQuotaMetrics(t *testing.T) {
paramtable.Init()
mp := mocks.NewMockProxy(t)
mp.EXPECT().GetQuotaMetrics(mock.Anything, mock.Anything).Return(&internalpb.GetQuotaMetricsResponse{
Status: &StatusSuccess,
MetricsInfo: `{"proxy1": "1000", "proxy2": "2000"}`,
}, nil)
testEngine := initHTTPServerV2(mp, false)
testcase := requestBodyTestCase{
path: DescribeAction,
requestBody: []byte(`{}`),
}
bodyReader := bytes.NewReader(testcase.requestBody)
req := httptest.NewRequest(http.MethodPost, versionalV2(QuotaCenterCategory, testcase.path), bodyReader)
w := httptest.NewRecorder()
testEngine.ServeHTTP(w, req)
assert.Equal(t, http.StatusOK, w.Code, "case %d: ", string(testcase.requestBody))
returnBody := &ReturnErrMsg{}
err := json.Unmarshal(w.Body.Bytes(), returnBody)
assert.Nil(t, err)
assert.Equal(t, testcase.errCode, returnBody.Code, "case: %d, request body: %s ", string(testcase.requestBody))
if testcase.errCode != 0 {
assert.Contains(t, returnBody.Message, testcase.errMsg, "case: %d, request body: %s", string(testcase.requestBody))
}
fmt.Println(w.Body.String())
}

View File

@ -692,3 +692,5 @@ func (req *GetSegmentsInfoReq) GetCollectionID() int64 {
func (req *GetSegmentsInfoReq) GetSegmentIDs() []int64 {
return req.SegmentIDs
}
type GetQuotaMetricsReq struct{}

View File

@ -1124,3 +1124,7 @@ func (s *Server) RunAnalyzer(ctx context.Context, req *milvuspb.RunAnalyzerReque
func (s *Server) GetSegmentsInfo(ctx context.Context, req *internalpb.GetSegmentsInfoRequest) (*internalpb.GetSegmentsInfoResponse, error) {
return s.proxy.GetSegmentsInfo(ctx, req)
}
func (s *Server) GetQuotaMetrics(ctx context.Context, req *internalpb.GetQuotaMetricsRequest) (*internalpb.GetQuotaMetricsResponse, error) {
return s.proxy.GetQuotaMetrics(ctx, req)
}

View File

@ -1,4 +1,4 @@
// Code generated by mockery v2.46.0. DO NOT EDIT.
// Code generated by mockery v2.53.3. DO NOT EDIT.
package mocks
@ -980,65 +980,6 @@ func (_c *MockDataCoord_GetCompactionStateWithPlans_Call) RunAndReturn(run func(
return _c
}
// GetComponentStates provides a mock function with given fields: _a0, _a1
func (_m *MockDataCoord) GetComponentStates(_a0 context.Context, _a1 *milvuspb.GetComponentStatesRequest) (*milvuspb.ComponentStates, error) {
ret := _m.Called(_a0, _a1)
if len(ret) == 0 {
panic("no return value specified for GetComponentStates")
}
var r0 *milvuspb.ComponentStates
var r1 error
if rf, ok := ret.Get(0).(func(context.Context, *milvuspb.GetComponentStatesRequest) (*milvuspb.ComponentStates, error)); ok {
return rf(_a0, _a1)
}
if rf, ok := ret.Get(0).(func(context.Context, *milvuspb.GetComponentStatesRequest) *milvuspb.ComponentStates); ok {
r0 = rf(_a0, _a1)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*milvuspb.ComponentStates)
}
}
if rf, ok := ret.Get(1).(func(context.Context, *milvuspb.GetComponentStatesRequest) error); ok {
r1 = rf(_a0, _a1)
} else {
r1 = ret.Error(1)
}
return r0, r1
}
// MockDataCoord_GetComponentStates_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetComponentStates'
type MockDataCoord_GetComponentStates_Call struct {
*mock.Call
}
// GetComponentStates is a helper method to define mock.On call
// - _a0 context.Context
// - _a1 *milvuspb.GetComponentStatesRequest
func (_e *MockDataCoord_Expecter) GetComponentStates(_a0 interface{}, _a1 interface{}) *MockDataCoord_GetComponentStates_Call {
return &MockDataCoord_GetComponentStates_Call{Call: _e.mock.On("GetComponentStates", _a0, _a1)}
}
func (_c *MockDataCoord_GetComponentStates_Call) Run(run func(_a0 context.Context, _a1 *milvuspb.GetComponentStatesRequest)) *MockDataCoord_GetComponentStates_Call {
_c.Call.Run(func(args mock.Arguments) {
run(args[0].(context.Context), args[1].(*milvuspb.GetComponentStatesRequest))
})
return _c
}
func (_c *MockDataCoord_GetComponentStates_Call) Return(_a0 *milvuspb.ComponentStates, _a1 error) *MockDataCoord_GetComponentStates_Call {
_c.Call.Return(_a0, _a1)
return _c
}
func (_c *MockDataCoord_GetComponentStates_Call) RunAndReturn(run func(context.Context, *milvuspb.GetComponentStatesRequest) (*milvuspb.ComponentStates, error)) *MockDataCoord_GetComponentStates_Call {
_c.Call.Return(run)
return _c
}
// GetFlushAllState provides a mock function with given fields: _a0, _a1
func (_m *MockDataCoord) GetFlushAllState(_a0 context.Context, _a1 *milvuspb.GetFlushAllStateRequest) (*milvuspb.GetFlushAllStateResponse, error) {
ret := _m.Called(_a0, _a1)
@ -2101,124 +2042,6 @@ func (_c *MockDataCoord_GetSegmentsByStates_Call) RunAndReturn(run func(context.
return _c
}
// GetStatisticsChannel provides a mock function with given fields: _a0, _a1
func (_m *MockDataCoord) GetStatisticsChannel(_a0 context.Context, _a1 *internalpb.GetStatisticsChannelRequest) (*milvuspb.StringResponse, error) {
ret := _m.Called(_a0, _a1)
if len(ret) == 0 {
panic("no return value specified for GetStatisticsChannel")
}
var r0 *milvuspb.StringResponse
var r1 error
if rf, ok := ret.Get(0).(func(context.Context, *internalpb.GetStatisticsChannelRequest) (*milvuspb.StringResponse, error)); ok {
return rf(_a0, _a1)
}
if rf, ok := ret.Get(0).(func(context.Context, *internalpb.GetStatisticsChannelRequest) *milvuspb.StringResponse); ok {
r0 = rf(_a0, _a1)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*milvuspb.StringResponse)
}
}
if rf, ok := ret.Get(1).(func(context.Context, *internalpb.GetStatisticsChannelRequest) error); ok {
r1 = rf(_a0, _a1)
} else {
r1 = ret.Error(1)
}
return r0, r1
}
// MockDataCoord_GetStatisticsChannel_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetStatisticsChannel'
type MockDataCoord_GetStatisticsChannel_Call struct {
*mock.Call
}
// GetStatisticsChannel is a helper method to define mock.On call
// - _a0 context.Context
// - _a1 *internalpb.GetStatisticsChannelRequest
func (_e *MockDataCoord_Expecter) GetStatisticsChannel(_a0 interface{}, _a1 interface{}) *MockDataCoord_GetStatisticsChannel_Call {
return &MockDataCoord_GetStatisticsChannel_Call{Call: _e.mock.On("GetStatisticsChannel", _a0, _a1)}
}
func (_c *MockDataCoord_GetStatisticsChannel_Call) Run(run func(_a0 context.Context, _a1 *internalpb.GetStatisticsChannelRequest)) *MockDataCoord_GetStatisticsChannel_Call {
_c.Call.Run(func(args mock.Arguments) {
run(args[0].(context.Context), args[1].(*internalpb.GetStatisticsChannelRequest))
})
return _c
}
func (_c *MockDataCoord_GetStatisticsChannel_Call) Return(_a0 *milvuspb.StringResponse, _a1 error) *MockDataCoord_GetStatisticsChannel_Call {
_c.Call.Return(_a0, _a1)
return _c
}
func (_c *MockDataCoord_GetStatisticsChannel_Call) RunAndReturn(run func(context.Context, *internalpb.GetStatisticsChannelRequest) (*milvuspb.StringResponse, error)) *MockDataCoord_GetStatisticsChannel_Call {
_c.Call.Return(run)
return _c
}
// GetTimeTickChannel provides a mock function with given fields: _a0, _a1
func (_m *MockDataCoord) GetTimeTickChannel(_a0 context.Context, _a1 *internalpb.GetTimeTickChannelRequest) (*milvuspb.StringResponse, error) {
ret := _m.Called(_a0, _a1)
if len(ret) == 0 {
panic("no return value specified for GetTimeTickChannel")
}
var r0 *milvuspb.StringResponse
var r1 error
if rf, ok := ret.Get(0).(func(context.Context, *internalpb.GetTimeTickChannelRequest) (*milvuspb.StringResponse, error)); ok {
return rf(_a0, _a1)
}
if rf, ok := ret.Get(0).(func(context.Context, *internalpb.GetTimeTickChannelRequest) *milvuspb.StringResponse); ok {
r0 = rf(_a0, _a1)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*milvuspb.StringResponse)
}
}
if rf, ok := ret.Get(1).(func(context.Context, *internalpb.GetTimeTickChannelRequest) error); ok {
r1 = rf(_a0, _a1)
} else {
r1 = ret.Error(1)
}
return r0, r1
}
// MockDataCoord_GetTimeTickChannel_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetTimeTickChannel'
type MockDataCoord_GetTimeTickChannel_Call struct {
*mock.Call
}
// GetTimeTickChannel is a helper method to define mock.On call
// - _a0 context.Context
// - _a1 *internalpb.GetTimeTickChannelRequest
func (_e *MockDataCoord_Expecter) GetTimeTickChannel(_a0 interface{}, _a1 interface{}) *MockDataCoord_GetTimeTickChannel_Call {
return &MockDataCoord_GetTimeTickChannel_Call{Call: _e.mock.On("GetTimeTickChannel", _a0, _a1)}
}
func (_c *MockDataCoord_GetTimeTickChannel_Call) Run(run func(_a0 context.Context, _a1 *internalpb.GetTimeTickChannelRequest)) *MockDataCoord_GetTimeTickChannel_Call {
_c.Call.Run(func(args mock.Arguments) {
run(args[0].(context.Context), args[1].(*internalpb.GetTimeTickChannelRequest))
})
return _c
}
func (_c *MockDataCoord_GetTimeTickChannel_Call) Return(_a0 *milvuspb.StringResponse, _a1 error) *MockDataCoord_GetTimeTickChannel_Call {
_c.Call.Return(_a0, _a1)
return _c
}
func (_c *MockDataCoord_GetTimeTickChannel_Call) RunAndReturn(run func(context.Context, *internalpb.GetTimeTickChannelRequest) (*milvuspb.StringResponse, error)) *MockDataCoord_GetTimeTickChannel_Call {
_c.Call.Return(run)
return _c
}
// ImportV2 provides a mock function with given fields: _a0, _a1
func (_m *MockDataCoord) ImportV2(_a0 context.Context, _a1 *internalpb.ImportRequestInternal) (*internalpb.ImportResponse, error) {
ret := _m.Called(_a0, _a1)
@ -2278,7 +2101,7 @@ func (_c *MockDataCoord_ImportV2_Call) RunAndReturn(run func(context.Context, *i
return _c
}
// Init provides a mock function with given fields:
// Init provides a mock function with no fields
func (_m *MockDataCoord) Init() error {
ret := _m.Called()
@ -2559,7 +2382,7 @@ func (_c *MockDataCoord_MarkSegmentsDropped_Call) RunAndReturn(run func(context.
return _c
}
// Register provides a mock function with given fields:
// Register provides a mock function with no fields
func (_m *MockDataCoord) Register() error {
ret := _m.Called()
@ -2751,7 +2574,7 @@ func (_c *MockDataCoord_SetAddress_Call) Return() *MockDataCoord_SetAddress_Call
}
func (_c *MockDataCoord_SetAddress_Call) RunAndReturn(run func(string)) *MockDataCoord_SetAddress_Call {
_c.Call.Return(run)
_c.Run(run)
return _c
}
@ -2784,7 +2607,7 @@ func (_c *MockDataCoord_SetDataNodeCreator_Call) Return() *MockDataCoord_SetData
}
func (_c *MockDataCoord_SetDataNodeCreator_Call) RunAndReturn(run func(func(context.Context, string, int64) (types.DataNodeClient, error))) *MockDataCoord_SetDataNodeCreator_Call {
_c.Call.Return(run)
_c.Run(run)
return _c
}
@ -2817,40 +2640,40 @@ func (_c *MockDataCoord_SetEtcdClient_Call) Return() *MockDataCoord_SetEtcdClien
}
func (_c *MockDataCoord_SetEtcdClient_Call) RunAndReturn(run func(*clientv3.Client)) *MockDataCoord_SetEtcdClient_Call {
_c.Call.Return(run)
_c.Run(run)
return _c
}
// SetRootCoordClient provides a mock function with given fields: rootCoord
func (_m *MockDataCoord) SetRootCoordClient(rootCoord types.RootCoordClient) {
_m.Called(rootCoord)
// SetMixCoord provides a mock function with given fields: mixCoord
func (_m *MockDataCoord) SetMixCoord(mixCoord types.MixCoord) {
_m.Called(mixCoord)
}
// MockDataCoord_SetRootCoordClient_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SetRootCoordClient'
type MockDataCoord_SetRootCoordClient_Call struct {
// MockDataCoord_SetMixCoord_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SetMixCoord'
type MockDataCoord_SetMixCoord_Call struct {
*mock.Call
}
// SetRootCoordClient is a helper method to define mock.On call
// - rootCoord types.RootCoordClient
func (_e *MockDataCoord_Expecter) SetRootCoordClient(rootCoord interface{}) *MockDataCoord_SetRootCoordClient_Call {
return &MockDataCoord_SetRootCoordClient_Call{Call: _e.mock.On("SetRootCoordClient", rootCoord)}
// SetMixCoord is a helper method to define mock.On call
// - mixCoord types.MixCoord
func (_e *MockDataCoord_Expecter) SetMixCoord(mixCoord interface{}) *MockDataCoord_SetMixCoord_Call {
return &MockDataCoord_SetMixCoord_Call{Call: _e.mock.On("SetMixCoord", mixCoord)}
}
func (_c *MockDataCoord_SetRootCoordClient_Call) Run(run func(rootCoord types.RootCoordClient)) *MockDataCoord_SetRootCoordClient_Call {
func (_c *MockDataCoord_SetMixCoord_Call) Run(run func(mixCoord types.MixCoord)) *MockDataCoord_SetMixCoord_Call {
_c.Call.Run(func(args mock.Arguments) {
run(args[0].(types.RootCoordClient))
run(args[0].(types.MixCoord))
})
return _c
}
func (_c *MockDataCoord_SetRootCoordClient_Call) Return() *MockDataCoord_SetRootCoordClient_Call {
func (_c *MockDataCoord_SetMixCoord_Call) Return() *MockDataCoord_SetMixCoord_Call {
_c.Call.Return()
return _c
}
func (_c *MockDataCoord_SetRootCoordClient_Call) RunAndReturn(run func(types.RootCoordClient)) *MockDataCoord_SetRootCoordClient_Call {
_c.Call.Return(run)
func (_c *MockDataCoord_SetMixCoord_Call) RunAndReturn(run func(types.MixCoord)) *MockDataCoord_SetMixCoord_Call {
_c.Run(run)
return _c
}
@ -2942,7 +2765,7 @@ func (_c *MockDataCoord_SetTiKVClient_Call) Return() *MockDataCoord_SetTiKVClien
}
func (_c *MockDataCoord_SetTiKVClient_Call) RunAndReturn(run func(*txnkv.Client)) *MockDataCoord_SetTiKVClient_Call {
_c.Call.Return(run)
_c.Run(run)
return _c
}
@ -3005,7 +2828,7 @@ func (_c *MockDataCoord_ShowConfigurations_Call) RunAndReturn(run func(context.C
return _c
}
// Start provides a mock function with given fields:
// Start provides a mock function with no fields
func (_m *MockDataCoord) Start() error {
ret := _m.Called()
@ -3050,7 +2873,7 @@ func (_c *MockDataCoord_Start_Call) RunAndReturn(run func() error) *MockDataCoor
return _c
}
// Stop provides a mock function with given fields:
// Stop provides a mock function with no fields
func (_m *MockDataCoord) Stop() error {
ret := _m.Called()

View File

@ -1,4 +1,4 @@
// Code generated by mockery v2.46.0. DO NOT EDIT.
// Code generated by mockery v2.53.3. DO NOT EDIT.
package mocks
@ -403,7 +403,7 @@ func (_c *MockDataCoordClient_CheckHealth_Call) RunAndReturn(run func(context.Co
return _c
}
// Close provides a mock function with given fields:
// Close provides a mock function with no fields
func (_m *MockDataCoordClient) Close() error {
ret := _m.Called()
@ -1262,80 +1262,6 @@ func (_c *MockDataCoordClient_GetCompactionStateWithPlans_Call) RunAndReturn(run
return _c
}
// GetComponentStates provides a mock function with given fields: ctx, in, opts
func (_m *MockDataCoordClient) GetComponentStates(ctx context.Context, in *milvuspb.GetComponentStatesRequest, opts ...grpc.CallOption) (*milvuspb.ComponentStates, error) {
_va := make([]interface{}, len(opts))
for _i := range opts {
_va[_i] = opts[_i]
}
var _ca []interface{}
_ca = append(_ca, ctx, in)
_ca = append(_ca, _va...)
ret := _m.Called(_ca...)
if len(ret) == 0 {
panic("no return value specified for GetComponentStates")
}
var r0 *milvuspb.ComponentStates
var r1 error
if rf, ok := ret.Get(0).(func(context.Context, *milvuspb.GetComponentStatesRequest, ...grpc.CallOption) (*milvuspb.ComponentStates, error)); ok {
return rf(ctx, in, opts...)
}
if rf, ok := ret.Get(0).(func(context.Context, *milvuspb.GetComponentStatesRequest, ...grpc.CallOption) *milvuspb.ComponentStates); ok {
r0 = rf(ctx, in, opts...)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*milvuspb.ComponentStates)
}
}
if rf, ok := ret.Get(1).(func(context.Context, *milvuspb.GetComponentStatesRequest, ...grpc.CallOption) error); ok {
r1 = rf(ctx, in, opts...)
} else {
r1 = ret.Error(1)
}
return r0, r1
}
// MockDataCoordClient_GetComponentStates_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetComponentStates'
type MockDataCoordClient_GetComponentStates_Call struct {
*mock.Call
}
// GetComponentStates is a helper method to define mock.On call
// - ctx context.Context
// - in *milvuspb.GetComponentStatesRequest
// - opts ...grpc.CallOption
func (_e *MockDataCoordClient_Expecter) GetComponentStates(ctx interface{}, in interface{}, opts ...interface{}) *MockDataCoordClient_GetComponentStates_Call {
return &MockDataCoordClient_GetComponentStates_Call{Call: _e.mock.On("GetComponentStates",
append([]interface{}{ctx, in}, opts...)...)}
}
func (_c *MockDataCoordClient_GetComponentStates_Call) Run(run func(ctx context.Context, in *milvuspb.GetComponentStatesRequest, opts ...grpc.CallOption)) *MockDataCoordClient_GetComponentStates_Call {
_c.Call.Run(func(args mock.Arguments) {
variadicArgs := make([]grpc.CallOption, len(args)-2)
for i, a := range args[2:] {
if a != nil {
variadicArgs[i] = a.(grpc.CallOption)
}
}
run(args[0].(context.Context), args[1].(*milvuspb.GetComponentStatesRequest), variadicArgs...)
})
return _c
}
func (_c *MockDataCoordClient_GetComponentStates_Call) Return(_a0 *milvuspb.ComponentStates, _a1 error) *MockDataCoordClient_GetComponentStates_Call {
_c.Call.Return(_a0, _a1)
return _c
}
func (_c *MockDataCoordClient_GetComponentStates_Call) RunAndReturn(run func(context.Context, *milvuspb.GetComponentStatesRequest, ...grpc.CallOption) (*milvuspb.ComponentStates, error)) *MockDataCoordClient_GetComponentStates_Call {
_c.Call.Return(run)
return _c
}
// GetFlushAllState provides a mock function with given fields: ctx, in, opts
func (_m *MockDataCoordClient) GetFlushAllState(ctx context.Context, in *milvuspb.GetFlushAllStateRequest, opts ...grpc.CallOption) (*milvuspb.GetFlushAllStateResponse, error) {
_va := make([]interface{}, len(opts))
@ -2668,154 +2594,6 @@ func (_c *MockDataCoordClient_GetSegmentsByStates_Call) RunAndReturn(run func(co
return _c
}
// GetStatisticsChannel provides a mock function with given fields: ctx, in, opts
func (_m *MockDataCoordClient) GetStatisticsChannel(ctx context.Context, in *internalpb.GetStatisticsChannelRequest, opts ...grpc.CallOption) (*milvuspb.StringResponse, error) {
_va := make([]interface{}, len(opts))
for _i := range opts {
_va[_i] = opts[_i]
}
var _ca []interface{}
_ca = append(_ca, ctx, in)
_ca = append(_ca, _va...)
ret := _m.Called(_ca...)
if len(ret) == 0 {
panic("no return value specified for GetStatisticsChannel")
}
var r0 *milvuspb.StringResponse
var r1 error
if rf, ok := ret.Get(0).(func(context.Context, *internalpb.GetStatisticsChannelRequest, ...grpc.CallOption) (*milvuspb.StringResponse, error)); ok {
return rf(ctx, in, opts...)
}
if rf, ok := ret.Get(0).(func(context.Context, *internalpb.GetStatisticsChannelRequest, ...grpc.CallOption) *milvuspb.StringResponse); ok {
r0 = rf(ctx, in, opts...)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*milvuspb.StringResponse)
}
}
if rf, ok := ret.Get(1).(func(context.Context, *internalpb.GetStatisticsChannelRequest, ...grpc.CallOption) error); ok {
r1 = rf(ctx, in, opts...)
} else {
r1 = ret.Error(1)
}
return r0, r1
}
// MockDataCoordClient_GetStatisticsChannel_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetStatisticsChannel'
type MockDataCoordClient_GetStatisticsChannel_Call struct {
*mock.Call
}
// GetStatisticsChannel is a helper method to define mock.On call
// - ctx context.Context
// - in *internalpb.GetStatisticsChannelRequest
// - opts ...grpc.CallOption
func (_e *MockDataCoordClient_Expecter) GetStatisticsChannel(ctx interface{}, in interface{}, opts ...interface{}) *MockDataCoordClient_GetStatisticsChannel_Call {
return &MockDataCoordClient_GetStatisticsChannel_Call{Call: _e.mock.On("GetStatisticsChannel",
append([]interface{}{ctx, in}, opts...)...)}
}
func (_c *MockDataCoordClient_GetStatisticsChannel_Call) Run(run func(ctx context.Context, in *internalpb.GetStatisticsChannelRequest, opts ...grpc.CallOption)) *MockDataCoordClient_GetStatisticsChannel_Call {
_c.Call.Run(func(args mock.Arguments) {
variadicArgs := make([]grpc.CallOption, len(args)-2)
for i, a := range args[2:] {
if a != nil {
variadicArgs[i] = a.(grpc.CallOption)
}
}
run(args[0].(context.Context), args[1].(*internalpb.GetStatisticsChannelRequest), variadicArgs...)
})
return _c
}
func (_c *MockDataCoordClient_GetStatisticsChannel_Call) Return(_a0 *milvuspb.StringResponse, _a1 error) *MockDataCoordClient_GetStatisticsChannel_Call {
_c.Call.Return(_a0, _a1)
return _c
}
func (_c *MockDataCoordClient_GetStatisticsChannel_Call) RunAndReturn(run func(context.Context, *internalpb.GetStatisticsChannelRequest, ...grpc.CallOption) (*milvuspb.StringResponse, error)) *MockDataCoordClient_GetStatisticsChannel_Call {
_c.Call.Return(run)
return _c
}
// GetTimeTickChannel provides a mock function with given fields: ctx, in, opts
func (_m *MockDataCoordClient) GetTimeTickChannel(ctx context.Context, in *internalpb.GetTimeTickChannelRequest, opts ...grpc.CallOption) (*milvuspb.StringResponse, error) {
_va := make([]interface{}, len(opts))
for _i := range opts {
_va[_i] = opts[_i]
}
var _ca []interface{}
_ca = append(_ca, ctx, in)
_ca = append(_ca, _va...)
ret := _m.Called(_ca...)
if len(ret) == 0 {
panic("no return value specified for GetTimeTickChannel")
}
var r0 *milvuspb.StringResponse
var r1 error
if rf, ok := ret.Get(0).(func(context.Context, *internalpb.GetTimeTickChannelRequest, ...grpc.CallOption) (*milvuspb.StringResponse, error)); ok {
return rf(ctx, in, opts...)
}
if rf, ok := ret.Get(0).(func(context.Context, *internalpb.GetTimeTickChannelRequest, ...grpc.CallOption) *milvuspb.StringResponse); ok {
r0 = rf(ctx, in, opts...)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*milvuspb.StringResponse)
}
}
if rf, ok := ret.Get(1).(func(context.Context, *internalpb.GetTimeTickChannelRequest, ...grpc.CallOption) error); ok {
r1 = rf(ctx, in, opts...)
} else {
r1 = ret.Error(1)
}
return r0, r1
}
// MockDataCoordClient_GetTimeTickChannel_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetTimeTickChannel'
type MockDataCoordClient_GetTimeTickChannel_Call struct {
*mock.Call
}
// GetTimeTickChannel is a helper method to define mock.On call
// - ctx context.Context
// - in *internalpb.GetTimeTickChannelRequest
// - opts ...grpc.CallOption
func (_e *MockDataCoordClient_Expecter) GetTimeTickChannel(ctx interface{}, in interface{}, opts ...interface{}) *MockDataCoordClient_GetTimeTickChannel_Call {
return &MockDataCoordClient_GetTimeTickChannel_Call{Call: _e.mock.On("GetTimeTickChannel",
append([]interface{}{ctx, in}, opts...)...)}
}
func (_c *MockDataCoordClient_GetTimeTickChannel_Call) Run(run func(ctx context.Context, in *internalpb.GetTimeTickChannelRequest, opts ...grpc.CallOption)) *MockDataCoordClient_GetTimeTickChannel_Call {
_c.Call.Run(func(args mock.Arguments) {
variadicArgs := make([]grpc.CallOption, len(args)-2)
for i, a := range args[2:] {
if a != nil {
variadicArgs[i] = a.(grpc.CallOption)
}
}
run(args[0].(context.Context), args[1].(*internalpb.GetTimeTickChannelRequest), variadicArgs...)
})
return _c
}
func (_c *MockDataCoordClient_GetTimeTickChannel_Call) Return(_a0 *milvuspb.StringResponse, _a1 error) *MockDataCoordClient_GetTimeTickChannel_Call {
_c.Call.Return(_a0, _a1)
return _c
}
func (_c *MockDataCoordClient_GetTimeTickChannel_Call) RunAndReturn(run func(context.Context, *internalpb.GetTimeTickChannelRequest, ...grpc.CallOption) (*milvuspb.StringResponse, error)) *MockDataCoordClient_GetTimeTickChannel_Call {
_c.Call.Return(run)
return _c
}
// ImportV2 provides a mock function with given fields: ctx, in, opts
func (_m *MockDataCoordClient) ImportV2(ctx context.Context, in *internalpb.ImportRequestInternal, opts ...grpc.CallOption) (*internalpb.ImportResponse, error) {
_va := make([]interface{}, len(opts))

View File

@ -4056,6 +4056,65 @@ func (_c *MixCoord_GetQueryNodeDistribution_Call) RunAndReturn(run func(context.
return _c
}
// GetQuotaMetrics provides a mock function with given fields: _a0, _a1
func (_m *MixCoord) GetQuotaMetrics(_a0 context.Context, _a1 *internalpb.GetQuotaMetricsRequest) (*internalpb.GetQuotaMetricsResponse, error) {
ret := _m.Called(_a0, _a1)
if len(ret) == 0 {
panic("no return value specified for GetQuotaMetrics")
}
var r0 *internalpb.GetQuotaMetricsResponse
var r1 error
if rf, ok := ret.Get(0).(func(context.Context, *internalpb.GetQuotaMetricsRequest) (*internalpb.GetQuotaMetricsResponse, error)); ok {
return rf(_a0, _a1)
}
if rf, ok := ret.Get(0).(func(context.Context, *internalpb.GetQuotaMetricsRequest) *internalpb.GetQuotaMetricsResponse); ok {
r0 = rf(_a0, _a1)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*internalpb.GetQuotaMetricsResponse)
}
}
if rf, ok := ret.Get(1).(func(context.Context, *internalpb.GetQuotaMetricsRequest) error); ok {
r1 = rf(_a0, _a1)
} else {
r1 = ret.Error(1)
}
return r0, r1
}
// MixCoord_GetQuotaMetrics_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetQuotaMetrics'
type MixCoord_GetQuotaMetrics_Call struct {
*mock.Call
}
// GetQuotaMetrics is a helper method to define mock.On call
// - _a0 context.Context
// - _a1 *internalpb.GetQuotaMetricsRequest
func (_e *MixCoord_Expecter) GetQuotaMetrics(_a0 interface{}, _a1 interface{}) *MixCoord_GetQuotaMetrics_Call {
return &MixCoord_GetQuotaMetrics_Call{Call: _e.mock.On("GetQuotaMetrics", _a0, _a1)}
}
func (_c *MixCoord_GetQuotaMetrics_Call) Run(run func(_a0 context.Context, _a1 *internalpb.GetQuotaMetricsRequest)) *MixCoord_GetQuotaMetrics_Call {
_c.Call.Run(func(args mock.Arguments) {
run(args[0].(context.Context), args[1].(*internalpb.GetQuotaMetricsRequest))
})
return _c
}
func (_c *MixCoord_GetQuotaMetrics_Call) Return(_a0 *internalpb.GetQuotaMetricsResponse, _a1 error) *MixCoord_GetQuotaMetrics_Call {
_c.Call.Return(_a0, _a1)
return _c
}
func (_c *MixCoord_GetQuotaMetrics_Call) RunAndReturn(run func(context.Context, *internalpb.GetQuotaMetricsRequest) (*internalpb.GetQuotaMetricsResponse, error)) *MixCoord_GetQuotaMetrics_Call {
_c.Call.Return(run)
return _c
}
// GetRecoveryInfo provides a mock function with given fields: _a0, _a1
func (_m *MixCoord) GetRecoveryInfo(_a0 context.Context, _a1 *datapb.GetRecoveryInfoRequest) (*datapb.GetRecoveryInfoResponse, error) {
ret := _m.Called(_a0, _a1)

View File

@ -4968,6 +4968,80 @@ func (_c *MockMixCoordClient_GetQueryNodeDistribution_Call) RunAndReturn(run fun
return _c
}
// GetQuotaMetrics provides a mock function with given fields: ctx, in, opts
func (_m *MockMixCoordClient) GetQuotaMetrics(ctx context.Context, in *internalpb.GetQuotaMetricsRequest, opts ...grpc.CallOption) (*internalpb.GetQuotaMetricsResponse, error) {
_va := make([]interface{}, len(opts))
for _i := range opts {
_va[_i] = opts[_i]
}
var _ca []interface{}
_ca = append(_ca, ctx, in)
_ca = append(_ca, _va...)
ret := _m.Called(_ca...)
if len(ret) == 0 {
panic("no return value specified for GetQuotaMetrics")
}
var r0 *internalpb.GetQuotaMetricsResponse
var r1 error
if rf, ok := ret.Get(0).(func(context.Context, *internalpb.GetQuotaMetricsRequest, ...grpc.CallOption) (*internalpb.GetQuotaMetricsResponse, error)); ok {
return rf(ctx, in, opts...)
}
if rf, ok := ret.Get(0).(func(context.Context, *internalpb.GetQuotaMetricsRequest, ...grpc.CallOption) *internalpb.GetQuotaMetricsResponse); ok {
r0 = rf(ctx, in, opts...)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*internalpb.GetQuotaMetricsResponse)
}
}
if rf, ok := ret.Get(1).(func(context.Context, *internalpb.GetQuotaMetricsRequest, ...grpc.CallOption) error); ok {
r1 = rf(ctx, in, opts...)
} else {
r1 = ret.Error(1)
}
return r0, r1
}
// MockMixCoordClient_GetQuotaMetrics_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetQuotaMetrics'
type MockMixCoordClient_GetQuotaMetrics_Call struct {
*mock.Call
}
// GetQuotaMetrics is a helper method to define mock.On call
// - ctx context.Context
// - in *internalpb.GetQuotaMetricsRequest
// - opts ...grpc.CallOption
func (_e *MockMixCoordClient_Expecter) GetQuotaMetrics(ctx interface{}, in interface{}, opts ...interface{}) *MockMixCoordClient_GetQuotaMetrics_Call {
return &MockMixCoordClient_GetQuotaMetrics_Call{Call: _e.mock.On("GetQuotaMetrics",
append([]interface{}{ctx, in}, opts...)...)}
}
func (_c *MockMixCoordClient_GetQuotaMetrics_Call) Run(run func(ctx context.Context, in *internalpb.GetQuotaMetricsRequest, opts ...grpc.CallOption)) *MockMixCoordClient_GetQuotaMetrics_Call {
_c.Call.Run(func(args mock.Arguments) {
variadicArgs := make([]grpc.CallOption, len(args)-2)
for i, a := range args[2:] {
if a != nil {
variadicArgs[i] = a.(grpc.CallOption)
}
}
run(args[0].(context.Context), args[1].(*internalpb.GetQuotaMetricsRequest), variadicArgs...)
})
return _c
}
func (_c *MockMixCoordClient_GetQuotaMetrics_Call) Return(_a0 *internalpb.GetQuotaMetricsResponse, _a1 error) *MockMixCoordClient_GetQuotaMetrics_Call {
_c.Call.Return(_a0, _a1)
return _c
}
func (_c *MockMixCoordClient_GetQuotaMetrics_Call) RunAndReturn(run func(context.Context, *internalpb.GetQuotaMetricsRequest, ...grpc.CallOption) (*internalpb.GetQuotaMetricsResponse, error)) *MockMixCoordClient_GetQuotaMetrics_Call {
_c.Call.Return(run)
return _c
}
// GetRecoveryInfo provides a mock function with given fields: ctx, in, opts
func (_m *MockMixCoordClient) GetRecoveryInfo(ctx context.Context, in *datapb.GetRecoveryInfoRequest, opts ...grpc.CallOption) (*datapb.GetRecoveryInfoResponse, error) {
_va := make([]interface{}, len(opts))

View File

@ -3501,6 +3501,65 @@ func (_c *MockProxy_GetQuerySegmentInfo_Call) RunAndReturn(run func(context.Cont
return _c
}
// GetQuotaMetrics provides a mock function with given fields: _a0, _a1
func (_m *MockProxy) GetQuotaMetrics(_a0 context.Context, _a1 *internalpb.GetQuotaMetricsRequest) (*internalpb.GetQuotaMetricsResponse, error) {
ret := _m.Called(_a0, _a1)
if len(ret) == 0 {
panic("no return value specified for GetQuotaMetrics")
}
var r0 *internalpb.GetQuotaMetricsResponse
var r1 error
if rf, ok := ret.Get(0).(func(context.Context, *internalpb.GetQuotaMetricsRequest) (*internalpb.GetQuotaMetricsResponse, error)); ok {
return rf(_a0, _a1)
}
if rf, ok := ret.Get(0).(func(context.Context, *internalpb.GetQuotaMetricsRequest) *internalpb.GetQuotaMetricsResponse); ok {
r0 = rf(_a0, _a1)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*internalpb.GetQuotaMetricsResponse)
}
}
if rf, ok := ret.Get(1).(func(context.Context, *internalpb.GetQuotaMetricsRequest) error); ok {
r1 = rf(_a0, _a1)
} else {
r1 = ret.Error(1)
}
return r0, r1
}
// MockProxy_GetQuotaMetrics_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetQuotaMetrics'
type MockProxy_GetQuotaMetrics_Call struct {
*mock.Call
}
// GetQuotaMetrics is a helper method to define mock.On call
// - _a0 context.Context
// - _a1 *internalpb.GetQuotaMetricsRequest
func (_e *MockProxy_Expecter) GetQuotaMetrics(_a0 interface{}, _a1 interface{}) *MockProxy_GetQuotaMetrics_Call {
return &MockProxy_GetQuotaMetrics_Call{Call: _e.mock.On("GetQuotaMetrics", _a0, _a1)}
}
func (_c *MockProxy_GetQuotaMetrics_Call) Run(run func(_a0 context.Context, _a1 *internalpb.GetQuotaMetricsRequest)) *MockProxy_GetQuotaMetrics_Call {
_c.Call.Run(func(args mock.Arguments) {
run(args[0].(context.Context), args[1].(*internalpb.GetQuotaMetricsRequest))
})
return _c
}
func (_c *MockProxy_GetQuotaMetrics_Call) Return(_a0 *internalpb.GetQuotaMetricsResponse, _a1 error) *MockProxy_GetQuotaMetrics_Call {
_c.Call.Return(_a0, _a1)
return _c
}
func (_c *MockProxy_GetQuotaMetrics_Call) RunAndReturn(run func(context.Context, *internalpb.GetQuotaMetricsRequest) (*internalpb.GetQuotaMetricsResponse, error)) *MockProxy_GetQuotaMetrics_Call {
_c.Call.Return(run)
return _c
}
// GetRateLimiter provides a mock function with no fields
func (_m *MockProxy) GetRateLimiter() (types.Limiter, error) {
ret := _m.Called()

View File

@ -372,6 +372,80 @@ func (_c *MockProxyClient_GetProxyMetrics_Call) RunAndReturn(run func(context.Co
return _c
}
// GetQuotaMetrics provides a mock function with given fields: ctx, in, opts
func (_m *MockProxyClient) GetQuotaMetrics(ctx context.Context, in *internalpb.GetQuotaMetricsRequest, opts ...grpc.CallOption) (*internalpb.GetQuotaMetricsResponse, error) {
_va := make([]interface{}, len(opts))
for _i := range opts {
_va[_i] = opts[_i]
}
var _ca []interface{}
_ca = append(_ca, ctx, in)
_ca = append(_ca, _va...)
ret := _m.Called(_ca...)
if len(ret) == 0 {
panic("no return value specified for GetQuotaMetrics")
}
var r0 *internalpb.GetQuotaMetricsResponse
var r1 error
if rf, ok := ret.Get(0).(func(context.Context, *internalpb.GetQuotaMetricsRequest, ...grpc.CallOption) (*internalpb.GetQuotaMetricsResponse, error)); ok {
return rf(ctx, in, opts...)
}
if rf, ok := ret.Get(0).(func(context.Context, *internalpb.GetQuotaMetricsRequest, ...grpc.CallOption) *internalpb.GetQuotaMetricsResponse); ok {
r0 = rf(ctx, in, opts...)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*internalpb.GetQuotaMetricsResponse)
}
}
if rf, ok := ret.Get(1).(func(context.Context, *internalpb.GetQuotaMetricsRequest, ...grpc.CallOption) error); ok {
r1 = rf(ctx, in, opts...)
} else {
r1 = ret.Error(1)
}
return r0, r1
}
// MockProxyClient_GetQuotaMetrics_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetQuotaMetrics'
type MockProxyClient_GetQuotaMetrics_Call struct {
*mock.Call
}
// GetQuotaMetrics is a helper method to define mock.On call
// - ctx context.Context
// - in *internalpb.GetQuotaMetricsRequest
// - opts ...grpc.CallOption
func (_e *MockProxyClient_Expecter) GetQuotaMetrics(ctx interface{}, in interface{}, opts ...interface{}) *MockProxyClient_GetQuotaMetrics_Call {
return &MockProxyClient_GetQuotaMetrics_Call{Call: _e.mock.On("GetQuotaMetrics",
append([]interface{}{ctx, in}, opts...)...)}
}
func (_c *MockProxyClient_GetQuotaMetrics_Call) Run(run func(ctx context.Context, in *internalpb.GetQuotaMetricsRequest, opts ...grpc.CallOption)) *MockProxyClient_GetQuotaMetrics_Call {
_c.Call.Run(func(args mock.Arguments) {
variadicArgs := make([]grpc.CallOption, len(args)-2)
for i, a := range args[2:] {
if a != nil {
variadicArgs[i] = a.(grpc.CallOption)
}
}
run(args[0].(context.Context), args[1].(*internalpb.GetQuotaMetricsRequest), variadicArgs...)
})
return _c
}
func (_c *MockProxyClient_GetQuotaMetrics_Call) Return(_a0 *internalpb.GetQuotaMetricsResponse, _a1 error) *MockProxyClient_GetQuotaMetrics_Call {
_c.Call.Return(_a0, _a1)
return _c
}
func (_c *MockProxyClient_GetQuotaMetrics_Call) RunAndReturn(run func(context.Context, *internalpb.GetQuotaMetricsRequest, ...grpc.CallOption) (*internalpb.GetQuotaMetricsResponse, error)) *MockProxyClient_GetQuotaMetrics_Call {
_c.Call.Return(run)
return _c
}
// GetSegmentsInfo provides a mock function with given fields: ctx, in, opts
func (_m *MockProxyClient) GetSegmentsInfo(ctx context.Context, in *internalpb.GetSegmentsInfoRequest, opts ...grpc.CallOption) (*internalpb.GetSegmentsInfoResponse, error) {
_va := make([]interface{}, len(opts))

View File

@ -1,4 +1,4 @@
// Code generated by mockery v2.46.0. DO NOT EDIT.
// Code generated by mockery v2.53.3. DO NOT EDIT.
package mocks
@ -506,65 +506,6 @@ func (_c *MockQueryCoord_DropResourceGroup_Call) RunAndReturn(run func(context.C
return _c
}
// GetComponentStates provides a mock function with given fields: _a0, _a1
func (_m *MockQueryCoord) GetComponentStates(_a0 context.Context, _a1 *milvuspb.GetComponentStatesRequest) (*milvuspb.ComponentStates, error) {
ret := _m.Called(_a0, _a1)
if len(ret) == 0 {
panic("no return value specified for GetComponentStates")
}
var r0 *milvuspb.ComponentStates
var r1 error
if rf, ok := ret.Get(0).(func(context.Context, *milvuspb.GetComponentStatesRequest) (*milvuspb.ComponentStates, error)); ok {
return rf(_a0, _a1)
}
if rf, ok := ret.Get(0).(func(context.Context, *milvuspb.GetComponentStatesRequest) *milvuspb.ComponentStates); ok {
r0 = rf(_a0, _a1)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*milvuspb.ComponentStates)
}
}
if rf, ok := ret.Get(1).(func(context.Context, *milvuspb.GetComponentStatesRequest) error); ok {
r1 = rf(_a0, _a1)
} else {
r1 = ret.Error(1)
}
return r0, r1
}
// MockQueryCoord_GetComponentStates_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetComponentStates'
type MockQueryCoord_GetComponentStates_Call struct {
*mock.Call
}
// GetComponentStates is a helper method to define mock.On call
// - _a0 context.Context
// - _a1 *milvuspb.GetComponentStatesRequest
func (_e *MockQueryCoord_Expecter) GetComponentStates(_a0 interface{}, _a1 interface{}) *MockQueryCoord_GetComponentStates_Call {
return &MockQueryCoord_GetComponentStates_Call{Call: _e.mock.On("GetComponentStates", _a0, _a1)}
}
func (_c *MockQueryCoord_GetComponentStates_Call) Run(run func(_a0 context.Context, _a1 *milvuspb.GetComponentStatesRequest)) *MockQueryCoord_GetComponentStates_Call {
_c.Call.Run(func(args mock.Arguments) {
run(args[0].(context.Context), args[1].(*milvuspb.GetComponentStatesRequest))
})
return _c
}
func (_c *MockQueryCoord_GetComponentStates_Call) Return(_a0 *milvuspb.ComponentStates, _a1 error) *MockQueryCoord_GetComponentStates_Call {
_c.Call.Return(_a0, _a1)
return _c
}
func (_c *MockQueryCoord_GetComponentStates_Call) RunAndReturn(run func(context.Context, *milvuspb.GetComponentStatesRequest) (*milvuspb.ComponentStates, error)) *MockQueryCoord_GetComponentStates_Call {
_c.Call.Return(run)
return _c
}
// GetLoadSegmentInfo provides a mock function with given fields: _a0, _a1
func (_m *MockQueryCoord) GetLoadSegmentInfo(_a0 context.Context, _a1 *querypb.GetSegmentInfoRequest) (*querypb.GetSegmentInfoResponse, error) {
ret := _m.Called(_a0, _a1)
@ -919,125 +860,7 @@ func (_c *MockQueryCoord_GetShardLeaders_Call) RunAndReturn(run func(context.Con
return _c
}
// GetStatisticsChannel provides a mock function with given fields: _a0, _a1
func (_m *MockQueryCoord) GetStatisticsChannel(_a0 context.Context, _a1 *internalpb.GetStatisticsChannelRequest) (*milvuspb.StringResponse, error) {
ret := _m.Called(_a0, _a1)
if len(ret) == 0 {
panic("no return value specified for GetStatisticsChannel")
}
var r0 *milvuspb.StringResponse
var r1 error
if rf, ok := ret.Get(0).(func(context.Context, *internalpb.GetStatisticsChannelRequest) (*milvuspb.StringResponse, error)); ok {
return rf(_a0, _a1)
}
if rf, ok := ret.Get(0).(func(context.Context, *internalpb.GetStatisticsChannelRequest) *milvuspb.StringResponse); ok {
r0 = rf(_a0, _a1)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*milvuspb.StringResponse)
}
}
if rf, ok := ret.Get(1).(func(context.Context, *internalpb.GetStatisticsChannelRequest) error); ok {
r1 = rf(_a0, _a1)
} else {
r1 = ret.Error(1)
}
return r0, r1
}
// MockQueryCoord_GetStatisticsChannel_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetStatisticsChannel'
type MockQueryCoord_GetStatisticsChannel_Call struct {
*mock.Call
}
// GetStatisticsChannel is a helper method to define mock.On call
// - _a0 context.Context
// - _a1 *internalpb.GetStatisticsChannelRequest
func (_e *MockQueryCoord_Expecter) GetStatisticsChannel(_a0 interface{}, _a1 interface{}) *MockQueryCoord_GetStatisticsChannel_Call {
return &MockQueryCoord_GetStatisticsChannel_Call{Call: _e.mock.On("GetStatisticsChannel", _a0, _a1)}
}
func (_c *MockQueryCoord_GetStatisticsChannel_Call) Run(run func(_a0 context.Context, _a1 *internalpb.GetStatisticsChannelRequest)) *MockQueryCoord_GetStatisticsChannel_Call {
_c.Call.Run(func(args mock.Arguments) {
run(args[0].(context.Context), args[1].(*internalpb.GetStatisticsChannelRequest))
})
return _c
}
func (_c *MockQueryCoord_GetStatisticsChannel_Call) Return(_a0 *milvuspb.StringResponse, _a1 error) *MockQueryCoord_GetStatisticsChannel_Call {
_c.Call.Return(_a0, _a1)
return _c
}
func (_c *MockQueryCoord_GetStatisticsChannel_Call) RunAndReturn(run func(context.Context, *internalpb.GetStatisticsChannelRequest) (*milvuspb.StringResponse, error)) *MockQueryCoord_GetStatisticsChannel_Call {
_c.Call.Return(run)
return _c
}
// GetTimeTickChannel provides a mock function with given fields: _a0, _a1
func (_m *MockQueryCoord) GetTimeTickChannel(_a0 context.Context, _a1 *internalpb.GetTimeTickChannelRequest) (*milvuspb.StringResponse, error) {
ret := _m.Called(_a0, _a1)
if len(ret) == 0 {
panic("no return value specified for GetTimeTickChannel")
}
var r0 *milvuspb.StringResponse
var r1 error
if rf, ok := ret.Get(0).(func(context.Context, *internalpb.GetTimeTickChannelRequest) (*milvuspb.StringResponse, error)); ok {
return rf(_a0, _a1)
}
if rf, ok := ret.Get(0).(func(context.Context, *internalpb.GetTimeTickChannelRequest) *milvuspb.StringResponse); ok {
r0 = rf(_a0, _a1)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*milvuspb.StringResponse)
}
}
if rf, ok := ret.Get(1).(func(context.Context, *internalpb.GetTimeTickChannelRequest) error); ok {
r1 = rf(_a0, _a1)
} else {
r1 = ret.Error(1)
}
return r0, r1
}
// MockQueryCoord_GetTimeTickChannel_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetTimeTickChannel'
type MockQueryCoord_GetTimeTickChannel_Call struct {
*mock.Call
}
// GetTimeTickChannel is a helper method to define mock.On call
// - _a0 context.Context
// - _a1 *internalpb.GetTimeTickChannelRequest
func (_e *MockQueryCoord_Expecter) GetTimeTickChannel(_a0 interface{}, _a1 interface{}) *MockQueryCoord_GetTimeTickChannel_Call {
return &MockQueryCoord_GetTimeTickChannel_Call{Call: _e.mock.On("GetTimeTickChannel", _a0, _a1)}
}
func (_c *MockQueryCoord_GetTimeTickChannel_Call) Run(run func(_a0 context.Context, _a1 *internalpb.GetTimeTickChannelRequest)) *MockQueryCoord_GetTimeTickChannel_Call {
_c.Call.Run(func(args mock.Arguments) {
run(args[0].(context.Context), args[1].(*internalpb.GetTimeTickChannelRequest))
})
return _c
}
func (_c *MockQueryCoord_GetTimeTickChannel_Call) Return(_a0 *milvuspb.StringResponse, _a1 error) *MockQueryCoord_GetTimeTickChannel_Call {
_c.Call.Return(_a0, _a1)
return _c
}
func (_c *MockQueryCoord_GetTimeTickChannel_Call) RunAndReturn(run func(context.Context, *internalpb.GetTimeTickChannelRequest) (*milvuspb.StringResponse, error)) *MockQueryCoord_GetTimeTickChannel_Call {
_c.Call.Return(run)
return _c
}
// Init provides a mock function with given fields:
// Init provides a mock function with no fields
func (_m *MockQueryCoord) Init() error {
ret := _m.Called()
@ -1436,7 +1259,7 @@ func (_c *MockQueryCoord_LoadPartitions_Call) RunAndReturn(run func(context.Cont
return _c
}
// Register provides a mock function with given fields:
// Register provides a mock function with no fields
func (_m *MockQueryCoord) Register() error {
ret := _m.Called()
@ -1746,53 +1569,7 @@ func (_c *MockQueryCoord_SetAddress_Call) Return() *MockQueryCoord_SetAddress_Ca
}
func (_c *MockQueryCoord_SetAddress_Call) RunAndReturn(run func(string)) *MockQueryCoord_SetAddress_Call {
_c.Call.Return(run)
return _c
}
// SetDataCoordClient provides a mock function with given fields: dataCoord
func (_m *MockQueryCoord) SetDataCoordClient(dataCoord types.DataCoordClient) error {
ret := _m.Called(dataCoord)
if len(ret) == 0 {
panic("no return value specified for SetDataCoordClient")
}
var r0 error
if rf, ok := ret.Get(0).(func(types.DataCoordClient) error); ok {
r0 = rf(dataCoord)
} else {
r0 = ret.Error(0)
}
return r0
}
// MockQueryCoord_SetDataCoordClient_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SetDataCoordClient'
type MockQueryCoord_SetDataCoordClient_Call struct {
*mock.Call
}
// SetDataCoordClient is a helper method to define mock.On call
// - dataCoord types.DataCoordClient
func (_e *MockQueryCoord_Expecter) SetDataCoordClient(dataCoord interface{}) *MockQueryCoord_SetDataCoordClient_Call {
return &MockQueryCoord_SetDataCoordClient_Call{Call: _e.mock.On("SetDataCoordClient", dataCoord)}
}
func (_c *MockQueryCoord_SetDataCoordClient_Call) Run(run func(dataCoord types.DataCoordClient)) *MockQueryCoord_SetDataCoordClient_Call {
_c.Call.Run(func(args mock.Arguments) {
run(args[0].(types.DataCoordClient))
})
return _c
}
func (_c *MockQueryCoord_SetDataCoordClient_Call) Return(_a0 error) *MockQueryCoord_SetDataCoordClient_Call {
_c.Call.Return(_a0)
return _c
}
func (_c *MockQueryCoord_SetDataCoordClient_Call) RunAndReturn(run func(types.DataCoordClient) error) *MockQueryCoord_SetDataCoordClient_Call {
_c.Call.Return(run)
_c.Run(run)
return _c
}
@ -1825,7 +1602,40 @@ func (_c *MockQueryCoord_SetEtcdClient_Call) Return() *MockQueryCoord_SetEtcdCli
}
func (_c *MockQueryCoord_SetEtcdClient_Call) RunAndReturn(run func(*clientv3.Client)) *MockQueryCoord_SetEtcdClient_Call {
_c.Call.Return(run)
_c.Run(run)
return _c
}
// SetMixCoord provides a mock function with given fields: mixCoord
func (_m *MockQueryCoord) SetMixCoord(mixCoord types.MixCoord) {
_m.Called(mixCoord)
}
// MockQueryCoord_SetMixCoord_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SetMixCoord'
type MockQueryCoord_SetMixCoord_Call struct {
*mock.Call
}
// SetMixCoord is a helper method to define mock.On call
// - mixCoord types.MixCoord
func (_e *MockQueryCoord_Expecter) SetMixCoord(mixCoord interface{}) *MockQueryCoord_SetMixCoord_Call {
return &MockQueryCoord_SetMixCoord_Call{Call: _e.mock.On("SetMixCoord", mixCoord)}
}
func (_c *MockQueryCoord_SetMixCoord_Call) Run(run func(mixCoord types.MixCoord)) *MockQueryCoord_SetMixCoord_Call {
_c.Call.Run(func(args mock.Arguments) {
run(args[0].(types.MixCoord))
})
return _c
}
func (_c *MockQueryCoord_SetMixCoord_Call) Return() *MockQueryCoord_SetMixCoord_Call {
_c.Call.Return()
return _c
}
func (_c *MockQueryCoord_SetMixCoord_Call) RunAndReturn(run func(types.MixCoord)) *MockQueryCoord_SetMixCoord_Call {
_c.Run(run)
return _c
}
@ -1858,53 +1668,7 @@ func (_c *MockQueryCoord_SetQueryNodeCreator_Call) Return() *MockQueryCoord_SetQ
}
func (_c *MockQueryCoord_SetQueryNodeCreator_Call) RunAndReturn(run func(func(context.Context, string, int64) (types.QueryNodeClient, error))) *MockQueryCoord_SetQueryNodeCreator_Call {
_c.Call.Return(run)
return _c
}
// SetRootCoordClient provides a mock function with given fields: rootCoord
func (_m *MockQueryCoord) SetRootCoordClient(rootCoord types.RootCoordClient) error {
ret := _m.Called(rootCoord)
if len(ret) == 0 {
panic("no return value specified for SetRootCoordClient")
}
var r0 error
if rf, ok := ret.Get(0).(func(types.RootCoordClient) error); ok {
r0 = rf(rootCoord)
} else {
r0 = ret.Error(0)
}
return r0
}
// MockQueryCoord_SetRootCoordClient_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SetRootCoordClient'
type MockQueryCoord_SetRootCoordClient_Call struct {
*mock.Call
}
// SetRootCoordClient is a helper method to define mock.On call
// - rootCoord types.RootCoordClient
func (_e *MockQueryCoord_Expecter) SetRootCoordClient(rootCoord interface{}) *MockQueryCoord_SetRootCoordClient_Call {
return &MockQueryCoord_SetRootCoordClient_Call{Call: _e.mock.On("SetRootCoordClient", rootCoord)}
}
func (_c *MockQueryCoord_SetRootCoordClient_Call) Run(run func(rootCoord types.RootCoordClient)) *MockQueryCoord_SetRootCoordClient_Call {
_c.Call.Run(func(args mock.Arguments) {
run(args[0].(types.RootCoordClient))
})
return _c
}
func (_c *MockQueryCoord_SetRootCoordClient_Call) Return(_a0 error) *MockQueryCoord_SetRootCoordClient_Call {
_c.Call.Return(_a0)
return _c
}
func (_c *MockQueryCoord_SetRootCoordClient_Call) RunAndReturn(run func(types.RootCoordClient) error) *MockQueryCoord_SetRootCoordClient_Call {
_c.Call.Return(run)
_c.Run(run)
return _c
}
@ -1937,7 +1701,7 @@ func (_c *MockQueryCoord_SetTiKVClient_Call) Return() *MockQueryCoord_SetTiKVCli
}
func (_c *MockQueryCoord_SetTiKVClient_Call) RunAndReturn(run func(*txnkv.Client)) *MockQueryCoord_SetTiKVClient_Call {
_c.Call.Return(run)
_c.Run(run)
return _c
}
@ -2118,7 +1882,7 @@ func (_c *MockQueryCoord_ShowLoadPartitions_Call) RunAndReturn(run func(context.
return _c
}
// Start provides a mock function with given fields:
// Start provides a mock function with no fields
func (_m *MockQueryCoord) Start() error {
ret := _m.Called()
@ -2163,7 +1927,7 @@ func (_c *MockQueryCoord_Start_Call) RunAndReturn(run func() error) *MockQueryCo
return _c
}
// Stop provides a mock function with given fields:
// Stop provides a mock function with no fields
func (_m *MockQueryCoord) Stop() error {
ret := _m.Called()
@ -2768,7 +2532,7 @@ func (_c *MockQueryCoord_UpdateStateCode_Call) Return() *MockQueryCoord_UpdateSt
}
func (_c *MockQueryCoord_UpdateStateCode_Call) RunAndReturn(run func(commonpb.StateCode)) *MockQueryCoord_UpdateStateCode_Call {
_c.Call.Return(run)
_c.Run(run)
return _c
}

View File

@ -1,4 +1,4 @@
// Code generated by mockery v2.46.0. DO NOT EDIT.
// Code generated by mockery v2.53.3. DO NOT EDIT.
package mocks
@ -327,7 +327,7 @@ func (_c *MockQueryCoordClient_CheckQueryNodeDistribution_Call) RunAndReturn(run
return _c
}
// Close provides a mock function with given fields:
// Close provides a mock function with no fields
func (_m *MockQueryCoordClient) Close() error {
ret := _m.Called()
@ -668,80 +668,6 @@ func (_c *MockQueryCoordClient_DropResourceGroup_Call) RunAndReturn(run func(con
return _c
}
// GetComponentStates provides a mock function with given fields: ctx, in, opts
func (_m *MockQueryCoordClient) GetComponentStates(ctx context.Context, in *milvuspb.GetComponentStatesRequest, opts ...grpc.CallOption) (*milvuspb.ComponentStates, error) {
_va := make([]interface{}, len(opts))
for _i := range opts {
_va[_i] = opts[_i]
}
var _ca []interface{}
_ca = append(_ca, ctx, in)
_ca = append(_ca, _va...)
ret := _m.Called(_ca...)
if len(ret) == 0 {
panic("no return value specified for GetComponentStates")
}
var r0 *milvuspb.ComponentStates
var r1 error
if rf, ok := ret.Get(0).(func(context.Context, *milvuspb.GetComponentStatesRequest, ...grpc.CallOption) (*milvuspb.ComponentStates, error)); ok {
return rf(ctx, in, opts...)
}
if rf, ok := ret.Get(0).(func(context.Context, *milvuspb.GetComponentStatesRequest, ...grpc.CallOption) *milvuspb.ComponentStates); ok {
r0 = rf(ctx, in, opts...)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*milvuspb.ComponentStates)
}
}
if rf, ok := ret.Get(1).(func(context.Context, *milvuspb.GetComponentStatesRequest, ...grpc.CallOption) error); ok {
r1 = rf(ctx, in, opts...)
} else {
r1 = ret.Error(1)
}
return r0, r1
}
// MockQueryCoordClient_GetComponentStates_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetComponentStates'
type MockQueryCoordClient_GetComponentStates_Call struct {
*mock.Call
}
// GetComponentStates is a helper method to define mock.On call
// - ctx context.Context
// - in *milvuspb.GetComponentStatesRequest
// - opts ...grpc.CallOption
func (_e *MockQueryCoordClient_Expecter) GetComponentStates(ctx interface{}, in interface{}, opts ...interface{}) *MockQueryCoordClient_GetComponentStates_Call {
return &MockQueryCoordClient_GetComponentStates_Call{Call: _e.mock.On("GetComponentStates",
append([]interface{}{ctx, in}, opts...)...)}
}
func (_c *MockQueryCoordClient_GetComponentStates_Call) Run(run func(ctx context.Context, in *milvuspb.GetComponentStatesRequest, opts ...grpc.CallOption)) *MockQueryCoordClient_GetComponentStates_Call {
_c.Call.Run(func(args mock.Arguments) {
variadicArgs := make([]grpc.CallOption, len(args)-2)
for i, a := range args[2:] {
if a != nil {
variadicArgs[i] = a.(grpc.CallOption)
}
}
run(args[0].(context.Context), args[1].(*milvuspb.GetComponentStatesRequest), variadicArgs...)
})
return _c
}
func (_c *MockQueryCoordClient_GetComponentStates_Call) Return(_a0 *milvuspb.ComponentStates, _a1 error) *MockQueryCoordClient_GetComponentStates_Call {
_c.Call.Return(_a0, _a1)
return _c
}
func (_c *MockQueryCoordClient_GetComponentStates_Call) RunAndReturn(run func(context.Context, *milvuspb.GetComponentStatesRequest, ...grpc.CallOption) (*milvuspb.ComponentStates, error)) *MockQueryCoordClient_GetComponentStates_Call {
_c.Call.Return(run)
return _c
}
// GetLoadSegmentInfo provides a mock function with given fields: ctx, in, opts
func (_m *MockQueryCoordClient) GetLoadSegmentInfo(ctx context.Context, in *querypb.GetSegmentInfoRequest, opts ...grpc.CallOption) (*querypb.GetSegmentInfoResponse, error) {
_va := make([]interface{}, len(opts))
@ -1186,154 +1112,6 @@ func (_c *MockQueryCoordClient_GetShardLeaders_Call) RunAndReturn(run func(conte
return _c
}
// GetStatisticsChannel provides a mock function with given fields: ctx, in, opts
func (_m *MockQueryCoordClient) GetStatisticsChannel(ctx context.Context, in *internalpb.GetStatisticsChannelRequest, opts ...grpc.CallOption) (*milvuspb.StringResponse, error) {
_va := make([]interface{}, len(opts))
for _i := range opts {
_va[_i] = opts[_i]
}
var _ca []interface{}
_ca = append(_ca, ctx, in)
_ca = append(_ca, _va...)
ret := _m.Called(_ca...)
if len(ret) == 0 {
panic("no return value specified for GetStatisticsChannel")
}
var r0 *milvuspb.StringResponse
var r1 error
if rf, ok := ret.Get(0).(func(context.Context, *internalpb.GetStatisticsChannelRequest, ...grpc.CallOption) (*milvuspb.StringResponse, error)); ok {
return rf(ctx, in, opts...)
}
if rf, ok := ret.Get(0).(func(context.Context, *internalpb.GetStatisticsChannelRequest, ...grpc.CallOption) *milvuspb.StringResponse); ok {
r0 = rf(ctx, in, opts...)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*milvuspb.StringResponse)
}
}
if rf, ok := ret.Get(1).(func(context.Context, *internalpb.GetStatisticsChannelRequest, ...grpc.CallOption) error); ok {
r1 = rf(ctx, in, opts...)
} else {
r1 = ret.Error(1)
}
return r0, r1
}
// MockQueryCoordClient_GetStatisticsChannel_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetStatisticsChannel'
type MockQueryCoordClient_GetStatisticsChannel_Call struct {
*mock.Call
}
// GetStatisticsChannel is a helper method to define mock.On call
// - ctx context.Context
// - in *internalpb.GetStatisticsChannelRequest
// - opts ...grpc.CallOption
func (_e *MockQueryCoordClient_Expecter) GetStatisticsChannel(ctx interface{}, in interface{}, opts ...interface{}) *MockQueryCoordClient_GetStatisticsChannel_Call {
return &MockQueryCoordClient_GetStatisticsChannel_Call{Call: _e.mock.On("GetStatisticsChannel",
append([]interface{}{ctx, in}, opts...)...)}
}
func (_c *MockQueryCoordClient_GetStatisticsChannel_Call) Run(run func(ctx context.Context, in *internalpb.GetStatisticsChannelRequest, opts ...grpc.CallOption)) *MockQueryCoordClient_GetStatisticsChannel_Call {
_c.Call.Run(func(args mock.Arguments) {
variadicArgs := make([]grpc.CallOption, len(args)-2)
for i, a := range args[2:] {
if a != nil {
variadicArgs[i] = a.(grpc.CallOption)
}
}
run(args[0].(context.Context), args[1].(*internalpb.GetStatisticsChannelRequest), variadicArgs...)
})
return _c
}
func (_c *MockQueryCoordClient_GetStatisticsChannel_Call) Return(_a0 *milvuspb.StringResponse, _a1 error) *MockQueryCoordClient_GetStatisticsChannel_Call {
_c.Call.Return(_a0, _a1)
return _c
}
func (_c *MockQueryCoordClient_GetStatisticsChannel_Call) RunAndReturn(run func(context.Context, *internalpb.GetStatisticsChannelRequest, ...grpc.CallOption) (*milvuspb.StringResponse, error)) *MockQueryCoordClient_GetStatisticsChannel_Call {
_c.Call.Return(run)
return _c
}
// GetTimeTickChannel provides a mock function with given fields: ctx, in, opts
func (_m *MockQueryCoordClient) GetTimeTickChannel(ctx context.Context, in *internalpb.GetTimeTickChannelRequest, opts ...grpc.CallOption) (*milvuspb.StringResponse, error) {
_va := make([]interface{}, len(opts))
for _i := range opts {
_va[_i] = opts[_i]
}
var _ca []interface{}
_ca = append(_ca, ctx, in)
_ca = append(_ca, _va...)
ret := _m.Called(_ca...)
if len(ret) == 0 {
panic("no return value specified for GetTimeTickChannel")
}
var r0 *milvuspb.StringResponse
var r1 error
if rf, ok := ret.Get(0).(func(context.Context, *internalpb.GetTimeTickChannelRequest, ...grpc.CallOption) (*milvuspb.StringResponse, error)); ok {
return rf(ctx, in, opts...)
}
if rf, ok := ret.Get(0).(func(context.Context, *internalpb.GetTimeTickChannelRequest, ...grpc.CallOption) *milvuspb.StringResponse); ok {
r0 = rf(ctx, in, opts...)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*milvuspb.StringResponse)
}
}
if rf, ok := ret.Get(1).(func(context.Context, *internalpb.GetTimeTickChannelRequest, ...grpc.CallOption) error); ok {
r1 = rf(ctx, in, opts...)
} else {
r1 = ret.Error(1)
}
return r0, r1
}
// MockQueryCoordClient_GetTimeTickChannel_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetTimeTickChannel'
type MockQueryCoordClient_GetTimeTickChannel_Call struct {
*mock.Call
}
// GetTimeTickChannel is a helper method to define mock.On call
// - ctx context.Context
// - in *internalpb.GetTimeTickChannelRequest
// - opts ...grpc.CallOption
func (_e *MockQueryCoordClient_Expecter) GetTimeTickChannel(ctx interface{}, in interface{}, opts ...interface{}) *MockQueryCoordClient_GetTimeTickChannel_Call {
return &MockQueryCoordClient_GetTimeTickChannel_Call{Call: _e.mock.On("GetTimeTickChannel",
append([]interface{}{ctx, in}, opts...)...)}
}
func (_c *MockQueryCoordClient_GetTimeTickChannel_Call) Run(run func(ctx context.Context, in *internalpb.GetTimeTickChannelRequest, opts ...grpc.CallOption)) *MockQueryCoordClient_GetTimeTickChannel_Call {
_c.Call.Run(func(args mock.Arguments) {
variadicArgs := make([]grpc.CallOption, len(args)-2)
for i, a := range args[2:] {
if a != nil {
variadicArgs[i] = a.(grpc.CallOption)
}
}
run(args[0].(context.Context), args[1].(*internalpb.GetTimeTickChannelRequest), variadicArgs...)
})
return _c
}
func (_c *MockQueryCoordClient_GetTimeTickChannel_Call) Return(_a0 *milvuspb.StringResponse, _a1 error) *MockQueryCoordClient_GetTimeTickChannel_Call {
_c.Call.Return(_a0, _a1)
return _c
}
func (_c *MockQueryCoordClient_GetTimeTickChannel_Call) RunAndReturn(run func(context.Context, *internalpb.GetTimeTickChannelRequest, ...grpc.CallOption) (*milvuspb.StringResponse, error)) *MockQueryCoordClient_GetTimeTickChannel_Call {
_c.Call.Return(run)
return _c
}
// ListCheckers provides a mock function with given fields: ctx, in, opts
func (_m *MockQueryCoordClient) ListCheckers(ctx context.Context, in *querypb.ListCheckersRequest, opts ...grpc.CallOption) (*querypb.ListCheckersResponse, error) {
_va := make([]interface{}, len(opts))

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
// Code generated by mockery v2.46.0. DO NOT EDIT.
// Code generated by mockery v2.53.3. DO NOT EDIT.
package mocks
@ -699,7 +699,7 @@ func (_c *MockRootCoordClient_CheckHealth_Call) RunAndReturn(run func(context.Co
return _c
}
// Close provides a mock function with given fields:
// Close provides a mock function with no fields
func (_m *MockRootCoordClient) Close() error {
ret := _m.Called()
@ -2372,6 +2372,80 @@ func (_c *MockRootCoordClient_GetPChannelInfo_Call) RunAndReturn(run func(contex
return _c
}
// GetQuotaMetrics provides a mock function with given fields: ctx, in, opts
func (_m *MockRootCoordClient) GetQuotaMetrics(ctx context.Context, in *internalpb.GetQuotaMetricsRequest, opts ...grpc.CallOption) (*internalpb.GetQuotaMetricsResponse, error) {
_va := make([]interface{}, len(opts))
for _i := range opts {
_va[_i] = opts[_i]
}
var _ca []interface{}
_ca = append(_ca, ctx, in)
_ca = append(_ca, _va...)
ret := _m.Called(_ca...)
if len(ret) == 0 {
panic("no return value specified for GetQuotaMetrics")
}
var r0 *internalpb.GetQuotaMetricsResponse
var r1 error
if rf, ok := ret.Get(0).(func(context.Context, *internalpb.GetQuotaMetricsRequest, ...grpc.CallOption) (*internalpb.GetQuotaMetricsResponse, error)); ok {
return rf(ctx, in, opts...)
}
if rf, ok := ret.Get(0).(func(context.Context, *internalpb.GetQuotaMetricsRequest, ...grpc.CallOption) *internalpb.GetQuotaMetricsResponse); ok {
r0 = rf(ctx, in, opts...)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*internalpb.GetQuotaMetricsResponse)
}
}
if rf, ok := ret.Get(1).(func(context.Context, *internalpb.GetQuotaMetricsRequest, ...grpc.CallOption) error); ok {
r1 = rf(ctx, in, opts...)
} else {
r1 = ret.Error(1)
}
return r0, r1
}
// MockRootCoordClient_GetQuotaMetrics_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetQuotaMetrics'
type MockRootCoordClient_GetQuotaMetrics_Call struct {
*mock.Call
}
// GetQuotaMetrics is a helper method to define mock.On call
// - ctx context.Context
// - in *internalpb.GetQuotaMetricsRequest
// - opts ...grpc.CallOption
func (_e *MockRootCoordClient_Expecter) GetQuotaMetrics(ctx interface{}, in interface{}, opts ...interface{}) *MockRootCoordClient_GetQuotaMetrics_Call {
return &MockRootCoordClient_GetQuotaMetrics_Call{Call: _e.mock.On("GetQuotaMetrics",
append([]interface{}{ctx, in}, opts...)...)}
}
func (_c *MockRootCoordClient_GetQuotaMetrics_Call) Run(run func(ctx context.Context, in *internalpb.GetQuotaMetricsRequest, opts ...grpc.CallOption)) *MockRootCoordClient_GetQuotaMetrics_Call {
_c.Call.Run(func(args mock.Arguments) {
variadicArgs := make([]grpc.CallOption, len(args)-2)
for i, a := range args[2:] {
if a != nil {
variadicArgs[i] = a.(grpc.CallOption)
}
}
run(args[0].(context.Context), args[1].(*internalpb.GetQuotaMetricsRequest), variadicArgs...)
})
return _c
}
func (_c *MockRootCoordClient_GetQuotaMetrics_Call) Return(_a0 *internalpb.GetQuotaMetricsResponse, _a1 error) *MockRootCoordClient_GetQuotaMetrics_Call {
_c.Call.Return(_a0, _a1)
return _c
}
func (_c *MockRootCoordClient_GetQuotaMetrics_Call) RunAndReturn(run func(context.Context, *internalpb.GetQuotaMetricsRequest, ...grpc.CallOption) (*internalpb.GetQuotaMetricsResponse, error)) *MockRootCoordClient_GetQuotaMetrics_Call {
_c.Call.Return(run)
return _c
}
// GetStatisticsChannel provides a mock function with given fields: ctx, in, opts
func (_m *MockRootCoordClient) GetStatisticsChannel(ctx context.Context, in *internalpb.GetStatisticsChannelRequest, opts ...grpc.CallOption) (*milvuspb.StringResponse, error) {
_va := make([]interface{}, len(opts))

View File

@ -4428,7 +4428,7 @@ func (node *Proxy) GetSegmentsInfo(ctx context.Context, req *internalpb.GetSegme
defer func() {
metrics.ProxyFunctionCall.WithLabelValues(nodeID, method, metrics.TotalLabel, req.GetDbName(), collection).Inc()
if resp.GetStatus().GetCode() != 0 {
log.Warn("import failed", zap.String("err", resp.GetStatus().GetReason()))
log.Warn("GetSegmentsInfo failed", zap.String("err", resp.GetStatus().GetReason()))
metrics.ProxyFunctionCall.WithLabelValues(nodeID, method, metrics.FailLabel, req.GetDbName(), collection).Inc()
} else {
metrics.ProxyFunctionCall.WithLabelValues(nodeID, method, metrics.SuccessLabel, req.GetDbName(), collection).Inc()
@ -7112,3 +7112,35 @@ func (node *Proxy) RunAnalyzer(ctx context.Context, req *milvuspb.RunAnalyzerReq
}
return task.result, nil
}
func (node *Proxy) GetQuotaMetrics(ctx context.Context, req *internalpb.GetQuotaMetricsRequest) (*internalpb.GetQuotaMetricsResponse, error) {
ctx, sp := otel.Tracer(typeutil.ProxyRole).Start(ctx, "Proxy-GetQuotaMetrics")
defer sp.End()
log := log.Ctx(ctx)
if err := merr.CheckHealthy(node.GetStateCode()); err != nil {
return &internalpb.GetQuotaMetricsResponse{
Status: merr.Status(err),
}, nil
}
log.Info("receive GetQuotaMetrics request")
metricsResp, err := node.mixCoord.GetQuotaMetrics(ctx, req)
if err != nil {
log.Warn("GetQuotaMetrics fail",
zap.Error(err))
metricsResp.Status = merr.Status(err)
return metricsResp, nil
}
err = merr.Error(metricsResp.GetStatus())
if err != nil {
metricsResp.Status = merr.Status(err)
return metricsResp, nil
}
log.Info("GetQuotaMetrics success", zap.String("metrics", metricsResp.GetMetricsInfo()))
return metricsResp, nil
}

View File

@ -38,7 +38,7 @@ type (
)
// getQuotaMetrics returns ProxyQuotaMetrics.
func getQuotaMetrics() (*metricsinfo.ProxyQuotaMetrics, error) {
func getQuotaMetrics(node *Proxy) (*metricsinfo.ProxyQuotaMetrics, error) {
var err error
rms := make([]metricsinfo.RateMetric, 0)
getRateMetric := func(label string) {
@ -77,14 +77,15 @@ func getQuotaMetrics() (*metricsinfo.ProxyQuotaMetrics, error) {
return nil, err
}
return &metricsinfo.ProxyQuotaMetrics{
Hms: metricsinfo.HardwareMetrics{},
Rms: rms,
Hms: metricsinfo.HardwareMetrics{},
Rms: rms,
QueueMetrics: node.sched.getMetrics(),
}, nil
}
// getProxyMetrics get metrics of Proxy, not including the topological metrics of Query cluster and Data cluster.
func getProxyMetrics(ctx context.Context, request *milvuspb.GetMetricsRequest, node *Proxy) (*milvuspb.GetMetricsResponse, error) {
quotaMetrics, err := getQuotaMetrics()
quotaMetrics, err := getQuotaMetrics(node)
if err != nil {
return nil, err
}

View File

@ -19,6 +19,7 @@ package proxy
import (
"context"
"testing"
"time"
"github.com/stretchr/testify/assert"
@ -41,6 +42,94 @@ func TestProxy_metrics(t *testing.T) {
assert.NotNil(t, resp)
}
func createMockDDQueue() *ddTaskQueue {
q := &ddTaskQueue{
baseTaskQueue: newBaseTaskQueue(nil),
}
q.unissuedTasks.PushBack(&createCollectionTask{
baseTask: baseTask{
onEnqueueTime: time.Now(),
},
})
q.unissuedTasks.PushBack(&createPartitionTask{
baseTask: baseTask{
onEnqueueTime: time.Now(),
},
})
q.activeTasks[1] = &loadCollectionTask{
baseTask: baseTask{
onEnqueueTime: time.Now(),
},
}
return q
}
func createMockDMQueue() *dmTaskQueue {
q := &dmTaskQueue{
baseTaskQueue: newBaseTaskQueue(nil),
}
q.unissuedTasks.PushBack(&insertTask{
baseTask: baseTask{
onEnqueueTime: time.Now(),
},
})
q.unissuedTasks.PushBack(&upsertTask{
baseTask: baseTask{
onEnqueueTime: time.Now(),
},
})
q.activeTasks[1] = &deleteTask{
baseTask: baseTask{
onEnqueueTime: time.Now(),
},
}
return q
}
func createMockDQQueue() *dqTaskQueue {
q := &dqTaskQueue{
baseTaskQueue: newBaseTaskQueue(nil),
}
q.unissuedTasks.PushBack(&queryTask{
baseTask: baseTask{
onEnqueueTime: time.Now(),
},
})
q.unissuedTasks.PushBack(&searchTask{
baseTask: baseTask{
onEnqueueTime: time.Now(),
},
})
q.activeTasks[1] = &queryTask{
baseTask: baseTask{
onEnqueueTime: time.Now(),
},
}
return q
}
func createMockDCQueue() *ddTaskQueue {
q := &ddTaskQueue{
baseTaskQueue: newBaseTaskQueue(nil),
}
q.unissuedTasks.PushBack(&flushTask{
baseTask: baseTask{
onEnqueueTime: time.Now(),
},
})
q.unissuedTasks.PushBack(&flushTask{
baseTask: baseTask{
onEnqueueTime: time.Now(),
},
})
q.activeTasks[1] = &flushTask{
baseTask: baseTask{
onEnqueueTime: time.Now(),
},
}
return q
}
func getMockProxyRequestMetrics() *Proxy {
mixc := NewMixCoordMock()
defer mixc.Close()
@ -48,6 +137,12 @@ func getMockProxyRequestMetrics() *Proxy {
proxy := &Proxy{
mixCoord: mixc,
session: &sessionutil.Session{SessionRaw: sessionutil.SessionRaw{Address: funcutil.GenRandomStr()}},
sched: &taskScheduler{
ddQueue: createMockDDQueue(),
dmQueue: createMockDMQueue(),
dqQueue: createMockDQQueue(),
dcQueue: createMockDCQueue(),
},
}
mixc.getMetricsFunc = func(ctx context.Context, request *milvuspb.GetMetricsRequest) (*milvuspb.GetMetricsResponse, error) {

View File

@ -1615,6 +1615,10 @@ func (coord *MixCoordMock) GetRecoveryInfoV2(ctx context.Context, in *datapb.Get
func (coord *MixCoordMock) Search() {
}
func (coord *MixCoordMock) GetQuotaMetrics(ctx context.Context, in *internalpb.GetQuotaMetricsRequest, opts ...grpc.CallOption) (*internalpb.GetQuotaMetricsResponse, error) {
return &internalpb.GetQuotaMetricsResponse{}, nil
}
type DescribeCollectionFunc func(ctx context.Context, request *milvuspb.DescribeCollectionRequest, opts ...grpc.CallOption) (*milvuspb.DescribeCollectionResponse, error)
type ShowPartitionsFunc func(ctx context.Context, request *milvuspb.ShowPartitionsRequest, opts ...grpc.CallOption) (*milvuspb.ShowPartitionsResponse, error)

View File

@ -144,10 +144,13 @@ type task interface {
SetOnEnqueueTime()
GetDurationInQueue() time.Duration
IsSubTask() bool
SetExecutingTime()
GetDurationInExecuting() time.Duration
}
type baseTask struct {
onEnqueueTime time.Time
executingTime time.Time
}
func (bt *baseTask) CanSkipAllocTimestamp() bool {
@ -166,6 +169,14 @@ func (bt *baseTask) IsSubTask() bool {
return false
}
func (bt *baseTask) SetExecutingTime() {
bt.executingTime = time.Now()
}
func (bt *baseTask) GetDurationInExecuting() time.Duration {
return time.Since(bt.executingTime)
}
type dmlTask interface {
task
setChannels() error

View File

@ -19,6 +19,7 @@ package proxy
import (
"container/list"
"context"
"math"
"strconv"
"sync"
"time"
@ -31,6 +32,7 @@ import (
"github.com/milvus-io/milvus/pkg/v2/mq/msgstream"
"github.com/milvus-io/milvus/pkg/v2/util/conc"
"github.com/milvus-io/milvus/pkg/v2/util/merr"
"github.com/milvus-io/milvus/pkg/v2/util/metricsinfo"
"github.com/milvus-io/milvus/pkg/v2/util/paramtable"
"github.com/milvus-io/milvus/pkg/v2/util/tsoutil"
"github.com/milvus-io/milvus/pkg/v2/util/typeutil"
@ -131,6 +133,7 @@ func (queue *baseTaskQueue) AddActiveTask(t task) {
}
queue.activeTasks[tID] = t
t.SetExecutingTime()
}
func (queue *baseTaskQueue) PopActiveTask(taskID UniqueID) task {
@ -650,3 +653,114 @@ func (sched *taskScheduler) Close() {
func (sched *taskScheduler) getPChanStatistics() (map[pChan]*pChanStatistics, error) {
return sched.dmQueue.getPChanStatsInfo()
}
func (sched *taskScheduler) getTaskQueueMetrics(queue *baseTaskQueue, queueType string) metricsinfo.TaskQueueMetrics {
pendingTaskStats := make(map[string]*TaskStatsTracker, 0)
executingTaskStats := make(map[string]*TaskStatsTracker, 0)
queue.atLock.RLock()
atNum := len(queue.activeTasks)
for _, task := range queue.activeTasks {
taskType := task.Name()
executingTime := task.GetDurationInExecuting().Milliseconds()
tracker, ok := executingTaskStats[taskType]
if !ok {
tracker = NewTaskStatsTracker(taskType)
executingTaskStats[taskType] = tracker
}
tracker.AddSample(executingTime)
}
executingTaskMetrics := make([]metricsinfo.TaskMetrics, 0, len(executingTaskStats))
for _, tracker := range executingTaskStats {
executingTaskMetrics = append(executingTaskMetrics, metricsinfo.TaskMetrics{
Type: tracker.TaskType,
MaxQueueTime: tracker.MaxQueueTime,
MinQueueTime: tracker.MinQueueTime,
AvgQueueTime: tracker.AvgQueueTime(),
Count: tracker.Count,
})
}
queue.atLock.RUnlock()
queue.utLock.RLock()
defer queue.utLock.RUnlock()
utNum := queue.unissuedTasks.Len()
for e := queue.unissuedTasks.Front(); e != nil; e = e.Next() {
task := e.Value.(task)
taskType := task.Name()
queueTimeMs := task.GetDurationInQueue().Milliseconds()
tracker, ok := pendingTaskStats[taskType]
if !ok {
tracker = NewTaskStatsTracker(taskType)
pendingTaskStats[taskType] = tracker
}
tracker.AddSample(queueTimeMs)
}
pendingTaskMetrics := make([]metricsinfo.TaskMetrics, 0, len(pendingTaskStats))
for _, tracker := range pendingTaskStats {
pendingTaskMetrics = append(pendingTaskMetrics, metricsinfo.TaskMetrics{
Type: tracker.TaskType,
MaxQueueTime: tracker.MaxQueueTime,
MinQueueTime: tracker.MinQueueTime,
AvgQueueTime: tracker.AvgQueueTime(),
Count: tracker.Count,
})
}
return metricsinfo.TaskQueueMetrics{
Type: queueType,
PendingCount: int64(utNum),
ExecutingCount: int64(atNum),
PendingTasks: pendingTaskMetrics,
ExecutingTasks: executingTaskMetrics,
}
}
type TaskStatsTracker struct {
TaskType string
MaxQueueTime int64
MinQueueTime int64
TotalQueueTime int64
Count int64
}
func NewTaskStatsTracker(taskType string) *TaskStatsTracker {
return &TaskStatsTracker{
TaskType: taskType,
MaxQueueTime: 0,
MinQueueTime: math.MaxInt64,
TotalQueueTime: 0,
Count: 0,
}
}
func (t *TaskStatsTracker) AddSample(queueTimeMs int64) {
t.MaxQueueTime = max(t.MaxQueueTime, queueTimeMs)
t.MinQueueTime = min(t.MinQueueTime, queueTimeMs)
t.TotalQueueTime += queueTimeMs
t.Count++
}
func (t *TaskStatsTracker) AvgQueueTime() int64 {
if t.Count == 0 {
return 0
}
return t.TotalQueueTime / t.Count
}
func (sched *taskScheduler) getMetrics() []metricsinfo.TaskQueueMetrics {
dmlQueueMetrics := sched.getTaskQueueMetrics(sched.dmQueue.baseTaskQueue, "dml")
ddlQueueMetrics := sched.getTaskQueueMetrics(sched.ddQueue.baseTaskQueue, "ddl")
dqlQueueMetrics := sched.getTaskQueueMetrics(sched.dqQueue.baseTaskQueue, "dql")
dcQueueMetrics := sched.getTaskQueueMetrics(sched.dcQueue.baseTaskQueue, "dc")
return []metricsinfo.TaskQueueMetrics{
dmlQueueMetrics,
ddlQueueMetrics,
dqlQueueMetrics,
dcQueueMetrics,
}
}

View File

@ -628,13 +628,6 @@ func (suite *ServerSuite) hackBroker(server *Server) {
},
Status: merr.Success(),
}, nil).Maybe()
mockDataCoord := coordMocks.NewMockDataCoordClient(suite.T())
mockDataCoord.EXPECT().GetComponentStates(mock.Anything, mock.Anything).Return(&milvuspb.ComponentStates{
State: &milvuspb.ComponentInfo{
StateCode: commonpb.StateCode_Healthy,
},
Status: merr.Success(),
}, nil).Maybe()
for _, collection := range suite.collections {
mockRootCoord.EXPECT().DescribeCollection(mock.Anything, mock.Anything).Return(&milvuspb.DescribeCollectionResponse{

View File

@ -140,6 +140,53 @@ func (_c *MockShardDelegator_Collection_Call) RunAndReturn(run func() int64) *Mo
return _c
}
// GetChannelQueryView provides a mock function with no fields
func (_m *MockShardDelegator) GetChannelQueryView() *channelQueryView {
ret := _m.Called()
if len(ret) == 0 {
panic("no return value specified for GetChannelQueryView")
}
var r0 *channelQueryView
if rf, ok := ret.Get(0).(func() *channelQueryView); ok {
r0 = rf()
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*channelQueryView)
}
}
return r0
}
// MockShardDelegator_GetChannelQueryView_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetChannelQueryView'
type MockShardDelegator_GetChannelQueryView_Call struct {
*mock.Call
}
// GetChannelQueryView is a helper method to define mock.On call
func (_e *MockShardDelegator_Expecter) GetChannelQueryView() *MockShardDelegator_GetChannelQueryView_Call {
return &MockShardDelegator_GetChannelQueryView_Call{Call: _e.mock.On("GetChannelQueryView")}
}
func (_c *MockShardDelegator_GetChannelQueryView_Call) Run(run func()) *MockShardDelegator_GetChannelQueryView_Call {
_c.Call.Run(func(args mock.Arguments) {
run()
})
return _c
}
func (_c *MockShardDelegator_GetChannelQueryView_Call) Return(_a0 *channelQueryView) *MockShardDelegator_GetChannelQueryView_Call {
_c.Call.Return(_a0)
return _c
}
func (_c *MockShardDelegator_GetChannelQueryView_Call) RunAndReturn(run func() *channelQueryView) *MockShardDelegator_GetChannelQueryView_Call {
_c.Call.Return(run)
return _c
}
// GetDeleteBufferSize provides a mock function with no fields
func (_m *MockShardDelegator) GetDeleteBufferSize() (int64, int64) {
ret := _m.Called()
@ -243,53 +290,6 @@ func (_c *MockShardDelegator_GetPartitionStatsVersions_Call) RunAndReturn(run fu
return _c
}
// GetChannelQueryView provides a mock function with no fields
func (_m *MockShardDelegator) GetChannelQueryView() *channelQueryView {
ret := _m.Called()
if len(ret) == 0 {
panic("no return value specified for GetChannelQueryView")
}
var r0 *channelQueryView
if rf, ok := ret.Get(0).(func() *channelQueryView); ok {
r0 = rf()
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*channelQueryView)
}
}
return r0
}
// MockShardDelegator_GetChannelQueryView_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetChannelQueryView'
type MockShardDelegator_GetChannelQueryView_Call struct {
*mock.Call
}
// GetChannelQueryView is a helper method to define mock.On call
func (_e *MockShardDelegator_Expecter) GetChannelQueryView() *MockShardDelegator_GetChannelQueryView_Call {
return &MockShardDelegator_GetChannelQueryView_Call{Call: _e.mock.On("GetChannelQueryView")}
}
func (_c *MockShardDelegator_GetChannelQueryView_Call) Run(run func()) *MockShardDelegator_GetChannelQueryView_Call {
_c.Call.Run(func(args mock.Arguments) {
run()
})
return _c
}
func (_c *MockShardDelegator_GetChannelQueryView_Call) Return(_a0 *channelQueryView) *MockShardDelegator_GetChannelQueryView_Call {
_c.Call.Return(_a0)
return _c
}
func (_c *MockShardDelegator_GetChannelQueryView_Call) RunAndReturn(run func() *channelQueryView) *MockShardDelegator_GetChannelQueryView_Call {
_c.Call.Return(run)
return _c
}
// GetSegmentInfo provides a mock function with given fields: readable
func (_m *MockShardDelegator) GetSegmentInfo(readable bool) ([]SnapshotItem, []SegmentEntry) {
ret := _m.Called(readable)

View File

@ -45,6 +45,7 @@ import (
"github.com/milvus-io/milvus/pkg/v2/proto/internalpb"
"github.com/milvus-io/milvus/pkg/v2/proto/proxypb"
"github.com/milvus-io/milvus/pkg/v2/util/commonpbutil"
"github.com/milvus-io/milvus/pkg/v2/util/merr"
"github.com/milvus-io/milvus/pkg/v2/util/metricsinfo"
"github.com/milvus-io/milvus/pkg/v2/util/paramtable"
"github.com/milvus-io/milvus/pkg/v2/util/ratelimitutil"
@ -143,12 +144,14 @@ type QuotaCenter struct {
mixCoord types.MixCoord
meta IMetaTable
lock sync.RWMutex
// metrics
queryNodeMetrics map[UniqueID]*metricsinfo.QueryNodeQuotaMetrics
dataNodeMetrics map[UniqueID]*metricsinfo.DataNodeQuotaMetrics
proxyMetrics map[UniqueID]*metricsinfo.ProxyQuotaMetrics
diskMu sync.Mutex // guards dataCoordMetrics and totalBinlogSize
dataCoordMetrics *metricsinfo.DataCoordQuotaMetrics
diskMu sync.Mutex // guards dataCoordMetrics and totalBinlogSize
totalBinlogSize int64
readableCollections map[int64]map[int64][]int64 // db id -> collection id -> partition id
@ -180,6 +183,7 @@ func NewQuotaCenter(proxies proxyutil.ProxyClientManagerInterface, mixCoord type
ctx: ctx,
cancel: cancel,
proxies: proxies,
lock: sync.RWMutex{},
mixCoord: mixCoord,
tsoAllocator: tsoAllocator,
meta: meta,
@ -388,6 +392,9 @@ func SplitCollectionKey(key string) (dbID int64, collectionName string) {
// collectMetrics sends GetMetrics requests to DataCoord and QueryCoord to sync the metrics in DataNodes and QueryNodes.
func (q *QuotaCenter) collectMetrics() error {
q.lock.Lock()
defer q.lock.Unlock()
oldDataNodes := typeutil.NewSet(lo.Keys(q.dataNodeMetrics)...)
oldQueryNodes := typeutil.NewSet(lo.Keys(q.queryNodeMetrics)...)
q.clearMetrics()
@ -1594,3 +1601,27 @@ func (q *QuotaCenter) diskAllowance(collection UniqueID) float64 {
allowance = math.Min(allowance, totalDiskQuota-float64(q.totalBinlogSize))
return allowance
}
func (q *QuotaCenter) getQuotaMetrics() *internalpb.GetQuotaMetricsResponse {
q.lock.RLock()
defer q.lock.RUnlock()
quotaCenterMetrics := &metricsinfo.QuotaCenterMetrics{
QueryNodeMetrics: q.queryNodeMetrics,
DataNodeMetrics: q.dataNodeMetrics,
ProxyMetrics: q.proxyMetrics,
DataCoordMetrics: q.dataCoordMetrics,
}
responseString, err := metricsinfo.MarshalComponentInfos(quotaCenterMetrics)
if err != nil {
log.Warn("failed to marshal quota center metrics", zap.Error(err))
return &internalpb.GetQuotaMetricsResponse{
Status: merr.Status(err),
}
}
return &internalpb.GetQuotaMetricsResponse{
Status: merr.Status(nil),
MetricsInfo: responseString,
}
}

View File

@ -1734,6 +1734,14 @@ func TestCheckDiskQuota(t *testing.T) {
checkRate(quotaCenter.rateLimiter.GetPartitionLimiters(4, 40, 400), configQuotaValue)
}
})
t.Run("get quota center metrics", func(t *testing.T) {
meta := mockrootcoord.NewIMetaTable(t)
quotaCenter := newQuotaCenterForTesting(t, ctx, meta)
metrics := quotaCenter.getQuotaMetrics()
assert.Equal(t, commonpb.ErrorCode_Success, metrics.Status.ErrorCode)
assert.NotEqual(t, "", metrics.MetricsInfo)
})
}
func TestTORequestLimiter(t *testing.T) {

View File

@ -3364,3 +3364,7 @@ func isVisibleCollectionForCurUser(collectionName string, visibleCollections typ
}
return visibleCollections.Contain(collectionName)
}
func (c *Core) GetQuotaMetrics(ctx context.Context, req *internalpb.GetQuotaMetricsRequest) (*internalpb.GetQuotaMetricsResponse, error) {
return c.quotaCenter.getQuotaMetrics(), nil
}

View File

@ -305,3 +305,7 @@ func (m *GrpcRootCoordClient) OperatePrivilegeGroup(ctx context.Context, in *mil
func (m *GrpcRootCoordClient) Close() error {
return nil
}
func (m *GrpcRootCoordClient) GetQuotaMetrics(ctx context.Context, in *internalpb.GetQuotaMetricsRequest, opts ...grpc.CallOption) (*internalpb.GetQuotaMetricsResponse, error) {
return &internalpb.GetQuotaMetricsResponse{}, m.Err
}

View File

@ -434,3 +434,12 @@ message GetSegmentsInfoResponse {
common.Status status = 1;
repeated SegmentInfo segmentInfos = 2;
}
message GetQuotaMetricsRequest {
common.MsgBase base = 1;
}
message GetQuotaMetricsResponse {
common.Status status = 1;
string metrics_info = 2;
}

View File

@ -3884,6 +3884,108 @@ func (x *GetSegmentsInfoResponse) GetSegmentInfos() []*SegmentInfo {
return nil
}
type GetQuotaMetricsRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
}
func (x *GetQuotaMetricsRequest) Reset() {
*x = GetQuotaMetricsRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_internal_proto_msgTypes[44]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetQuotaMetricsRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetQuotaMetricsRequest) ProtoMessage() {}
func (x *GetQuotaMetricsRequest) ProtoReflect() protoreflect.Message {
mi := &file_internal_proto_msgTypes[44]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GetQuotaMetricsRequest.ProtoReflect.Descriptor instead.
func (*GetQuotaMetricsRequest) Descriptor() ([]byte, []int) {
return file_internal_proto_rawDescGZIP(), []int{44}
}
func (x *GetQuotaMetricsRequest) GetBase() *commonpb.MsgBase {
if x != nil {
return x.Base
}
return nil
}
type GetQuotaMetricsResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
MetricsInfo string `protobuf:"bytes,2,opt,name=metrics_info,json=metricsInfo,proto3" json:"metrics_info,omitempty"`
}
func (x *GetQuotaMetricsResponse) Reset() {
*x = GetQuotaMetricsResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_internal_proto_msgTypes[45]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetQuotaMetricsResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetQuotaMetricsResponse) ProtoMessage() {}
func (x *GetQuotaMetricsResponse) ProtoReflect() protoreflect.Message {
mi := &file_internal_proto_msgTypes[45]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GetQuotaMetricsResponse.ProtoReflect.Descriptor instead.
func (*GetQuotaMetricsResponse) Descriptor() ([]byte, []int) {
return file_internal_proto_rawDescGZIP(), []int{45}
}
func (x *GetQuotaMetricsResponse) GetStatus() *commonpb.Status {
if x != nil {
return x.Status
}
return nil
}
func (x *GetQuotaMetricsResponse) GetMetricsInfo() string {
if x != nil {
return x.MetricsInfo
}
return ""
}
var File_internal_proto protoreflect.FileDescriptor
var file_internal_proto_rawDesc = []byte{
@ -4564,36 +4666,48 @@ var file_internal_proto_rawDesc = []byte{
0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x53, 0x65,
0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x73, 0x65, 0x67, 0x6d, 0x65,
0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x2a, 0x45, 0x0a, 0x09, 0x52, 0x61, 0x74, 0x65, 0x53,
0x63, 0x6f, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x10,
0x00, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x10, 0x01, 0x12,
0x0e, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x02, 0x12,
0x0d, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x03, 0x2a, 0xc4,
0x01, 0x0a, 0x08, 0x52, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x44,
0x44, 0x4c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x00, 0x12, 0x10,
0x0a, 0x0c, 0x44, 0x44, 0x4c, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01,
0x12, 0x0c, 0x0a, 0x08, 0x44, 0x44, 0x4c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x10, 0x02, 0x12, 0x0c,
0x0a, 0x08, 0x44, 0x44, 0x4c, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d,
0x44, 0x44, 0x4c, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x04, 0x12,
0x0d, 0x0a, 0x09, 0x44, 0x4d, 0x4c, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x10, 0x05, 0x12, 0x0d,
0x0a, 0x09, 0x44, 0x4d, 0x4c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x06, 0x12, 0x0f, 0x0a,
0x0b, 0x44, 0x4d, 0x4c, 0x42, 0x75, 0x6c, 0x6b, 0x4c, 0x6f, 0x61, 0x64, 0x10, 0x07, 0x12, 0x0d,
0x0a, 0x09, 0x44, 0x51, 0x4c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x10, 0x08, 0x12, 0x0c, 0x0a,
0x08, 0x44, 0x51, 0x4c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x10, 0x09, 0x12, 0x0d, 0x0a, 0x09, 0x44,
0x4d, 0x4c, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x10, 0x0a, 0x12, 0x09, 0x0a, 0x05, 0x44, 0x44,
0x4c, 0x44, 0x42, 0x10, 0x0b, 0x2a, 0x81, 0x01, 0x0a, 0x0e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74,
0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x6f, 0x6e, 0x65,
0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x12,
0x10, 0x0a, 0x0c, 0x50, 0x72, 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x10,
0x02, 0x12, 0x0d, 0x0a, 0x09, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x03,
0x12, 0x0a, 0x0a, 0x06, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09,
0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x49,
0x6e, 0x64, 0x65, 0x78, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x10, 0x06, 0x12, 0x09,
0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x73, 0x10, 0x07, 0x42, 0x35, 0x5a, 0x33, 0x67, 0x69, 0x74,
0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2d, 0x69,
0x6f, 0x2f, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x76, 0x32, 0x2f,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x70, 0x62,
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0x4a, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x51, 0x75,
0x6f, 0x74, 0x61, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63,
0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62,
0x61, 0x73, 0x65, 0x22, 0x71, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x4d,
0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33,
0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b,
0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f,
0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61,
0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x69,
0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69,
0x63, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2a, 0x45, 0x0a, 0x09, 0x52, 0x61, 0x74, 0x65, 0x53, 0x63,
0x6f, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x10, 0x00,
0x12, 0x0c, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x10, 0x01, 0x12, 0x0e,
0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x02, 0x12, 0x0d,
0x0a, 0x09, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x03, 0x2a, 0xc4, 0x01,
0x0a, 0x08, 0x52, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x44,
0x4c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x00, 0x12, 0x10, 0x0a,
0x0c, 0x44, 0x44, 0x4c, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x12,
0x0c, 0x0a, 0x08, 0x44, 0x44, 0x4c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x10, 0x02, 0x12, 0x0c, 0x0a,
0x08, 0x44, 0x44, 0x4c, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x44,
0x44, 0x4c, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x04, 0x12, 0x0d,
0x0a, 0x09, 0x44, 0x4d, 0x4c, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x10, 0x05, 0x12, 0x0d, 0x0a,
0x09, 0x44, 0x4d, 0x4c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b,
0x44, 0x4d, 0x4c, 0x42, 0x75, 0x6c, 0x6b, 0x4c, 0x6f, 0x61, 0x64, 0x10, 0x07, 0x12, 0x0d, 0x0a,
0x09, 0x44, 0x51, 0x4c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x10, 0x08, 0x12, 0x0c, 0x0a, 0x08,
0x44, 0x51, 0x4c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x10, 0x09, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x4d,
0x4c, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x10, 0x0a, 0x12, 0x09, 0x0a, 0x05, 0x44, 0x44, 0x4c,
0x44, 0x42, 0x10, 0x0b, 0x2a, 0x81, 0x01, 0x0a, 0x0e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4a,
0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x6f, 0x6e, 0x65, 0x10,
0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x12, 0x10,
0x0a, 0x0c, 0x50, 0x72, 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x02,
0x12, 0x0d, 0x0a, 0x09, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x03, 0x12,
0x0a, 0x0a, 0x06, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x43,
0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x49, 0x6e,
0x64, 0x65, 0x78, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x10, 0x06, 0x12, 0x09, 0x0a,
0x05, 0x53, 0x74, 0x61, 0x74, 0x73, 0x10, 0x07, 0x42, 0x35, 0x5a, 0x33, 0x67, 0x69, 0x74, 0x68,
0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2d, 0x69, 0x6f,
0x2f, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x76, 0x32, 0x2f, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x70, 0x62, 0x62,
0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@ -4609,7 +4723,7 @@ func file_internal_proto_rawDescGZIP() []byte {
}
var file_internal_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
var file_internal_proto_msgTypes = make([]protoimpl.MessageInfo, 45)
var file_internal_proto_msgTypes = make([]protoimpl.MessageInfo, 47)
var file_internal_proto_goTypes = []interface{}{
(RateScope)(0), // 0: milvus.proto.internal.RateScope
(RateType)(0), // 1: milvus.proto.internal.RateType
@ -4658,85 +4772,89 @@ var file_internal_proto_goTypes = []interface{}{
(*FieldBinlog)(nil), // 44: milvus.proto.internal.FieldBinlog
(*SegmentInfo)(nil), // 45: milvus.proto.internal.SegmentInfo
(*GetSegmentsInfoResponse)(nil), // 46: milvus.proto.internal.GetSegmentsInfoResponse
nil, // 47: milvus.proto.internal.SearchResults.ChannelsMvccEntry
(*commonpb.Address)(nil), // 48: milvus.proto.common.Address
(*commonpb.KeyValuePair)(nil), // 49: milvus.proto.common.KeyValuePair
(*commonpb.Status)(nil), // 50: milvus.proto.common.Status
(*commonpb.MsgBase)(nil), // 51: milvus.proto.common.MsgBase
(commonpb.DslType)(0), // 52: milvus.proto.common.DslType
(commonpb.ConsistencyLevel)(0), // 53: milvus.proto.common.ConsistencyLevel
(*schemapb.IDs)(nil), // 54: milvus.proto.schema.IDs
(*schemapb.FieldData)(nil), // 55: milvus.proto.schema.FieldData
(*milvuspb.PrivilegeGroupInfo)(nil), // 56: milvus.proto.milvus.PrivilegeGroupInfo
(*schemapb.CollectionSchema)(nil), // 57: milvus.proto.schema.CollectionSchema
(commonpb.SegmentState)(0), // 58: milvus.proto.common.SegmentState
(commonpb.SegmentLevel)(0), // 59: milvus.proto.common.SegmentLevel
(*GetQuotaMetricsRequest)(nil), // 47: milvus.proto.internal.GetQuotaMetricsRequest
(*GetQuotaMetricsResponse)(nil), // 48: milvus.proto.internal.GetQuotaMetricsResponse
nil, // 49: milvus.proto.internal.SearchResults.ChannelsMvccEntry
(*commonpb.Address)(nil), // 50: milvus.proto.common.Address
(*commonpb.KeyValuePair)(nil), // 51: milvus.proto.common.KeyValuePair
(*commonpb.Status)(nil), // 52: milvus.proto.common.Status
(*commonpb.MsgBase)(nil), // 53: milvus.proto.common.MsgBase
(commonpb.DslType)(0), // 54: milvus.proto.common.DslType
(commonpb.ConsistencyLevel)(0), // 55: milvus.proto.common.ConsistencyLevel
(*schemapb.IDs)(nil), // 56: milvus.proto.schema.IDs
(*schemapb.FieldData)(nil), // 57: milvus.proto.schema.FieldData
(*milvuspb.PrivilegeGroupInfo)(nil), // 58: milvus.proto.milvus.PrivilegeGroupInfo
(*schemapb.CollectionSchema)(nil), // 59: milvus.proto.schema.CollectionSchema
(commonpb.SegmentState)(0), // 60: milvus.proto.common.SegmentState
(commonpb.SegmentLevel)(0), // 61: milvus.proto.common.SegmentLevel
}
var file_internal_proto_depIdxs = []int32{
48, // 0: milvus.proto.internal.NodeInfo.address:type_name -> milvus.proto.common.Address
49, // 1: milvus.proto.internal.InitParams.start_params:type_name -> milvus.proto.common.KeyValuePair
50, // 2: milvus.proto.internal.StringList.status:type_name -> milvus.proto.common.Status
51, // 3: milvus.proto.internal.GetStatisticsRequest.base:type_name -> milvus.proto.common.MsgBase
51, // 4: milvus.proto.internal.GetStatisticsResponse.base:type_name -> milvus.proto.common.MsgBase
50, // 5: milvus.proto.internal.GetStatisticsResponse.status:type_name -> milvus.proto.common.Status
49, // 6: milvus.proto.internal.GetStatisticsResponse.stats:type_name -> milvus.proto.common.KeyValuePair
51, // 7: milvus.proto.internal.CreateAliasRequest.base:type_name -> milvus.proto.common.MsgBase
51, // 8: milvus.proto.internal.DropAliasRequest.base:type_name -> milvus.proto.common.MsgBase
51, // 9: milvus.proto.internal.AlterAliasRequest.base:type_name -> milvus.proto.common.MsgBase
51, // 10: milvus.proto.internal.CreateIndexRequest.base:type_name -> milvus.proto.common.MsgBase
49, // 11: milvus.proto.internal.CreateIndexRequest.extra_params:type_name -> milvus.proto.common.KeyValuePair
52, // 12: milvus.proto.internal.SubSearchRequest.dsl_type:type_name -> milvus.proto.common.DslType
51, // 13: milvus.proto.internal.SearchRequest.base:type_name -> milvus.proto.common.MsgBase
52, // 14: milvus.proto.internal.SearchRequest.dsl_type:type_name -> milvus.proto.common.DslType
50, // 0: milvus.proto.internal.NodeInfo.address:type_name -> milvus.proto.common.Address
51, // 1: milvus.proto.internal.InitParams.start_params:type_name -> milvus.proto.common.KeyValuePair
52, // 2: milvus.proto.internal.StringList.status:type_name -> milvus.proto.common.Status
53, // 3: milvus.proto.internal.GetStatisticsRequest.base:type_name -> milvus.proto.common.MsgBase
53, // 4: milvus.proto.internal.GetStatisticsResponse.base:type_name -> milvus.proto.common.MsgBase
52, // 5: milvus.proto.internal.GetStatisticsResponse.status:type_name -> milvus.proto.common.Status
51, // 6: milvus.proto.internal.GetStatisticsResponse.stats:type_name -> milvus.proto.common.KeyValuePair
53, // 7: milvus.proto.internal.CreateAliasRequest.base:type_name -> milvus.proto.common.MsgBase
53, // 8: milvus.proto.internal.DropAliasRequest.base:type_name -> milvus.proto.common.MsgBase
53, // 9: milvus.proto.internal.AlterAliasRequest.base:type_name -> milvus.proto.common.MsgBase
53, // 10: milvus.proto.internal.CreateIndexRequest.base:type_name -> milvus.proto.common.MsgBase
51, // 11: milvus.proto.internal.CreateIndexRequest.extra_params:type_name -> milvus.proto.common.KeyValuePair
54, // 12: milvus.proto.internal.SubSearchRequest.dsl_type:type_name -> milvus.proto.common.DslType
53, // 13: milvus.proto.internal.SearchRequest.base:type_name -> milvus.proto.common.MsgBase
54, // 14: milvus.proto.internal.SearchRequest.dsl_type:type_name -> milvus.proto.common.DslType
15, // 15: milvus.proto.internal.SearchRequest.sub_reqs:type_name -> milvus.proto.internal.SubSearchRequest
53, // 16: milvus.proto.internal.SearchRequest.consistency_level:type_name -> milvus.proto.common.ConsistencyLevel
51, // 17: milvus.proto.internal.SearchResults.base:type_name -> milvus.proto.common.MsgBase
50, // 18: milvus.proto.internal.SearchResults.status:type_name -> milvus.proto.common.Status
55, // 16: milvus.proto.internal.SearchRequest.consistency_level:type_name -> milvus.proto.common.ConsistencyLevel
53, // 17: milvus.proto.internal.SearchResults.base:type_name -> milvus.proto.common.MsgBase
52, // 18: milvus.proto.internal.SearchResults.status:type_name -> milvus.proto.common.Status
19, // 19: milvus.proto.internal.SearchResults.costAggregation:type_name -> milvus.proto.internal.CostAggregation
47, // 20: milvus.proto.internal.SearchResults.channels_mvcc:type_name -> milvus.proto.internal.SearchResults.ChannelsMvccEntry
49, // 20: milvus.proto.internal.SearchResults.channels_mvcc:type_name -> milvus.proto.internal.SearchResults.ChannelsMvccEntry
17, // 21: milvus.proto.internal.SearchResults.sub_results:type_name -> milvus.proto.internal.SubSearchResults
51, // 22: milvus.proto.internal.RetrieveRequest.base:type_name -> milvus.proto.common.MsgBase
53, // 23: milvus.proto.internal.RetrieveRequest.consistency_level:type_name -> milvus.proto.common.ConsistencyLevel
51, // 24: milvus.proto.internal.RetrieveResults.base:type_name -> milvus.proto.common.MsgBase
50, // 25: milvus.proto.internal.RetrieveResults.status:type_name -> milvus.proto.common.Status
54, // 26: milvus.proto.internal.RetrieveResults.ids:type_name -> milvus.proto.schema.IDs
55, // 27: milvus.proto.internal.RetrieveResults.fields_data:type_name -> milvus.proto.schema.FieldData
53, // 22: milvus.proto.internal.RetrieveRequest.base:type_name -> milvus.proto.common.MsgBase
55, // 23: milvus.proto.internal.RetrieveRequest.consistency_level:type_name -> milvus.proto.common.ConsistencyLevel
53, // 24: milvus.proto.internal.RetrieveResults.base:type_name -> milvus.proto.common.MsgBase
52, // 25: milvus.proto.internal.RetrieveResults.status:type_name -> milvus.proto.common.Status
56, // 26: milvus.proto.internal.RetrieveResults.ids:type_name -> milvus.proto.schema.IDs
57, // 27: milvus.proto.internal.RetrieveResults.fields_data:type_name -> milvus.proto.schema.FieldData
19, // 28: milvus.proto.internal.RetrieveResults.costAggregation:type_name -> milvus.proto.internal.CostAggregation
51, // 29: milvus.proto.internal.LoadIndex.base:type_name -> milvus.proto.common.MsgBase
49, // 30: milvus.proto.internal.LoadIndex.index_params:type_name -> milvus.proto.common.KeyValuePair
49, // 31: milvus.proto.internal.IndexStats.index_params:type_name -> milvus.proto.common.KeyValuePair
53, // 29: milvus.proto.internal.LoadIndex.base:type_name -> milvus.proto.common.MsgBase
51, // 30: milvus.proto.internal.LoadIndex.index_params:type_name -> milvus.proto.common.KeyValuePair
51, // 31: milvus.proto.internal.IndexStats.index_params:type_name -> milvus.proto.common.KeyValuePair
23, // 32: milvus.proto.internal.FieldStats.index_stats:type_name -> milvus.proto.internal.IndexStats
51, // 33: milvus.proto.internal.ChannelTimeTickMsg.base:type_name -> milvus.proto.common.MsgBase
51, // 34: milvus.proto.internal.ListPolicyRequest.base:type_name -> milvus.proto.common.MsgBase
50, // 35: milvus.proto.internal.ListPolicyResponse.status:type_name -> milvus.proto.common.Status
56, // 36: milvus.proto.internal.ListPolicyResponse.privilege_groups:type_name -> milvus.proto.milvus.PrivilegeGroupInfo
51, // 37: milvus.proto.internal.ShowConfigurationsRequest.base:type_name -> milvus.proto.common.MsgBase
50, // 38: milvus.proto.internal.ShowConfigurationsResponse.status:type_name -> milvus.proto.common.Status
49, // 39: milvus.proto.internal.ShowConfigurationsResponse.configuations:type_name -> milvus.proto.common.KeyValuePair
53, // 33: milvus.proto.internal.ChannelTimeTickMsg.base:type_name -> milvus.proto.common.MsgBase
53, // 34: milvus.proto.internal.ListPolicyRequest.base:type_name -> milvus.proto.common.MsgBase
52, // 35: milvus.proto.internal.ListPolicyResponse.status:type_name -> milvus.proto.common.Status
58, // 36: milvus.proto.internal.ListPolicyResponse.privilege_groups:type_name -> milvus.proto.milvus.PrivilegeGroupInfo
53, // 37: milvus.proto.internal.ShowConfigurationsRequest.base:type_name -> milvus.proto.common.MsgBase
52, // 38: milvus.proto.internal.ShowConfigurationsResponse.status:type_name -> milvus.proto.common.Status
51, // 39: milvus.proto.internal.ShowConfigurationsResponse.configuations:type_name -> milvus.proto.common.KeyValuePair
1, // 40: milvus.proto.internal.Rate.rt:type_name -> milvus.proto.internal.RateType
57, // 41: milvus.proto.internal.ImportRequestInternal.schema:type_name -> milvus.proto.schema.CollectionSchema
59, // 41: milvus.proto.internal.ImportRequestInternal.schema:type_name -> milvus.proto.schema.CollectionSchema
33, // 42: milvus.proto.internal.ImportRequestInternal.files:type_name -> milvus.proto.internal.ImportFile
49, // 43: milvus.proto.internal.ImportRequestInternal.options:type_name -> milvus.proto.common.KeyValuePair
51, // 43: milvus.proto.internal.ImportRequestInternal.options:type_name -> milvus.proto.common.KeyValuePair
33, // 44: milvus.proto.internal.ImportRequest.files:type_name -> milvus.proto.internal.ImportFile
49, // 45: milvus.proto.internal.ImportRequest.options:type_name -> milvus.proto.common.KeyValuePair
50, // 46: milvus.proto.internal.ImportResponse.status:type_name -> milvus.proto.common.Status
50, // 47: milvus.proto.internal.GetImportProgressResponse.status:type_name -> milvus.proto.common.Status
51, // 45: milvus.proto.internal.ImportRequest.options:type_name -> milvus.proto.common.KeyValuePair
52, // 46: milvus.proto.internal.ImportResponse.status:type_name -> milvus.proto.common.Status
52, // 47: milvus.proto.internal.GetImportProgressResponse.status:type_name -> milvus.proto.common.Status
2, // 48: milvus.proto.internal.GetImportProgressResponse.state:type_name -> milvus.proto.internal.ImportJobState
38, // 49: milvus.proto.internal.GetImportProgressResponse.task_progresses:type_name -> milvus.proto.internal.ImportTaskProgress
50, // 50: milvus.proto.internal.ListImportsResponse.status:type_name -> milvus.proto.common.Status
52, // 50: milvus.proto.internal.ListImportsResponse.status:type_name -> milvus.proto.common.Status
2, // 51: milvus.proto.internal.ListImportsResponse.states:type_name -> milvus.proto.internal.ImportJobState
58, // 52: milvus.proto.internal.SegmentInfo.state:type_name -> milvus.proto.common.SegmentState
59, // 53: milvus.proto.internal.SegmentInfo.level:type_name -> milvus.proto.common.SegmentLevel
60, // 52: milvus.proto.internal.SegmentInfo.state:type_name -> milvus.proto.common.SegmentState
61, // 53: milvus.proto.internal.SegmentInfo.level:type_name -> milvus.proto.common.SegmentLevel
44, // 54: milvus.proto.internal.SegmentInfo.insert_logs:type_name -> milvus.proto.internal.FieldBinlog
44, // 55: milvus.proto.internal.SegmentInfo.delta_logs:type_name -> milvus.proto.internal.FieldBinlog
44, // 56: milvus.proto.internal.SegmentInfo.stats_logs:type_name -> milvus.proto.internal.FieldBinlog
50, // 57: milvus.proto.internal.GetSegmentsInfoResponse.status:type_name -> milvus.proto.common.Status
52, // 57: milvus.proto.internal.GetSegmentsInfoResponse.status:type_name -> milvus.proto.common.Status
45, // 58: milvus.proto.internal.GetSegmentsInfoResponse.segmentInfos:type_name -> milvus.proto.internal.SegmentInfo
59, // [59:59] is the sub-list for method output_type
59, // [59:59] is the sub-list for method input_type
59, // [59:59] is the sub-list for extension type_name
59, // [59:59] is the sub-list for extension extendee
0, // [0:59] is the sub-list for field type_name
53, // 59: milvus.proto.internal.GetQuotaMetricsRequest.base:type_name -> milvus.proto.common.MsgBase
52, // 60: milvus.proto.internal.GetQuotaMetricsResponse.status:type_name -> milvus.proto.common.Status
61, // [61:61] is the sub-list for method output_type
61, // [61:61] is the sub-list for method input_type
61, // [61:61] is the sub-list for extension type_name
61, // [61:61] is the sub-list for extension extendee
0, // [0:61] is the sub-list for field type_name
}
func init() { file_internal_proto_init() }
@ -5273,6 +5391,30 @@ func file_internal_proto_init() {
return nil
}
}
file_internal_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetQuotaMetricsRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_internal_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetQuotaMetricsResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
@ -5280,7 +5422,7 @@ func file_internal_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_internal_proto_rawDesc,
NumEnums: 3,
NumMessages: 45,
NumMessages: 47,
NumExtensions: 0,
NumServices: 0,
},

View File

@ -31,6 +31,7 @@ service Proxy {
rpc InvalidateShardLeaderCache(InvalidateShardLeaderCacheRequest) returns (common.Status) {}
rpc GetSegmentsInfo(internal.GetSegmentsInfoRequest) returns (internal.GetSegmentsInfoResponse) {}
rpc GetQuotaMetrics(internal.GetQuotaMetricsRequest) returns (internal.GetQuotaMetricsResponse) {}
}
message InvalidateCollMetaCacheRequest {

View File

@ -822,7 +822,7 @@ var file_proxy_proto_rawDesc = []byte{
0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x6c,
0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
0x49, 0x6e, 0x66, 0x6f, 0x73, 0x32, 0xc4, 0x0c, 0x0a, 0x05, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12,
0x49, 0x6e, 0x66, 0x6f, 0x73, 0x32, 0xb8, 0x0d, 0x0a, 0x05, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12,
0x6c, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x53,
0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43,
@ -922,11 +922,18 @@ var file_proxy_proto_rawDesc = []byte{
0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6d, 0x69, 0x6c,
0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e,
0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x49, 0x6e,
0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x32, 0x5a, 0x30,
0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x69, 0x6c, 0x76, 0x75,
0x73, 0x2d, 0x69, 0x6f, 0x2f, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2f, 0x70, 0x6b, 0x67, 0x2f,
0x76, 0x32, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x70, 0x62,
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x0f,
0x47, 0x65, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12,
0x2d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69,
0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61,
0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e,
0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e,
0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x4d,
0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
0x42, 0x32, 0x5a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d,
0x69, 0x6c, 0x76, 0x75, 0x73, 0x2d, 0x69, 0x6f, 0x2f, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2f,
0x70, 0x6b, 0x67, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x70, 0x72, 0x6f,
0x78, 0x79, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@ -969,13 +976,15 @@ var file_proxy_proto_goTypes = []interface{}{
(*internalpb.GetImportProgressRequest)(nil), // 23: milvus.proto.internal.GetImportProgressRequest
(*internalpb.ListImportsRequest)(nil), // 24: milvus.proto.internal.ListImportsRequest
(*internalpb.GetSegmentsInfoRequest)(nil), // 25: milvus.proto.internal.GetSegmentsInfoRequest
(*milvuspb.ComponentStates)(nil), // 26: milvus.proto.milvus.ComponentStates
(*milvuspb.StringResponse)(nil), // 27: milvus.proto.milvus.StringResponse
(*milvuspb.GetMetricsResponse)(nil), // 28: milvus.proto.milvus.GetMetricsResponse
(*internalpb.ImportResponse)(nil), // 29: milvus.proto.internal.ImportResponse
(*internalpb.GetImportProgressResponse)(nil), // 30: milvus.proto.internal.GetImportProgressResponse
(*internalpb.ListImportsResponse)(nil), // 31: milvus.proto.internal.ListImportsResponse
(*internalpb.GetSegmentsInfoResponse)(nil), // 32: milvus.proto.internal.GetSegmentsInfoResponse
(*internalpb.GetQuotaMetricsRequest)(nil), // 26: milvus.proto.internal.GetQuotaMetricsRequest
(*milvuspb.ComponentStates)(nil), // 27: milvus.proto.milvus.ComponentStates
(*milvuspb.StringResponse)(nil), // 28: milvus.proto.milvus.StringResponse
(*milvuspb.GetMetricsResponse)(nil), // 29: milvus.proto.milvus.GetMetricsResponse
(*internalpb.ImportResponse)(nil), // 30: milvus.proto.internal.ImportResponse
(*internalpb.GetImportProgressResponse)(nil), // 31: milvus.proto.internal.GetImportProgressResponse
(*internalpb.ListImportsResponse)(nil), // 32: milvus.proto.internal.ListImportsResponse
(*internalpb.GetSegmentsInfoResponse)(nil), // 33: milvus.proto.internal.GetSegmentsInfoResponse
(*internalpb.GetQuotaMetricsResponse)(nil), // 34: milvus.proto.internal.GetQuotaMetricsResponse
}
var file_proxy_proto_depIdxs = []int32{
12, // 0: milvus.proto.proxy.InvalidateCollMetaCacheRequest.base:type_name -> milvus.proto.common.MsgBase
@ -1013,23 +1022,25 @@ var file_proxy_proto_depIdxs = []int32{
24, // 32: milvus.proto.proxy.Proxy.ListImports:input_type -> milvus.proto.internal.ListImportsRequest
1, // 33: milvus.proto.proxy.Proxy.InvalidateShardLeaderCache:input_type -> milvus.proto.proxy.InvalidateShardLeaderCacheRequest
25, // 34: milvus.proto.proxy.Proxy.GetSegmentsInfo:input_type -> milvus.proto.internal.GetSegmentsInfoRequest
26, // 35: milvus.proto.proxy.Proxy.GetComponentStates:output_type -> milvus.proto.milvus.ComponentStates
27, // 36: milvus.proto.proxy.Proxy.GetStatisticsChannel:output_type -> milvus.proto.milvus.StringResponse
16, // 37: milvus.proto.proxy.Proxy.InvalidateCollectionMetaCache:output_type -> milvus.proto.common.Status
27, // 38: milvus.proto.proxy.Proxy.GetDdChannel:output_type -> milvus.proto.milvus.StringResponse
16, // 39: milvus.proto.proxy.Proxy.InvalidateCredentialCache:output_type -> milvus.proto.common.Status
16, // 40: milvus.proto.proxy.Proxy.UpdateCredentialCache:output_type -> milvus.proto.common.Status
16, // 41: milvus.proto.proxy.Proxy.RefreshPolicyInfoCache:output_type -> milvus.proto.common.Status
28, // 42: milvus.proto.proxy.Proxy.GetProxyMetrics:output_type -> milvus.proto.milvus.GetMetricsResponse
16, // 43: milvus.proto.proxy.Proxy.SetRates:output_type -> milvus.proto.common.Status
10, // 44: milvus.proto.proxy.Proxy.ListClientInfos:output_type -> milvus.proto.proxy.ListClientInfosResponse
29, // 45: milvus.proto.proxy.Proxy.ImportV2:output_type -> milvus.proto.internal.ImportResponse
30, // 46: milvus.proto.proxy.Proxy.GetImportProgress:output_type -> milvus.proto.internal.GetImportProgressResponse
31, // 47: milvus.proto.proxy.Proxy.ListImports:output_type -> milvus.proto.internal.ListImportsResponse
16, // 48: milvus.proto.proxy.Proxy.InvalidateShardLeaderCache:output_type -> milvus.proto.common.Status
32, // 49: milvus.proto.proxy.Proxy.GetSegmentsInfo:output_type -> milvus.proto.internal.GetSegmentsInfoResponse
35, // [35:50] is the sub-list for method output_type
20, // [20:35] is the sub-list for method input_type
26, // 35: milvus.proto.proxy.Proxy.GetQuotaMetrics:input_type -> milvus.proto.internal.GetQuotaMetricsRequest
27, // 36: milvus.proto.proxy.Proxy.GetComponentStates:output_type -> milvus.proto.milvus.ComponentStates
28, // 37: milvus.proto.proxy.Proxy.GetStatisticsChannel:output_type -> milvus.proto.milvus.StringResponse
16, // 38: milvus.proto.proxy.Proxy.InvalidateCollectionMetaCache:output_type -> milvus.proto.common.Status
28, // 39: milvus.proto.proxy.Proxy.GetDdChannel:output_type -> milvus.proto.milvus.StringResponse
16, // 40: milvus.proto.proxy.Proxy.InvalidateCredentialCache:output_type -> milvus.proto.common.Status
16, // 41: milvus.proto.proxy.Proxy.UpdateCredentialCache:output_type -> milvus.proto.common.Status
16, // 42: milvus.proto.proxy.Proxy.RefreshPolicyInfoCache:output_type -> milvus.proto.common.Status
29, // 43: milvus.proto.proxy.Proxy.GetProxyMetrics:output_type -> milvus.proto.milvus.GetMetricsResponse
16, // 44: milvus.proto.proxy.Proxy.SetRates:output_type -> milvus.proto.common.Status
10, // 45: milvus.proto.proxy.Proxy.ListClientInfos:output_type -> milvus.proto.proxy.ListClientInfosResponse
30, // 46: milvus.proto.proxy.Proxy.ImportV2:output_type -> milvus.proto.internal.ImportResponse
31, // 47: milvus.proto.proxy.Proxy.GetImportProgress:output_type -> milvus.proto.internal.GetImportProgressResponse
32, // 48: milvus.proto.proxy.Proxy.ListImports:output_type -> milvus.proto.internal.ListImportsResponse
16, // 49: milvus.proto.proxy.Proxy.InvalidateShardLeaderCache:output_type -> milvus.proto.common.Status
33, // 50: milvus.proto.proxy.Proxy.GetSegmentsInfo:output_type -> milvus.proto.internal.GetSegmentsInfoResponse
34, // 51: milvus.proto.proxy.Proxy.GetQuotaMetrics:output_type -> milvus.proto.internal.GetQuotaMetricsResponse
36, // [36:52] is the sub-list for method output_type
20, // [20:36] is the sub-list for method input_type
20, // [20:20] is the sub-list for extension type_name
20, // [20:20] is the sub-list for extension extendee
0, // [0:20] is the sub-list for field type_name

View File

@ -37,6 +37,7 @@ const (
Proxy_ListImports_FullMethodName = "/milvus.proto.proxy.Proxy/ListImports"
Proxy_InvalidateShardLeaderCache_FullMethodName = "/milvus.proto.proxy.Proxy/InvalidateShardLeaderCache"
Proxy_GetSegmentsInfo_FullMethodName = "/milvus.proto.proxy.Proxy/GetSegmentsInfo"
Proxy_GetQuotaMetrics_FullMethodName = "/milvus.proto.proxy.Proxy/GetQuotaMetrics"
)
// ProxyClient is the client API for Proxy service.
@ -59,6 +60,7 @@ type ProxyClient interface {
ListImports(ctx context.Context, in *internalpb.ListImportsRequest, opts ...grpc.CallOption) (*internalpb.ListImportsResponse, error)
InvalidateShardLeaderCache(ctx context.Context, in *InvalidateShardLeaderCacheRequest, opts ...grpc.CallOption) (*commonpb.Status, error)
GetSegmentsInfo(ctx context.Context, in *internalpb.GetSegmentsInfoRequest, opts ...grpc.CallOption) (*internalpb.GetSegmentsInfoResponse, error)
GetQuotaMetrics(ctx context.Context, in *internalpb.GetQuotaMetricsRequest, opts ...grpc.CallOption) (*internalpb.GetQuotaMetricsResponse, error)
}
type proxyClient struct {
@ -204,6 +206,15 @@ func (c *proxyClient) GetSegmentsInfo(ctx context.Context, in *internalpb.GetSeg
return out, nil
}
func (c *proxyClient) GetQuotaMetrics(ctx context.Context, in *internalpb.GetQuotaMetricsRequest, opts ...grpc.CallOption) (*internalpb.GetQuotaMetricsResponse, error) {
out := new(internalpb.GetQuotaMetricsResponse)
err := c.cc.Invoke(ctx, Proxy_GetQuotaMetrics_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// ProxyServer is the server API for Proxy service.
// All implementations should embed UnimplementedProxyServer
// for forward compatibility
@ -224,6 +235,7 @@ type ProxyServer interface {
ListImports(context.Context, *internalpb.ListImportsRequest) (*internalpb.ListImportsResponse, error)
InvalidateShardLeaderCache(context.Context, *InvalidateShardLeaderCacheRequest) (*commonpb.Status, error)
GetSegmentsInfo(context.Context, *internalpb.GetSegmentsInfoRequest) (*internalpb.GetSegmentsInfoResponse, error)
GetQuotaMetrics(context.Context, *internalpb.GetQuotaMetricsRequest) (*internalpb.GetQuotaMetricsResponse, error)
}
// UnimplementedProxyServer should be embedded to have forward compatible implementations.
@ -275,6 +287,9 @@ func (UnimplementedProxyServer) InvalidateShardLeaderCache(context.Context, *Inv
func (UnimplementedProxyServer) GetSegmentsInfo(context.Context, *internalpb.GetSegmentsInfoRequest) (*internalpb.GetSegmentsInfoResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetSegmentsInfo not implemented")
}
func (UnimplementedProxyServer) GetQuotaMetrics(context.Context, *internalpb.GetQuotaMetricsRequest) (*internalpb.GetQuotaMetricsResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetQuotaMetrics not implemented")
}
// UnsafeProxyServer may be embedded to opt out of forward compatibility for this service.
// Use of this interface is not recommended, as added methods to ProxyServer will
@ -557,6 +572,24 @@ func _Proxy_GetSegmentsInfo_Handler(srv interface{}, ctx context.Context, dec fu
return interceptor(ctx, in, info, handler)
}
func _Proxy_GetQuotaMetrics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(internalpb.GetQuotaMetricsRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(ProxyServer).GetQuotaMetrics(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: Proxy_GetQuotaMetrics_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(ProxyServer).GetQuotaMetrics(ctx, req.(*internalpb.GetQuotaMetricsRequest))
}
return interceptor(ctx, in, info, handler)
}
// Proxy_ServiceDesc is the grpc.ServiceDesc for Proxy service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
@ -624,6 +657,10 @@ var Proxy_ServiceDesc = grpc.ServiceDesc{
MethodName: "GetSegmentsInfo",
Handler: _Proxy_GetSegmentsInfo_Handler,
},
{
MethodName: "GetQuotaMetrics",
Handler: _Proxy_GetQuotaMetrics_Handler,
},
},
Streams: []grpc.StreamDesc{},
Metadata: "proxy.proto",

View File

@ -152,6 +152,8 @@ service RootCoord {
rpc ListDatabases(milvus.ListDatabasesRequest) returns (milvus.ListDatabasesResponse) {}
rpc DescribeDatabase(DescribeDatabaseRequest) returns(DescribeDatabaseResponse){}
rpc AlterDatabase(AlterDatabaseRequest) returns(common.Status){}
rpc GetQuotaMetrics(internal.GetQuotaMetricsRequest) returns (internal.GetQuotaMetricsResponse) {}
}
message AllocTimestampRequest {

View File

@ -1455,7 +1455,7 @@ var file_root_coord_proto_rawDesc = []byte{
0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x72, 0x6f, 0x6f, 0x74, 0x63, 0x6f, 0x6f,
0x72, 0x64, 0x2e, 0x44, 0x42, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73,
0x52, 0x0d, 0x64, 0x62, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x32,
0xcd, 0x2d, 0x0a, 0x09, 0x52, 0x6f, 0x6f, 0x74, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x12, 0x6c, 0x0a,
0xc1, 0x2e, 0x0a, 0x09, 0x52, 0x6f, 0x6f, 0x74, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x12, 0x6c, 0x0a,
0x12, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61,
0x74, 0x65, 0x73, 0x12, 0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d,
@ -1819,11 +1819,19 @@ var file_root_coord_proto_rawDesc = []byte{
0x6f, 0x2e, 0x72, 0x6f, 0x6f, 0x74, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x2e, 0x41, 0x6c, 0x74, 0x65,
0x72, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x42,
0x36, 0x5a, 0x34, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x69,
0x6c, 0x76, 0x75, 0x73, 0x2d, 0x69, 0x6f, 0x2f, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2f, 0x70,
0x6b, 0x67, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x72, 0x6f, 0x6f, 0x74,
0x63, 0x6f, 0x6f, 0x72, 0x64, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12,
0x72, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x4d, 0x65, 0x74, 0x72, 0x69,
0x63, 0x73, 0x12, 0x2d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x51, 0x75,
0x6f, 0x74, 0x61, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x1a, 0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x51, 0x75, 0x6f,
0x74, 0x61, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x22, 0x00, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f,
0x6d, 0x2f, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2d, 0x69, 0x6f, 0x2f, 0x6d, 0x69, 0x6c, 0x76,
0x75, 0x73, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f,
0x72, 0x6f, 0x6f, 0x74, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x33,
}
var (
@ -1914,26 +1922,28 @@ var file_root_coord_proto_goTypes = []interface{}{
(*milvuspb.CreateDatabaseRequest)(nil), // 71: milvus.proto.milvus.CreateDatabaseRequest
(*milvuspb.DropDatabaseRequest)(nil), // 72: milvus.proto.milvus.DropDatabaseRequest
(*milvuspb.ListDatabasesRequest)(nil), // 73: milvus.proto.milvus.ListDatabasesRequest
(*milvuspb.ComponentStates)(nil), // 74: milvus.proto.milvus.ComponentStates
(*milvuspb.StringResponse)(nil), // 75: milvus.proto.milvus.StringResponse
(*milvuspb.BoolResponse)(nil), // 76: milvus.proto.milvus.BoolResponse
(*milvuspb.DescribeCollectionResponse)(nil), // 77: milvus.proto.milvus.DescribeCollectionResponse
(*milvuspb.DescribeAliasResponse)(nil), // 78: milvus.proto.milvus.DescribeAliasResponse
(*milvuspb.ListAliasesResponse)(nil), // 79: milvus.proto.milvus.ListAliasesResponse
(*milvuspb.ShowCollectionsResponse)(nil), // 80: milvus.proto.milvus.ShowCollectionsResponse
(*milvuspb.ShowPartitionsResponse)(nil), // 81: milvus.proto.milvus.ShowPartitionsResponse
(*milvuspb.ShowSegmentsResponse)(nil), // 82: milvus.proto.milvus.ShowSegmentsResponse
(*internalpb.ShowConfigurationsResponse)(nil), // 83: milvus.proto.internal.ShowConfigurationsResponse
(*milvuspb.GetMetricsResponse)(nil), // 84: milvus.proto.milvus.GetMetricsResponse
(*milvuspb.ListCredUsersResponse)(nil), // 85: milvus.proto.milvus.ListCredUsersResponse
(*milvuspb.SelectRoleResponse)(nil), // 86: milvus.proto.milvus.SelectRoleResponse
(*milvuspb.SelectUserResponse)(nil), // 87: milvus.proto.milvus.SelectUserResponse
(*milvuspb.SelectGrantResponse)(nil), // 88: milvus.proto.milvus.SelectGrantResponse
(*internalpb.ListPolicyResponse)(nil), // 89: milvus.proto.internal.ListPolicyResponse
(*milvuspb.BackupRBACMetaResponse)(nil), // 90: milvus.proto.milvus.BackupRBACMetaResponse
(*milvuspb.ListPrivilegeGroupsResponse)(nil), // 91: milvus.proto.milvus.ListPrivilegeGroupsResponse
(*milvuspb.CheckHealthResponse)(nil), // 92: milvus.proto.milvus.CheckHealthResponse
(*milvuspb.ListDatabasesResponse)(nil), // 93: milvus.proto.milvus.ListDatabasesResponse
(*internalpb.GetQuotaMetricsRequest)(nil), // 74: milvus.proto.internal.GetQuotaMetricsRequest
(*milvuspb.ComponentStates)(nil), // 75: milvus.proto.milvus.ComponentStates
(*milvuspb.StringResponse)(nil), // 76: milvus.proto.milvus.StringResponse
(*milvuspb.BoolResponse)(nil), // 77: milvus.proto.milvus.BoolResponse
(*milvuspb.DescribeCollectionResponse)(nil), // 78: milvus.proto.milvus.DescribeCollectionResponse
(*milvuspb.DescribeAliasResponse)(nil), // 79: milvus.proto.milvus.DescribeAliasResponse
(*milvuspb.ListAliasesResponse)(nil), // 80: milvus.proto.milvus.ListAliasesResponse
(*milvuspb.ShowCollectionsResponse)(nil), // 81: milvus.proto.milvus.ShowCollectionsResponse
(*milvuspb.ShowPartitionsResponse)(nil), // 82: milvus.proto.milvus.ShowPartitionsResponse
(*milvuspb.ShowSegmentsResponse)(nil), // 83: milvus.proto.milvus.ShowSegmentsResponse
(*internalpb.ShowConfigurationsResponse)(nil), // 84: milvus.proto.internal.ShowConfigurationsResponse
(*milvuspb.GetMetricsResponse)(nil), // 85: milvus.proto.milvus.GetMetricsResponse
(*milvuspb.ListCredUsersResponse)(nil), // 86: milvus.proto.milvus.ListCredUsersResponse
(*milvuspb.SelectRoleResponse)(nil), // 87: milvus.proto.milvus.SelectRoleResponse
(*milvuspb.SelectUserResponse)(nil), // 88: milvus.proto.milvus.SelectUserResponse
(*milvuspb.SelectGrantResponse)(nil), // 89: milvus.proto.milvus.SelectGrantResponse
(*internalpb.ListPolicyResponse)(nil), // 90: milvus.proto.internal.ListPolicyResponse
(*milvuspb.BackupRBACMetaResponse)(nil), // 91: milvus.proto.milvus.BackupRBACMetaResponse
(*milvuspb.ListPrivilegeGroupsResponse)(nil), // 92: milvus.proto.milvus.ListPrivilegeGroupsResponse
(*milvuspb.CheckHealthResponse)(nil), // 93: milvus.proto.milvus.CheckHealthResponse
(*milvuspb.ListDatabasesResponse)(nil), // 94: milvus.proto.milvus.ListDatabasesResponse
(*internalpb.GetQuotaMetricsResponse)(nil), // 95: milvus.proto.internal.GetQuotaMetricsResponse
}
var file_root_coord_proto_depIdxs = []int32{
22, // 0: milvus.proto.rootcoord.AllocTimestampRequest.base:type_name -> milvus.proto.common.MsgBase
@ -2019,65 +2029,67 @@ var file_root_coord_proto_depIdxs = []int32{
73, // 80: milvus.proto.rootcoord.RootCoord.ListDatabases:input_type -> milvus.proto.milvus.ListDatabasesRequest
10, // 81: milvus.proto.rootcoord.RootCoord.DescribeDatabase:input_type -> milvus.proto.rootcoord.DescribeDatabaseRequest
12, // 82: milvus.proto.rootcoord.RootCoord.AlterDatabase:input_type -> milvus.proto.rootcoord.AlterDatabaseRequest
74, // 83: milvus.proto.rootcoord.RootCoord.GetComponentStates:output_type -> milvus.proto.milvus.ComponentStates
75, // 84: milvus.proto.rootcoord.RootCoord.GetTimeTickChannel:output_type -> milvus.proto.milvus.StringResponse
75, // 85: milvus.proto.rootcoord.RootCoord.GetStatisticsChannel:output_type -> milvus.proto.milvus.StringResponse
23, // 86: milvus.proto.rootcoord.RootCoord.CreateCollection:output_type -> milvus.proto.common.Status
23, // 87: milvus.proto.rootcoord.RootCoord.DropCollection:output_type -> milvus.proto.common.Status
23, // 88: milvus.proto.rootcoord.RootCoord.AddCollectionField:output_type -> milvus.proto.common.Status
76, // 89: milvus.proto.rootcoord.RootCoord.HasCollection:output_type -> milvus.proto.milvus.BoolResponse
77, // 90: milvus.proto.rootcoord.RootCoord.DescribeCollection:output_type -> milvus.proto.milvus.DescribeCollectionResponse
77, // 91: milvus.proto.rootcoord.RootCoord.DescribeCollectionInternal:output_type -> milvus.proto.milvus.DescribeCollectionResponse
23, // 92: milvus.proto.rootcoord.RootCoord.CreateAlias:output_type -> milvus.proto.common.Status
23, // 93: milvus.proto.rootcoord.RootCoord.DropAlias:output_type -> milvus.proto.common.Status
23, // 94: milvus.proto.rootcoord.RootCoord.AlterAlias:output_type -> milvus.proto.common.Status
78, // 95: milvus.proto.rootcoord.RootCoord.DescribeAlias:output_type -> milvus.proto.milvus.DescribeAliasResponse
79, // 96: milvus.proto.rootcoord.RootCoord.ListAliases:output_type -> milvus.proto.milvus.ListAliasesResponse
80, // 97: milvus.proto.rootcoord.RootCoord.ShowCollections:output_type -> milvus.proto.milvus.ShowCollectionsResponse
19, // 98: milvus.proto.rootcoord.RootCoord.ShowCollectionIDs:output_type -> milvus.proto.rootcoord.ShowCollectionIDsResponse
23, // 99: milvus.proto.rootcoord.RootCoord.AlterCollection:output_type -> milvus.proto.common.Status
23, // 100: milvus.proto.rootcoord.RootCoord.AlterCollectionField:output_type -> milvus.proto.common.Status
23, // 101: milvus.proto.rootcoord.RootCoord.CreatePartition:output_type -> milvus.proto.common.Status
23, // 102: milvus.proto.rootcoord.RootCoord.DropPartition:output_type -> milvus.proto.common.Status
76, // 103: milvus.proto.rootcoord.RootCoord.HasPartition:output_type -> milvus.proto.milvus.BoolResponse
81, // 104: milvus.proto.rootcoord.RootCoord.ShowPartitions:output_type -> milvus.proto.milvus.ShowPartitionsResponse
81, // 105: milvus.proto.rootcoord.RootCoord.ShowPartitionsInternal:output_type -> milvus.proto.milvus.ShowPartitionsResponse
82, // 106: milvus.proto.rootcoord.RootCoord.ShowSegments:output_type -> milvus.proto.milvus.ShowSegmentsResponse
14, // 107: milvus.proto.rootcoord.RootCoord.GetPChannelInfo:output_type -> milvus.proto.rootcoord.GetPChannelInfoResponse
1, // 108: milvus.proto.rootcoord.RootCoord.AllocTimestamp:output_type -> milvus.proto.rootcoord.AllocTimestampResponse
3, // 109: milvus.proto.rootcoord.RootCoord.AllocID:output_type -> milvus.proto.rootcoord.AllocIDResponse
23, // 110: milvus.proto.rootcoord.RootCoord.UpdateChannelTimeTick:output_type -> milvus.proto.common.Status
23, // 111: milvus.proto.rootcoord.RootCoord.InvalidateCollectionMetaCache:output_type -> milvus.proto.common.Status
83, // 112: milvus.proto.rootcoord.RootCoord.ShowConfigurations:output_type -> milvus.proto.internal.ShowConfigurationsResponse
84, // 113: milvus.proto.rootcoord.RootCoord.GetMetrics:output_type -> milvus.proto.milvus.GetMetricsResponse
23, // 114: milvus.proto.rootcoord.RootCoord.CreateCredential:output_type -> milvus.proto.common.Status
23, // 115: milvus.proto.rootcoord.RootCoord.UpdateCredential:output_type -> milvus.proto.common.Status
23, // 116: milvus.proto.rootcoord.RootCoord.DeleteCredential:output_type -> milvus.proto.common.Status
85, // 117: milvus.proto.rootcoord.RootCoord.ListCredUsers:output_type -> milvus.proto.milvus.ListCredUsersResponse
9, // 118: milvus.proto.rootcoord.RootCoord.GetCredential:output_type -> milvus.proto.rootcoord.GetCredentialResponse
23, // 119: milvus.proto.rootcoord.RootCoord.CreateRole:output_type -> milvus.proto.common.Status
23, // 120: milvus.proto.rootcoord.RootCoord.DropRole:output_type -> milvus.proto.common.Status
23, // 121: milvus.proto.rootcoord.RootCoord.OperateUserRole:output_type -> milvus.proto.common.Status
86, // 122: milvus.proto.rootcoord.RootCoord.SelectRole:output_type -> milvus.proto.milvus.SelectRoleResponse
87, // 123: milvus.proto.rootcoord.RootCoord.SelectUser:output_type -> milvus.proto.milvus.SelectUserResponse
23, // 124: milvus.proto.rootcoord.RootCoord.OperatePrivilege:output_type -> milvus.proto.common.Status
88, // 125: milvus.proto.rootcoord.RootCoord.SelectGrant:output_type -> milvus.proto.milvus.SelectGrantResponse
89, // 126: milvus.proto.rootcoord.RootCoord.ListPolicy:output_type -> milvus.proto.internal.ListPolicyResponse
90, // 127: milvus.proto.rootcoord.RootCoord.BackupRBAC:output_type -> milvus.proto.milvus.BackupRBACMetaResponse
23, // 128: milvus.proto.rootcoord.RootCoord.RestoreRBAC:output_type -> milvus.proto.common.Status
23, // 129: milvus.proto.rootcoord.RootCoord.CreatePrivilegeGroup:output_type -> milvus.proto.common.Status
23, // 130: milvus.proto.rootcoord.RootCoord.DropPrivilegeGroup:output_type -> milvus.proto.common.Status
91, // 131: milvus.proto.rootcoord.RootCoord.ListPrivilegeGroups:output_type -> milvus.proto.milvus.ListPrivilegeGroupsResponse
23, // 132: milvus.proto.rootcoord.RootCoord.OperatePrivilegeGroup:output_type -> milvus.proto.common.Status
92, // 133: milvus.proto.rootcoord.RootCoord.CheckHealth:output_type -> milvus.proto.milvus.CheckHealthResponse
23, // 134: milvus.proto.rootcoord.RootCoord.RenameCollection:output_type -> milvus.proto.common.Status
23, // 135: milvus.proto.rootcoord.RootCoord.CreateDatabase:output_type -> milvus.proto.common.Status
23, // 136: milvus.proto.rootcoord.RootCoord.DropDatabase:output_type -> milvus.proto.common.Status
93, // 137: milvus.proto.rootcoord.RootCoord.ListDatabases:output_type -> milvus.proto.milvus.ListDatabasesResponse
11, // 138: milvus.proto.rootcoord.RootCoord.DescribeDatabase:output_type -> milvus.proto.rootcoord.DescribeDatabaseResponse
23, // 139: milvus.proto.rootcoord.RootCoord.AlterDatabase:output_type -> milvus.proto.common.Status
83, // [83:140] is the sub-list for method output_type
26, // [26:83] is the sub-list for method input_type
74, // 83: milvus.proto.rootcoord.RootCoord.GetQuotaMetrics:input_type -> milvus.proto.internal.GetQuotaMetricsRequest
75, // 84: milvus.proto.rootcoord.RootCoord.GetComponentStates:output_type -> milvus.proto.milvus.ComponentStates
76, // 85: milvus.proto.rootcoord.RootCoord.GetTimeTickChannel:output_type -> milvus.proto.milvus.StringResponse
76, // 86: milvus.proto.rootcoord.RootCoord.GetStatisticsChannel:output_type -> milvus.proto.milvus.StringResponse
23, // 87: milvus.proto.rootcoord.RootCoord.CreateCollection:output_type -> milvus.proto.common.Status
23, // 88: milvus.proto.rootcoord.RootCoord.DropCollection:output_type -> milvus.proto.common.Status
23, // 89: milvus.proto.rootcoord.RootCoord.AddCollectionField:output_type -> milvus.proto.common.Status
77, // 90: milvus.proto.rootcoord.RootCoord.HasCollection:output_type -> milvus.proto.milvus.BoolResponse
78, // 91: milvus.proto.rootcoord.RootCoord.DescribeCollection:output_type -> milvus.proto.milvus.DescribeCollectionResponse
78, // 92: milvus.proto.rootcoord.RootCoord.DescribeCollectionInternal:output_type -> milvus.proto.milvus.DescribeCollectionResponse
23, // 93: milvus.proto.rootcoord.RootCoord.CreateAlias:output_type -> milvus.proto.common.Status
23, // 94: milvus.proto.rootcoord.RootCoord.DropAlias:output_type -> milvus.proto.common.Status
23, // 95: milvus.proto.rootcoord.RootCoord.AlterAlias:output_type -> milvus.proto.common.Status
79, // 96: milvus.proto.rootcoord.RootCoord.DescribeAlias:output_type -> milvus.proto.milvus.DescribeAliasResponse
80, // 97: milvus.proto.rootcoord.RootCoord.ListAliases:output_type -> milvus.proto.milvus.ListAliasesResponse
81, // 98: milvus.proto.rootcoord.RootCoord.ShowCollections:output_type -> milvus.proto.milvus.ShowCollectionsResponse
19, // 99: milvus.proto.rootcoord.RootCoord.ShowCollectionIDs:output_type -> milvus.proto.rootcoord.ShowCollectionIDsResponse
23, // 100: milvus.proto.rootcoord.RootCoord.AlterCollection:output_type -> milvus.proto.common.Status
23, // 101: milvus.proto.rootcoord.RootCoord.AlterCollectionField:output_type -> milvus.proto.common.Status
23, // 102: milvus.proto.rootcoord.RootCoord.CreatePartition:output_type -> milvus.proto.common.Status
23, // 103: milvus.proto.rootcoord.RootCoord.DropPartition:output_type -> milvus.proto.common.Status
77, // 104: milvus.proto.rootcoord.RootCoord.HasPartition:output_type -> milvus.proto.milvus.BoolResponse
82, // 105: milvus.proto.rootcoord.RootCoord.ShowPartitions:output_type -> milvus.proto.milvus.ShowPartitionsResponse
82, // 106: milvus.proto.rootcoord.RootCoord.ShowPartitionsInternal:output_type -> milvus.proto.milvus.ShowPartitionsResponse
83, // 107: milvus.proto.rootcoord.RootCoord.ShowSegments:output_type -> milvus.proto.milvus.ShowSegmentsResponse
14, // 108: milvus.proto.rootcoord.RootCoord.GetPChannelInfo:output_type -> milvus.proto.rootcoord.GetPChannelInfoResponse
1, // 109: milvus.proto.rootcoord.RootCoord.AllocTimestamp:output_type -> milvus.proto.rootcoord.AllocTimestampResponse
3, // 110: milvus.proto.rootcoord.RootCoord.AllocID:output_type -> milvus.proto.rootcoord.AllocIDResponse
23, // 111: milvus.proto.rootcoord.RootCoord.UpdateChannelTimeTick:output_type -> milvus.proto.common.Status
23, // 112: milvus.proto.rootcoord.RootCoord.InvalidateCollectionMetaCache:output_type -> milvus.proto.common.Status
84, // 113: milvus.proto.rootcoord.RootCoord.ShowConfigurations:output_type -> milvus.proto.internal.ShowConfigurationsResponse
85, // 114: milvus.proto.rootcoord.RootCoord.GetMetrics:output_type -> milvus.proto.milvus.GetMetricsResponse
23, // 115: milvus.proto.rootcoord.RootCoord.CreateCredential:output_type -> milvus.proto.common.Status
23, // 116: milvus.proto.rootcoord.RootCoord.UpdateCredential:output_type -> milvus.proto.common.Status
23, // 117: milvus.proto.rootcoord.RootCoord.DeleteCredential:output_type -> milvus.proto.common.Status
86, // 118: milvus.proto.rootcoord.RootCoord.ListCredUsers:output_type -> milvus.proto.milvus.ListCredUsersResponse
9, // 119: milvus.proto.rootcoord.RootCoord.GetCredential:output_type -> milvus.proto.rootcoord.GetCredentialResponse
23, // 120: milvus.proto.rootcoord.RootCoord.CreateRole:output_type -> milvus.proto.common.Status
23, // 121: milvus.proto.rootcoord.RootCoord.DropRole:output_type -> milvus.proto.common.Status
23, // 122: milvus.proto.rootcoord.RootCoord.OperateUserRole:output_type -> milvus.proto.common.Status
87, // 123: milvus.proto.rootcoord.RootCoord.SelectRole:output_type -> milvus.proto.milvus.SelectRoleResponse
88, // 124: milvus.proto.rootcoord.RootCoord.SelectUser:output_type -> milvus.proto.milvus.SelectUserResponse
23, // 125: milvus.proto.rootcoord.RootCoord.OperatePrivilege:output_type -> milvus.proto.common.Status
89, // 126: milvus.proto.rootcoord.RootCoord.SelectGrant:output_type -> milvus.proto.milvus.SelectGrantResponse
90, // 127: milvus.proto.rootcoord.RootCoord.ListPolicy:output_type -> milvus.proto.internal.ListPolicyResponse
91, // 128: milvus.proto.rootcoord.RootCoord.BackupRBAC:output_type -> milvus.proto.milvus.BackupRBACMetaResponse
23, // 129: milvus.proto.rootcoord.RootCoord.RestoreRBAC:output_type -> milvus.proto.common.Status
23, // 130: milvus.proto.rootcoord.RootCoord.CreatePrivilegeGroup:output_type -> milvus.proto.common.Status
23, // 131: milvus.proto.rootcoord.RootCoord.DropPrivilegeGroup:output_type -> milvus.proto.common.Status
92, // 132: milvus.proto.rootcoord.RootCoord.ListPrivilegeGroups:output_type -> milvus.proto.milvus.ListPrivilegeGroupsResponse
23, // 133: milvus.proto.rootcoord.RootCoord.OperatePrivilegeGroup:output_type -> milvus.proto.common.Status
93, // 134: milvus.proto.rootcoord.RootCoord.CheckHealth:output_type -> milvus.proto.milvus.CheckHealthResponse
23, // 135: milvus.proto.rootcoord.RootCoord.RenameCollection:output_type -> milvus.proto.common.Status
23, // 136: milvus.proto.rootcoord.RootCoord.CreateDatabase:output_type -> milvus.proto.common.Status
23, // 137: milvus.proto.rootcoord.RootCoord.DropDatabase:output_type -> milvus.proto.common.Status
94, // 138: milvus.proto.rootcoord.RootCoord.ListDatabases:output_type -> milvus.proto.milvus.ListDatabasesResponse
11, // 139: milvus.proto.rootcoord.RootCoord.DescribeDatabase:output_type -> milvus.proto.rootcoord.DescribeDatabaseResponse
23, // 140: milvus.proto.rootcoord.RootCoord.AlterDatabase:output_type -> milvus.proto.common.Status
95, // 141: milvus.proto.rootcoord.RootCoord.GetQuotaMetrics:output_type -> milvus.proto.internal.GetQuotaMetricsResponse
84, // [84:142] is the sub-list for method output_type
26, // [26:84] is the sub-list for method input_type
26, // [26:26] is the sub-list for extension type_name
26, // [26:26] is the sub-list for extension extendee
0, // [0:26] is the sub-list for field type_name

View File

@ -80,6 +80,7 @@ const (
RootCoord_ListDatabases_FullMethodName = "/milvus.proto.rootcoord.RootCoord/ListDatabases"
RootCoord_DescribeDatabase_FullMethodName = "/milvus.proto.rootcoord.RootCoord/DescribeDatabase"
RootCoord_AlterDatabase_FullMethodName = "/milvus.proto.rootcoord.RootCoord/AlterDatabase"
RootCoord_GetQuotaMetrics_FullMethodName = "/milvus.proto.rootcoord.RootCoord/GetQuotaMetrics"
)
// RootCoordClient is the client API for RootCoord service.
@ -199,6 +200,7 @@ type RootCoordClient interface {
ListDatabases(ctx context.Context, in *milvuspb.ListDatabasesRequest, opts ...grpc.CallOption) (*milvuspb.ListDatabasesResponse, error)
DescribeDatabase(ctx context.Context, in *DescribeDatabaseRequest, opts ...grpc.CallOption) (*DescribeDatabaseResponse, error)
AlterDatabase(ctx context.Context, in *AlterDatabaseRequest, opts ...grpc.CallOption) (*commonpb.Status, error)
GetQuotaMetrics(ctx context.Context, in *internalpb.GetQuotaMetricsRequest, opts ...grpc.CallOption) (*internalpb.GetQuotaMetricsResponse, error)
}
type rootCoordClient struct {
@ -722,6 +724,15 @@ func (c *rootCoordClient) AlterDatabase(ctx context.Context, in *AlterDatabaseRe
return out, nil
}
func (c *rootCoordClient) GetQuotaMetrics(ctx context.Context, in *internalpb.GetQuotaMetricsRequest, opts ...grpc.CallOption) (*internalpb.GetQuotaMetricsResponse, error) {
out := new(internalpb.GetQuotaMetricsResponse)
err := c.cc.Invoke(ctx, RootCoord_GetQuotaMetrics_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// RootCoordServer is the server API for RootCoord service.
// All implementations should embed UnimplementedRootCoordServer
// for forward compatibility
@ -839,6 +850,7 @@ type RootCoordServer interface {
ListDatabases(context.Context, *milvuspb.ListDatabasesRequest) (*milvuspb.ListDatabasesResponse, error)
DescribeDatabase(context.Context, *DescribeDatabaseRequest) (*DescribeDatabaseResponse, error)
AlterDatabase(context.Context, *AlterDatabaseRequest) (*commonpb.Status, error)
GetQuotaMetrics(context.Context, *internalpb.GetQuotaMetricsRequest) (*internalpb.GetQuotaMetricsResponse, error)
}
// UnimplementedRootCoordServer should be embedded to have forward compatible implementations.
@ -1016,6 +1028,9 @@ func (UnimplementedRootCoordServer) DescribeDatabase(context.Context, *DescribeD
func (UnimplementedRootCoordServer) AlterDatabase(context.Context, *AlterDatabaseRequest) (*commonpb.Status, error) {
return nil, status.Errorf(codes.Unimplemented, "method AlterDatabase not implemented")
}
func (UnimplementedRootCoordServer) GetQuotaMetrics(context.Context, *internalpb.GetQuotaMetricsRequest) (*internalpb.GetQuotaMetricsResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetQuotaMetrics not implemented")
}
// UnsafeRootCoordServer may be embedded to opt out of forward compatibility for this service.
// Use of this interface is not recommended, as added methods to RootCoordServer will
@ -2054,6 +2069,24 @@ func _RootCoord_AlterDatabase_Handler(srv interface{}, ctx context.Context, dec
return interceptor(ctx, in, info, handler)
}
func _RootCoord_GetQuotaMetrics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(internalpb.GetQuotaMetricsRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(RootCoordServer).GetQuotaMetrics(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: RootCoord_GetQuotaMetrics_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(RootCoordServer).GetQuotaMetrics(ctx, req.(*internalpb.GetQuotaMetricsRequest))
}
return interceptor(ctx, in, info, handler)
}
// RootCoord_ServiceDesc is the grpc.ServiceDesc for RootCoord service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
@ -2289,6 +2322,10 @@ var RootCoord_ServiceDesc = grpc.ServiceDesc{
MethodName: "AlterDatabase",
Handler: _RootCoord_AlterDatabase_Handler,
},
{
MethodName: "GetQuotaMetrics",
Handler: _RootCoord_GetQuotaMetrics_Handler,
},
},
Streams: []grpc.StreamDesc{},
Metadata: "root_coord.proto",

View File

@ -46,6 +46,22 @@ type HardwareMetrics struct {
IOWaitPercentage float64 `json:"io_wait_percentage"` // IO Wait in %
}
type TaskQueueMetrics struct {
Type string `json:"type"`
PendingCount int64 `json:"pending_count"`
ExecutingCount int64 `json:"executing_count"`
PendingTasks []TaskMetrics `json:"pending_tasks"`
ExecutingTasks []TaskMetrics `json:"executing_tasks"`
}
type TaskMetrics struct {
Type string `json:"type"`
MaxQueueTime int64 `json:"max_queue_ms"`
MinQueueTime int64 `json:"min_queue_ms"`
AvgQueueTime int64 `json:"avg_queue_ms"`
Count int64 `json:"count"`
}
const (
// GitCommitEnvKey defines the key to retrieve the commit corresponding to the current milvus version
// from the metrics information

View File

@ -88,6 +88,14 @@ type DataNodeQuotaMetrics struct {
// ProxyQuotaMetrics are metrics of Proxy.
type ProxyQuotaMetrics struct {
Hms HardwareMetrics
Rms []RateMetric
Hms HardwareMetrics
Rms []RateMetric
QueueMetrics []TaskQueueMetrics
}
type QuotaCenterMetrics struct {
QueryNodeMetrics map[int64]*QueryNodeQuotaMetrics
DataNodeMetrics map[int64]*DataNodeQuotaMetrics
ProxyMetrics map[int64]*ProxyQuotaMetrics
DataCoordMetrics *DataCoordQuotaMetrics
}