Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions bcs-services/bcs-monitor/pkg/api/metrics/cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -161,3 +161,37 @@ func ClusterDiskioUsage(c context.Context, req *query.UsageQuery) (*promclient.R
}
return handler.ClusterDiskioUsage(rctx, req)
}

// ClusterCPURequestWithInitUsage 集群含 InitContainer 的 CPU 装箱率
// @Summary 集群含 InitContainer 的 CPU 装箱率
// @Tags Metrics
// @Success 200 {string} string
// @Router /cpu_request_with_init_usage [get]
func ClusterCPURequestWithInitUsage(c context.Context, req *query.UsageQuery) (*promclient.ResultData, error) {
rctx, err := rest.GetRestContext(c)
if err != nil {
return nil, err
}
handler, err := query.HandlerFactory(c, rctx.ClusterId)
if err != nil {
return nil, err
}
return handler.ClusterCPURequestWithInitUsage(rctx, req)
}

// ClusterMemoryRequestWithInitUsage 集群含 InitContainer 的内存装箱率
// @Summary 集群含 InitContainer 的内存装箱率
// @Tags Metrics
// @Success 200 {string} string
// @Router /memory_request_with_init_usage [get]
func ClusterMemoryRequestWithInitUsage(c context.Context, req *query.UsageQuery) (*promclient.ResultData, error) {
rctx, err := rest.GetRestContext(c)
if err != nil {
return nil, err
}
handler, err := query.HandlerFactory(c, rctx.ClusterId)
if err != nil {
return nil, err
}
return handler.ClusterMemoryRequestWithInitUsage(rctx, req)
}
30 changes: 30 additions & 0 deletions bcs-services/bcs-monitor/pkg/api/metrics/node.go
Original file line number Diff line number Diff line change
Expand Up @@ -438,3 +438,33 @@ func GetNodeDiskioUsage(c context.Context, req *UsageQuery) (*promclient.ResultD

return handleNodeMetric(rctx, promql, req)
}

// GetNodeCPURequestWithInitUsage 查询含 InitContainer 的 CPU 装箱率
// @Summary 查询含 InitContainer 的 CPU 装箱率
// @Tags Metrics
// @Success 200 {string} string
// @Router /nodes/:node/cpu_request_with_init_usage [get]
func GetNodeCPURequestWithInitUsage(c context.Context, req *UsageQuery) (*promclient.ResultData, error) {
rctx, err := rest.GetRestContext(c)
if err != nil {
return nil, err
}
promql := `bcs:node:cpu_request_with_init:usage{cluster_id="%<clusterId>s", node="%<node>s", %<provider>s}`

return handleNodeMetric(rctx, promql, req)
}

// GetNodeMemoryRequestWithInitUsage 查询含 InitContainer 的内存装箱率
// @Summary 查询含 InitContainer 的内存装箱率
// @Tags Metrics
// @Success 200 {string} string
// @Router /nodes/:node/memory_request_with_init_usage [get]
func GetNodeMemoryRequestWithInitUsage(c context.Context, req *UsageQuery) (*promclient.ResultData, error) {
rctx, err := rest.GetRestContext(c)
if err != nil {
return nil, err
}
promql := `bcs:node:memory_request_with_init:usage{cluster_id="%<clusterId>s", node="%<node>s", %<provider>s}`

return handleNodeMetric(rctx, promql, req)
}
16 changes: 16 additions & 0 deletions bcs-services/bcs-monitor/pkg/api/metrics/query/bcs_monitor.go
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,22 @@ func (BCSMonitorHandler) ClusterDiskioUsage(c *rest.Context, query *UsageQuery)
return handleClusterMetric(c, promql, query)
}

// ClusterCPURequestWithInitUsage implements Handler.
// nolint
func (BCSMonitorHandler) ClusterCPURequestWithInitUsage(c *rest.Context, query *UsageQuery) (*promclient.ResultData, error) {
promql := `bcs:cluster:cpu_request_with_init:usage{cluster_id="%<clusterId>s", %<provider>s}`

return handleClusterMetric(c, promql, query)
}

// ClusterMemoryRequestWithInitUsage implements Handler.
// nolint
func (BCSMonitorHandler) ClusterMemoryRequestWithInitUsage(c *rest.Context, query *UsageQuery) (*promclient.ResultData, error) {
promql := `bcs:cluster:memory_request_with_init:usage{cluster_id="%<clusterId>s", %<provider>s}`

return handleClusterMetric(c, promql, query)
}

