ExeWatch

Stop Guessing.
Start Knowing.

Real-time monitoring and AI anomaly detection for your Delphi, .NET/C#, and JavaScript apps. Know what went wrong before your customers complain.

Free tier available • No credit card required • 5-minute integration

When ExeWatch Makes the Difference

Real scenarios where visibility saves hours of debugging

"It crashes sometimes, but I can't reproduce it"

Your customer reports a crash that you can't reproduce in your environment.

With ExeWatch: You see the exact sequence of actions (breadcrumbs) leading to the crash, the user's hardware specs, OS version, and the full error stack trace. You fix it in 10 minutes.

"Only this one customer has problems"

One customer keeps complaining, but everyone else is fine.

With ExeWatch: Filter logs by customer. See their specific hardware (maybe they have 4GB RAM and others have 16GB), their app version (outdated?), and exactly which features cause issues.

"Did the new release introduce bugs?"

You just deployed version 2.5 and want to make sure everything is stable.

With ExeWatch: Filter by release tag. Compare error rates between v2.4 and v2.5. See if new users encounter errors immediately or only power users with specific workflows.

"Support needs to understand what happened"

Your support team receives a ticket: "The app didn't save my work".

With ExeWatch: Support searches by user email or customer ID. They see the timeline of events, where the save operation failed, disk space available, and can provide precise answers.

"Our web dashboard has JavaScript errors"

Users complain about features not working, but you don't see errors in your browser.

With ExeWatch: The JavaScript SDK captures errors from all browsers, including Safari, Edge, old Chrome versions. You see browser info, screen size, and user actions before the error.

"We need to know what happens offline"

Your app works offline or has intermittent connectivity, but you need visibility when connection is restored.

With ExeWatch: Logs are persisted locally and automatically sent when connection is available. Nothing is lost. You see complete activity even from offline sessions.

"I want to know about problems before customers call"

You don't want to check the dashboard constantly, but need to know when things go wrong.

With ExeWatch: Set up email alerts with custom thresholds. Get notified when error rates spike: "10 errors in 1 hour" triggers an email to your team.

"Some operations are slow, but I don't know which ones"

Your app feels sluggish sometimes, but you can't pinpoint the bottleneck.

With ExeWatch: Instrument key operations with timing. See Avg, P95, and Max duration for each. Get alerted when operations exceed your thresholds (e.g., "5 queries > 500ms in 1 hour").

"Is anyone actually using our software?"

You shipped your product but have no idea how many customers are active, when they use it, or if usage is growing.

With ExeWatch: The Usage page shows active sessions, devices, and customers over time with trend deltas. A heatmap reveals when your app is used most (weekday mornings? evenings?). No extra code needed.

"A key customer stopped using the product"

You want to spot customers at risk of churning before they cancel their license.

With ExeWatch: The Top Customers ranking shows session counts and last active date. Compare 30d vs previous 30d — a customer dropping from 50 to 5 sessions is a red flag you can act on immediately.

Everything You Need to Understand Your App

Comprehensive data collected automatically

Structured Logs

5 severity levels: Debug, Info, Warning, Error, Fatal. Filter by level, search by message, organize with custom tags.

Debug Info Warning Error Fatal

Breadcrumbs Trail

Automatic capture of user actions before an error. See exactly what sequence of clicks, navigation, and API calls led to the problem.

Click → Navigate → API Call → Error

User Identity

Attach user info to every event: ID, email, name. When a user reports an issue, find their logs instantly.

Filter by user email, see complete user sessions

Hardware Intelligence

Automatic collection of device specs. Understand if issues are related to hardware limitations.

  • CPU, RAM, available memory
  • Disk space and drive types
  • Monitor resolution and count
  • OS version, timezone, locale

Multi-Customer Tracking

If you sell to businesses, track each customer separately. See logs per customer, compare behavior, prioritize enterprise clients.

Perfect for B2B software vendors

Release & Tags

Tag events with app version and custom context. Filter logs by release, environment (dev/staging/prod), feature flags.

v2.5.0 production beta-feature

Performance Timing

Measure how long operations take. Track database queries, API calls, file operations, and any code block.

  • Avg, Min, Max, P95 stats
  • Identify slow operations
  • Nested timing support
  • Category grouping

Health Monitoring

Every app gets a real-time health status: Healthy, Degraded, or Critical. Get notified when your app's health changes.

  • Error rate, crashes & slow ops
  • Email & Discord notifications
  • Smart anti-flapping protection
  • Customizable thresholds

Email Alerts

Get notified when error thresholds are exceeded. Configure rules like "email me if 10+ errors occur in 1 hour".

  • Configurable thresholds
  • Time window filters
  • Filter by level and tags
  • Smart cooldown

Usage Analytics

Understand how your software is used. Track sessions, active devices, customers, and usage patterns over time.

  • Sessions, devices & customers
  • Usage heatmap (hour × day)
  • OS distribution
  • Error rate trend by version

