pull/17608/head
fuwx 1 year ago
parent fbbfaddd85
commit 6af3f00c9b
No known key found for this signature in database
GPG Key ID: C8FA8C18DFB4702B

@ -1,4 +1,4 @@
name: Build DIFY WEB Docker Image name: Build Dify WEB Docker Image
on: on:
push: push:

@ -14,6 +14,7 @@ from core.model_runtime.utils.encoders import jsonable_encoder
from extensions.ext_database import db from extensions.ext_database import db
from libs.helper import alphanumeric, uuid_value from libs.helper import alphanumeric, uuid_value
from libs.login import login_required from libs.login import login_required
from libs.apo_utils import APOUtils
from services.tools.api_tools_manage_service import ApiToolManageService from services.tools.api_tools_manage_service import ApiToolManageService
from services.tools.builtin_tools_manage_service import BuiltinToolManageService from services.tools.builtin_tools_manage_service import BuiltinToolManageService
from services.tools.tool_labels_service import ToolLabelsService from services.tools.tool_labels_service import ToolLabelsService
@ -587,39 +588,6 @@ class APOToolBuiltinListApi(Resource):
] ]
) )
def get_step(start_time, end_time):
time_diff = end_time - start_time
SECOND = 1000000 # microseconds
MINUTE = 60 * SECOND
HOUR = 60 * MINUTE
step = SECOND # default step is 1 second
if time_diff <= 15 * MINUTE:
step = 30 * SECOND
elif time_diff <= 30 * MINUTE:
step = 1 * MINUTE
elif time_diff <= 1 * HOUR:
step = 2 * MINUTE
elif time_diff <= 1.5 * HOUR:
step = 3 * MINUTE
elif time_diff <= 3 * HOUR:
step = 6 * MINUTE
elif time_diff <= 6 * HOUR:
step = 12 * MINUTE
elif time_diff <= 12 * HOUR:
step = 24 * MINUTE
elif time_diff <= 15 * HOUR:
step = 30 * MINUTE
elif time_diff <= 30 * HOUR:
step = 1 * HOUR
else:
step = ((time_diff + 30 * SECOND - 1) // (30 * SECOND)) * SECOND
return step
def get_url(type): def get_url(type):
match type: match type:
case "metric": case "metric":
@ -654,7 +622,7 @@ class APOToolPreviewApi(Resource):
"params": args["params"], "params": args["params"],
"startTime": args["startTime"], "startTime": args["startTime"],
"endTime": args["endTime"], "endTime": args["endTime"],
"step": get_step(args["startTime"], args["endTime"]), "step": APOUtils.get_step(args["startTime"], args["endTime"]),
} }
resp = requests.post(url, json=json) resp = requests.post(url, json=json)
raw = resp.json()['result'] raw = resp.json()['result']
@ -697,7 +665,7 @@ class APOToolPreviewApi(Resource):
'anormalTypes': "app,container,infra,network,error,appInstance", 'anormalTypes': "app,container,infra,network,error,appInstance",
'deltaStartTime': args["startTime"], 'deltaStartTime': args["startTime"],
'deltaEndTime': args["endTime"], 'deltaEndTime': args["endTime"],
'step': get_step(args["startTime"], args["endTime"]), 'step': APOUtils.get_step(args["startTime"], args["endTime"]),
} }
resp = requests.post(url, json=json) resp = requests.post(url, json=json)
raw = resp.json() raw = resp.json()

