Pulse is a comprehensive observability framework that provides unified telemetry for your applications. Built on OpenTelemetry standards, Pulse makes it easy to instrument your code with structured logging, distributed tracing, metrics collection, and continuous profiling.
Pulse is now open-sourced by Machani Robotics to help teams build observable, maintainable systems.
- Structured Logging - Context-aware logging with automatic trace correlation
- Metrics Collection - Counters, histograms, and gauges with OpenTelemetry
- Distributed Tracing - End-to-end request tracking across services
- Continuous Profiling - Production performance analysis with Pyroscope
- MCAP Recording - Offline analysis with Foxglove Studio
- Zero-Config Integration - Works out of the box with sensible defaults
- OpenTelemetry Native - Standard protocols for maximum compatibility
Get started with Pulse in your Go applications:
go get github.com/machanirobotics/pulse/goimport (
"context"
pulse "github.com/machanirobotics/pulse/go"
"github.com/machanirobotics/pulse/go/options"
)
func main() {
ctx := context.Background()
// Initialize Pulse
p, err := pulse.New(ctx, options.ServiceOptions{
Name: "my-service",
Version: "1.0.0",
Environment: options.Production,
}, options.PulseOptions{
Telemetry: options.TelemetryOptions{
Logging: options.LoggingTelemetryOptions{Enabled: true},
Metrics: options.MetricsTelemetryOptions{Enabled: true},
Tracing: options.TracingTelemetryOptions{Enabled: true},
},
})
if err != nil {
panic(err)
}
defer p.Close(ctx)
// Use it!
p.Logger.Info("Service started", nil)
}Pulse includes a complete, pre-configured observability stack powered by industry-standard tools:
- Loki - Log aggregation
- Tempo - Distributed tracing
- Prometheus - Metrics storage
- Pyroscope - Continuous profiling
- Grafana - Unified dashboards
- OpenTelemetry Collector - Telemetry pipeline
cd otel
docker compose up -dAccess Grafana at http://localhost:3000 with all datasources pre-configured.
📖 OpenTelemetry Stack Documentation →
graph TB
App[Your Application]
SDK[Pulse SDK]
subgraph "Telemetry Signals"
Logs[Logs]
Metrics[Metrics]
Traces[Traces]
Profiles[Profiles]
end
subgraph "Collection & Storage"
OTLP[OTLP Collector]
Loki[Loki]
Prometheus[Prometheus]
Tempo[Tempo]
Pyroscope[Pyroscope]
end
Grafana[Grafana Dashboards]
App --> SDK
SDK --> Logs
SDK --> Metrics
SDK --> Traces
SDK --> Profiles
Logs --> OTLP
Metrics --> OTLP
Traces --> OTLP
Profiles --> Pyroscope
OTLP --> Loki
OTLP --> Prometheus
OTLP --> Tempo
Loki --> Grafana
Prometheus --> Grafana
Tempo --> Grafana
Pyroscope --> Grafana
| Language | Status | Documentation |
|---|---|---|
| Go | ✅ Stable | Go/README.md |
| Python | 🚧 Coming Soon | - |
| Rust | 🚧 Coming Soon | - |
- Microservices - Track requests across service boundaries
- API Services - Monitor performance and errors
- Robotics - Record and analyze system behavior
- ML Pipelines - Trace data processing workflows
- Production Debugging - Correlate logs, traces, and metrics
We welcome contributions! Pulse is open-source and maintained by Machani Robotics.
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
Copyright © 2025 Machani Robotics
Licensed under the Apache License, Version 2.0. See LICENSE for details.
Built with ❤️ by Machani Robotics | Open Source Observability for Everyone
