Documentation
¶
Index ¶
- Constants
- Variables
- func ApiData(c *gin.Context, code int, data interface{}, message string)
- func AtomicWriteFile(filePath string, data []byte) error
- func BadRequest(c *gin.Context, code int, data interface{}, message string)
- func BadRequestError(c *gin.Context, message string)
- func BadRequestWithDetails(c *gin.Context, data interface{}, message string)
- func Base64Decrypt(encryptedPassword string) (string, error)
- func Base64DecryptWithMagic(encryptedPassword string) (string, error)
- func Base64Encrypt(password string) string
- func Base64EncryptWithMagic(password string) string
- func BuildMatchers(alertEvent *model.MonitorAlertEvent, l *zap.Logger, useName int8) ([]*labels.Matcher, error)
- func CalculateAlertHash(pool *model.MonitorAlertManagerPool) string
- func CalculatePromHash(pool *model.MonitorScrapePool) string
- func CheckAlertIpExists(req *model.MonitorAlertManagerPool, pools []*model.MonitorAlertManagerPool) error
- func CheckAlertsIpExists(req *model.MonitorAlertManagerPool, rules []*model.MonitorAlertManagerPool) bool
- func CheckPoolIpExists(pools []*model.MonitorScrapePool, req *model.MonitorScrapePool) error
- func CleanupFailedPool(localYamlDir string, pool *model.MonitorScrapePool, instances int)
- func CleanupOldIPs(tempConfigMap map[string]string, updatedPools map[string]struct{}, ...)
- func CloneMap(original map[string]string) map[string]string
- func CopyMap[K comparable, V any](src map[K]V) map[K]V
- func DecryptBatch(encryptedSecretKeys []string, encryptionKey []byte) ([]string, error)
- func DecryptSecretKey(encryptedSecretKey string, encryptionKey []byte) (string, error)
- func DeepCopyScrapeConfig(sc *pc.ScrapeConfig) *pc.ScrapeConfig
- func DeleteWithId(l *zap.Logger, funcName string, timeout int, url string, ...) ([]byte, error)
- func EncryptBatch(secretKeys []string, encryptionKey []byte) ([]string, error)
- func EncryptSecretKey(secretKey string, encryptionKey []byte) (string, error)
- func Error(c *gin.Context)
- func ErrorWithDetails(c *gin.Context, data interface{}, message string)
- func ErrorWithMessage(c *gin.Context, message string)
- func Forbidden(c *gin.Context, data interface{}, message string)
- func ForbiddenError(c *gin.Context, message string)
- func FormatMap(m map[string]string) string
- func FromSliceTuMap(kvs []string) map[string]string
- func GenPromDuration(seconds int) promModel.Duration
- func GenerateKeyFromPassword(password string, salt []byte) ([]byte, error)
- func GenerateRandomKey() ([]byte, error)
- func GenerateRandomSalt() ([]byte, error)
- func GetAge(creationTime time.Time) string
- func GetClientIP(r *http.Request) string
- func GetCustomParamID(ctx *gin.Context, paramID string) (int, error)
- func GetLocalIPs() ([]string, error)
- func GetParamCustomName(ctx *gin.Context, paramName string) (string, error)
- func GetParamID(ctx *gin.Context) (int, error)
- func GetQueryParam[T any](ctx *gin.Context, key string) (T, error)
- func GetStringParam(ctx *gin.Context, key string) (string, error)
- func HandleRequest(ctx *gin.Context, req interface{}, action func() (interface{}, error))
- func InternalServerError(c *gin.Context, code int, data interface{}, message string)
- func InternalServerErrorWithDetails(c *gin.Context, data interface{}, message string)
- func MapToStringSlice(inputMap map[string]string) ([]string, error)
- func NewBusinessError(code error, message string) error
- func ParseExternalLabels(labelsList []string) []string
- func ParseTags(tags []string) (map[promModel.LabelName]promModel.LabelValue, error)
- func ParseURL(u string) (*pcc.URL, error)
- func Ping(ipAddr string) bool
- func PostWithJson(ctx context.Context, client *http.Client, l *zap.Logger, url string, ...) ([]byte, error)
- func PostWithJsonString(l *zap.Logger, funcName string, timeout int, url string, jsonStr string, ...) ([]byte, error)
- func PromqlExprCheck(expr string) (bool, error)
- func SecureZeroMemory(data []byte)
- func SendSilenceRequest(ctx context.Context, l *zap.Logger, url string, data []byte) (string, error)
- func SetUserInfoToContext(ctx context.Context, userInfo *UserInfo) context.Context
- func SetUserInfoToGinContext(c *gin.Context, userInfo *UserInfo)
- func StringSliceToMap(inputSlice []string) (map[string]string, error)
- func Success(c *gin.Context)
- func SuccessWithData(c *gin.Context, data interface{})
- func SuccessWithDetails(c *gin.Context, data interface{}, message string)
- func SuccessWithMessage(c *gin.Context, message string)
- func Unauthorized(c *gin.Context, code int, data interface{}, message string)
- func UnauthorizedErrorWithDetails(c *gin.Context, data interface{}, message string)
- func ValidateEncryptedData(encryptedData string) error
- func ValidateUniqueResource[T any](ctx context.Context, ...) error
- type ApiResponse
- type BusinessError
- type Handler
- type K8sBatchRequest
- type K8sObjectRequest
- type K8sRequestItem
- type KeyValuePair
- type LabelOption
- type OperationData
- type RefreshClaims
- type SelectOption
- type SelectOptionInt
- type SilenceResponse
- type UserClaims
- type UserInfo
Constants ¶
const ( StatusError = 1 // 操作失败 StatusSuccess = 0 // 操作成功 )
定义操作成功和失败的常量状态码
const ( // WebSocket 升级器配置常量 DefaultWSReadBufferSize = 4096 // 读缓冲区大小(增加以提高性能) DefaultWSWriteBufferSize = 4096 // 写缓冲区大小(增加以提高性能) DefaultWSHandshakeTimeout = 10 * time.Second // 握手超时时间 )
Variables ¶
var UpGrader = websocket.Upgrader{ ReadBufferSize: DefaultWSReadBufferSize, WriteBufferSize: DefaultWSWriteBufferSize, HandshakeTimeout: DefaultWSHandshakeTimeout, EnableCompression: true, CheckOrigin: func(r *http.Request) bool { return true }, Error: func(w http.ResponseWriter, r *http.Request, status int, reason error) { http.Error(w, "WebSocket upgrade failed", status) }, }
UpGrader 升级HTTP连接为WebSocket连接 包含更好的错误处理和性能配置
Functions ¶
func ApiData ¶
ApiData 通用的返回函数,用于标准化API响应格式 参数: - c: gin 上下文 - code: 状态码 - data: 返回的数据 - message: 返回的消息
func BadRequest ¶
BadRequest 参数错误的返回,使用HTTP 400状态码
func BadRequestError ¶
BadRequestError 参数错误的失败返回
func BadRequestWithDetails ¶
BadRequestWithDetails 带详细数据和消息的参数错误返回
func Base64Decrypt ¶
Base64Decrypt 用于解密加密后的密码
func Base64DecryptWithMagic ¶
Base64DecryptWithMagic 解密 与加密过程相反的步骤还原原始密码
func Base64EncryptWithMagic ¶
Base64EncryptWithMagic 加密 通过先添加特定盐值、反转字符串再进行base64编码
func BuildMatchers ¶
func CalculateAlertHash ¶
func CalculateAlertHash(pool *model.MonitorAlertManagerPool) string
func CalculatePromHash ¶
func CalculatePromHash(pool *model.MonitorScrapePool) string
CalculateHash 计算哈希值(不修改入参数据)
func CheckAlertIpExists ¶
func CheckAlertIpExists(req *model.MonitorAlertManagerPool, pools []*model.MonitorAlertManagerPool) error
func CheckAlertsIpExists ¶
func CheckAlertsIpExists(req *model.MonitorAlertManagerPool, rules []*model.MonitorAlertManagerPool) bool
func CheckPoolIpExists ¶
func CheckPoolIpExists(pools []*model.MonitorScrapePool, req *model.MonitorScrapePool) error
func CleanupFailedPool ¶
func CleanupFailedPool(localYamlDir string, pool *model.MonitorScrapePool, instances int)
清理失败池子的临时文件
func CleanupOldIPs ¶
func CleanupOldIPs(tempConfigMap map[string]string, updatedPools map[string]struct{}, validIPs map[string]struct{})
清理已更新池子的旧IP
func DecryptBatch ¶
DecryptBatch 批量解密
func DecryptSecretKey ¶
DecryptSecretKey 使用指定密钥解密数据
func DeepCopyScrapeConfig ¶
func DeepCopyScrapeConfig(sc *pc.ScrapeConfig) *pc.ScrapeConfig
DeepCopyScrapeConfig 深度拷贝 ScrapeConfig
func DeleteWithId ¶
func EncryptBatch ¶
EncryptBatch 批量加密
func EncryptSecretKey ¶
EncryptSecretKey 使用指定密钥加密数据
func ErrorWithDetails ¶
ErrorWithDetails 带详细数据和消息的操作失败返回
func ErrorWithMessage ¶
ErrorWithMessage 带消息的操作失败返回
func FromSliceTuMap ¶
func GenPromDuration ¶
GenPromDuration 转换秒为Prometheus Duration
func GenerateKeyFromPassword ¶
GenerateKeyFromPassword 从密码生成密钥(使用PBKDF2)
func GetCustomParamID ¶
GetCustomParamID 从查询参数中解析自定义字段的 ID,并进行类型转换
func GetLocalIPs ¶
func GetParamCustomName ¶
GetParamCustomName 从查询参数中解析 Name,并进行类型转换
func GetQueryParam ¶
GetQueryParam 从查询参数中解析指定类型的值
func HandleRequest ¶
HandleRequest 用于统一处理请求绑定和响应
func InternalServerError ¶
InternalServerError 服务器内部错误的返回,使用HTTP 500状态码
func InternalServerErrorWithDetails ¶
InternalServerErrorWithDetails 带详细数据和消息的服务器内部错误返回
func MapToStringSlice ¶
MapToStringSlice 将 map 转换为 []string,要求偶数个元素,key和值依次排列
func NewBusinessError ¶
NewBusinessError 创建业务错误
func ParseExternalLabels ¶
ParseExternalLabels 解析外部标签
func PostWithJson ¶
func PostWithJson(ctx context.Context, client *http.Client, l *zap.Logger, url string, jsonStr string, params map[string]string, headers map[string]string) ([]byte, error)
PostWithJson 发送带有JSON字符串的POST请求
func PostWithJsonString ¶
func PostWithJsonString(l *zap.Logger, funcName string, timeout int, url string, jsonStr string, paramsMap map[string]string, headerMap map[string]string) ([]byte, error)
PostWithJsonString 发送带 JSON 数据的 POST 请求
func PromqlExprCheck ¶
func SendSilenceRequest ¶
func SetUserInfoToContext ¶
SetUserInfoToContext 将用户信息设置到context中
func SetUserInfoToGinContext ¶
SetUserInfoToGinContext 将用户信息设置到gin.Context中
func StringSliceToMap ¶
StringSliceToMap 将 []string 转换为 map[string]string,要求输入长度为偶数,奇数索引为 key,偶数索引为 value
func SuccessWithData ¶
SuccessWithData 带数据的操作成功返回
func SuccessWithDetails ¶
SuccessWithDetails 带详细数据和消息的操作成功返回
func SuccessWithMessage ¶
SuccessWithMessage 带消息的操作成功返回
func Unauthorized ¶
Unauthorized 未认证的返回,使用HTTP 401状态码
func UnauthorizedErrorWithDetails ¶
UnauthorizedErrorWithDetails 带详细数据和消息的未认证返回
func ValidateEncryptedData ¶
ValidateEncryptedData 验证加密数据格式
Types ¶
type ApiResponse ¶
type ApiResponse struct { Code int `json:"code"` // 状态码,表示业务逻辑的状态,而非HTTP状态码 Data interface{} `json:"data"` // 响应数据 Message string `json:"message"` // 反馈信息 }
ApiResponse 通用的API响应结构体
type BusinessError ¶
BusinessError 业务错误结构体
func (*BusinessError) Error ¶
func (e *BusinessError) Error() string
type Handler ¶
type Handler interface { SetLoginToken(ctx *gin.Context, uid int, username string, accountType int8) (string, string, error) SetJWTToken(ctx *gin.Context, uid int, username string, ssid string, accountType int8) (string, error) ExtractToken(ctx *gin.Context) string CheckSession(ctx *gin.Context, ssid string) error ClearToken(ctx *gin.Context) error // contains filtered or unexported methods }
func NewJWTHandler ¶
func NewJWTHandler(c redis.Cmdable) Handler
type K8sBatchRequest ¶
type K8sBatchRequest struct { Cluster string `json:"cluster"` Items []K8sRequestItem `json:"items"` }
type K8sObjectRequest ¶
type K8sRequestItem ¶
type KeyValuePair ¶
type LabelOption ¶
type LabelOption struct { Label string `json:"label"` Value string `json:"value"` Children []*LabelOption `json:"children"` }
LabelOption 通用返回结构体,用于前后端交互的数据格式
type OperationData ¶
type RefreshClaims ¶
type SelectOption ¶
type SelectOptionInt ¶
type SilenceResponse ¶
type UserClaims ¶
type UserInfo ¶
type UserInfo struct { UserID int `json:"userId"` Username string `json:"username"` IP string `json:"ip"` UserAgent string `json:"userAgent"` }
UserInfo 用户信息结构体
func GetUserInfoFromContext ¶
GetUserInfoFromContext 从context.Context中获取用户信息
func GetUserInfoFromGinContext ¶
GetUserInfoFromGinContext 从gin.Context中获取用户信息
func GetUserInfoFromHTTPRequest ¶
GetUserInfoFromHTTPRequest 从http.Request中获取用户信息