Created
December 14, 2025 00:43
-
-
Save mikelane/59d89da1c387f3470f488388dd3ce120 to your computer and use it in GitHub Desktop.
SigNoz dashboard for claude code metrics including time leverage and cost leverage metrics.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "description": "Monitor Claude Code usage, costs, tokens, and productivity metrics", | |
| "layout": [ | |
| { | |
| "h": 1, | |
| "i": "row-overview", | |
| "moved": false, | |
| "static": false, | |
| "w": 12, | |
| "x": 0, | |
| "y": 0 | |
| }, | |
| { | |
| "h": 2, | |
| "i": "session-count", | |
| "moved": false, | |
| "static": false, | |
| "w": 2, | |
| "x": 0, | |
| "y": 1 | |
| }, | |
| { | |
| "h": 2, | |
| "i": "active-time", | |
| "moved": false, | |
| "static": false, | |
| "w": 2, | |
| "x": 2, | |
| "y": 1 | |
| }, | |
| { | |
| "h": 2, | |
| "i": "lines-of-code", | |
| "moved": false, | |
| "static": false, | |
| "w": 2, | |
| "x": 4, | |
| "y": 1 | |
| }, | |
| { | |
| "h": 2, | |
| "i": "tool-decisions", | |
| "moved": false, | |
| "static": false, | |
| "w": 2, | |
| "x": 6, | |
| "y": 1 | |
| }, | |
| { | |
| "h": 2, | |
| "i": "commits", | |
| "moved": false, | |
| "static": false, | |
| "w": 2, | |
| "x": 8, | |
| "y": 1 | |
| }, | |
| { | |
| "h": 2, | |
| "i": "pull-requests", | |
| "moved": false, | |
| "static": false, | |
| "w": 2, | |
| "x": 10, | |
| "y": 1 | |
| }, | |
| { | |
| "h": 5, | |
| "i": "token-usage", | |
| "moved": false, | |
| "static": false, | |
| "w": 6, | |
| "x": 0, | |
| "y": 3 | |
| }, | |
| { | |
| "h": 5, | |
| "i": "cost-usage", | |
| "moved": false, | |
| "static": false, | |
| "w": 6, | |
| "x": 6, | |
| "y": 3 | |
| }, | |
| { | |
| "h": 1, | |
| "i": "__dropping-elem__", | |
| "isDraggable": true, | |
| "moved": false, | |
| "static": false, | |
| "w": 1, | |
| "x": 5, | |
| "y": 8 | |
| }, | |
| { | |
| "h": 1, | |
| "i": "row-tokens", | |
| "moved": false, | |
| "static": false, | |
| "w": 12, | |
| "x": 0, | |
| "y": 9 | |
| }, | |
| { | |
| "h": 4, | |
| "i": "token-by-type", | |
| "moved": false, | |
| "static": false, | |
| "w": 6, | |
| "x": 0, | |
| "y": 10 | |
| }, | |
| { | |
| "h": 4, | |
| "i": "token-by-model", | |
| "moved": false, | |
| "static": false, | |
| "w": 6, | |
| "x": 6, | |
| "y": 10 | |
| }, | |
| { | |
| "h": 1, | |
| "i": "row-productivity", | |
| "moved": false, | |
| "static": false, | |
| "w": 12, | |
| "x": 0, | |
| "y": 14 | |
| }, | |
| { | |
| "h": 4, | |
| "i": "cost-by-model", | |
| "moved": false, | |
| "static": false, | |
| "w": 6, | |
| "x": 0, | |
| "y": 15 | |
| }, | |
| { | |
| "h": 4, | |
| "i": "cli-vs-user-time", | |
| "moved": false, | |
| "static": false, | |
| "w": 6, | |
| "x": 6, | |
| "y": 15 | |
| }, | |
| { | |
| "h": 4, | |
| "i": "cache-efficiency", | |
| "moved": false, | |
| "static": false, | |
| "w": 6, | |
| "x": 0, | |
| "y": 19 | |
| }, | |
| { | |
| "h": 4, | |
| "i": "peak-leverage", | |
| "moved": false, | |
| "static": false, | |
| "w": 2, | |
| "x": 6, | |
| "y": 19 | |
| }, | |
| { | |
| "h": 4, | |
| "i": "productivity-ratio", | |
| "moved": false, | |
| "static": false, | |
| "w": 4, | |
| "x": 8, | |
| "y": 19 | |
| }, | |
| { | |
| "h": 1, | |
| "i": "row-cost", | |
| "moved": false, | |
| "static": false, | |
| "w": 12, | |
| "x": 0, | |
| "y": 23 | |
| }, | |
| { | |
| "h": 4, | |
| "i": "api-cost", | |
| "moved": false, | |
| "static": false, | |
| "w": 2, | |
| "x": 0, | |
| "y": 24 | |
| }, | |
| { | |
| "h": 4, | |
| "i": "cost-leverage", | |
| "moved": false, | |
| "static": false, | |
| "w": 2, | |
| "x": 2, | |
| "y": 24 | |
| }, | |
| { | |
| "h": 4, | |
| "i": "cumulative-cost", | |
| "moved": false, | |
| "static": false, | |
| "w": 8, | |
| "x": 4, | |
| "y": 24 | |
| }, | |
| { | |
| "h": 1, | |
| "i": "row-logs", | |
| "moved": false, | |
| "static": false, | |
| "w": 12, | |
| "x": 0, | |
| "y": 28 | |
| }, | |
| { | |
| "h": 5, | |
| "i": "tool-usage-frequency", | |
| "moved": false, | |
| "static": false, | |
| "w": 6, | |
| "x": 0, | |
| "y": 29 | |
| }, | |
| { | |
| "h": 5, | |
| "i": "tool-success-rate", | |
| "moved": false, | |
| "static": false, | |
| "w": 3, | |
| "x": 6, | |
| "y": 29 | |
| }, | |
| { | |
| "h": 5, | |
| "i": "api-requests-table", | |
| "moved": false, | |
| "static": false, | |
| "w": 3, | |
| "x": 9, | |
| "y": 29 | |
| } | |
| ], | |
| "panelMap": {}, | |
| "tags": [ | |
| "claude", | |
| "ai", | |
| "opentelemetry" | |
| ], | |
| "title": "Claude Code Metrics", | |
| "uuid": "019b18fc-a5c9-739d-85a5-53ee68f68a08", | |
| "variables": {}, | |
| "version": "v8", | |
| "widgets": [ | |
| { | |
| "id": "row-overview", | |
| "panelTypes": "row", | |
| "query": {}, | |
| "title": "Overview" | |
| }, | |
| { | |
| "description": "Number of Claude Code sessions", | |
| "id": "session-count", | |
| "panelTypes": "value", | |
| "query": { | |
| "builder": { | |
| "queryData": [ | |
| { | |
| "aggregateAttribute": { | |
| "dataType": "float64", | |
| "isColumn": true, | |
| "key": "claude_code.session.count", | |
| "type": "Sum" | |
| }, | |
| "aggregateOperator": "sum", | |
| "dataSource": "metrics", | |
| "disabled": false, | |
| "expression": "A", | |
| "filters": { | |
| "items": [], | |
| "op": "AND" | |
| }, | |
| "groupBy": [], | |
| "legend": "Sessions", | |
| "queryName": "A", | |
| "reduceTo": "sum", | |
| "spaceAggregation": "sum", | |
| "stepInterval": 60, | |
| "timeAggregation": "increase" | |
| } | |
| ], | |
| "queryFormulas": [] | |
| }, | |
| "queryType": "builder" | |
| }, | |
| "timePreferance": "GLOBAL_TIME", | |
| "title": "Sessions" | |
| }, | |
| { | |
| "description": "Total active time in Claude Code (seconds)", | |
| "id": "active-time", | |
| "panelTypes": "value", | |
| "query": { | |
| "builder": { | |
| "queryData": [ | |
| { | |
| "aggregateAttribute": { | |
| "dataType": "float64", | |
| "isColumn": true, | |
| "key": "claude_code.active_time.total", | |
| "type": "Sum" | |
| }, | |
| "aggregateOperator": "sum", | |
| "dataSource": "metrics", | |
| "disabled": false, | |
| "expression": "A", | |
| "filters": { | |
| "items": [], | |
| "op": "AND" | |
| }, | |
| "groupBy": [], | |
| "legend": "Active Time", | |
| "queryName": "A", | |
| "reduceTo": "sum", | |
| "spaceAggregation": "sum", | |
| "stepInterval": 60, | |
| "timeAggregation": "increase" | |
| } | |
| ], | |
| "queryFormulas": [] | |
| }, | |
| "queryType": "builder" | |
| }, | |
| "timePreferance": "GLOBAL_TIME", | |
| "title": "Active Time" | |
| }, | |
| { | |
| "description": "Lines of code modified", | |
| "id": "lines-of-code", | |
| "panelTypes": "value", | |
| "query": { | |
| "builder": { | |
| "queryData": [ | |
| { | |
| "aggregateAttribute": { | |
| "dataType": "float64", | |
| "isColumn": true, | |
| "key": "claude_code.lines_of_code.count", | |
| "type": "Sum" | |
| }, | |
| "aggregateOperator": "sum", | |
| "dataSource": "metrics", | |
| "disabled": false, | |
| "expression": "A", | |
| "filters": { | |
| "items": [], | |
| "op": "AND" | |
| }, | |
| "groupBy": [], | |
| "legend": "Lines", | |
| "queryName": "A", | |
| "reduceTo": "sum", | |
| "spaceAggregation": "sum", | |
| "stepInterval": 60, | |
| "timeAggregation": "increase" | |
| } | |
| ], | |
| "queryFormulas": [] | |
| }, | |
| "queryType": "builder" | |
| }, | |
| "timePreferance": "GLOBAL_TIME", | |
| "title": "Lines Changed" | |
| }, | |
| { | |
| "description": "Accept/reject decisions for code edits", | |
| "id": "tool-decisions", | |
| "panelTypes": "value", | |
| "query": { | |
| "builder": { | |
| "queryData": [ | |
| { | |
| "aggregateAttribute": { | |
| "dataType": "float64", | |
| "isColumn": true, | |
| "key": "claude_code.code_edit_tool.decision", | |
| "type": "Sum" | |
| }, | |
| "aggregateOperator": "sum", | |
| "dataSource": "metrics", | |
| "disabled": false, | |
| "expression": "A", | |
| "filters": { | |
| "items": [], | |
| "op": "AND" | |
| }, | |
| "groupBy": [], | |
| "legend": "Decisions", | |
| "queryName": "A", | |
| "reduceTo": "sum", | |
| "spaceAggregation": "sum", | |
| "stepInterval": 60, | |
| "timeAggregation": "increase" | |
| } | |
| ], | |
| "queryFormulas": [] | |
| }, | |
| "queryType": "builder" | |
| }, | |
| "timePreferance": "GLOBAL_TIME", | |
| "title": "Tool Calls" | |
| }, | |
| { | |
| "description": "Git commits created", | |
| "id": "commits", | |
| "panelTypes": "value", | |
| "query": { | |
| "builder": { | |
| "queryData": [ | |
| { | |
| "aggregateAttribute": { | |
| "dataType": "float64", | |
| "isColumn": true, | |
| "key": "claude_code.commit.count", | |
| "type": "Sum" | |
| }, | |
| "aggregateOperator": "sum", | |
| "dataSource": "metrics", | |
| "disabled": false, | |
| "expression": "A", | |
| "filters": { | |
| "items": [], | |
| "op": "AND" | |
| }, | |
| "groupBy": [], | |
| "legend": "Commits", | |
| "queryName": "A", | |
| "reduceTo": "sum", | |
| "spaceAggregation": "sum", | |
| "stepInterval": 60, | |
| "timeAggregation": "increase" | |
| } | |
| ], | |
| "queryFormulas": [] | |
| }, | |
| "queryType": "builder" | |
| }, | |
| "timePreferance": "GLOBAL_TIME", | |
| "title": "Commits" | |
| }, | |
| { | |
| "description": "Pull requests created", | |
| "id": "pull-requests", | |
| "panelTypes": "value", | |
| "query": { | |
| "builder": { | |
| "queryData": [ | |
| { | |
| "aggregateAttribute": { | |
| "dataType": "float64", | |
| "isColumn": true, | |
| "key": "claude_code.pull_request.count", | |
| "type": "Sum" | |
| }, | |
| "aggregateOperator": "sum", | |
| "dataSource": "metrics", | |
| "disabled": false, | |
| "expression": "A", | |
| "filters": { | |
| "items": [], | |
| "op": "AND" | |
| }, | |
| "groupBy": [], | |
| "legend": "PRs", | |
| "queryName": "A", | |
| "reduceTo": "sum", | |
| "spaceAggregation": "sum", | |
| "stepInterval": 60, | |
| "timeAggregation": "increase" | |
| } | |
| ], | |
| "queryFormulas": [] | |
| }, | |
| "queryType": "builder" | |
| }, | |
| "timePreferance": "GLOBAL_TIME", | |
| "title": "PRs" | |
| }, | |
| { | |
| "description": "Total tokens consumed over time", | |
| "id": "token-usage", | |
| "panelTypes": "graph", | |
| "query": { | |
| "builder": { | |
| "queryData": [ | |
| { | |
| "aggregateAttribute": { | |
| "dataType": "float64", | |
| "isColumn": true, | |
| "key": "claude_code.token.usage", | |
| "type": "Sum" | |
| }, | |
| "aggregateOperator": "sum", | |
| "dataSource": "metrics", | |
| "disabled": false, | |
| "expression": "A", | |
| "filters": { | |
| "items": [], | |
| "op": "AND" | |
| }, | |
| "groupBy": [], | |
| "legend": "Tokens", | |
| "queryName": "A", | |
| "reduceTo": "sum", | |
| "spaceAggregation": "sum", | |
| "stepInterval": 60, | |
| "timeAggregation": "rate" | |
| } | |
| ], | |
| "queryFormulas": [] | |
| }, | |
| "queryType": "builder" | |
| }, | |
| "timePreferance": "GLOBAL_TIME", | |
| "title": "Token Usage Over Time" | |
| }, | |
| { | |
| "description": "Cost accumulation over time", | |
| "id": "cost-usage", | |
| "panelTypes": "graph", | |
| "query": { | |
| "builder": { | |
| "queryData": [ | |
| { | |
| "aggregateAttribute": { | |
| "dataType": "float64", | |
| "isColumn": true, | |
| "key": "claude_code.cost.usage", | |
| "type": "Sum" | |
| }, | |
| "aggregateOperator": "sum", | |
| "dataSource": "metrics", | |
| "disabled": false, | |
| "expression": "A", | |
| "filters": { | |
| "items": [], | |
| "op": "AND" | |
| }, | |
| "groupBy": [], | |
| "legend": "Cost (USD)", | |
| "queryName": "A", | |
| "reduceTo": "sum", | |
| "spaceAggregation": "sum", | |
| "stepInterval": 60, | |
| "timeAggregation": "rate" | |
| } | |
| ], | |
| "queryFormulas": [] | |
| }, | |
| "queryType": "builder" | |
| }, | |
| "timePreferance": "GLOBAL_TIME", | |
| "title": "Cost Over Time (USD)" | |
| }, | |
| { | |
| "id": "row-tokens", | |
| "panelTypes": "row", | |
| "query": {}, | |
| "title": "Token Breakdown" | |
| }, | |
| { | |
| "description": "Input, output, cache read, cache creation", | |
| "id": "token-by-type", | |
| "panelTypes": "bar", | |
| "query": { | |
| "builder": { | |
| "queryData": [ | |
| { | |
| "aggregateAttribute": { | |
| "dataType": "float64", | |
| "isColumn": true, | |
| "key": "claude_code.token.usage", | |
| "type": "Sum" | |
| }, | |
| "aggregateOperator": "sum", | |
| "dataSource": "metrics", | |
| "disabled": false, | |
| "expression": "A", | |
| "filters": { | |
| "items": [], | |
| "op": "AND" | |
| }, | |
| "groupBy": [ | |
| { | |
| "dataType": "string", | |
| "isColumn": false, | |
| "key": "type", | |
| "type": "tag" | |
| } | |
| ], | |
| "legend": "{{type}}", | |
| "queryName": "A", | |
| "reduceTo": "sum", | |
| "spaceAggregation": "sum", | |
| "stepInterval": 60, | |
| "timeAggregation": "rate" | |
| } | |
| ], | |
| "queryFormulas": [] | |
| }, | |
| "queryType": "builder" | |
| }, | |
| "timePreferance": "GLOBAL_TIME", | |
| "title": "Tokens by Type" | |
| }, | |
| { | |
| "description": "Token consumption by model", | |
| "id": "token-by-model", | |
| "panelTypes": "bar", | |
| "query": { | |
| "builder": { | |
| "queryData": [ | |
| { | |
| "aggregateAttribute": { | |
| "dataType": "float64", | |
| "isColumn": true, | |
| "key": "claude_code.token.usage", | |
| "type": "Sum" | |
| }, | |
| "aggregateOperator": "sum", | |
| "dataSource": "metrics", | |
| "disabled": false, | |
| "expression": "A", | |
| "filters": { | |
| "items": [], | |
| "op": "AND" | |
| }, | |
| "groupBy": [ | |
| { | |
| "dataType": "string", | |
| "isColumn": false, | |
| "key": "model", | |
| "type": "tag" | |
| } | |
| ], | |
| "legend": "{{model}}", | |
| "queryName": "A", | |
| "reduceTo": "sum", | |
| "spaceAggregation": "sum", | |
| "stepInterval": 60, | |
| "timeAggregation": "rate" | |
| } | |
| ], | |
| "queryFormulas": [] | |
| }, | |
| "queryType": "builder" | |
| }, | |
| "timePreferance": "GLOBAL_TIME", | |
| "title": "Tokens by Model" | |
| }, | |
| { | |
| "id": "row-productivity", | |
| "panelTypes": "row", | |
| "query": {}, | |
| "title": "Cost & Productivity" | |
| }, | |
| { | |
| "description": "Cost breakdown by model", | |
| "id": "cost-by-model", | |
| "panelTypes": "bar", | |
| "query": { | |
| "builder": { | |
| "queryData": [ | |
| { | |
| "aggregateAttribute": { | |
| "dataType": "float64", | |
| "isColumn": true, | |
| "key": "claude_code.cost.usage", | |
| "type": "Sum" | |
| }, | |
| "aggregateOperator": "sum", | |
| "dataSource": "metrics", | |
| "disabled": false, | |
| "expression": "A", | |
| "filters": { | |
| "items": [], | |
| "op": "AND" | |
| }, | |
| "groupBy": [ | |
| { | |
| "dataType": "string", | |
| "isColumn": false, | |
| "key": "model", | |
| "type": "tag" | |
| } | |
| ], | |
| "legend": "{{model}}", | |
| "queryName": "A", | |
| "reduceTo": "sum", | |
| "spaceAggregation": "sum", | |
| "stepInterval": 60, | |
| "timeAggregation": "rate" | |
| } | |
| ], | |
| "queryFormulas": [] | |
| }, | |
| "queryType": "builder" | |
| }, | |
| "timePreferance": "GLOBAL_TIME", | |
| "title": "Cost by Model" | |
| }, | |
| { | |
| "description": "Time spent by Claude (CLI) vs waiting for user input", | |
| "id": "cli-vs-user-time", | |
| "panelTypes": "graph", | |
| "query": { | |
| "builder": { | |
| "queryData": [ | |
| { | |
| "aggregateAttribute": { | |
| "dataType": "float64", | |
| "isColumn": true, | |
| "key": "claude_code.active_time.total", | |
| "type": "Sum" | |
| }, | |
| "aggregateOperator": "sum", | |
| "dataSource": "metrics", | |
| "disabled": false, | |
| "expression": "A", | |
| "filters": { | |
| "items": [], | |
| "op": "AND" | |
| }, | |
| "groupBy": [ | |
| { | |
| "dataType": "string", | |
| "isColumn": false, | |
| "key": "type", | |
| "type": "tag" | |
| } | |
| ], | |
| "legend": "{{type}}", | |
| "queryName": "A", | |
| "reduceTo": "sum", | |
| "spaceAggregation": "sum", | |
| "stepInterval": 60, | |
| "timeAggregation": "rate" | |
| } | |
| ], | |
| "queryFormulas": [] | |
| }, | |
| "queryType": "builder" | |
| }, | |
| "timePreferance": "GLOBAL_TIME", | |
| "title": "CLI vs User Time" | |
| }, | |
| { | |
| "description": "Percentage of tokens served from cache", | |
| "id": "cache-efficiency", | |
| "panelTypes": "graph", | |
| "query": { | |
| "builder": { | |
| "queryData": [ | |
| { | |
| "aggregateAttribute": { | |
| "dataType": "float64", | |
| "isColumn": true, | |
| "key": "claude_code.token.usage", | |
| "type": "Sum" | |
| }, | |
| "aggregateOperator": "sum", | |
| "dataSource": "metrics", | |
| "disabled": false, | |
| "expression": "A", | |
| "filters": { | |
| "items": [ | |
| { | |
| "key": { | |
| "dataType": "string", | |
| "isColumn": false, | |
| "key": "type", | |
| "type": "tag" | |
| }, | |
| "op": "=", | |
| "value": "cacheRead" | |
| } | |
| ], | |
| "op": "AND" | |
| }, | |
| "groupBy": [], | |
| "legend": "Cache Read", | |
| "queryName": "A", | |
| "reduceTo": "sum", | |
| "spaceAggregation": "sum", | |
| "stepInterval": 60, | |
| "timeAggregation": "rate" | |
| }, | |
| { | |
| "aggregateAttribute": { | |
| "dataType": "float64", | |
| "isColumn": true, | |
| "key": "claude_code.token.usage", | |
| "type": "Sum" | |
| }, | |
| "aggregateOperator": "sum", | |
| "dataSource": "metrics", | |
| "disabled": false, | |
| "expression": "B", | |
| "filters": { | |
| "items": [ | |
| { | |
| "key": { | |
| "dataType": "string", | |
| "isColumn": false, | |
| "key": "type", | |
| "type": "tag" | |
| }, | |
| "op": "=", | |
| "value": "input" | |
| } | |
| ], | |
| "op": "AND" | |
| }, | |
| "groupBy": [], | |
| "legend": "Input", | |
| "queryName": "B", | |
| "reduceTo": "sum", | |
| "spaceAggregation": "sum", | |
| "stepInterval": 60, | |
| "timeAggregation": "rate" | |
| } | |
| ], | |
| "queryFormulas": [ | |
| { | |
| "disabled": false, | |
| "expression": "(A / (A + B)) * 100", | |
| "legend": "Cache Efficiency %", | |
| "queryName": "F1" | |
| } | |
| ] | |
| }, | |
| "queryType": "builder" | |
| }, | |
| "timePreferance": "GLOBAL_TIME", | |
| "title": "Cache Efficiency %" | |
| }, | |
| { | |
| "description": "CLI:User time ratio (e.g. 350 = Claude worked 350x more)", | |
| "id": "peak-leverage", | |
| "panelTypes": "value", | |
| "query": { | |
| "builder": { | |
| "queryData": [ | |
| { | |
| "aggregateAttribute": { | |
| "dataType": "float64", | |
| "isColumn": true, | |
| "key": "claude_code.active_time.total", | |
| "type": "Sum" | |
| }, | |
| "aggregateOperator": "sum", | |
| "dataSource": "metrics", | |
| "disabled": false, | |
| "expression": "A", | |
| "filters": { | |
| "items": [ | |
| { | |
| "key": { | |
| "dataType": "string", | |
| "isColumn": false, | |
| "key": "type", | |
| "type": "tag" | |
| }, | |
| "op": "=", | |
| "value": "cli" | |
| } | |
| ], | |
| "op": "AND" | |
| }, | |
| "groupBy": [], | |
| "legend": "", | |
| "queryName": "A", | |
| "reduceTo": "sum", | |
| "spaceAggregation": "sum", | |
| "stepInterval": 60, | |
| "timeAggregation": "increase" | |
| }, | |
| { | |
| "aggregateAttribute": { | |
| "dataType": "float64", | |
| "isColumn": true, | |
| "key": "claude_code.active_time.total", | |
| "type": "Sum" | |
| }, | |
| "aggregateOperator": "sum", | |
| "dataSource": "metrics", | |
| "disabled": false, | |
| "expression": "B", | |
| "filters": { | |
| "items": [ | |
| { | |
| "key": { | |
| "dataType": "string", | |
| "isColumn": false, | |
| "key": "type", | |
| "type": "tag" | |
| }, | |
| "op": "=", | |
| "value": "user" | |
| } | |
| ], | |
| "op": "AND" | |
| }, | |
| "groupBy": [], | |
| "legend": "", | |
| "queryName": "B", | |
| "reduceTo": "sum", | |
| "spaceAggregation": "sum", | |
| "stepInterval": 60, | |
| "timeAggregation": "increase" | |
| } | |
| ], | |
| "queryFormulas": [ | |
| { | |
| "disabled": false, | |
| "expression": "A / B", | |
| "legend": "Usage Leverage", | |
| "queryName": "F1" | |
| } | |
| ] | |
| }, | |
| "queryType": "builder" | |
| }, | |
| "thresholds": [], | |
| "timePreferance": "GLOBAL_TIME", | |
| "title": "Usage Leverage", | |
| "yAxisUnit": "none" | |
| }, | |
| { | |
| "colorMap": { | |
| "F1": "#22C55E", | |
| "F15": "#F97316", | |
| "F5": "#3B82F6" | |
| }, | |
| "customLegendColors": { | |
| "15m": "#f97316", | |
| "1m": "#22c55e", | |
| "5m": "#3b82f6" | |
| }, | |
| "description": "Rolling CLI:User ratio at 1m, 5m, and 15m windows", | |
| "id": "productivity-ratio", | |
| "panelTypes": "graph", | |
| "query": { | |
| "builder": { | |
| "queryData": [ | |
| { | |
| "aggregateAttribute": { | |
| "dataType": "float64", | |
| "isColumn": true, | |
| "key": "claude_code.active_time.total", | |
| "type": "Sum" | |
| }, | |
| "aggregateOperator": "sum", | |
| "dataSource": "metrics", | |
| "disabled": true, | |
| "expression": "A1", | |
| "filters": { | |
| "items": [ | |
| { | |
| "key": { | |
| "dataType": "string", | |
| "isColumn": false, | |
| "key": "type", | |
| "type": "tag" | |
| }, | |
| "op": "=", | |
| "value": "cli" | |
| } | |
| ], | |
| "op": "AND" | |
| }, | |
| "groupBy": [], | |
| "legend": "CLI 1m", | |
| "queryName": "A1", | |
| "reduceTo": "sum", | |
| "spaceAggregation": "sum", | |
| "stepInterval": 60, | |
| "timeAggregation": "increase" | |
| }, | |
| { | |
| "aggregateAttribute": { | |
| "dataType": "float64", | |
| "isColumn": true, | |
| "key": "claude_code.active_time.total", | |
| "type": "Sum" | |
| }, | |
| "aggregateOperator": "sum", | |
| "dataSource": "metrics", | |
| "disabled": true, | |
| "expression": "B1", | |
| "filters": { | |
| "items": [ | |
| { | |
| "key": { | |
| "dataType": "string", | |
| "isColumn": false, | |
| "key": "type", | |
| "type": "tag" | |
| }, | |
| "op": "=", | |
| "value": "user" | |
| } | |
| ], | |
| "op": "AND" | |
| }, | |
| "groupBy": [], | |
| "legend": "User 1m", | |
| "queryName": "B1", | |
| "reduceTo": "sum", | |
| "spaceAggregation": "sum", | |
| "stepInterval": 60, | |
| "timeAggregation": "increase" | |
| }, | |
| { | |
| "aggregateAttribute": { | |
| "dataType": "float64", | |
| "isColumn": true, | |
| "key": "claude_code.active_time.total", | |
| "type": "Sum" | |
| }, | |
| "aggregateOperator": "sum", | |
| "dataSource": "metrics", | |
| "disabled": true, | |
| "expression": "A5", | |
| "filters": { | |
| "items": [ | |
| { | |
| "key": { | |
| "dataType": "string", | |
| "isColumn": false, | |
| "key": "type", | |
| "type": "tag" | |
| }, | |
| "op": "=", | |
| "value": "cli" | |
| } | |
| ], | |
| "op": "AND" | |
| }, | |
| "groupBy": [], | |
| "legend": "CLI 5m", | |
| "queryName": "A5", | |
| "reduceTo": "sum", | |
| "spaceAggregation": "sum", | |
| "stepInterval": 300, | |
| "timeAggregation": "increase" | |
| }, | |
| { | |
| "aggregateAttribute": { | |
| "dataType": "float64", | |
| "isColumn": true, | |
| "key": "claude_code.active_time.total", | |
| "type": "Sum" | |
| }, | |
| "aggregateOperator": "sum", | |
| "dataSource": "metrics", | |
| "disabled": true, | |
| "expression": "B5", | |
| "filters": { | |
| "items": [ | |
| { | |
| "key": { | |
| "dataType": "string", | |
| "isColumn": false, | |
| "key": "type", | |
| "type": "tag" | |
| }, | |
| "op": "=", | |
| "value": "user" | |
| } | |
| ], | |
| "op": "AND" | |
| }, | |
| "groupBy": [], | |
| "legend": "User 5m", | |
| "queryName": "B5", | |
| "reduceTo": "sum", | |
| "spaceAggregation": "sum", | |
| "stepInterval": 300, | |
| "timeAggregation": "increase" | |
| }, | |
| { | |
| "aggregateAttribute": { | |
| "dataType": "float64", | |
| "isColumn": true, | |
| "key": "claude_code.active_time.total", | |
| "type": "Sum" | |
| }, | |
| "aggregateOperator": "sum", | |
| "dataSource": "metrics", | |
| "disabled": true, | |
| "expression": "A15", | |
| "filters": { | |
| "items": [ | |
| { | |
| "key": { | |
| "dataType": "string", | |
| "isColumn": false, | |
| "key": "type", | |
| "type": "tag" | |
| }, | |
| "op": "=", | |
| "value": "cli" | |
| } | |
| ], | |
| "op": "AND" | |
| }, | |
| "groupBy": [], | |
| "legend": "CLI 15m", | |
| "queryName": "A15", | |
| "reduceTo": "sum", | |
| "spaceAggregation": "sum", | |
| "stepInterval": 900, | |
| "timeAggregation": "increase" | |
| }, | |
| { | |
| "aggregateAttribute": { | |
| "dataType": "float64", | |
| "isColumn": true, | |
| "key": "claude_code.active_time.total", | |
| "type": "Sum" | |
| }, | |
| "aggregateOperator": "sum", | |
| "dataSource": "metrics", | |
| "disabled": true, | |
| "expression": "B15", | |
| "filters": { | |
| "items": [ | |
| { | |
| "key": { | |
| "dataType": "string", | |
| "isColumn": false, | |
| "key": "type", | |
| "type": "tag" | |
| }, | |
| "op": "=", | |
| "value": "user" | |
| } | |
| ], | |
| "op": "AND" | |
| }, | |
| "groupBy": [], | |
| "legend": "User 15m", | |
| "queryName": "B15", | |
| "reduceTo": "sum", | |
| "spaceAggregation": "sum", | |
| "stepInterval": 900, | |
| "timeAggregation": "increase" | |
| } | |
| ], | |
| "queryFormulas": [ | |
| { | |
| "color": "#22C55E", | |
| "disabled": false, | |
| "expression": "A1 / B1", | |
| "legend": "1m", | |
| "queryName": "F1" | |
| }, | |
| { | |
| "color": "#3B82F6", | |
| "disabled": false, | |
| "expression": "A5 / B5", | |
| "legend": "5m", | |
| "queryName": "F5" | |
| }, | |
| { | |
| "color": "#F97316", | |
| "disabled": false, | |
| "expression": "A15 / B15", | |
| "legend": "15m", | |
| "queryName": "F15" | |
| } | |
| ] | |
| }, | |
| "queryType": "builder" | |
| }, | |
| "timePreferance": "GLOBAL_TIME", | |
| "title": "Leverage Over Time" | |
| }, | |
| { | |
| "id": "row-cost", | |
| "panelTypes": "row", | |
| "query": {}, | |
| "title": "Cost Analysis (vs $200/mo Claude Max)" | |
| }, | |
| { | |
| "description": "Total hypothetical API cost for selected window", | |
| "id": "api-cost", | |
| "panelTypes": "value", | |
| "query": { | |
| "builder": { | |
| "queryData": [], | |
| "queryFormulas": [] | |
| }, | |
| "clickhouse_sql": [ | |
| { | |
| "disabled": false, | |
| "legend": "Cost ($)", | |
| "name": "A", | |
| "query": "SELECT sum(value) as value FROM signoz_metrics.distributed_samples_v4 WHERE metric_name = 'claude_code.cost.usage' AND unix_milli >= {{.start_timestamp_ms}} AND unix_milli <= {{.end_timestamp_ms}}" | |
| } | |
| ], | |
| "queryType": "clickhouse_sql" | |
| }, | |
| "timePreferance": "GLOBAL_TIME", | |
| "title": "API Cost (Total)" | |
| }, | |
| { | |
| "description": "API cost / Max plan cost. >1 = saving money.", | |
| "id": "cost-leverage", | |
| "panelTypes": "value", | |
| "query": { | |
| "builder": { | |
| "queryData": [], | |
| "queryFormulas": [] | |
| }, | |
| "clickhouse_sql": [ | |
| { | |
| "disabled": false, | |
| "legend": "Leverage (x)", | |
| "name": "A", | |
| "query": "SELECT sum(value) / (({{.end_timestamp_ms}} - {{.start_timestamp_ms}}) / 1000 * 0.0000760531) as value FROM signoz_metrics.distributed_samples_v4 WHERE metric_name = 'claude_code.cost.usage' AND unix_milli >= {{.start_timestamp_ms}} AND unix_milli <= {{.end_timestamp_ms}}" | |
| } | |
| ], | |
| "queryType": "clickhouse_sql" | |
| }, | |
| "timePreferance": "GLOBAL_TIME", | |
| "title": "Cost Leverage" | |
| }, | |
| { | |
| "bucketCount": 30, | |
| "bucketWidth": 0, | |
| "colorMap": { | |
| "F1": "#22C55E", | |
| "F15": "#F97316", | |
| "F5": "#3B82F6" | |
| }, | |
| "columnUnits": {}, | |
| "contextLinks": { | |
| "linksData": [] | |
| }, | |
| "customLegendColors": { | |
| "15m": "#f97316", | |
| "1m": "#22c55e", | |
| "5m": "#3b82f6" | |
| }, | |
| "decimalPrecision": 2, | |
| "description": "Rolling cost leverage at 1m, 5m, and 15m windows", | |
| "fillSpans": false, | |
| "graphStyle": { | |
| "colors": [ | |
| "#22C55E", | |
| "#3B82F6", | |
| "#F97316" | |
| ] | |
| }, | |
| "id": "cumulative-cost", | |
| "isLogScale": false, | |
| "legendPosition": "bottom", | |
| "mergeAllActiveQueries": false, | |
| "nullZeroValues": "zero", | |
| "opacity": "1", | |
| "panelTypes": "graph", | |
| "query": { | |
| "builder": { | |
| "queryData": [ | |
| { | |
| "aggregations": [ | |
| { | |
| "metricName": "claude_code.cost.usage", | |
| "reduceTo": "sum", | |
| "spaceAggregation": "sum", | |
| "timeAggregation": "sum" | |
| } | |
| ], | |
| "dataSource": "metrics", | |
| "disabled": true, | |
| "expression": "A1", | |
| "filter": { | |
| "expression": "" | |
| }, | |
| "functions": [], | |
| "groupBy": [], | |
| "having": [], | |
| "legend": "Cost 1m", | |
| "limit": null, | |
| "orderBy": [], | |
| "queryName": "A1", | |
| "source": "", | |
| "stepInterval": 60 | |
| }, | |
| { | |
| "aggregations": [ | |
| { | |
| "metricName": "claude_code.cost.usage", | |
| "reduceTo": "sum", | |
| "spaceAggregation": "sum", | |
| "timeAggregation": "sum" | |
| } | |
| ], | |
| "dataSource": "metrics", | |
| "disabled": true, | |
| "expression": "A5", | |
| "filter": { | |
| "expression": "" | |
| }, | |
| "functions": [], | |
| "groupBy": [], | |
| "having": [], | |
| "legend": "Cost 5m", | |
| "limit": null, | |
| "orderBy": [], | |
| "queryName": "A5", | |
| "source": "", | |
| "stepInterval": 300 | |
| }, | |
| { | |
| "aggregations": [ | |
| { | |
| "metricName": "claude_code.cost.usage", | |
| "reduceTo": "sum", | |
| "spaceAggregation": "sum", | |
| "timeAggregation": "sum" | |
| } | |
| ], | |
| "dataSource": "metrics", | |
| "disabled": true, | |
| "expression": "A15", | |
| "filter": { | |
| "expression": "" | |
| }, | |
| "functions": [], | |
| "groupBy": [], | |
| "having": [], | |
| "legend": "Cost 15m", | |
| "limit": null, | |
| "orderBy": [], | |
| "queryName": "A15", | |
| "source": "", | |
| "stepInterval": 900 | |
| } | |
| ], | |
| "queryFormulas": [ | |
| { | |
| "color": "#22C55E", | |
| "disabled": false, | |
| "expression": "A1 / 0.004563186", | |
| "legend": "1m", | |
| "queryName": "F1" | |
| }, | |
| { | |
| "color": "#3B82F6", | |
| "disabled": false, | |
| "expression": "A5 / 0.02281593", | |
| "legend": "5m", | |
| "queryName": "F5" | |
| }, | |
| { | |
| "color": "#F97316", | |
| "disabled": false, | |
| "expression": "A15 / 0.06844779", | |
| "legend": "15m", | |
| "queryName": "F15" | |
| } | |
| ] | |
| }, | |
| "clickhouse_sql": [ | |
| { | |
| "disabled": false, | |
| "legend": "", | |
| "name": "A", | |
| "query": "" | |
| } | |
| ], | |
| "id": "0226fa39-8082-4b00-84c7-00a98ebf7f59", | |
| "promql": [ | |
| { | |
| "disabled": false, | |
| "legend": "", | |
| "name": "A", | |
| "query": "" | |
| } | |
| ], | |
| "queryType": "builder" | |
| }, | |
| "selectedLogFields": [], | |
| "selectedTracesFields": [], | |
| "softMax": 0, | |
| "softMin": 0, | |
| "stackedBarChart": false, | |
| "thresholds": [ | |
| { | |
| "color": "#EF4444", | |
| "isEditEnabled": false, | |
| "label": "Break-even", | |
| "value": 1 | |
| } | |
| ], | |
| "timePreferance": "GLOBAL_TIME", | |
| "title": "Cost Leverage Over Time", | |
| "yAxisUnit": "none" | |
| }, | |
| { | |
| "id": "row-logs", | |
| "panelTypes": "row", | |
| "query": {}, | |
| "title": "Log Insights (from Events)" | |
| }, | |
| { | |
| "description": "Which tools are used most often", | |
| "id": "tool-usage-frequency", | |
| "panelTypes": "bar", | |
| "query": { | |
| "builder": { | |
| "queryData": [ | |
| { | |
| "aggregateOperator": "count", | |
| "dataSource": "logs", | |
| "disabled": false, | |
| "expression": "A", | |
| "filter": { | |
| "expression": "body = 'claude_code.tool_result'" | |
| }, | |
| "groupBy": [ | |
| { | |
| "dataType": "string", | |
| "isColumn": false, | |
| "key": "tool_name", | |
| "type": "tag" | |
| } | |
| ], | |
| "legend": "{{tool_name}}", | |
| "queryName": "A", | |
| "stepInterval": 60 | |
| } | |
| ], | |
| "queryFormulas": [] | |
| }, | |
| "queryType": "builder" | |
| }, | |
| "timePreferance": "GLOBAL_TIME", | |
| "title": "Tool Usage Frequency" | |
| }, | |
| { | |
| "description": "Success vs failure rate", | |
| "id": "tool-success-rate", | |
| "panelTypes": "pie", | |
| "query": { | |
| "builder": { | |
| "queryData": [ | |
| { | |
| "aggregateOperator": "count", | |
| "dataSource": "logs", | |
| "disabled": false, | |
| "expression": "A", | |
| "filter": { | |
| "expression": "body = 'claude_code.tool_result'" | |
| }, | |
| "groupBy": [ | |
| { | |
| "dataType": "string", | |
| "isColumn": false, | |
| "key": "success", | |
| "type": "tag" | |
| } | |
| ], | |
| "legend": "{{success}}", | |
| "queryName": "A", | |
| "stepInterval": 60 | |
| } | |
| ], | |
| "queryFormulas": [] | |
| }, | |
| "queryType": "builder" | |
| }, | |
| "timePreferance": "GLOBAL_TIME", | |
| "title": "Tool Success" | |
| }, | |
| { | |
| "description": "Recent API calls with cost", | |
| "id": "api-requests-table", | |
| "panelTypes": "list", | |
| "query": { | |
| "builder": { | |
| "queryData": [ | |
| { | |
| "aggregateOperator": "noop", | |
| "dataSource": "logs", | |
| "disabled": false, | |
| "expression": "A", | |
| "filter": { | |
| "expression": "body = 'claude_code.api_request'" | |
| }, | |
| "limit": 10, | |
| "orderBy": [ | |
| { | |
| "columnName": "timestamp", | |
| "order": "desc" | |
| }, | |
| { | |
| "columnName": "id", | |
| "order": "desc" | |
| } | |
| ], | |
| "queryName": "A", | |
| "selectColumns": [ | |
| { | |
| "dataType": "string", | |
| "isColumn": true, | |
| "key": "timestamp", | |
| "type": "tag" | |
| }, | |
| { | |
| "dataType": "string", | |
| "isColumn": false, | |
| "key": "model", | |
| "type": "tag" | |
| }, | |
| { | |
| "dataType": "string", | |
| "isColumn": false, | |
| "key": "cost_usd", | |
| "type": "tag" | |
| } | |
| ], | |
| "stepInterval": 60 | |
| } | |
| ], | |
| "queryFormulas": [] | |
| }, | |
| "queryType": "builder" | |
| }, | |
| "timePreferance": "GLOBAL_TIME", | |
| "title": "Recent API Calls" | |
| } | |
| ] | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment