systemprompt-analytics 0.10.2

Analytics for systemprompt.io AI governance infrastructure. Session, agent, tool, and microdollar-precision cost attribution across the MCP governance pipeline.
Documentation

Production infrastructure for AI agents

Website · Documentation · Guides · Core · Template · Discord


systemprompt-analytics

Crates.io Docs.rs License: BSL-1.1

Analytics for systemprompt.io AI governance infrastructure. Session, agent, tool, and microdollar-precision cost attribution across the MCP governance pipeline. Comprehensive session tracking, behavioral bot detection, engagement metrics, funnel analytics, and anomaly detection.

Layer: Domain — business-logic modules that implement systemprompt.io features. Part of the systemprompt-core workspace.

Overview

Capabilities · Analytics & Observability

This crate provides comprehensive analytics capabilities including:

  • 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

[dependencies]
systemprompt-analytics = "0.9.2"

Optional geolocation feature enables MaxMind GeoIP enrichment via maxminddb:

systemprompt-analytics = { version = "0.9.2", features = ["geolocation"] }

Directory Structure

src/
├── lib.rs                          # Public exports and GeoIpReader type alias
├── error.rs                        # AnalyticsError enum (thiserror)
├── extension.rs                    # AnalyticsExtension schema registration
├── models/
│   ├── mod.rs                      # Core analytics models (sessions, stats, trends)
│   ├── engagement.rs               # Engagement event models
│   ├── events.rs                   # Analytics event types and payloads
│   ├── fingerprint.rs              # Fingerprint reputation models
│   ├── funnel.rs                   # Funnel tracking models
│   └── cli/
│       ├── mod.rs                  # CLI row-type re-exports
│       ├── agent.rs                # Agent CLI row types
│       ├── content.rs              # Content CLI row types
│       ├── overview.rs             # Overview CLI row types
│       ├── request.rs              # Request CLI row types
│       ├── session.rs              # Session CLI row types
│       └── tool.rs                 # Tool CLI row types
├── repository/
│   ├── mod.rs                      # Repository re-exports
│   ├── cli_sessions.rs             # CLI session statistics
│   ├── content_analytics.rs        # Content performance metrics
│   ├── conversations.rs            # Conversation analytics
│   ├── costs.rs                    # Cost breakdown queries
│   ├── engagement.rs               # Engagement event CRUD
│   ├── events.rs                   # Analytics event storage
│   ├── overview.rs                 # Dashboard overview metrics
│   ├── queries.rs                  # AI provider usage queries
│   ├── requests.rs                 # AI request analytics
│   ├── traffic.rs                  # Traffic source analysis
│   ├── agents/                     # Agent analytics (list, detail, stats)
│   ├── core_stats/                 # Platform stats (overview, activity, breakdowns, leaderboards)
│   ├── fingerprint/                # Fingerprint reputation (queries, mutations)
│   ├── funnel/                     # Funnel tracking (finders, mutations, stats, types)
│   ├── session/                    # Session lifecycle (queries, mutations, behavioral, types)
│   └── tools/                      # MCP tool execution analytics (list, detail)
└── services/
    ├── mod.rs                      # Service re-exports
    ├── ai_crawler_keywords.rs      # AI crawler user-agent patterns
    ├── ai_provider.rs              # AnalyticsAiSessionProvider
    ├── anomaly_detection.rs        # Threshold and trend anomaly detection
    ├── bot_keywords.rs             # matches_bot_pattern helper
    ├── detection.rs                # Detection constants
    ├── providers.rs                # Provider helpers
    ├── service.rs                  # AnalyticsService for session lifecycle
    ├── session_cleanup.rs          # Inactive session cleanup
    ├── throttle.rs                 # Progressive rate limiting
    ├── user_agent.rs               # User-agent parsing
    ├── behavioral_detector/        # 7-signal bot detection (checks, fingerprint_checks, helpers, types)
    └── extractor/                  # Request parsing and GeoIP enrichment

schema/
├── anomaly_thresholds.sql
├── engagement_events.sql
├── fingerprint_reputation.sql
├── funnels.sql
├── funnel_progress.sql
└── migrations/
    └── 003_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
ThrottleService Progressive rate limiting (Normal/Warning/Severe/Blocked)

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
ThrottleLevel, EscalationCriteria Rate limiting
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.

Throttle Levels

Level Rate Multiplier Allows Requests
Normal 1.0x Yes
Warning 0.5x Yes
Severe 0.25x Yes
Blocked 0.0x No

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.