Introduction
What is Pulse?
A digital experience platform that helps you understand how users are interacting with your platform in real time; combining behavioral, technical and business insights to drive better user experiences.
Key Capabilities
- Real-time Monitoring: Track user interactions, performance metrics, and system health
- Distributed Tracing: Follow requests across microservices and distributed systems
- Mobile Observability: Native SDKs for Android and React Native applications
- Alerting: Flexible alert management with multiple notification channels
- Analytics: Advanced analytics powered by ClickHouse for high-performance queries
- OpenTelemetry Native: Built on OpenTelemetry standards for vendor-neutral observability
Architecture Overview
┌───────────────────────────────────────────────────────────────────────┐
│ Client Applications │
├────────────────────┬──────────────┬──────────────┬────────────────────┤
│ Web (Coming Soon) │ Android │ React Native │ iOS (Coming soon) │
└────── ┬─────────────┴──────┬───────┴──────┬───────┴─────────┬──────────┘
│ │ │ │
└────────────────────┴──────────────┴─────────────────┘
│
▼
┌─────────────────────────┐
│ OTLP (4317/4318) │
│ OpenTelemetry │
│ Collector │
└────────────┬────────────┘
│
┌────────────┴────────────┐
│ │
▼ ▼
┌──────────────────┐ ┌──────────────────┐
│ ClickHouse │ │ Pulse Server │
│ (Time-series │◄─────┤ (Java/Vert.x) │
│ Analytics) │ │ │
└──────────────────┘ └────────┬─────────┘
│
▼
┌──────────────────┐
│ MySQL │
│ (Metadata) │
└──────────────────┘
│
▼
┌──────────────────┐
│ Pulse UI │
│ (React) │
└──────────────────┘
Project Structure
Pulse is a monorepo containing all components of the observability platform:
- pulse-ui/ - Monitoring and alerting dashboard
- backend/ - Java Backend (Vert.x) and Data Ingestion Pipeline
- pulse-android-otel/ - Android OpenTelemetry SDK
- pulse-react-native-otel/ - React Native OpenTelemetry SDK
- deploy/ - Deployment Configuration and Docker Compose setup
Technology Stack
Backend
- Runtime: Java 17
- Framework: Vert.x 4.5.10 (Reactive)
- Databases: MySQL 8.0 (Metadata), ClickHouse (Time-series analytics)
- Authentication: Google OAuth 2.0, JWT
Frontend
- Framework: React 18.3
- Language: TypeScript 4.4
- UI Library: Mantine UI 7.11
- State Management: Zustand
- Data Fetching: TanStack Query (React Query)
Data Ingestion
- Collector: OpenTelemetry Collector
- Protocol: OTLP (gRPC/HTTP)
- Storage: ClickHouse
Mobile SDKs
- Android: Kotlin, OpenTelemetry Java
- React Native: TypeScript with native bridges
Getting Started
Ready to get started with Pulse? Follow these quick steps:
- Setup Guide - Get Pulse up and running in 5 minutes
- Android SDK - Integrate Pulse into your Android app
- React Native SDK - Integrate Pulse into your React Native app
Quick Links
Platform Setup:
- Setup Guide - Complete platform setup instructions
SDK Integration:
- Android SDK Overview - Android SDK introduction
- Android Installation - Install and configure Android SDK
- React Native SDK Overview - React Native SDK introduction
- React Native Installation - Install and configure React Native SDK
Instrumentation:
- Android Instrumentation - All Android instrumentations
- React Native Instrumentation - All React Native instrumentations
Reference:
- API Documentation - Complete API reference
- Contributing - Help improve Pulse
Next Steps
- Setup Guide - Get Pulse up and running
- Android SDK - Start with Android integration
- React Native SDK - Start with React Native integration