@parca/profile 0.19.140 → 0.19.143

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/CHANGELOG.md +9 -1
  2. package/dist/GraphTooltipArrow/Content.js +224 -30
  3. package/dist/GraphTooltipArrow/DockedGraphTooltip/index.js +192 -33
  4. package/dist/GraphTooltipArrow/ExpandOnHoverValue.js +53 -3
  5. package/dist/GraphTooltipArrow/index.d.ts.map +1 -1
  6. package/dist/GraphTooltipArrow/index.js +86 -56
  7. package/dist/GraphTooltipArrow/useGraphTooltip/index.js +37 -37
  8. package/dist/GraphTooltipArrow/useGraphTooltipMetaInfo/index.js +94 -68
  9. package/dist/MatchersInput/SuggestionItem.js +91 -12
  10. package/dist/MatchersInput/SuggestionsList.d.ts +2 -1
  11. package/dist/MatchersInput/SuggestionsList.d.ts.map +1 -1
  12. package/dist/MatchersInput/SuggestionsList.js +371 -157
  13. package/dist/MatchersInput/SuggestionsList.test.d.ts +2 -0
  14. package/dist/MatchersInput/SuggestionsList.test.d.ts.map +1 -0
  15. package/dist/MatchersInput/index.js +308 -115
  16. package/dist/MetricsCircle/index.js +39 -3
  17. package/dist/MetricsGraph/MetricsContextMenu/index.js +119 -19
  18. package/dist/MetricsGraph/MetricsInfoPanel/index.js +81 -20
  19. package/dist/MetricsGraph/MetricsTooltip/index.d.ts.map +1 -1
  20. package/dist/MetricsGraph/MetricsTooltip/index.js +107 -74
  21. package/dist/MetricsGraph/index.js +552 -203
  22. package/dist/MetricsGraph/useMetricsGraphDimensions.js +46 -25
  23. package/dist/MetricsGraph/utils/colorMapping.js +24 -17
  24. package/dist/MetricsSeries/index.js +70 -7
  25. package/dist/PreSelectedMatchers/index.d.ts.map +1 -1
  26. package/dist/PreSelectedMatchers/index.js +249 -102
  27. package/dist/ProfileExplorer/ProfileExplorerCompare.d.ts.map +1 -1
  28. package/dist/ProfileExplorer/ProfileExplorerCompare.js +240 -45
  29. package/dist/ProfileExplorer/ProfileExplorerSingle.js +98 -11
  30. package/dist/ProfileExplorer/index.js +183 -32
  31. package/dist/ProfileFlameChart/SamplesStrips/SamplesGraph/index.js +333 -148
  32. package/dist/ProfileFlameChart/SamplesStrips/SamplesStrips.stories.js +69 -35
  33. package/dist/ProfileFlameChart/SamplesStrips/index.js +645 -134
  34. package/dist/ProfileFlameChart/SamplesStrips/labelSetUtils.js +114 -55
  35. package/dist/ProfileFlameChart/index.js +260 -126
  36. package/dist/ProfileFlameGraph/FlameGraphArrow/ContextMenu.js +283 -85
  37. package/dist/ProfileFlameGraph/FlameGraphArrow/ContextMenuWrapper.js +56 -20
  38. package/dist/ProfileFlameGraph/FlameGraphArrow/FlameGraphNodes.js +211 -140
  39. package/dist/ProfileFlameGraph/FlameGraphArrow/MemoizedTooltip.js +133 -38
  40. package/dist/ProfileFlameGraph/FlameGraphArrow/MiniMap.js +261 -216
  41. package/dist/ProfileFlameGraph/FlameGraphArrow/TextWithEllipsis.d.ts.map +1 -1
  42. package/dist/ProfileFlameGraph/FlameGraphArrow/TextWithEllipsis.js +71 -45
  43. package/dist/ProfileFlameGraph/FlameGraphArrow/TooltipContext.d.ts.map +1 -1
  44. package/dist/ProfileFlameGraph/FlameGraphArrow/TooltipContext.js +58 -28
  45. package/dist/ProfileFlameGraph/FlameGraphArrow/ZoomControls.d.ts.map +1 -1
  46. package/dist/ProfileFlameGraph/FlameGraphArrow/ZoomControls.js +59 -8
  47. package/dist/ProfileFlameGraph/FlameGraphArrow/index.js +396 -179
  48. package/dist/ProfileFlameGraph/FlameGraphArrow/useBatchedRendering.d.ts.map +1 -1
  49. package/dist/ProfileFlameGraph/FlameGraphArrow/useBatchedRendering.js +68 -50
  50. package/dist/ProfileFlameGraph/FlameGraphArrow/useMappingList.js +62 -38
  51. package/dist/ProfileFlameGraph/FlameGraphArrow/useNodeColor.js +14 -6
  52. package/dist/ProfileFlameGraph/FlameGraphArrow/useScrollViewport.js +124 -82
  53. package/dist/ProfileFlameGraph/FlameGraphArrow/useVisibleNodes.js +160 -98
  54. package/dist/ProfileFlameGraph/FlameGraphArrow/useZoom.js +232 -112
  55. package/dist/ProfileFlameGraph/FlameGraphArrow/utils.js +137 -114
  56. package/dist/ProfileFlameGraph/benchmarks/benchdata/populateData.js +85 -0
  57. package/dist/ProfileFlameGraph/index.js +322 -147
  58. package/dist/ProfileMetricsGraph/hooks/useQueryRange.js +140 -32
  59. package/dist/ProfileMetricsGraph/index.js +515 -256
  60. package/dist/ProfileSelector/CompareButton.js +132 -12
  61. package/dist/ProfileSelector/MetricsGraphSection.js +228 -63
  62. package/dist/ProfileSelector/index.d.ts +1 -1
  63. package/dist/ProfileSelector/index.d.ts.map +1 -1
  64. package/dist/ProfileSelector/index.js +734 -142
  65. package/dist/ProfileSelector/useAutoQuerySelector.d.ts +1 -3
  66. package/dist/ProfileSelector/useAutoQuerySelector.d.ts.map +1 -1
  67. package/dist/ProfileSelector/useAutoQuerySelector.js +280 -132
  68. package/dist/ProfileSource.js +230 -163
  69. package/dist/ProfileTypeSelector/index.js +214 -125
  70. package/dist/ProfileView/components/ActionButtons/GroupByDropdown.js +50 -4
  71. package/dist/ProfileView/components/ActionButtons/SortByDropdown.js +137 -32
  72. package/dist/ProfileView/components/ColorStackLegend.js +182 -54
  73. package/dist/ProfileView/components/DashboardItems/index.js +87 -28
  74. package/dist/ProfileView/components/DashboardLayout/index.js +108 -16
  75. package/dist/ProfileView/components/DiffLegend.js +172 -29
  76. package/dist/ProfileView/components/GroupByLabelsDropdown/index.js +199 -55
  77. package/dist/ProfileView/components/InvertCallStack/index.js +97 -9
  78. package/dist/ProfileView/components/ProfileFilters/filterPresets.js +260 -315
  79. package/dist/ProfileView/components/ProfileFilters/index.js +518 -215
  80. package/dist/ProfileView/components/ProfileFilters/useProfileFilters.js +370 -306
  81. package/dist/ProfileView/components/ProfileFilters/useProfileFiltersUrlState.js +191 -118
  82. package/dist/ProfileView/components/ProfileHeader/index.js +105 -11
  83. package/dist/ProfileView/components/ShareButton/ResultBox.js +119 -16
  84. package/dist/ProfileView/components/ShareButton/index.js +352 -62
  85. package/dist/ProfileView/components/Toolbars/MultiLevelDropdown.d.ts.map +1 -1
  86. package/dist/ProfileView/components/Toolbars/MultiLevelDropdown.js +664 -192
  87. package/dist/ProfileView/components/Toolbars/SwitchMenuItem.js +94 -7
  88. package/dist/ProfileView/components/Toolbars/TableColumnsDropdown.js +196 -155
  89. package/dist/ProfileView/components/Toolbars/index.js +441 -21
  90. package/dist/ProfileView/components/ViewSelector/Dropdown.js +233 -22
  91. package/dist/ProfileView/components/ViewSelector/index.js +186 -82
  92. package/dist/ProfileView/components/VisualizationContainer/index.d.ts.map +1 -1
  93. package/dist/ProfileView/components/VisualizationContainer/index.js +52 -7
  94. package/dist/ProfileView/components/VisualizationPanel.js +185 -8
  95. package/dist/ProfileView/context/DashboardContext.js +74 -26
  96. package/dist/ProfileView/context/ProfileViewContext.js +56 -15
  97. package/dist/ProfileView/hooks/useAutoSelectDimension.js +71 -41
  98. package/dist/ProfileView/hooks/useProfileMetadata.js +50 -18
  99. package/dist/ProfileView/hooks/useResetFlameGraphState.js +31 -10
  100. package/dist/ProfileView/hooks/useResetStateOnProfileTypeChange.js +71 -27
  101. package/dist/ProfileView/hooks/useResetStateOnSeriesChange.js +53 -17
  102. package/dist/ProfileView/hooks/useVisualizationState.js +229 -69
  103. package/dist/ProfileView/index.js +383 -45
  104. package/dist/ProfileView/types/visualization.js +1 -13
  105. package/dist/ProfileView/utils/colorUtils.js +8 -7
  106. package/dist/ProfileViewWithData.js +319 -225
  107. package/dist/QueryControls/index.js +418 -47
  108. package/dist/Sandwich/components/CalleesSection.js +54 -4
  109. package/dist/Sandwich/components/CallersSection.js +97 -27
  110. package/dist/Sandwich/components/TableSection.js +77 -4
  111. package/dist/Sandwich/index.js +125 -12
  112. package/dist/Sandwich/utils/processRowData.js +48 -39
  113. package/dist/SelectWithRefresh/index.js +102 -28
  114. package/dist/SimpleMatchers/Select.js +520 -187
  115. package/dist/SimpleMatchers/index.js +590 -288
  116. package/dist/SourceView/Highlighter.js +230 -70
  117. package/dist/SourceView/LineNo.js +72 -17
  118. package/dist/SourceView/index.js +177 -101
  119. package/dist/SourceView/lang-detector/ext-to-lang.json +798 -798
  120. package/dist/SourceView/lang-detector/index.js +28 -14
  121. package/dist/SourceView/useSelectedLineRange.js +72 -20
  122. package/dist/Table/ColorCell.js +42 -1
  123. package/dist/Table/ColumnsVisibility.js +114 -6
  124. package/dist/Table/MoreDropdown.js +107 -21
  125. package/dist/Table/TableContextMenu.js +144 -134
  126. package/dist/Table/TableContextMenuWrapper.js +59 -14
  127. package/dist/Table/hooks/useColorManagement.js +58 -16
  128. package/dist/Table/hooks/useTableConfiguration.d.ts.map +1 -1
  129. package/dist/Table/hooks/useTableConfiguration.js +323 -167
  130. package/dist/Table/index.js +217 -123
  131. package/dist/Table/utils/functions.js +169 -144
  132. package/dist/Table/utils/topAndBottomExpandedRowModel.js +69 -52
  133. package/dist/TimelineGuide/index.js +209 -16
  134. package/dist/TopTable/benchmarks/benchdata/populateData.js +91 -0
  135. package/dist/TopTable/index.js +325 -121
  136. package/dist/contexts/LabelsQueryProvider.js +94 -32
  137. package/dist/contexts/UnifiedLabelsContext.js +114 -49
  138. package/dist/contexts/utils.js +37 -15
  139. package/dist/hooks/urlParsers.js +27 -15
  140. package/dist/hooks/useColorBy.js +47 -10
  141. package/dist/hooks/useCompareModeMeta.js +112 -62
  142. package/dist/hooks/useDashboardItems.js +52 -11
  143. package/dist/hooks/useLabels.js +295 -52
  144. package/dist/hooks/useQueryState.d.ts +1 -1
  145. package/dist/hooks/useQueryState.d.ts.map +1 -1
  146. package/dist/hooks/useQueryState.js +375 -329
  147. package/dist/index.js +11 -6
  148. package/dist/testdata/fg-diff.json +3750 -0
  149. package/dist/testdata/fg-simple.json +1879 -0
  150. package/dist/testdata/link_data.json +56 -0
  151. package/dist/testdata/tabular.json +30 -0
  152. package/dist/testdata/test_flamegraph.json +26846 -0
  153. package/dist/testdata/test_graph.json +53 -0
  154. package/dist/useDelayedLoader.js +32 -18
  155. package/dist/useGrpcQuery/index.js +71 -11
  156. package/dist/useHasProfileData.js +90 -12
  157. package/dist/useQuery.js +205 -64
  158. package/dist/useSumBy.d.ts.map +1 -1
  159. package/dist/useSumBy.js +294 -138
  160. package/dist/utils.js +62 -30
  161. package/package.json +9 -9
  162. package/src/GraphTooltipArrow/index.tsx +3 -0
  163. package/src/MatchersInput/SuggestionsList.test.tsx +70 -0
  164. package/src/MatchersInput/SuggestionsList.tsx +11 -10
  165. package/src/MatchersInput/index.tsx +1 -1
  166. package/src/MetricsGraph/MetricsTooltip/index.tsx +22 -34
  167. package/src/PreSelectedMatchers/index.tsx +3 -0
  168. package/src/ProfileExplorer/ProfileExplorerCompare.tsx +9 -2
  169. package/src/ProfileFlameGraph/FlameGraphArrow/TextWithEllipsis.tsx +3 -0
  170. package/src/ProfileFlameGraph/FlameGraphArrow/TooltipContext.tsx +3 -0
  171. package/src/ProfileFlameGraph/FlameGraphArrow/ZoomControls.tsx +3 -0
  172. package/src/ProfileFlameGraph/FlameGraphArrow/useBatchedRendering.ts +3 -0
  173. package/src/ProfileSelector/index.tsx +31 -9
  174. package/src/ProfileSelector/useAutoQuerySelector.ts +64 -42
  175. package/src/ProfileView/components/Toolbars/MultiLevelDropdown.tsx +3 -0
  176. package/src/ProfileView/components/VisualizationContainer/index.tsx +3 -0
  177. package/src/Table/hooks/useTableConfiguration.tsx +7 -13
  178. package/src/hooks/useQueryState.ts +18 -3
  179. package/src/useDelayedLoader.ts +10 -10
  180. package/src/useSumBy.ts +12 -18
  181. package/dist/ProfileView/components/ProfileFilters/useProfileFiltersUrlState.test.js +0 -455
  182. package/dist/hooks/useQueryState.test.js +0 -868
