Skip to content

Commit 2591f4d

Browse files
committed
feat: add low-hanging-fruit
This adds a new Debug Radar section to the Heroku app dashboard because I'm starting to see another climb in basic TypeErrors.
1 parent 3732e3b commit 2591f4d

File tree

1 file changed

+49
-4
lines changed

1 file changed

+49
-4
lines changed

resources/splunk-dashboards/src/heroku.json

Lines changed: 49 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
2-
"title": "Reliability Kit: Heroku App With Log Drains",
3-
"description": "A dashboard to view issues with apps which use Reliability Kit and Heroku Log Drains.",
2+
"title": "Heroku App Health",
3+
"description": "A dashboard to view the health of a Heroku app (works best when the app uses Reliability Kit)",
44
"visualizations": {
55
"viz_common_errors": {
66
"type": "splunk.table",
@@ -94,6 +94,23 @@
9494
"stackMode": "stacked",
9595
"legendDisplay": "bottom"
9696
}
97+
},
98+
"viz_md_tech_debt_radar": {
99+
"type": "splunk.markdown",
100+
"options": {
101+
"markdown": "---\n\n# Tech Debt Radar\n\nThe following charts help you identify areas of improvement, focused on easy-to-fix issues."
102+
}
103+
},
104+
"viz_low_hanging_fruit": {
105+
"type": "splunk.table",
106+
"dataSources": {
107+
"primary": "ds_low_hanging_fruit"
108+
},
109+
"title": "Low-Hanging Fruit",
110+
"description": "Common JavaScript errors across the codebase which are likely due to a bug in the code",
111+
"options": {
112+
"count": 5
113+
}
97114
}
98115
},
99116
"dataSources": {
@@ -140,9 +157,17 @@
140157
"type": "ds.search",
141158
"options": {
142159
"enableSmartSources": true,
143-
"query": "index=\"heroku\" source=TERM($text_system_code$) sourcetype=\"heroku:app\" level=error\n| rex field=error.stack \"(?<stackTraceHeader>[^\\r\\n]+[\\r\\n]+[^\\r\\n]+)\"\n| rex field=error.stack \"[^\\r\\n]+[\\r\\n]+[^\\r\\n\\(]*\\((?<filePointer>[^\\)]+)\\)\" \n| rename error.name as name, error.code as code, error.message as message\n| eval hash=md5(name.\"__\".code.\"__\".stackTraceHeader)\n| eval isCrash=if(event=\"UNHANDLED_ERROR\",\"true\",\"false\")\n| stats sparkline() as timeline count by hash, name, code, message, isCrash, filePointer \n| table count timeline name code isCrash message filePointer\n| sort count desc"
160+
"query": "index=\"heroku\" source=TERM($text_system_code$) sourcetype=\"heroku:app\" level=error error.statusCode>=500\n| rex field=error.stack \"(?<stackTraceHeader>[^\\r\\n]+[\\r\\n]+[^\\r\\n]+)\"\n| rex field=error.stack \"[^\\r\\n]+[\\r\\n]+[^\\r\\n\\(]*\\((?<filePointer>[^\\)]+)\\)\" \n| rename error.name as name, error.code as code, error.message as message\n| eval hash=md5(name.\"__\".code.\"__\".stackTraceHeader)\n| eval isCrash=if(event=\"UNHANDLED_ERROR\",\"true\",\"false\")\n| stats sparkline() as timeline count by hash, name, code, message, isCrash, filePointer \n| table count timeline name code isCrash message filePointer\n| sort count desc"
144161
},
145162
"name": "search_table_grouped_errors"
163+
},
164+
"ds_low_hanging_fruit": {
165+
"type": "ds.search",
166+
"options": {
167+
"enableSmartSources": true,
168+
"query": "index=\"heroku\" source=TERM($text_system_code$) sourcetype=\"heroku:app\" level=error\n| rex field=error.stack \"(?<stackTraceHeader>[^\\r\\n]+[\\r\\n]+[^\\r\\n]+)\"\n| rex field=error.stack \"[^\\r\\n]+[\\r\\n]+[^\\r\\n\\(]*\\((?<filePointer>[^\\)]+)\\)\" \n| rename error.name as name, error.code as code, error.message as message\n| eval hash=md5(name.\"__\".code.\"__\".stackTraceHeader)\n| eval isCrash=if(event=\"UNHANDLED_ERROR\",\"true\",\"false\")\n| stats sparkline() as timeline count by hash, name, code, message, isCrash, filePointer \n| table count timeline name code isCrash message filePointer\n| sort count desc"
169+
},
170+
"name": "search_table_low_hanging_fruit"
146171
}
147172
},
148173
"defaults": {
@@ -168,7 +193,7 @@
168193
},
169194
"input_system_code": {
170195
"options": {
171-
"defaultValue": "next-topic-tracker-api",
196+
"defaultValue": "",
172197
"token": "text_system_code"
173198
},
174199
"title": "System code",
@@ -239,6 +264,26 @@
239264
"h": 350
240265
}
241266
},
267+
{
268+
"item": "viz_md_tech_debt_radar",
269+
"type": "block",
270+
"position": {
271+
"x": 0,
272+
"y": 1780,
273+
"w": 1200,
274+
"h": 150
275+
}
276+
},
277+
{
278+
"item": "viz_low_hanging_fruit",
279+
"type": "block",
280+
"position": {
281+
"x": 0,
282+
"y": 1930,
283+
"w": 1200,
284+
"h": 430
285+
}
286+
},
242287
{
243288
"item": "viz_error_names",
244289
"type": "block",

0 commit comments

Comments
 (0)