|
51 | 51 | "type": 3, |
52 | 52 | "content": { |
53 | 53 | "version": "KqlItem/1.0", |
54 | | - "query": "customEvents\r\n| where name == 'LLM_Token_Usage_Summary'\r\n| extend input_tokens = toint(customDimensions['total_input_tokens'])\r\n| extend output_tokens = toint(customDimensions['total_output_tokens'])\r\n| extend total_tokens = toint(customDimensions['total_tokens'])\r\n| summarize\r\n TotalDocuments = count(),\r\n TotalInputTokens = sum(input_tokens),\r\n TotalOutputTokens = sum(output_tokens),\r\n TotalTokens = sum(total_tokens),\r\n AvgTokensPerDocument = round(avg(total_tokens), 0)", |
55 | | - "size": 4, |
| 54 | + "query": "customEvents\r\n| where name == 'LLM_Token_Usage_Summary'\r\n| where timestamp > ago(7d)\r\n| extend input_tokens = toint(customDimensions['total_input_tokens'])\r\n| extend output_tokens = toint(customDimensions['total_output_tokens'])\r\n| extend total_tokens = toint(customDimensions['total_tokens'])\r\n| summarize\r\n TotalDocuments = count(),\r\n TotalInputTokens = sum(input_tokens),\r\n TotalOutputTokens = sum(output_tokens),\r\n TotalTokens = sum(total_tokens),\r\n AvgTokensPerDocument = round(avg(total_tokens), 0)", |
| 55 | + "size": 3, |
56 | 56 | "title": "Overall Token Usage Summary", |
57 | 57 | "timeContext": { |
58 | 58 | "durationMs": 604800000 |
59 | 59 | }, |
60 | 60 | "timeContextFromParameter": "TimeRange", |
61 | 61 | "queryType": 0, |
62 | 62 | "resourceType": "microsoft.insights/components", |
63 | | - "visualization": "tiles", |
64 | | - "tileSettings": { |
65 | | - "showBorder": true |
| 63 | + "visualization": "table", |
| 64 | + "gridSettings": { |
| 65 | + "formatters": [ |
| 66 | + { |
| 67 | + "columnMatch": "TotalTokens", |
| 68 | + "formatter": 1 |
| 69 | + } |
| 70 | + ] |
66 | 71 | } |
67 | 72 | }, |
68 | 73 | "name": "overall-summary" |
|
71 | 76 | "type": 3, |
72 | 77 | "content": { |
73 | 78 | "version": "KqlItem/1.0", |
74 | | - "query": "customEvents\r\n| where name == 'LLM_Agent_Token_Usage'\r\n| extend agent = tostring(customDimensions['agent_name'])\r\n| extend input_tokens = toint(customDimensions['input_tokens'])\r\n| extend output_tokens = toint(customDimensions['output_tokens'])\r\n| extend total_tokens = toint(customDimensions['total_tokens'])\r\n| summarize\r\n InputTokens = sum(input_tokens),\r\n OutputTokens = sum(output_tokens),\r\n TotalTokens = sum(total_tokens),\r\n Invocations = count()\r\n by Step = agent\r\n| order by TotalTokens desc", |
| 79 | + "query": "customEvents\r\n| where name == 'LLM_Agent_Token_Usage'\r\n| where timestamp > ago(7d)\r\n| extend agent = tostring(customDimensions['agent_name'])\r\n| extend input_tokens = toint(customDimensions['input_tokens'])\r\n| extend output_tokens = toint(customDimensions['output_tokens'])\r\n| extend total_tokens = toint(customDimensions['total_tokens'])\r\n| summarize\r\n InputTokens = sum(input_tokens),\r\n OutputTokens = sum(output_tokens),\r\n TotalTokens = sum(total_tokens),\r\n Invocations = count()\r\n by Step = agent\r\n| order by TotalTokens desc", |
75 | 80 | "size": 0, |
76 | 81 | "title": "Token Usage by Pipeline Step", |
77 | 82 | "timeContext": { |
|
88 | 93 | "type": 3, |
89 | 94 | "content": { |
90 | 95 | "version": "KqlItem/1.0", |
91 | | - "query": "customEvents\r\n| where name == 'LLM_Token_Usage_Summary'\r\n| extend input_tokens = toint(customDimensions['total_input_tokens'])\r\n| extend output_tokens = toint(customDimensions['total_output_tokens'])\r\n| summarize InputTokens = sum(input_tokens), OutputTokens = sum(output_tokens) by bin(timestamp, 1h)\r\n| order by timestamp asc", |
| 96 | + "query": "customEvents\r\n| where name == 'LLM_Token_Usage_Summary'\r\n| where timestamp > ago(7d)\r\n| extend input_tokens = toint(customDimensions['total_input_tokens'])\r\n| extend output_tokens = toint(customDimensions['total_output_tokens'])\r\n| summarize InputTokens = sum(input_tokens), OutputTokens = sum(output_tokens) by bin(timestamp, 1h)\r\n| order by timestamp asc", |
92 | 97 | "size": 0, |
93 | 98 | "title": "Token Usage Over Time (Hourly)", |
94 | 99 | "timeContext": { |
|
105 | 110 | "type": 3, |
106 | 111 | "content": { |
107 | 112 | "version": "KqlItem/1.0", |
108 | | - "query": "customEvents\r\n| where name == 'LLM_Agent_Token_Usage'\r\n| extend agent = tostring(customDimensions['agent_name'])\r\n| extend total_tokens = toint(customDimensions['total_tokens'])\r\n| summarize TotalTokens = sum(total_tokens) by agent", |
| 113 | + "query": "customEvents\r\n| where name == 'LLM_Agent_Token_Usage'\r\n| where timestamp > ago(7d)\r\n| extend agent = tostring(customDimensions['agent_name'])\r\n| extend total_tokens = toint(customDimensions['total_tokens'])\r\n| summarize TotalTokens = sum(total_tokens) by agent", |
109 | 114 | "size": 0, |
110 | 115 | "title": "Token Distribution by Agent", |
111 | 116 | "timeContext": { |
|
129 | 134 | "type": 3, |
130 | 135 | "content": { |
131 | 136 | "version": "KqlItem/1.0", |
132 | | - "query": "let input_price_per_million = 2.50;\r\nlet output_price_per_million = 10.00;\r\ncustomEvents\r\n| where name == 'LLM_Token_Usage_Summary'\r\n| extend input_tokens = toint(customDimensions['total_input_tokens'])\r\n| extend output_tokens = toint(customDimensions['total_output_tokens'])\r\n| summarize TotalInput = sum(input_tokens), TotalOutput = sum(output_tokens) by bin(timestamp, 1d)\r\n| extend InputCost = round(TotalInput * input_price_per_million / 1000000.0, 4)\r\n| extend OutputCost = round(TotalOutput * output_price_per_million / 1000000.0, 4)\r\n| extend TotalCost = InputCost + OutputCost\r\n| project Day = timestamp, TotalInput, TotalOutput, InputCost, OutputCost, TotalCost\r\n| order by Day desc", |
| 137 | + "query": "let input_price_per_million = 2.50;\r\nlet output_price_per_million = 10.00;\r\ncustomEvents\r\n| where name == 'LLM_Token_Usage_Summary'\r\n| where timestamp > ago(7d)\r\n| extend input_tokens = toint(customDimensions['total_input_tokens'])\r\n| extend output_tokens = toint(customDimensions['total_output_tokens'])\r\n| summarize TotalInput = sum(input_tokens), TotalOutput = sum(output_tokens) by bin(timestamp, 1d)\r\n| extend InputCost = round(TotalInput * input_price_per_million / 1000000.0, 4)\r\n| extend OutputCost = round(TotalOutput * output_price_per_million / 1000000.0, 4)\r\n| extend TotalCost = InputCost + OutputCost\r\n| project Day = timestamp, TotalInput, TotalOutput, InputCost, OutputCost, TotalCost\r\n| order by Day desc", |
133 | 138 | "size": 0, |
134 | 139 | "title": "Estimated Daily Cost (GPT-4o Pricing: $2.50/1M input, $10.00/1M output)", |
135 | 140 | "timeContext": { |
|
146 | 151 | "type": 3, |
147 | 152 | "content": { |
148 | 153 | "version": "KqlItem/1.0", |
149 | | - "query": "let gpt4o_input = 2.50;\r\nlet gpt4o_output = 10.00;\r\nlet gpt4o_mini_input = 0.15;\r\nlet gpt4o_mini_output = 0.60;\r\ncustomEvents\r\n| where name == 'LLM_Model_Token_Usage'\r\n| extend model = tostring(customDimensions['model_deployment_name'])\r\n| extend input_tokens = toint(customDimensions['input_tokens'])\r\n| extend output_tokens = toint(customDimensions['output_tokens'])\r\n| summarize TotalInput = sum(input_tokens), TotalOutput = sum(output_tokens) by model\r\n| extend InputPrice = case(model has \"mini\", gpt4o_mini_input, gpt4o_input)\r\n| extend OutputPrice = case(model has \"mini\", gpt4o_mini_output, gpt4o_output)\r\n| extend InputCost = round(TotalInput * InputPrice / 1000000.0, 4)\r\n| extend OutputCost = round(TotalOutput * OutputPrice / 1000000.0, 4)\r\n| extend TotalCost = InputCost + OutputCost\r\n| project Model = model, TotalInput, TotalOutput, InputCost, OutputCost, TotalCost\r\n| order by TotalCost desc", |
| 154 | + "query": "let gpt4o_input = 2.50;\r\nlet gpt4o_output = 10.00;\r\nlet gpt4o_mini_input = 0.15;\r\nlet gpt4o_mini_output = 0.60;\r\ncustomEvents\r\n| where name == 'LLM_Model_Token_Usage'\r\n| where timestamp > ago(7d)\r\n| extend model = tostring(customDimensions['model_deployment_name'])\r\n| extend input_tokens = toint(customDimensions['input_tokens'])\r\n| extend output_tokens = toint(customDimensions['output_tokens'])\r\n| summarize TotalInput = sum(input_tokens), TotalOutput = sum(output_tokens) by model\r\n| extend InputPrice = case(model has \"mini\", gpt4o_mini_input, gpt4o_input)\r\n| extend OutputPrice = case(model has \"mini\", gpt4o_mini_output, gpt4o_output)\r\n| extend InputCost = round(TotalInput * InputPrice / 1000000.0, 4)\r\n| extend OutputCost = round(TotalOutput * OutputPrice / 1000000.0, 4)\r\n| extend TotalCost = InputCost + OutputCost\r\n| project Model = model, TotalInput, TotalOutput, InputCost, OutputCost, TotalCost\r\n| order by TotalCost desc", |
150 | 155 | "size": 0, |
151 | 156 | "title": "Estimated Cost by Model", |
152 | 157 | "timeContext": { |
|
170 | 175 | "type": 3, |
171 | 176 | "content": { |
172 | 177 | "version": "KqlItem/1.0", |
173 | | - "query": "customEvents\r\n| where name == 'LLM_Model_Token_Usage'\r\n| extend model = tostring(customDimensions['model_deployment_name'])\r\n| extend input_tokens = toint(customDimensions['input_tokens'])\r\n| extend output_tokens = toint(customDimensions['output_tokens'])\r\n| extend total_tokens = toint(customDimensions['total_tokens'])\r\n| summarize\r\n InputTokens = sum(input_tokens),\r\n OutputTokens = sum(output_tokens),\r\n TotalTokens = sum(total_tokens),\r\n Invocations = count()\r\n by Model = model\r\n| order by TotalTokens desc", |
| 178 | + "query": "customEvents\r\n| where name == 'LLM_Model_Token_Usage'\r\n| where timestamp > ago(7d)\r\n| extend model = tostring(customDimensions['model_deployment_name'])\r\n| extend input_tokens = toint(customDimensions['input_tokens'])\r\n| extend output_tokens = toint(customDimensions['output_tokens'])\r\n| extend total_tokens = toint(customDimensions['total_tokens'])\r\n| summarize\r\n InputTokens = sum(input_tokens),\r\n OutputTokens = sum(output_tokens),\r\n TotalTokens = sum(total_tokens),\r\n Invocations = count()\r\n by Model = model\r\n| order by TotalTokens desc", |
174 | 179 | "size": 0, |
175 | 180 | "title": "Token Usage by Model", |
176 | 181 | "timeContext": { |
|
187 | 192 | "type": 3, |
188 | 193 | "content": { |
189 | 194 | "version": "KqlItem/1.0", |
190 | | - "query": "customEvents\r\n| where name == 'LLM_Agent_Token_Usage'\r\n| extend agent = tostring(customDimensions['agent_name'])\r\n| extend model = tostring(customDimensions['model_deployment_name'])\r\n| extend input_tokens = toint(customDimensions['input_tokens'])\r\n| extend output_tokens = toint(customDimensions['output_tokens'])\r\n| extend total_tokens = toint(customDimensions['total_tokens'])\r\n| summarize\r\n InputTokens = sum(input_tokens),\r\n OutputTokens = sum(output_tokens),\r\n TotalTokens = sum(total_tokens),\r\n Invocations = count()\r\n by Step = agent, Model = model\r\n| order by TotalTokens desc", |
| 195 | + "query": "customEvents\r\n| where name == 'LLM_Agent_Token_Usage'\r\n| where timestamp > ago(7d)\r\n| extend agent = tostring(customDimensions['agent_name'])\r\n| extend model = tostring(customDimensions['model_deployment_name'])\r\n| extend input_tokens = toint(customDimensions['input_tokens'])\r\n| extend output_tokens = toint(customDimensions['output_tokens'])\r\n| extend total_tokens = toint(customDimensions['total_tokens'])\r\n| summarize\r\n InputTokens = sum(input_tokens),\r\n OutputTokens = sum(output_tokens),\r\n TotalTokens = sum(total_tokens),\r\n Invocations = count()\r\n by Step = agent, Model = model\r\n| order by TotalTokens desc", |
191 | 196 | "size": 0, |
192 | 197 | "title": "Step-to-Model Token Mapping", |
193 | 198 | "timeContext": { |
|
204 | 209 | "type": 3, |
205 | 210 | "content": { |
206 | 211 | "version": "KqlItem/1.0", |
207 | | - "query": "customEvents\r\n| where name == 'LLM_Token_Usage_Summary'\r\n| extend total_tokens = toint(customDimensions['total_tokens'])\r\n| extend process_id = tostring(customDimensions['process_id'])\r\n| extend file_name = tostring(customDimensions['file_name'])\r\n| summarize TotalTokens = sum(total_tokens) by process_id, file_name\r\n| order by TotalTokens desc\r\n| take 20", |
| 212 | + "query": "customEvents\r\n| where name == 'LLM_Token_Usage_Summary'\r\n| where timestamp > ago(7d)\r\n| extend total_tokens = toint(customDimensions['total_tokens'])\r\n| extend process_id = tostring(customDimensions['process_id'])\r\n| extend file_name = tostring(customDimensions['file_name'])\r\n| summarize TotalTokens = sum(total_tokens) by process_id, file_name\r\n| order by TotalTokens desc\r\n| take 20", |
208 | 213 | "size": 0, |
209 | 214 | "title": "Top 20 Token Consumers by Document", |
210 | 215 | "timeContext": { |
|
221 | 226 | "type": 3, |
222 | 227 | "content": { |
223 | 228 | "version": "KqlItem/1.0", |
224 | | - "query": "customEvents\r\n| where name == 'LLM_Token_Usage_Summary'\r\n| extend total_tokens = toint(customDimensions['total_tokens'])\r\n| extend input_tokens = toint(customDimensions['total_input_tokens'])\r\n| extend output_tokens = toint(customDimensions['total_output_tokens'])\r\n| extend mime_type = tostring(customDimensions['file_mime_type'])\r\n| extend file_type = case(\r\n mime_type has \"pdf\", \"PDF\",\r\n mime_type has \"image\", \"Image\",\r\n mime_type has \"word\" or mime_type has \"docx\", \"Word\",\r\n mime_type has \"excel\" or mime_type has \"xlsx\", \"Excel\",\r\n mime_type has \"text\", \"Text\",\r\n \"Other\")\r\n| summarize\r\n Documents = count(),\r\n TotalInputTokens = sum(input_tokens),\r\n TotalOutputTokens = sum(output_tokens),\r\n TotalTokens = sum(total_tokens),\r\n AvgTokensPerDoc = round(avg(total_tokens), 0)\r\n by FileType = file_type\r\n| order by TotalTokens desc", |
| 229 | + "query": "customEvents\r\n| where name == 'LLM_Token_Usage_Summary'\r\n| where timestamp > ago(7d)\r\n| extend total_tokens = toint(customDimensions['total_tokens'])\r\n| extend input_tokens = toint(customDimensions['total_input_tokens'])\r\n| extend output_tokens = toint(customDimensions['total_output_tokens'])\r\n| extend mime_type = tostring(customDimensions['file_mime_type'])\r\n| extend file_type = case(\r\n mime_type has \"pdf\", \"PDF\",\r\n mime_type has \"image\", \"Image\",\r\n mime_type has \"word\" or mime_type has \"docx\", \"Word\",\r\n mime_type has \"excel\" or mime_type has \"xlsx\", \"Excel\",\r\n mime_type has \"text\", \"Text\",\r\n \"Other\")\r\n| summarize\r\n Documents = count(),\r\n TotalInputTokens = sum(input_tokens),\r\n TotalOutputTokens = sum(output_tokens),\r\n TotalTokens = sum(total_tokens),\r\n AvgTokensPerDoc = round(avg(total_tokens), 0)\r\n by FileType = file_type\r\n| order by TotalTokens desc", |
225 | 230 | "size": 0, |
226 | 231 | "title": "Token Usage by File Type", |
227 | 232 | "timeContext": { |
|
245 | 250 | "type": 3, |
246 | 251 | "content": { |
247 | 252 | "version": "KqlItem/1.0", |
248 | | - "query": "customEvents\r\n| where name == 'LLM_Token_Usage_Summary'\r\n| extend total_tokens = toint(customDimensions['total_tokens'])\r\n| summarize\r\n p50 = percentile(total_tokens, 50),\r\n p90 = percentile(total_tokens, 90),\r\n p95 = percentile(total_tokens, 95),\r\n p99 = percentile(total_tokens, 99),\r\n Max = max(total_tokens)", |
249 | | - "size": 4, |
| 253 | + "query": "customEvents\r\n| where name == 'LLM_Token_Usage_Summary'\r\n| where timestamp > ago(7d)\r\n| extend total_tokens = toint(customDimensions['total_tokens'])\r\n| summarize\r\n p50 = percentile(total_tokens, 50),\r\n p90 = percentile(total_tokens, 90),\r\n p95 = percentile(total_tokens, 95),\r\n p99 = percentile(total_tokens, 99),\r\n Max = max(total_tokens)", |
| 254 | + "size": 3, |
250 | 255 | "title": "Token Usage Percentiles Per Document", |
251 | 256 | "timeContext": { |
252 | 257 | "durationMs": 604800000 |
253 | 258 | }, |
254 | 259 | "timeContextFromParameter": "TimeRange", |
255 | 260 | "queryType": 0, |
256 | 261 | "resourceType": "microsoft.insights/components", |
257 | | - "visualization": "tiles", |
258 | | - "tileSettings": { |
259 | | - "showBorder": true |
| 262 | + "visualization": "table", |
| 263 | + "gridSettings": { |
| 264 | + "formatters": [ |
| 265 | + { |
| 266 | + "columnMatch": "p50|p90|p95|p99|Max", |
| 267 | + "formatter": 1 |
| 268 | + } |
| 269 | + ] |
260 | 270 | } |
261 | 271 | }, |
262 | 272 | "name": "token-percentiles" |
|
265 | 275 | "type": 3, |
266 | 276 | "content": { |
267 | 277 | "version": "KqlItem/1.0", |
268 | | - "query": "customEvents\r\n| where name == 'LLM_Token_Usage_Summary'\r\n| extend total_tokens = toint(customDimensions['total_tokens'])\r\n| extend file_name = tostring(customDimensions['file_name'])\r\n| summarize\r\n DocumentsProcessed = count(),\r\n TotalTokens = sum(total_tokens),\r\n AvgTokensPerDoc = round(avg(total_tokens), 0),\r\n MaxTokensPerDoc = max(total_tokens)\r\n by Day = bin(timestamp, 1d)\r\n| order by Day desc", |
| 278 | + "query": "customEvents\r\n| where name == 'LLM_Token_Usage_Summary'\r\n| where timestamp > ago(7d)\r\n| extend total_tokens = toint(customDimensions['total_tokens'])\r\n| extend file_name = tostring(customDimensions['file_name'])\r\n| summarize\r\n DocumentsProcessed = count(),\r\n TotalTokens = sum(total_tokens),\r\n AvgTokensPerDoc = round(avg(total_tokens), 0),\r\n MaxTokensPerDoc = max(total_tokens)\r\n by Day = bin(timestamp, 1d)\r\n| order by Day desc", |
269 | 279 | "size": 0, |
270 | 280 | "title": "Daily Processing Volume with Token Usage", |
271 | 281 | "timeContext": { |
|
0 commit comments