网站首页 网站源码
website
站点相关全部源代码,隐藏了一些关于服务器的信息
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
}
⚠⚠    以下内容为AI分析的结果,请根据实际情况进行判断。

上述代码定义了一个名为 HealthCheckResponse 的类,该类用于表示健康检查的响应模型。它实现了 IMapFrom<HealthCheck> 接口,表明该类可以从 HealthCheck 类型的对象映射而来。以下是对该类各个部分的详细解释:

1. 基础属性

  • Id: 唯一标识符,默认为空字符串。
  • Name: 服务名称,必需属性。
  • Endpoint: 检测地址,必需属性,通常是服务的 URL。
  • Protocol: 协议类型,使用 ProtocolType 枚举,表示使用的协议(如 HTTP、HTTPS 等)。
  • Interval: 检测间隔,必需属性,表示健康检查的频率。
  • Status: 当前健康状态,使用 HealthStatus 枚举,表示服务的健康状况(如正常、异常等)。
  • LastCheckTime: 上次检测时间,使用可空的 DateTime 类型,表示最近一次健康检查的时间。

2. 重试配置

  • RetryCount: 失败重试次数,默认为 3,表示在检测失败时的重试次数。
  • Timeout: 超时时间,默认为 5 秒,表示健康检查请求的超时时间。

3. 状态追踪

  • LastCheckDuration: 最后检测耗时,使用可空的 TimeSpan 类型,表示最近一次健康检查所花费的时间。
  • ErrorMessage: 错误信息,使用可空的字符串,表示在健康检查失败时的错误描述。

4. 配置属性

  • IsEnabled: 是否启用检测,默认为 true,表示该健康检查是否处于启用状态。
  • Description: 服务描述,使用可空的字符串,提供对服务的额外说明。

5. 分类管理

  • Priority: 检测优先级,默认为 1,表示健康检查的优先级(1-5,数字越大优先级越高)。
  • Tags: 分类标签,使用字符串列表,允许为健康检查添加多个标签,以便于分类和管理。

总结

HealthCheckResponse 类是一个用于表示服务健康检查的响应模型,包含了服务的基本信息、检测配置、状态追踪和分类管理等属性。它可以用于监控服务的健康状态,并提供必要的信息以便于开发者或运维人员进行故障排查和管理。

loading