Add metrics for proxy (#5987)

Signed-off-by: dragondriver <jiquan.long@zilliz.com>
pull/5996/head
dragondriver 2021-06-22 18:32:08 +08:00 committed by GitHub
parent 0978b93a21
commit fbaa847641
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 356 additions and 5 deletions

View File

@ -127,7 +127,7 @@ func (mr *MilvusRoles) runProxy(ctx context.Context, localMsg bool, alias string
}()
wg.Wait()
metrics.RegisterProxyNode()
metrics.RegisterProxy()
return pn
}

View File

@ -15,6 +15,7 @@ const (
subSystemRootCoord = "rootcoord"
subSystemDataCoord = "dataCoord"
subSystemDataNode = "dataNode"
subSystemProxy = "proxy"
)
/*
@ -216,9 +217,359 @@ func RegisterRootCoord() {
//prometheus.MustRegister(PanicCounter)
}
//RegisterProxyNode register ProxyNode metrics
func RegisterProxyNode() {
var (
// ProxyCreateCollectionCounter used to count the num of calls of CreateCollection
ProxyCreateCollectionCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: milvusNamespace,
Subsystem: subSystemProxy,
Name: "create_collection_total",
Help: "Counter of create collection",
}, []string{"status"})
// ProxyDropCollectionCounter used to count the num of calls of DropCollection
ProxyDropCollectionCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: milvusNamespace,
Subsystem: subSystemProxy,
Name: "drop_collection_total",
Help: "Counter of drop collection",
}, []string{"status"})
// ProxyHasCollectionCounter used to count the num of calls of HasCollection
ProxyHasCollectionCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: milvusNamespace,
Subsystem: subSystemProxy,
Name: "has_collection_total",
Help: "Counter of has collection",
}, []string{"status"})
// ProxyLoadCollectionCounter used to count the num of calls of LoadCollection
ProxyLoadCollectionCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: milvusNamespace,
Subsystem: subSystemProxy,
Name: "load_collection_total",
Help: "Counter of load collection",
}, []string{"status"})
// ProxyReleaseCollectionCounter used to count the num of calls of ReleaseCollection
ProxyReleaseCollectionCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: milvusNamespace,
Subsystem: subSystemProxy,
Name: "release_collection_total",
Help: "Counter of release collection",
}, []string{"status"})
// ProxyDescribeCollectionCounter used to count the num of calls of DescribeCollection
ProxyDescribeCollectionCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: milvusNamespace,
Subsystem: subSystemProxy,
Name: "describe_collection_total",
Help: "Counter of describe collection",
}, []string{"status"})
// ProxyGetCollectionStatisticsCounter used to count the num of calls of GetCollectionStatistics
ProxyGetCollectionStatisticsCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: milvusNamespace,
Subsystem: subSystemProxy,
Name: "get_collection_statistics_total",
Help: "Counter of get collection statistics",
}, []string{"status"})
// ProxyShowCollectionsCounter used to count the num of calls of ShowCollections
ProxyShowCollectionsCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: milvusNamespace,
Subsystem: subSystemProxy,
Name: "show_collections_total",
Help: "Counter of show collections",
}, []string{"status"})
// ProxyCreatePartitionCounter used to count the num of calls of CreatePartition
ProxyCreatePartitionCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: milvusNamespace,
Subsystem: subSystemProxy,
Name: "create_partition_total",
Help: "Counter of create partition",
}, []string{"status"})
// ProxyDropPartitionCounter used to count the num of calls of DropPartition
ProxyDropPartitionCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: milvusNamespace,
Subsystem: subSystemProxy,
Name: "drop_partition_total",
Help: "Counter of drop partition",
}, []string{"status"})
// ProxyHasPartitionCounter used to count the num of calls of HasPartition
ProxyHasPartitionCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: milvusNamespace,
Subsystem: subSystemProxy,
Name: "has_partition_total",
Help: "Counter of has partition",
}, []string{"status"})
// ProxyLoadPartitionsCounter used to count the num of calls of LoadPartitions
ProxyLoadPartitionsCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: milvusNamespace,
Subsystem: subSystemProxy,
Name: "load_partitions_total",
Help: "Counter of load partitions",
}, []string{"status"})
// ProxyReleasePartitionsCounter used to count the num of calls of ReleasePartitions
ProxyReleasePartitionsCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: milvusNamespace,
Subsystem: subSystemProxy,
Name: "release_partitions_total",
Help: "Counter of release partitions",
}, []string{"status"})
// ProxyGetPartitionStatisticsCounter used to count the num of calls of GetPartitionStatistics
ProxyGetPartitionStatisticsCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: milvusNamespace,
Subsystem: subSystemProxy,
Name: "get_partition_statistics_total",
Help: "Counter of get partition statistics",
}, []string{"status"})
// ProxyShowPartitionsCounter used to count the num of calls of ShowPartitions
ProxyShowPartitionsCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: milvusNamespace,
Subsystem: subSystemProxy,
Name: "show_partitions_total",
Help: "Counter of show partitions",
}, []string{"status"})
// ProxyCreateIndexCounter used to count the num of calls of CreateIndex
ProxyCreateIndexCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: milvusNamespace,
Subsystem: subSystemProxy,
Name: "create_index_counter",
Help: "Counter of create index",
}, []string{"status"})
// ProxyDescribeIndexCounter used to count the num of calls of DescribeIndex
ProxyDescribeIndexCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: milvusNamespace,
Subsystem: subSystemProxy,
Name: "describe_index_counter",
Help: "Counter of describe index",
}, []string{"status"})
// ProxyGetIndexStateCounter used to count the num of calls of GetIndexState
ProxyGetIndexStateCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: milvusNamespace,
Subsystem: subSystemProxy,
Name: "get_index_state_counter",
Help: "Counter of get index state",
}, []string{"status"})
// ProxyGetIndexBuildProgressCounter used to count the num of calls of GetIndexBuildProgress
ProxyGetIndexBuildProgressCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: milvusNamespace,
Subsystem: subSystemProxy,
Name: "get_index_build_progress_total",
Help: "Counter of get index build progress",
}, []string{"status"})
// ProxyDropIndexCounter used to count the num of calls of DropIndex
ProxyDropIndexCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: milvusNamespace,
Subsystem: subSystemProxy,
Name: "drop_index_total",
Help: "Counter of drop index",
}, []string{"status"})
// ProxyInsertCounter used to count the num of calls of Insert
ProxyInsertCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: milvusNamespace,
Subsystem: subSystemProxy,
Name: "insert_total",
Help: "Counter of insert",
}, []string{"status"})
// ProxySearchCounter used to count the num of calls of Search
ProxySearchCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: milvusNamespace,
Subsystem: subSystemProxy,
Name: "search_total",
Help: "Counter of search",
}, []string{"status"})
// ProxyRetrieveCounter used to count the num of calls of Retrieve
ProxyRetrieveCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: milvusNamespace,
Subsystem: subSystemProxy,
Name: "retrieve_total",
Help: "Counter of retrieve",
}, []string{"status"})
// ProxyFlushCounter used to count the num of calls of Flush
ProxyFlushCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: milvusNamespace,
Subsystem: subSystemProxy,
Name: "flush_total",
Help: "Counter of flush",
}, []string{"status"})
// ProxyQueryCounter used to count the num of calls of Query
ProxyQueryCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: milvusNamespace,
Subsystem: subSystemProxy,
Name: "query_total",
Help: "Counter of query",
}, []string{"status"})
// ProxyGetPersistentSegmentInfoCounter used to count the num of calls of GetPersistentSegmentInfo
ProxyGetPersistentSegmentInfoCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: milvusNamespace,
Subsystem: subSystemProxy,
Name: "get_persistent_segment_info_total",
Help: "Counter of get persistent segment info",
}, []string{"status"})
// ProxyGetQuerySegmentInfoCounter used to count the num of calls of GetQuerySegmentInfo
ProxyGetQuerySegmentInfoCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: milvusNamespace,
Subsystem: subSystemProxy,
Name: "get_query_segment_info_total",
Help: "Counter of get query segment info",
}, []string{"status"})
// ProxyDummyCounter used to count the num of calls of Dummy
ProxyDummyCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: milvusNamespace,
Subsystem: subSystemProxy,
Name: "dummy_total",
Help: "Counter of dummy",
}, []string{"status"})
// ProxyRegisterLinkCounter used to count the num of calls of RegisterLink
ProxyRegisterLinkCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: milvusNamespace,
Subsystem: subSystemProxy,
Name: "register_link_total",
Help: "Counter of register link",
}, []string{"status"})
// ProxyGetComponentStatesCounter used to count the num of calls of GetComponentStates
ProxyGetComponentStatesCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: milvusNamespace,
Subsystem: subSystemProxy,
Name: "get_component_states_total",
Help: "Counter of get component states",
}, []string{"status"})
// ProxyGetStatisticsChannelCounter used to count the num of calls of GetStatisticsChannel
ProxyGetStatisticsChannelCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: milvusNamespace,
Subsystem: subSystemProxy,
Name: "get_statistics_channel_total",
Help: "Counter of get statistics channel",
}, []string{"status"})
// ProxyInvalidateCollectionMetaCacheCounter used to count the num of calls of InvalidateCollectionMetaCache
ProxyInvalidateCollectionMetaCacheCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: milvusNamespace,
Subsystem: subSystemProxy,
Name: "invalidate_collection_meta_cache_total",
Help: "Counter of invalidate collection meta cache",
}, []string{"status"})
// ProxyGetDdChannelCounter used to count the num of calls of GetDdChannel
ProxyGetDdChannelCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: milvusNamespace,
Subsystem: subSystemProxy,
Name: "get_dd_channel_total",
Help: "Counter of get dd channel",
}, []string{"status"})
// ProxyReleaseDQLMessageStreamCounter used to count the num of calls of ReleaseDQLMessageStream
ProxyReleaseDQLMessageStreamCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: milvusNamespace,
Subsystem: subSystemProxy,
Name: "release_dql_message_stream_total",
Help: "Counter of release dql message stream",
}, []string{"status"})
)
//RegisterProxy register ProxyNode metrics
func RegisterProxy() {
prometheus.MustRegister(ProxyCreateCollectionCounter)
prometheus.MustRegister(ProxyDropCollectionCounter)
prometheus.MustRegister(ProxyHasCollectionCounter)
prometheus.MustRegister(ProxyLoadCollectionCounter)
prometheus.MustRegister(ProxyReleaseCollectionCounter)
prometheus.MustRegister(ProxyDescribeCollectionCounter)
prometheus.MustRegister(ProxyGetCollectionStatisticsCounter)
prometheus.MustRegister(ProxyShowCollectionsCounter)
prometheus.MustRegister(ProxyCreatePartitionCounter)
prometheus.MustRegister(ProxyDropPartitionCounter)
prometheus.MustRegister(ProxyHasPartitionCounter)
prometheus.MustRegister(ProxyLoadPartitionsCounter)
prometheus.MustRegister(ProxyReleasePartitionsCounter)
prometheus.MustRegister(ProxyGetPartitionStatisticsCounter)
prometheus.MustRegister(ProxyShowPartitionsCounter)
prometheus.MustRegister(ProxyCreateIndexCounter)
prometheus.MustRegister(ProxyDescribeIndexCounter)
prometheus.MustRegister(ProxyGetIndexStateCounter)
prometheus.MustRegister(ProxyGetIndexBuildProgressCounter)
prometheus.MustRegister(ProxyDropIndexCounter)
prometheus.MustRegister(ProxyInsertCounter)
prometheus.MustRegister(ProxySearchCounter)
prometheus.MustRegister(ProxyRetrieveCounter)
prometheus.MustRegister(ProxyFlushCounter)
prometheus.MustRegister(ProxyQueryCounter)
prometheus.MustRegister(ProxyGetPersistentSegmentInfoCounter)
prometheus.MustRegister(ProxyGetQuerySegmentInfoCounter)
prometheus.MustRegister(ProxyDummyCounter)
prometheus.MustRegister(ProxyRegisterLinkCounter)
prometheus.MustRegister(ProxyGetComponentStatesCounter)
prometheus.MustRegister(ProxyGetStatisticsChannelCounter)
prometheus.MustRegister(ProxyInvalidateCollectionMetaCacheCounter)
prometheus.MustRegister(ProxyGetDdChannelCounter)
prometheus.MustRegister(ProxyReleaseDQLMessageStreamCounter)
}
//RegisterQueryCoord register QueryCoord metrics
@ -238,7 +589,7 @@ var (
Namespace: milvusNamespace,
Subsystem: subSystemDataCoord,
Name: "list_of_data_node",
Help: "List of data nodes regsitered within etcd",
Help: "List of data nodes registered within etcd",
}, []string{"status"},
)
)

View File

@ -11,7 +11,7 @@ func TestRegisterMetrics(t *testing.T) {
RegisterDataCoord()
RegisterIndexNode()
RegisterIndexCoord()
RegisterProxyNode()
RegisterProxy()
RegisterQueryNode()
RegisterQueryCoord()
RegisterMsgStreamCoord()