دليل Go مع AllStak

أضف تتبّع الأخطاء ووسيط HTTP والتتبّع إلى خدمة Go عبر حزمة AllStak Go SDK.

المستودع المصدر:
AllStak/allstak-go
مسار README:
README.md
إصدار الـ SDK:
v0.4.0
مصدر التثبيت:
وحدات Go
آخر تحقّق:
2026-05-31

التثبيت

ثبّت عبر go get.

go get github.com/AllStak/allstak-go

الإعداد

أنشئ عميلًا عبر allstak.New وفرّغ عند الإغلاق.

import (
  "context"
  "os"
  allstak "github.com/AllStak/allstak-go"
)

client := allstak.New(allstak.Config{
    APIKey:      os.Getenv("ALLSTAK_API_KEY"),
    Environment: os.Getenv("APP_ENV"),
    Release:     os.Getenv("ALLSTAK_RELEASE"),
    ServiceName: "checkout-api",
})
defer client.Flush(context.Background())

مثال أساسي

أو هيّئ من البيئة عبر allstak.InitFromEnv().

client := allstak.InitFromEnv()
defer allstak.Close(context.Background())

التقاط الأخطاء

التقط الأخطاء عبر CaptureException؛ والتقط الـ panics عبر Recover داخل defer.

client.CaptureException(context.Background(), errors.New("example error"))

تتبّع الطلبات

غلّف معالج HTTP بـ allstak.Middleware للطلبات الواردة، واستخدم allstak.NewTransport للصادرة. وتتوفّر تكاملات Gin و Echo أيضًا.

// inbound
http.ListenAndServe(":3000", allstak.Middleware(client)(mux))

// outbound
httpClient := &http.Client{ Transport: allstak.NewTransport(client, nil) }

أفضل الممارسات

  • استخدم defer client.Flush(ctx) لإرسال الأحداث المخزّنة عند الخروج.
  • اضبط Environment و Release في الإعداد.
  • استخدم حزم تكامل gin/echo/gorm/slog حيث يلزم.