// NewBCSMonitorHandler new handler
func NewBCSMonitorHandler() *BCSMonitorHandler {
return &BCSMonitorHandler{}
Expand Down
26 changes: 26 additions & 0 deletions bcs-services/bcs-monitor/pkg/api/metrics/query/bk_monitor.go
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,19 @@ func (h BKMonitorHandler) ClusterCPURequestUsage(c *rest.Context, query *UsageQu
return h.handleBKMonitorClusterMetric(c, promql, query)
}

// ClusterCPURequestWithInitUsage implements Handler.
// nolint
func (h BKMonitorHandler) ClusterCPURequestWithInitUsage(c *rest.Context, query *UsageQuery) (*promclient.ResultData, error) {
promql := `(sum(avg_over_time(bkmonitor:kube_pod_container_resource_requests{bcs_cluster_id="%<clusterID>s", ` +
`node!=""%<node>s, resource="cpu"}[2m])) + ` +
`sum(avg_over_time(bkmonitor:kube_pod_init_container_resource_requests{bcs_cluster_id="%<clusterID>s", ` +
`node!=""%<node>s, resource="cpu"}[2m]))) / ` +
`sum(avg_over_time(bkmonitor:kube_node_status_allocatable{bcs_cluster_id="%<clusterID>s", ` +
`node!=""%<node>s, resource="cpu"}[2m])) * 100`

return h.handleBKMonitorClusterMetric(c, promql, query)
}

// ClusterMemoryUsage implements Handler.
// nolint
func (h BKMonitorHandler) ClusterMemoryUsage(c *rest.Context, query *UsageQuery) (*promclient.ResultData, error) {
Expand All @@ -185,6 +198,19 @@ func (h BKMonitorHandler) ClusterMemoryRequestUsage(c *rest.Context, query *Usag
return h.handleBKMonitorClusterMetric(c, promql, query)
}

// ClusterMemoryRequestWithInitUsage implements Handler.
// nolint
func (h BKMonitorHandler) ClusterMemoryRequestWithInitUsage(c *rest.Context, query *UsageQuery) (*promclient.ResultData, error) {
promql := `(sum(avg_over_time(bkmonitor:kube_pod_container_resource_requests{bcs_cluster_id="%<clusterID>s", ` +
`node!=""%<node>s, resource="memory"}[2m])) + ` +
`sum(avg_over_time(bkmonitor:kube_pod_init_container_resource_requests{bcs_cluster_id="%<clusterID>s", ` +
`node!=""%<node>s, resource="memory"}[2m]))) / ` +
`sum(avg_over_time(bkmonitor:kube_node_status_allocatable{bcs_cluster_id="%<clusterID>s", ` +
`node!=""%<node>s, resource="memory"}[2m])) * 100`

return h.handleBKMonitorClusterMetric(c, promql, query)
}

// ClusterDiskUsage implements Handler.
// nolint
func (h BKMonitorHandler) ClusterDiskUsage(c *rest.Context, query *UsageQuery) (*promclient.ResultData, error) {
Expand Down
2 changes: 2 additions & 0 deletions bcs-services/bcs-monitor/pkg/api/metrics/query/handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ type Handler interface {
ClusterMemoryRequestUsage(c *rest.Context, query *UsageQuery) (*promclient.ResultData, error)
ClusterDiskUsage(c *rest.Context, query *UsageQuery) (*promclient.ResultData, error)
ClusterDiskioUsage(c *rest.Context, query *UsageQuery) (*promclient.ResultData, error)
ClusterCPURequestWithInitUsage(c *rest.Context, query *UsageQuery) (*promclient.ResultData, error)
ClusterMemoryRequestWithInitUsage(c *rest.Context, query *UsageQuery) (*promclient.ResultData, error)
}

// HandlerFactory 自动切换Prometheus/蓝鲸监控
Expand Down
4 changes: 4 additions & 0 deletions bcs-services/bcs-monitor/pkg/api/routes.go
Original file line number Diff line number Diff line change
Expand Up @@ -168,8 +168,10 @@ func registerMetricsRoutes() http.Handler {
route.Get("/overview", rest.Handle(metrics.GetClusterOverview))
route.Get("/cpu_usage", rest.Handle(metrics.ClusterCPUUsage))
route.Get("/cpu_request_usage", rest.Handle(metrics.ClusterCPURequestUsage))
route.Get("/cpu_request_with_init_usage", rest.Handle(metrics.ClusterCPURequestWithInitUsage))
route.Get("/memory_usage", rest.Handle(metrics.ClusterMemoryUsage))
route.Get("/memory_request_usage", rest.Handle(metrics.ClusterMemoryRequestUsage))
route.Get("/memory_request_with_init_usage", rest.Handle(metrics.ClusterMemoryRequestWithInitUsage))
route.Get("/disk_usage", rest.Handle(metrics.ClusterDiskUsage))
route.Get("/diskio_usage", rest.Handle(metrics.ClusterDiskioUsage))
route.Get("/pod_usage", rest.Handle(metrics.ClusterPodUsage))
Expand All @@ -180,8 +182,10 @@ func registerMetricsRoutes() http.Handler {
route.Post("/nodes/overviews", rest.Handle(metrics.ListNodeOverviews))
route.Get("/nodes/{node}/cpu_usage", rest.Handle(metrics.GetNodeCPUUsage))
route.Get("/nodes/{node}/cpu_request_usage", rest.Handle(metrics.GetNodeCPURequestUsage))
route.Get("/nodes/{node}/cpu_request_with_init_usage", rest.Handle(metrics.GetNodeCPURequestWithInitUsage))
route.Get("/nodes/{node}/memory_usage", rest.Handle(metrics.GetNodeMemoryUsage))
route.Get("/nodes/{node}/memory_request_usage", rest.Handle(metrics.GetNodeMemoryRequestUsage))
route.Get("/nodes/{node}/memory_request_with_init_usage", rest.Handle(metrics.GetNodeMemoryRequestWithInitUsage))
route.Get("/nodes/{node}/network_receive", rest.Handle(metrics.GetNodeNetworkReceiveUsage))
route.Get("/nodes/{node}/network_transmit", rest.Handle(metrics.GetNodeNetworkTransmitUsage))
route.Get("/nodes/{node}/disk_usage", rest.Handle(metrics.GetNodeDiskUsage))
Expand Down
4 changes: 4 additions & 0 deletions bcs-services/bcs-monitor/pkg/storegw/bcs_system/constants.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,13 @@ var AvailableNodeMetrics = []string{
"bcs:cluster:pod:used",
"bcs:cluster:cpu:request",
"bcs:cluster:cpu_request:usage",
"bcs:cluster:cpu_request_with_init:usage",
"bcs:cluster:memory:total",
"bcs:cluster:memory:used",
"bcs:cluster:memory:usage",
"bcs:cluster:memory:request",
"bcs:cluster:memory_request:usage",
"bcs:cluster:memory_request_with_init:usage",
"bcs:cluster:disk:total",
"bcs:cluster:disk:used",
"bcs:cluster:disk:usage",
Expand All @@ -41,6 +43,7 @@ var AvailableNodeMetrics = []string{
"bcs:node:cpu:request",
"bcs:node:cpu:usage",
"bcs:node:cpu_request:usage",
"bcs:node:cpu_request_with_init:usage",
"bcs:node:disk:usage",
"bcs:node:disk:used",
"bcs:node:disk:total",
Expand All @@ -50,6 +53,7 @@ var AvailableNodeMetrics = []string{
"bcs:node:memory:request",
"bcs:node:memory:usage",
"bcs:node:memory_request:usage",
"bcs:node:memory_request_with_init:usage",
"bcs:node:container_count",
"bcs:node:pod_count",
"bcs:node:pod_total",
Expand Down
20 changes: 20 additions & 0 deletions bcs-services/bcs-monitor/pkg/storegw/bcs_system/metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,11 @@ var metricsMaps = map[string]metricsFn{
return mp.client.GetClusterCPURequestUsage(mp.ctx, mp.projectID, mp.clusterID,
mp.startTime, mp.endTime, mp.stepDuration)
},
// GetClusterCPURequestWithInitUsage
"bcs:cluster:cpu_request_with_init:usage": func(mp metricsParams) ([]*prompb.TimeSeries, error) {
return mp.client.GetClusterCPURequestWithInitUsage(mp.ctx, mp.projectID, mp.clusterID,
mp.startTime, mp.endTime, mp.stepDuration)
},
// GetClusterMemoryTotal
"bcs:cluster:memory:total": func(mp metricsParams) ([]*prompb.TimeSeries, error) {
return mp.client.GetClusterMemoryTotal(mp.ctx, mp.projectID, mp.clusterID,
Expand All @@ -114,6 +119,11 @@ var metricsMaps = map[string]metricsFn{
return mp.client.GetClusterMemoryRequestUsage(mp.ctx, mp.projectID, mp.clusterID,
mp.startTime, mp.endTime, mp.stepDuration)
},
// GetClusterMemoryRequestWithInitUsage
"bcs:cluster:memory_request_with_init:usage": func(mp metricsParams) ([]*prompb.TimeSeries, error) {
return mp.client.GetClusterMemoryRequestWithInitUsage(mp.ctx, mp.projectID, mp.clusterID,
mp.startTime, mp.endTime, mp.stepDuration)
},
// GetClusterDiskTotal
"bcs:cluster:disk:total": func(mp metricsParams) ([]*prompb.TimeSeries, error) {
return mp.client.GetClusterDiskTotal(mp.ctx, mp.projectID, mp.clusterID,
Expand Down Expand Up @@ -185,6 +195,11 @@ var metricsMaps = map[string]metricsFn{
return mp.client.GetNodeCPURequestUsage(mp.ctx, mp.projectID, mp.clusterID, mp.node,
mp.startTime, mp.endTime, mp.stepDuration)
},
// GetNodeCPURequestWithInitUsage
"bcs:node:cpu_request_with_init:usage": func(mp metricsParams) ([]*prompb.TimeSeries, error) {
return mp.client.GetNodeCPURequestWithInitUsage(mp.ctx, mp.projectID, mp.clusterID, mp.node,
mp.startTime, mp.endTime, mp.stepDuration)
},
// GetNodeMemoryTotal
"bcs:node:memory:total": func(mp metricsParams) ([]*prompb.TimeSeries, error) {
return mp.client.GetNodeMemoryTotal(mp.ctx, mp.projectID, mp.clusterID, mp.node,
Expand All @@ -210,6 +225,11 @@ var metricsMaps = map[string]metricsFn{
return mp.client.GetNodeMemoryRequestUsage(mp.ctx, mp.projectID, mp.clusterID, mp.node,
mp.startTime, mp.endTime, mp.stepDuration)
},
// GetNodeMemoryRequestWithInitUsage
"bcs:node:memory_request_with_init:usage": func(mp metricsParams) ([]*prompb.TimeSeries, error) {
return mp.client.GetNodeMemoryRequestWithInitUsage(mp.ctx, mp.projectID, mp.clusterID, mp.node,
mp.startTime, mp.endTime, mp.stepDuration)
},
"bcs:node:disk:usage": func(mp metricsParams) ([]*prompb.TimeSeries, error) {
return mp.client.GetNodeDiskUsage(mp.ctx, mp.projectID, mp.clusterID, mp.node,
mp.startTime, mp.endTime, mp.stepDuration)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,10 @@ type MetricHandler interface {
step time.Duration) ([]*prompb.TimeSeries, error)
GetClusterDiskioTotal(ctx context.Context, projectId, clusterId string, start, end time.Time,
step time.Duration) ([]*prompb.TimeSeries, error)
GetClusterCPURequestWithInitUsage(ctx context.Context, projectId, clusterId string, start, end time.Time,
step time.Duration) ([]*prompb.TimeSeries, error)
GetClusterMemoryRequestWithInitUsage(ctx context.Context, projectId, clusterId string, start, end time.Time,
step time.Duration) ([]*prompb.TimeSeries, error)
GetClusterGroupNodeNum(ctx context.Context, projectId, clusterId, group string, start, end time.Time,
step time.Duration) ([]*prompb.TimeSeries, error)
GetClusterGroupMaxNodeNum(ctx context.Context, projectId, clusterId, group string, start, end time.Time,
Expand All @@ -130,6 +134,10 @@ type MetricHandler interface {
step time.Duration) ([]*prompb.TimeSeries, error)
GetNodeMemoryRequestUsage(ctx context.Context, projectId, clusterId, nodeName string, start, end time.Time,
step time.Duration) ([]*prompb.TimeSeries, error)
GetNodeCPURequestWithInitUsage(ctx context.Context, projectId, clusterId, nodeName string, start,
end time.Time, step time.Duration) ([]*prompb.TimeSeries, error)
GetNodeMemoryRequestWithInitUsage(ctx context.Context, projectId, clusterId, nodeName string, start,
end time.Time, step time.Duration) ([]*prompb.TimeSeries, error)
GetNodeDiskUsed(ctx context.Context, projectId, clusterId, nodeName string, start, end time.Time,
step time.Duration) ([]*prompb.TimeSeries, error)
GetNodeDiskTotal(ctx context.Context, projectId, clusterId, nodeName string, start, end time.Time,
Expand Down
Loading
Loading