Documentation
¶
Index ¶
- Variables
- type Circuit
- type CircuitStats
- type Config
- type GlobalMetrics
- type Limiter
- type LimiterStats
- type Metrics
- type MetricsCollector
- func (mc *MetricsCollector) GetActiveCount() int64
- func (mc *MetricsCollector) GetAllMetrics() map[string]*Metrics
- func (mc *MetricsCollector) GetAvgExecutionTime(name string) float64
- func (mc *MetricsCollector) GetExecutionCount(name string) int64
- func (mc *MetricsCollector) GetFailureCount(name string) int64
- func (mc *MetricsCollector) GetGlobalMetrics() *GlobalMetrics
- func (mc *MetricsCollector) GetLastExecutionTime(name string) int64
- func (mc *MetricsCollector) GetMaxExecutionTime(name string) int64
- func (mc *MetricsCollector) GetMetrics(name string) *Metrics
- func (mc *MetricsCollector) GetMinExecutionTime(name string) int64
- func (mc *MetricsCollector) GetRunningCount(name string) int64
- func (mc *MetricsCollector) GetSnapshot() *MetricsSnapshot
- func (mc *MetricsCollector) GetSuccessCount(name string) int64
- func (mc *MetricsCollector) GetTotalExecutions() int64
- func (mc *MetricsCollector) GetTotalFailure() int64
- func (mc *MetricsCollector) GetTotalSuccess() int64
- func (mc *MetricsCollector) RecordFailure(name string, duration time.Duration)
- func (mc *MetricsCollector) RecordRateLimited(name string)
- func (mc *MetricsCollector) RecordStart(name string)
- func (mc *MetricsCollector) RecordSuccess(name string, duration time.Duration)
- func (mc *MetricsCollector) Reset()
- type MetricsSnapshot
- type PrometheusExporter
- type State
Constants ¶
This section is empty.
Variables ¶
var ( // ErrOpen 熔断器打开错误 ErrOpen = errors.New("circuit breaker is open") // ErrRateLimitExceeded 限流错误 ErrRateLimitExceeded = errors.New("rate limit exceeded") )
Functions ¶
This section is empty.
Types ¶
type CircuitStats ¶
CircuitStats 熔断器统计
type Config ¶
type Config struct {
MaxFailures int32
ResetTimeout time.Duration
HalfOpenSuccesses int32
OnStateChange func(from, to State)
}
Config 熔断器配置
type GlobalMetrics ¶
type GlobalMetrics struct {
TotalExecutions int64 `json:"total_executions"`
TotalSuccess int64 `json:"total_success"`
TotalFailure int64 `json:"total_failure"`
ActiveCount int64 `json:"active_count"`
SuccessRate float64 `json:"success_rate"`
}
GlobalMetrics 全局指标
type Limiter ¶
type Limiter struct {
// contains filtered or unexported fields
}
Limiter 限流器(令牌桶算法)
func (*Limiter) GetAvailableTokens ¶
GetAvailableTokens 获取可用令牌数
type LimiterStats ¶
LimiterStats 限流器统计
type Metrics ¶
type Metrics struct {
Name string `json:"name"`
ExecutionCount int64 `json:"execution_count"`
SuccessCount int64 `json:"success_count"`
FailureCount int64 `json:"failure_count"`
RunningCount int64 `json:"running_count"`
AvgExecutionTime float64 `json:"avg_execution_time_ms"`
MaxExecutionTime int64 `json:"max_execution_time_ms"`
MinExecutionTime int64 `json:"min_execution_time_ms"`
LastExecutionTime int64 `json:"last_execution_time"`
SuccessRate float64 `json:"success_rate"`
}
Metrics 通用指标
type MetricsCollector ¶
type MetricsCollector struct {
// contains filtered or unexported fields
}
MetricsCollector 通用指标收集器
func (*MetricsCollector) GetActiveCount ¶
func (mc *MetricsCollector) GetActiveCount() int64
GetActiveCount 获取全局活跃数
func (*MetricsCollector) GetAllMetrics ¶
func (mc *MetricsCollector) GetAllMetrics() map[string]*Metrics
GetAllMetrics 获取所有指标
func (*MetricsCollector) GetAvgExecutionTime ¶
func (mc *MetricsCollector) GetAvgExecutionTime(name string) float64
GetAvgExecutionTime 获取指定名称的平均执行时间
func (*MetricsCollector) GetExecutionCount ¶
func (mc *MetricsCollector) GetExecutionCount(name string) int64
GetExecutionCount 获取指定名称的执行次数
func (*MetricsCollector) GetFailureCount ¶
func (mc *MetricsCollector) GetFailureCount(name string) int64
GetFailureCount 获取指定名称的失败次数
func (*MetricsCollector) GetGlobalMetrics ¶
func (mc *MetricsCollector) GetGlobalMetrics() *GlobalMetrics
GetGlobalMetrics 获取全局统计
func (*MetricsCollector) GetLastExecutionTime ¶
func (mc *MetricsCollector) GetLastExecutionTime(name string) int64
GetLastExecutionTime 获取指定名称的最后执行时间
func (*MetricsCollector) GetMaxExecutionTime ¶
func (mc *MetricsCollector) GetMaxExecutionTime(name string) int64
GetMaxExecutionTime 获取指定名称的最大执行时间
func (*MetricsCollector) GetMetrics ¶
func (mc *MetricsCollector) GetMetrics(name string) *Metrics
GetMetrics 获取单个指标
func (*MetricsCollector) GetMinExecutionTime ¶
func (mc *MetricsCollector) GetMinExecutionTime(name string) int64
GetMinExecutionTime 获取指定名称的最小执行时间
func (*MetricsCollector) GetRunningCount ¶
func (mc *MetricsCollector) GetRunningCount(name string) int64
GetRunningCount 获取指定名称的当前运行数
func (*MetricsCollector) GetSnapshot ¶
func (mc *MetricsCollector) GetSnapshot() *MetricsSnapshot
GetSnapshot 获取指标快照
func (*MetricsCollector) GetSuccessCount ¶
func (mc *MetricsCollector) GetSuccessCount(name string) int64
GetSuccessCount 获取指定名称的成功次数
func (*MetricsCollector) GetTotalExecutions ¶
func (mc *MetricsCollector) GetTotalExecutions() int64
GetTotalExecutions 获取全局执行次数
func (*MetricsCollector) GetTotalFailure ¶
func (mc *MetricsCollector) GetTotalFailure() int64
GetTotalFailure 获取全局失败次数
func (*MetricsCollector) GetTotalSuccess ¶
func (mc *MetricsCollector) GetTotalSuccess() int64
GetTotalSuccess 获取全局成功次数
func (*MetricsCollector) RecordFailure ¶
func (mc *MetricsCollector) RecordFailure(name string, duration time.Duration)
RecordFailure 记录执行失败
func (*MetricsCollector) RecordRateLimited ¶
func (mc *MetricsCollector) RecordRateLimited(name string)
RecordRateLimited 记录被限流
func (*MetricsCollector) RecordStart ¶
func (mc *MetricsCollector) RecordStart(name string)
RecordStart 记录开始执行
func (*MetricsCollector) RecordSuccess ¶
func (mc *MetricsCollector) RecordSuccess(name string, duration time.Duration)
RecordSuccess 记录执行成功
type MetricsSnapshot ¶
type MetricsSnapshot struct {
GlobalMetrics *GlobalMetrics `json:"global_metrics"`
Metrics map[string]*Metrics `json:"metrics"`
Timestamp int64 `json:"timestamp"`
}
MetricsSnapshot 指标快照,用于导出
type PrometheusExporter ¶
type PrometheusExporter struct {
// contains filtered or unexported fields
}
PrometheusExporter Prometheus格式导出器
func NewPrometheusExporter ¶
func NewPrometheusExporter(collector *MetricsCollector, namespace, service string) *PrometheusExporter
NewPrometheusExporter 创建Prometheus导出器
func (*PrometheusExporter) Export ¶
func (pe *PrometheusExporter) Export() string
Export 导出Prometheus格式指标