Skip to content

MachDatum/ThingConnect.Pulse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ThingConnect Pulse

Free, on-premises availability monitoring for manufacturing IT/OT over IPv4/IPv6.

ThingConnect Pulse provides YAML-configured monitoring with live dashboard, historical rollups, and CSV export. Designed for plant IT/OT admins, production supervisors, and maintenance engineers who need reliable network device monitoring with zero external dependencies.

Value:

  • Lightweight: 5-minute setup with single Windows Service installer
  • Local-first: No cloud dependencies, all data stays on-premises
  • Readable config: Simple YAML configuration with explicit Apply workflow

Non-Goals (v1):

Quick Start

Prerequisites

  • .NET 8 SDK
  • Node.js 18+

Development Setup

# Clone repository
git clone https://github.com/MachDatum/ThingConnect.Pulse.git
cd ThingConnect.Pulse

# Backend setup
dotnet restore
dotnet build

# Frontend setup  
cd thingconnect.pulse.client
npm install
cd ..

# Run backend server
cd ThingConnect.Pulse.Server
dotnet run
# Backend API: http://localhost:8080

# Run frontend (in separate terminal)
cd thingconnect.pulse.client
npm run dev
# Frontend: https://localhost:55610 (or similar port)

Project Structure

Documentation

Installation & Deployment

Windows Installer

Build and create a professional Windows installer:

# Build installer (includes build and packaging)
.\build-installer.ps1

# Build installer without rebuilding (faster for testing)
.\build-installer.ps1 -SkipBuild

# Open installer directory after build
.\build-installer.ps1 -OpenInstaller

The installer will:

  • Install to Program Files\ThingConnect.Pulse
  • Create data directories in ProgramData\ThingConnect.Pulse
  • Register and start ThingConnectPulseSvc Windows service
  • Create Start Menu shortcuts
  • Ask before deleting data on uninstall

Development Installation

For development and testing:

# Install as Windows service (development)
.\install-service.ps1 install

# Manage service
.\install-service.ps1 start|stop|status

# Uninstall service  
.\install-service.ps1 uninstall

Documentation

API Endpoints

The server provides REST API endpoints for configuration management and monitoring data:

# Live monitoring data
GET /api/status/live

# Historical data by endpoint  
GET /api/history/endpoint/{id}

# Apply YAML configuration
POST /api/config/apply
Content-Type: text/plain
[YAML configuration content]

# List all configuration versions  
GET /api/config/versions

# Download specific configuration version
GET /api/config/versions/{id}

# Settings management (internal)
GET /api/settings/{key}
POST /api/settings/{key}

# Monitoring test endpoints (development)
POST /api/test/monitoring/test-probes
POST /api/test/monitoring/test-outage-detection
POST /api/test/monitoring/test-discovery
GET /api/test/monitoring/check-results
GET /api/test/monitoring/outages

Status: Configuration management endpoints are fully implemented and tested. Settings service provides watermark tracking for rollup jobs. Monitoring engine is operational with continuous background probing and outage detection.

Development

Issues & Project Management

Issue Labels

  • priority:P1 - Critical path items
  • priority:P2 - Important features
  • priority:P3 - Nice to have
  • area:* - Component areas (api, ui, infra, etc.)
  • type:* - Issue types (feature, bug, ops, docs)

Technology Stack

  • Backend: ASP.NET Core 8.0, Entity Framework Core, SQLite
  • Frontend: React 19, TypeScript, Vite, Chakra UI
  • Monitoring: ICMP, TCP, HTTP probes with flap damping
  • Data: 15-minute and daily rollups, 60-day retention
  • Deployment: Windows Service with Inno Setup installer

Features

v1.0 Scope

  • Network Monitoring: ✅ ICMP ping, TCP connect, HTTP status checks with concurrent execution
  • Configuration: ✅ YAML-based with JSON Schema validation and version tracking
  • Data Storage: ✅ SQLite with automatic 15-minute/daily rollups running every 5 minutes
  • Web Interface: ✅ Real-time status dashboard with live data integration, endpoint detail pages, history view with CSV export, and responsive layout
  • Configuration Management: ✅ Apply, list, and download configuration versions
  • Settings Management: ✅ Key-value store with watermark tracking for rollup jobs
  • Alerting: ✅ Status change detection with flap damping (2/2 thresholds)
  • Outage Tracking: ✅ Automatic outage detection with start/end timestamps
  • Target Discovery: ✅ CIDR range and wildcard expansion from configuration
  • Deployment: Single Windows service installer

Monitoring Capabilities

  • Device Discovery: ✅ CIDR range and wildcard expansion (e.g., "10.0.0.0/24", "192.168.1.*")
  • Probe Types: ✅ ICMP ping, TCP port checks, HTTP/HTTPS requests with content matching
  • Status Logic: ✅ 2 failures → DOWN, 2 successes → UP (flap damping)
  • Background Processing: ✅ Continuous monitoring with configurable intervals per endpoint
  • Data Aggregation: ✅ 15-minute and daily rollups with UpPct, AvgRttMs, DownEvents calculations
  • Data Retention: Raw data (60 days), rollups (indefinite)
  • Performance: ✅ 100 concurrent probes, configurable timeouts, retry logic
  • State Management: ✅ Per-endpoint success/fail streak tracking with outage detection

Getting Help

License

Copyright © ThingConnect

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •