health

package
v7.0.0-...-8f281b3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 5, 2024 License: MIT Imports: 6 Imported by: 1

Documentation

Overview

Package health API 状态统计

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Health

type Health struct {
	Enabled bool // 是否启用当前的中间件
	// contains filtered or unexported fields
}

Health API 状态检测

func New

func New(store Store) *Health

New 声明 Health 实例

func (*Health) Plugin

func (h *Health) Plugin(s web.Server)

func (*Health) States

func (h *Health) States() []*State

States 返回所有的状态列表

type State

type State struct {
	XMLName      struct{}      `xml:"state" yaml:"-" json:"-" cbor:"-"`
	Router       string        `xml:"router" yaml:"router" json:"router" cbor:"router"`                              // 多个路由时,表示的路由名称
	Method       string        `xml:"method,attr" yaml:"method" json:"method" cbor:"method"`                         // 请求方法
	Pattern      string        `xml:"pattern" yaml:"pattern" json:"pattern" cbor:"pattern"`                          // 路由
	Min          time.Duration `xml:"min,attr" yaml:"min" json:"min" cbor:"min"`                                     // 最小的执行时间
	Max          time.Duration `xml:"max,attr" yaml:"max" json:"max" cbor:"max"`                                     // 最大的执行时间
	Count        int           `xml:"count,attr" yaml:"count" json:"count" cbor:"count"`                             // 总的请求次数
	UserErrors   int           `xml:"userErrors,attr" yaml:"userErrors" json:"userErrors" cbor:"userErrors"`         // 用户端出错次数,400-499
	ServerErrors int           `xml:"serverErrors,attr" yaml:"serverErrors" json:"serverErrors" cbor:"serverErrors"` // 服务端出错次数,>500
	Last         time.Time     `xml:"last" yaml:"last" json:"last" cbor:"last"`                                      // 最后的访问时间
	Spend        time.Duration `xml:"spend,attr" yaml:"spend" json:"spend" cbor:"spend"`                             // 总花费的时间
}

State 实际存在的数据类型

type Store

type Store interface {
	// Get 获取指定 API 的数据
	//
	// 如果还不存在,则应该将只有 route、method 和 pattern 不为空的 [State] 对象写入 [Store] 并返回。
	Get(route, method, pattern string) *State

	// Save 保存数据内容
	//
	// 如果数据已经存在,则会覆盖。
	Save(*State)

	// All 返回所有接口的状态信息
	All() []*State
}

Store 存储 API 状态的接口

func NewCacheStore

func NewCacheStore(srv web.Server, prefix string) Store

NewCacheStore 基于缓存的存取接口实现

NOTE: 缓存是易失性的,不能永久性保存数据。

Directories

Path Synopsis
Package healthtest 提供对 health.Store 的测试用例
Package healthtest 提供对 health.Store 的测试用例

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL