- Add centered logo and title with product branding - Add links to product website and documentation - Add badges for package manager and license - Add Other SDKs table with cross-references - Add Support section with dev@ironservices.io email - Update repository links to git.marketally.com 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> |
||
|---|---|---|
| .gitignore | ||
| LICENSE | ||
| README.md | ||
| breadcrumbs.go | ||
| client.go | ||
| config.go | ||
| go.mod | ||
| journey.go | ||
| transport.go | ||
| types.go | ||
README.md
IronTelemetry SDK for Go
Error monitoring and crash reporting for Go applications
Website • Documentation • Go Guide • Git
IronTelemetry helps you capture exceptions, track user journeys, and get actionable insights to fix issues faster. Built for developers who want simple, powerful error monitoring without the complexity.
Features
- Panic Recovery - Automatically capture panics with full stack traces
- Error Capture - Report errors with context and metadata
- Journey Tracking - Understand what users did before an error occurred
- Breadcrumbs - Add context with custom breadcrumbs
- Context Support - Full context.Context support for cancellation
- Thread-Safe - All operations are safe for concurrent use
- Zero Dependencies - Minimal external dependencies
Installation
go get git.marketally.com/ironservices/irontelemetry-go
Quick Start
Initialize the SDK
package main
import (
"log"
irontelemetry "git.marketally.com/ironservices/irontelemetry-go"
)
func main() {
client, err := irontelemetry.New(irontelemetry.Options{
DSN: "https://pk_live_xxx@irontelemetry.com",
})
if err != nil {
log.Fatal(err)
}
defer client.Close()
}
Capture Errors
if err := doSomething(); err != nil {
client.CaptureException(err)
}
Track User Journeys
journey := client.StartJourney("Checkout Flow")
journey.SetUser("user-123", "user@example.com", "John Doe")
err := journey.RunStep("Validate Cart", irontelemetry.CategoryBusiness, func() error {
return validateCart()
})
if err != nil {
journey.Fail(err)
client.CaptureException(err)
return
}
journey.Complete()
Add Breadcrumbs
client.AddBreadcrumb("User clicked checkout button", irontelemetry.CategoryUI)
client.AddBreadcrumb("Payment API called", irontelemetry.CategoryHTTP)
HTTP Middleware
http.Handle("/", irontelemetry.HTTPHandler(client, myHandler))
Configuration
client, err := irontelemetry.New(irontelemetry.Options{
DSN: "https://pk_live_xxx@irontelemetry.com",
Environment: "production",
AppVersion: "1.2.3",
SampleRate: 1.0,
BeforeSend: func(event *irontelemetry.TelemetryEvent) *irontelemetry.TelemetryEvent {
return event
},
})
Documentation
For complete documentation, visit irontelemetry.com/docs.
Other SDKs
| Platform | Package |
|---|---|
| JavaScript/TypeScript | @ironservices/telemetry |
| .NET | IronTelemetry.Client |
| Python | irontelemetry |
| Java | irontelemetry-java |
| Rust | irontelemetry |
Support
- Documentation: irontelemetry.com/docs
- Email: dev@ironservices.io
- Issues: git.marketally.com/ironservices/irontelemetry-go/issues
License
MIT License - see LICENSE for details.