A client-side web application for analyzing FileMaker Server log files. Upload your logs and get interactive dashboards, charts, performance insights, and detailed breakdowns — all processed locally in your browser.
Live Demo (coming soon)
| Log | What It Analyzes |
|---|---|
| Event.log | Server events, errors, crashes, schedule runs, database open/close activity |
| Access.log | Client connections, disconnections, database access, denied attempts |
| TopCallStats.log | Most expensive remote calls with elapsed/wait/I/O time breakdown |
| ClientStats.log | Per-client resource consumption and anomaly detection |
| Stats.log | Aggregate server statistics — clients, cache, calls/sec, disk I/O |
| scriptEvent.log | Script execution errors, schedule failures, FM error codes |
| fmdapi.log | Data API requests — methods, endpoints, accounts, IPs, errors |
- Performance Insights — Automatic bottleneck identification (Wait/I/O/Processing), slow call thresholds (>250ms / >1s), and actionable advice based on Claris best practices
- Server Health Assessment — Cache hit ratio monitoring (target: 100%), Remote Calls in Progress alerts (normal: 0-2), elapsed time spike detection, collection interval analysis
- Critical Event Detection — Process crash alerts (Event 701), client disconnect clustering analysis (server-side vs Wi-Fi), schedule abort vs timeout distinction (Event 690)
- Anomaly Detection — Clients with resource usage >2 standard deviations above the mean are flagged
- Interactive Filtering — Clickable stat cards, severity/category filters, date range presets
- Drill-Down Panels — Data API IP address and account breakdowns with click-to-filter
- Time Breakdowns — Per-client and per-operation Wait vs I/O vs Processing stacked charts
- Heatmaps — Day-of-week x hour-of-day visualization of expensive calls
- CSV Export — Export any table to CSV for further analysis
- Dark Mode — Full dark mode support with system preference detection
All parsing happens entirely in your browser. No data is uploaded to any server. No cookies, no tracking. Works offline once loaded.
# Clone the repo
git clone https://github.com/rulosa01/FMS-Log-Analyzer.git
cd fms-log-analyzer
# Install dependencies
npm install
# Start dev server
npm run devOpen http://localhost:5173 and drag in your FMS log files.
# Production build
npm run build
# Preview production build locally
npm run previewThe dist/ folder is ready to deploy to any static host. Built for one-click deployment on Vercel, Netlify, Cloudflare Pages, or GitHub Pages.
The recommended approach for diagnosing FileMaker Server performance issues:
Stats.log → Identify WHEN performance degrades
↓
ClientStats.log → Find WHICH client is responsible
↓
TopCallStats.log → Identify the specific expensive operation
↓
DDR / FMPerception → Map internal table IDs to actual schema names
| Metric | Healthy | Warning | Critical |
|---|---|---|---|
| Cache Hit % | 99-100% | 95-99% | <95% |
| Remote Calls in Progress | 0-2 | 3-4 | 5+ |
| Elapsed Time per Call | Stable baseline | 5x spikes above avg | Sustained elevation |
Elapsed Time = Wait Time + I/O Time + Processing Time
- Wait Time — Record locking contention. Look for long-running scripts, "funnel table" architectures, or unstored calculations on related data
- I/O Time — Disk bottlenecks. Increase database cache, upgrade to SSD/NVMe, or optimize finds on unindexed fields
- Processing Time — CPU/network overhead. Check for complex calculations, wide-column layouts, or large transferred record sets
- React 19 — UI framework
- Vite 7 — Build tool
- Tailwind CSS 4 — Styling
- Recharts — Charts and visualizations
- Lucide React — Icons
src/
├── App.jsx # Main app layout, routing, date filter
├── components/
│ ├── FileUploader.jsx # Upload landing page with tips & resources
│ ├── DataTable.jsx # Sortable, filterable, paginated table with CSV export
│ ├── DateRangeFilter.jsx # Date range with quick presets
│ └── StatCard.jsx # Clickable metric cards
├── parsers/
│ ├── index.js # Main entry — file reading, line ending normalization
│ ├── logDetector.js # Auto-detection of log type from filename/content
│ ├── eventLogParser.js # Event.log parser + categorization
│ ├── accessLogParser.js # Access.log parser + structured data extraction
│ ├── topCallStatsParser.js # TopCallStats parser + target parsing
│ ├── clientStatsParser.js # ClientStats parser
│ ├── statsParser.js # Stats.log parser (18 columns)
│ ├── scriptEventParser.js # scriptEvent.log parser
│ └── fmdapiParser.js # fmdapi.log parser
├── views/
│ ├── EventLogView.jsx # Server info, critical alerts, schedule summary
│ ├── AccessLogView.jsx # User activity, client types, database popularity
│ ├── TopCallStatsView.jsx # Performance insights, bottleneck analysis, heatmap
│ ├── ClientStatsView.jsx # Per-client breakdown, anomaly detection
│ ├── StatsView.jsx # Health assessment, client/performance trends
│ ├── ScriptEventView.jsx # Script errors, FM error code breakdown
│ └── FmdapiView.jsx # IP/account drill-down, method breakdown
└── utils/
├── dateUtils.js # FMS timestamp parsing, formatting, duration display
├── exportUtils.js # CSV export with proper escaping
└── hooks.js # Dark mode hook with localStorage persistence
| OS | Default Path |
|---|---|
| macOS | /Library/FileMaker Server/Logs/ |
| Windows | C:\Program Files\FileMaker\FileMaker Server\Logs\ |
| Linux | /opt/FileMaker/FileMaker Server/Logs/ |
Logs roll at ~40MB. Upload both current and -old.log files for longer history.
Note:
Stats.logandClientStats.logare not enabled by default. Enable them via Admin Console orfmsadminCLI.
- Claris: Monitoring Log Files
- Soliant: FileMaker Server Statistics Logging
- Beezwax: Quick FileMaker Stats Log Summaries
- Portage Bay: Top Calls Log Analysis
This tool is provided "as-is" without warranty of any kind. The authors make no guarantees about the accuracy, completeness, or reliability of the analysis provided. Use at your own risk. This is not affiliated with or endorsed by Claris International Inc. or FileMaker, Inc.