From 6d1330834264864b838cfa8de2b045f0cf9a3f51 Mon Sep 17 00:00:00 2001 From: xuanjinlong Date: Fri, 30 May 2025 16:27:26 +0800 Subject: [PATCH] feat: support prisdb kvcache data plane metrics Signed-off-by: Xuanjinlong <15563983051@163.com> --- api/orchestration/v1alpha1/kvcache_types.go | 4 ++++ pkg/controller/kvcache/backends/hpkv.go | 26 ++++++++++++++++++++- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/api/orchestration/v1alpha1/kvcache_types.go b/api/orchestration/v1alpha1/kvcache_types.go index 0273e4c71..c086aa529 100644 --- a/api/orchestration/v1alpha1/kvcache_types.go +++ b/api/orchestration/v1alpha1/kvcache_types.go @@ -104,6 +104,10 @@ type KVCacheSpec struct { // cache's service // +kubebuilder:validation:Optional Service ServiceSpec `json:"service,omitempty"` + + // kvcache hpkv monitor agent for member registration + // +kubebuilder:validation:Optional + HpkvMonitorAgent *RuntimeSpec `json:"hpkvmonitoragent,omitempty"` } // KVCacheStatus defines the observed state of KVCache diff --git a/pkg/controller/kvcache/backends/hpkv.go b/pkg/controller/kvcache/backends/hpkv.go index 046691a2b..f47f466b7 100644 --- a/pkg/controller/kvcache/backends/hpkv.go +++ b/pkg/controller/kvcache/backends/hpkv.go @@ -262,7 +262,7 @@ func buildCacheStatefulSet(kvCache *orchestrationv1alpha1.KVCache) *appsv1.State annotations := map[string]string{ "prometheus.io/scrape": "true", - "prometheus.io/port": strconv.Itoa(params.AdminPort), + "prometheus.io/port": strconv.Itoa(2112), "prometheus.io/path": "/metrics", } rdmaKey := corev1.ResourceName("vke.volcengine.com/rdma") @@ -284,6 +284,8 @@ func buildCacheStatefulSet(kvCache *orchestrationv1alpha1.KVCache) *appsv1.State "-v", "$AIBRIX_KVCACHE_BLOCK_SIZE_IN_BYTES", "-b", "$AIBRIX_KVCACHE_BLOCK_COUNT", "--acl", "any", + "-A", "$AIBRIX_KVCACHE_RDMA_IP", + "-P", "$AIBRIX_KVCACHE_ADMIN_PORT", } kvCacheServerArgsStr := strings.Join(kvCacheServerArgs, " ") privileged := false // let's use fine-grained permission @@ -358,6 +360,28 @@ func buildCacheStatefulSet(kvCache *orchestrationv1alpha1.KVCache) *appsv1.State }, }, }, + { + Name: "kvcache-hpkv-monitor-agent", + Image: kvCache.Spec.HpkvMonitorAgent.Image, + ImagePullPolicy: corev1.PullPolicy(kvCache.Spec.HpkvMonitorAgent.ImagePullPolicy), + Command: []string{ + "/bin/bash", + "-c", + ` + RDMA_IP=$(ip addr show dev eth1 | grep 'inet ' | awk '{print $2}' | awk -F/ '{print $1}') + echo "Using RDMA IP: $RDMA_IP" + ./monitor_agent --hpkvAddr=$RDMA_IP + `, + }, + Ports: []corev1.ContainerPort{ + { + Name: "hpkv", + ContainerPort: int32(2112), + Protocol: corev1.ProtocolTCP, + }, + }, + Resources: kvCache.Spec.HpkvMonitorAgent.Resources, + }, }, Volumes: []corev1.Volume{ {