Timing Alerts

Get notified when operations become too slow. Set thresholds like "alert if 5+ queries exceed 500ms in 1 hour".

  • Duration thresholds
  • Wildcard patterns (database_*)
  • Filter by category
  • Email notifications

Custom Metrics

Send custom numeric metrics from your applications. Track counters (requests, sales) and gauges (CPU, memory, queue size).

  • Counters & gauges
  • Time-series charts
  • Configurable min/max/units
  • Tag-based filtering

AI-Powered Anomaly Detection

Go beyond fixed thresholds. Our AI learns your application's normal behavior and automatically detects anomalies—without manual configuration.

Spike Detection Detect unusual error rates compared to historical baseline
Pattern Learning Understands daily/weekly patterns (e.g., Monday peaks)
Zero Configuration No manual threshold tuning—AI adapts automatically
Fewer False Positives Alert only when truly unusual, not just "above threshold"
PRO Error count anomalies
BUSINESS Error count + Timing anomalies

Integration in 5 Minutes

Native SDKs for Delphi, .NET/C#, and JavaScript - no complex setup

Delphi SDK

All Platforms

Works with VCL, FMX, console apps, Windows services, Linux servers, DataSnap, RAD Server, and mobile apps (Android/iOS).

Setup:

  1. Add ExeWatchSDKv1.pas to your project
  2. For VCL apps: also add ExeWatchSDKv1.VCL.pas
  3. For FMX/Mobile apps: also add ExeWatchSDKv1.FMX.pas
  4. Call InitializeExeWatch(api_key, customer_id)
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// REQUIRED: Add units and initialize
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
uses
  ExeWatchSDKv1,
  ExeWatchSDKv1.VCL; // or .FMX for FireMonkey

// Call once at application startup
InitializeExeWatch('ew_win_xxx', 'ACME-Corp');

// That's it! Errors are now captured automatically.
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// OPTIONAL: Additional features
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

// Identify the current user
EW.SetUser('user123', 'john@acme.com', 'John Doe');

// Add global tags for context
EW.SetTag('environment', 'production');

// Manual logging
EW.Info('User opened settings', 'UI');
EW.Error('Connection failed', 'DB');

// Breadcrumbs: track actions before errors
EW.AddBreadcrumb('Loading data', 'db');

// Measure performance
EW.StartTiming('database_query');
try
  QueryResults := RunComplexQuery(SQL);
  EW.EndTiming('database_query');
except
  on E: Exception do
  begin
    EW.EndTiming('database_query',
      TJSONObject.Create(TJSONPair.Create('error', E.Message)), False);
    raise;
  end;
end;

Automatic Exception Capture: All unhandled exceptions are automatically logged—no try/except needed. The VCL/FMX hooks capture GUI exceptions, while console app crashes are caught at the system level.

Also included: User identity tracking, global tags, breadcrumbs trail, performance timing, offline persistence, automatic retry, and hardware info collection. Compatible with Delphi 10 Seattle+ on Windows, Linux, Android, iOS and macOS.

.NET / C# SDK

Windows

Works with WinForms, WPF, console apps, and Windows services. .NET 8.0+ required. Zero NuGet dependencies.

Setup:

  1. Add ExeWatch package to your project
  2. For WinForms apps: also add ExeWatch.WinForms
  3. Call ExeWatchSdk.Initialize(config)
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// REQUIRED: Initialize at startup
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
using ExeWatch;

ExeWatchSdk.Initialize(new ExeWatchConfig
{
    ApiKey = "ew_win_xxx",
    CustomerId = "ACME-Corp"
});

// That's it! Errors are now captured automatically.
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// OPTIONAL: Additional features
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

// Identify the current user
EW.SetUser("user123", "john@acme.com", "John Doe");

// Add global tags for context
EW.SetTag("environment", "production");

// Manual logging
EW.Info("User opened settings", "UI");
EW.Error("Connection failed", "DB");

// Measure performance
EW.StartTiming("database_query");
try
{
    var results = RunQuery(sql);
    EW.EndTiming("database_query");
}
catch (Exception ex)
{
    EW.EndTiming("database_query",
        new Dictionary<string, object> { ["error"] = ex.Message }, false);
    throw;
}

Automatic Exception Capture: All unhandled exceptions are automatically logged. The WinForms hook captures GUI thread exceptions, while AppDomain-level exceptions are caught at the system level.

Also included: User identity tracking, global tags, breadcrumbs trail, performance timing, offline persistence, automatic retry, hardware info collection, and custom metrics (counters & gauges). Requires .NET 8.0+ on Windows.

JavaScript SDK

Web Apps

Setup:

  1. Add script tag to your HTML
  2. Configure with your API key
  3. Start logging!
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// REQUIRED: Add script and configure
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<script>
  window.ewConfig = {
    apiKey: 'ew_web_your_key',
    customerId: 'ACME-Corp'
  };