@ -7,6 +7,7 @@ import requests
from configs import dify_config from configs import dify_config
from core.tools.builtin_tool.tool import BuiltinTool from core.tools.builtin_tool.tool import BuiltinTool
from core.tools.entities.tool_entities import ToolInvokeMessage from core.tools.entities.tool_entities import ToolInvokeMessage
from libs.apo_utils import APOUtils
class AlertTool(BuiltinTool): class AlertTool(BuiltinTool):
@ -30,7 +31,7 @@ class AlertTool(BuiltinTool):
'anormalTypes': "app,container,infra,network,error,appInstance", 'anormalTypes': "app,container,infra,network,error,appInstance",
'deltaStartTime': start_time, 'deltaStartTime': start_time,
'deltaEndTime': end_time, 'deltaEndTime': end_time,
'step': self.get_step(start_time, end_time), 'step': APOUtils.get_step(start_time, end_time),
} }
resp = requests.post(dify_config.APO_BACKEND_URL + '/api/alerts/descendant/anormal/delta', json=params) resp = requests.post(dify_config.APO_BACKEND_URL + '/api/alerts/descendant/anormal/delta', json=params)
list = resp.json() list = resp.json()
@ -39,36 +40,4 @@ class AlertTool(BuiltinTool):
'display': True, 'display': True,
'data': list, 'data': list,
}) })
yield self.create_text_message(list) yield self.create_text_message(list)
def get_step(self, start_time, end_time):
time_diff = end_time - start_time
SECOND = 1000000 # microseconds
MINUTE = 60 * SECOND
HOUR = 60 * MINUTE
step = SECOND # default step is 1 second
if time_diff <= 15 * MINUTE:
step = 30 * SECOND
elif time_diff <= 30 * MINUTE:
step = 1 * MINUTE
elif time_diff <= 1 * HOUR:
step = 2 * MINUTE
elif time_diff <= 1.5 * HOUR:
step = 3 * MINUTE
elif time_diff <= 3 * HOUR:
step = 6 * MINUTE
elif time_diff <= 6 * HOUR:
step = 12 * MINUTE
elif time_diff <= 12 * HOUR:
step = 24 * MINUTE
elif time_diff <= 15 * HOUR:
step = 30 * MINUTE
elif time_diff <= 30 * HOUR:
step = 1 * HOUR
else:
step = ((time_diff + 30 * SECOND - 1) // (30 * SECOND)) * SECOND
return step

@ -14,6 +14,7 @@ description:
display: display:
type: alert type: alert
title: alert title: alert
uint: alert
parameters: parameters:
- name: service - name: service
type: string type: string

@ -7,7 +7,7 @@ import requests
from configs import dify_config from configs import dify_config
from core.tools.builtin_tool.tool import BuiltinTool from core.tools.builtin_tool.tool import BuiltinTool
from core.tools.entities.tool_entities import ToolInvokeMessage from core.tools.entities.tool_entities import ToolInvokeMessage
from core.tools.builtin_tool.providers.utils import APOUtils from libs.apo_utils import APOUtils
class SelectContainerCPUTool(BuiltinTool): class SelectContainerCPUTool(BuiltinTool):
def _invoke( def _invoke(

@ -8,6 +8,7 @@ identity:
display: display:
type: metric type: metric
title: 基础设施情况 - 容器CPU - 容器CPU使用率 - Containerd title: 基础设施情况 - 容器CPU - 容器CPU使用率 - Containerd
uint: percent(0-100)百分比
description: description:
human: human:
en_US: Query the CPU utilization of the container en_US: Query the CPU utilization of the container

@ -7,7 +7,7 @@ import requests
from configs import dify_config from configs import dify_config
from core.tools.builtin_tool.tool import BuiltinTool from core.tools.builtin_tool.tool import BuiltinTool
from core.tools.entities.tool_entities import ToolInvokeMessage from core.tools.entities.tool_entities import ToolInvokeMessage
from core.tools.builtin_tool.providers.utils import APOUtils from libs.apo_utils import APOUtils
class SelectContainerRSSTool(BuiltinTool): class SelectContainerRSSTool(BuiltinTool):
def _invoke( def _invoke(

@ -14,6 +14,7 @@ description:
display: display:
type: metric type: metric
title: 基础设施情况 - 容器内存 - 容器内存使用率 - Containerd title: 基础设施情况 - 容器内存 - 容器内存使用率 - Containerd
uint: bytes 字节
parameters: parameters:
- name: pod - name: pod
type: string type: string

@ -7,7 +7,7 @@ import requests
from configs import dify_config from configs import dify_config
from core.tools.builtin_tool.tool import BuiltinTool from core.tools.builtin_tool.tool import BuiltinTool
from core.tools.entities.tool_entities import ToolInvokeMessage from core.tools.entities.tool_entities import ToolInvokeMessage
from core.tools.builtin_tool.providers.utils import APOUtils from libs.apo_utils import APOUtils
class ContainerRTTTool(BuiltinTool): class ContainerRTTTool(BuiltinTool):
def _invoke( def _invoke(

@ -14,6 +14,7 @@ description:
display: display:
type: metric type: metric
title: 基础设施情况 - 容器网络 - 与下游服务RTT title: 基础设施情况 - 容器网络 - 与下游服务RTT
uint: s 秒
parameters: parameters:
- name: pod - name: pod
type: string type: string

@ -14,6 +14,7 @@ description:
display: display:
type: log type: log
title: log title: log
uint: log
parameters: parameters:
- name: service - name: service
type: string type: string

@ -7,7 +7,7 @@ import requests
from configs import dify_config from configs import dify_config
from core.tools.builtin_tool.tool import BuiltinTool from core.tools.builtin_tool.tool import BuiltinTool
from core.tools.entities.tool_entities import ToolInvokeMessage from core.tools.entities.tool_entities import ToolInvokeMessage
from core.tools.builtin_tool.providers.utils import APOUtils from libs.apo_utils import APOUtils
class SelectCPUTool(BuiltinTool): class SelectCPUTool(BuiltinTool):
def _invoke( def _invoke(

@ -14,6 +14,7 @@ description:
display: display:
type: metric type: metric
title: 宿主机监控指标 - Quick CPU / Mem / Disk - CPU Busy title: 宿主机监控指标 - Quick CPU / Mem / Disk - CPU Busy
uint: percent(0-100)百分比
parameters: parameters:
- name: node - name: node
type: string type: string

@ -14,6 +14,7 @@ description:
display: display:
type: topology type: topology
title: topology title: topology
uint: toplogy
parameters: parameters:
- name: service - name: service
type: string type: string

@ -320,6 +320,7 @@ class ToolDescription(BaseModel):
class APODisPlay(BaseModel): class APODisPlay(BaseModel):
type: str = Field(..., description="The type of the apo data display") type: str = Field(..., description="The type of the apo data display")
uint: str = Field(..., description="The unit of the apo data display")
title: str = Field(..., description="The title of the apo data display") title: str = Field(..., description="The title of the apo data display")
class ToolEntity(BaseModel): class ToolEntity(BaseModel):

@ -1,4 +1,3 @@
class APOUtils: class APOUtils:
@classmethod @classmethod
Loading…
Cancel
Save