1+ {
2+ "dashboard" : {
3+ "id" : null ,
4+ "title" : " GraphRAG System Metrics" ,
5+ "tags" : [" graphrag" , " microservices" ],
6+ "timezone" : " browser" ,
7+ "panels" : [
8+ {
9+ "id" : 1 ,
10+ "title" : " Service Health (Up/Down)" ,
11+ "type" : " stat" ,
12+ "targets" : [
13+ {
14+ "expr" : " up" ,
15+ "legendFormat" : " {{job}}"
16+ }
17+ ],
18+ "gridPos" : {"h" : 8 , "w" : 12 , "x" : 0 , "y" : 0 },
19+ "fieldConfig" : {
20+ "defaults" : {
21+ "mappings" : [
22+ {"options" : {"0" : {"text" : " DOWN" }}, "type" : " value" },
23+ {"options" : {"1" : {"text" : " UP" }}, "type" : " value" }
24+ ],
25+ "thresholds" : {
26+ "steps" : [
27+ {"color" : " red" , "value" : 0 },
28+ {"color" : " green" , "value" : 1 }
29+ ]
30+ }
31+ }
32+ }
33+ },
34+ {
35+ "id" : 2 ,
36+ "title" : " API Request Rate (req/sec)" ,
37+ "type" : " timeseries" ,
38+ "targets" : [
39+ {
40+ "expr" : " rate(query_service_requests_total[5m])" ,
41+ "legendFormat" : " Query Service - {{endpoint}}"
42+ },
43+ {
44+ "expr" : " rate(retrieval_service_requests_total[5m])" ,
45+ "legendFormat" : " Retrieval Service - {{endpoint}}"
46+ }
47+ ],
48+ "gridPos" : {"h" : 8 , "w" : 12 , "x" : 12 , "y" : 0 }
49+ },
50+ {
51+ "id" : 3 ,
52+ "title" : " Neo4j Database Stats" ,
53+ "type" : " stat" ,
54+ "targets" : [
55+ {
56+ "expr" : " neo4j_service_nodes_loaded_total" ,
57+ "legendFormat" : " Nodes Loaded"
58+ },
59+ {
60+ "expr" : " neo4j_service_relationships_loaded_total" ,
61+ "legendFormat" : " Relationships Loaded"
62+ }
63+ ],
64+ "gridPos" : {"h" : 8 , "w" : 8 , "x" : 0 , "y" : 8 }
65+ },
66+ {
67+ "id" : 4 ,
68+ "title" : " LLM Token Usage" ,
69+ "type" : " timeseries" ,
70+ "targets" : [
71+ {
72+ "expr" : " rate(generation_service_llm_tokens_total[5m])" ,
73+ "legendFormat" : " {{type}} tokens/sec"
74+ }
75+ ],
76+ "gridPos" : {"h" : 8 , "w" : 8 , "x" : 8 , "y" : 8 }
77+ },
78+ {
79+ "id" : 5 ,
80+ "title" : " LLM Costs (USD)" ,
81+ "type" : " stat" ,
82+ "targets" : [
83+ {
84+ "expr" : " generation_service_llm_cost_usd_total" ,
85+ "legendFormat" : " Total Cost"
86+ }
87+ ],
88+ "gridPos" : {"h" : 8 , "w" : 8 , "x" : 16 , "y" : 8 },
89+ "fieldConfig" : {
90+ "defaults" : {
91+ "unit" : " currencyUSD"
92+ }
93+ }
94+ },
95+ {
96+ "id" : 6 ,
97+ "title" : " Papers Retrieved by Topic" ,
98+ "type" : " timeseries" ,
99+ "targets" : [
100+ {
101+ "expr" : " rate(retrieval_service_papers_retrieved_total[5m])" ,
102+ "legendFormat" : " {{topic}} - {{operation}}"
103+ }
104+ ],
105+ "gridPos" : {"h" : 8 , "w" : 12 , "x" : 0 , "y" : 16 }
106+ },
107+ {
108+ "id" : 7 ,
109+ "title" : " Neo4j Query Performance" ,
110+ "type" : " timeseries" ,
111+ "targets" : [
112+ {
113+ "expr" : " retrieval_service_neo4j_query_duration_seconds" ,
114+ "legendFormat" : " {{query_type}}"
115+ }
116+ ],
117+ "gridPos" : {"h" : 8 , "w" : 12 , "x" : 12 , "y" : 16 }
118+ },
119+ {
120+ "id" : 8 ,
121+ "title" : " Data Loading Progress" ,
122+ "type" : " gauge" ,
123+ "targets" : [
124+ {
125+ "expr" : " neo4j_service_data_loading_progress_percent" ,
126+ "legendFormat" : " Loading Progress"
127+ }
128+ ],
129+ "gridPos" : {"h" : 8 , "w" : 6 , "x" : 0 , "y" : 24 },
130+ "fieldConfig" : {
131+ "defaults" : {
132+ "max" : 100 ,
133+ "min" : 0 ,
134+ "unit" : " percent"
135+ }
136+ }
137+ },
138+ {
139+ "id" : 9 ,
140+ "title" : " Generation Service Response Times" ,
141+ "type" : " timeseries" ,
142+ "targets" : [
143+ {
144+ "expr" : " generation_service_request_duration_seconds" ,
145+ "legendFormat" : " Response Time"
146+ }
147+ ],
148+ "gridPos" : {"h" : 8 , "w" : 18 , "x" : 6 , "y" : 24 }
149+ }
150+ ],
151+ "time" : {
152+ "from" : " now-1h" ,
153+ "to" : " now"
154+ },
155+ "refresh" : " 10s"
156+ }
157+ }
0 commit comments