From c8fd4cf9caa2a21e5b2c31b3d32dfccb62575fd4 Mon Sep 17 00:00:00 2001 From: luorijun Date: Fri, 19 Dec 2025 15:13:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20otel=20=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=E5=8F=98=E9=87=8F=EF=BC=8C=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E9=83=A8=E7=BD=B2=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.yaml | 2 +- pkg/env/env.go | 6 ++++++ web/globals/otel.go | 8 +++++++- web/handlers/resource.go | 26 +++++++------------------- web/routes.go | 9 ++++++--- 5 files changed, 27 insertions(+), 24 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 9d9f428..4ca10a7 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -2,7 +2,7 @@ name: lanhu services: postgres: - image: postgres:17 + image: postgres:17.7 environment: POSTGRES_USER: ${DB_USERNAME} POSTGRES_PASSWORD: ${DB_PASSWORD} diff --git a/pkg/env/env.go b/pkg/env/env.go index 0bd0a1d..5b4a8f0 100644 --- a/pkg/env/env.go +++ b/pkg/env/env.go @@ -36,6 +36,9 @@ var ( RedisPort = "6379" RedisPassword = "" + OtelHost string + OtelPort string + BaiyinCloudUrl string BaiyinTokenUrl string @@ -115,6 +118,9 @@ func Init() { errs = append(errs, parse(&RedisPort, "REDIS_PORT", true, nil)) errs = append(errs, parse(&RedisPassword, "REDIS_PASS", true, nil)) + errs = append(errs, parse(&OtelHost, "OTEL_HOST", true, nil)) + errs = append(errs, parse(&OtelPort, "OTEL_PORT", true, nil)) + errs = append(errs, parse(&BaiyinCloudUrl, "BAIYIN_CLOUD_URL", false, nil)) errs = append(errs, parse(&BaiyinTokenUrl, "BAIYIN_TOKEN_URL", false, nil)) diff --git a/web/globals/otel.go b/web/globals/otel.go index 2aeb947..f2d8572 100644 --- a/web/globals/otel.go +++ b/web/globals/otel.go @@ -3,6 +3,7 @@ package globals import ( "context" "fmt" + "platform/pkg/env" "go.opentelemetry.io/otel" "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc" @@ -16,8 +17,13 @@ import ( var tp *trace.TracerProvider func initOtel(ctx context.Context) error { + if env.OtelHost == "" || env.OtelPort == "" { + return nil + } + + addr := env.OtelHost + ":" + env.OtelPort exporter, err := otlptracegrpc.New(ctx, - otlptracegrpc.WithEndpoint("localhost:4317"), + otlptracegrpc.WithEndpoint(addr), otlptracegrpc.WithInsecure(), ) if err != nil { diff --git a/web/handlers/resource.go b/web/handlers/resource.go index 092c248..f41c49d 100644 --- a/web/handlers/resource.go +++ b/web/handlers/resource.go @@ -353,21 +353,10 @@ func StatisticResourceUsage(c *fiber.Ctx) error { } // 统计套餐提取数量 - do := q.LogsUserUsage.Where(q.LogsUserUsage.UserID.Eq(authCtx.User.ID)) - if req.ResourceNo != nil && *req.ResourceNo != "" { - var resourceID int32 - err := q.Resource. - Where( - q.Resource.UserID.Eq(authCtx.User.ID), - q.Resource.ResourceNo.Eq(*req.ResourceNo), - ). - Select(q.Resource.ID). - Scan(&resourceID) - if err != nil { - return err - } - do.Where(q.LogsUserUsage.ResourceID.Eq(resourceID)) - } + do := q.LogsUserUsage.Where( + q.LogsUserUsage.UserID.Eq(authCtx.User.ID), + ) + if req.TimeAfter != nil { do.Where(q.LogsUserUsage.Time.Gte(*req.TimeAfter)) } @@ -383,7 +372,7 @@ func StatisticResourceUsage(c *fiber.Ctx) error { ). Where(do). Group( - field.NewUnsafeFieldRaw("date_trunc('day', time)"), + field.NewField("", "date"), ). Order( field.NewField("", "date").Desc(), @@ -397,9 +386,8 @@ func StatisticResourceUsage(c *fiber.Ctx) error { } type StatisticResourceUsageReq struct { - ResourceNo *string `json:"resource_no"` - TimeAfter *time.Time `json:"time_after"` - TimeBefore *time.Time `json:"time_before"` + TimeAfter *time.Time `json:"time_start"` + TimeBefore *time.Time `json:"time_end"` } type StatisticResourceUsageResp []struct { diff --git a/web/routes.go b/web/routes.go index 0b270e7..d1204a6 100644 --- a/web/routes.go +++ b/web/routes.go @@ -1,6 +1,7 @@ package web import ( + "platform/pkg/env" auth2 "platform/web/auth" "platform/web/handlers" @@ -86,7 +87,9 @@ func ApplyRouters(app *fiber.App) { callbacks.Get("/identify", handlers.IdentifyCallbackNew) // 临时 - debug := app.Group("/debug") - debug.Get("/sms/:phone", handlers.DebugGetSmsCode) - debug.Get("/proxy/register", handlers.DebugRegisterProxyBaiYin) + if env.RunMode == env.RunModeDev { + debug := app.Group("/debug") + debug.Get("/sms/:phone", handlers.DebugGetSmsCode) + debug.Get("/proxy/register", handlers.DebugRegisterProxyBaiYin) + } }