优化主程序和追踪功能

- 在 main.go 中恢复了 traceRouter 的初始化代码,确保追踪功能正常工作
- 在 trace.go 中将追踪提供者设置为 noop,清理了不必要的代码注释
- 在 client.go 中更新了日志记录方式,使用 traceRouter.Logger 记录请求地址,提升了日志的上下文信息
This commit is contained in:
danial
2025-04-21 16:22:59 +08:00
parent a131994aed
commit 3fba5b0b6e
3 changed files with 32 additions and 29 deletions

View File

@@ -23,7 +23,7 @@ import (
sdklog "go.opentelemetry.io/otel/sdk/log" sdklog "go.opentelemetry.io/otel/sdk/log"
sdkMetric "go.opentelemetry.io/otel/sdk/metric" sdkMetric "go.opentelemetry.io/otel/sdk/metric"
"go.opentelemetry.io/otel/sdk/resource" "go.opentelemetry.io/otel/sdk/resource"
sdktrace "go.opentelemetry.io/otel/sdk/trace" "go.opentelemetry.io/otel/trace/noop"
"go.uber.org/zap" "go.uber.org/zap"
"go.uber.org/zap/zapcore" "go.uber.org/zap/zapcore"
@@ -56,7 +56,7 @@ func (l *LoggerStruct) WithContext(ctx context.Context) *zap.Logger {
} }
return l.logger return l.logger
} }
return l.logger return l.logger.With(zap.String("trace_id", span.SpanContext().TraceID().String()))
} }
var ( var (
@@ -91,17 +91,18 @@ func InitTracer() (func(context.Context) error, func(context.Context) error, fun
return nil, nil, nil return nil, nil, nil
} }
otel.SetTracerProvider( // otel.SetTracerProvider(
sdktrace.NewTracerProvider( // sdktrace.NewTracerProvider(
sdktrace.WithSampler(sdktrace.AlwaysSample()), // sdktrace.WithSampler(sdktrace.AlwaysSample()),
sdktrace.WithSpanProcessor(sdktrace.NewBatchSpanProcessor(traceExporter, // sdktrace.WithSpanProcessor(sdktrace.NewBatchSpanProcessor(traceExporter,
sdktrace.WithBatchTimeout(30*time.Second), // sdktrace.WithBatchTimeout(30*time.Second),
sdktrace.WithMaxExportBatchSize(100), // sdktrace.WithMaxExportBatchSize(100),
)), // )),
sdktrace.WithBatcher(traceExporter), // sdktrace.WithBatcher(traceExporter),
sdktrace.WithResource(resources), // sdktrace.WithResource(resources),
), // ),
) // )
otel.SetTracerProvider(noop.NewTracerProvider())
// Set up meter provider. // Set up meter provider.
metricExporter, err := otlpmetrichttp.New( metricExporter, err := otlpmetrichttp.New(
InitCtx, InitCtx,

View File

@@ -3,21 +3,22 @@ package client
import ( import (
"context" "context"
"encoding/json" "encoding/json"
"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"
"io" "io"
"net/http" "net/http"
"net/url" "net/url"
"shop/internal/traceRouter" "shop/internal/traceRouter"
"time" "time"
"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"
"go.uber.org/zap"
"github.com/beego/beego/v2/client/httplib" "github.com/beego/beego/v2/client/httplib"
"github.com/beego/beego/v2/core/logs"
) )
type Response struct { type Response struct {
Msg string `json:"msg"` Msg string `json:"msg"`
Code int `json:"code"` Code int `json:"code"`
Data interface{} `json:"data"` Data any `json:"data"`
} }
// Get 发送get请求 // Get 发送get请求
@@ -31,7 +32,7 @@ func Get(ctx context.Context, baseUrl string, params map[string]string) (result
return "", err return "", err
} }
realUrl.RawQuery = urlParams.Encode() realUrl.RawQuery = urlParams.Encode()
logs.Info("请求地址", realUrl.String()) traceRouter.Logger.WithContext(ctx).Info("请求地址", zap.String("url", realUrl.String()))
req, err := http.NewRequestWithContext(context.WithoutCancel(ctx), "GET", realUrl.String(), nil) req, err := http.NewRequestWithContext(context.WithoutCancel(ctx), "GET", realUrl.String(), nil)
if err != nil { if err != nil {
return "", err return "", err

25
main.go
View File

@@ -3,23 +3,24 @@ package main
import ( import (
_ "shop/internal/models" _ "shop/internal/models"
_ "shop/internal/routers" _ "shop/internal/routers"
"shop/internal/traceRouter"
beego "github.com/beego/beego/v2/server/web" beego "github.com/beego/beego/v2/server/web"
_ "github.com/go-sql-driver/mysql" _ "github.com/go-sql-driver/mysql"
) )
func main() { func main() {
// cleanup1, cleanup2, cleanup3 := traceRouter.InitTracer() cleanup1, cleanup2, cleanup3 := traceRouter.InitTracer()
// defer func() { defer func() {
// if cleanup1 != nil { if cleanup1 != nil {
// _ = cleanup1(traceRouter.InitCtx) _ = cleanup1(traceRouter.InitCtx)
// } }
// if cleanup2 != nil { if cleanup2 != nil {
// _ = cleanup2(traceRouter.InitCtx) _ = cleanup2(traceRouter.InitCtx)
// } }
// if cleanup3 != nil { if cleanup3 != nil {
// _ = cleanup3(traceRouter.InitCtx) _ = cleanup3(traceRouter.InitCtx)
// } }
// }() }()
beego.Run() beego.Run()
} }