网站首页 网站源码
using System;
using System.Collections.Generic;
using Dpz.Core.EnumLibrary;
using Dpz.Core.Infrastructure;
using Dpz.Core.Public.Entity;
#nullable enable
namespace Dpz.Core.Public.ViewModel.Response;
public class HealthCheckResponse : IMapFrom<HealthCheck>
{
public string Id { get; set; } = "";
#region 基础属性
/// <summary>
/// 服务名称(必需)
/// </summary>
public required string Name { get; set; }
/// <summary>
/// 检测地址(必需)
/// </summary>
public required string Endpoint { get; set; }
/// <summary>
/// 协议类型(扩展)
/// </summary>
public ProtocolType Protocol { get; set; }
/// <summary>
/// 检测间隔(必需)
/// </summary>
public required TimeSpan Interval { get; set; }
/// <summary>
/// 当前健康状态
/// </summary>
public HealthStatus Status { get; set; }
/// <summary>
/// 上次检测时间
/// </summary>
public DateTime? LastCheckTime { get; set; }
#endregion
#region 重试配置
/// <summary>
/// 失败重试次数(默认3)
/// </summary>
public int RetryCount { get; set; } = 3;
/// <summary>
/// 超时时间(默认5s)
/// </summary>
public TimeSpan Timeout { get; set; } = TimeSpan.FromSeconds(5);
#endregion
#region 状态追踪
/// <summary>
/// 最后检测耗时
/// </summary>
public TimeSpan? LastCheckDuration { get; set; }
/// <summary>
/// 错误信息
/// </summary>
public string? ErrorMessage { get; set; }
// 配置属性
/// <summary>
/// 是否启用检测
/// </summary>
public bool IsEnabled { get; set; } = true;
/// <summary>
/// 服务描述
/// </summary>
public string? Description { get; set; }
#endregion
#region 分类管理
/// <summary>
/// 检测优先级(1-5)
/// </summary>
public int Priority { get; set; } = 1;
/// <summary>
/// 分类标签
/// </summary>
public List<string> Tags { get; set; } = [];
#endregion
}
上述代码定义了一个名为 HealthCheckResponse
的类,该类用于表示健康检查的响应模型。它实现了 IMapFrom<HealthCheck>
接口,表明该类可以从 HealthCheck
类型的对象映射而来。以下是对该类各个部分的详细解释:
ProtocolType
枚举,表示使用的协议(如 HTTP、HTTPS 等)。HealthStatus
枚举,表示服务的健康状况(如正常、异常等)。DateTime
类型,表示最近一次健康检查的时间。TimeSpan
类型,表示最近一次健康检查所花费的时间。true
,表示该健康检查是否处于启用状态。HealthCheckResponse
类是一个用于表示服务健康检查的响应模型,包含了服务的基本信息、检测配置、状态追踪和分类管理等属性。它可以用于监控服务的健康状态,并提供必要的信息以便于开发者或运维人员进行故障排查和管理。