Overview
The PingPilot analytics dashboard provides comprehensive insights into your events. View event history, track delivery status, filter by time range, and analyze numeric metrics across all your event categories.Dashboard Views
Main Dashboard
The main dashboard displays a grid of all your event categories with real-time statistics. Each category card shows:- Visual Identifier: Color-coded badge with first letter of category name
- Category Name: With emoji prefix
- Creation Date: When the category was first created
- Last Ping: Relative time since last event (“2 minutes ago”)
- Unique Fields: Count of distinct field names used this month
- Events This Month: Total events received since month start
- View All: Navigate to detailed category analytics
- Delete: Remove the category (with confirmation modal)
The main dashboard automatically updates when new events arrive or categories are modified.
Empty State
If you haven’t created any categories yet, the dashboard shows a helpful empty state with:- Instructions to create your first category
- Link to category creation flow
- Quick start guide
Category Analytics
Click “View all” on any category to access detailed analytics.Time Range Filters
Switch between three time ranges to analyze your events:- Today
- This Week
- This Month
Shows events from the start of the current day (00:00:00).
date-fns:
Summary Cards
At the top of each category view, summary cards display key metrics:Total Events Card
Shows the total number of events for the selected time range.Numeric Field Sum Cards
For every field that contains numeric values, PingPilot automatically generates a summary card showing the total for that time range. Calculation Logic:amount: Total revenue or transaction valueusers: User count or registrationslatency: API response timeserrors: Error count
Event Table
The main event table displays all events for the selected category and time range.Table Columns
Default Columns:- Category: Name of the event category
- Date: Creation timestamp (sortable)
- Delivery Status: Color-coded badge
Sorting
Click the “Date” column header to sort events:- Ascending: Oldest events first
- Descending: Newest events first (default)
Delivery Status Badges
Each event shows its delivery status with a color-coded badge:- Green (DELIVERED): Successfully sent to all channels
- Red (FAILED): Delivery failed on one or more channels
- Yellow (PENDING): Delivery not yet attempted
Pagination
The event table supports pagination for large datasets:- Page Size: Up to 50 events per page (default 20)
- Navigation: Previous/Next buttons
- URL Integration: Page and limit stored in query params
Manual Pagination
Pagination is handled server-side for efficiency:Unique Field Tracking
PingPilot tracks how many unique field names appear in your events:- Monitor schema consistency
- Detect new field additions
- Understand data variety
- Identify missing fields
Unique field count resets at the start of each month, just like event counts.
Loading States
The dashboard provides clear loading indicators:Category Loading
While fetching categories, a centered loading spinner displays.Event Loading
When filtering or paginating, the table shows skeleton rows:Real-Time Updates
The dashboard uses React Query for intelligent data fetching:- Automatic Refetching: Categories refresh on window focus
- Cache Management: Previous data shown while loading new data
- Optimistic Updates: UI updates before server confirmation
Polling for New Events
The category detail page polls for new events to detect when the first event arrives:Empty States
No Categories
Shown when you haven’t created any categories yet:- Friendly message
- Call-to-action button
- Link to category creation
No Events in Category
Shown when a category has no events:- Category-specific message
- Instructions to send first event
- Code example with category name
No Results in Time Range
Shown when filtering produces no results:- “No results” message in table center
- Suggestion to try different time range
Performance Optimizations
Server-Side Pagination
Only requested events are fetched from the database, not the entire dataset.Distinct Field Queries
Unique field counting usesdistinct to reduce query complexity:
Parallel Queries
Multiple statistics are fetched in parallel usingPromise.all:
Memoized Calculations
Expensive calculations are memoized withuseMemo:
Best Practices
Choose Appropriate Time Ranges
Choose Appropriate Time Ranges
Use “Today” for real-time monitoring, “This Week” for trend analysis, and “This Month” for comprehensive reporting.
Monitor Delivery Status
Monitor Delivery Status
Regularly check for FAILED events and investigate the root cause to ensure reliable notifications.
Use Numeric Fields for Metrics
Use Numeric Fields for Metrics
Track quantitative data in numeric fields to leverage automatic summation cards.
Keep Field Names Consistent
Keep Field Names Consistent
Use the same field names across events for consistent table columns and easier analysis.
Review Unique Field Counts
Review Unique Field Counts
High unique field counts may indicate inconsistent field naming or overly dynamic schemas.
Next Steps
Event Monitoring
Send more events to populate your dashboard
Event Categories
Create additional categories for better organization