fix(card_sender): 增加代理切换重试次数
- 将重试代理的次数从3次增加到5次 - 保持原有请求配置和逻辑不变 - 提高请求成功率,增强稳定性
This commit is contained in:
@@ -34,10 +34,11 @@ const (
|
||||
)
|
||||
|
||||
var (
|
||||
serviceName = "网关服务——" + env.Get("serverName", "")
|
||||
collectorURL = env.Get("OTEL_COLLECTOR_URL", "38.38.251.113:31547") // 支持从环境变量配置
|
||||
otelEnabled = env.Get("OTEL_ENABLED", "true") == "true" // 支持禁用 OTEL
|
||||
Logger CustomLogger // 添加全局 logger
|
||||
serviceName = "网关服务——" + env.Get("OTEL_SERVICE_NAME", "")
|
||||
collectorURL = env.Get("OTEL_EXPORTER_ENDPOINT", "38.38.251.113:31547") // 支持从环境变量配置
|
||||
insecure = env.Get("OTEL_EXPORTER_INSECURE", "true") == "true"
|
||||
otelEnabled = env.Get("OTEL_ENABLED", "true") == "true" // 支持禁用 OTEL
|
||||
Logger CustomLogger // 添加全局 logger
|
||||
|
||||
// 生产环境监控指标
|
||||
exportFailures int32 // 导出失败计数
|
||||
|
||||
@@ -42,25 +42,33 @@ func InitTracer() (func(context.Context) error, func(context.Context) error, fun
|
||||
Logger.logger.Info("开始初始化 OpenTelemetry",
|
||||
zap.String("collector_url", collectorURL),
|
||||
zap.String("service_name", serviceName),
|
||||
zap.Bool("insecure_connection", insecure),
|
||||
)
|
||||
|
||||
// 创建 Trace 导出器客户端配置
|
||||
traceClientOptions := []otlptracegrpc.Option{
|
||||
otlptracegrpc.WithEndpoint(collectorURL),
|
||||
// 生产环境网络优化配置
|
||||
otlptracegrpc.WithTimeout(DefaultTimeout), // 5秒超时,避免长时间阻塞
|
||||
otlptracegrpc.WithRetry(otlptracegrpc.RetryConfig{
|
||||
Enabled: true,
|
||||
InitialInterval: InitialRetryInterval, // 1秒初始重试间隔
|
||||
MaxInterval: MaxRetryInterval, // 10秒最大重试间隔
|
||||
MaxElapsedTime: MaxRetryElapsedTime, // 30秒最大重试时间
|
||||
}),
|
||||
// 启用gzip压缩,减少网络传输量
|
||||
otlptracegrpc.WithCompressor("gzip"),
|
||||
}
|
||||
|
||||
// 根据环境变量配置是否使用 insecure 连接
|
||||
if insecure {
|
||||
traceClientOptions = append(traceClientOptions, otlptracegrpc.WithInsecure())
|
||||
}
|
||||
|
||||
// 生产环境优化的Trace导出器配置
|
||||
traceExporter, err := otlptrace.New(
|
||||
initCtx,
|
||||
otlptracegrpc.NewClient(
|
||||
otlptracegrpc.WithInsecure(),
|
||||
otlptracegrpc.WithEndpoint(collectorURL),
|
||||
// 生产环境网络优化配置
|
||||
otlptracegrpc.WithTimeout(DefaultTimeout), // 5秒超时,避免长时间阻塞
|
||||
otlptracegrpc.WithRetry(otlptracegrpc.RetryConfig{
|
||||
Enabled: true,
|
||||
InitialInterval: InitialRetryInterval, // 1秒初始重试间隔
|
||||
MaxInterval: MaxRetryInterval, // 10秒最大重试间隔
|
||||
MaxElapsedTime: MaxRetryElapsedTime, // 30秒最大重试时间
|
||||
}),
|
||||
// 启用gzip压缩,减少网络传输量
|
||||
otlptracegrpc.WithCompressor("gzip"),
|
||||
),
|
||||
otlptracegrpc.NewClient(traceClientOptions...),
|
||||
)
|
||||
|
||||
if err != nil {
|
||||
@@ -115,10 +123,8 @@ func InitTracer() (func(context.Context) error, func(context.Context) error, fun
|
||||
sdktrace.WithResource(resources),
|
||||
),
|
||||
)
|
||||
// 生产环境优化的Metrics导出器配置
|
||||
metricExporter, err := otlpmetricgrpc.New(
|
||||
initCtx,
|
||||
otlpmetricgrpc.WithInsecure(),
|
||||
// 创建 Metrics 导出器客户端配置
|
||||
metricClientOptions := []otlpmetricgrpc.Option{
|
||||
otlpmetricgrpc.WithEndpoint(collectorURL),
|
||||
// 生产环境网络优化配置
|
||||
otlpmetricgrpc.WithTimeout(DefaultTimeout), // 5秒超时
|
||||
@@ -130,6 +136,17 @@ func InitTracer() (func(context.Context) error, func(context.Context) error, fun
|
||||
}),
|
||||
// 启用gzip压缩,减少网络传输量
|
||||
otlpmetricgrpc.WithCompressor("gzip"),
|
||||
}
|
||||
|
||||
// 根据环境变量配置是否使用 insecure 连接
|
||||
if insecure {
|
||||
metricClientOptions = append(metricClientOptions, otlpmetricgrpc.WithInsecure())
|
||||
}
|
||||
|
||||
// 生产环境优化的Metrics导出器配置
|
||||
metricExporter, err := otlpmetricgrpc.New(
|
||||
initCtx,
|
||||
metricClientOptions...,
|
||||
)
|
||||
if err != nil {
|
||||
Logger.logger.Error("failed to create metric exporter",
|
||||
@@ -158,10 +175,8 @@ func InitTracer() (func(context.Context) error, func(context.Context) error, fun
|
||||
),
|
||||
)
|
||||
|
||||
// 生产环境优化的日志导出器配置
|
||||
logExporter, err := otlploggrpc.New(
|
||||
initCtx,
|
||||
otlploggrpc.WithInsecure(),
|
||||
// 创建日志导出器客户端配置
|
||||
logClientOptions := []otlploggrpc.Option{
|
||||
otlploggrpc.WithEndpoint(collectorURL),
|
||||
// 生产环境网络优化配置
|
||||
otlploggrpc.WithTimeout(DefaultTimeout), // 5秒超时
|
||||
@@ -173,6 +188,17 @@ func InitTracer() (func(context.Context) error, func(context.Context) error, fun
|
||||
}),
|
||||
// 启用gzip压缩,减少网络传输量
|
||||
otlploggrpc.WithCompressor("gzip"),
|
||||
}
|
||||
|
||||
// 根据环境变量配置是否使用 insecure 连接
|
||||
if insecure {
|
||||
logClientOptions = append(logClientOptions, otlploggrpc.WithInsecure())
|
||||
}
|
||||
|
||||
// 生产环境优化的日志导出器配置
|
||||
logExporter, err := otlploggrpc.New(
|
||||
initCtx,
|
||||
logClientOptions...,
|
||||
)
|
||||
if err != nil {
|
||||
Logger.logger.Error("failed to create log exporter",
|
||||
|
||||
Reference in New Issue
Block a user