Pulse
Self-hosted observability and performance monitoring SDK for Go applications built with Gin and GORM. Provides request tracing, database query monitoring, runtime metrics, error tracking with stack traces, health checks, threshold-based alerting (Slack, Discord, email, webhook), Prometheus export, and an embedded React dashboard — all from a single pulse.Mount() call with zero external dependencies.
What's Included
Installation
$ go get github.com/MUKE-coder/pulseHow to Use
Install the package
Add Pulse to your Go project.
go get github.com/MUKE-coder/pulseMount in your Gin app
Pass your Gin router and optional GORM database to pulse.Mount(). Everything starts automatically — tracing, metrics, health checks, and the dashboard.
import "github.com/MUKE-coder/pulse/pulse"
r := gin.Default()
pulse.Mount(r, db, pulse.Config{
AppName: "My API",
DevMode: true,
})
r.GET("/api/users", listUsersHandler)
r.Run(":8080")Access the dashboard
Open the embedded monitoring dashboard to view request traces, database queries, runtime metrics, errors, and alerts.
# Dashboard: http://localhost:8080/pulse/ui/
# Default credentials: admin / pulse
# Health: http://localhost:8080/pulse/healthConfigure alerting & Prometheus
Add notification channels for alerts and enable Prometheus metrics export for Grafana integration.
p := pulse.Mount(r, db, pulse.Config{
AppName: "My API",
Alerts: pulse.AlertConfig{
Slack: &pulse.SlackConfig{
WebhookURL: "https://hooks.slack.com/services/...",
},
},
Prometheus: pulse.PrometheusConfig{
Enabled: true,
},
})
// Add custom health checks
p.AddHealthCheck(pulse.HealthCheck{
Name: "redis",
Critical: true,
CheckFunc: func(ctx context.Context) error {
return redisClient.Ping(ctx).Err()
},
})Free to use · MIT License