</script>
<script src="https://exewatch.com/static/js/exewatch.v1.min.js"></script>

// That's it! Errors are now captured automatically.
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// OPTIONAL: Additional features
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

// Identify the current user
ew.setUser({ id: 'user123', email: 'john@acme.com' });

// Add global tags for context
ew.setTag('environment', 'production');

// Manual logging
ew.info('Page loaded', 'UI');
ew.error('API failed', 'api');

// Breadcrumbs: track actions before errors
ew.addBreadcrumb('Clicked checkout', 'ui');

// Measure performance
ew.startTiming('api_call');
try {
    const data = await fetchData();
    ew.endTiming('api_call');
} catch (err) {
    ew.endTiming('api_call', { error: err.message }, false);
    throw err;
}

Automatic Error Capture: All unhandled exceptions and promise rejections are automatically logged—no try/catch needed. The SDK captures errors from any code, including third-party libraries.

Also included: User identity tracking, global tags, breadcrumbs trail, performance timing, persistent device ID across sessions, automatic browser info collection. Works on all modern browsers with a tiny footprint (~5KB).

Video Tutorials

Learn how to integrate and use ExeWatch

Simple, Transparent Pricing

Start free, upgrade when you need more

All plans include every SDK — Delphi, .NET/C#, and JavaScript

View Full Comparison

Hobby

Free

For personal projects and learning

  • 1 Applications
  • 10,000 Events/month
  • 7 Days retention
  • Updates & Usage Analytics (7d window)
  • 1 Team members
  • 2 Alerts (Email + Timing)
Popular

Pro

19 € /month

For professionals and small teams

  • 5 Applications
  • 100,000 Events/month
  • 30 Days retention
  • Updates & Usage Analytics (30d window)
  • 5 Team members
  • 10 Alerts (Email + Timing)
  • AI Anomaly Detection Errors
  • Export Logs

Business

49 € /month

For growing teams and businesses

  • 20 Applications
  • 1,000,000 Events/month
  • 90 Days retention
  • Updates & Usage Analytics (90d window)
  • 10 Team members
  • 50 Alerts (Email + Timing)
  • AI Anomaly Detection Errors + Timing
  • Export Logs
  • Priority Support
  • WebHooks for custom integration
  • Discord Integration

Frequently Asked Questions

Everything you need to know about ExeWatch

ExeWatch is an Application Performance Monitoring (APM) platform designed for server, desktop, and web applications built with Delphi, .NET/C#, and JavaScript. It provides real-time log aggregation, error tracking, hardware information collection, and breadcrumb trails to help developers quickly identify and fix issues in production.

ExeWatch currently offers native SDKs for Delphi (compatible with Delphi 10 Seattle and later, supporting VCL, FMX, console apps, services, and Linux servers), .NET/C# (for WinForms, WPF, console apps, and Windows services on .NET 8.0+), and JavaScript (for web applications, works on all modern browsers). A Python SDK is planned for a future release.

Yes! Both the Delphi and .NET SDKs store logs locally on disk when there's no internet connection. Once connectivity is restored, all queued logs are automatically sent to the server. This ensures you never lose visibility into what happened during offline sessions.

ExeWatch automatically collects: CPU model and core count, total and available RAM, disk drives with free space, monitor count and resolutions, OS version and build number, timezone and locale settings, and your application version. This helps you understand if issues are related to specific hardware configurations.

Log retention depends on your plan: the free Hobby plan retains logs for 7 days, the Pro plan for 30 days, and the Business plan for 90 days. You can upgrade your plan at any time to increase retention.

Yes! ExeWatch offers a free Hobby plan that includes 1 application, 10,000 events per month, and 7 days of log retention. No credit card required. Perfect for small projects, personal apps, or trying out the platform before upgrading.

Yes! ExeWatch includes email alerts with configurable thresholds. For example, you can set up an alert like "email me if 10 errors occur within 1 hour". You can filter by severity level (warning, error, fatal) and specific tags. A smart cooldown prevents alert fatigue.

Yes! ExeWatch provides performance timing for any operation. Use startTiming/endTiming to measure database queries, API calls, or any code block. The dashboard shows Avg, Min, Max, and P95 statistics. You can also set up timing alerts to get notified when operations exceed duration thresholds (e.g., "alert if 5 database queries exceed 500ms in 1 hour"). Wildcard patterns like database_* let you monitor groups of operations.

When you collect operational data from your end users (even technical data like device info and error logs), most jurisdictions require you to disclose this in a Privacy Policy or Terms of Service. ExeWatch provides a ready-to-use template that you can copy and adapt for your application. It covers what data is collected, where it's stored, and your users' rights. See the Privacy & ToS Guide in our documentation for the full template and compliance tips.

Stop Flying Blind

Your users know when something goes wrong. Shouldn't you?
Start monitoring your applications today.

Create Free Account