@parca/profile 0.19.139 → 0.19.142

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 (170) hide show
  1. package/CHANGELOG.md +8 -0
  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 +103 -73
  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.js +240 -49
  28. package/dist/ProfileExplorer/ProfileExplorerSingle.js +98 -11
  29. package/dist/ProfileExplorer/index.js +183 -32
  30. package/dist/ProfileFlameChart/SamplesStrips/SamplesGraph/index.js +333 -148
  31. package/dist/ProfileFlameChart/SamplesStrips/SamplesStrips.stories.js +69 -35
  32. package/dist/ProfileFlameChart/SamplesStrips/index.js +645 -134
  33. package/dist/ProfileFlameChart/SamplesStrips/labelSetUtils.js +114 -55
  34. package/dist/ProfileFlameChart/index.js +266 -134
  35. package/dist/ProfileFlameGraph/FlameGraphArrow/ContextMenu.js +287 -88
  36. package/dist/ProfileFlameGraph/FlameGraphArrow/ContextMenuWrapper.js +56 -20
  37. package/dist/ProfileFlameGraph/FlameGraphArrow/FlameGraphNodes.js +211 -140
  38. package/dist/ProfileFlameGraph/FlameGraphArrow/MemoizedTooltip.js +133 -38
  39. package/dist/ProfileFlameGraph/FlameGraphArrow/MiniMap.js +261 -216
  40. package/dist/ProfileFlameGraph/FlameGraphArrow/TextWithEllipsis.d.ts.map +1 -1
  41. package/dist/ProfileFlameGraph/FlameGraphArrow/TextWithEllipsis.js +71 -45
  42. package/dist/ProfileFlameGraph/FlameGraphArrow/TooltipContext.d.ts.map +1 -1
  43. package/dist/ProfileFlameGraph/FlameGraphArrow/TooltipContext.js +58 -28
  44. package/dist/ProfileFlameGraph/FlameGraphArrow/ZoomControls.d.ts.map +1 -1
  45. package/dist/ProfileFlameGraph/FlameGraphArrow/ZoomControls.js +59 -8
  46. package/dist/ProfileFlameGraph/FlameGraphArrow/index.js +396 -179
  47. package/dist/ProfileFlameGraph/FlameGraphArrow/useBatchedRendering.d.ts.map +1 -1
  48. package/dist/ProfileFlameGraph/FlameGraphArrow/useBatchedRendering.js +68 -50
  49. package/dist/ProfileFlameGraph/FlameGraphArrow/useMappingList.js +62 -38
  50. package/dist/ProfileFlameGraph/FlameGraphArrow/useNodeColor.js +14 -6
  51. package/dist/ProfileFlameGraph/FlameGraphArrow/useScrollViewport.js +124 -82
  52. package/dist/ProfileFlameGraph/FlameGraphArrow/useVisibleNodes.js +160 -98
  53. package/dist/ProfileFlameGraph/FlameGraphArrow/useZoom.js +232 -112
  54. package/dist/ProfileFlameGraph/FlameGraphArrow/utils.js +137 -114
  55. package/dist/ProfileFlameGraph/benchmarks/benchdata/populateData.js +85 -0
  56. package/dist/ProfileFlameGraph/index.js +324 -148
  57. package/dist/ProfileMetricsGraph/hooks/useQueryRange.js +140 -32
  58. package/dist/ProfileMetricsGraph/index.js +518 -259
  59. package/dist/ProfileSelector/CompareButton.js +132 -12
  60. package/dist/ProfileSelector/MetricsGraphSection.js +234 -67
  61. package/dist/ProfileSelector/index.d.ts.map +1 -1
  62. package/dist/ProfileSelector/index.js +730 -142
  63. package/dist/ProfileSelector/useAutoQuerySelector.js +249 -130
  64. package/dist/ProfileSource.js +230 -163
  65. package/dist/ProfileTypeSelector/index.js +214 -125
  66. package/dist/ProfileView/components/ActionButtons/GroupByDropdown.js +50 -4
  67. package/dist/ProfileView/components/ActionButtons/SortByDropdown.js +139 -33
  68. package/dist/ProfileView/components/ColorStackLegend.js +184 -55
  69. package/dist/ProfileView/components/DashboardItems/index.js +87 -28
  70. package/dist/ProfileView/components/DashboardLayout/index.js +108 -16
  71. package/dist/ProfileView/components/DiffLegend.js +172 -29
  72. package/dist/ProfileView/components/GroupByLabelsDropdown/index.js +199 -55
  73. package/dist/ProfileView/components/InvertCallStack/index.js +99 -10
  74. package/dist/ProfileView/components/ProfileFilters/filterPresets.js +260 -315
  75. package/dist/ProfileView/components/ProfileFilters/index.js +518 -215
  76. package/dist/ProfileView/components/ProfileFilters/useProfileFilters.js +370 -306
  77. package/dist/ProfileView/components/ProfileFilters/useProfileFiltersUrlState.js +188 -120
  78. package/dist/ProfileView/components/ProfileHeader/index.js +105 -11
  79. package/dist/ProfileView/components/ShareButton/ResultBox.js +119 -16
  80. package/dist/ProfileView/components/ShareButton/index.js +352 -62
  81. package/dist/ProfileView/components/Toolbars/MultiLevelDropdown.d.ts.map +1 -1
  82. package/dist/ProfileView/components/Toolbars/MultiLevelDropdown.js +675 -195
  83. package/dist/ProfileView/components/Toolbars/SwitchMenuItem.js +94 -7
  84. package/dist/ProfileView/components/Toolbars/TableColumnsDropdown.js +198 -157
  85. package/dist/ProfileView/components/Toolbars/index.js +441 -21
  86. package/dist/ProfileView/components/ViewSelector/Dropdown.js +233 -22
  87. package/dist/ProfileView/components/ViewSelector/index.js +211 -91
  88. package/dist/ProfileView/components/VisualizationContainer/index.d.ts.map +1 -1
  89. package/dist/ProfileView/components/VisualizationContainer/index.js +52 -7
  90. package/dist/ProfileView/components/VisualizationPanel.js +185 -8
  91. package/dist/ProfileView/context/DashboardContext.js +84 -28
  92. package/dist/ProfileView/context/ProfileViewContext.js +56 -15
  93. package/dist/ProfileView/hooks/useAutoSelectDimension.js +71 -41
  94. package/dist/ProfileView/hooks/useProfileMetadata.js +50 -18
  95. package/dist/ProfileView/hooks/useResetFlameGraphState.js +31 -10
  96. package/dist/ProfileView/hooks/useResetStateOnProfileTypeChange.js +72 -29
  97. package/dist/ProfileView/hooks/useResetStateOnSeriesChange.js +39 -13
  98. package/dist/ProfileView/hooks/useVisualizationState.js +262 -87
  99. package/dist/ProfileView/index.js +383 -45
  100. package/dist/ProfileView/types/visualization.js +1 -13
  101. package/dist/ProfileView/utils/colorUtils.js +8 -7
  102. package/dist/ProfileViewWithData.js +332 -237
  103. package/dist/QueryControls/index.js +418 -47
  104. package/dist/Sandwich/components/CalleesSection.js +54 -4
  105. package/dist/Sandwich/components/CallersSection.js +97 -27
  106. package/dist/Sandwich/components/TableSection.js +77 -4
  107. package/dist/Sandwich/index.js +125 -12
  108. package/dist/Sandwich/utils/processRowData.js +48 -39
  109. package/dist/SelectWithRefresh/index.js +102 -28
  110. package/dist/SimpleMatchers/Select.js +520 -187
  111. package/dist/SimpleMatchers/index.js +590 -288
  112. package/dist/SourceView/Highlighter.js +230 -70
  113. package/dist/SourceView/LineNo.js +72 -17
  114. package/dist/SourceView/index.js +177 -101
  115. package/dist/SourceView/lang-detector/ext-to-lang.json +798 -798
  116. package/dist/SourceView/lang-detector/index.js +28 -14
  117. package/dist/SourceView/useSelectedLineRange.js +97 -16
  118. package/dist/Table/ColorCell.js +42 -1
  119. package/dist/Table/ColumnsVisibility.js +114 -6
  120. package/dist/Table/MoreDropdown.js +121 -27
  121. package/dist/Table/TableContextMenu.js +150 -139
  122. package/dist/Table/TableContextMenuWrapper.js +59 -14
  123. package/dist/Table/hooks/useColorManagement.js +58 -16
  124. package/dist/Table/hooks/useTableConfiguration.d.ts.map +1 -1
  125. package/dist/Table/hooks/useTableConfiguration.js +331 -168
  126. package/dist/Table/index.js +222 -126
  127. package/dist/Table/utils/functions.js +169 -144
  128. package/dist/Table/utils/topAndBottomExpandedRowModel.js +69 -52
  129. package/dist/TimelineGuide/index.js +209 -16
  130. package/dist/TopTable/benchmarks/benchdata/populateData.js +91 -0
  131. package/dist/TopTable/index.js +340 -122
  132. package/dist/contexts/LabelsQueryProvider.js +94 -32
  133. package/dist/contexts/UnifiedLabelsContext.js +114 -49
  134. package/dist/contexts/utils.js +37 -15
  135. package/dist/hooks/useCompareModeMeta.js +157 -94
  136. package/dist/hooks/useLabels.js +295 -52
  137. package/dist/hooks/useQueryState.js +371 -330
  138. package/dist/index.js +21 -16
  139. package/dist/testdata/fg-diff.json +3750 -0
  140. package/dist/testdata/fg-simple.json +1879 -0
  141. package/dist/testdata/link_data.json +56 -0
  142. package/dist/testdata/tabular.json +30 -0
  143. package/dist/testdata/test_flamegraph.json +26846 -0
  144. package/dist/testdata/test_graph.json +53 -0
  145. package/dist/useDelayedLoader.js +32 -18
  146. package/dist/useGrpcQuery/index.js +71 -11
  147. package/dist/useHasProfileData.js +90 -12
  148. package/dist/useQuery.js +205 -64
  149. package/dist/useSumBy.d.ts.map +1 -1
  150. package/dist/useSumBy.js +294 -138
  151. package/dist/utils.js +62 -30
  152. package/package.json +9 -9
  153. package/src/GraphTooltipArrow/index.tsx +3 -0
  154. package/src/MatchersInput/SuggestionsList.test.tsx +70 -0
  155. package/src/MatchersInput/SuggestionsList.tsx +11 -10
  156. package/src/MatchersInput/index.tsx +1 -1
  157. package/src/MetricsGraph/MetricsTooltip/index.tsx +22 -34
  158. package/src/PreSelectedMatchers/index.tsx +3 -0
  159. package/src/ProfileFlameGraph/FlameGraphArrow/TextWithEllipsis.tsx +3 -0
  160. package/src/ProfileFlameGraph/FlameGraphArrow/TooltipContext.tsx +3 -0
  161. package/src/ProfileFlameGraph/FlameGraphArrow/ZoomControls.tsx +3 -0
  162. package/src/ProfileFlameGraph/FlameGraphArrow/useBatchedRendering.ts +3 -0
  163. package/src/ProfileSelector/index.tsx +30 -7
  164. package/src/ProfileView/components/Toolbars/MultiLevelDropdown.tsx +3 -0
  165. package/src/ProfileView/components/VisualizationContainer/index.tsx +3 -0
  166. package/src/Table/hooks/useTableConfiguration.tsx +7 -13
  167. package/src/useDelayedLoader.ts +10 -10
  168. package/src/useSumBy.ts +12 -18
  169. package/dist/ProfileView/components/ProfileFilters/useProfileFiltersUrlState.test.js +0 -541
  170. package/dist/hooks/useQueryState.test.js +0 -984
@@ -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
+ };