Production infrastructure for AI agents
Website · Documentation · Guides · Core · Template · Discord
systemprompt-analytics
Prove what your agents did, down to the microdollar. Every session, agent, tool call, and cost is attributed and stored where you can query it, so the answer to "what happened" comes from your database, not a vendor's dashboard.
Layer: Domain — business-logic modules that implement systemprompt.io features. Part of the systemprompt-core workspace.
Overview
Capabilities · Analytics & Observability
This crate provides:
- Session Management - Create, track, and manage user sessions with fingerprint-based identification
- Behavioral Bot Detection - Server-side detection of automated traffic using 7-signal analysis
- Engagement Tracking - Client-side engagement metrics (scroll depth, time on page, clicks)
- Funnel Analytics - Track user progression through defined conversion funnels
- Anomaly Detection - Real-time threshold-based and trend anomaly detection
- Platform Statistics - Aggregated metrics for users, agents, tools, costs, and traffic
Usage
[]
= "0.21"
Optional geolocation feature enables MaxMind GeoIP enrichment via maxminddb:
= { = "0.21", = ["geolocation"] }
Module Layout
| Module | Purpose |
|---|---|
models/ |
Analytics models: sessions, events, engagement, fingerprints, funnels, plus CLI row types. |
repository/ |
Compile-time-verified queries for sessions, agents, tools, requests, costs, traffic, content, funnels, fingerprints, and aggregate stats. |
services/ |
AnalyticsService session lifecycle, AnomalyDetectionService, the behavioral_detector/ 7-signal bot detection, session cleanup, and the request/GeoIP extractor/. |
Schema DDL lives in schema/*.sql (anomaly_thresholds, engagement_events, fingerprint_reputation, funnels, funnel_progress) with migrations in schema/migrations/:
001_add_engagement_event_type.sql002_add_engagement_event_data.sql003_seed_anomaly_thresholds.sql
Key Components
Services
| Service | Purpose |
|---|---|
AnalyticsService |
Session lifecycle management and analytics extraction |
AnomalyDetectionService |
Threshold-based and trend anomaly detection |
BehavioralBotDetector |
7-signal server-side bot detection |
SessionCleanupService |
Cleanup of inactive sessions |
Repositories
| Repository | Purpose |
|---|---|
SessionRepository |
Session CRUD and behavioral data queries |
EngagementRepository |
Engagement event operations |
FingerprintRepository |
Fingerprint reputation tracking |
FunnelRepository |
Funnel progress and statistics |
AnalyticsEventsRepository |
Analytics event storage |
CoreStatsRepository |
Platform statistics and trends |
AgentAnalyticsRepository |
Agent task analytics |
ToolAnalyticsRepository |
MCP tool execution analytics |
RequestAnalyticsRepository |
AI request analytics |
CostAnalyticsRepository |
Cost breakdown queries |
TrafficAnalyticsRepository |
Traffic source analysis |
ContentAnalyticsRepository |
Content performance metrics |
OverviewAnalyticsRepository |
Dashboard metrics |
ConversationAnalyticsRepository |
Conversation statistics |
CliSessionAnalyticsRepository |
CLI session statistics |
Models
| Model | Purpose |
|---|---|
AnalyticsSession |
Session data with tracking fields |
AnalyticsEvent |
Event with type, category, severity |
EngagementEvent |
Client-side engagement metrics |
FingerprintReputation |
Fingerprint tracking and flags |
Funnel, FunnelStep, FunnelProgress |
Funnel tracking |
AnomalyCheckResult, AnomalyLevel |
Anomaly detection |
BehavioralAnalysisResult, BehavioralSignal |
Bot detection |
Dependencies
| Crate | Purpose |
|---|---|
systemprompt-database |
Database pool access |
systemprompt-extension |
Extension trait and schema registration |
systemprompt-models |
Shared types including ContentRouting |
systemprompt-identifiers |
SessionId, UserId, FunnelId, and other typed IDs |
systemprompt-traits |
Repository trait |
maxminddb (optional) |
GeoIP database reader behind geolocation feature |
Behavioral Bot Detection
The BehavioralBotDetector analyzes sessions using 7 signals:
| Signal | Points | Threshold |
|---|---|---|
| High Request Count | 30 | > 50 requests |
| High Page Coverage | 25 | > 60% of site pages |
| Sequential Navigation | 20 | Systematic crawl pattern |
| Multiple Fingerprint Sessions | 20 | > 5 sessions per fingerprint |
| Regular Timing | 15 | < 0.1 timing variance |
| High Pages Per Minute | 15 | > 5 pages/min |
| Outdated Browser | 10 | Chrome < 90 or Firefox < 88 |
Sessions with score >= 50 are marked as behavioral bots.
License
BSL-1.1 (Business Source License). Source-available for evaluation, testing, and non-production use. Production use requires a commercial license. Each version converts to Apache 2.0 four years after publication. See LICENSE.
systemprompt.io · Documentation · Guides · Live Demo · Template · crates.io · docs.rs · Discord
Domain layer · Own how your organization uses AI.