middle

package
v1.8.9 Latest Latest
Warning

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

Go to latest
Published: Oct 28, 2024 License: GPL-3.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	CustomerRequestsTotal = prometheus.NewCounterVec(
		prometheus.CounterOpts{
			Name: "custom_http_requests_total",
			Help: "Total number of HTTP requests.",
		},
		[]string{"path", "method", "status"},
	)
	ThrottleCounter = prometheus.NewCounterVec(
		prometheus.CounterOpts{
			Name: "throttle_counter_total",
			Help: "Total number of requests that passed the throttle.",
		},
		[]string{"resource", "status"},
	)
)

全局 Prometheus 指标

View Source
var Auth *auth

定义全局变量

Functions

func ACLMiddle added in v1.8.6

func ACLMiddle() gin.HandlerFunc

AccessControlMiddleware 创建访问控制中间件

func CacheMiddle

func CacheMiddle(duration time.Duration, key ...string) gin.HandlerFunc

duration:缓存时长,key:可选参数缓存key

func InitAuth

func InitAuth(service rbac.IRBACService)

初始化函数

func LogInfoMiddle

func LogInfoMiddle() gin.HandlerFunc

日志中间件

func PanicMiddle

func PanicMiddle() gin.HandlerFunc

用于捕获并记录panic的中间件

func PrometheusMiddle

func PrometheusMiddle() gin.HandlerFunc

PrometheusMiddleware 记录常规的 HTTP 请求统计数据

func RegisterPrometheus

func RegisterPrometheus()

在 Gin 路由中注册 Prometheus 处理程序

func ThrottleMiddle

func ThrottleMiddle(resourceName string) gin.HandlerFunc

Types

type AccessctlEntity added in v1.8.6

type AccessctlEntity struct {
	Path        string
	Access      int
	Ips         string
	Description string
	Status      int
}

type CustomClaims

type CustomClaims struct {
	Id      int64
	Account string
	jwt.StandardClaims
}

type ThrottleEntity

type ThrottleEntity struct {
	Limiter   *rate.Limiter
	UserId    string //用户Id
	RateLimit int    // 每秒令牌生成数
	Burst     int    // 突发容量
	WaitTime  int    // 最大排队等待时间
	CustomSet bool   // 自定义配置
}

func GetThrottleEntity added in v1.8.6

func GetThrottleEntity(resourceName string, useDefault bool) *ThrottleEntity

GetThrottleEntity 获取限流实体,确保每个资源名对应的限流实体是持久化的

Directories

Path Synopsis
model.go
model.go

Jump to

Keyboard shortcuts

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