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