Skip to main content

Analytics Dashboards

Reeflect provides comprehensive analytics dashboards to monitor and analyze your memory system's performance, usage patterns, and content.

Analytics Dashboard

Dashboard Types

Usage Dashboard

Tracks memory creation, retrieval, and access patterns over time.

  • Memory creation trends
  • Retrieval frequency by namespace
  • Most accessed memories
  • User activity patterns

Performance Dashboard

Monitors system performance and resource utilization.

  • Retrieval latency
  • Embedding generation time
  • Storage utilization
  • API call volume

Content Dashboard

Analyzes the content and structure of your memory corpus.

  • Topic distribution
  • Entity analysis
  • Sentiment trends
  • Memory relationships

Enterprise Dashboard

Provides governance, compliance, and team collaboration metrics.

  • User activity by team
  • Access control compliance
  • Memory retention audit
  • Contradiction detection rates

Setting Up Dashboards

Reeflect offers several ways to deploy and access analytics dashboards:

1. Web Dashboard

The easiest option is to use our hosted web dashboard:

from reeflect.analytics import DashboardManager

# Configure dashboard access
dashboard = DashboardManager(memory_system)

# Generate access link (valid for 7 days by default)
dashboard_url = dashboard.generate_access_link(
dashboards=["usage", "performance", "content"],
permissions="read",
expiration_days=7
)

print(f"Access your dashboard at: {dashboard_url}")

2. Self-hosted Dashboard

For organizations that prefer to host their own dashboards:

# Deploy a self-hosted dashboard
dashboard.deploy_self_hosted(
host="localhost",
port=8080,
dashboards=["usage", "performance", "content", "enterprise"],
authentication={
"type": "basic",
"users": [
{"username": "admin", "password": "secure_password", "role": "admin"},
{"username": "viewer", "password": "view_only", "role": "viewer"}
]
}
)

print("Dashboard deployed at http://localhost:8080")

3. Integration with External Tools

For teams already using analytics platforms, Reeflect can integrate with popular tools:

# Integrate with Grafana
dashboard.integrate_with_external(
platform="grafana",
connection_info={
"url": "https://your-grafana-instance.com",
"api_key": "your_grafana_api_key",
"org_id": 1,
"dashboard_folder": "Reeflect"
},
dashboards=["usage", "performance"]
)

# Integrate with DataDog
dashboard.integrate_with_external(
platform="datadog",
connection_info={
"api_key": "your_datadog_api_key",
"app_key": "your_datadog_app_key",
"site": "us"
},
dashboards=["usage", "performance", "content"]
)

Dashboard Widgets

Reeflect dashboards include various widgets for monitoring different aspects of your memory system:

Usage Metrics Widgets

  • Memory Creation Rate: Tracks memory creation over time
  • Retrieval Volume: Shows retrieval request volume
  • Active Namespaces: Displays activity by namespace
  • User Activity Heatmap: Shows when users are most active
  • Memory Importance Distribution: Histograms of memory importance

Performance Metrics Widgets

  • Retrieval Latency: Shows p50, p95, and p99 retrieval times
  • Embedding Generation Time: Tracks embedding processing time
  • Cache Hit Rate: Monitors cache efficiency
  • API Call Volume: Tracks API usage
  • Error Rate: Shows errors by type and endpoint

Content Analysis Widgets

  • Topic Clusters: Shows main topic groups in memories
  • Entity Recognition: Identifies and tracks entities
  • Relationship Graph: Visualizes memory relationships
  • Content Age Analysis: Shows age distribution of memories
  • Sentiment Analysis: Tracks sentiment over time

Enterprise Widgets

  • User Access Logs: Tracks user access to the system
  • Compliance Status: Shows compliance with retention policies
  • Team Activity: Tracks activity by team
  • Contradiction Rate: Monitors memory consistency

Custom Dashboard Widgets

You can create custom dashboard widgets for specific monitoring needs:

from reeflect.analytics import CustomWidget

# Create a custom widget
contradiction_rate_widget = CustomWidget(
title="Contradiction Rate Over Time",
type="time_series",
data_source=lambda time_period: analytics.get_contradiction_rate(time_period),
refresh_interval=3600, # seconds
chart_properties={
"x_axis": "time",
"y_axis": "rate",
"line_color": "#9f7aea",
"alert_threshold": 0.2 # Alert if contradiction rate exceeds 20%
}
)

# Add widget to dashboard
dashboard.add_custom_widget(
widget=contradiction_rate_widget,
dashboard="content"
)

Dashboard Embedding

You can embed dashboards directly in your applications:

import { Dashboard } from 'reeflect-react';

function AnalyticsDashboard() {
return (
<div className="dashboard-container">
<h2>Memory System Analytics</h2>

<Dashboard
apiKey="your_api_key"
dashboardId="usage_dashboard"
theme="light"
height={800}
refreshInterval={60} // Refresh every 60 seconds
timeRange={{
start: "7d", // 7 days ago
end: "now"
}}
filters={{
namespace: "user_preferences"
}}
/>
</div>
);
}

Dashboard APIs

You can also access dashboard data programmatically:

# Get dashboard data
dashboard_data = dashboard.get_dashboard_data(
dashboard_id="usage_dashboard",
time_range={
"start": "2025-01-01T00:00:00Z",
"end": "2025-04-01T00:00:00Z"
},
filters={
"namespace": "user_preferences"
}
)

# Export dashboard data
dashboard.export_dashboard_data(
dashboard_id="usage_dashboard",
format="csv", # Options: csv, json, excel
output_path="./dashboard_data.csv",
time_range={
"start": "2025-01-01T00:00:00Z",
"end": "2025-04-01T00:00:00Z"
}
)

Alerting

Enterprise users can set up automated alerts based on dashboard metrics:

# Configure alerts
dashboard.configure_alerts(
dashboard_id="performance_dashboard",
alerts=[
{
"name": "high_latency_alert",
"metric": "p95_retrieval_latency",
"condition": "> 200", # ms
"threshold_duration": "5m", # Alert if condition persists for 5 minutes
"severity": "warning",
"channels": ["email", "slack"],
"recipients": {
"email": ["alerts@example.com"],
"slack": "#monitoring"
}
},
{
"name": "error_rate_alert",
"metric": "error_rate",
"condition": "> 0.01", # 1% error rate
"threshold_duration": "2m",
"severity": "critical",
"channels": ["email", "slack", "pagerduty"],
"recipients": {
"email": ["alerts@example.com", "oncall@example.com"],
"slack": "#monitoring-critical",
"pagerduty": "P1234567"
}
}
]
)

Dashboard Access Control

For enterprise users, you can configure fine-grained access control for dashboards:

# Configure dashboard access
dashboard.configure_access_control(
dashboard_id="enterprise_dashboard",
access_rules=[
{
"role": "admin",
"permissions": ["view", "edit", "share", "export", "configure_alerts"]
},
{
"role": "manager",
"permissions": ["view", "export", "configure_alerts"]
},
{
"role": "analyst",
"permissions": ["view", "export"]
},
{
"role": "viewer",
"permissions": ["view"]
}
],
default_role="viewer"
)

# Assign dashboard access to users
dashboard.assign_dashboard_access(
dashboard_id="enterprise_dashboard",
user_assignments=[
{"user_id": "user123", "role": "admin"},
{"user_id": "user456", "role": "manager"},
{"user_id": "user789", "role": "analyst"}
]
)

Next Steps

Learn about related topics for monitoring and analyzing your memory system: