Observability

Brim Internals

Deep visibility into the semantic search pipeline execution

Pipeline Architecture

BRIM SEMANTIC SEARCH PIPELINE

EMBEDDING GENERATION

1. Text Extraction Model::toEmbeddableText()
2. Text Chunking ~0 chunks
3. Embedding (Ollama) 0ms avg
4. Storage (pgvector) 0ms avg
Total 0ms avg

SEMANTIC SEARCH

1. Query Embedding 0ms avg
2. Vector Search (cosine) 0ms avg
3. Model Hydration 0ms avg
4. Results avg 0 @ 0.000
Total 0ms avg

Embedding Generation

0
Total Generated
0ms
Avg Duration
Embedding Time (Ollama) 0ms
Storage Time (pgvector) 0ms
Total Chunks Created 0
Min / Max Duration 0ms / 0ms

Semantic Search

0
Total Searches
0ms
Avg Duration
Query Embedding Time 0ms
Vector Search Time 0ms
Model Hydration Time 0ms
Avg Results / Top Score 0 / 0.000
Min / Max Duration 0ms / 0ms

Pipeline Timing Breakdown

Embedding Generation

Text Chunking ~5ms
chunk
Ollama Embedding 0ms
embed
pgvector Insert 0ms
store

Semantic Search

Query Embedding 0ms
embed
Vector Search (cosine) 0ms
search
Model Hydration 0ms
hydrate

Event Stream

Time Event Duration Details
21:51:31 search.started - Concept | limit: 10 | min_sim: 0.00 | query: 27 chars
01:20:07 search.started - Concept | limit: 10 | min_sim: 0.00 | query: 27 chars
22:26:28 search.started - Concept | limit: 10 | min_sim: 0.00 | query: 32 chars
21:57:19 search.started - Concept | limit: 10 | min_sim: 0.00 | query: 27 chars
21:20:18 search.started - Concept | limit: 10 | min_sim: 0.00 | query: 28 chars
18:40:59 search.started - Concept | limit: 10 | min_sim: 0.00 | query: 14 chars
18:09:02 search.started - Concept | limit: 10 | min_sim: 0.00 | query: 27 chars
18:01:46 search.started - Concept | limit: 10 | min_sim: 0.00 | query: 32 chars
17:48:41 search.started - Concept | limit: 10 | min_sim: 0.00 | query: 14 chars
17:41:08 search.started - Concept | limit: 10 | min_sim: 0.00 | query: 27 chars
16:08:58 search.started - Concept | limit: 10 | min_sim: 0.00 | query: 27 chars
08:48:40 search.started - Concept | limit: 10 | min_sim: 0.00 | query: 32 chars
01:23:59 search.started - Concept | limit: 10 | min_sim: 0.00 | query: 14 chars
01:23:59 search.started - Concept | limit: 10 | min_sim: 0.00 | query: 27 chars
01:23:58 search.started - Concept | limit: 10 | min_sim: 0.00 | query: 27 chars
01:23:58 search.started - Concept | limit: 10 | min_sim: 0.00 | query: 32 chars
01:23:58 search.started - Concept | limit: 10 | min_sim: 0.00 | query: 28 chars
01:23:58 search.started - Concept | limit: 10 | min_sim: 0.00 | query: 23 chars
02:02:40 search.completed 1,549.3ms Concept | 10 results | top: 0.558 | embed: 1541.9ms | search: 5.1ms | hydrate: 2.2ms
02:02:38 search.started - Concept | limit: 10 | min_sim: 0.00 | query: 27 chars
10:01:48 search.completed 940.9ms Concept | 10 results | top: 0.628 | embed: 934.0ms | search: 4.6ms | hydrate: 2.3ms
10:01:47 search.started - Concept | limit: 10 | min_sim: 0.00 | query: 23 chars
08:30:34 search.completed 999.6ms Concept | 10 results | top: 0.617 | embed: 985.2ms | search: 11.1ms | hydrate: 3.2ms
08:30:33 search.started - Concept | limit: 10 | min_sim: 0.00 | query: 28 chars
09:20:16 search.completed 1,146.6ms Concept | 10 results | top: 0.628 | embed: 1133.2ms | search: 10.9ms | hydrate: 2.5ms
09:20:15 search.started - Concept | limit: 10 | min_sim: 0.00 | query: 23 chars
06:40:24 search.completed 486.3ms Concept | 10 results | top: 0.558 | embed: 478.9ms | search: 5.0ms | hydrate: 2.4ms
06:40:24 search.started - Concept | limit: 10 | min_sim: 0.00 | query: 27 chars
06:09:04 search.completed 1,044.5ms Concept | 10 results | top: 0.617 | embed: 1039.0ms | search: 4.0ms | hydrate: 1.6ms
06:09:03 search.started - Concept | limit: 10 | min_sim: 0.00 | query: 28 chars
02:42:25 search.completed 970.5ms Concept | 10 results | top: 0.691 | embed: 962.8ms | search: 5.1ms | hydrate: 2.6ms
02:42:24 search.started - Concept | limit: 10 | min_sim: 0.00 | query: 32 chars
02:16:15 search.completed 428.8ms Concept | 10 results | top: 0.628 | embed: 422.9ms | search: 3.8ms | hydrate: 2.1ms
02:16:14 search.started - Concept | limit: 10 | min_sim: 0.00 | query: 23 chars
01:48:36 search.completed 429.9ms Concept | 10 results | top: 0.685 | embed: 424.7ms | search: 3.7ms | hydrate: 1.5ms
01:48:36 search.started - Concept | limit: 10 | min_sim: 0.00 | query: 14 chars
01:27:17 search.completed 990.5ms Concept | 10 results | top: 0.628 | embed: 984.7ms | search: 3.6ms | hydrate: 2.3ms
01:27:16 search.started - Concept | limit: 10 | min_sim: 0.00 | query: 27 chars
01:06:13 search.completed 1,486.1ms Concept | 10 results | top: 0.558 | embed: 1478.7ms | search: 5.0ms | hydrate: 2.4ms
01:06:11 search.started - Concept | limit: 10 | min_sim: 0.00 | query: 27 chars
10:40:13 search.completed 1,332.4ms Concept | 10 results | top: 0.617 | embed: 1316.7ms | search: 12.4ms | hydrate: 3.3ms
10:40:12 search.started - Concept | limit: 10 | min_sim: 0.00 | query: 28 chars
13:17:25 search.completed 84.6ms Concept | 10 results | top: 0.558 | embed: 79.1ms | search: 3.9ms | hydrate: 1.5ms
13:17:25 search.started - Concept | limit: 10 | min_sim: 0.00 | query: 27 chars
13:17:22 search.completed 85.6ms Concept | 10 results | top: 0.628 | embed: 78.6ms | search: 4.8ms | hydrate: 2.2ms
13:17:22 search.started - Concept | limit: 10 | min_sim: 0.00 | query: 27 chars
13:17:15 search.completed 92.4ms Concept | 10 results | top: 0.685 | embed: 86.5ms | search: 4.0ms | hydrate: 1.9ms
13:17:14 search.started - Concept | limit: 10 | min_sim: 0.00 | query: 14 chars
13:16:52 search.completed 88.1ms Concept | 10 results | top: 0.617 | embed: 80.1ms | search: 5.3ms | hydrate: 2.6ms
13:16:52 search.started - Concept | limit: 10 | min_sim: 0.00 | query: 28 chars

Telemetry API

GET /api/telemetry

Aggregated statistics for the specified period

GET /api/telemetry/recent

Recent event stream with optional type filter

Artisan Command
php artisan brim:telemetry stats --period=24h

Telemetry Configuration

telemetry.enabled true
telemetry.store.enabled true
telemetry.logging.enabled false
telemetry.debug false
telemetry.sample_rate 1
telemetry.store.retention_days 30