feat: add comprehensive per-service statistics tracking

Add full support for tracking and analyzing data by service in multi-tenant deployments.

## Features Added

- **Service Statistics Tracking**: Track nouns, verbs, and metadata counts per service
- **Service Activity Monitoring**: Track first/last activity timestamps and operation counts
- **New API Methods**:
  - `listServices()`: List all services with their statistics and status
  - `getServiceStatistics(service)`: Get detailed stats for a specific service
  - Enhanced `getStatistics()` with service filtering and breakdown

- **Service Filtering**: Filter search results and queries by service
- **Storage Enhancements**: BaseStorageAdapter tracks service activity with timestamps
- **Type Definitions**: Added ServiceStatistics interface and extended StatisticsData

## Implementation Details

- Services automatically tracked via defaultService config or per-operation override
- Service status detection (active/inactive/read-only) based on activity
- Memory-efficient tracking at statistics level, not per noun/verb
- Backward compatible - existing data tracked under 'default' service

## Documentation

- Comprehensive guide in docs/guides/per-service-statistics.md
- Examples for multi-tenant apps, health monitoring, and auditing
- API reference and migration guide included

## Testing

- Full test suite in tests/service-statistics.test.ts
- Coverage of all new methods and filtering capabilities

This enables better observability, debugging, and management of multi-service Brainy deployments, addressing the need to track individual service performance when multiple services share storage.
This commit is contained in:
David Snelling 2025-08-06 10:17:28 -07:00
parent e838327a22
commit d2ddb9199e
7 changed files with 1232 additions and 4 deletions

View file

@ -18,6 +18,7 @@ Comprehensive guides for using Brainy features.
- **[Search and Metadata Guide](user-guides/SEARCH_AND_METADATA_GUIDE.md)** - Advanced search techniques
- **[Write-Only Mode](user-guides/WRITEONLY_MODE_IMPLEMENTATION.md)** - Optimized data ingestion
- **[Read-Only & Frozen Modes](guides/readonly-frozen-modes.md)** - Immutability control for production
- **[Per-Service Statistics](guides/per-service-statistics.md)** - Multi-service tracking and monitoring
- **[Cache Configuration](guides/cache-configuration.md)** - Memory and caching optimization
- **[JSON Document Search](guides/json-document-search.md)** - Searching within JSON documents
- **[HNSW Field Search](guides/hnsw-field-search.md)** - Field-specific vector search