mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-09-24 21:08:30 +00:00
feat: 添加组件监控;TerminalModel添加type字段; (#5206)
* feat: 添加组件监控;TerminalModel添加type字段; * feat: Terminal序列类添加type字段 * feat: Terminal序列类添加type字段为只读 * feat: 修改组件status文案 * feat: 取消上传组件状态序列类count字段 * reactor: 修改termina/models目录结构 * feat: 修改ComponentTypeChoices * feat: 取消考虑CoreComponent类型 * feat: 修改Terminal status判断逻辑 * feat: 终端列表添加status过滤; 组件状态序列类添加default值 * feat: 添加PrometheusMetricsAPI * feat: 修改PrometheusMetricsAPI Co-authored-by: Bai <bugatti_it@163.com>
This commit is contained in:
@@ -4,3 +4,4 @@ from .terminal import *
|
||||
from .session import *
|
||||
from .storage import *
|
||||
from .command import *
|
||||
from .components import *
|
||||
|
25
apps/terminal/serializers/components.py
Normal file
25
apps/terminal/serializers/components.py
Normal file
@@ -0,0 +1,25 @@
|
||||
|
||||
from rest_framework import serializers
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
|
||||
class ComponentsStateSerializer(serializers.Serializer):
|
||||
# system
|
||||
system_cpu_load_1 = serializers.FloatField(
|
||||
required=False, default=0, label=_("System cpu load 1 minutes")
|
||||
)
|
||||
system_memory_used_percent = serializers.FloatField(
|
||||
required=False, default=0, label=_('System memory used percent')
|
||||
)
|
||||
system_disk_used_percent = serializers.FloatField(
|
||||
required=False, default=0, label=_('System disk used percent')
|
||||
)
|
||||
# sessions
|
||||
session_active_count = serializers.IntegerField(
|
||||
required=False, default=0, label=_("Session active count")
|
||||
)
|
||||
|
||||
def save(self, **kwargs):
|
||||
request = self.context['request']
|
||||
terminal = request.user.terminal
|
||||
terminal.state = self.validated_data
|
@@ -6,19 +6,25 @@ from common.utils import is_uuid
|
||||
from ..models import (
|
||||
Terminal, Status, Session, Task, CommandStorage, ReplayStorage
|
||||
)
|
||||
from .components import ComponentsStateSerializer
|
||||
|
||||
|
||||
class TerminalSerializer(BulkModelSerializer):
|
||||
session_online = serializers.SerializerMethodField()
|
||||
is_alive = serializers.BooleanField(read_only=True)
|
||||
status = serializers.CharField(read_only=True)
|
||||
status_display = serializers.CharField(read_only=True)
|
||||
state = ComponentsStateSerializer(read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = Terminal
|
||||
fields = [
|
||||
'id', 'name', 'remote_addr', 'http_port', 'ssh_port',
|
||||
'id', 'name', 'type', 'remote_addr', 'http_port', 'ssh_port',
|
||||
'comment', 'is_accepted', "is_active", 'session_online',
|
||||
'is_alive', 'date_created', 'command_storage', 'replay_storage'
|
||||
'is_alive', 'date_created', 'command_storage', 'replay_storage',
|
||||
'status', 'status_display', 'state'
|
||||
]
|
||||
read_only_fields = ['type', 'date_created']
|
||||
|
||||
@staticmethod
|
||||
def get_kwargs_may_be_uuid(value):
|
||||
|
Reference in New Issue
Block a user