Unified Observability Framework - Production-grade logging, metrics,
tracing, and profiling for modern applications
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
- Per-Module Log Levels - Fine-grained verbosity control per service/module
- 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
go get github.com/machanirobotics/pulse/pulse-gopackage main
import "github.com/machanirobotics/pulse/pulse-go"
func main() {
// Auto-discovers pulse.toml config
p, _ := pulse.New().Build()
defer p.Close()
p.Logger.Info("Service started")
}pip install git+https://github.com/machanirobotics/pulse.git#subdirectory=pulse-pyfrom pulse import Pulse
# Auto-discovers pulse.toml config
with Pulse.new().build() as pulse:
pulse.logger.info("Service started")cargo add pulseuse pulse::{Pulse, logger};
#[tokio::main]
async fn main() -> anyhow::Result<()> {
// Auto-discovers pulse.toml config
let _pulse = Pulse::new().build()?;
logger::info!("Service started");
Ok(())
}All SDKs auto-discover pulse.toml from your project root:
[service]
name = "my-service"
version = "1.0.0"
environment = "development"
[telemetry.otlp]
endpoint = "otel.example.com" # Port 4317 auto-added
auth_token = "your-token"
[logging]
level = 2 # Global log level (1=Error, 2=Info, 3=Debug)
[logging.modules.nats-module]
level = 1 # Override: Error only for this modulePriority: Defaults → pulse.toml → .env / PULSE_* env vars → Code
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 opentelemetry
docker compose up -dAccess Grafana at http://localhost:3000 with all datasources pre-configured.
Observability Stack → · Production Deployment →
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 | pulse-go/README.md |
| Python | ✅ Stable | pulse-py/README.md |
| Rust | ✅ Stable | pulse-rs/README.md |
- 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 © 2026 Machani Robotics
Licensed under the Apache License, Version 2.0. See LICENSE for details.
Built with love by Machani Robotics | Open Source Observability for Everyone