@@ -10,320 +10,265 @@
10
10
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
11
  // See the License for the specific language governing permissions and
12
12
  // limitations under the License.
13
- export const filterPresets = [
14
- {
15
- key: 'go_runtime_expected_off_cpu',
16
- name: 'Go Runtime Expected Off-CPU',
17
- description: 'Excludes expected Go runtime blocking functions',
18
- allowedProfileTypes: ['parca_agent:wallclock:nanoseconds:samples:count:delta'],
19
- filters: [
20
- {
21
- type: 'stack',
22
- field: 'function_name',
23
- matchType: 'not_equal',
24
- value: 'runtime.usleep',
25
- },
26
- {
27
- type: 'stack',
28
- field: 'function_name',
29
- matchType: 'not_equal',
30
- value: 'runtime.futex',
31
- },
32
- ],
33
- },
34
- {
35
- key: 'rust_runtime_expected_off_cpu',
36
- name: 'Rust Expected Off-CPU',
37
- description: 'Excludes expected Rust runtime blocking functions',
38
- allowedProfileTypes: ['parca_agent:wallclock:nanoseconds:samples:count:delta'],
39
- filters: [
40
- {
41
- type: 'stack',
42
- field: 'function_name',
43
- matchType: 'not_equal',
44
- value: 'parking_lot_core::thread_parker::imp::ThreadParker::futex_wait',
45
- },
46
- {
47
- type: 'stack',
48
- field: 'function_name',
49
- matchType: 'not_equal',
50
- value: 'tokio::runtime::time::Driver::park_internal',
51
- },
52
- {
53
- type: 'stack',
54
- field: 'function_name',
55
- matchType: 'not_equal',
56
- value: 'futex_wait',
57
- },
58
- ],
59
- },
60
- {
61
- key: 'hide_v8_internals',
62
- name: 'Hide V8 internals',
63
- description: 'Excludes Node.js and V8 internal functions from the profile',
64
- filters: [
65
- {
66
- type: 'frame',
67
- field: 'binary',
68
- matchType: 'not_contains',
69
- value: 'node',
70
- },
71
- {
72
- type: 'frame',
73
- field: 'function_name',
74
- matchType: 'not_contains',
75
- value: 'V8',
76
- },
77
- ],
78
- },
79
- {
80
- key: 'hide_cuda_internals',
81
- name: 'Hide CUDA Internals',
82
- description: 'Excludes CUDA and NVIDIA GPU driver internal functions from the profile',
83
- filters: [
84
- {
85
- type: 'frame',
86
- field: 'binary',
87
- matchType: 'not_contains',
88
- value: 'libcudnn_engines_precompiled.so',
89
- },
90
- {
91
- type: 'frame',
92
- field: 'binary',
93
- matchType: 'not_contains',
94
- value: 'libcupti.so',
95
- },
96
- {
97
- type: 'frame',
98
- field: 'binary',
99
- matchType: 'not_contains',
100
- value: 'libcudart.so',
101
- },
102
- {
103
- type: 'frame',
104
- field: 'binary',
105
- matchType: 'not_contains',
106
- value: 'libcuda.so',
107
- },
108
- {
109
- type: 'frame',
110
- field: 'binary',
111
- matchType: 'not_contains',
112
- value: 'libcudnn.so',
113
- },
114
- {
115
- type: 'frame',
116
- field: 'binary',
117
- matchType: 'not_contains',
118
- value: 'libcudnn_graph.so',
119
- },
120
- {
121
- type: 'frame',
122
- field: 'binary',
123
- matchType: 'not_contains',
124
- value: 'libparcagpucupti.so',
125
- },
126
- {
127
- type: 'frame',
128
- field: 'binary',
129
- matchType: 'not_starts_with',
130
- value: 'libcublas',
131
- },
132
- ],
133
- },
134
- {
135
- key: 'hide_python_internals',
136
- name: 'Hide Python Internals',
137
- description: 'Excludes Python interpreter internal functions from the profile',
138
- filters: [
139
- {
140
- type: 'frame',
141
- field: 'binary',
142
- matchType: 'not_contains',
143
- value: 'python3',
144
- },
145
- {
146
- type: 'frame',
147
- field: 'function_name',
148
- matchType: 'not_equal',
149
- value: '<interpreter trampoline>',
150
- },
151
- {
152
- type: 'frame',
153
- field: 'function_name',
154
- matchType: 'not_equal',
155
- value: '<module>',
156
- },
157
- ],
158
- },
159
- {
160
- key: 'hide_libc',
161
- name: 'Hide libc',
162
- description: 'Excludes C standard library functions from the profile',
163
- filters: [
164
- {
165
- type: 'frame',
166
- field: 'binary',
167
- matchType: 'not_contains',
168
- value: 'libc.so',
169
- },
170
- ],
171
- },
172
- {
173
- key: 'hide_tokio_frames',
174
- name: 'Hide Tokio Frames',
175
- description: 'Excludes Tokio runtime frames from the profile',
176
- filters: [
177
- {
178
- type: 'frame',
179
- field: 'function_name',
180
- matchType: 'not_starts_with',
181
- value: 'tokio::',
182
- },
183
- {
184
- type: 'frame',
185
- field: 'function_name',
186
- matchType: 'not_starts_with',
187
- value: '<tokio::',
188
- },
189
- {
190
- type: 'frame',
191
- field: 'function_name',
192
- matchType: 'not_contains',
193
- value: 'tokio::runtime',
194
- },
195
- ],
196
- },
197
- {
198
- key: 'hide_rust_futures',
199
- name: 'Hide Rust Futures Infrastructure',
200
- description: 'Excludes Rust futures infrastructure frames from the profile',
201
- filters: [
202
- {
203
- type: 'frame',
204
- field: 'function_name',
205
- matchType: 'not_starts_with',
206
- value: 'future',
207
- },
208
- {
209
- type: 'frame',
210
- field: 'function_name',
211
- matchType: 'not_starts_with',
212
- value: '<future',
213
- },
214
- {
215
- type: 'frame',
216
- field: 'function_name',
217
- matchType: 'not_contains',
218
- value: 'futures_core',
219
- },
220
- {
221
- type: 'frame',
222
- field: 'function_name',
223
- matchType: 'not_contains',
224
- value: 'core::future::future::Future',
225
- },
226
- {
227
- type: 'frame',
228
- field: 'function_name',
229
- matchType: 'not_starts_with',
230
- value: 'poll',
231
- },
232
- {
233
- type: 'frame',
234
- field: 'function_name',
235
- matchType: 'not_starts_with',
236
- value: 'try_poll',
237
- },
238
- {
239
- type: 'frame',
240
- field: 'function_name',
241
- matchType: 'not_starts_with',
242
- value: '{closure#',
243
- },
244
- {
245
- type: 'frame',
246
- field: 'function_name',
247
- matchType: 'not_starts_with',
248
- value: '{async_block#',
249
- },
250
- {
251
- type: 'frame',
252
- field: 'function_name',
253
- matchType: 'not_equal',
254
- value: 'invoke',
255
- },
256
- {
257
- type: 'frame',
258
- field: 'function_name',
259
- matchType: 'not_equal',
260
- value: 'run',
261
- },
262
- {
263
- type: 'frame',
264
- field: 'function_name',
265
- matchType: 'not_starts_with',
266
- value: '{async_fn#',
267
- },
268
- ],
269
- },
270
- {
271
- key: 'hide_rust_panic_backtrace',
272
- name: 'Hide Rust Panic Backtrace Infrastructure',
273
- description: 'Excludes Rust panic and backtrace infrastructure frames from the profile',
274
- filters: [
275
- {
276
- type: 'frame',
277
- field: 'function_name',
278
- matchType: 'not_starts_with',
279
- value: 'std::panic',
280
- },
281
- {
282
- type: 'frame',
283
- field: 'function_name',
284
- matchType: 'not_starts_with',
285
- value: '<core::panic',
286
- },
287
- {
288
- type: 'frame',
289
- field: 'function_name',
290
- matchType: 'not_starts_with',
291
- value: 'std::sys::backtrace',
292
- },
293
- {
294
- type: 'frame',
295
- field: 'function_name',
296
- matchType: 'not_starts_with',
297
- value: 'catch_unwind<',
298
- },
299
- {
300
- type: 'frame',
301
- field: 'function_name',
302
- matchType: 'not_starts_with',
303
- value: 'call_once<',
304
- },
305
- {
306
- type: 'frame',
307
- field: 'function_name',
308
- matchType: 'not_starts_with',
309
- value: 'do_call<',
310
- },
311
- ],
312
- },
313
- ];
314
- const presetKeys = new Set(filterPresets.map(preset => preset.key));
315
- export const isPresetKey = (key) => {
316
- return presetKeys.has(key);
13
+
14
+ export var filterPresets = [{
15
+ key: 'go_runtime_expected_off_cpu',
16
+ name: 'Go Runtime Expected Off-CPU',
17
+ description: 'Excludes expected Go runtime blocking functions',
18
+ allowedProfileTypes: ['parca_agent:wallclock:nanoseconds:samples:count:delta'],
19
+ filters: [{
20
+ type: 'stack',
21
+ field: 'function_name',
22
+ matchType: 'not_equal',
23
+ value: 'runtime.usleep'
24
+ }, {
25
+ type: 'stack',
26
+ field: 'function_name',
27
+ matchType: 'not_equal',
28
+ value: 'runtime.futex'
29
+ }]
30
+ }, {
31
+ key: 'rust_runtime_expected_off_cpu',
32
+ name: 'Rust Expected Off-CPU',
33
+ description: 'Excludes expected Rust runtime blocking functions',
34
+ allowedProfileTypes: ['parca_agent:wallclock:nanoseconds:samples:count:delta'],
35
+ filters: [{
36
+ type: 'stack',
37
+ field: 'function_name',
38
+ matchType: 'not_equal',
39
+ value: 'parking_lot_core::thread_parker::imp::ThreadParker::futex_wait'
40
+ }, {
41
+ type: 'stack',
42
+ field: 'function_name',
43
+ matchType: 'not_equal',
44
+ value: 'tokio::runtime::time::Driver::park_internal'
45
+ }, {
46
+ type: 'stack',
47
+ field: 'function_name',
48
+ matchType: 'not_equal',
49
+ value: 'futex_wait'
50
+ }]
51
+ }, {
52
+ key: 'hide_v8_internals',
53
+ name: 'Hide V8 internals',
54
+ description: 'Excludes Node.js and V8 internal functions from the profile',
55
+ filters: [{
56
+ type: 'frame',
57
+ field: 'binary',
58
+ matchType: 'not_contains',
59
+ value: 'node'
60
+ }, {
61
+ type: 'frame',
62
+ field: 'function_name',
63
+ matchType: 'not_contains',
64
+ value: 'V8'
65
+ }]
66
+ }, {
67
+ key: 'hide_cuda_internals',
68
+ name: 'Hide CUDA Internals',
69
+ description: 'Excludes CUDA and NVIDIA GPU driver internal functions from the profile',
70
+ filters: [{
71
+ type: 'frame',
72
+ field: 'binary',
73
+ matchType: 'not_contains',
74
+ value: 'libcudnn_engines_precompiled.so'
75
+ }, {
76
+ type: 'frame',
77
+ field: 'binary',
78
+ matchType: 'not_contains',
79
+ value: 'libcupti.so'
80
+ }, {
81
+ type: 'frame',
82
+ field: 'binary',
83
+ matchType: 'not_contains',
84
+ value: 'libcudart.so'
85
+ }, {
86
+ type: 'frame',
87
+ field: 'binary',
88
+ matchType: 'not_contains',
89
+ value: 'libcuda.so'
90
+ }, {
91
+ type: 'frame',
92
+ field: 'binary',
93
+ matchType: 'not_contains',
94
+ value: 'libcudnn.so'
95
+ }, {
96
+ type: 'frame',
97
+ field: 'binary',
98
+ matchType: 'not_contains',
99
+ value: 'libcudnn_graph.so'
100
+ }, {
101
+ type: 'frame',
102
+ field: 'binary',
103
+ matchType: 'not_contains',
104
+ value: 'libparcagpucupti.so'
105
+ }, {
106
+ type: 'frame',
107
+ field: 'binary',
108
+ matchType: 'not_starts_with',
109
+ value: 'libcublas'
110
+ }]
111
+ }, {
112
+ key: 'hide_python_internals',
113
+ name: 'Hide Python Internals',
114
+ description: 'Excludes Python interpreter internal functions from the profile',
115
+ filters: [{
116
+ type: 'frame',
117
+ field: 'binary',
118
+ matchType: 'not_contains',
119
+ value: 'python3'
120
+ }, {
121
+ type: 'frame',
122
+ field: 'function_name',
123
+ matchType: 'not_equal',
124
+ value: '<interpreter trampoline>'
125
+ }, {
126
+ type: 'frame',
127
+ field: 'function_name',
128
+ matchType: 'not_equal',
129
+ value: '<module>'
130
+ }]
131
+ }, {
132
+ key: 'hide_libc',
133
+ name: 'Hide libc',
134
+ description: 'Excludes C standard library functions from the profile',
135
+ filters: [{
136
+ type: 'frame',
137
+ field: 'binary',
138
+ matchType: 'not_contains',
139
+ value: 'libc.so'
140
+ }]
141
+ }, {
142
+ key: 'hide_tokio_frames',
143
+ name: 'Hide Tokio Frames',
144
+ description: 'Excludes Tokio runtime frames from the profile',
145
+ filters: [{
146
+ type: 'frame',
147
+ field: 'function_name',
148
+ matchType: 'not_starts_with',
149
+ value: 'tokio::'
150
+ }, {
151
+ type: 'frame',
152
+ field: 'function_name',
153
+ matchType: 'not_starts_with',
154
+ value: '<tokio::'
155
+ }, {
156
+ type: 'frame',
157
+ field: 'function_name',
158
+ matchType: 'not_contains',
159
+ value: 'tokio::runtime'
160
+ }]
161
+ }, {
162
+ key: 'hide_rust_futures',
163
+ name: 'Hide Rust Futures Infrastructure',
164
+ description: 'Excludes Rust futures infrastructure frames from the profile',
165
+ filters: [{
166
+ type: 'frame',
167
+ field: 'function_name',
168
+ matchType: 'not_starts_with',
169
+ value: 'future'
170
+ }, {
171
+ type: 'frame',
172
+ field: 'function_name',
173
+ matchType: 'not_starts_with',
174
+ value: '<future'
175
+ }, {
176
+ type: 'frame',
177
+ field: 'function_name',
178
+ matchType: 'not_contains',
179
+ value: 'futures_core'
180
+ }, {
181
+ type: 'frame',
182
+ field: 'function_name',
183
+ matchType: 'not_contains',
184
+ value: 'core::future::future::Future'
185
+ }, {
186
+ type: 'frame',
187
+ field: 'function_name',
188
+ matchType: 'not_starts_with',
189
+ value: 'poll'
190
+ }, {
191
+ type: 'frame',
192
+ field: 'function_name',
193
+ matchType: 'not_starts_with',
194
+ value: 'try_poll'
195
+ }, {
196
+ type: 'frame',
197
+ field: 'function_name',
198
+ matchType: 'not_starts_with',
199
+ value: '{closure#'
200
+ }, {
201
+ type: 'frame',
202
+ field: 'function_name',
203
+ matchType: 'not_starts_with',
204
+ value: '{async_block#'
205
+ }, {
206
+ type: 'frame',
207
+ field: 'function_name',
208
+ matchType: 'not_equal',
209
+ value: 'invoke'
210
+ }, {
211
+ type: 'frame',
212
+ field: 'function_name',
213
+ matchType: 'not_equal',
214
+ value: 'run'
215
+ }, {
216
+ type: 'frame',
217
+ field: 'function_name',
218
+ matchType: 'not_starts_with',
219
+ value: '{async_fn#'
220
+ }]
221
+ }, {
222
+ key: 'hide_rust_panic_backtrace',
223
+ name: 'Hide Rust Panic Backtrace Infrastructure',
224
+ description: 'Excludes Rust panic and backtrace infrastructure frames from the profile',
225
+ filters: [{
226
+ type: 'frame',
227
+ field: 'function_name',
228
+ matchType: 'not_starts_with',
229
+ value: 'std::panic'
230
+ }, {
231
+ type: 'frame',
232
+ field: 'function_name',
233
+ matchType: 'not_starts_with',
234
+ value: '<core::panic'
235
+ }, {
236
+ type: 'frame',
237
+ field: 'function_name',
238
+ matchType: 'not_starts_with',
239
+ value: 'std::sys::backtrace'
240
+ }, {
241
+ type: 'frame',
242
+ field: 'function_name',
243
+ matchType: 'not_starts_with',
244
+ value: 'catch_unwind<'
245
+ }, {
246
+ type: 'frame',
247
+ field: 'function_name',
248
+ matchType: 'not_starts_with',
249
+ value: 'call_once<'
250
+ }, {
251
+ type: 'frame',
252
+ field: 'function_name',
253
+ matchType: 'not_starts_with',
254
+ value: 'do_call<'
255
+ }]
256
+ }];
257
+ var presetKeys = new Set(filterPresets.map(function (preset) {
258
+ return preset.key;
259
+ }));
260
+ export var isPresetKey = function isPresetKey(key) {
261
+ return presetKeys.has(key);
317
262
  };
318
- export const getPresetByKey = (key) => {
319
- return filterPresets.find(preset => preset.key === key);
320
- };
321
- export const getPresetsForProfileType = (profileType) => {
322
- if (profileType === undefined || profileType === '')
323
- return filterPresets;
324
- return filterPresets.filter(preset => {
325
- if (preset.allowedProfileTypes === undefined)
326
- return true;
327
- return preset.allowedProfileTypes.includes(profileType);
328
- });
263
+ export var getPresetByKey = function getPresetByKey(key) {
264
+ return filterPresets.find(function (preset) {
265
+ return preset.key === key;
266
+ });
329
267
  };
268
+ export var getPresetsForProfileType = function getPresetsForProfileType(profileType) {
269
+ if (profileType === undefined || profileType === '') return filterPresets;
270
+ return filterPresets.filter(function (preset) {
271
+ if (preset.allowedProfileTypes === undefined) return true;
272
+ return preset.allowedProfileTypes.includes(profileType);
273
+ });
274
+ };