goBuilt for Go

Analytics & Monitoring
for Go

Goroutine-safe SDK for net/http, Gin, Echo, Fiber, and Chi. Single import, zero-allocation hot path, context.Context-based trace propagation — no codegen, no init container.

  • Drop-in middleware for Gin, Echo, Fiber, Chi, net/http
  • context.Context-based trace propagation (no goroutine globals)
  • Goroutine-safe — zero shared state, zero allocations on the hot path
  • database/sql wrapper traces every query (pgx, mysql, sqlite3)
  • Native panic recovery with runtime.Stack frames captured
  • Single go get — no init container, no codegen
go
1// In your Go service main()
2import "github.com/justanalyticsapp/go-sdk"
3
4ja.Init(ja.Config{
5 APIKey: os.Getenv("JUSTANALYTICS_API_KEY"),
6 ServiceName: "my-go-api",
7 Environment: "production",
8})
9
10// net/http, Gin, Echo, Fiber, Chi —
11// drop-in middleware available for each.
Active Users
0+12%
Pageviews
0+8%
Errors
0resolved
Uptime
0%all green

Built for Go services

From a single Gin handler to a 50-service mesh, the same SDK traces every request end-to-end.

database/sql tracing

Wraps your *sql.DB so every query becomes a span. Works with pgx, lib/pq, mysql, sqlite3, and any database/sql driver.

HTTP middleware

One-line middleware for Gin (router.Use), Echo (e.Use), Fiber, Chi, and stdlib net/http. Each request becomes a root span.

Panic recovery

Captures panics with full goroutine stack via runtime.Stack(), then re-panics so your defer/recover stays in control.

Zero-alloc hot path

Tracing on the request path uses pre-allocated buffers. No GC pressure at high RPS — benchmarked against bare net/http.

Full analytics suite

Add the frontend script for cookie-free analytics, replay, and Web Vitals. One dashboard for client + server.

Alert rules

p95 latency, error-rate, and throughput alerts per route. Routes to email, webhook, or PagerDuty.

Gin setup

go get, init, mount the middleware. Every handler is traced from request to response.

# Install
go get github.com/justanalyticsapp/go-sdk

// main.go
package main

import (
    "os"
    "github.com/gin-gonic/gin"
    ja "github.com/justanalyticsapp/go-sdk"
)

func main() {
    ja.Init(ja.Config{
        APIKey:      os.Getenv("JUSTANALYTICS_API_KEY"),
        ServiceName: "my-go-api",
        Environment: "production",
    })
    defer ja.Shutdown()

    r := gin.Default()
    r.Use(ja.GinMiddleware())   // every request traced from here on

    r.GET("/users/:id", func(c *gin.Context) {
        // database/sql queries here are auto-traced
        c.JSON(200, gin.H{"id": c.Param("id")})
    })
    r.Run(":8080")
}

Ready to simplify your stack?

Replace five tools with one platform. Start with the free tier or try Pro free for 7 days.

Start 7-Day Free Trial