diff --git a/agent/app/api/v2/container.go b/agent/app/api/v2/container.go index f24e84338..7f3786197 100644 --- a/agent/app/api/v2/container.go +++ b/agent/app/api/v2/container.go @@ -439,7 +439,7 @@ func (b *BaseApi) ContainerItemStats(c *gin.Context) { return } - data, err := containerService.ContainerItemStats(req) + data, err := containerService.ContainerItemStats(c.Request.Context(), req) if err != nil { helper.InternalServer(c, err) return diff --git a/agent/app/service/container.go b/agent/app/service/container.go index 62907c4f2..1a989f28a 100644 --- a/agent/app/service/container.go +++ b/agent/app/service/container.go @@ -81,7 +81,7 @@ type IContainerService interface { ContainerUpgrade(req dto.ContainerUpgrade) error ContainerInfo(req dto.OperationWithName) (*dto.ContainerOperate, error) ContainerListStats() ([]dto.ContainerListStats, error) - ContainerItemStats(req dto.OperationWithName) (dto.ContainerItemStats, error) + ContainerItemStats(ctx context.Context, req dto.OperationWithName) (dto.ContainerItemStats, error) LoadResourceLimit() (*dto.ResourceLimit, error) ContainerRename(req dto.ContainerRename) error ContainerCommit(req dto.ContainerCommit) error @@ -248,15 +248,15 @@ func (u *ContainerService) LoadStatus() (dto.ContainerStatus, error) { } return data, nil } -func (u *ContainerService) ContainerItemStats(req dto.OperationWithName) (dto.ContainerItemStats, error) { +func (u *ContainerService) ContainerItemStats(ctx context.Context, req dto.OperationWithName) (dto.ContainerItemStats, error) { var data dto.ContainerItemStats client, err := docker.NewDockerClient() if err != nil { return data, err } + defer client.Close() if req.Name != "system" { - defer client.Close() - containerInfo, _, err := client.ContainerInspectWithRaw(context.Background(), req.Name, true) + containerInfo, _, err := client.ContainerInspectWithRaw(ctx, req.Name, true) if err != nil { return data, err } @@ -265,7 +265,7 @@ func (u *ContainerService) ContainerItemStats(req dto.OperationWithName) (dto.Co return data, nil } - usage, err := client.DiskUsage(context.Background(), types.DiskUsageOptions{}) + usage, err := client.DiskUsage(ctx, types.DiskUsageOptions{}) if err != nil { return data, err } diff --git a/frontend/src/api/modules/container.ts b/frontend/src/api/modules/container.ts index a7dc42db2..e5176cfa5 100644 --- a/frontend/src/api/modules/container.ts +++ b/frontend/src/api/modules/container.ts @@ -82,10 +82,11 @@ export const cleanContainerLog = (containerName: string, operateNode?: string) = return http.post(`/containers/clean/log${params}`, { name: containerName }, TimeoutEnum.T_60S); }; export const containerItemStats = (containerID: string, currentNode?: string) => { + const timeout = containerID === 'system' ? TimeoutEnum.T_5M : TimeoutEnum.T_60S; return http.post( `/containers/item/stats`, { name: containerID }, - TimeoutEnum.T_60S, + timeout, currentNode ? { CurrentNode: currentNode } : undefined, ); };