@parca/profile 0.19.140 → 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 (253) hide show
  1. package/CHANGELOG.md +5 -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.d.ts.map +1 -1
  9. package/dist/GraphTooltipArrow/useGraphTooltipMetaInfo/index.js +104 -72
  10. package/dist/MatchersInput/SuggestionItem.js +91 -12
  11. package/dist/MatchersInput/SuggestionsList.d.ts +2 -1
  12. package/dist/MatchersInput/SuggestionsList.d.ts.map +1 -1
  13. package/dist/MatchersInput/SuggestionsList.js +371 -157
  14. package/dist/MatchersInput/SuggestionsList.test.d.ts +2 -0
  15. package/dist/MatchersInput/SuggestionsList.test.d.ts.map +1 -0
  16. package/dist/MatchersInput/index.js +308 -115
  17. package/dist/MetricsCircle/index.js +39 -3
  18. package/dist/MetricsGraph/MetricsContextMenu/index.js +119 -19
  19. package/dist/MetricsGraph/MetricsInfoPanel/index.js +81 -20
  20. package/dist/MetricsGraph/MetricsTooltip/index.d.ts.map +1 -1
  21. package/dist/MetricsGraph/MetricsTooltip/index.js +107 -74
  22. package/dist/MetricsGraph/index.js +552 -203
  23. package/dist/MetricsGraph/useMetricsGraphDimensions.js +46 -25
  24. package/dist/MetricsGraph/utils/colorMapping.js +24 -17
  25. package/dist/MetricsSeries/index.js +70 -7
  26. package/dist/PreSelectedMatchers/index.d.ts.map +1 -1
  27. package/dist/PreSelectedMatchers/index.js +249 -102
  28. package/dist/ProfileExplorer/ProfileExplorerCompare.d.ts.map +1 -1
  29. package/dist/ProfileExplorer/ProfileExplorerCompare.js +241 -45
  30. package/dist/ProfileExplorer/ProfileExplorerSingle.js +98 -11
  31. package/dist/ProfileExplorer/index.js +183 -32
  32. package/dist/ProfileFlameChart/SamplesStrips/SamplesGraph/index.js +333 -148
  33. package/dist/ProfileFlameChart/SamplesStrips/SamplesStrips.stories.js +69 -35
  34. package/dist/ProfileFlameChart/SamplesStrips/index.d.ts +2 -2
  35. package/dist/ProfileFlameChart/SamplesStrips/index.d.ts.map +1 -1
  36. package/dist/ProfileFlameChart/SamplesStrips/index.js +645 -134
  37. package/dist/ProfileFlameChart/SamplesStrips/labelSetUtils.js +114 -55
  38. package/dist/ProfileFlameChart/index.d.ts.map +1 -1
  39. package/dist/ProfileFlameChart/index.js +267 -129
  40. package/dist/ProfileFlameGraph/FlameGraphArrow/ContextMenu.d.ts.map +1 -1
  41. package/dist/ProfileFlameGraph/FlameGraphArrow/ContextMenu.js +288 -89
  42. package/dist/ProfileFlameGraph/FlameGraphArrow/ContextMenuWrapper.js +56 -20
  43. package/dist/ProfileFlameGraph/FlameGraphArrow/FlameGraphNodes.js +211 -140
  44. package/dist/ProfileFlameGraph/FlameGraphArrow/MemoizedTooltip.js +133 -38
  45. package/dist/ProfileFlameGraph/FlameGraphArrow/MiniMap.js +261 -216
  46. package/dist/ProfileFlameGraph/FlameGraphArrow/TextWithEllipsis.d.ts.map +1 -1
  47. package/dist/ProfileFlameGraph/FlameGraphArrow/TextWithEllipsis.js +72 -47
  48. package/dist/ProfileFlameGraph/FlameGraphArrow/TooltipContext.d.ts.map +1 -1
  49. package/dist/ProfileFlameGraph/FlameGraphArrow/TooltipContext.js +58 -28
  50. package/dist/ProfileFlameGraph/FlameGraphArrow/ZoomControls.d.ts.map +1 -1
  51. package/dist/ProfileFlameGraph/FlameGraphArrow/ZoomControls.js +59 -8
  52. package/dist/ProfileFlameGraph/FlameGraphArrow/index.js +396 -179
  53. package/dist/ProfileFlameGraph/FlameGraphArrow/useBatchedRendering.d.ts.map +1 -1
  54. package/dist/ProfileFlameGraph/FlameGraphArrow/useBatchedRendering.js +68 -50
  55. package/dist/ProfileFlameGraph/FlameGraphArrow/useMappingList.js +62 -38
  56. package/dist/ProfileFlameGraph/FlameGraphArrow/useNodeColor.js +14 -6
  57. package/dist/ProfileFlameGraph/FlameGraphArrow/useScrollViewport.js +124 -82
  58. package/dist/ProfileFlameGraph/FlameGraphArrow/useVisibleNodes.js +160 -98
  59. package/dist/ProfileFlameGraph/FlameGraphArrow/useZoom.js +232 -112
  60. package/dist/ProfileFlameGraph/FlameGraphArrow/utils.js +137 -114
  61. package/dist/ProfileFlameGraph/benchmarks/benchdata/populateData.js +85 -0
  62. package/dist/ProfileFlameGraph/index.d.ts.map +1 -1
  63. package/dist/ProfileFlameGraph/index.js +324 -150
  64. package/dist/ProfileMetricsGraph/hooks/useQueryRange.js +140 -32
  65. package/dist/ProfileMetricsGraph/index.d.ts.map +1 -1
  66. package/dist/ProfileMetricsGraph/index.js +519 -258
  67. package/dist/ProfileSelector/CompareButton.js +132 -12
  68. package/dist/ProfileSelector/MetricsGraphSection.d.ts.map +1 -1
  69. package/dist/ProfileSelector/MetricsGraphSection.js +236 -64
  70. package/dist/ProfileSelector/index.d.ts.map +1 -1
  71. package/dist/ProfileSelector/index.js +727 -141
  72. package/dist/ProfileSelector/useAutoQuerySelector.js +249 -130
  73. package/dist/ProfileSource.js +230 -163
  74. package/dist/ProfileTypeSelector/index.js +214 -125
  75. package/dist/ProfileView/components/ActionButtons/GroupByDropdown.js +50 -4
  76. package/dist/ProfileView/components/ActionButtons/SortByDropdown.d.ts.map +1 -1
  77. package/dist/ProfileView/components/ActionButtons/SortByDropdown.js +141 -35
  78. package/dist/ProfileView/components/ColorStackLegend.d.ts.map +1 -1
  79. package/dist/ProfileView/components/ColorStackLegend.js +185 -55
  80. package/dist/ProfileView/components/DashboardItems/index.js +87 -28
  81. package/dist/ProfileView/components/DashboardLayout/index.js +108 -16
  82. package/dist/ProfileView/components/DiffLegend.js +172 -29
  83. package/dist/ProfileView/components/GroupByLabelsDropdown/index.js +199 -55
  84. package/dist/ProfileView/components/InvertCallStack/index.d.ts.map +1 -1
  85. package/dist/ProfileView/components/InvertCallStack/index.js +100 -12
  86. package/dist/ProfileView/components/ProfileFilters/filterPresets.js +260 -315
  87. package/dist/ProfileView/components/ProfileFilters/index.js +518 -215
  88. package/dist/ProfileView/components/ProfileFilters/useProfileFilters.js +370 -306
  89. package/dist/ProfileView/components/ProfileFilters/useProfileFiltersUrlState.d.ts +2 -1
  90. package/dist/ProfileView/components/ProfileFilters/useProfileFiltersUrlState.d.ts.map +1 -1
  91. package/dist/ProfileView/components/ProfileFilters/useProfileFiltersUrlState.js +188 -118
  92. package/dist/ProfileView/components/ProfileHeader/index.js +105 -11
  93. package/dist/ProfileView/components/ShareButton/ResultBox.js +119 -16
  94. package/dist/ProfileView/components/ShareButton/index.js +352 -62
  95. package/dist/ProfileView/components/Toolbars/MultiLevelDropdown.d.ts.map +1 -1
  96. package/dist/ProfileView/components/Toolbars/MultiLevelDropdown.js +678 -194
  97. package/dist/ProfileView/components/Toolbars/SwitchMenuItem.js +94 -7
  98. package/dist/ProfileView/components/Toolbars/TableColumnsDropdown.d.ts.map +1 -1
  99. package/dist/ProfileView/components/Toolbars/TableColumnsDropdown.js +199 -157
  100. package/dist/ProfileView/components/Toolbars/index.d.ts +2 -2
  101. package/dist/ProfileView/components/Toolbars/index.d.ts.map +1 -1
  102. package/dist/ProfileView/components/Toolbars/index.js +441 -21
  103. package/dist/ProfileView/components/ViewSelector/Dropdown.js +233 -22
  104. package/dist/ProfileView/components/ViewSelector/index.d.ts.map +1 -1
  105. package/dist/ProfileView/components/ViewSelector/index.js +212 -86
  106. package/dist/ProfileView/components/VisualizationContainer/index.d.ts.map +1 -1
  107. package/dist/ProfileView/components/VisualizationContainer/index.js +52 -7
  108. package/dist/ProfileView/components/VisualizationPanel.js +185 -8
  109. package/dist/ProfileView/context/DashboardContext.d.ts.map +1 -1
  110. package/dist/ProfileView/context/DashboardContext.js +85 -29
  111. package/dist/ProfileView/context/ProfileViewContext.js +56 -15
  112. package/dist/ProfileView/hooks/useAutoSelectDimension.js +71 -41
  113. package/dist/ProfileView/hooks/useProfileMetadata.js +50 -18
  114. package/dist/ProfileView/hooks/useResetFlameGraphState.d.ts.map +1 -1
  115. package/dist/ProfileView/hooks/useResetFlameGraphState.js +32 -12
  116. package/dist/ProfileView/hooks/useResetStateOnProfileTypeChange.d.ts.map +1 -1
  117. package/dist/ProfileView/hooks/useResetStateOnProfileTypeChange.js +71 -27
  118. package/dist/ProfileView/hooks/useResetStateOnSeriesChange.d.ts.map +1 -1
  119. package/dist/ProfileView/hooks/useResetStateOnSeriesChange.js +40 -19
  120. package/dist/ProfileView/hooks/useVisualizationState.d.ts +3 -3
  121. package/dist/ProfileView/hooks/useVisualizationState.d.ts.map +1 -1
  122. package/dist/ProfileView/hooks/useVisualizationState.js +258 -67
  123. package/dist/ProfileView/index.js +383 -45
  124. package/dist/ProfileView/types/visualization.js +1 -13
  125. package/dist/ProfileView/utils/colorUtils.js +8 -7
  126. package/dist/ProfileViewWithData.d.ts.map +1 -1
  127. package/dist/ProfileViewWithData.js +332 -228
  128. package/dist/QueryControls/index.js +418 -47
  129. package/dist/Sandwich/components/CalleesSection.js +54 -4
  130. package/dist/Sandwich/components/CallersSection.js +97 -27
  131. package/dist/Sandwich/components/TableSection.js +77 -4
  132. package/dist/Sandwich/index.d.ts.map +1 -1
  133. package/dist/Sandwich/index.js +126 -14
  134. package/dist/Sandwich/utils/processRowData.js +48 -39
  135. package/dist/SelectWithRefresh/index.js +102 -28
  136. package/dist/SimpleMatchers/Select.js +520 -187
  137. package/dist/SimpleMatchers/index.js +590 -288
  138. package/dist/SourceView/Highlighter.js +230 -70
  139. package/dist/SourceView/LineNo.js +72 -17
  140. package/dist/SourceView/index.d.ts.map +1 -1
  141. package/dist/SourceView/index.js +178 -104
  142. package/dist/SourceView/lang-detector/ext-to-lang.json +798 -798
  143. package/dist/SourceView/lang-detector/index.js +28 -14
  144. package/dist/SourceView/useSelectedLineRange.d.ts.map +1 -1
  145. package/dist/SourceView/useSelectedLineRange.js +99 -23
  146. package/dist/Table/ColorCell.js +42 -1
  147. package/dist/Table/ColumnsVisibility.js +114 -6
  148. package/dist/Table/MoreDropdown.d.ts.map +1 -1
  149. package/dist/Table/MoreDropdown.js +122 -25
  150. package/dist/Table/TableContextMenu.d.ts.map +1 -1
  151. package/dist/Table/TableContextMenu.js +151 -137
  152. package/dist/Table/TableContextMenuWrapper.js +59 -14
  153. package/dist/Table/hooks/useColorManagement.js +58 -16
  154. package/dist/Table/hooks/useTableConfiguration.d.ts.map +1 -1
  155. package/dist/Table/hooks/useTableConfiguration.js +333 -169
  156. package/dist/Table/index.d.ts.map +1 -1
  157. package/dist/Table/index.js +222 -128
  158. package/dist/Table/utils/functions.js +169 -144
  159. package/dist/Table/utils/topAndBottomExpandedRowModel.js +69 -52
  160. package/dist/TimelineGuide/index.js +209 -16
  161. package/dist/TopTable/benchmarks/benchdata/populateData.js +91 -0
  162. package/dist/TopTable/index.d.ts.map +1 -1
  163. package/dist/TopTable/index.js +342 -123
  164. package/dist/contexts/LabelsQueryProvider.js +94 -32
  165. package/dist/contexts/UnifiedLabelsContext.js +114 -49
  166. package/dist/contexts/utils.js +37 -15
  167. package/dist/hooks/useCompareModeMeta.d.ts.map +1 -1
  168. package/dist/hooks/useCompareModeMeta.js +158 -64
  169. package/dist/hooks/useLabels.js +295 -52
  170. package/dist/hooks/useQueryState.d.ts +3 -3
  171. package/dist/hooks/useQueryState.d.ts.map +1 -1
  172. package/dist/hooks/useQueryState.js +373 -332
  173. package/dist/index.d.ts +2 -3
  174. package/dist/index.d.ts.map +1 -1
  175. package/dist/index.js +22 -8
  176. package/dist/testdata/fg-diff.json +3750 -0
  177. package/dist/testdata/fg-simple.json +1879 -0
  178. package/dist/testdata/link_data.json +56 -0
  179. package/dist/testdata/tabular.json +30 -0
  180. package/dist/testdata/test_flamegraph.json +26846 -0
  181. package/dist/testdata/test_graph.json +53 -0
  182. package/dist/useDelayedLoader.js +32 -18
  183. package/dist/useGrpcQuery/index.js +71 -11
  184. package/dist/useHasProfileData.js +90 -12
  185. package/dist/useQuery.js +205 -64
  186. package/dist/useSumBy.d.ts +1 -1
  187. package/dist/useSumBy.d.ts.map +1 -1
  188. package/dist/useSumBy.js +294 -138
  189. package/dist/utils.js +62 -30
  190. package/package.json +9 -10
  191. package/src/GraphTooltipArrow/index.tsx +3 -0
  192. package/src/GraphTooltipArrow/useGraphTooltipMetaInfo/index.ts +13 -11
  193. package/src/MatchersInput/SuggestionsList.test.tsx +70 -0
  194. package/src/MatchersInput/SuggestionsList.tsx +11 -10
  195. package/src/MatchersInput/index.tsx +1 -1
  196. package/src/MetricsGraph/MetricsTooltip/index.tsx +22 -34
  197. package/src/PreSelectedMatchers/index.tsx +3 -0
  198. package/src/ProfileExplorer/ProfileExplorerCompare.tsx +9 -4
  199. package/src/ProfileFlameChart/SamplesStrips/index.tsx +2 -2
  200. package/src/ProfileFlameChart/index.tsx +28 -21
  201. package/src/ProfileFlameGraph/FlameGraphArrow/ContextMenu.tsx +9 -10
  202. package/src/ProfileFlameGraph/FlameGraphArrow/TextWithEllipsis.tsx +6 -5
  203. package/src/ProfileFlameGraph/FlameGraphArrow/TooltipContext.tsx +3 -0
  204. package/src/ProfileFlameGraph/FlameGraphArrow/ZoomControls.tsx +3 -0
  205. package/src/ProfileFlameGraph/FlameGraphArrow/useBatchedRendering.ts +3 -0
  206. package/src/ProfileFlameGraph/index.tsx +9 -6
  207. package/src/ProfileMetricsGraph/index.tsx +8 -6
  208. package/src/ProfileSelector/MetricsGraphSection.tsx +10 -5
  209. package/src/ProfileSelector/index.tsx +61 -39
  210. package/src/ProfileView/components/ActionButtons/SortByDropdown.tsx +6 -10
  211. package/src/ProfileView/components/ColorStackLegend.tsx +4 -2
  212. package/src/ProfileView/components/InvertCallStack/index.tsx +4 -5
  213. package/src/ProfileView/components/ProfileFilters/useProfileFiltersUrlState.test.tsx +192 -94
  214. package/src/ProfileView/components/ProfileFilters/useProfileFiltersUrlState.ts +21 -21
  215. package/src/ProfileView/components/Toolbars/MultiLevelDropdown.tsx +28 -24
  216. package/src/ProfileView/components/Toolbars/TableColumnsDropdown.tsx +5 -4
  217. package/src/ProfileView/components/Toolbars/index.tsx +3 -3
  218. package/src/ProfileView/components/ViewSelector/index.tsx +16 -9
  219. package/src/ProfileView/components/VisualizationContainer/index.tsx +3 -0
  220. package/src/ProfileView/context/DashboardContext.tsx +6 -6
  221. package/src/ProfileView/hooks/useResetFlameGraphState.ts +4 -6
  222. package/src/ProfileView/hooks/useResetStateOnProfileTypeChange.ts +26 -24
  223. package/src/ProfileView/hooks/useResetStateOnSeriesChange.ts +8 -16
  224. package/src/ProfileView/hooks/useVisualizationState.ts +69 -61
  225. package/src/ProfileViewWithData.tsx +35 -29
  226. package/src/Sandwich/index.tsx +3 -4
  227. package/src/SourceView/index.tsx +2 -4
  228. package/src/SourceView/useSelectedLineRange.ts +19 -34
  229. package/src/Table/MoreDropdown.tsx +11 -9
  230. package/src/Table/TableContextMenu.tsx +13 -10
  231. package/src/Table/hooks/useTableConfiguration.tsx +11 -16
  232. package/src/Table/index.tsx +21 -12
  233. package/src/TopTable/index.tsx +4 -3
  234. package/src/hooks/useCompareModeMeta.ts +91 -61
  235. package/src/hooks/useQueryState.test.tsx +345 -275
  236. package/src/hooks/useQueryState.ts +118 -136
  237. package/src/index.tsx +15 -16
  238. package/src/useDelayedLoader.ts +10 -10
  239. package/src/useSumBy.ts +15 -21
  240. package/dist/ProfileView/components/ProfileFilters/useProfileFiltersUrlState.test.js +0 -455
  241. package/dist/hooks/urlParsers.d.ts +0 -18
  242. package/dist/hooks/urlParsers.d.ts.map +0 -1
  243. package/dist/hooks/urlParsers.js +0 -32
  244. package/dist/hooks/useColorBy.d.ts +0 -5
  245. package/dist/hooks/useColorBy.d.ts.map +0 -1
  246. package/dist/hooks/useColorBy.js +0 -26
  247. package/dist/hooks/useDashboardItems.d.ts +0 -5
  248. package/dist/hooks/useDashboardItems.d.ts.map +0 -1
  249. package/dist/hooks/useDashboardItems.js +0 -27
  250. package/dist/hooks/useQueryState.test.js +0 -868
  251. package/src/hooks/urlParsers.ts +0 -38
  252. package/src/hooks/useColorBy.ts +0 -42
  253. package/src/hooks/useDashboardItems.ts +0 -46
@@ -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
+ };