Unverified Commit 8ad6ab19 authored by schnee's avatar schnee Committed by GitHub
Browse files

Merge pull request #1364 from ifooth/joelei-ui

Add: namespace for metrics query
parents 26239aca d559c75f
master bcs-monitor bcs-webconsole dependabot/go_modules/bcs-services/bcs-argocd-manager/helm.sh/helm/v3-3.9.4 dependabot/go_modules/bcs-services/bcs-bscp/github.com/emicklei/go-restful/v3-3.8.0 dependabot/go_modules/bcs-services/bcs-bscp/github.com/tidwall/gjson-1.9.3 dependabot/go_modules/bcs-services/bcs-helm-manager/helm.sh/helm/v3-3.9.4 dependabot/go_modules/github.com/containernetworking/cni-0.8.1 dependabot/go_modules/github.com/coredns/coredns-1.6.6 dependabot/pip/bcs-ui/django-3.2.13 dependabot/pip/bcs-ui/django-3.2.14 dependabot/pip/bcs-ui/django-3.2.15 dependabot/pip/bcs-ui/django-3.2.16 dependabot/pip/bcs-ui/oauthlib-3.2.1 dependabot/pip/bcs-ui/protobuf-3.19.5 dependabot/pip/bcs-ui/pyjwt-2.4.0 dependabot/pip/bcs-ui/twisted-22.4.0 dev dev_form helm-deploy i18n iam_v3 joelei revert-1536-joelei v1.26.1-alpha.1 v1.26.x v1.27.x v1.28.0-alpha.37 v1.28.0-alpha.36 v1.28.0-alpha.35 v1.28.0-alpha.34 v1.28.0-alpha.33 v1.28.0-alpha.32 v1.28.0-alpha.31 v1.28.0-alpha.30 v1.28.0-alpha.29 v1.28.0-alpha.28 v1.28.0-alpha.27 v1.28.0-alpha.26 v1.28.0-alpha.25 v1.28.0-alpha.24 v1.28.0-alpha.23 v1.28.0-alpha.22 v1.28.0-alpha.21 v1.28.0-alpha.20 v1.28.0-alpha.19 v1.28.0-alpha.18 v1.28.0-alpha.17 v1.28.0-alpha.16 v1.28.0-alpha.13 v1.28.0-alpha.11 v1.28.0-alpha.10 v1.28.0-alpha.9 v1.28.0-alpha.8 v1.28.0-alpha.7 v1.28.0-alpha.6 v1.28.0-alpha.5 v1.28.0-alpha.4 v1.28.0-alpha.3 v1.28.0-alpha.2 v1.27.1-alpha.1 v1.27.0-alpha.34 v1.27.0-alpha.33 v1.27.0-alpha.32 v1.27.0-alpha.31 v1.27.0-alpha.30 v1.27.0-alpha.29 v1.27.0-alpha.28 v1.27.0-alpha.27 v1.27.0-alpha.26 v1.27.0-alpha.25 v1.27.0-alpha.24 v1.27.0-alpha.23 v1.27.0-alpha.22 v1.27.0-alpha.21 v1.27.0-alpha.20 v1.27.0-alpha.19 v1.27.0-alpha.18 v1.27.0-alpha.17 v1.27.0-alpha.15 v1.27.0-alpha.10 v1.27.0-alpha.9 v1.27.0-alpha.8 v1.27.0-alpha.7 v1.27.0-alpha.6 v1.27.0-alpha.5 v1.27.0-alpha.3 v1.27.0-alpha.2 v1.27.0-alpha.1 v1.26.1-alpha.1 v1.26.0 v1.26.0-alpha.6 v1.26.0-alpha.5 v1.26.0-alpha.4 v1.26.0-alpha.3 v1.26.0-alpha.2 v1.26.0-alpha.1 v1.25.0-alpha.15 v1.25.0-alpha.14 v1.25.0-alpha.13 v1.25.0-alpha.12 v1.25.0-alpha.11 v1.25.0-alpha.10 v1.25.0-alpha.9 v1.25.0-alpha.8 v1.25.0-alpha.7 v1.25.0-alpha.6 v1.25.0-alpha.5 v1.25.0-alpha.4 v1.25.0-alpha.3 v1.25.0-alpha.2 v0.25.1
No related merge requests found
Showing with 21 additions and 18 deletions
+21 -18
......@@ -23,6 +23,7 @@ from backend.container_service.observability.metric import constants
class BaseMetricSLZ(serializers.Serializer):
start_at = serializers.DateTimeField(required=False)
end_at = serializers.DateTimeField(required=False)
namespace = serializers.CharField(label='命名空间')
def validate(self, attrs):
now = arrow.now().timestamp
......@@ -41,7 +42,7 @@ class BaseMetricSLZ(serializers.Serializer):
class FetchPodMetricSLZ(BaseMetricSLZ):
""" 获取多个 Pod 指标信息 """
"""获取多个 Pod 指标信息"""
pod_name_list = serializers.ListField(
label='Pod 名称列表', child=serializers.CharField(max_length=64), allow_empty=False
......@@ -49,7 +50,7 @@ class FetchPodMetricSLZ(BaseMetricSLZ):
class FetchContainerMetricSLZ(BaseMetricSLZ):
""" 获取容器指标信息 """
"""获取容器指标信息"""
container_ids = serializers.ListField(
label='容器 ID 列表', child=serializers.CharField(max_length=64), allow_empty=False, required=False
......@@ -57,7 +58,7 @@ class FetchContainerMetricSLZ(BaseMetricSLZ):
class FetchMetricOverviewSLZ(serializers.Serializer):
""" 获取指标总览 """
"""获取指标总览"""
dimensions = serializers.ListField(
label='指标维度', child=serializers.CharField(max_length=16), allow_empty=True, required=False
......@@ -65,7 +66,7 @@ class FetchMetricOverviewSLZ(serializers.Serializer):
class FetchTargetsSLZ(serializers.Serializer):
""" 获取 Target 列表 """
"""获取 Target 列表"""
show_discovered = serializers.BooleanField(label='是否展示 Discovered', default=False, required=False)
......@@ -74,7 +75,7 @@ class FetchTargetsSLZ(serializers.Serializer):
class ServiceMonitorInfoSLZ(serializers.Serializer):
""" ServiceMonitor 基础信息 """
"""ServiceMonitor 基础信息"""
name = serializers.CharField(label='名称')
namespace = serializers.CharField(label='命名空间')
......@@ -86,7 +87,7 @@ class ServiceMonitorInfoSLZ(serializers.Serializer):
class ServiceMonitorUpdateSLZ(serializers.Serializer):
""" 更新 ServiceMonitor """
"""更新 ServiceMonitor"""
port = serializers.CharField(label='端口')
path = serializers.CharField(label='绝对路径')
......@@ -119,13 +120,13 @@ class ServiceMonitorUpdateSLZ(serializers.Serializer):
class ServiceMonitorCreateSLZ(ServiceMonitorInfoSLZ, ServiceMonitorUpdateSLZ):
""" 创建 ServiceMonitor """
"""创建 ServiceMonitor"""
service_name = serializers.CharField(label='Service 名称')
class ServiceMonitorBatchDeleteSLZ(serializers.Serializer):
""" 批量删除 ServiceMonitor """
"""批量删除 ServiceMonitor"""
service_monitors = serializers.ListField(
label='待删除 ServiceMonitor 列表', child=ServiceMonitorInfoSLZ(), allow_empty=False
......
......@@ -47,7 +47,7 @@ class ContainerMetricViewSet(SystemViewSet):
params = self.params_validate(self.serializer_class)
query_params = {
'cluster_id': cluster_id,
'namespace': METRICS_DEFAULT_NAMESPACE,
'namespace': params['namespace'],
'pod_name': pod_name if pod_name != URL_DEFAULT_PLACEHOLDER else METRICS_DEFAULT_POD_NAME,
'container_id_list': params['container_ids']
if params.get('container_ids')
......@@ -72,7 +72,7 @@ class ContainerMetricViewSet(SystemViewSet):
@action(methods=['POST'], url_path='cpu_usage', detail=False)
def cpu_usage(self, request, project_id, cluster_id, pod_name):
""" 获取指定 容器 CPU 使用情况 """
"""获取指定 容器 CPU 使用情况"""
response_data = self._common_query_handler(prom.get_container_cpu_usage_range, cluster_id, pod_name)
return Response(response_data)
......@@ -85,18 +85,18 @@ class ContainerMetricViewSet(SystemViewSet):
@action(methods=['POST'], url_path='memory_usage', detail=False)
def memory_usage(self, request, project_id, cluster_id, pod_name):
""" 获取 容器内存 使用情况 """
"""获取 容器内存 使用情况"""
response_data = self._common_query_handler(prom.get_container_memory_usage_range, cluster_id, pod_name)
return Response(response_data)
@action(methods=['POST'], url_path='disk_read', detail=False)
def disk_read(self, request, project_id, cluster_id, pod_name):
""" 获取 磁盘读 情况 """
"""获取 磁盘读 情况"""
response_data = self._common_query_handler(prom.get_container_disk_read, cluster_id, pod_name)
return Response(response_data)
@action(methods=['POST'], url_path='disk_write', detail=False)
def disk_write(self, request, project_id, cluster_id, pod_name):
""" 获取 磁盘写 情况 """
"""获取 磁盘写 情况"""
response_data = self._common_query_handler(prom.get_container_disk_write, cluster_id, pod_name)
return Response(response_data)
......@@ -37,29 +37,29 @@ class PodMetricViewSet(SystemViewSet):
"""
params = self.params_validate(self.serializer_class)
return query_metric_func(
cluster_id, METRICS_DEFAULT_NAMESPACE, params['pod_name_list'], params['start_at'], params['end_at']
cluster_id, params['namespace'], params['pod_name_list'], params['start_at'], params['end_at']
)
@action(methods=['POST'], url_path='cpu_usage', detail=False)
def cpu_usage(self, request, project_id, cluster_id):
""" 获取指定 Pod CPU 使用情况 """
"""获取指定 Pod CPU 使用情况"""
response_data = self._common_query_handler(prom.get_pod_cpu_usage_range, cluster_id)
return Response(response_data)
@action(methods=['POST'], url_path='memory_usage', detail=False)
def memory_usage(self, request, project_id, cluster_id):
""" 获取 Pod 内存使用情况 """
"""获取 Pod 内存使用情况"""
response_data = self._common_query_handler(prom.get_pod_memory_usage_range, cluster_id)
return Response(response_data)
@action(methods=['POST'], url_path='network_receive', detail=False)
def network_receive(self, request, project_id, cluster_id):
""" 获取 网络入流量 情况 """
"""获取 网络入流量 情况"""
response_data = self._common_query_handler(prom.get_pod_network_receive, cluster_id)
return Response(response_data)
@action(methods=['POST'], url_path='network_transmit', detail=False)
def network_transmit(self, request, project_id, cluster_id):
""" 获取 网络出流量 情况 """
"""获取 网络出流量 情况"""
response_data = self._common_query_handler(prom.get_pod_network_transmit, cluster_id)
return Response(response_data)
......@@ -122,6 +122,7 @@ class K8SContainerInfo(BaseInstanceView, viewsets.ViewSet):
ret_data = self.compose_container_data(container_id, container_spec, info, spec, status, labels)
break
ret_data['namespace'] = getitems(pod_info, ['data', 'metadata', 'namespace'])
return ret_data
def compose_pod_params(self, request, project_id, instance_id):
......
......@@ -1198,6 +1198,7 @@ class QueryContainerInfo(BaseAPI):
"image": image_split_str,
"container_ip": status.get("podIP", ""),
"host_name": spec.get("nodeName", ""),
"namespace": metadata.get("namespace", ""),
"container_name": info.get("name", ""),
}
break
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment