Skip to content

Commit 6218679

Browse files
committed
config rodan server port in metaserver.metricConfiguration
1 parent 7354247 commit 6218679

File tree

14 files changed

+63
-34
lines changed

14 files changed

+63
-34
lines changed

cmd/katalyst-agent/app/options/metaserver/metaserver.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ const defaultCustomNodeResourceCacheTTL = 15 * time.Second
5656

5757
const defaultCustomNodeConfigCacheTTL = 15 * time.Second
5858

59+
const defaultRodanServerPort = 9102
60+
5961
// MetaServerOptions holds all the configurations for metaserver.
6062
// we will not try to separate this structure into several individual
6163
// structures since it will not be used directly by other components; instead,
@@ -79,6 +81,7 @@ type MetaServerOptions struct {
7981
// configurations for metric-fetcher
8082
MetricInsurancePeriod time.Duration
8183
MetricProvisions []string
84+
RodanServerPort int
8285

8386
// configurations for pod-cache
8487
KubeletPodCacheSyncPeriod time.Duration
@@ -109,6 +112,7 @@ func NewMetaServerOptions() *MetaServerOptions {
109112

110113
MetricInsurancePeriod: defaultMetricInsurancePeriod,
111114
MetricProvisions: []string{metaserver.MetricProvisionerMalachite, metaserver.MetricProvisionerKubelet},
115+
RodanServerPort: defaultRodanServerPort,
112116

113117
KubeletPodCacheSyncPeriod: defaultKubeletPodCacheSyncPeriod,
114118
KubeletPodCacheSyncMaxRate: defaultKubeletPodCacheSyncMaxRate,
@@ -150,6 +154,8 @@ func (o *MetaServerOptions) AddFlags(fss *cliflag.NamedFlagSets) {
150154
"The meta server return metric data and MetricDataExpired if the update time of metric data is earlier than this period.")
151155
fs.StringSliceVar(&o.MetricProvisions, "metric-provisioners", o.MetricProvisions,
152156
"The provisioners that should be enabled by default")
157+
fs.IntVar(&o.RodanServerPort, "rodan-server-port", o.RodanServerPort,
158+
"The rodan metric provisioner server port")
153159

154160
fs.DurationVar(&o.KubeletPodCacheSyncPeriod, "kubelet-pod-cache-sync-period", o.KubeletPodCacheSyncPeriod,
155161
"The period of meta server to sync pod from kubelet 10255 port")
@@ -183,6 +189,7 @@ func (o *MetaServerOptions) ApplyTo(c *metaserver.MetaServerConfiguration) error
183189

184190
c.MetricInsurancePeriod = o.MetricInsurancePeriod
185191
c.MetricProvisions = o.MetricProvisions
192+
c.RodanServerPort = o.RodanServerPort
186193

187194
c.KubeletPodCacheSyncPeriod = o.KubeletPodCacheSyncPeriod
188195
c.KubeletPodCacheSyncMaxRate = rate.Limit(o.KubeletPodCacheSyncMaxRate)

pkg/config/agent/metaserver/agent.go

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,11 @@ const (
3232
type MetricConfiguration struct {
3333
MetricInsurancePeriod time.Duration
3434
MetricProvisions []string
35+
*RodanMetricConfiguration
36+
}
37+
38+
type RodanMetricConfiguration struct {
39+
RodanServerPort int
3540
}
3641

3742
type PodConfiguration struct {
@@ -65,10 +70,12 @@ type AgentConfiguration struct {
6570

6671
func NewAgentConfiguration() *AgentConfiguration {
6772
return &AgentConfiguration{
68-
MetricConfiguration: &MetricConfiguration{},
69-
PodConfiguration: &PodConfiguration{},
70-
NodeConfiguration: &NodeConfiguration{},
71-
CNRConfiguration: &CNRConfiguration{},
72-
CNCConfiguration: &CNCConfiguration{},
73+
MetricConfiguration: &MetricConfiguration{
74+
RodanMetricConfiguration: &RodanMetricConfiguration{},
75+
},
76+
PodConfiguration: &PodConfiguration{},
77+
NodeConfiguration: &NodeConfiguration{},
78+
CNRConfiguration: &CNRConfiguration{},
79+
CNCConfiguration: &CNCConfiguration{},
7380
}
7481
}

pkg/metaserver/agent/metric/metric_impl.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ func NewMetricsFetcher(baseConf *global.BaseConfiguration, metricConf *metaserve
233233
var enabledProvisioners []types.MetricsProvisioner
234234
for _, name := range metricConf.MetricProvisions {
235235
if f, ok := registeredProvisioners[name]; ok {
236-
enabledProvisioners = append(enabledProvisioners, f(baseConf, emitter, podFetcher, metricStore))
236+
enabledProvisioners = append(enabledProvisioners, f(baseConf, metricConf, emitter, podFetcher, metricStore))
237237
}
238238
}
239239

pkg/metaserver/agent/metric/metric_provisoner.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ func init() {
3838
RegisterProvisioners(metaserver.MetricProvisionerRodan, rodan.NewRodanMetricsProvisioner)
3939
}
4040

41-
type ProvisionerInitFunc func(baseConf *global.BaseConfiguration,
41+
type ProvisionerInitFunc func(baseConf *global.BaseConfiguration, metricConf *metaserver.MetricConfiguration,
4242
emitter metrics.MetricEmitter, fetcher pod.PodFetcher, metricStore *utilmetric.MetricStore) types.MetricsProvisioner
4343

4444
// provisioners stores the initializing function for each-provisioner

pkg/metaserver/agent/metric/provisioner/cgroup/provisioner.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,15 @@ import (
2020
"context"
2121

2222
"github.com/kubewharf/katalyst-core/pkg/config/agent/global"
23+
"github.com/kubewharf/katalyst-core/pkg/config/agent/metaserver"
2324
"github.com/kubewharf/katalyst-core/pkg/metaserver/agent/metric/types"
2425
"github.com/kubewharf/katalyst-core/pkg/metaserver/agent/pod"
2526
"github.com/kubewharf/katalyst-core/pkg/metrics"
2627
utilmetric "github.com/kubewharf/katalyst-core/pkg/util/metric"
2728
)
2829

2930
// NewCGroupMetricsProvisioner returns the default implementation of CGroup.
30-
func NewCGroupMetricsProvisioner(baseConf *global.BaseConfiguration,
31+
func NewCGroupMetricsProvisioner(baseConf *global.BaseConfiguration, _ *metaserver.MetricConfiguration,
3132
emitter metrics.MetricEmitter, _ pod.PodFetcher, metricStore *utilmetric.MetricStore) types.MetricsProvisioner {
3233
return &CGroupMetricsProvisioner{
3334
metricStore: metricStore,

pkg/metaserver/agent/metric/provisioner/kubelet/provisioner.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
statsapi "k8s.io/kubelet/pkg/apis/stats/v1alpha1"
2525

2626
"github.com/kubewharf/katalyst-core/pkg/config/agent/global"
27+
"github.com/kubewharf/katalyst-core/pkg/config/agent/metaserver"
2728
"github.com/kubewharf/katalyst-core/pkg/consts"
2829
"github.com/kubewharf/katalyst-core/pkg/metaserver/agent/metric/provisioner/kubelet/client"
2930
"github.com/kubewharf/katalyst-core/pkg/metaserver/agent/metric/types"
@@ -36,7 +37,7 @@ const (
3637
metricsNamKubeletSummaryUnHealthy = "kubelet_summary_unhealthy"
3738
)
3839

39-
func NewKubeletSummaryProvisioner(baseConf *global.BaseConfiguration,
40+
func NewKubeletSummaryProvisioner(baseConf *global.BaseConfiguration, _ *metaserver.MetricConfiguration,
4041
emitter metrics.MetricEmitter, _ pod.PodFetcher, metricStore *utilmetric.MetricStore) types.MetricsProvisioner {
4142
return &KubeletSummaryProvisioner{
4243
metricStore: metricStore,

pkg/metaserver/agent/metric/provisioner/malachite/provisioner.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import (
2727
"k8s.io/klog/v2"
2828

2929
"github.com/kubewharf/katalyst-core/pkg/config/agent/global"
30+
"github.com/kubewharf/katalyst-core/pkg/config/agent/metaserver"
3031
"github.com/kubewharf/katalyst-core/pkg/consts"
3132
"github.com/kubewharf/katalyst-core/pkg/metaserver/agent/metric/provisioner/malachite/client"
3233
malachitetypes "github.com/kubewharf/katalyst-core/pkg/metaserver/agent/metric/provisioner/malachite/types"
@@ -53,7 +54,7 @@ const (
5354
)
5455

5556
// NewMalachiteMetricsProvisioner returns the default implementation of MetricsFetcher.
56-
func NewMalachiteMetricsProvisioner(baseConf *global.BaseConfiguration,
57+
func NewMalachiteMetricsProvisioner(baseConf *global.BaseConfiguration, _ *metaserver.MetricConfiguration,
5758
emitter metrics.MetricEmitter, fetcher pod.PodFetcher, metricStore *utilmetric.MetricStore) types.MetricsProvisioner {
5859
return &MalachiteMetricsProvisioner{
5960
malachiteClient: client.NewMalachiteClient(fetcher),

pkg/metaserver/agent/metric/provisioner/malachite/provisioner_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"testing"
2121

2222
"github.com/kubewharf/katalyst-core/pkg/config/agent/global"
23+
"github.com/kubewharf/katalyst-core/pkg/config/agent/metaserver"
2324
malachitetypes "github.com/kubewharf/katalyst-core/pkg/metaserver/agent/metric/provisioner/malachite/types"
2425
"github.com/kubewharf/katalyst-core/pkg/metaserver/agent/pod"
2526
"github.com/kubewharf/katalyst-core/pkg/metrics"
@@ -32,7 +33,7 @@ func Test_noneExistMetricsProvisioner(t *testing.T) {
3233
store := utilmetric.NewMetricStore()
3334

3435
var err error
35-
implement := NewMalachiteMetricsProvisioner(&global.BaseConfiguration{}, metrics.DummyMetrics{}, &pod.PodFetcherStub{}, store)
36+
implement := NewMalachiteMetricsProvisioner(&global.BaseConfiguration{}, &metaserver.MetricConfiguration{}, metrics.DummyMetrics{}, &pod.PodFetcherStub{}, store)
3637

3738
fakeSystemCompute := &malachitetypes.SystemComputeData{
3839
CPU: []malachitetypes.CPU{

pkg/metaserver/agent/metric/provisioner/rodan/client/client.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@ type RodanClient struct {
3333
metricFunc MetricFunc
3434
}
3535

36-
func NewRodanClient(fetcher pod.PodFetcher, metricFunc MetricFunc) *RodanClient {
36+
func NewRodanClient(fetcher pod.PodFetcher, metricFunc MetricFunc, port int) *RodanClient {
3737
urls := make(map[string]string)
3838
for path := range types.MetricsMap {
39-
urls[path] = fmt.Sprintf("http://localhost:%d%s", types.RodanServerPort, path)
39+
urls[path] = fmt.Sprintf("http://localhost:%d%s", port, path)
4040
}
4141

4242
if metricFunc == nil {

pkg/metaserver/agent/metric/provisioner/rodan/client/client_node_test.go

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,19 +26,21 @@ import (
2626
)
2727

2828
func TestGetNodeMemoryStats(t *testing.T) {
29+
t.Parallel()
2930
ic := NewRodanClient(&FakePodFetcher{}, func(url string, params map[string]string) ([]byte, error) {
3031
return []byte(`{"data":[{"key":"memory_swaptotal","val":0},{"key":"memory_sreclaimable","val":573520},{"key":"memory_shmem","val":1643536},{"key":"memory_writeback","val":0},{"key":"memory_memavailable","val":19710408},{"key":"memory_pgsteal_kswapd","val":7067178},{"key":"memory_cached","val":16703864},{"key":"memory_memtotal","val":32614152},{"key":"memory_swapfree","val":0},{"key":"memory_buffers","val":360688},{"key":"memory_memfree","val":14053836},{"key":"memory_dirty","val":1124}]}`), nil
31-
})
32+
}, 9102)
3233

3334
res, err := ic.GetNodeMemoryStats()
3435
require.NoError(t, err)
3536
require.Equal(t, 12, len(res))
3637
}
3738

3839
func TestGetNUMAMemoryStats(t *testing.T) {
40+
t.Parallel()
3941
ic := NewRodanClient(&FakePodFetcher{}, func(url string, params map[string]string) ([]byte, error) {
4042
return []byte(`{"data":[{"key":"numastat_node0_memfree","val":14549598208},{"key":"numastat_node0_memtotal","val":33396891648}]}`), nil
41-
})
43+
}, 9102)
4244

4345
res, err := ic.GetNUMAMemoryStats()
4446
require.NoError(t, err)
@@ -48,19 +50,21 @@ func TestGetNUMAMemoryStats(t *testing.T) {
4850
}
4951

5052
func TestGetNodeCgroupMemoryStats(t *testing.T) {
53+
t.Parallel()
5154
ic := NewRodanClient(&FakePodFetcher{}, func(url string, params map[string]string) ([]byte, error) {
5255
return []byte(`{"data":[{"key":"qosgroupmem_besteffort_memory_rss","val":112414720},{"key":"qosgroupmem_besteffort_memory_usage","val":1244418048},{"key":"qosgroupmem_burstable_memory_rss","val":183828480},{"key":"qosgroupmem_burstable_memory_usage","val":377950208}]}`), nil
53-
})
56+
}, 9102)
5457

5558
res, err := ic.GetNodeCgroupMemoryStats()
5659
require.NoError(t, err)
5760
require.Equal(t, 4, len(res))
5861
}
5962

6063
func TestGetCoreCPUStats(t *testing.T) {
64+
t.Parallel()
6165
ic := NewRodanClient(&FakePodFetcher{}, func(url string, params map[string]string) ([]byte, error) {
6266
return []byte(`{"data":[{"key":"percorecpu_cpu5_sched_wait","val":0},{"key":"percorecpu_cpu0_usage","val":19},{"key":"percorecpu_cpu3_sched_wait","val":0},{"key":"percorecpu_cpu7_usage","val":53},{"key":"percorecpu_cpu0_sched_wait","val":0},{"key":"percorecpu_cpu6_usage","val":31},{"key":"percorecpu_cpu7_sched_wait","val":0},{"key":"percorecpu_cpu2_usage","val":23},{"key":"percorecpu_cpu1_usage","val":28},{"key":"percorecpu_cpu6_sched_wait","val":0},{"key":"percorecpu_cpu3_usage","val":78},{"key":"percorecpu_cpu4_sched_wait","val":0},{"key":"percorecpu_cpu2_sched_wait","val":0},{"key":"percorecpu_cpu1_sched_wait","val":0},{"key":"percorecpu_cpu5_usage","val":64},{"key":"percorecpu_cpu4_usage","val":32}]}`), nil
63-
})
67+
}, 9102)
6468

6569
res, err := ic.GetCoreCPUStats()
6670
require.NoError(t, err)
@@ -70,9 +74,10 @@ func TestGetCoreCPUStats(t *testing.T) {
7074
}
7175

7276
func TestGetNodeSysctl(t *testing.T) {
77+
t.Parallel()
7378
ic := NewRodanClient(&FakePodFetcher{}, func(url string, params map[string]string) ([]byte, error) {
7479
return []byte(`{"data":[{"key":"sysctl_vm_watermark_scale_factor","val":1000},{"key":"sysctl_tcp_mem_pressure","val":507145},{"key":"sysctl_tcp_mem_extreme","val":760716},{"key":"sysctl_tcp_mem_original","val":380358}]}`), nil
75-
})
80+
}, 9102)
7681

7782
res, err := ic.GetNodeSysctl()
7883
require.NoError(t, err)

0 commit comments

Comments
 (0)