0813
This commit is contained in:
@@ -7,6 +7,8 @@ import (
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"auto-check/pkg/stress"
|
||||
)
|
||||
|
||||
// PhaseResult 单阶段结果
|
||||
@@ -19,23 +21,25 @@ type PhaseResult struct {
|
||||
|
||||
// HostResult 单台设备结果(MAC 为唯一标识)
|
||||
type HostResult struct {
|
||||
MAC string `json:"mac" yaml:"mac"`
|
||||
IP string `json:"ip" yaml:"ip"`
|
||||
Alive bool `json:"alive" yaml:"alive"`
|
||||
OpenPort int `json:"open_port,omitempty" yaml:"open_port,omitempty"`
|
||||
SSHLogin bool `json:"ssh_login" yaml:"ssh_login"`
|
||||
SSHErr string `json:"ssh_error,omitempty" yaml:"ssh_error,omitempty"`
|
||||
Stress []StressResult `json:"stress,omitempty" yaml:"stress,omitempty"`
|
||||
Curves map[string][]float64 `json:"curves,omitempty" yaml:"curves,omitempty"` // 指标名 → 时间序列(渲染为 sparkline)
|
||||
MAC string `json:"mac" yaml:"mac"`
|
||||
IP string `json:"ip" yaml:"ip"`
|
||||
Alive bool `json:"alive" yaml:"alive"`
|
||||
OpenPort int `json:"open_port,omitempty" yaml:"open_port,omitempty"`
|
||||
SSHLogin bool `json:"ssh_login" yaml:"ssh_login"`
|
||||
SSHErr string `json:"ssh_error,omitempty" yaml:"ssh_error,omitempty"`
|
||||
Stress []StressResult `json:"stress,omitempty" yaml:"stress,omitempty"`
|
||||
}
|
||||
|
||||
// StressResult 单项压力测试结果
|
||||
type StressResult struct {
|
||||
Type string `json:"type" yaml:"type"`
|
||||
Status string `json:"status" yaml:"status"` // pass / fail / skip
|
||||
Duration string `json:"duration" yaml:"duration"`
|
||||
Output string `json:"output,omitempty" yaml:"output,omitempty"`
|
||||
Error string `json:"error,omitempty" yaml:"error,omitempty"`
|
||||
Type string `json:"type" yaml:"type"`
|
||||
Status string `json:"status" yaml:"status"` // pass / fail / skip
|
||||
Duration string `json:"duration" yaml:"duration"`
|
||||
Score float64 `json:"score,omitempty" yaml:"score,omitempty"`
|
||||
ScoreUnit string `json:"score_unit,omitempty" yaml:"score_unit,omitempty"`
|
||||
Metrics []stress.MetricItem `json:"metrics,omitempty" yaml:"metrics,omitempty"`
|
||||
Output string `json:"output,omitempty" yaml:"output,omitempty"`
|
||||
Error string `json:"error,omitempty" yaml:"error,omitempty"`
|
||||
}
|
||||
|
||||
// Report 检测报告
|
||||
@@ -209,6 +213,12 @@ func (r *Report) ToText() string {
|
||||
icon = "✗"
|
||||
}
|
||||
sb.WriteString(fmt.Sprintf(" │ %s %-10s 耗时: %s\n", icon, s.Type, s.Duration))
|
||||
if s.Score > 0 {
|
||||
sb.WriteString(fmt.Sprintf(" │ 跑分: %.1f %s\n", s.Score, s.ScoreUnit))
|
||||
}
|
||||
for _, m := range s.Metrics {
|
||||
sb.WriteString(fmt.Sprintf(" │ %s: %.1f%s\n", m.Label, m.Value, m.Unit))
|
||||
}
|
||||
if s.Error != "" {
|
||||
sb.WriteString(fmt.Sprintf(" │ 错误: %s\n", s.Error))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user