diff --git a/.betterer.results b/.betterer.results index 051b248f9299d..11c1a73c70b45 100644 --- a/.betterer.results +++ b/.betterer.results @@ -689,11 +689,6 @@ exports[`better eslint`] = { [0, 0, 0, "Styles should be written using objects.", "2"], [0, 0, 0, "Styles should be written using objects.", "3"] ], - "packages/grafana-plugin-configs/webpack.config.ts:5381": [ - [0, 0, 0, "Unexpected any. Specify a different type.", "0"], - [0, 0, 0, "Unexpected any. Specify a different type.", "1"], - [0, 0, 0, "Unexpected any. Specify a different type.", "2"] - ], "packages/grafana-runtime/src/analytics/types.ts:5381": [ [0, 0, 0, "Unexpected any. Specify a different type.", "0"] ], diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index b7e4f1e67d122..0254d2f3c8c25 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -38,7 +38,7 @@ # Documentation sources might have different owners. /docs/ @grafana/docs-tooling /docs/sources/ @Eve832 -/docs/sources/administration/ @Eve832 @GrafanaWriter +/docs/sources/administration/ @jdbaldry /docs/sources/alerting/ @brendamuir /docs/sources/dashboards/ @imatwawana /docs/sources/datasources/ @lwandz13 @@ -329,6 +329,7 @@ /packages/grafana-schema/src/**/*tempo* @grafana/observability-traces-and-profiling /packages/grafana-flamegraph/ @grafana/observability-traces-and-profiling /plugins-bundled/ @grafana/plugins-platform-frontend +/packages/grafana-plugin-configs/ @grafana/plugins-platform-frontend # root files, mostly frontend diff --git a/.github/commands.json b/.github/commands.json index cb2f6fb072719..f61aedbe4090a 100644 --- a/.github/commands.json +++ b/.github/commands.json @@ -442,5 +442,13 @@ "addToProject": { "url": "https://github.com/orgs/grafana/projects/72" } + }, + { + "type": "label", + "name": "grafana program", + "action": "addToProject", + "addToProject": { + "url": "https://github.com/orgs/grafana/projects/471" + } } ] diff --git a/.yarn/patches/history-npm-4.10.1-ee217563ae.patch b/.yarn/patches/history-npm-4.10.1-ee217563ae.patch new file mode 100644 index 0000000000000..6cd9f7f4b422c --- /dev/null +++ b/.yarn/patches/history-npm-4.10.1-ee217563ae.patch @@ -0,0 +1,63 @@ +diff --git a/cjs/history.js b/cjs/history.js +index fcd8ebab613c6d87b9ac824feb30ab1080cf0ef2..4df20d5cb2f9ba5fc8777899aada53f49399560b 100644 +--- a/cjs/history.js ++++ b/cjs/history.js +@@ -103,16 +103,6 @@ function createLocation(path, state, key, currentLocation) { + if (state !== undefined && location.state === undefined) location.state = state; + } + +- try { +- location.pathname = decodeURI(location.pathname); +- } catch (e) { +- if (e instanceof URIError) { +- throw new URIError('Pathname "' + location.pathname + '" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.'); +- } else { +- throw e; +- } +- } +- + if (key) location.key = key; + + if (currentLocation) { +diff --git a/esm/history.js b/esm/history.js +index df67820fe3eed558c44fca07a82b0cd409d46720..e0e0d4f69a407e8de782b3fdf8297d42708e110a 100644 +--- a/esm/history.js ++++ b/esm/history.js +@@ -80,16 +80,6 @@ function createLocation(path, state, key, currentLocation) { + if (state !== undefined && location.state === undefined) location.state = state; + } + +- try { +- location.pathname = decodeURI(location.pathname); +- } catch (e) { +- if (e instanceof URIError) { +- throw new URIError('Pathname "' + location.pathname + '" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.'); +- } else { +- throw e; +- } +- } +- + if (key) location.key = key; + + if (currentLocation) { +diff --git a/umd/history.js b/umd/history.js +index 80e4ff66c44a2a71d4f842cc05a252e48dd18e9a..f8f4901be95e48c66f5626fbf051747a2ffbe41d 100644 +--- a/umd/history.js ++++ b/umd/history.js +@@ -207,16 +207,6 @@ + if (state !== undefined && location.state === undefined) location.state = state; + } + +- try { +- location.pathname = decodeURI(location.pathname); +- } catch (e) { +- if (e instanceof URIError) { +- throw new URIError('Pathname "' + location.pathname + '" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.'); +- } else { +- throw e; +- } +- } +- + if (key) location.key = key; + + if (currentLocation) { diff --git a/CHANGELOG.md b/CHANGELOG.md index d7510830bfc0e..a1f8c8919eae8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -921,7 +921,7 @@ Issue [#67014](https://github.com/grafana/grafana/issues/67014) Grafana requires an Elasticsearch version of 7.16 or newer. If you use an older Elasticsearch version, you will get warnings in the query editor and on the datasource configuration page. Issue [#66928](https://github.com/grafana/grafana/issues/66928) -The deprecated `plugin:create` and `component:create` commands in the Grafana Toolkit have been removed in this release. The replacement `create-plugin` tool is recommended for [scaffolding new plugins](https://grafana.github.io/plugin-tools/docs/getting-started/creating-a-plugin) and a migration guide for moving from the toolkit is available [here](https://grafana.github.io/plugin-tools/docs/getting-started/migrating-from-toolkit). Issue [#66729](https://github.com/grafana/grafana/issues/66729) +The deprecated `plugin:create` and `component:create` commands in the Grafana Toolkit have been removed in this release. The replacement `create-plugin` tool is recommended for [scaffolding new plugins](https://grafana.com/developers/plugin-tools/) and a migration guide for moving from the toolkit is available [here](https://grafana.com/developers/plugin-tools/migration-guides/migrate-from-toolkit). Issue [#66729](https://github.com/grafana/grafana/issues/66729) We've removed some now unused properties from the `NavModel` interface. Issue [#66548](https://github.com/grafana/grafana/issues/66548) diff --git a/devenv/README.md b/devenv/README.md index b8cbc39c8e92b..a07506e25169c 100644 --- a/devenv/README.md +++ b/devenv/README.md @@ -13,10 +13,16 @@ Grafana uses [Docker](https://docker.com) to make the task of setting up databas ## Developer dashboards and data sources +To setup developer dashboards and data sources ```bash ./setup.sh ``` +To remove the setup developer dashboards and data sources +```bash +./setup.sh undev +``` + After restarting the Grafana server, there should be a number of data sources named `gdev-` provisioned as well as a dashboard folder named `gdev dashboards`. This folder contains dashboard and panel features tests dashboards. diff --git a/devenv/setup.sh b/devenv/setup.sh index 7f6c2c91bcfd6..906f160182788 100755 --- a/devenv/setup.sh +++ b/devenv/setup.sh @@ -59,6 +59,31 @@ devDatasources() { ln -s -f ../../../devenv/datasources.yaml ../conf/provisioning/datasources/dev.yaml } +undev() { + echo -e "\xE2\x9C\x94 Reverting all dev provisioning" + + # Removing generated dashboard files from bulk-dashboards + rm -f bulk-dashboards/dashboard*.json + echo -e " \xE2\x9C\x94 Reverting bulk-dashboards provisioning" + + # Removing generated folders from bulk-folders + rm -rf bulk-folders/Bulk\ Folder* + echo -e " \xE2\x9C\x94 Reverting bulk-folders provisioning" + + + # Removing generated dashboard and datasource files from bulk-alerting-dashboards + rm -f bulk_alerting_dashboards/alerting_dashboard*.json + rm -f "bulk_alerting_dashboards/bulk_alerting_datasources.yaml" + echo -e " \xE2\x9C\x94 Reverting bulk-alerting-dashboards provisioning" + + # Removing the symlinks + rm -f ../conf/provisioning/dashboards/custom.yaml + rm -f ../conf/provisioning/dashboards/bulk-folders.yaml + rm -f ../conf/provisioning/dashboards/dev.yaml + rm -f ../conf/provisioning/datasources/custom.yaml + rm -f ../conf/provisioning/datasources/dev.yaml +} + usage() { echo -e "\n" echo "Usage:" @@ -67,6 +92,7 @@ usage() { echo " bulk-folders [folders] [dashboards] - provision many folders with dashboards" echo " bulk-folders - provision 200 folders with 3 dashboards in each" echo " no args - provision core datasources and dev dashboards" + echo " undev - removes any provisioning done by the setup.sh" } main() { @@ -84,6 +110,8 @@ main() { bulkDashboard elif [[ $cmd == "bulk-folders" ]]; then bulkFolders "$arg1" + elif [[ $cmd == "undev" ]]; then + undev else devDashboards devDatasources diff --git a/docs/sources/administration/correlations/_index.md b/docs/sources/administration/correlations/_index.md index 243bf1b0d6be1..5bed6c17eeb94 100644 --- a/docs/sources/administration/correlations/_index.md +++ b/docs/sources/administration/correlations/_index.md @@ -14,25 +14,30 @@ weight: 900 You can create interactive links for Explore visualizations to run queries related to presented data by setting up Correlations. -A correlation defines how data in one [data source]({{< relref "/docs/grafana/latest/datasources/" >}}) is used to query data in another data source. Some examples: +A correlation defines how data in one [data source]({{< relref "../../datasources" >}}) is used to query data in another data source. +Some examples: - an application name returned in a logs data source can be used to query metrics related to that application in a metrics data source, or - a user name returned by an SQL data source can be used to query logs related to that particular user in a logs data source -[Explore]({{< relref "/docs/grafana/latest/explore/" >}}) takes user-defined correlations to display links inside the visualizations. You can click on a link to run the related query and see results in [Explore Split View]({{< relref "/docs/grafana/latest/explore/#split-and-compare" >}}). +[Explore]({{< relref "../../explore" >}}) takes user-defined correlations to display links inside the visualizations. +You can click on a link to run the related query and see results in [Explore Split View]({{< relref "../../explore#split-and-compare" >}}). Explore visualizations that currently support showing links based on correlations: - [Logs Panel]({{< relref "./use-correlations-in-visualizations#correlations-in-logs-panel">}}) - [Table]({{< relref "./use-correlations-in-visualizations#correlations-in-table">}}) -You can configure correlations using [Administration > Correlation page]({{< relref "/docs/grafana/latest/administration/" >}}) or with [provisioning]({{< relref "/docs/grafana/latest/administration/provisioning" >}}). +You can configure correlations using the **Administration > Correlation** page in Grafana or with [provisioning]({{< relref "../provisioning" >}}). -> **Note:** Correlations are available in Grafana 10.0+ as an opt-in beta feature. Modify Grafana [configuration file]({{< relref "/docs/grafana/latest/setup-grafana/configure-grafana/#configuration-file-location" >}}) to enable the `correlations` [feature toggle]({{< relref "/docs/grafana/latest/setup-grafana/configure-grafana/#feature_toggles" >}}) to use it. +{{% admonition type="note" %}} +Correlations are available in Grafana 10.0+ as an opt-in beta feature. +Modify the Grafana [configuration file]({{< relref "../../setup-grafana/configure-grafana#configuration-file-location" >}}) to enable the `correlations` [feature toggle]({{< relref "../../setup-grafana/configure-grafana#feature_toggles" >}}) to use it. +{{% /admonition %}} ## Example of how links work in Explore once set up -{{< figure src="/static/img/docs/correlations/correlations-in-explore-10-0.gif" caption="Correlations links in Explore" >}} +{{< figure src="/static/img/docs/correlations/correlations-in-explore-10-0.gif" alt="Demonstration of following a correlation link in Grafana Explore" caption="Correlations links in Explore" >}} See also: diff --git a/docs/sources/administration/correlations/add-permissions-to-create-new-correlations/index.md b/docs/sources/administration/correlations/add-permissions-to-create-new-correlations/index.md index 43793597dfe54..6d12a77921932 100644 --- a/docs/sources/administration/correlations/add-permissions-to-create-new-correlations/index.md +++ b/docs/sources/administration/correlations/add-permissions-to-create-new-correlations/index.md @@ -12,7 +12,7 @@ weight: 30 ## Before you begin -Adding access to create correlations for [Viewers and Editors]({{< relref "/docs/grafana/latest/administration/roles-and-permissions/" >}}) is available with [Role-based access control]({{< relref "/docs/grafana/latest/administration/roles-and-permissions/access-control/" >}}). +Adding access to create correlations for [Viewers and Editors]({{< relref "../../../administration/roles-and-permissions" >}}) is available with [Role-based access control]({{< relref "../../../administration/roles-and-permissions/access-control" >}}). ## Add permissions to create correlations diff --git a/docs/sources/administration/correlations/correlation-configuration/index.md b/docs/sources/administration/correlations/correlation-configuration/index.md index 4c63080b65e7b..56c21d89bc008 100644 --- a/docs/sources/administration/correlations/correlation-configuration/index.md +++ b/docs/sources/administration/correlations/correlation-configuration/index.md @@ -33,7 +33,9 @@ Learn how to create correlations using the [Administration page]({{< relref "./c ## Source data source and result field -Links are shown in Explore visualizations for the results from the correlation’s source data source. A link is assigned to one of the fields from the result provided in the correlation configuration (the results field). Each visualization displays fields with links in a different way ([Correlations in Logs Panel]({{< relref "./use-correlations-in-visualizations#correlations-in-logs-panel">}}) and see [Correlations in Table]({{< relref "./use-correlations-in-visualizations#correlations-in-table">}})) +Links are shown in Explore visualizations for the results from the correlation’s source data source. +A link is assigned to one of the fields from the result provided in the correlation configuration (the results field). +Each visualization displays fields with links in a different way ([Correlations in Logs Panel]({{< relref "./use-correlations-in-visualizations#correlations-in-logs-panel">}}) and see [Correlations in Table]({{< relref "./use-correlations-in-visualizations#correlations-in-table">}})). ## Target query @@ -41,9 +43,11 @@ The target query is run when a link is clicked in the visualization. You can use ### Correlation Variables -You can use variables inside the target query to access the source data related to the query. Correlations use [Grafana variable syntax]({{< relref "/docs/grafana/latest/dashboards/variables/variable-syntax" >}}). Variables are filled with values from the source results when the link is clicked. There are two types of variables you can use: +You can use variables inside the target query to access the source data related to the query. +Correlations use [Grafana variable syntax]({{< relref "../../../dashboards/variables/variable-syntax" >}}). +Variables are filled with values from the source results when the link is clicked. There are two types of variables you can use: -- [field variables]({{< relref "/docs/grafana/latest/panels-visualizations/configure-data-links#field-variables" >}}) (allows to access field values and labels) +- [field variables]({{< relref "../../../panels-visualizations/configure-data-links#field-variables" >}}) (allows to access field values and labels) - correlation variables (allows to access field values and transformations) Example: If source results contain a field called “employee”, the value of the field can be accessed with: diff --git a/docs/sources/administration/correlations/correlation-permissions/index.md b/docs/sources/administration/correlations/correlation-permissions/index.md index 0ad1e2fb4cb68..ee228d844fa74 100644 --- a/docs/sources/administration/correlations/correlation-permissions/index.md +++ b/docs/sources/administration/correlations/correlation-permissions/index.md @@ -9,11 +9,11 @@ weight: 20 # Permissions -Users with [Viewer base role]({{< relref "/docs/grafana/latest/administration/roles-and-permissions/" >}}) or with [datasources:query RBAC role]({{< relref "/docs/grafana/latest/administration/roles-and-permissions/access-control/" >}}) can: +Users with [Viewer base role]({{< relref "../../../administration/roles-and-permissions" >}}) or with [datasources:query RBAC role]({{< relref "../../../administration/roles-and-permissions/access-control" >}}) can: -- Use correlations in Explore’s visualizations -- List all available correlations in read-only mode +- Use correlations in Explore’s visualizations. +- List all available correlations in read-only mode. -Users with [Admin base role]({{< relref "/docs/grafana/latest/administration/roles-and-permissions/" >}}) or with [datasources:write RBAC role]({{< relref "/docs/grafana/latest/administration/roles-and-permissions/access-control/" >}}) can: +Users with [Admin base role]({{< relref "../../../administration/roles-and-permissions" >}}) or with [datasources:write RBAC role]({{< relref "../../../administration/roles-and-permissions/access-control" >}}) can: -- Add, edit and delete correlations +- Add, edit and delete correlations. diff --git a/docs/sources/administration/correlations/create-a-new-correlation/index.md b/docs/sources/administration/correlations/create-a-new-correlation/index.md index c8f389f3dbf6f..b458c59830e4b 100644 --- a/docs/sources/administration/correlations/create-a-new-correlation/index.md +++ b/docs/sources/administration/correlations/create-a-new-correlation/index.md @@ -16,21 +16,21 @@ Make sure you have permission to add new correlations. Only users with write per ## Create a correlation in Explore's Correlations Editor 1. Go to Explore page. -1. Select a data source that you would like to be [the source data source]({{< relref "/docs/grafana/latest/administration/correlations/correlation-configuration#source-data-source-and-result-field" >}}) for a new correlation. -1. Run a query producing data in [a supported visualization]({{< relref "/docs/grafana/latest/administration/correlations/#correlations" >}}). -1. Click "+ Add" button in the top toolbar and select "Add correlation" (you can also select "Correlations Editor" from the [Command Palette]({{< relref "/docs/grafana/latest/search/#command-palette" >}})). +1. Select a data source that you would like to be [the source data source]({{< relref "../../../administration/correlations/correlation-configuration#source-data-source-and-result-field" >}}) for a new correlation. +1. Run a query producing data in [a supported visualization]({{< relref "../../../administration/correlations#correlations" >}}). +1. Click "+ Add" button in the top toolbar and select "Add correlation" (you can also select "Correlations Editor" from the [Command Palette]({{< relref "../../../search#command-palette" >}})). 1. Explore is now in Correlations Editor mode indicated by a blue border and top bar. You can exit Correlations Editor using the Exit button in the top bar. 1. The visualization is enriched with links allowing to create new correlations. Links are attached to the data that you can use to build a new query: - Logs: links are displayed next to field values inside log details for each log row - Table: every table cell is a link -1. Click on a link to begin adding new correlation. Links are associated with a field that will be used as [a results field of a correlation]({{< relref "/docs/grafana/latest/administration/correlations/correlation-configuration" >}}). This means the correlation link will be created on the link you select once the correlation is saved. -1. Explore opens a split view. Use the right pane to setup [the target query source of the correlation]({{< relref "/docs/grafana/latest/administration/correlations/correlation-configuration#target-query" >}}). -1. Build target query using [variables syntax]({{< relref "/docs/grafana/latest/dashboards/variables/variable-syntax" >}}) with variables from the list provided at the top of the pane. The list contains sample values from the selected data row. +1. Click on a link to begin adding new correlation. Links are associated with a field that will be used as [a results field of a correlation]({{< relref "../../../administration/correlations/correlation-configuration" >}}). This means the correlation link will be created on the link you select once the correlation is saved. +1. Explore opens a split view. Use the right pane to setup [the target query source of the correlation]({{< relref "../../../administration/correlations/correlation-configuration#target-query" >}}). +1. Build target query using [variables syntax]({{< relref "../../../dashboards/variables/variable-syntax" >}}) with variables from the list provided at the top of the pane. The list contains sample values from the selected data row. 1. Provide optional label and description. Label is used as the name of the link inside the visualization. It can contain variables. 1. Click "Save" button in the top bar to save the correlation and exit Correlations Editor mode. 1. The link used to create the correlation will be replaced with a data link in each row. The variables will be dynamically replaced with values from a selected row. -Please check [an example]({{< relref "/docs/grafana/latest/administration/correlations/use-correlations-editor-in-explore" >}}) to see how to create a sample correlation using test data source. +Please check [an example]({{< relref "../../../administration/correlations/use-correlations-editor-in-explore" >}}) to see how to create a sample correlation using test data source. ## Create a correlation in Administration page @@ -99,7 +99,7 @@ Description of provisioning properties: : Correlation type. “query” is the only supported type at the moment **config.target** -: [Target query model]({{< relref "#determine-target-query-model-structure" >}}) +: [Target query model](#determine-target-query-model-structure) **config.field** : Name of the field where link is shown diff --git a/docs/sources/administration/correlations/use-correlations-editor-in-explore/index.md b/docs/sources/administration/correlations/use-correlations-editor-in-explore/index.md index 6144b9954b5f7..a8bdcfcdf52fe 100644 --- a/docs/sources/administration/correlations/use-correlations-editor-in-explore/index.md +++ b/docs/sources/administration/correlations/use-correlations-editor-in-explore/index.md @@ -15,7 +15,7 @@ This example shows how to create a correlation using Correlations Editor in Expl Correlations allow you to use results of one query to run a new query in any data source. In this example you will run a query that renders tabular data. The data will be used to run a different query that yields a graph result. -Please make sure you have setup up [a test data source]({{< relref "/docs/grafana/latest/datasources/testdata/#testdata-data-source" >}}). +Please make sure you have set up [a test data source]({{< relref "../../../datasources/testdata#testdata-data-source" >}}). ## Create a new correlation diff --git a/docs/sources/administration/correlations/use-correlations-in-visualizations/index.md b/docs/sources/administration/correlations/use-correlations-in-visualizations/index.md index b742c509cc020..92d160a81a0ef 100644 --- a/docs/sources/administration/correlations/use-correlations-in-visualizations/index.md +++ b/docs/sources/administration/correlations/use-correlations-in-visualizations/index.md @@ -27,7 +27,7 @@ weight: 70 1. Open Explore. 1. Select a data source that you chose as the source data source of the correlation. 1. Run a query that results in data containing fields required to build variables in the target query. -1. Links are added to cell rows in the column representing the field with the assigned link ([the results field]({{< relref "/docs/grafana/latest/administration/correlations/correlation-configuration#source-data-source-and-result-field" >}}). +1. Links are added to cell rows in the column representing the field with the assigned link ([the results field]({{< relref "../correlation-configuration#source-data-source-and-result-field" >}}). 1. Cells containing multiple links accessible with a context menu. {{< figure src="/static/img/docs/correlations/correlations-in-table-10-0.png" max-width="600px" caption="Correlations links in table" >}} diff --git a/docs/sources/administration/correlations/use-variables-and-transformations/index.md b/docs/sources/administration/correlations/use-variables-and-transformations/index.md index a40e0ef504f47..9c757b5f059d4 100644 --- a/docs/sources/administration/correlations/use-variables-and-transformations/index.md +++ b/docs/sources/administration/correlations/use-variables-and-transformations/index.md @@ -73,7 +73,7 @@ Instructions below show how to set up a link that can run metrics query for the - Required correlation type (query) - Target query matching test data source model - “App metrics” correlation contains the following configuration: - - Alias is set to ${application} variable (note that in provisioning files $ is used to access environment variables so it has to be [escaped]({{< relref "/docs/grafana/latest/administration/provisioning#using-environment-variables" >}})). + - Alias is set to ${application} variable (note that in provisioning files $ is used to access environment variables so it has to be [escaped]({{< relref "../../../administration/provisioning#using-environment-variables" >}})). - Regular expression transformation is created to extract values from “msg” field - Regular expression transformation is used to capture the application name from the full name of the service stored in the log line. - The output of the transformation is mapped to a variable called “application”. diff --git a/docs/sources/administration/data-source-management/index.md b/docs/sources/administration/data-source-management/index.md index 3ac639e7a64de..df358ae042db8 100644 --- a/docs/sources/administration/data-source-management/index.md +++ b/docs/sources/administration/data-source-management/index.md @@ -40,7 +40,8 @@ For links to data source-specific documentation, see [Data sources]({{< relref " ## Data source permissions -You can configure data source permissions to allow or deny certain users the ability to query or edit a data source. Each data source’s configuration includes a Permissions tab where you can restrict data source permissions to specific users, teams, or roles. +You can configure data source permissions to allow or deny certain users the ability to query, edit, or administrate a data source. Each data source’s configuration includes a Permissions tab where you can restrict data source permissions to specific users, teams, or roles. +Query permission allows users to query the data source. Edit permission allows users to query the data source, edit the data source’s configuration and delete the data source. Admin permission allows users to query and edit the data source, change permissions on the data source and enable or disable query caching for the data source. {{% admonition type="note" %}} Available in [Grafana Enterprise]({{< relref "../../introduction/grafana-enterprise/" >}}) and [Grafana Cloud](/docs/grafana-cloud). @@ -52,7 +53,7 @@ By default, data sources in an organization can be queried by any user in that o ### Assign data source permissions to users, teams, or roles -You can assign data source permissions to users, teams, and roles which will allow access to query or edit the data source. +You can assign data source permissions to users, teams, and roles which will allow access to query, edit, or administrate the data source. 1. Click **Connections** in the left-side menu. 1. Under Your connections, click **Data sources**. @@ -60,7 +61,7 @@ You can assign data source permissions to users, teams, and roles which will all 1. On the Permissions tab, click **Add a permission**. 1. Select **User**, **Team**, or **Role**. 1. Select the entity for which you want to modify permissions. -1. Select the **Query** or **Edit** permission. +1. Select the **Query**, **Edit**, or **Admin** permission. 1. Click **Save**.
diff --git a/docs/sources/administration/roles-and-permissions/access-control/rbac-fixed-basic-role-definitions/index.md b/docs/sources/administration/roles-and-permissions/access-control/rbac-fixed-basic-role-definitions/index.md index 77e2aa44d83d5..b6b79715c66b1 100644 --- a/docs/sources/administration/roles-and-permissions/access-control/rbac-fixed-basic-role-definitions/index.md +++ b/docs/sources/administration/roles-and-permissions/access-control/rbac-fixed-basic-role-definitions/index.md @@ -65,6 +65,7 @@ The following tables list permissions associated with basic and fixed roles. | `fixed:datasources.insights:reader` | `datasources.insights:read` | Read data source insights data. | | `fixed:datasources.permissions:reader` | `datasources.permissions:read` | Read data source permissions. | | `fixed:datasources.permissions:writer` | All permissions from `fixed:datasources.permissions:reader` and
`datasources.permissions:write` | Create, read, or delete permissions of a data source. | +| `fixed:datasources:creator` | `datasources:create` | Create data sources. | | `fixed:datasources:reader` | `datasources:read`
`datasources:query` | Read and query data sources. | | `fixed:datasources:writer` | All permissions from `fixed:datasources:reader` and
`datasources:create`
`datasources:write`
`datasources:delete` | Read, query, create, delete, or update a data source. | | `fixed:folders.permissions:reader` | `folders.permissions:read` | Read all folder permissions. | @@ -96,6 +97,7 @@ The following tables list permissions associated with basic and fixed roles. | `fixed:settings:reader` | `settings:read` | Read Grafana instance settings. | | `fixed:settings:writer` | All permissions from `fixed:settings:reader` and
`settings:write` | Read and update Grafana instance settings. | | `fixed:stats:reader` | `server.stats:read` | Read Grafana instance statistics. | +| `fixed:teams:reader` | `teams:read` | List all teams. | | `fixed:teams:creator` | `teams:create`
`org.users:read` | Create a team and list organization users (required to manage the created team). | | `fixed:teams:writer` | `teams:create`
`teams:delete`
`teams:read`
`teams:write`
`teams.permissions:read`
`teams.permissions:write` | Create, read, update and delete teams and manage team memberships. | | `fixed:users:reader` | `users:read`
`users.quotas:read`
`users.authtoken:read`
` | Read all users and their information, such as team memberships, authentication tokens, and quotas. | diff --git a/docs/sources/breaking-changes/breaking-changes-v10-0.md b/docs/sources/breaking-changes/breaking-changes-v10-0.md index 97fb6c2c67e1a..d5c5db5f8ce8c 100644 --- a/docs/sources/breaking-changes/breaking-changes-v10-0.md +++ b/docs/sources/breaking-changes/breaking-changes-v10-0.md @@ -343,7 +343,7 @@ Here are some of the benefits of create-plugin: - **Improved testing capabilities:** Testing plugins with @grafana/create-plugin is much easier with GitHub workflows that automate unit and e2e test runs whenever changes are pushed to GitHub. -- **Better documentation:** The [documentation](https://grafana.github.io/plugin-tools/docs/get-started/) for @grafana/create-plugin is more comprehensive and easier to discover than that of @grafana/toolkit. +- **Better documentation:** The [documentation](https://grafana.com/developers/plugin-tools/) for @grafana/create-plugin is more comprehensive and easier to discover than that of @grafana/toolkit. #### Migration path @@ -361,7 +361,7 @@ npx @grafana/create-plugin@latest migrate #### Learn more -- [Migration guide](https://grafana.github.io/plugin-tools/docs/get-started/migrate-from-toolkit) +- [Migration guide](https://grafana.com/developers/plugin-tools/migration-guides/migrate-from-toolkit) ## Deprecations diff --git a/docs/sources/developers/angular_deprecation/angular-plugins.md b/docs/sources/developers/angular_deprecation/angular-plugins.md index 4b1e0eb810f2e..d27400acfd81e 100644 --- a/docs/sources/developers/angular_deprecation/angular-plugins.md +++ b/docs/sources/developers/angular_deprecation/angular-plugins.md @@ -392,14 +392,6 @@ Latest Version: 1.0.1 | Signature: Community | Last Updated: 2021 > **Migration available - plugin superseded:** this plugin was [discontinued in favour of the InfluxDB data source](https://github.com/ntop/ntopng-grafana-datasource) - a Core plugin included in Grafana, additional guidance is available [here](https://www.ntop.org/guides/ntopng/basic_concepts/timeseries.html#influxdb-driver). -### [Oracle Cloud Infrastructure Logs](https://grafana.com/grafana/plugins/oci-logs-datasource/) - -Latest Version: 3.0.0 | Signature: Commercial | Last Updated: 2023 - -### [Oracle Cloud Infrastructure Metrics](https://grafana.com/grafana/plugins/oci-metrics-datasource/) - -Latest Version: 4.0.1 | Signature: Commercial | Last Updated: 2023 - ### [Warp 10](https://grafana.com/grafana/plugins/ovh-warp10-datasource/) Latest Version: 2.2.1 | Signature: Community | Last Updated: 2021 diff --git a/docs/sources/explore/logs-integration.md b/docs/sources/explore/logs-integration.md index 2e192f0ca8805..e1cde45c8a4ec 100644 --- a/docs/sources/explore/logs-integration.md +++ b/docs/sources/explore/logs-integration.md @@ -20,6 +20,7 @@ Explore is a powerful tool for logging and log analysis. It allows you to invest - [Elasticsearch]({{< relref "../datasources/elasticsearch" >}}) - [Cloudwatch]({{< relref "../datasources/aws-cloudwatch" >}}) - [InfluxDB]({{< relref "../datasources/influxdb" >}}) +- [Azure Monitor]({{< relref "../datasources/azure-monitor" >}}) With Explore, you can efficiently monitor, troubleshoot, and respond to incidents by analyzing your logs and identifying the root causes. It also helps you to correlate logs with other telemetry signals such as metrics, traces or profiles, by viewing them side-by-side. diff --git a/docs/sources/panels-visualizations/visualizations/canvas/index.md b/docs/sources/panels-visualizations/visualizations/canvas/index.md index 91c6e4550cf93..f832726708caa 100644 --- a/docs/sources/panels-visualizations/visualizations/canvas/index.md +++ b/docs/sources/panels-visualizations/visualizations/canvas/index.md @@ -29,30 +29,44 @@ Canvases combine the power of Grafana with the flexibility of custom elements. C ### Metric value -The metric value element enables you to easily select the data you want to display on a canvas. This element has a unique “edit” mode that can be triggered either through the context menu “Edit” option or by double clicking. When in edit mode you can select which field data that you want to display. +The metric value element lets you easily select the data you want to display on a canvas. This element has a unique “edit” mode that can be triggered either through the context menu “Edit” option or by double clicking. When in edit mode you can select which field data that you want to display. {{< video-embed src="/static/img/docs/canvas-panel/canvas-metric-value-9-2-0.mp4" max-width="750px" caption="Metric value element demo" >}} ### Text -The text element enables you to easily add text to the canvas. The element also supports an editing mode, triggered via either double clicking or the edit menu option in the context menu. +The text element lets you easily add text to the canvas. The element also supports an editing mode, triggered via either double clicking or the edit menu option in the context menu. {{< video-embed src="/static/img/docs/canvas-panel/canvas-text-9-2-0.mp4" max-width="750px" caption="Text element demo" >}} +### Ellipse + +The ellipse element lets you add a basic ellipse to the canvas. An ellipse element can display text (both fixed and field data) and its background color can be changed based on data thresholds. + ### Rectangle -The rectangle element enables you to add a basic rectangle to the canvas. Rectangle elements support displaying text (both fixed and field data) as well as can change background color based on data thresholds. +The rectangle element lets you add a basic rectangle to the canvas. A rectangle element can display text (both fixed and field data) and its background color can be changed based on data thresholds. ### Icon -The icon element enables you to add a supported icon to the canvas. Icons can have their color set based on thresholds / value mappings. +The icon element lets you add a supported icon to the canvas. Icons can have their color set based on thresholds / value mappings. ### Server -The server element enables you to easily represent a single server, a stack of servers, a database, or a terminal. Server elements support status color, bulb color, and a bulb blink rate all configurable by fixed or field values. +The server element lets you easily represent a single server, a stack of servers, a database, or a terminal. Server elements support status color, bulb color, and a bulb blink rate all configurable by fixed or field values. {{< figure src="/media/docs/grafana/canvas-server-element-9-4-0.png" max-width="750px" caption="Canvas server element" >}} +### Button + +The button element lets you add a basic button to the canvas. Button elements support triggering basic, unauthenticated API calls. API settings are found in the button element editor. You can also pass template variables in the API editor. + +{{% admonition type="note" %}} +A button click will only trigger an API call when [inline editing](#inline-editing) is disabled. +{{% /admonition %}} + +{{< video-embed src="/media/docs/grafana/screen-recording-10-2-canvas-button-element-demo.mp4" max-width="750px" caption="Canvas button element demo" >}} + ## Connections When building a canvas, you can connect elements together to create more complex visualizations. Connections are created by dragging from the connection anchor of one element to the connection anchor of another element. You can also create connections to the background of the canvas. Connection anchors are displayed when you hover over an element and inline editing is turned on. To remove a connection, simply click on the connection directly and then press the "Delete" or "Backspace" key. @@ -73,7 +87,7 @@ You can edit your canvas inline while in the context of dashboard mode. ### Context menu -The context menu enables you to perform common tasks quickly and efficiently. Supported functionality includes opening / closing the inline editor, duplicating an element, deleting an element, and more. +The context menu lets you perform common tasks quickly and efficiently. Supported functionality includes opening / closing the inline editor, duplicating an element, deleting an element, and more. The context menu is triggered by a right click action over the panel / over a given canvas element. When right clicking the panel, you are able to set a background image and easily add elements to the canvas. @@ -87,7 +101,7 @@ When right clicking an element, you are able to edit, delete, duplicate, and mod ### Inline editing -The inline editing toggle enables you to lock or unlock the canvas. When turned off the canvas becomes “locked”, freezing elements in place and preventing unintended modifications. +The inline editing toggle lets you lock or unlock the canvas. When turned off the canvas becomes “locked”, freezing elements in place and preventing unintended modifications. {{< video-embed src="/static/img/docs/canvas-panel/canvas-inline-editing-toggle-9-2-0.mp4" max-width="750px" caption="Inline editing toggle demo" >}} diff --git a/docs/sources/panels-visualizations/visualizations/geomap/index.md b/docs/sources/panels-visualizations/visualizations/geomap/index.md index 066c8ffc396ae..c53ccb0535e35 100644 --- a/docs/sources/panels-visualizations/visualizations/geomap/index.md +++ b/docs/sources/panels-visualizations/visualizations/geomap/index.md @@ -239,6 +239,8 @@ The markers layer allows you to display data points as different marker shapes s - **Size** configures the size of the markers. The default is `Fixed size`, which makes all marker sizes the same regardless of the data; however, there is also an option to size the markers based on data corresponding to a selected field. `Min` and `Max` marker sizes have to be set such that the markers can scale within this range. - **Symbol** allows you to choose the symbol, icon, or graphic to aid in providing additional visual context to your data. Choose from assets that are included with Grafana such as simple symbols or the Unicon library. You can also specify a URL containing an image asset. The image must be a scalable vector graphic (SVG). +- **Symbol Vertical Align** configures the vertical alignment of the symbol relative to the data point. Note that the symbol's rotation angle is applied first around the data point, then the vertical alignment is applied relative to the rotation of the symbol. +- **Symbol Horizontal Align** configures the horizontal alignment of the symbol relative to the data point. Note that the symbol's rotation angle is applied first around the data point, then the horizontal alignment is applied relative to the rotation of the symbol. - **Color** configures the color of the markers. The default `Fixed color` sets all markers to a specific color. There is also an option to have conditional colors depending on the selected field data point values and the color scheme set in the `Standard options` section. - **Fill opacity** configures the transparency of each marker. - **Rotation angle** configures the rotation angle of each marker. The default is `Fixed value`, which makes all markers rotate to the same angle regardless of the data; however, there is also an option to set the rotation of the markers based on data corresponding to a selected field. diff --git a/docs/sources/panels-visualizations/visualizations/time-series/index.md b/docs/sources/panels-visualizations/visualizations/time-series/index.md index 60d43db650acd..209df93cf86e7 100644 --- a/docs/sources/panels-visualizations/visualizations/time-series/index.md +++ b/docs/sources/panels-visualizations/visualizations/time-series/index.md @@ -93,7 +93,7 @@ Use opacity to specify the series area fill color. Gradient mode specifies the gradient fill, which is based on the series color. To change the color, use the standard color scheme field option. For more information, refer to [Color scheme][]. - **None:** No gradient fill. This is the default setting. -- **Opacity:** An opacity gradient where the opacity of the fill increases as Y-axis values increase. +- **Opacity:** An opacity gradient where the opacity of the fill increases as y-axis values increase. - **Hue:** A subtle gradient that is based on the hue of the series color. - **Scheme:** A color gradient defined by your [Color scheme][]. This setting is used for the fill area and line. For more information about scheme, refer to [Scheme gradient mode](#scheme-gradient-mode). @@ -176,22 +176,26 @@ The following example shows three series: Min, Max, and Value. The Min and Max s ## Axis options -Options under the axis category change how the X and Y axes are rendered. Some options do not take effect until you click outside of the field option box you are editing. You can also or press `Enter`. +Options under the axis category change how the x- and y-axes are rendered. Some options do not take effect until you click outside of the field option box you are editing. You can also or press `Enter`. + +### Time zone + +Set the desired time zone(s) to display along the x-axis. ### Placement -Select the placement of the Y-axis. +Select the placement of the y-axis. -- **Auto:** Automatically assigns the Y-axis to the series. When there are two or more series with different units, Grafana assigns the left axis to the first unit and the right axis to the units that follow. -- **Left:** Display all Y-axes on the left side. -- **Right:** Display all Y-axes on the right side. +- **Auto:** Automatically assigns the y-axis to the series. When there are two or more series with different units, Grafana assigns the left axis to the first unit and the right axis to the units that follow. +- **Left:** Display all y-axes on the left side. +- **Right:** Display all y-axes on the right side. - **Hidden:** Hide all axes. To selectively hide axes, [Add a field override][] that targets specific fields. ### Label -Set a Y-axis text label. If you have more than one Y-axis, then you can assign different labels using an override. +Set a y-axis text label. If you have more than one y-axis, then you can assign different labels using an override. ### Width @@ -199,22 +203,46 @@ Set a fixed width of the axis. By default, Grafana dynamically calculates the wi By setting the width of the axis, data with different axes types can share the same display proportions. This setting makes it easier for you to compare more than one graph’s worth of data because the axes are not shifted or stretched within visual proximity to each other. -### Soft min and soft max +### Show grid lines -Set a **Soft min** or **soft max** option for better control of Y-axis limits. By default, Grafana sets the range for the Y-axis automatically based on the dataset. +Set the axis grid line visibility. -**Soft min** and **soft max** settings can prevent blips from turning into mountains when the data is mostly flat, and hard min or max derived from standard min and max field options can prevent intermittent spikes from flattening useful detail by clipping the spikes past a specific point. +- **Auto:** Automatically show grid lines based on the density of the data. +- **On:** Always show grid lines. +- **Off:** Never show grid lines. -To define hard limits of the Y-axis, You can set standard min/max options. For more information, refer to [Configure standard options][]. +### Color -![Label example](/static/img/docs/time-series-panel/axis-soft-min-max-7-4.png) +Set the color of the axis. + +- **Text:** Set the color based on theme text color. +- **Series:** Set the color based on the series color. + +### Show border + +Set the axis border visibility. ### Scale -Set the Y-axis values scale. +Set the y-axis values scale. - **Linear:** Divides the scale into equal parts. - **Logarithmic:** Use a logarithmic scale. When you select this option, a list appears for you to choose a binary (base 2) or common (base 10) logarithmic scale. +- **Symlog:** Use a symmetrical logarithmic scale. When you select this option, a list appears for you to choose a binary (base 2) or common (base 10) logarithmic scale. The linear threshold option allows you to set the threshold at which the scale changes from linear to logarithmic. + +### Centered zero + +Set the y-axis to be centered on zero. + +### Soft min and soft max + +Set a **Soft min** or **soft max** option for better control of y-axis limits. By default, Grafana sets the range for the y-axis automatically based on the dataset. + +**Soft min** and **soft max** settings can prevent small variations in the data from being magnified when it's mostly flat. In contrast, hard min and max values help prevent obscuring useful detail in the data by clipping intermittent spikes past a specific point. + +To define hard limits of the y-axis, set standard min/max options. For more information, refer to [Configure standard options][]. + +![Label example](/static/img/docs/time-series-panel/axis-soft-min-max-7-4.png) ### Transform diff --git a/docs/sources/setup-grafana/configure-grafana/feature-toggles/index.md b/docs/sources/setup-grafana/configure-grafana/feature-toggles/index.md index 553de14518a73..3810ab990078a 100644 --- a/docs/sources/setup-grafana/configure-grafana/feature-toggles/index.md +++ b/docs/sources/setup-grafana/configure-grafana/feature-toggles/index.md @@ -153,6 +153,8 @@ Experimental features might be changed or removed without prior notice. | `cachingOptimizeSerializationMemoryUsage` | If enabled, the caching backend gradually serializes query responses for the cache, comparing against the configured `[caching]max_value_mb` value as it goes. This can can help prevent Grafana from running out of memory while attempting to cache very large query responses. | | `pluginsInstrumentationStatusSource` | Include a status source label for plugin request metrics and logs | | `costManagementUi` | Toggles the display of the cost management ui plugin | +| `managedPluginsInstall` | Install managed plugins directly from plugins catalog | +| `prometheusPromQAIL` | Prometheus and AI/ML to assist users in creating a query | ## Development feature toggles diff --git a/docs/sources/whatsnew/whats-new-next/README.md b/docs/sources/whatsnew/whats-new-next/README.md index 2fbaf560b8e74..f7157457cdc5a 100644 --- a/docs/sources/whatsnew/whats-new-next/README.md +++ b/docs/sources/whatsnew/whats-new-next/README.md @@ -37,6 +37,8 @@ If the feature is not going to be released outside of Grafana Cloud, omit the HT The release date of the feature, fully written out. For example: September 12, 2023. +Add your feature in order by date. Dates are in descending order from the top of the page (that is, the top of the page has the most recently released features). + ## _`CLOUD AVAILABILITY`_ One of the following [release life cycle stages](https://grafana.com/docs/release-life-cycle/): diff --git a/docs/sources/whatsnew/whats-new-next/index.md b/docs/sources/whatsnew/whats-new-next/index.md index 63cfe1541d410..64f4447ff09da 100644 --- a/docs/sources/whatsnew/whats-new-next/index.md +++ b/docs/sources/whatsnew/whats-new-next/index.md @@ -18,6 +18,17 @@ weight: -37 Welcome to Grafana Cloud! Read on to learn about the newest changes to Grafana Cloud. +## Export alert rules and notification resources to Terraform + + + + +October 30, 2023 + +_Generally available in Grafana Cloud_ + +This feature provides a way to export Alerting resources such as rules, contact points, and notification policies as Terraform resources. A new "Modify export" mode for alert rules provides a convenient way of editing provisioned alert rules and exporting the modified version. + ## Alerting insights @@ -28,50 +39,79 @@ _Generally available in Grafana Cloud_ Use Alerting insights to monitor your alerting data, discover key trends about your organization’s alert management performance, and find patterns in why things go wrong. -## Correlations editor in Explore +## Tempo data source: "Aggregate By" Search option to compute RED metrics over spans aggregated by attribute - - + + + +October 24, 2023 + +_Experimental in Grafana Cloud_ + +We've added an **Aggregate By** option to the [TraceQL query editor](https://grafana.com/docs/grafana//datasources/tempo/query-editor/traceql-search/#write-traceql-queries-using-search) to leverage Grafana Cloud Traces' [metrics summary API](https://grafana.com/docs/grafana-cloud/monitor-infrastructure/traces/metrics-summary-api/). You can calculate RED metrics (total span count, percent erroring spans, and latency information) for spans of `kind=server` received in the last hour that match your filter criteria, grouped by whatever attributes you specify. + +This feature is disabled by default. To enable it, file contact Grafana Support. + +For more information, refer to the [documentation](https://grafana.com/docs/grafana//datasources/tempo/query-editor/traceql-search/#optional-use-aggregate-by). + +{{< figure src="/media/docs/tempo/metrics-summary-10-2.png" caption="Aggregate by" >}} + +## Support for dashboard variables in transformations + + -October 3, 2023 +October 24, 2023 -_Available in public preview in Grafana Cloud_ +_Experimental in Grafana Cloud_ -Creating correlations has just become easier. Try out our new correlations editor in **Explore** by selecting the **+ Add > Add correlation** option from the top bar or from the command palette. The editor shows all possible places where you can place data links and guides you through building and testing target queries. For more information, refer to [the documentation](https://grafana.com/docs/grafana//administration/correlations/). +Previously, the only transformation that supported [dashboard variables](https://grafana.com/docs/grafana//dashboards/variables/) was the **Add field from calculation** transformation. We've now extended the support for variables to the **Filter by value**, **Create heatmap**, **Histogram**, **Sort by**, **Limit**, **Filter by name**, and **Join by field** transformations. -To enable this feature, contact Grafana Support. +We've also made it easier to find the correct dashboard variable by displaying available variables in the fields that support them, either in the drop-down or as a suggestion when you type **$** or press Ctrl + Space: -## Create correlations for provisioned data sources +{{< figure src="/media/docs/grafana/transformations/completion.png" caption="Input with dashboard variable suggestions" >}} - - +## Role mapping support for Google OIDC + + -September 13, 2023 +October 24, 2023 -_Available in public preview in Grafana Cloud_ +_Generally available in Grafana Cloud_ -You can now create correlations using either the **Administration** page or provisioning, regardless of whether a data source was provisioned or not. In previous versions of Grafana, if a data source was provisioned, the only way to add correlations to it was also with provisioning. Now, that's no longer the case, and you can easily create new correlations mixing both methods—using the **Administration** page or provisioning. +You can now map Google groups to Grafana organizational roles when using Google OIDC. +This is useful if you want to limit the access users have to your Grafana instance. -To enable this feature, contact Grafana Support. +We've also added support for controlling allowed groups when using Google OIDC. -## Tempo data source: "Aggregate By" Search option to compute RED metrics over spans aggregated by attribute +Refer to the [Google Authentication documentation](https://grafana.com/docs/grafana//setup-grafana/configure-security/configure-authentication/google/) to learn how to use these new options. - - +## Multiple spansets per trace + + + October 24, 2023 -_Experimental in Grafana Cloud_ +_Generally available in Grafana Cloud_ -We've added an **Aggregate By** option to the [TraceQL query editor](https://grafana.com/docs/grafana//datasources/tempo/query-editor/traceql-search/#write-traceql-queries-using-search) to leverage Grafana Cloud Traces' [metrics summary API](https://grafana.com/docs/grafana-cloud/monitor-infrastructure/traces/metrics-summary-api/). You can calculate RED metrics (total span count, percent erroring spans, and latency information) for spans of `kind=server` received in the last hour that match your filter criteria, grouped by whatever attributes you specify. +The [TraceQL query editor](https://grafana.com/docs/tempo//traceql/#traceql-query-editor) has been improved to facilitate the grouping of multiple spans per trace in TraceQL queries. For example, when the following `by(resource.service.name)` is added to your TraceQL query, it will group the spans in each trace by `resource.service.name`. -This feature is disabled by default. To enable it, file contact Grafana Support. +{{< figure src="/media/docs/tempo/multiple-spansets-per-trace-10-2.png" max-width="750px" caption="Multiple spansets per trace" >}} -For more information, refer to the [documentation](https://grafana.com/docs/grafana//datasources/tempo/query-editor/traceql-search/#optional-use-aggregate-by). +## Temporary credentials in CloudWatch data source -{{< figure src="/media/docs/tempo/metrics-summary-10-2.png" caption="Aggregate by" >}} + + + +October 24, 2023 + +_Available in private preview in Grafana Cloud_ + +The Grafana Assume Role authentication provider lets Grafana Cloud users of the CloudWatch data source authenticate with AWS without having to create and maintain long term AWS Users. Using the new assume role authentication method, you no longer have to rotate access and secret keys in your CloudWatch data source. Instead, Grafana Cloud users can create an identity access and management (IAM) role that has a trust relationship with Grafana's AWS account; Grafana's AWS account will then use AWS Secure Token Service (STS) to create temporary credentials to access the user's AWS data. + +To learn more, refer to the [CloudWatch authentication documentation](/docs/grafana/next/datasources/aws-cloudwatch/aws-authentication). ## No basic role @@ -103,222 +143,204 @@ Introducing Content Outline in Grafana **Explore**. We recognized the challenges {{< video-embed src="/media/docs/grafana/explore/content-outline-demo.mp4" >}} -## Issues snapshot in Kubernetes Monitoring - - +## Public dashboards -September 29, 2023 + + -_Generally available in Grafana Cloud_ +October 12, 2023 -To provide quicker identification and troubleshooting, the home page contains a snapshot of issues that reach the following thresholds: +_Generally Available in Grafana Cloud_ -- Pods that have been in a non-running state for more than 15 minutes -- Nodes with CPU usage above 90% for more than five minutes -- Nodes using more than 90% of memory for more than five minutes -- Persistent Volumes with capacity above 90% -- Node disks with capacity above 90% +Public dashboards allow you to share your visualizations and insights to a broader audience without the requirement of a login. You can effortlessly use our current sharing model and create a public dashboard URL to share with anyone using the generated public URL link. To learn more, refer to the [Public dashboards documentation](https://grafana.com/docs/grafana//dashboards/dashboard-public/), as well as the following video demo: -(Release 1.3.1) -{{< figure max-width="80%" src="/media/docs/grafana-cloud/k8s/K8smon-snapshotview.png" caption="Home page snapshot view" >}} +{{< video-embed src="/media/docs/grafana/dashboards/public-dashboards-demo.mp4" >}} -## Tabs navigation in Kubernetes Monitoring +## Correlations editor in Explore - + + + -September 14, 2023 +October 3, 2023 -_Generally available in Grafana Cloud_ +_Available in public preview in Grafana Cloud_ -Quickly switch between the Cluster, namespace, workload, and Node views on the **Cluster Navigation** page using tabs. (Release 1.3.0) +Creating correlations has just become easier. Try out our new correlations editor in **Explore** by selecting the **+ Add > Add correlation** option from the top bar or from the command palette. The editor shows all possible places where you can place data links and guides you through building and testing target queries. For more information, refer to [the documentation](https://grafana.com/docs/grafana//administration/correlations/). -{{< figure max-width="40%" src="/media/docs/grafana-cloud/k8s/k8smon-clusternav-tabs.png" caption="Tabs on **Cluster Navigation** page" >}} +To enable this feature, contact Grafana Support. -## Data source menu on Cost and Efficiency views in Kubernetes Monitoring +## Improved TraceQL query editor - + + -September 14, 2023 +October 3, 2023 _Generally available in Grafana Cloud_ -You can change the data source you are viewing on the **Cost** and **Efficiency** views. (Release 1.2.1) +The [TraceQL query editor](https://grafana.com/docs/tempo/latest/traceql/#traceql-query-editor) has been improved to facilitate the creation of TraceQL queries. In particular, it now features improved autocompletion, syntax highlighting, and error reporting. -## Predict namespace memory usage in Kubernetes Monitoring +{{< video-embed src="/media/docs/tempo/screen-recording-grafana-10.2-traceql-query-editor-improvements.mp4" >}} - +## Recorded queries: Record multiple metrics from a single query -September 14, 2023 + + -_Generally available in Grafana Cloud_ +October 3, 2023 -Click **Predict Memory usage** to predict namespace memory usage on the namespace detail page. (Release 1.2.1) +_Generally available in Grafana Cloud_ -{{< figure max-width="50%" src="/media/docs/grafana-cloud/k8s/k8smon-predict-memusage-namespace.png" caption="**Predict Memory usage** button" >}} +With recorded queries, a single recorded query can now record multiple metrics. -## Streamlined configuration of Kubernetes Monitoring +## Issues snapshot in Kubernetes Monitoring -September 15, 2023 +September 29, 2023 _Generally available in Grafana Cloud_ -Configure with [Grafana Kubernetes Monitoring Helm chart](https://grafana.com/docs/grafana-cloud/monitor-infrastructure/kubernetes-monitoring/configuration/config-k8s-agent-flow) using a streamlined process. With this method, you can set on/off switches to gather metrics, logs, events, traces, and cost metrics. (Release 1.2.0) +To provide quicker identification and troubleshooting, the home page contains a snapshot of issues that reach the following thresholds: -{{< figure max-width="60%" src="/media/docs/grafana-cloud/k8s/k8smon-config-wizard.png" caption="Configuration wizard" >}} +- Pods that have been in a non-running state for more than 15 minutes +- Nodes with CPU usage above 90% for more than five minutes +- Nodes using more than 90% of memory for more than five minutes +- Persistent Volumes with capacity above 90% +- Node disks with capacity above 90% -## Traces collection with Kubernetes Monitoring +(Release 1.3.1) +{{< figure max-width="80%" src="/media/docs/grafana-cloud/k8s/K8smon-snapshotview.png" caption="Home page snapshot view" >}} - +## Tenant database instance name and number for SAP HANA® data source -September 14, 2023 + + + +September 25, 2023 _Generally available in Grafana Cloud_ -Collect traces when you configure Kubernetes Monitoring, and then use Tempo to create search queries. Refer to [Navigate to traces](/docs/grafana-cloud/monitor-infrastructure/kubernetes-monitoring/navigate-k8s-monitoring/#navigate-to-traces) for more information. (Release 1.3.0) +The SAP HANA® data source now supports tenant databases connections by using the database name and/or instance number. For more information, refer to [SAP HANA® configuration](/docs/plugins/grafana-saphana-datasource/latest/#configuration). -## Kafka integration in Kubernetes Monitoring +{{< video-embed src="/media/docs/sap-hana/tenant.mp4" >}} - +## Distributed tracing in Grafana Cloud k6 -September 14, 2023 + -_Generally available in Grafana Cloud_ +September 19, 2023 -The Kafka integration is available for use in Kubernetes Monitoring. (Release 1.3.6) +_Generally available in Grafana Cloud_ -## Public dashboards +You can now use the Grafana Cloud Traces integration with Grafana Cloud k6 to quickly debug failed performance tests and proactively improve application reliability. - - +Distributed tracing in Grafana Cloud k6 only requires two things: -October 12, 2023 +- An application instrumented for tracing with Grafana Cloud Traces. +- Adding a few lines of code to your existing k6 scripts. -_Generally Available in Grafana Cloud_ +The integration works by having k6 inject tracing metadata into the requests it sends to your backend services when you run a test. The tracing data is then correlated with k6 test run data, so you can understand how your services and operations behaved during the whole test run. The collected tracing data is aggregated to generate real-time metrics—such as frequency of calls, error rates, and percentile latencies—that can help you narrow your search space and quickly spot anomalies. -Public dashboards allow you to share your visualizations and insights to a broader audience without the requirement of a login. You can effortlessly use our current sharing model and create a public dashboard URL to share with anyone using the generated public URL link. To learn more, refer to the [Public dashboards documentation](https://grafana.com/docs/grafana//dashboards/dashboard-public/), as well as the following video demo: +To learn more, refer to the [Integration with Grafana Cloud Traces documentation](/docs/grafana-cloud/k6/analyze-results/integration-with-grafana-cloud-traces/) and [Distributed Tracing in Grafana Cloud k6 blog post](https://grafana.com/blog/2023/09/19/troubleshoot-failed-performance-tests-faster-with-distributed-tracing-in-grafana-cloud-k6/). -{{< video-embed src="/media/docs/grafana/dashboards/public-dashboards-demo.mp4" >}} +## New browse dashboards -## Support for dashboard variables in transformations + + - - +September 19, 2023 -October 24, 2023 +_Generally available in Grafana Cloud_ -_Experimental in Grafana Cloud_ +The new browse dashboards interface features a more compact design, making it easier to navigate, search for, and manage for your folders and dashboards. The new interface also has many performance improvements, especially for instances with a large number of folders and dashboards. -Previously, the only transformation that supported [dashboard variables](https://grafana.com/docs/grafana//dashboards/variables/) was the **Add field from calculation** transformation. We've now extended the support for variables to the **Filter by value**, **Create heatmap**, **Histogram**, **Sort by**, **Limit**, **Filter by name**, and **Join by field** transformations. +To make using folders easier and more consistent, there is no longer a special **General** folder. Dashboards without a folder, or dashboards previously in **General**, are now shown at the root level. -We've also made it easier to find the correct dashboard variable by displaying available variables in the fields that support them, either in the drop-down or as a suggestion when you type **$** or press Ctrl + Space: +To learn more, refer to the following video demo. -{{< figure src="/media/docs/grafana/transformations/completion.png" caption="Input with dashboard variable suggestions" >}} +{{< video-embed src="/media/docs/grafana/2023-09-11-New-Browse-Dashboards-Enablement-Video.mp4" >}} -## Role mapping support for Google OIDC +## Streamlined configuration of Kubernetes Monitoring - - + -October 24, 2023 +September 15, 2023 _Generally available in Grafana Cloud_ -You can now map Google groups to Grafana organizational roles when using Google OIDC. -This is useful if you want to limit the access users have to your Grafana instance. - -We've also added support for controlling allowed groups when using Google OIDC. +Configure with [Grafana Kubernetes Monitoring Helm chart](https://grafana.com/docs/grafana-cloud/monitor-infrastructure/kubernetes-monitoring/configuration/config-k8s-agent-flow) using a streamlined process. With this method, you can set on/off switches to gather metrics, logs, events, traces, and cost metrics. (Release 1.2.0) -Refer to the [Google Authentication documentation](https://grafana.com/docs/grafana//setup-grafana/configure-security/configure-authentication/google/) to learn how to use these new options. +{{< figure max-width="60%" src="/media/docs/grafana-cloud/k8s/k8smon-config-wizard.png" caption="Configuration wizard" >}} -## Distributed tracing in Grafana Cloud k6 +## Tabs navigation in Kubernetes Monitoring - + -September 19, 2023 +September 14, 2023 _Generally available in Grafana Cloud_ -You can now use the Grafana Cloud Traces integration with Grafana Cloud k6 to quickly debug failed performance tests and proactively improve application reliability. - -Distributed tracing in Grafana Cloud k6 only requires two things: - -- An application instrumented for tracing with Grafana Cloud Traces. -- Adding a few lines of code to your existing k6 scripts. - -The integration works by having k6 inject tracing metadata into the requests it sends to your backend services when you run a test. The tracing data is then correlated with k6 test run data, so you can understand how your services and operations behaved during the whole test run. The collected tracing data is aggregated to generate real-time metrics—such as frequency of calls, error rates, and percentile latencies—that can help you narrow your search space and quickly spot anomalies. +Quickly switch between the Cluster, namespace, workload, and Node views on the **Cluster Navigation** page using tabs. (Release 1.3.0) -To learn more, refer to the [Integration with Grafana Cloud Traces documentation](/docs/grafana-cloud/k6/analyze-results/integration-with-grafana-cloud-traces/) and [Distributed Tracing in Grafana Cloud k6 blog post](https://grafana.com/blog/2023/09/19/troubleshoot-failed-performance-tests-faster-with-distributed-tracing-in-grafana-cloud-k6/). +{{< figure max-width="40%" src="/media/docs/grafana-cloud/k8s/k8smon-clusternav-tabs.png" caption="Tabs on **Cluster Navigation** page" >}} -## Tenant database instance name and number for SAP HANA® data source +## Data source menu on Cost and Efficiency views in Kubernetes Monitoring - - + -September 25, 2023 +September 14, 2023 _Generally available in Grafana Cloud_ -The SAP HANA® data source now supports tenant databases connections by using the database name and/or instance number. For more information, refer to [SAP HANA® configuration](/docs/plugins/grafana-saphana-datasource/latest/#configuration). - -{{< video-embed src="/media/docs/sap-hana/tenant.mp4" >}} +You can change the data source you are viewing on the **Cost** and **Efficiency** views. (Release 1.2.1) -## Log aggregation for Datadog data source +## Predict namespace memory usage in Kubernetes Monitoring - - + -August 31, 2023 +September 14, 2023 _Generally available in Grafana Cloud_ -The Datadog data source now supports log aggregation. This feature helps aggregate logs/events into buckets and compute metrics and time series. For more information, refer to [Datadog log aggregation](/docs/plugins/grafana-datadog-datasource/latest#logs-analytics--aggregation). +Click **Predict Memory usage** to predict namespace memory usage on the namespace detail page. (Release 1.2.1) -{{< video-embed src="/media/docs/datadog/datadog-log-aggregation.mp4" >}} +{{< figure max-width="50%" src="/media/docs/grafana-cloud/k8s/k8smon-predict-memusage-namespace.png" caption="**Predict Memory usage** button" >}} -## API throttling for Datadog data source +## Traces collection with Kubernetes Monitoring - - + -September 1, 2023 +September 14, 2023 _Generally available in Grafana Cloud_ -The Datadog data source supports blocking API requests based on upstream rate limits (for metric queries). With this update, you can set a rate limit percentage at which the plugin stops sending queries. - -To learn more, refer to [Datadog data source settings](/docs/plugins/grafana-datadog-datasource/latest#configure-the-data-source), as well as the following video demo. - -{{< video-embed src="/media/docs/datadog/datadog-rate-limit.mp4" >}} +Collect traces when you configure Kubernetes Monitoring, and then use Tempo to create search queries. Refer to [Navigate to traces](/docs/grafana-cloud/monitor-infrastructure/kubernetes-monitoring/navigate-k8s-monitoring/#navigate-to-traces) for more information. (Release 1.3.0) -## Query-type template variables for Tempo data source +## Kafka integration in Kubernetes Monitoring - - + -August 24, 2023 +September 14, 2023 _Generally available in Grafana Cloud_ -The Tempo data source now supports query-type template variables. With this update, you can create variables for which the values are a list of attribute names or attribute values seen on spans received by Tempo. - -To learn more, refer to the following video demo, as well as the [Grafana Variables documentation](/docs/grafana/next/dashboards/variables/). - -{{< video-embed src="/media/docs/tempo/screen-recording-grafana-10.2-tempo-query-type-template-variables.mp4" >}} +The Kafka integration is available for use in Kubernetes Monitoring. (Release 1.3.6) -## Improved TraceQL query editor +## Create correlations for provisioned data sources - + + -October 3, 2023 +September 13, 2023 -_Generally available in Grafana Cloud_ +_Available in public preview in Grafana Cloud_ -The [TraceQL query editor](https://grafana.com/docs/tempo/latest/traceql/#traceql-query-editor) has been improved to facilitate the creation of TraceQL queries. In particular, it now features improved autocompletion, syntax highlighting, and error reporting. +You can now create correlations using either the **Administration** page or provisioning, regardless of whether a data source was provisioned or not. In previous versions of Grafana, if a data source was provisioned, the only way to add correlations to it was also with provisioning. Now, that's no longer the case, and you can easily create new correlations mixing both methods—using the **Administration** page or provisioning. -{{< video-embed src="/media/docs/tempo/screen-recording-grafana-10.2-traceql-query-editor-improvements.mp4" >}} +To enable this feature, contact Grafana Support. ## Grafana OnCall integration for Alerting @@ -333,69 +355,58 @@ Use the Grafana Alerting - Grafana OnCall integration to effortlessly connect al To learn more, refer to the [Grafana OnCall integration for Alerting documentation](/docs/grafana/next/alerting/alerting-rules/manage-contact-points/configure-oncall/). -## New browse dashboards +## API throttling for Datadog data source - + -September 19, 2023 +September 1, 2023 _Generally available in Grafana Cloud_ -The new browse dashboards interface features a more compact design, making it easier to navigate, search for, and manage for your folders and dashboards. The new interface also has many performance improvements, especially for instances with a large number of folders and dashboards. - -To make using folders easier and more consistent, there is no longer a special **General** folder. Dashboards without a folder, or dashboards previously in **General**, are now shown at the root level. +The Datadog data source supports blocking API requests based on upstream rate limits (for metric queries). With this update, you can set a rate limit percentage at which the plugin stops sending queries. -To learn more, refer to the following video demo. +To learn more, refer to [Datadog data source settings](/docs/plugins/grafana-datadog-datasource/latest#configure-the-data-source), as well as the following video demo. -{{< video-embed src="/media/docs/grafana/2023-09-11-New-Browse-Dashboards-Enablement-Video.mp4" >}} +{{< video-embed src="/media/docs/datadog/datadog-rate-limit.mp4" >}} -## Multiple spansets per trace +## Log aggregation for Datadog data source - + -October 24, 2023 +August 31, 2023 _Generally available in Grafana Cloud_ -The [TraceQL query editor](https://grafana.com/docs/tempo//traceql/#traceql-query-editor) has been improved to facilitate the grouping of multiple spans per trace in TraceQL queries. For example, when the following `by(resource.service.name)` is added to your TraceQL query, it will group the spans in each trace by `resource.service.name`. +The Datadog data source now supports log aggregation. This feature helps aggregate logs/events into buckets and compute metrics and time series. For more information, refer to [Datadog log aggregation](/docs/plugins/grafana-datadog-datasource/latest#logs-analytics--aggregation). -{{< figure src="/media/docs/tempo/multiple-spansets-per-trace-10-2.png" max-width="750px" caption="Multiple spansets per trace" >}} +{{< video-embed src="/media/docs/datadog/datadog-log-aggregation.mp4" >}} -## Temporary credentials in CloudWatch data source +## Permission validation on custom role creation and update - + -October 24, 2023 + -_Available in private preview in Grafana Cloud_ +August 25, 2023 -The Grafana Assume Role authentication provider lets Grafana Cloud users of the CloudWatch data source authenticate with AWS without having to create and maintain long term AWS Users. Using the new assume role authentication method, you no longer have to rotate access and secret keys in your CloudWatch data source. Instead, Grafana Cloud users can create an identity access and management (IAM) role that has a trust relationship with Grafana's AWS account; Grafana's AWS account will then use AWS Secure Token Service (STS) to create temporary credentials to access the user's AWS data. +_Generally available in Grafana Cloud_ -To learn more, refer to the [CloudWatch authentication documentation](/docs/grafana/next/datasources/aws-cloudwatch/aws-authentication). +With the current release, we enabled RBAC permission validation (`rbac.permission_validation_enabled` setting) by default. This means that the permissions provided in the request during custom role creation or update are validated against the list of [available permissions and their scopes](https://grafana.com/docs/grafana//administration/roles-and-permissions/access-control/custom-role-actions-scopes/#action-definitions). If the request contains a permission that is not available or the scope of the permission is not valid, the request is rejected with an error message. -## Recorded queries: Record multiple metrics from a single query +## Query-type template variables for Tempo data source - - + + -October 3, 2023 +August 24, 2023 _Generally available in Grafana Cloud_ -With recorded queries, a single recorded query can now record multiple metrics. - -## Permission validation on custom role creation and update - - - - - - -August 25, 2023 +The Tempo data source now supports query-type template variables. With this update, you can create variables for which the values are a list of attribute names or attribute values seen on spans received by Tempo. -_Generally available in Grafana Cloud_ +To learn more, refer to the following video demo, as well as the [Grafana Variables documentation](/docs/grafana/next/dashboards/variables/). -With the current release, we enabled RBAC permission validation (`rbac.permission_validation_enabled` setting) by default. This means that the permissions provided in the request during custom role creation or update are validated against the list of [available permissions and their scopes](https://grafana.com/docs/grafana//administration/roles-and-permissions/access-control/custom-role-actions-scopes/#action-definitions). If the request contains a permission that is not available or the scope of the permission is not valid, the request is rejected with an error message. +{{< video-embed src="/media/docs/tempo/screen-recording-grafana-10.2-tempo-query-type-template-variables.mp4" >}} diff --git a/go.mod b/go.mod index 8273280fcf4d3..c74c5a61c0ab0 100644 --- a/go.mod +++ b/go.mod @@ -42,7 +42,7 @@ require ( github.com/blang/semver/v4 v4.0.0 // @grafana/grafana-delivery github.com/bradfitz/gomemcache v0.0.0-20190913173617-a41fca850d0b // @grafana/backend-platform github.com/centrifugal/centrifuge v0.30.2 // @grafana/grafana-app-platform-squad - github.com/crewjam/saml v0.4.13 // @grafana/backend-platform + github.com/crewjam/saml v0.4.13 // @grafana/grafana-authnz-team github.com/fatih/color v1.15.0 // @grafana/backend-platform github.com/gchaincl/sqlhooks v1.3.0 // @grafana/backend-platform github.com/go-git/go-git/v5 v5.4.2 // @grafana/grafana-app-platform-squad @@ -65,7 +65,7 @@ require ( github.com/grafana/cuetsy v0.1.10 // @grafana/grafana-as-code github.com/grafana/grafana-aws-sdk v0.19.1 // @grafana/aws-datasources github.com/grafana/grafana-azure-sdk-go v1.9.0 // @grafana/backend-platform - github.com/grafana/grafana-plugin-sdk-go v0.185.0 // @grafana/plugins-platform-backend + github.com/grafana/grafana-plugin-sdk-go v0.187.0 // @grafana/plugins-platform-backend github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // @grafana/backend-platform github.com/hashicorp/go-hclog v1.5.0 // @grafana/plugins-platform-backend github.com/hashicorp/go-plugin v1.4.9 // @grafana/plugins-platform-backend diff --git a/go.sum b/go.sum index e68097965cda4..750fb55ec7bf2 100644 --- a/go.sum +++ b/go.sum @@ -1822,8 +1822,8 @@ github.com/grafana/grafana-google-sdk-go v0.1.0 h1:LKGY8z2DSxKjYfr2flZsWgTRTZ6HG github.com/grafana/grafana-google-sdk-go v0.1.0/go.mod h1:Vo2TKWfDVmNTELBUM+3lkrZvFtBws0qSZdXhQxRdJrE= github.com/grafana/grafana-plugin-sdk-go v0.94.0/go.mod h1:3VXz4nCv6wH5SfgB3mlW39s+c+LetqSCjFj7xxPC5+M= github.com/grafana/grafana-plugin-sdk-go v0.114.0/go.mod h1:D7x3ah+1d4phNXpbnOaxa/osSaZlwh9/ZUnGGzegRbk= -github.com/grafana/grafana-plugin-sdk-go v0.185.0 h1:wfnCx53gQO4PMTHvNlifzSU5iIrGSnhjOApIzMrbtGw= -github.com/grafana/grafana-plugin-sdk-go v0.185.0/go.mod h1:PHK8eQOz3ES28RmImdTHNOTxBZaH6mb/ytJGxk7VVJc= +github.com/grafana/grafana-plugin-sdk-go v0.187.0 h1:lOwoFbbTs27KqR3F32GvOX9Et3Ek8p8qsFw+SUJtAAM= +github.com/grafana/grafana-plugin-sdk-go v0.187.0/go.mod h1:PHK8eQOz3ES28RmImdTHNOTxBZaH6mb/ytJGxk7VVJc= github.com/grafana/kindsys v0.0.0-20230508162304-452481b63482 h1:1YNoeIhii4UIIQpCPU+EXidnqf449d0C3ZntAEt4KSo= github.com/grafana/kindsys v0.0.0-20230508162304-452481b63482/go.mod h1:GNcfpy5+SY6RVbNGQW264gC0r336Dm+0zgQ5vt6+M8Y= github.com/grafana/prometheus-alertmanager v0.25.1-0.20230918083811-3513be6760b7 h1:7gsywzIb39SYZEp9qOnNaxD4d9OOkAfJGvnRUQUtlTM= diff --git a/lerna.json b/lerna.json index c6ce7b48bd92b..5f419bdcc36bd 100644 --- a/lerna.json +++ b/lerna.json @@ -1,8 +1,6 @@ { "npmClient": "yarn", "useWorkspaces": true, - "packages": [ - "packages/*" - ], + "packages": ["packages/*"], "version": "10.3.0-pre" } diff --git a/package.json b/package.json index abe2e821b63ca..59d2436b69dd5 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "releaseNotesUrl": "https://grafana.com/docs/grafana/next/release-notes/" }, "devDependencies": { - "@babel/core": "7.23.0", + "@babel/core": "7.23.2", "@babel/plugin-proposal-class-properties": "7.18.6", "@babel/plugin-proposal-nullish-coalescing-operator": "7.18.6", "@babel/plugin-proposal-object-rest-spread": "7.20.7", @@ -75,8 +75,8 @@ "@babel/plugin-transform-typescript": "7.22.9", "@babel/preset-env": "7.23.2", "@babel/preset-react": "7.22.5", - "@babel/preset-typescript": "7.23.0", - "@babel/runtime": "7.23.1", + "@babel/preset-typescript": "7.23.2", + "@babel/runtime": "7.23.2", "@betterer/betterer": "5.4.0", "@betterer/cli": "5.4.0", "@betterer/eslint": "5.4.0", @@ -214,11 +214,11 @@ "react-test-renderer": "18.2.0", "redux-mock-store": "1.5.4", "rimraf": "5.0.1", - "rudder-sdk-js": "2.37.0", - "sass": "1.63.6", + "rudder-sdk-js": "2.43.0", + "sass": "1.69.4", "sass-loader": "13.3.2", "style-loader": "3.3.3", - "stylelint": "15.10.1", + "stylelint": "15.11.0", "stylelint-config-prettier": "9.0.5", "stylelint-config-sass-guidelines": "10.0.0", "terser-webpack-plugin": "5.3.9", @@ -229,12 +229,12 @@ "ts-node": "10.9.1", "typescript": "4.8.4", "wait-on": "7.0.1", - "webpack": "5.88.1", + "webpack": "5.89.0", "webpack-bundle-analyzer": "4.9.0", "webpack-cli": "5.1.4", "webpack-dev-server": "4.15.1", "webpack-manifest-plugin": "5.0.0", - "webpack-merge": "5.9.0", + "webpack-merge": "5.10.0", "yaml": "^2.0.0", "yargs": "^17.5.1" }, @@ -361,7 +361,7 @@ "prismjs": "1.29.0", "prop-types": "15.8.1", "pseudoizer": "^0.1.0", - "rc-cascader": "3.18.1", + "rc-cascader": "3.19.0", "rc-drawer": "6.5.2", "rc-slider": "10.3.1", "rc-time-picker": "3.7.3", @@ -399,7 +399,7 @@ "react-window-infinite-loader": "1.0.9", "redux": "4.2.1", "redux-thunk": "2.4.2", - "regenerator-runtime": "0.13.11", + "regenerator-runtime": "0.14.0", "reselect": "4.1.8", "rxjs": "7.8.1", "sass": "link:./public/sass", @@ -425,15 +425,14 @@ "resolutions": { "underscore": "1.13.6", "@types/slate": "0.47.11", - "@rushstack/rig-package": "0.5.1", - "@rushstack/ts-command-line": "4.16.1", "ngtemplate-loader/loader-utils": "^2.0.0", - "trim": "1.0.1", "semver@~7.0.0": "7.5.4", "semver@7.3.4": "7.5.4", "slate-dev-environment@^0.2.2": "patch:slate-dev-environment@npm:0.2.5#.yarn/patches/slate-dev-environment-npm-0.2.5-9aeb7da7b5.patch", "react-split-pane@0.1.92": "patch:react-split-pane@npm:0.1.92#.yarn/patches/react-split-pane-npm-0.1.92-93dbf51dff.patch", - "@storybook/blocks@7.4.5": "patch:@storybook/blocks@npm%3A7.4.5#./.yarn/patches/@storybook-blocks-npm-7.4.5-5a2374564a.patch" + "@storybook/blocks@7.4.5": "patch:@storybook/blocks@npm%3A7.4.5#./.yarn/patches/@storybook-blocks-npm-7.4.5-5a2374564a.patch", + "history@4.10.1": "patch:history@npm%3A4.10.1#./.yarn/patches/history-npm-4.10.1-ee217563ae.patch", + "history@^4.9.0": "patch:history@npm%3A4.10.1#./.yarn/patches/history-npm-4.10.1-ee217563ae.patch" }, "workspaces": { "packages": [ diff --git a/packages/grafana-data/package.json b/packages/grafana-data/package.json index 3706832ac1eac..f946d80b87f84 100644 --- a/packages/grafana-data/package.json +++ b/packages/grafana-data/package.json @@ -53,7 +53,7 @@ "ol": "7.4.0", "papaparse": "5.4.1", "react-use": "17.4.0", - "regenerator-runtime": "0.13.11", + "regenerator-runtime": "0.14.0", "rxjs": "7.8.1", "string-hash": "^1.1.3", "tinycolor2": "1.6.0", diff --git a/packages/grafana-data/src/datetime/moment_wrapper.ts b/packages/grafana-data/src/datetime/moment_wrapper.ts index 33f53fb0a172c..ae0f8d66ec160 100644 --- a/packages/grafana-data/src/datetime/moment_wrapper.ts +++ b/packages/grafana-data/src/datetime/moment_wrapper.ts @@ -67,7 +67,7 @@ export interface DateTime extends Object { startOf: (unitOfTime: DurationUnit) => DateTime; subtract: (amount?: DateTimeInput, unit?: DurationUnit) => DateTime; toDate: () => Date; - toISOString: () => string; + toISOString: (keepOffset?: boolean) => string; isoWeekday: (day?: number | string) => number | string; valueOf: () => number; unix: () => number; diff --git a/packages/grafana-data/src/types/featureToggles.gen.ts b/packages/grafana-data/src/types/featureToggles.gen.ts index e4b4ea317d217..e48bb5d8ff797 100644 --- a/packages/grafana-data/src/types/featureToggles.gen.ts +++ b/packages/grafana-data/src/types/featureToggles.gen.ts @@ -147,4 +147,6 @@ export interface FeatureToggles { panelTitleSearchInV1?: boolean; pluginsInstrumentationStatusSource?: boolean; costManagementUi?: boolean; + managedPluginsInstall?: boolean; + prometheusPromQAIL?: boolean; } diff --git a/packages/grafana-e2e/package.json b/packages/grafana-e2e/package.json index 8098d0f2de3ab..95aa26c950e4d 100644 --- a/packages/grafana-e2e/package.json +++ b/packages/grafana-e2e/package.json @@ -57,10 +57,10 @@ "rollup-plugin-dts": "^5.0.0", "rollup-plugin-esbuild": "5.0.0", "rollup-plugin-node-externals": "^5.0.0", - "webpack": "5.88.1" + "webpack": "5.89.0" }, "dependencies": { - "@babel/core": "7.23.0", + "@babel/core": "7.23.2", "@babel/preset-env": "7.23.2", "@cypress/webpack-preprocessor": "5.17.1", "@grafana/e2e-selectors": "10.3.0-pre", diff --git a/packages/grafana-eslint-rules/README.md b/packages/grafana-eslint-rules/README.md index de81df7801f7e..cf90384e326db 100644 --- a/packages/grafana-eslint-rules/README.md +++ b/packages/grafana-eslint-rules/README.md @@ -16,7 +16,7 @@ Now, we prefer using data-testid for E2E selectors. Check if border-radius theme tokens are used. -To improve the consistency across Grafana we encourage devs to use tokens instead of custom values. In this case, we want the `borderRadius` to use the appropiate token such as `theme.shape.radius.default`, `theme.shape.radius.pill` or `theme.shape.radius.circle`. +To improve the consistency across Grafana we encourage devs to use tokens instead of custom values. In this case, we want the `borderRadius` to use the appropriate token such as `theme.shape.radius.default`, `theme.shape.radius.pill` or `theme.shape.radius.circle`. ### `@grafana/theme-token-usage` diff --git a/packages/grafana-flamegraph/package.json b/packages/grafana-flamegraph/package.json index 105166db5198f..7483cfaa9e3e8 100644 --- a/packages/grafana-flamegraph/package.json +++ b/packages/grafana-flamegraph/package.json @@ -56,7 +56,7 @@ "tslib": "2.6.0" }, "devDependencies": { - "@babel/core": "7.23.0", + "@babel/core": "7.23.2", "@babel/preset-env": "7.23.2", "@babel/preset-react": "7.22.5", "@grafana/tsconfig": "^1.2.0-rc1", diff --git a/packages/grafana-flamegraph/src/FlameGraph/FlameGraph.tsx b/packages/grafana-flamegraph/src/FlameGraph/FlameGraph.tsx index 485d8b5e19ad7..928654c66d7d3 100644 --- a/packages/grafana-flamegraph/src/FlameGraph/FlameGraph.tsx +++ b/packages/grafana-flamegraph/src/FlameGraph/FlameGraph.tsx @@ -16,20 +16,17 @@ // OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER // TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF // THIS SOFTWARE. -import { css } from '@emotion/css'; -import React, { MouseEvent as ReactMouseEvent, useCallback, useEffect, useMemo, useRef, useState } from 'react'; -import { useMeasure } from 'react-use'; +import { css, cx } from '@emotion/css'; +import React, { useMemo } from 'react'; import { Icon } from '@grafana/ui'; import { PIXELS_PER_LEVEL } from '../constants'; import { ClickedItemData, ColorScheme, ColorSchemeDiff, TextAlign } from '../types'; -import FlameGraphContextMenu from './FlameGraphContextMenu'; +import FlameGraphCanvas from './FlameGraphCanvas'; import FlameGraphMetadata from './FlameGraphMetadata'; -import FlameGraphTooltip from './FlameGraphTooltip'; -import { FlameGraphDataContainer, LevelItem } from './dataTransform'; -import { getBarX, useFlameRender } from './rendering'; +import { FlameGraphDataContainer } from './dataTransform'; type Props = { data: FlameGraphDataContainer; @@ -67,118 +64,66 @@ const FlameGraph = ({ }: Props) => { const styles = getStyles(); - const [levels, totalProfileTicks, totalProfileTicksRight, totalViewTicks, callersCount] = useMemo(() => { + const [levels, levelsCallers, totalProfileTicks, totalProfileTicksRight, totalViewTicks] = useMemo(() => { let levels = data.getLevels(); let totalProfileTicks = levels.length ? levels[0][0].value : 0; let totalProfileTicksRight = levels.length ? levels[0][0].valueRight : undefined; - let callersCount = 0; let totalViewTicks = totalProfileTicks; + let levelsCallers = undefined; if (sandwichItem) { const [callers, callees] = data.getSandwichLevels(sandwichItem); - levels = [...callers, [], ...callees]; - // We need this separate as in case of diff profile we to compute diff colors based on the original ticks. + levels = callees; + levelsCallers = callers; + // We need this separate as in case of diff profile we want to compute diff colors based on the original ticks. totalViewTicks = callees[0]?.[0]?.value ?? 0; - callersCount = callers.length; } - return [levels, totalProfileTicks, totalProfileTicksRight, totalViewTicks, callersCount]; + return [levels, levelsCallers, totalProfileTicks, totalProfileTicksRight, totalViewTicks]; }, [data, sandwichItem]); - const [sizeRef, { width: wrapperWidth }] = useMeasure(); - const graphRef = useRef(null); - const [tooltipItem, setTooltipItem] = useState(); - - const [clickedItemData, setClickedItemData] = useState(); - - useFlameRender({ - canvasRef: graphRef, - colorScheme, + const commonCanvasProps = { data, - focusedItemData, - levels, - rangeMax, rangeMin, + rangeMax, search, + setRangeMin, + setRangeMax, + onItemFocused, + focusedItemData, textAlign, + onSandwich, + colorScheme, + totalProfileTicks, + totalProfileTicksRight, totalViewTicks, - // We need this so that if we have a diff profile and are in sandwich view we still show the same diff colors. - totalColorTicks: data.isDiffFlamegraph() ? totalProfileTicks : totalViewTicks, - totalTicksRight: totalProfileTicksRight, - wrapperWidth, - }); - - const onGraphClick = useCallback( - (e: ReactMouseEvent) => { - setTooltipItem(undefined); - const pixelsPerTick = graphRef.current!.clientWidth / totalViewTicks / (rangeMax - rangeMin); - const { levelIndex, barIndex } = convertPixelCoordinatesToBarCoordinates( - { x: e.nativeEvent.offsetX, y: e.nativeEvent.offsetY }, - levels, - pixelsPerTick, - totalViewTicks, - rangeMin - ); - - // if clicking on a block in the canvas - if (barIndex !== -1 && !isNaN(levelIndex) && !isNaN(barIndex)) { - const item = levels[levelIndex][barIndex]; - setClickedItemData({ - posY: e.clientY, - posX: e.clientX, - item, - level: levelIndex, - label: data.getLabel(item.itemIndexes[0]), - }); - } else { - // if clicking on the canvas but there is no block beneath the cursor - setClickedItemData(undefined); - } - }, - [data, rangeMin, rangeMax, totalViewTicks, levels] - ); - - const [mousePosition, setMousePosition] = useState<{ x: number; y: number }>(); - const onGraphMouseMove = useCallback( - (e: ReactMouseEvent) => { - if (clickedItemData === undefined) { - setTooltipItem(undefined); - setMousePosition(undefined); - const pixelsPerTick = graphRef.current!.clientWidth / totalViewTicks / (rangeMax - rangeMin); - const { levelIndex, barIndex } = convertPixelCoordinatesToBarCoordinates( - { x: e.nativeEvent.offsetX, y: e.nativeEvent.offsetY }, - levels, - pixelsPerTick, - totalViewTicks, - rangeMin - ); + }; + const canvas = levelsCallers ? ( + <> +
+
+ Callers + +
+ +
- if (barIndex !== -1 && !isNaN(levelIndex) && !isNaN(barIndex)) { - setMousePosition({ x: e.clientX, y: e.clientY }); - setTooltipItem(levels[levelIndex][barIndex]); - } - } - }, - [rangeMin, rangeMax, totalViewTicks, clickedItemData, levels, setMousePosition] +
+
+ + Callees +
+ +
+ + ) : ( + ); - const onGraphMouseLeave = useCallback(() => { - setTooltipItem(undefined); - }, []); - - // hide context menu if outside the flame graph canvas is clicked - useEffect(() => { - const handleOnClick = (e: MouseEvent) => { - if ( - e.target instanceof HTMLElement && - e.target.parentElement?.id !== 'flameGraphCanvasContainer_clickOutsideCheck' - ) { - setClickedItemData(undefined); - } - }; - window.addEventListener('click', handleOnClick); - return () => window.removeEventListener('click', handleOnClick); - }, [setClickedItemData]); - return (
-
- {sandwichItem && ( -
-
- Callers - -
-
- - Callees -
-
- )} -
- -
-
- - {clickedItemData && ( - { - setClickedItemData(undefined); - }} - onItemFocus={() => { - setRangeMin(clickedItemData.item.start / totalViewTicks); - setRangeMax((clickedItemData.item.start + clickedItemData.item.value) / totalViewTicks); - onItemFocused(clickedItemData); - }} - onSandwich={() => { - onSandwich(data.getLabel(clickedItemData.item.itemIndexes[0])); - }} - /> - )} + {canvas}
); }; @@ -244,15 +147,10 @@ const getStyles = () => ({ flex-grow: 1; flex-basis: 50%; `, - canvasContainer: css` - label: canvasContainer; + sandwichCanvasWrapper: css` + label: sandwichCanvasWrapper; display: flex; - `, - canvasWrapper: css` - label: canvasWrapper; - cursor: pointer; - flex: 1; - overflow: hidden; + margin-bottom: ${PIXELS_PER_LEVEL / window.devicePixelRatio}px; `, sandwichMarker: css` label: sandwichMarker; @@ -261,58 +159,15 @@ const getStyles = () => ({ overflow: hidden; white-space: nowrap; `, + + sandwichMarkerCalees: css` + label: sandwichMarkerCalees; + text-align: right; + `, sandwichMarkerIcon: css` label: sandwichMarkerIcon; vertical-align: baseline; `, }); -// Convert pixel coordinates to bar coordinates in the levels array so that we can add mouse events like clicks to -// the canvas. -const convertPixelCoordinatesToBarCoordinates = ( - // position relative to the start of the graph - pos: { x: number; y: number }, - levels: LevelItem[][], - pixelsPerTick: number, - totalTicks: number, - rangeMin: number -) => { - const levelIndex = Math.floor(pos.y / (PIXELS_PER_LEVEL / window.devicePixelRatio)); - const barIndex = getBarIndex(pos.x, levels[levelIndex], pixelsPerTick, totalTicks, rangeMin); - return { levelIndex, barIndex }; -}; - -/** - * Binary search for a bar in a level, based on the X pixel coordinate. Useful for detecting which bar did user click - * on. - */ -const getBarIndex = (x: number, level: LevelItem[], pixelsPerTick: number, totalTicks: number, rangeMin: number) => { - if (level) { - let start = 0; - let end = level.length - 1; - - while (start <= end) { - const midIndex = (start + end) >> 1; - const startOfBar = getBarX(level[midIndex].start, totalTicks, rangeMin, pixelsPerTick); - const startOfNextBar = getBarX( - level[midIndex].start + level[midIndex].value, - totalTicks, - rangeMin, - pixelsPerTick - ); - - if (startOfBar <= x && startOfNextBar >= x) { - return midIndex; - } - - if (startOfBar > x) { - end = midIndex - 1; - } else { - start = midIndex + 1; - } - } - } - return -1; -}; - export default FlameGraph; diff --git a/packages/grafana-flamegraph/src/FlameGraph/FlameGraphCanvas.tsx b/packages/grafana-flamegraph/src/FlameGraph/FlameGraphCanvas.tsx new file mode 100644 index 0000000000000..cdea47c4cfe09 --- /dev/null +++ b/packages/grafana-flamegraph/src/FlameGraph/FlameGraphCanvas.tsx @@ -0,0 +1,259 @@ +import { css } from '@emotion/css'; +import React, { MouseEvent as ReactMouseEvent, useCallback, useEffect, useRef, useState } from 'react'; +import { useMeasure } from 'react-use'; + +import { PIXELS_PER_LEVEL } from '../constants'; +import { ClickedItemData, ColorScheme, ColorSchemeDiff, TextAlign } from '../types'; + +import FlameGraphContextMenu from './FlameGraphContextMenu'; +import FlameGraphTooltip from './FlameGraphTooltip'; +import { FlameGraphDataContainer, LevelItem } from './dataTransform'; +import { getBarX, useFlameRender } from './rendering'; + +type Props = { + data: FlameGraphDataContainer; + rangeMin: number; + rangeMax: number; + search: string; + setRangeMin: (range: number) => void; + setRangeMax: (range: number) => void; + style?: React.CSSProperties; + onItemFocused: (data: ClickedItemData) => void; + focusedItemData?: ClickedItemData; + textAlign: TextAlign; + onSandwich: (label: string) => void; + colorScheme: ColorScheme | ColorSchemeDiff; + + root: LevelItem; + direction: 'children' | 'parents'; + // Depth in number of levels + depth: number; + + totalProfileTicks: number; + totalProfileTicksRight?: number; + totalViewTicks: number; +}; + +const FlameGraphCanvas = ({ + data, + rangeMin, + rangeMax, + search, + setRangeMin, + setRangeMax, + onItemFocused, + focusedItemData, + textAlign, + onSandwich, + colorScheme, + totalProfileTicks, + totalProfileTicksRight, + totalViewTicks, + root, + direction, + depth, +}: Props) => { + const styles = getStyles(); + + const [sizeRef, { width: wrapperWidth }] = useMeasure(); + const graphRef = useRef(null); + const [tooltipItem, setTooltipItem] = useState(); + + const [clickedItemData, setClickedItemData] = useState(); + + useFlameRender({ + canvasRef: graphRef, + colorScheme, + data, + focusedItemData, + root, + direction, + depth, + rangeMax, + rangeMin, + search, + textAlign, + totalViewTicks, + // We need this so that if we have a diff profile and are in sandwich view we still show the same diff colors. + totalColorTicks: data.isDiffFlamegraph() ? totalProfileTicks : totalViewTicks, + totalTicksRight: totalProfileTicksRight, + wrapperWidth, + }); + + const onGraphClick = useCallback( + (e: ReactMouseEvent) => { + setTooltipItem(undefined); + const pixelsPerTick = graphRef.current!.clientWidth / totalViewTicks / (rangeMax - rangeMin); + const item = convertPixelCoordinatesToBarCoordinates( + { x: e.nativeEvent.offsetX, y: e.nativeEvent.offsetY }, + root, + direction, + depth, + pixelsPerTick, + totalViewTicks, + rangeMin + ); + + // if clicking on a block in the canvas + if (item) { + setClickedItemData({ + posY: e.clientY, + posX: e.clientX, + item, + label: data.getLabel(item.itemIndexes[0]), + }); + } else { + // if clicking on the canvas but there is no block beneath the cursor + setClickedItemData(undefined); + } + }, + [data, rangeMin, rangeMax, totalViewTicks, root, direction, depth] + ); + + const [mousePosition, setMousePosition] = useState<{ x: number; y: number }>(); + const onGraphMouseMove = useCallback( + (e: ReactMouseEvent) => { + if (clickedItemData === undefined) { + setTooltipItem(undefined); + setMousePosition(undefined); + const pixelsPerTick = graphRef.current!.clientWidth / totalViewTicks / (rangeMax - rangeMin); + const item = convertPixelCoordinatesToBarCoordinates( + { x: e.nativeEvent.offsetX, y: e.nativeEvent.offsetY }, + root, + direction, + depth, + pixelsPerTick, + totalViewTicks, + rangeMin + ); + + if (item) { + setMousePosition({ x: e.clientX, y: e.clientY }); + setTooltipItem(item); + } + } + }, + [rangeMin, rangeMax, totalViewTicks, clickedItemData, setMousePosition, root, direction, depth] + ); + + const onGraphMouseLeave = useCallback(() => { + setTooltipItem(undefined); + }, []); + + // hide context menu if outside the flame graph canvas is clicked + useEffect(() => { + const handleOnClick = (e: MouseEvent) => { + if ( + e.target instanceof HTMLElement && + e.target.parentElement?.id !== 'flameGraphCanvasContainer_clickOutsideCheck' + ) { + setClickedItemData(undefined); + } + }; + window.addEventListener('click', handleOnClick); + return () => window.removeEventListener('click', handleOnClick); + }, [setClickedItemData]); + + return ( +
+
+ +
+ + {clickedItemData && ( + { + setClickedItemData(undefined); + }} + onItemFocus={() => { + setRangeMin(clickedItemData.item.start / totalViewTicks); + setRangeMax((clickedItemData.item.start + clickedItemData.item.value) / totalViewTicks); + onItemFocused(clickedItemData); + }} + onSandwich={() => { + onSandwich(data.getLabel(clickedItemData.item.itemIndexes[0])); + }} + /> + )} +
+ ); +}; + +const getStyles = () => ({ + graph: css({ + label: 'graph', + overflow: 'auto', + height: '100%', + flexGrow: 1, + flexBasis: '50%', + }), + canvasContainer: css({ + label: 'canvasContainer', + display: 'flex', + }), + canvasWrapper: css({ + label: 'canvasWrapper', + cursor: 'pointer', + flex: 1, + overflow: 'hidden', + }), + sandwichMarker: css({ + label: 'sandwichMarker', + writingMode: 'vertical-lr', + transform: 'rotate(180deg)', + overflow: 'hidden', + whiteSpace: 'nowrap', + }), + sandwichMarkerIcon: css({ + label: 'sandwichMarkerIcon', + verticalAlign: 'baseline', + }), +}); + +const convertPixelCoordinatesToBarCoordinates = ( + // position relative to the start of the graph + pos: { x: number; y: number }, + root: LevelItem, + direction: 'children' | 'parents', + depth: number, + pixelsPerTick: number, + totalTicks: number, + rangeMin: number +): LevelItem | undefined => { + let next: LevelItem | undefined = root; + let currentLevel = direction === 'children' ? 0 : depth - 1; + const levelIndex = Math.floor(pos.y / (PIXELS_PER_LEVEL / window.devicePixelRatio)); + let found = undefined; + + while (next) { + const node: LevelItem = next; + next = undefined; + if (currentLevel === levelIndex) { + found = node; + break; + } + + const nextList = direction === 'children' ? node.children : node.parents || []; + + for (const child of nextList) { + const xStart = getBarX(child.start, totalTicks, rangeMin, pixelsPerTick); + const xEnd = getBarX(child.start + child.value, totalTicks, rangeMin, pixelsPerTick); + if (xStart <= pos.x && pos.x < xEnd) { + next = child; + currentLevel = currentLevel + (direction === 'children' ? 1 : -1); + break; + } + } + } + + return found; +}; + +export default FlameGraphCanvas; diff --git a/packages/grafana-flamegraph/src/FlameGraph/FlameGraphMetadata.test.tsx b/packages/grafana-flamegraph/src/FlameGraph/FlameGraphMetadata.test.tsx index a92270d6b7cf7..5779255ce9cf0 100644 --- a/packages/grafana-flamegraph/src/FlameGraph/FlameGraphMetadata.test.tsx +++ b/packages/grafana-flamegraph/src/FlameGraph/FlameGraphMetadata.test.tsx @@ -45,8 +45,8 @@ describe('FlameGraphMetadata', () => { children: [], itemIndexes: [3], start: 3, + level: 0, }, - level: 0, posX: 0, posY: 0, }, diff --git a/packages/grafana-flamegraph/src/FlameGraph/FlameGraphTooltip.test.tsx b/packages/grafana-flamegraph/src/FlameGraph/FlameGraphTooltip.test.tsx index 83ef43b8e08ab..408398e757438 100644 --- a/packages/grafana-flamegraph/src/FlameGraph/FlameGraphTooltip.test.tsx +++ b/packages/grafana-flamegraph/src/FlameGraph/FlameGraphTooltip.test.tsx @@ -33,7 +33,7 @@ describe('FlameGraphTooltip', () => { it('for bytes', () => { const tooltipData = getTooltipData( setupData('bytes'), - { start: 0, itemIndexes: [0], value: 8_624_078_250, children: [] }, + { start: 0, itemIndexes: [0], value: 8_624_078_250, children: [], level: 0 }, 8_624_078_250 ); expect(tooltipData).toEqual({ @@ -49,7 +49,7 @@ describe('FlameGraphTooltip', () => { it('with default unit', () => { const tooltipData = getTooltipData( setupData('none'), - { start: 0, itemIndexes: [0], value: 8_624_078_250, children: [] }, + { start: 0, itemIndexes: [0], value: 8_624_078_250, children: [], level: 0 }, 8_624_078_250 ); expect(tooltipData).toEqual({ @@ -65,7 +65,7 @@ describe('FlameGraphTooltip', () => { it('without unit', () => { const tooltipData = getTooltipData( setupData('none'), - { start: 0, itemIndexes: [0], value: 8_624_078_250, children: [] }, + { start: 0, itemIndexes: [0], value: 8_624_078_250, children: [], level: 0 }, 8_624_078_250 ); expect(tooltipData).toEqual({ @@ -81,7 +81,7 @@ describe('FlameGraphTooltip', () => { it('for objects', () => { const tooltipData = getTooltipData( setupData('short'), - { start: 0, itemIndexes: [0], value: 8_624_078_250, children: [] }, + { start: 0, itemIndexes: [0], value: 8_624_078_250, children: [], level: 0 }, 8_624_078_250 ); expect(tooltipData).toEqual({ @@ -97,7 +97,7 @@ describe('FlameGraphTooltip', () => { it('for nanoseconds', () => { const tooltipData = getTooltipData( setupData('ns'), - { start: 0, itemIndexes: [0], value: 8_624_078_250, children: [] }, + { start: 0, itemIndexes: [0], value: 8_624_078_250, children: [], level: 0 }, 8_624_078_250 ); expect(tooltipData).toEqual({ @@ -115,7 +115,7 @@ describe('getDiffTooltipData', () => { it('works with diff data', () => { const tooltipData = getDiffTooltipData( setupDiffData(), - { start: 0, itemIndexes: [1], value: 90, valueRight: 40, children: [] }, + { start: 0, itemIndexes: [1], value: 90, valueRight: 40, children: [], level: 0 }, 200 ); expect(tooltipData).toEqual([ diff --git a/packages/grafana-flamegraph/src/FlameGraph/__snapshots__/FlameGraph.test.tsx.snap b/packages/grafana-flamegraph/src/FlameGraph/__snapshots__/FlameGraph.test.tsx.snap index 49295e1c4a9bf..df6151e9b3c33 100644 --- a/packages/grafana-flamegraph/src/FlameGraph/__snapshots__/FlameGraph.test.tsx.snap +++ b/packages/grafana-flamegraph/src/FlameGraph/__snapshots__/FlameGraph.test.tsx.snap @@ -249,9 +249,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 546.26609963548, - "x": 399.0419198055893, - "y": 22, + "width": 397.5419198055893, + "x": 0.5, + "y": 44, }, "transform": [ 1, @@ -294,9 +294,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 546.26609963548, - "x": 399.0419198055893, - "y": 22, + "width": 397.5419198055893, + "x": 0.5, + "y": 44, }, "transform": [ 1, @@ -323,9 +323,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "maxWidth": null, - "text": "net/http.(*conn).serve (5.63 Bil)", - "x": 402.5419198055893, - "y": 33, + "text": "test/pkg/agent.(*Target).scrape (4.10 Bil)", + "x": 4, + "y": 55, }, "transform": [ 1, @@ -355,9 +355,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 600.7010935601459, - "x": 946.3080194410693, - "y": 22, + "width": 355.74362089914945, + "x": 0.5, + "y": 66, }, "transform": [ 1, @@ -400,9 +400,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 600.7010935601459, - "x": 946.3080194410693, - "y": 22, + "width": 355.74362089914945, + "x": 0.5, + "y": 66, }, "transform": [ 1, @@ -429,9 +429,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "maxWidth": null, - "text": "runtime.gcBgMarkWorker (6.19 Bil)", - "x": 949.8080194410693, - "y": 33, + "text": "test/pkg/distributor.(*Distributor).Push (3.67 Bil)", + "x": 4, + "y": 77, }, "transform": [ 1, @@ -445,7 +445,6 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -462,9 +461,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 3.888213851761847, - "x": 1547.5091130012152, - "y": 22, + "width": 108.84204131227219, + "x": 0.5, + "y": 88, }, "transform": [ 1, @@ -486,10 +485,11 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -506,9 +506,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 15.52490886998785, - "x": 1551.897326852977, - "y": 22, + "width": 108.84204131227219, + "x": 0.5, + "y": 88, }, "transform": [ 1, @@ -530,42 +530,14 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 15.52490886998785, - "x": 1551.897326852977, - "y": 22, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], + "maxWidth": null, + "text": "compress/gzip.(*Writer).Write (1.13 Bil)", + "x": 4, + "y": 99, }, "transform": [ 1, @@ -575,7 +547,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "fillText", }, { "props": { @@ -595,9 +567,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 15.52490886998785, - "x": 1568.4222357229648, - "y": 22, + "width": 102.03766707168894, + "x": 0.5, + "y": 110, }, "transform": [ 1, @@ -640,9 +612,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 15.52490886998785, - "x": 1568.4222357229648, - "y": 22, + "width": 102.03766707168894, + "x": 0.5, + "y": 110, }, "transform": [ 1, @@ -668,38 +640,10 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 15.552855407047389, - "x": 1584.4471445929528, - "y": 22, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], + "maxWidth": null, + "text": "compress/flate.(*compressor).write (1.06 Bil)", + "x": 4, + "y": 121, }, "transform": [ 1, @@ -709,7 +653,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "fillText", }, { "props": { @@ -729,9 +673,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 397.5419198055893, + "width": 98.1494532199271, "x": 0.5, - "y": 44, + "y": 132, }, "transform": [ 1, @@ -774,9 +718,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 397.5419198055893, + "width": 98.1494532199271, "x": 0.5, - "y": 44, + "y": 132, }, "transform": [ 1, @@ -803,9 +747,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "maxWidth": null, - "text": "test/pkg/agent.(*Target).scrape (4.10 Bil)", + "text": "compress/flate.(*compressor).deflate (1.02 Bil)", "x": 4, - "y": 55, + "y": 143, }, "transform": [ 1, @@ -835,9 +779,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 541.4058323207777, - "x": 399.0419198055893, - "y": 44, + "width": 13.580801944106927, + "x": 0.5, + "y": 154, }, "transform": [ 1, @@ -880,9 +824,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 541.4058323207777, - "x": 399.0419198055893, - "y": 44, + "width": 13.580801944106927, + "x": 0.5, + "y": 154, }, "transform": [ 1, @@ -908,24 +852,6 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "maxWidth": null, - "text": "net/http.serverHandler.ServeHTTP (5.58 Bil)", - "x": 402.5419198055893, - "y": 55, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -942,9 +868,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 4.860267314702309, - "x": 940.947752126367, - "y": 44, + "width": 13.580801944106927, + "x": 0.5, + "y": 176, }, "transform": [ 1, @@ -966,10 +892,11 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -986,9 +913,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 598.7569866342649, - "x": 946.3080194410693, - "y": 44, + "width": 13.580801944106927, + "x": 0.5, + "y": 176, }, "transform": [ 1, @@ -1010,7 +937,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -1031,9 +958,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 598.7569866342649, - "x": 946.3080194410693, - "y": 44, + "width": 4.860267314702309, + "x": 0, + "y": 198, }, "transform": [ 1, @@ -1057,23 +984,6 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, - { - "props": { - "maxWidth": null, - "text": "runtime.systemstack (6.17 Bil)", - "x": 949.8080194410693, - "y": 55, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, { "props": { "fillRule": "nonzero", @@ -1093,9 +1003,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 5.832320777642771, - "x": 1545.5650060753342, - "y": 44, + "width": 2.9161603888213854, + "x": 0, + "y": 220, }, "transform": [ 1, @@ -1121,6 +1031,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -1137,9 +1048,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 14.552855407047389, - "x": 1551.897326852977, - "y": 44, + "width": 1.9441069258809236, + "x": 0, + "y": 242, }, "transform": [ 1, @@ -1161,7 +1072,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -1182,9 +1093,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 14.552855407047389, - "x": 1551.897326852977, - "y": 44, + "width": 0.9720534629404618, + "x": 0, + "y": 264, }, "transform": [ 1, @@ -1227,9 +1138,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 33.0498177399757, - "x": 1566.9501822600243, - "y": 44, + "width": 0.9720534629404618, + "x": 1.9441069258809236, + "y": 242, }, "transform": [ 1, @@ -1255,6 +1166,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -1271,9 +1183,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 355.74362089914945, - "x": 0.5, - "y": 66, + "width": 0.9720534629404618, + "x": 1.9441069258809236, + "y": 264, }, "transform": [ 1, @@ -1295,7 +1207,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -1316,9 +1228,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 355.74362089914945, - "x": 0.5, - "y": 66, + "width": 0.9720534629404618, + "x": 1.9441069258809236, + "y": 286, }, "transform": [ 1, @@ -1344,23 +1256,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "maxWidth": null, - "text": "test/pkg/distributor.(*Distributor).Push (3.67 Bil)", - "x": 4, - "y": 77, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -1377,9 +1273,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 40.798298906439854, - "x": 357.24362089914945, - "y": 66, + "width": 0.9720534629404618, + "x": 1.9441069258809236, + "y": 308, }, "transform": [ 1, @@ -1401,7 +1297,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -1422,9 +1318,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 40.798298906439854, - "x": 357.24362089914945, - "y": 66, + "width": 0.9720534629404618, + "x": 1.9441069258809236, + "y": 330, }, "transform": [ 1, @@ -1450,23 +1346,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "maxWidth": null, - "text": "io/ioutil.ReadAll (430 Mil)", - "x": 360.74362089914945, - "y": 77, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -1483,9 +1363,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 541.4058323207777, - "x": 399.0419198055893, - "y": 66, + "width": 0.9720534629404618, + "x": 1.9441069258809236, + "y": 352, }, "transform": [ 1, @@ -1507,7 +1387,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -1528,9 +1408,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 541.4058323207777, - "x": 399.0419198055893, - "y": 66, + "width": 0.9720534629404618, + "x": 2.9161603888213854, + "y": 220, }, "transform": [ 1, @@ -1556,10 +1436,38 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "maxWidth": null, - "text": "net/http.HandlerFunc.ServeHTTP (5.58 Bil)", - "x": 402.5419198055893, - "y": 77, + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 2.9161603888213854, + "y": 242, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], }, "transform": [ 1, @@ -1569,7 +1477,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fillText", + "type": "fill", }, { "props": { @@ -1590,9 +1498,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 4.860267314702309, - "x": 940.947752126367, - "y": 66, + "width": 0.9720534629404618, + "x": 2.9161603888213854, + "y": 264, }, "transform": [ 1, @@ -1618,6 +1526,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -1634,9 +1543,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 598.7569866342649, - "x": 946.3080194410693, - "y": 66, + "width": 0.9720534629404618, + "x": 2.9161603888213854, + "y": 286, }, "transform": [ 1, @@ -1658,7 +1567,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -1679,9 +1588,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 598.7569866342649, - "x": 946.3080194410693, - "y": 66, + "width": 7.776427703523694, + "x": 4.860267314702309, + "y": 198, }, "transform": [ 1, @@ -1707,10 +1616,38 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "maxWidth": null, - "text": "runtime.gcBgMarkWorker.func2 (6.17 Bil)", - "x": 949.8080194410693, - "y": 77, + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 3.888213851761847, + "x": 4.860267314702309, + "y": 220, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], }, "transform": [ 1, @@ -1720,7 +1657,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fillText", + "type": "fill", }, { "props": { @@ -1741,9 +1678,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 19.441069258809236, - "x": 1545.5650060753342, - "y": 66, + "width": 0.9720534629404618, + "x": 12.636695018226003, + "y": 198, }, "transform": [ 1, @@ -1786,9 +1723,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 32.077764277035236, - "x": 1567.9222357229648, - "y": 66, + "width": 0.9720534629404618, + "x": 13.608748481166465, + "y": 198, }, "transform": [ 1, @@ -1830,9 +1767,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 108.84204131227219, - "x": 0.5, - "y": 88, + "width": 50.51883353584447, + "x": 15.080801944106927, + "y": 154, }, "transform": [ 1, @@ -1875,9 +1812,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 108.84204131227219, - "x": 0.5, - "y": 88, + "width": 50.51883353584447, + "x": 15.080801944106927, + "y": 154, }, "transform": [ 1, @@ -1904,9 +1841,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "maxWidth": null, - "text": "compress/gzip.(*Writer).Write (1.13 Bil)", - "x": 4, - "y": 99, + "text": "compress/flate.(*compressor).findMatch (530 Mil)", + "x": 18.580801944106927, + "y": 165, }, "transform": [ 1, @@ -1920,6 +1857,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -1936,9 +1874,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 36.91008505467801, - "x": 110.34204131227219, - "y": 88, + "width": 7.776427703523694, + "x": 66.0996354799514, + "y": 154, }, "transform": [ 1, @@ -1960,7 +1898,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -1981,9 +1919,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 36.91008505467801, - "x": 110.34204131227219, - "y": 88, + "width": 3.888213851761847, + "x": 99.1494532199271, + "y": 132, }, "transform": [ 1, @@ -2009,10 +1947,38 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "maxWidth": null, - "text": "test/pkg/pprof.OpenRaw (390 Mil)", - "x": 113.84204131227219, - "y": 99, + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 6.804374240583233, + "x": 103.03766707168894, + "y": 110, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], }, "transform": [ 1, @@ -2022,10 +1988,11 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fillText", + "type": "fill", }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -2042,9 +2009,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 19.413122721749698, - "x": 148.2521263669502, - "y": 88, + "width": 4.860267314702309, + "x": 103.03766707168894, + "y": 132, }, "transform": [ 1, @@ -2066,7 +2033,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -2087,9 +2054,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 19.413122721749698, - "x": 148.2521263669502, - "y": 88, + "width": 4.860267314702309, + "x": 103.03766707168894, + "y": 154, }, "transform": [ 1, @@ -2113,50 +2080,6 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 177.85783718104497, - "x": 168.66524908869988, - "y": 88, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, { "props": { "fillRule": "nonzero", @@ -2176,9 +2099,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 177.85783718104497, - "x": 168.66524908869988, - "y": 88, + "width": 2.9161603888213854, + "x": 103.03766707168894, + "y": 176, }, "transform": [ 1, @@ -2202,23 +2125,6 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, - { - "props": { - "maxWidth": null, - "text": "test/pkg/pprof.(*Profile).Normalize (1.84 Bil)", - "x": 172.16524908869988, - "y": 99, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, { "props": { "fillRule": "nonzero", @@ -2238,9 +2144,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 9.720534629404618, - "x": 347.02308626974485, - "y": 88, + "width": 0.9720534629404618, + "x": 105.95382746051034, + "y": 176, }, "transform": [ 1, @@ -2264,50 +2170,6 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 40.798298906439854, - "x": 357.24362089914945, - "y": 88, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, { "props": { "fillRule": "nonzero", @@ -2327,9 +2189,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 40.798298906439854, - "x": 357.24362089914945, - "y": 88, + "width": 0.9720534629404618, + "x": 105.95382746051034, + "y": 198, }, "transform": [ 1, @@ -2355,23 +2217,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "maxWidth": null, - "text": "io.ReadAll (430 Mil)", - "x": 360.74362089914945, - "y": 99, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -2388,9 +2234,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 541.4058323207777, - "x": 399.0419198055893, - "y": 88, + "width": 0.9720534629404618, + "x": 105.95382746051034, + "y": 220, }, "transform": [ 1, @@ -2412,7 +2258,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -2433,9 +2279,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 541.4058323207777, - "x": 399.0419198055893, - "y": 88, + "width": 0.9720534629404618, + "x": 105.95382746051034, + "y": 242, }, "transform": [ 1, @@ -2459,23 +2305,6 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, - { - "props": { - "maxWidth": null, - "text": "test/pkg/util.glob..func1.1 (5.58 Bil)", - "x": 402.5419198055893, - "y": 99, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, { "props": { "fillRule": "nonzero", @@ -2495,9 +2324,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 3.888213851761847, - "x": 940.947752126367, - "y": 88, + "width": 0.9720534629404618, + "x": 105.95382746051034, + "y": 264, }, "transform": [ 1, @@ -2523,6 +2352,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -2539,9 +2369,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 589.0364520048603, - "x": 946.3080194410693, - "y": 88, + "width": 0.9720534629404618, + "x": 105.95382746051034, + "y": 286, }, "transform": [ 1, @@ -2563,7 +2393,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -2584,9 +2414,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 589.0364520048603, - "x": 946.3080194410693, - "y": 88, + "width": 0.9720534629404618, + "x": 106.92588092345079, + "y": 176, }, "transform": [ 1, @@ -2610,23 +2440,6 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, - { - "props": { - "maxWidth": null, - "text": "runtime.gcDrain (6.07 Bil)", - "x": 949.8080194410693, - "y": 99, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, { "props": { "fillRule": "nonzero", @@ -2646,9 +2459,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 15.552855407047389, - "x": 1535.8444714459297, - "y": 88, + "width": 0.9720534629404618, + "x": 106.92588092345079, + "y": 198, }, "transform": [ 1, @@ -2692,8 +2505,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 1558.2017010935601, - "y": 88, + "x": 106.92588092345079, + "y": 220, }, "transform": [ 1, @@ -2736,9 +2549,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 32.077764277035236, - "x": 1567.9222357229648, - "y": 88, + "width": 1.9441069258809236, + "x": 107.89793438639126, + "y": 132, }, "transform": [ 1, @@ -2764,6 +2577,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -2780,9 +2594,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 102.03766707168894, - "x": 0.5, - "y": 110, + "width": 1.9441069258809236, + "x": 107.89793438639126, + "y": 154, }, "transform": [ 1, @@ -2804,7 +2618,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -2825,9 +2639,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 102.03766707168894, - "x": 0.5, - "y": 110, + "width": 1.9441069258809236, + "x": 107.89793438639126, + "y": 176, }, "transform": [ 1, @@ -2851,23 +2665,6 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, - { - "props": { - "maxWidth": null, - "text": "compress/flate.(*compressor).write (1.06 Bil)", - "x": 4, - "y": 121, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, { "props": { "fillRule": "nonzero", @@ -2887,9 +2684,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 6.804374240583233, - "x": 103.03766707168894, - "y": 110, + "width": 1.9441069258809236, + "x": 107.89793438639126, + "y": 198, }, "transform": [ 1, @@ -2915,6 +2712,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -2931,9 +2729,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 36.91008505467801, - "x": 110.34204131227219, - "y": 110, + "width": 1.9441069258809236, + "x": 107.89793438639126, + "y": 220, }, "transform": [ 1, @@ -2955,7 +2753,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -2976,9 +2774,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 36.91008505467801, - "x": 110.34204131227219, - "y": 110, + "width": 1.9441069258809236, + "x": 107.89793438639126, + "y": 242, }, "transform": [ 1, @@ -3004,23 +2802,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "maxWidth": null, - "text": "test/pkg/gen/google/v1.(*Profile).UnmarshalVT (390 Mil)", - "x": 113.84204131227219, - "y": 121, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -3037,9 +2819,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 19.413122721749698, - "x": 148.2521263669502, - "y": 110, + "width": 1.9441069258809236, + "x": 107.89793438639126, + "y": 264, }, "transform": [ 1, @@ -3061,7 +2843,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -3082,9 +2864,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 19.413122721749698, - "x": 148.2521263669502, - "y": 110, + "width": 1.9441069258809236, + "x": 107.89793438639126, + "y": 286, }, "transform": [ 1, @@ -3110,6 +2892,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -3126,9 +2909,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 22.329283110571083, - "x": 168.66524908869988, - "y": 110, + "width": 1.9441069258809236, + "x": 107.89793438639126, + "y": 308, }, "transform": [ 1, @@ -3150,7 +2933,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -3171,9 +2954,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 22.329283110571083, - "x": 168.66524908869988, - "y": 110, + "width": 0.9720534629404618, + "x": 107.89793438639126, + "y": 330, }, "transform": [ 1, @@ -3197,23 +2980,6 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, - { - "props": { - "maxWidth": null, - "text": "sort.Sort (240 Mil)", - "x": 172.16524908869988, - "y": 121, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, { "props": { "path": [ @@ -3232,9 +2998,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 128.2831105710814, - "x": 191.99453219927096, - "y": 110, + "width": 36.91008505467801, + "x": 110.34204131227219, + "y": 88, }, "transform": [ 1, @@ -3277,9 +3043,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 128.2831105710814, - "x": 191.99453219927096, - "y": 110, + "width": 36.91008505467801, + "x": 110.34204131227219, + "y": 88, }, "transform": [ 1, @@ -3306,9 +3072,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "maxWidth": null, - "text": "test/pkg/pprof.(*Profile).clearSampleReferences (1.33 Bil)", - "x": 195.49453219927096, - "y": 121, + "text": "test/pkg/pprof.OpenRaw (390 Mil)", + "x": 113.84204131227219, + "y": 99, }, "transform": [ 1, @@ -3338,8 +3104,8 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 11.636695018226003, - "x": 321.2776427703524, + "width": 36.91008505467801, + "x": 110.34204131227219, "y": 110, }, "transform": [ @@ -3383,8 +3149,8 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 11.636695018226003, - "x": 321.2776427703524, + "width": 36.91008505467801, + "x": 110.34204131227219, "y": 110, }, "transform": [ @@ -3411,7 +3177,23 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", + "maxWidth": null, + "text": "test/pkg/gen/google/v1.(*Profile).UnmarshalVT (390 Mil)", + "x": 113.84204131227219, + "y": 121, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { "path": [ { "props": {}, @@ -3428,9 +3210,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 23.329283110571083, - "x": 333.4143377885784, - "y": 110, + "width": 16.496962332928312, + "x": 110.34204131227219, + "y": 132, }, "transform": [ 1, @@ -3452,10 +3234,11 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -3472,9 +3255,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 40.798298906439854, - "x": 357.24362089914945, - "y": 110, + "width": 16.496962332928312, + "x": 110.34204131227219, + "y": 132, }, "transform": [ 1, @@ -3496,7 +3279,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -3517,9 +3300,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 40.798298906439854, - "x": 357.24362089914945, - "y": 110, + "width": 6.804374240583233, + "x": 109.84204131227219, + "y": 154, }, "transform": [ 1, @@ -3545,23 +3328,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "maxWidth": null, - "text": "compress/gzip.(*Reader).Read (430 Mil)", - "x": 360.74362089914945, - "y": 121, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -3578,9 +3345,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 541.4058323207777, - "x": 399.0419198055893, - "y": 110, + "width": 4.860267314702309, + "x": 109.84204131227219, + "y": 176, }, "transform": [ 1, @@ -3602,7 +3369,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -3623,9 +3390,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 541.4058323207777, - "x": 399.0419198055893, - "y": 110, + "width": 0.9720534629404618, + "x": 109.84204131227219, + "y": 198, }, "transform": [ 1, @@ -3649,23 +3416,6 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, - { - "props": { - "maxWidth": null, - "text": "golang.org/x/net/http2/h2c.h2cHandler.ServeHTTP (5.58 Bil)", - "x": 402.5419198055893, - "y": 121, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, { "props": { "fillRule": "nonzero", @@ -3685,9 +3435,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 3.888213851761847, - "x": 940.947752126367, - "y": 110, + "width": 1.9441069258809236, + "x": 110.81409477521264, + "y": 198, }, "transform": [ 1, @@ -3713,6 +3463,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -3729,9 +3480,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 432.53584447144596, - "x": 946.3080194410693, - "y": 110, + "width": 1.9441069258809236, + "x": 110.81409477521264, + "y": 220, }, "transform": [ 1, @@ -3753,7 +3504,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -3774,9 +3525,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 432.53584447144596, - "x": 946.3080194410693, - "y": 110, + "width": 0.9720534629404618, + "x": 110.81409477521264, + "y": 242, }, "transform": [ 1, @@ -3802,23 +3553,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "maxWidth": null, - "text": "runtime.scanobject (4.46 Bil)", - "x": 949.8080194410693, - "y": 121, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -3835,9 +3570,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 19.413122721749698, - "x": 1379.8438639125152, - "y": 110, + "width": 0.9720534629404618, + "x": 110.81409477521264, + "y": 264, }, "transform": [ 1, @@ -3859,7 +3594,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -3880,9 +3615,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 19.413122721749698, - "x": 1379.8438639125152, - "y": 110, + "width": 0.9720534629404618, + "x": 111.7861482381531, + "y": 242, }, "transform": [ 1, @@ -3925,9 +3660,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 8.748481166464156, - "x": 1399.7569866342649, - "y": 110, + "width": 0.9720534629404618, + "x": 111.7861482381531, + "y": 264, }, "transform": [ 1, @@ -3953,6 +3688,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -3969,9 +3705,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 16.496962332928312, - "x": 1409.005467800729, - "y": 110, + "width": 0.9720534629404618, + "x": 111.7861482381531, + "y": 286, }, "transform": [ 1, @@ -3993,7 +3729,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -4014,9 +3750,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 16.496962332928312, - "x": 1409.005467800729, - "y": 110, + "width": 0.9720534629404618, + "x": 114.70230862697449, + "y": 176, }, "transform": [ 1, @@ -4060,8 +3796,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 1426.0024301336575, - "y": 110, + "x": 115.67436208991495, + "y": 176, }, "transform": [ 1, @@ -4085,50 +3821,6 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 19.413122721749698, - "x": 1427.4744835965978, - "y": 110, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, { "props": { "fillRule": "nonzero", @@ -4148,9 +3840,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 19.413122721749698, - "x": 1427.4744835965978, - "y": 110, + "width": 1.9441069258809236, + "x": 116.64641555285542, + "y": 154, }, "transform": [ 1, @@ -4193,9 +3885,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 1447.3876063183475, - "y": 110, + "width": 0.9720534629404618, + "x": 116.64641555285542, + "y": 176, }, "transform": [ 1, @@ -4238,9 +3930,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 5.832320777642771, - "x": 1545.5650060753342, - "y": 110, + "width": 0.9720534629404618, + "x": 117.61846901579588, + "y": 176, }, "transform": [ 1, @@ -4283,9 +3975,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 7.776427703523694, - "x": 1567.9222357229648, - "y": 110, + "width": 0.9720534629404618, + "x": 118.59052247873633, + "y": 154, }, "transform": [ 1, @@ -4311,7 +4003,6 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -4328,9 +4019,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 4.860267314702309, - "x": 1577.6427703523696, - "y": 110, + "width": 9.69258809234508, + "x": 127.83900364520049, + "y": 132, }, "transform": [ 1, @@ -4352,7 +4043,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -4373,9 +4064,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 14.580801944106927, - "x": 1584.4471445929528, - "y": 110, + "width": 9.69258809234508, + "x": 127.83900364520049, + "y": 132, }, "transform": [ 1, @@ -4401,6 +4092,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -4417,9 +4109,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 98.1494532199271, - "x": 0.5, - "y": 132, + "width": 7.776427703523694, + "x": 127.33900364520049, + "y": 154, }, "transform": [ 1, @@ -4441,7 +4133,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -4462,9 +4154,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 98.1494532199271, - "x": 0.5, - "y": 132, + "width": 5.832320777642771, + "x": 127.33900364520049, + "y": 176, }, "transform": [ 1, @@ -4488,23 +4180,6 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, - { - "props": { - "maxWidth": null, - "text": "compress/flate.(*compressor).deflate (1.02 Bil)", - "x": 4, - "y": 143, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, { "props": { "fillRule": "nonzero", @@ -4524,9 +4199,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 10.69258809234508, - "x": 99.1494532199271, - "y": 132, + "width": 0.9720534629404618, + "x": 127.33900364520049, + "y": 198, }, "transform": [ 1, @@ -4552,6 +4227,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -4568,9 +4244,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 16.496962332928312, - "x": 110.34204131227219, - "y": 132, + "width": 1.9441069258809236, + "x": 128.31105710814094, + "y": 198, }, "transform": [ 1, @@ -4592,7 +4268,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -4613,9 +4289,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 16.496962332928312, - "x": 110.34204131227219, - "y": 132, + "width": 1.9441069258809236, + "x": 128.31105710814094, + "y": 220, }, "transform": [ 1, @@ -4641,6 +4317,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -4657,9 +4334,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 9.69258809234508, - "x": 127.83900364520049, - "y": 132, + "width": 1.9441069258809236, + "x": 128.31105710814094, + "y": 242, }, "transform": [ 1, @@ -4681,7 +4358,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -4702,9 +4379,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 9.69258809234508, - "x": 127.83900364520049, - "y": 132, + "width": 0.9720534629404618, + "x": 128.31105710814094, + "y": 264, }, "transform": [ 1, @@ -4747,9 +4424,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 7.776427703523694, - "x": 138.03159173754557, - "y": 132, + "width": 0.9720534629404618, + "x": 128.31105710814094, + "y": 286, }, "transform": [ 1, @@ -4775,6 +4452,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -4791,9 +4469,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 19.413122721749698, - "x": 148.2521263669502, - "y": 132, + "width": 0.9720534629404618, + "x": 128.31105710814094, + "y": 308, }, "transform": [ 1, @@ -4815,7 +4493,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -4836,9 +4514,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 19.413122721749698, - "x": 148.2521263669502, - "y": 132, + "width": 0.9720534629404618, + "x": 128.31105710814094, + "y": 330, }, "transform": [ 1, @@ -4864,6 +4542,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -4880,9 +4559,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 22.329283110571083, - "x": 168.66524908869988, - "y": 132, + "width": 0.9720534629404618, + "x": 128.31105710814094, + "y": 352, }, "transform": [ 1, @@ -4904,7 +4583,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -4925,9 +4604,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 22.329283110571083, - "x": 168.66524908869988, - "y": 132, + "width": 0.9720534629404618, + "x": 128.31105710814094, + "y": 374, }, "transform": [ 1, @@ -4953,23 +4632,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "maxWidth": null, - "text": "sort.quickSort (240 Mil)", - "x": 172.16524908869988, - "y": 143, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -4986,9 +4649,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 124.39489671931958, - "x": 191.99453219927096, - "y": 132, + "width": 0.9720534629404618, + "x": 128.31105710814094, + "y": 396, }, "transform": [ 1, @@ -5010,7 +4673,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -5031,9 +4694,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 124.39489671931958, - "x": 191.99453219927096, - "y": 132, + "width": 1.9441069258809236, + "x": 130.25516403402187, + "y": 198, }, "transform": [ 1, @@ -5057,23 +4720,6 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, - { - "props": { - "maxWidth": null, - "text": "test/pkg/slices.RemoveInPlace[...] (1.29 Bil)", - "x": 195.49453219927096, - "y": 143, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, { "props": { "fillRule": "nonzero", @@ -5093,9 +4739,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 316.88942891859057, - "y": 132, + "width": 0.9720534629404618, + "x": 133.17132442284327, + "y": 176, }, "transform": [ 1, @@ -5138,9 +4784,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 10.69258809234508, - "x": 320.7776427703524, - "y": 132, + "width": 0.9720534629404618, + "x": 134.14337788578374, + "y": 176, }, "transform": [ 1, @@ -5183,9 +4829,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 4.860267314702309, - "x": 333.4143377885784, - "y": 132, + "width": 2.9161603888213854, + "x": 135.1154313487242, + "y": 154, }, "transform": [ 1, @@ -5228,9 +4874,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 343.134872417983, - "y": 132, + "width": 1.9441069258809236, + "x": 135.1154313487242, + "y": 176, }, "transform": [ 1, @@ -5273,8 +4919,8 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 4.860267314702309, - "x": 347.02308626974485, + "width": 3.888213851761847, + "x": 138.03159173754557, "y": 132, }, "transform": [ @@ -5301,6 +4947,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -5317,9 +4964,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 40.798298906439854, - "x": 357.24362089914945, - "y": 132, + "width": 2.9161603888213854, + "x": 138.03159173754557, + "y": 154, }, "transform": [ 1, @@ -5341,7 +4988,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -5362,9 +5009,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 40.798298906439854, - "x": 357.24362089914945, - "y": 132, + "width": 1.9441069258809236, + "x": 138.03159173754557, + "y": 176, }, "transform": [ 1, @@ -5390,23 +5037,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "maxWidth": null, - "text": "compress/flate.(*decompressor).Read (430 Mil)", - "x": 360.74362089914945, - "y": 143, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -5423,9 +5054,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 541.4058323207777, - "x": 399.0419198055893, - "y": 132, + "width": 0.9720534629404618, + "x": 139.9756986634265, + "y": 176, }, "transform": [ 1, @@ -5447,7 +5078,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -5468,9 +5099,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 541.4058323207777, - "x": 399.0419198055893, - "y": 132, + "width": 0.9720534629404618, + "x": 140.94775212636696, + "y": 154, }, "transform": [ 1, @@ -5494,23 +5125,6 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, - { - "props": { - "maxWidth": null, - "text": "net/http.HandlerFunc.ServeHTTP (5.58 Bil)", - "x": 402.5419198055893, - "y": 143, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, { "props": { "fillRule": "nonzero", @@ -5531,7 +5145,7 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 3.888213851761847, - "x": 940.947752126367, + "x": 141.91980558930743, "y": 132, }, "transform": [ @@ -5575,9 +5189,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 5.832320777642771, - "x": 945.8080194410693, - "y": 132, + "width": 3.888213851761847, + "x": 141.91980558930743, + "y": 154, }, "transform": [ 1, @@ -5603,6 +5217,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -5619,9 +5234,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 41.77035236938032, - "x": 952.140340218712, - "y": 132, + "width": 0.9720534629404618, + "x": 141.91980558930743, + "y": 176, }, "transform": [ 1, @@ -5643,7 +5258,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -5664,9 +5279,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 41.77035236938032, - "x": 952.140340218712, - "y": 132, + "width": 0.9720534629404618, + "x": 142.8918590522479, + "y": 176, }, "transform": [ 1, @@ -5692,23 +5307,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "maxWidth": null, - "text": "runtime.pageIndexOf (440 Mil)", - "x": 955.640340218712, - "y": 143, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -5725,9 +5324,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 51.49088699878494, - "x": 994.9106925880924, - "y": 132, + "width": 0.9720534629404618, + "x": 143.86391251518833, + "y": 176, }, "transform": [ 1, @@ -5749,7 +5348,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -5770,9 +5369,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 51.49088699878494, - "x": 994.9106925880924, - "y": 132, + "width": 0.9720534629404618, + "x": 143.86391251518833, + "y": 198, }, "transform": [ 1, @@ -5798,23 +5397,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "maxWidth": null, - "text": "runtime.greyobject (540 Mil)", - "x": 998.4106925880924, - "y": 143, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -5831,9 +5414,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 94.26123936816525, - "x": 1047.4015795868772, - "y": 132, + "width": 0.9720534629404618, + "x": 143.86391251518833, + "y": 220, }, "transform": [ 1, @@ -5855,7 +5438,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -5876,9 +5459,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 94.26123936816525, - "x": 1047.4015795868772, - "y": 132, + "width": 0.9720534629404618, + "x": 143.86391251518833, + "y": 242, }, "transform": [ 1, @@ -5902,23 +5485,6 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, - { - "props": { - "maxWidth": null, - "text": "runtime.findObject (980 Mil)", - "x": 1050.9015795868772, - "y": 143, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, { "props": { "fillRule": "nonzero", @@ -5938,9 +5504,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 4.860267314702309, - "x": 1142.1628189550427, - "y": 132, + "width": 0.9720534629404618, + "x": 143.86391251518833, + "y": 264, }, "transform": [ 1, @@ -5982,9 +5548,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 45.658566221142166, - "x": 1147.523086269745, - "y": 132, + "width": 19.413122721749698, + "x": 148.2521263669502, + "y": 88, }, "transform": [ 1, @@ -6027,9 +5593,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 45.658566221142166, - "x": 1147.523086269745, - "y": 132, + "width": 19.413122721749698, + "x": 148.2521263669502, + "y": 88, }, "transform": [ 1, @@ -6053,23 +5619,6 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, - { - "props": { - "maxWidth": null, - "text": "runtime.spanOf (480 Mil)", - "x": 1151.023086269745, - "y": 143, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, { "props": { "path": [ @@ -6088,9 +5637,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 51.49088699878494, - "x": 1194.181652490887, - "y": 132, + "width": 19.413122721749698, + "x": 148.2521263669502, + "y": 110, }, "transform": [ 1, @@ -6133,9 +5682,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 51.49088699878494, - "x": 1194.181652490887, - "y": 132, + "width": 19.413122721749698, + "x": 148.2521263669502, + "y": 110, }, "transform": [ 1, @@ -6161,10 +5710,37 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "maxWidth": null, - "text": "runtime.markBits.isMarked (540 Mil)", - "x": 1197.681652490887, - "y": 143, + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 19.413122721749698, + "x": 148.2521263669502, + "y": 132, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], }, "transform": [ 1, @@ -6174,7 +5750,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fillText", + "type": "stroke", }, { "props": { @@ -6195,8 +5771,8 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 4.860267314702309, - "x": 1246.172539489672, + "width": 19.413122721749698, + "x": 148.2521263669502, "y": 132, }, "transform": [ @@ -6223,7 +5799,6 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -6240,9 +5815,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 1399.7569866342649, - "y": 132, + "width": 11.636695018226003, + "x": 148.2521263669502, + "y": 154, }, "transform": [ 1, @@ -6264,7 +5839,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -6285,9 +5860,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 1447.3876063183475, - "y": 132, + "width": 11.636695018226003, + "x": 148.2521263669502, + "y": 154, }, "transform": [ 1, @@ -6313,7 +5888,6 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -6330,9 +5904,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 5.832320777642771, - "x": 1545.5650060753342, - "y": 132, + "width": 11.636695018226003, + "x": 148.2521263669502, + "y": 176, }, "transform": [ 1, @@ -6354,7 +5928,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -6375,9 +5949,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 1567.9222357229648, - "y": 132, + "width": 11.636695018226003, + "x": 148.2521263669502, + "y": 176, }, "transform": [ 1, @@ -6420,9 +5994,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 1569.8663426488458, - "y": 132, + "width": 0.9720534629404618, + "x": 147.7521263669502, + "y": 198, }, "transform": [ 1, @@ -6465,9 +6039,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 1573.7545565006076, - "y": 132, + "width": 4.860267314702309, + "x": 148.72417982989066, + "y": 198, }, "transform": [ 1, @@ -6510,9 +6084,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 1577.6427703523696, - "y": 132, + "width": 3.888213851761847, + "x": 148.72417982989066, + "y": 220, }, "transform": [ 1, @@ -6555,9 +6129,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 1580.5589307411908, - "y": 132, + "width": 3.888213851761847, + "x": 148.72417982989066, + "y": 242, }, "transform": [ 1, @@ -6600,9 +6174,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 14.580801944106927, - "x": 1584.4471445929528, - "y": 132, + "width": 6.804374240583233, + "x": 153.58444714459296, + "y": 198, }, "transform": [ 1, @@ -6628,6 +6202,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -6644,9 +6219,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 13.580801944106927, - "x": 0.5, - "y": 154, + "width": 0.9720534629404618, + "x": 153.58444714459296, + "y": 220, }, "transform": [ 1, @@ -6668,7 +6243,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -6689,8 +6264,8 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 13.580801944106927, - "x": 0.5, + "width": 3.888213851761847, + "x": 160.3888213851762, "y": 154, }, "transform": [ @@ -6733,9 +6308,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 50.51883353584447, - "x": 15.080801944106927, - "y": 154, + "width": 177.85783718104497, + "x": 168.66524908869988, + "y": 88, }, "transform": [ 1, @@ -6778,9 +6353,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 50.51883353584447, - "x": 15.080801944106927, - "y": 154, + "width": 177.85783718104497, + "x": 168.66524908869988, + "y": 88, }, "transform": [ 1, @@ -6807,9 +6382,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "maxWidth": null, - "text": "compress/flate.(*compressor).findMatch (530 Mil)", - "x": 18.580801944106927, - "y": 165, + "text": "test/pkg/pprof.(*Profile).Normalize (1.84 Bil)", + "x": 172.16524908869988, + "y": 99, }, "transform": [ 1, @@ -6823,7 +6398,6 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -6840,9 +6414,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 7.776427703523694, - "x": 66.0996354799514, - "y": 154, + "width": 22.329283110571083, + "x": 168.66524908869988, + "y": 110, }, "transform": [ 1, @@ -6864,7 +6438,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -6885,9 +6459,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 16.52490886998785, - "x": 103.03766707168894, - "y": 154, + "width": 22.329283110571083, + "x": 168.66524908869988, + "y": 110, }, "transform": [ 1, @@ -6913,38 +6487,10 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 18.469015795868774, - "x": 127.33900364520049, - "y": 154, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], + "maxWidth": null, + "text": "sort.Sort (240 Mil)", + "x": 172.16524908869988, + "y": 121, }, "transform": [ 1, @@ -6954,7 +6500,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "fillText", }, { "props": { @@ -6974,9 +6520,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 11.636695018226003, - "x": 148.2521263669502, - "y": 154, + "width": 22.329283110571083, + "x": 168.66524908869988, + "y": 132, }, "transform": [ 1, @@ -7019,9 +6565,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 11.636695018226003, - "x": 148.2521263669502, - "y": 154, + "width": 22.329283110571083, + "x": 168.66524908869988, + "y": 132, }, "transform": [ 1, @@ -7047,38 +6593,10 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 3.888213851761847, - "x": 160.3888213851762, - "y": 154, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], + "maxWidth": null, + "text": "sort.quickSort (240 Mil)", + "x": 172.16524908869988, + "y": 143, }, "transform": [ 1, @@ -7088,7 +6606,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "fillText", }, { "props": { @@ -7137,6 +6655,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -7153,9 +6672,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 17.469015795868774, - "x": 173.5255164034022, - "y": 154, + "width": 0.9720534629404618, + "x": 168.16524908869988, + "y": 176, }, "transform": [ 1, @@ -7177,7 +6696,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -7198,9 +6717,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 17.469015795868774, - "x": 173.5255164034022, - "y": 154, + "width": 0.9720534629404618, + "x": 169.13730255164035, + "y": 176, }, "transform": [ 1, @@ -7242,8 +6761,8 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 30.105710814094778, - "x": 191.99453219927096, + "width": 17.469015795868774, + "x": 173.5255164034022, "y": 154, }, "transform": [ @@ -7287,8 +6806,8 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 30.105710814094778, - "x": 191.99453219927096, + "width": 17.469015795868774, + "x": 173.5255164034022, "y": 154, }, "transform": [ @@ -7315,24 +6834,6 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "maxWidth": null, - "text": "test/pkg/pprof.(*Profile).clearSampleReferences.func1 (320 Mil)", - "x": 195.49453219927096, - "y": 165, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -7349,9 +6850,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 316.88942891859057, - "y": 154, + "width": 11.636695018226003, + "x": 173.5255164034022, + "y": 176, }, "transform": [ 1, @@ -7373,7 +6874,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -7394,9 +6895,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 333.4143377885784, - "y": 154, + "width": 11.636695018226003, + "x": 173.5255164034022, + "y": 176, }, "transform": [ 1, @@ -7439,9 +6940,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 343.134872417983, - "y": 154, + "width": 4.860267314702309, + "x": 173.0255164034022, + "y": 198, }, "transform": [ 1, @@ -7484,9 +6985,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 4.860267314702309, - "x": 356.74362089914945, - "y": 154, + "width": 1.9441069258809236, + "x": 173.0255164034022, + "y": 220, }, "transform": [ 1, @@ -7510,50 +7011,6 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 34.96597812879708, - "x": 362.1038882138518, - "y": 154, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, { "props": { "fillRule": "nonzero", @@ -7573,9 +7030,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 34.96597812879708, - "x": 362.1038882138518, - "y": 154, + "width": 0.9720534629404618, + "x": 173.0255164034022, + "y": 242, }, "transform": [ 1, @@ -7599,23 +7056,6 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, - { - "props": { - "maxWidth": null, - "text": "compress/flate.(*decompressor).huffmanBlock (370 Mil)", - "x": 365.6038882138518, - "y": 165, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, { "props": { "fillRule": "nonzero", @@ -7636,8 +7076,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 397.5698663426489, - "y": 154, + "x": 173.0255164034022, + "y": 264, }, "transform": [ 1, @@ -7661,50 +7101,6 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 541.4058323207777, - "x": 399.0419198055893, - "y": 154, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, { "props": { "fillRule": "nonzero", @@ -7724,9 +7120,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 541.4058323207777, - "x": 399.0419198055893, - "y": 154, + "width": 0.9720534629404618, + "x": 173.0255164034022, + "y": 286, }, "transform": [ 1, @@ -7750,23 +7146,6 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, - { - "props": { - "maxWidth": null, - "text": "test/pkg/create.(*create).initServer.func2.1 (5.58 Bil)", - "x": 402.5419198055893, - "y": 165, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, { "props": { "fillRule": "nonzero", @@ -7786,9 +7165,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 3.888213851761847, - "x": 940.947752126367, - "y": 154, + "width": 0.9720534629404618, + "x": 174.9696233292831, + "y": 220, }, "transform": [ 1, @@ -7831,9 +7210,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 994.4106925880924, - "y": 154, + "width": 0.9720534629404618, + "x": 175.94167679222357, + "y": 220, }, "transform": [ 1, @@ -7877,8 +7256,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 1046.9015795868772, - "y": 154, + "x": 175.94167679222357, + "y": 242, }, "transform": [ 1, @@ -7921,9 +7300,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 1447.3876063183475, - "y": 154, + "width": 7.776427703523694, + "x": 177.8857837181045, + "y": 198, }, "transform": [ 1, @@ -7966,9 +7345,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 3.888213851761847, - "x": 1546.5370595382747, - "y": 154, + "width": 1.9441069258809236, + "x": 177.8857837181045, + "y": 220, }, "transform": [ 1, @@ -8011,9 +7390,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 1569.8663426488458, - "y": 154, + "width": 0.9720534629404618, + "x": 179.82989064398544, + "y": 220, }, "transform": [ 1, @@ -8057,8 +7436,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 1573.7545565006076, - "y": 154, + "x": 179.82989064398544, + "y": 242, }, "transform": [ 1, @@ -8101,9 +7480,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 13.608748481166465, - "x": 1585.419198055893, - "y": 154, + "width": 0.9720534629404618, + "x": 179.82989064398544, + "y": 264, }, "transform": [ 1, @@ -8127,50 +7506,6 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 13.580801944106927, - "x": 0.5, - "y": 176, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, { "props": { "fillRule": "nonzero", @@ -8190,9 +7525,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 13.580801944106927, - "x": 0.5, - "y": 176, + "width": 0.9720534629404618, + "x": 179.82989064398544, + "y": 286, }, "transform": [ 1, @@ -8235,9 +7570,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 15.552855407047389, - "x": 103.03766707168894, - "y": 176, + "width": 0.9720534629404618, + "x": 179.82989064398544, + "y": 308, }, "transform": [ 1, @@ -8280,9 +7615,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 9.720534629404618, - "x": 127.33900364520049, - "y": 176, + "width": 0.9720534629404618, + "x": 179.82989064398544, + "y": 330, }, "transform": [ 1, @@ -8325,9 +7660,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 138.03159173754557, - "y": 176, + "width": 0.9720534629404618, + "x": 179.82989064398544, + "y": 352, }, "transform": [ 1, @@ -8370,9 +7705,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 141.91980558930743, - "y": 176, + "width": 0.9720534629404618, + "x": 179.82989064398544, + "y": 374, }, "transform": [ 1, @@ -8398,6 +7733,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -8414,8 +7750,8 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 11.636695018226003, - "x": 148.2521263669502, + "width": 5.832320777642771, + "x": 185.6622114216282, "y": 176, }, "transform": [ @@ -8438,7 +7774,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -8459,9 +7795,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 11.636695018226003, - "x": 148.2521263669502, - "y": 176, + "width": 0.9720534629404618, + "x": 185.6622114216282, + "y": 198, }, "transform": [ 1, @@ -8487,7 +7823,6 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -8504,9 +7839,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 168.16524908869988, - "y": 176, + "width": 128.2831105710814, + "x": 191.99453219927096, + "y": 110, }, "transform": [ 1, @@ -8528,10 +7863,11 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -8548,9 +7884,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 11.636695018226003, - "x": 173.5255164034022, - "y": 176, + "width": 128.2831105710814, + "x": 191.99453219927096, + "y": 110, }, "transform": [ 1, @@ -8572,42 +7908,14 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 11.636695018226003, - "x": 173.5255164034022, - "y": 176, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], + "maxWidth": null, + "text": "test/pkg/pprof.(*Profile).clearSampleReferences (1.33 Bil)", + "x": 195.49453219927096, + "y": 121, }, "transform": [ 1, @@ -8617,11 +7925,10 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "fillText", }, { "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -8638,9 +7945,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 5.832320777642771, - "x": 185.6622114216282, - "y": 176, + "width": 124.39489671931958, + "x": 191.99453219927096, + "y": 132, }, "transform": [ 1, @@ -8662,7 +7969,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -8683,9 +7990,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 343.134872417983, - "y": 176, + "width": 124.39489671931958, + "x": 191.99453219927096, + "y": 132, }, "transform": [ 1, @@ -8711,7 +8018,23 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", + "maxWidth": null, + "text": "test/pkg/slices.RemoveInPlace[...] (1.29 Bil)", + "x": 195.49453219927096, + "y": 143, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { "path": [ { "props": {}, @@ -8728,9 +8051,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 357.71567436208994, - "y": 176, + "width": 30.105710814094778, + "x": 191.99453219927096, + "y": 154, }, "transform": [ 1, @@ -8752,7 +8075,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -8773,9 +8096,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 361.6038882138518, - "y": 176, + "width": 30.105710814094778, + "x": 191.99453219927096, + "y": 154, }, "transform": [ 1, @@ -8801,6 +8124,24 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "maxWidth": null, + "text": "test/pkg/pprof.(*Profile).clearSampleReferences.func1 (320 Mil)", + "x": 195.49453219927096, + "y": 165, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -8817,9 +8158,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 16.496962332928312, - "x": 364.0479951397327, - "y": 176, + "width": 0.9720534629404618, + "x": 316.88942891859057, + "y": 132, }, "transform": [ 1, @@ -8841,7 +8182,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -8862,9 +8203,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 16.496962332928312, - "x": 364.0479951397327, - "y": 176, + "width": 0.9720534629404618, + "x": 316.88942891859057, + "y": 154, }, "transform": [ 1, @@ -8907,9 +8248,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 381.044957472661, - "y": 176, + "width": 0.9720534629404618, + "x": 317.861482381531, + "y": 132, }, "transform": [ 1, @@ -8935,7 +8276,6 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -8952,9 +8292,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 397.5698663426489, - "y": 176, + "width": 11.636695018226003, + "x": 321.2776427703524, + "y": 110, }, "transform": [ 1, @@ -8976,10 +8316,11 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -8996,9 +8337,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 541.4058323207777, - "x": 399.0419198055893, - "y": 176, + "width": 11.636695018226003, + "x": 321.2776427703524, + "y": 110, }, "transform": [ 1, @@ -9020,7 +8361,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -9041,9 +8382,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 541.4058323207777, - "x": 399.0419198055893, - "y": 176, + "width": 0.9720534629404618, + "x": 320.7776427703524, + "y": 132, }, "transform": [ 1, @@ -9067,23 +8408,6 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, - { - "props": { - "maxWidth": null, - "text": "net/http.HandlerFunc.ServeHTTP (5.58 Bil)", - "x": 402.5419198055893, - "y": 187, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, { "props": { "fillRule": "nonzero", @@ -9103,9 +8427,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 3.888213851761847, - "x": 940.947752126367, - "y": 176, + "width": 0.9720534629404618, + "x": 321.74969623329287, + "y": 132, }, "transform": [ 1, @@ -9148,9 +8472,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 994.4106925880924, - "y": 176, + "width": 5.832320777642771, + "x": 322.7217496962333, + "y": 132, }, "transform": [ 1, @@ -9193,9 +8517,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 3.888213851761847, - "x": 1546.5370595382747, - "y": 176, + "width": 2.9161603888213854, + "x": 328.5540704738761, + "y": 132, }, "transform": [ 1, @@ -9238,9 +8562,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 1569.8663426488458, - "y": 176, + "width": 9.720534629404618, + "x": 333.4143377885784, + "y": 110, }, "transform": [ 1, @@ -9283,9 +8607,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 13.608748481166465, - "x": 1585.419198055893, - "y": 176, + "width": 3.888213851761847, + "x": 333.4143377885784, + "y": 132, }, "transform": [ 1, @@ -9328,9 +8652,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 14.580801944106927, - "x": 0, - "y": 198, + "width": 0.9720534629404618, + "x": 333.4143377885784, + "y": 154, }, "transform": [ 1, @@ -9373,9 +8697,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 6.804374240583233, - "x": 105.95382746051034, - "y": 198, + "width": 0.9720534629404618, + "x": 337.30255164034025, + "y": 132, }, "transform": [ 1, @@ -9418,9 +8742,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 4.860267314702309, - "x": 127.33900364520049, - "y": 198, + "width": 3.888213851761847, + "x": 343.134872417983, + "y": 110, }, "transform": [ 1, @@ -9463,9 +8787,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 143.86391251518833, - "y": 198, + "width": 2.9161603888213854, + "x": 343.134872417983, + "y": 132, }, "transform": [ 1, @@ -9508,9 +8832,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 12.636695018226003, - "x": 147.7521263669502, - "y": 198, + "width": 0.9720534629404618, + "x": 343.134872417983, + "y": 154, }, "transform": [ 1, @@ -9553,9 +8877,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 13.608748481166465, - "x": 173.0255164034022, - "y": 198, + "width": 0.9720534629404618, + "x": 343.134872417983, + "y": 176, }, "transform": [ 1, @@ -9598,9 +8922,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 361.6038882138518, - "y": 198, + "width": 6.804374240583233, + "x": 347.02308626974485, + "y": 88, }, "transform": [ 1, @@ -9644,8 +8968,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 363.5479951397327, - "y": 198, + "x": 347.02308626974485, + "y": 110, }, "transform": [ 1, @@ -9689,8 +9013,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 397.5698663426489, - "y": 198, + "x": 347.02308626974485, + "y": 132, }, "transform": [ 1, @@ -9716,6 +9040,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -9732,9 +9057,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 541.4058323207777, - "x": 399.0419198055893, - "y": 198, + "width": 4.860267314702309, + "x": 347.9951397326853, + "y": 110, }, "transform": [ 1, @@ -9756,7 +9081,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -9777,9 +9102,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 541.4058323207777, - "x": 399.0419198055893, - "y": 198, + "width": 3.888213851761847, + "x": 347.9951397326853, + "y": 132, }, "transform": [ 1, @@ -9805,10 +9130,38 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "maxWidth": null, - "text": "github.com/opentracing-contrib/go-stdlib/nethttp.MiddlewareFunc.func5 (5.58 Bil)", - "x": 402.5419198055893, - "y": 209, + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 352.85540704738764, + "y": 110, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], }, "transform": [ 1, @@ -9818,7 +9171,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fillText", + "type": "fill", }, { "props": { @@ -9840,8 +9193,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 2.9161603888213854, - "x": 941.9198055893074, - "y": 198, + "x": 353.8274605103281, + "y": 88, }, "transform": [ 1, @@ -9884,9 +9237,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 995.3827460510329, - "y": 198, + "width": 1.9441069258809236, + "x": 353.8274605103281, + "y": 110, }, "transform": [ 1, @@ -9930,8 +9283,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 1546.5370595382747, - "y": 198, + "x": 355.771567436209, + "y": 110, }, "transform": [ 1, @@ -9957,7 +9310,6 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -9974,9 +9326,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 1548.4811664641556, - "y": 198, + "width": 40.798298906439854, + "x": 357.24362089914945, + "y": 66, }, "transform": [ 1, @@ -9998,7 +9350,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -10019,9 +9371,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 1585.419198055893, - "y": 198, + "width": 40.798298906439854, + "x": 357.24362089914945, + "y": 66, }, "transform": [ 1, @@ -10047,7 +9399,23 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", + "maxWidth": null, + "text": "io/ioutil.ReadAll (430 Mil)", + "x": 360.74362089914945, + "y": 77, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { "path": [ { "props": {}, @@ -10064,9 +9432,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 6.804374240583233, - "x": 1592.2235722964765, - "y": 198, + "width": 40.798298906439854, + "x": 357.24362089914945, + "y": 88, }, "transform": [ 1, @@ -10088,7 +9456,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -10109,9 +9477,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 3.888213851761847, - "x": 0, - "y": 220, + "width": 40.798298906439854, + "x": 357.24362089914945, + "y": 88, }, "transform": [ 1, @@ -10137,7 +9505,23 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", + "maxWidth": null, + "text": "io.ReadAll (430 Mil)", + "x": 360.74362089914945, + "y": 99, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { "path": [ { "props": {}, @@ -10154,9 +9538,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 3.888213851761847, - "x": 4.860267314702309, - "y": 220, + "width": 40.798298906439854, + "x": 357.24362089914945, + "y": 110, }, "transform": [ 1, @@ -10178,7 +9562,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -10199,9 +9583,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 3.888213851761847, - "x": 105.95382746051034, - "y": 220, + "width": 40.798298906439854, + "x": 357.24362089914945, + "y": 110, }, "transform": [ 1, @@ -10227,7 +9611,23 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", + "maxWidth": null, + "text": "compress/gzip.(*Reader).Read (430 Mil)", + "x": 360.74362089914945, + "y": 121, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { "path": [ { "props": {}, @@ -10244,9 +9644,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 110.81409477521264, - "y": 220, + "width": 40.798298906439854, + "x": 357.24362089914945, + "y": 132, }, "transform": [ 1, @@ -10268,7 +9668,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -10289,9 +9689,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 128.31105710814094, - "y": 220, + "width": 40.798298906439854, + "x": 357.24362089914945, + "y": 132, }, "transform": [ 1, @@ -10315,6 +9715,23 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, + { + "props": { + "maxWidth": null, + "text": "compress/flate.(*decompressor).Read (430 Mil)", + "x": 360.74362089914945, + "y": 143, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, { "props": { "fillRule": "nonzero", @@ -10335,8 +9752,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 143.86391251518833, - "y": 220, + "x": 356.74362089914945, + "y": 154, }, "transform": [ 1, @@ -10380,8 +9797,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 3.888213851761847, - "x": 148.72417982989066, - "y": 220, + "x": 357.71567436208994, + "y": 154, }, "transform": [ 1, @@ -10424,9 +9841,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 153.58444714459296, - "y": 220, + "width": 1.9441069258809236, + "x": 357.71567436208994, + "y": 176, }, "transform": [ 1, @@ -10450,6 +9867,50 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 34.96597812879708, + "x": 362.1038882138518, + "y": 154, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, { "props": { "fillRule": "nonzero", @@ -10469,143 +9930,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 3.888213851761847, - "x": 173.0255164034022, - "y": 220, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 177.8857837181045, - "y": 220, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 537.5176184690158, - "x": 399.0419198055893, - "y": 220, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 537.5176184690158, - "x": 399.0419198055893, - "y": 220, + "width": 34.96597812879708, + "x": 362.1038882138518, + "y": 154, }, "transform": [ 1, @@ -10632,9 +9959,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "maxWidth": null, - "text": "net/http.HandlerFunc.ServeHTTP (5.54 Bil)", - "x": 402.5419198055893, - "y": 231, + "text": "compress/flate.(*decompressor).huffmanBlock (370 Mil)", + "x": 365.6038882138518, + "y": 165, }, "transform": [ 1, @@ -10665,9 +9992,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 3.888213851761847, - "x": 937.0595382746052, - "y": 220, + "width": 1.9441069258809236, + "x": 361.6038882138518, + "y": 176, }, "transform": [ 1, @@ -10710,9 +10037,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 1585.419198055893, - "y": 220, + "width": 0.9720534629404618, + "x": 361.6038882138518, + "y": 198, }, "transform": [ 1, @@ -10738,7 +10065,6 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -10755,9 +10081,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 1592.2235722964765, - "y": 220, + "width": 16.496962332928312, + "x": 364.0479951397327, + "y": 176, }, "transform": [ 1, @@ -10779,7 +10105,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -10800,9 +10126,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 1596.1117861482383, - "y": 220, + "width": 16.496962332928312, + "x": 364.0479951397327, + "y": 176, }, "transform": [ 1, @@ -10845,9 +10171,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 3.888213851761847, - "x": 0, - "y": 242, + "width": 0.9720534629404618, + "x": 363.5479951397327, + "y": 198, }, "transform": [ 1, @@ -10890,9 +10216,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 105.95382746051034, - "y": 242, + "width": 2.9161603888213854, + "x": 381.044957472661, + "y": 176, }, "transform": [ 1, @@ -10935,9 +10261,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 107.89793438639126, - "y": 242, + "width": 0.9720534629404618, + "x": 397.5698663426489, + "y": 154, }, "transform": [ 1, @@ -10980,9 +10306,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 110.81409477521264, - "y": 242, + "width": 0.9720534629404618, + "x": 397.5698663426489, + "y": 176, }, "transform": [ 1, @@ -11025,9 +10351,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 128.31105710814094, - "y": 242, + "width": 0.9720534629404618, + "x": 397.5698663426489, + "y": 198, }, "transform": [ 1, @@ -11053,7 +10379,6 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -11070,9 +10395,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 143.86391251518833, - "y": 242, + "width": 546.26609963548, + "x": 399.0419198055893, + "y": 22, }, "transform": [ 1, @@ -11094,7 +10419,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -11115,9 +10440,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 3.888213851761847, - "x": 148.72417982989066, - "y": 242, + "width": 546.26609963548, + "x": 399.0419198055893, + "y": 22, }, "transform": [ 1, @@ -11143,38 +10468,10 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 173.0255164034022, - "y": 242, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], + "maxWidth": null, + "text": "net/http.(*conn).serve (5.63 Bil)", + "x": 402.5419198055893, + "y": 33, }, "transform": [ 1, @@ -11184,11 +10481,10 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "fillText", }, { "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -11205,9 +10501,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 175.94167679222357, - "y": 242, + "width": 541.4058323207777, + "x": 399.0419198055893, + "y": 44, }, "transform": [ 1, @@ -11229,7 +10525,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -11250,9 +10546,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 179.82989064398544, - "y": 242, + "width": 541.4058323207777, + "x": 399.0419198055893, + "y": 44, }, "transform": [ 1, @@ -11276,6 +10572,23 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, + { + "props": { + "maxWidth": null, + "text": "net/http.serverHandler.ServeHTTP (5.58 Bil)", + "x": 402.5419198055893, + "y": 55, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, { "props": { "path": [ @@ -11294,9 +10607,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 537.5176184690158, + "width": 541.4058323207777, "x": 399.0419198055893, - "y": 242, + "y": 66, }, "transform": [ 1, @@ -11339,9 +10652,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 537.5176184690158, + "width": 541.4058323207777, "x": 399.0419198055893, - "y": 242, + "y": 66, }, "transform": [ 1, @@ -11368,9 +10681,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "maxWidth": null, - "text": "github.com/weaveworks/common/middleware.Log.Wrap.func1 (5.54 Bil)", + "text": "net/http.HandlerFunc.ServeHTTP (5.58 Bil)", "x": 402.5419198055893, - "y": 253, + "y": 77, }, "transform": [ 1, @@ -11384,7 +10697,6 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -11401,9 +10713,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 3.888213851761847, - "x": 937.0595382746052, - "y": 242, + "width": 541.4058323207777, + "x": 399.0419198055893, + "y": 88, }, "transform": [ 1, @@ -11425,7 +10737,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -11446,9 +10758,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 1585.419198055893, - "y": 242, + "width": 541.4058323207777, + "x": 399.0419198055893, + "y": 88, }, "transform": [ 1, @@ -11474,38 +10786,10 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 1592.2235722964765, - "y": 242, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], + "maxWidth": null, + "text": "test/pkg/util.glob..func1.1 (5.58 Bil)", + "x": 402.5419198055893, + "y": 99, }, "transform": [ 1, @@ -11515,11 +10799,10 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "fillText", }, { "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -11536,9 +10819,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 1596.1117861482383, - "y": 242, + "width": 541.4058323207777, + "x": 399.0419198055893, + "y": 110, }, "transform": [ 1, @@ -11560,7 +10843,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -11581,9 +10864,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 0, - "y": 264, + "width": 541.4058323207777, + "x": 399.0419198055893, + "y": 110, }, "transform": [ 1, @@ -11609,7 +10892,23 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", + "maxWidth": null, + "text": "golang.org/x/net/http2/h2c.h2cHandler.ServeHTTP (5.58 Bil)", + "x": 402.5419198055893, + "y": 121, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { "path": [ { "props": {}, @@ -11626,9 +10925,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 1.9441069258809236, - "y": 264, + "width": 541.4058323207777, + "x": 399.0419198055893, + "y": 132, }, "transform": [ 1, @@ -11650,7 +10949,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -11671,9 +10970,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 105.95382746051034, - "y": 264, + "width": 541.4058323207777, + "x": 399.0419198055893, + "y": 132, }, "transform": [ 1, @@ -11699,7 +10998,23 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", + "maxWidth": null, + "text": "net/http.HandlerFunc.ServeHTTP (5.58 Bil)", + "x": 402.5419198055893, + "y": 143, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { "path": [ { "props": {}, @@ -11716,9 +11031,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 107.89793438639126, - "y": 264, + "width": 541.4058323207777, + "x": 399.0419198055893, + "y": 154, }, "transform": [ 1, @@ -11740,7 +11055,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -11761,9 +11076,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 110.81409477521264, - "y": 264, + "width": 541.4058323207777, + "x": 399.0419198055893, + "y": 154, }, "transform": [ 1, @@ -11789,7 +11104,23 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", + "maxWidth": null, + "text": "test/pkg/create.(*create).initServer.func2.1 (5.58 Bil)", + "x": 402.5419198055893, + "y": 165, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { "path": [ { "props": {}, @@ -11806,9 +11137,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 128.31105710814094, - "y": 264, + "width": 541.4058323207777, + "x": 399.0419198055893, + "y": 176, }, "transform": [ 1, @@ -11830,7 +11161,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -11851,9 +11182,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 143.86391251518833, - "y": 264, + "width": 541.4058323207777, + "x": 399.0419198055893, + "y": 176, }, "transform": [ 1, @@ -11879,7 +11210,23 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", + "maxWidth": null, + "text": "net/http.HandlerFunc.ServeHTTP (5.58 Bil)", + "x": 402.5419198055893, + "y": 187, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { "path": [ { "props": {}, @@ -11896,9 +11243,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 173.0255164034022, - "y": 264, + "width": 541.4058323207777, + "x": 399.0419198055893, + "y": 198, }, "transform": [ 1, @@ -11920,7 +11267,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -11941,9 +11288,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 179.82989064398544, - "y": 264, + "width": 541.4058323207777, + "x": 399.0419198055893, + "y": 198, }, "transform": [ 1, @@ -11967,6 +11314,23 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, + { + "props": { + "maxWidth": null, + "text": "github.com/opentracing-contrib/go-stdlib/nethttp.MiddlewareFunc.func5 (5.58 Bil)", + "x": 402.5419198055893, + "y": 209, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, { "props": { "path": [ @@ -11985,9 +11349,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 536.5455650060753, + "width": 537.5176184690158, "x": 399.0419198055893, - "y": 264, + "y": 220, }, "transform": [ 1, @@ -12030,9 +11394,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 536.5455650060753, + "width": 537.5176184690158, "x": 399.0419198055893, - "y": 264, + "y": 220, }, "transform": [ 1, @@ -12059,9 +11423,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "maxWidth": null, - "text": "net/http.HandlerFunc.ServeHTTP (5.53 Bil)", + "text": "net/http.HandlerFunc.ServeHTTP (5.54 Bil)", "x": 402.5419198055893, - "y": 275, + "y": 231, }, "transform": [ 1, @@ -12075,7 +11439,6 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -12092,9 +11455,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 4.860267314702309, - "x": 936.0874848116647, - "y": 264, + "width": 537.5176184690158, + "x": 399.0419198055893, + "y": 242, }, "transform": [ 1, @@ -12116,7 +11479,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -12137,9 +11500,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 1585.419198055893, - "y": 264, + "width": 537.5176184690158, + "x": 399.0419198055893, + "y": 242, }, "transform": [ 1, @@ -12165,7 +11528,23 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", + "maxWidth": null, + "text": "github.com/weaveworks/common/middleware.Log.Wrap.func1 (5.54 Bil)", + "x": 402.5419198055893, + "y": 253, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { "path": [ { "props": {}, @@ -12182,8 +11561,8 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 1592.2235722964765, + "width": 536.5455650060753, + "x": 399.0419198055893, "y": 264, }, "transform": [ @@ -12206,7 +11585,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -12227,8 +11606,8 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 1596.1117861482383, + "width": 536.5455650060753, + "x": 399.0419198055893, "y": 264, }, "transform": [ @@ -12255,38 +11634,10 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 1.9441069258809236, - "y": 286, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], + "maxWidth": null, + "text": "net/http.HandlerFunc.ServeHTTP (5.53 Bil)", + "x": 402.5419198055893, + "y": 275, }, "transform": [ 1, @@ -12296,11 +11647,10 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "fillText", }, { "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -12317,8 +11667,8 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 105.95382746051034, + "width": 534.6014580801944, + "x": 399.0419198055893, "y": 286, }, "transform": [ @@ -12341,7 +11691,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -12362,8 +11712,8 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 107.89793438639126, + "width": 534.6014580801944, + "x": 399.0419198055893, "y": 286, }, "transform": [ @@ -12390,7 +11740,23 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", + "maxWidth": null, + "text": "github.com/weaveworks/common/middleware.Instrument.Wrap.func1 (5.51 Bil)", + "x": 402.5419198055893, + "y": 297, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { "path": [ { "props": {}, @@ -12407,9 +11773,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 111.7861482381531, - "y": 286, + "width": 533.629404617254, + "x": 399.0419198055893, + "y": 308, }, "transform": [ 1, @@ -12431,7 +11797,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -12452,9 +11818,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 128.31105710814094, - "y": 286, + "width": 533.629404617254, + "x": 399.0419198055893, + "y": 308, }, "transform": [ 1, @@ -12480,7 +11846,23 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", + "maxWidth": null, + "text": "github.com/felixge/httpsnoop.(*Metrics).CaptureMetrics (5.50 Bil)", + "x": 402.5419198055893, + "y": 319, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { "path": [ { "props": {}, @@ -12497,9 +11879,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 173.0255164034022, - "y": 286, + "width": 532.6573511543135, + "x": 399.0419198055893, + "y": 330, }, "transform": [ 1, @@ -12521,7 +11903,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -12542,9 +11924,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 179.82989064398544, - "y": 286, + "width": 532.6573511543135, + "x": 399.0419198055893, + "y": 330, }, "transform": [ 1, @@ -12568,6 +11950,23 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, + { + "props": { + "maxWidth": null, + "text": "github.com/weaveworks/common/middleware.Instrument.Wrap.func1.2 (5.49 Bil)", + "x": 402.5419198055893, + "y": 341, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, { "props": { "path": [ @@ -12586,9 +11985,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 534.6014580801944, + "width": 532.6573511543135, "x": 399.0419198055893, - "y": 286, + "y": 352, }, "transform": [ 1, @@ -12631,9 +12030,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 534.6014580801944, + "width": 532.6573511543135, "x": 399.0419198055893, - "y": 286, + "y": 352, }, "transform": [ 1, @@ -12660,9 +12059,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "maxWidth": null, - "text": "github.com/weaveworks/common/middleware.Instrument.Wrap.func1 (5.51 Bil)", + "text": "github.com/gorilla/mux.(*Router).ServeHTTP (5.49 Bil)", "x": 402.5419198055893, - "y": 297, + "y": 363, }, "transform": [ 1, @@ -12676,7 +12075,6 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -12693,9 +12091,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 6.804374240583233, - "x": 934.1433778857838, - "y": 286, + "width": 155.50060753341435, + "x": 399.0419198055893, + "y": 374, }, "transform": [ 1, @@ -12717,7 +12115,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -12738,9 +12136,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 1585.419198055893, - "y": 286, + "width": 155.50060753341435, + "x": 399.0419198055893, + "y": 374, }, "transform": [ 1, @@ -12766,38 +12164,10 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 1592.2235722964765, - "y": 286, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], + "maxWidth": null, + "text": "github.com/bufbuild/connect-go.(*Handler).ServeHTTP (1.61 Bil)", + "x": 402.5419198055893, + "y": 385, }, "transform": [ 1, @@ -12807,11 +12177,10 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "fillText", }, { "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -12828,9 +12197,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 1596.1117861482383, - "y": 286, + "width": 155.50060753341435, + "x": 399.0419198055893, + "y": 396, }, "transform": [ 1, @@ -12852,7 +12221,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -12873,9 +12242,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 1.9441069258809236, - "y": 308, + "width": 155.50060753341435, + "x": 399.0419198055893, + "y": 396, }, "transform": [ 1, @@ -12901,38 +12270,10 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 107.89793438639126, - "y": 308, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], + "maxWidth": null, + "text": "github.com/bufbuild/connect-go.NewUnaryHandler[...].func1 (1.61 Bil)", + "x": 402.5419198055893, + "y": 407, }, "transform": [ 1, @@ -12942,11 +12283,10 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "fillText", }, { "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -12963,9 +12303,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 128.31105710814094, - "y": 308, + "width": 148.69623329283112, + "x": 399.0419198055893, + "y": 418, }, "transform": [ 1, @@ -12987,7 +12327,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -13008,9 +12348,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 179.82989064398544, - "y": 308, + "width": 148.69623329283112, + "x": 399.0419198055893, + "y": 418, }, "transform": [ 1, @@ -13034,6 +12374,23 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, + { + "props": { + "maxWidth": null, + "text": "github.com/bufbuild/connect-go.NewUnaryHandler[...].func1.1 (1.54 Bil)", + "x": 402.5419198055893, + "y": 429, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, { "props": { "path": [ @@ -13052,9 +12409,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 533.629404617254, + "width": 148.69623329283112, "x": 399.0419198055893, - "y": 308, + "y": 440, }, "transform": [ 1, @@ -13097,9 +12454,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 533.629404617254, + "width": 148.69623329283112, "x": 399.0419198055893, - "y": 308, + "y": 440, }, "transform": [ 1, @@ -13126,9 +12483,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "maxWidth": null, - "text": "github.com/felixge/httpsnoop.(*Metrics).CaptureMetrics (5.50 Bil)", + "text": "test/pkg/ingester.(*Ingester).Push (1.54 Bil)", "x": 402.5419198055893, - "y": 319, + "y": 451, }, "transform": [ 1, @@ -13142,7 +12499,6 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -13159,9 +12515,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 4.860267314702309, - "x": 933.1713244228433, - "y": 308, + "width": 17.469015795868774, + "x": 399.0419198055893, + "y": 462, }, "transform": [ 1, @@ -13183,7 +12539,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -13204,9 +12560,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 939.0036452004861, - "y": 308, + "width": 17.469015795868774, + "x": 399.0419198055893, + "y": 462, }, "transform": [ 1, @@ -13232,7 +12588,6 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -13249,9 +12604,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 1592.2235722964765, - "y": 308, + "width": 15.52490886998785, + "x": 399.0419198055893, + "y": 484, }, "transform": [ 1, @@ -13273,7 +12628,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -13294,9 +12649,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 1596.1117861482383, - "y": 308, + "width": 15.52490886998785, + "x": 399.0419198055893, + "y": 484, }, "transform": [ 1, @@ -13322,7 +12677,6 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -13339,9 +12693,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 1.9441069258809236, - "y": 330, + "width": 15.52490886998785, + "x": 399.0419198055893, + "y": 506, }, "transform": [ 1, @@ -13363,7 +12717,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -13384,9 +12738,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 107.89793438639126, - "y": 330, + "width": 15.52490886998785, + "x": 399.0419198055893, + "y": 506, }, "transform": [ 1, @@ -13430,8 +12784,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 128.31105710814094, - "y": 330, + "x": 398.5419198055893, + "y": 528, }, "transform": [ 1, @@ -13474,9 +12828,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 179.82989064398544, - "y": 330, + "width": 1.9441069258809236, + "x": 399.5139732685298, + "y": 528, }, "transform": [ 1, @@ -13518,9 +12872,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 532.6573511543135, - "x": 399.0419198055893, - "y": 330, + "width": 10.664641555285542, + "x": 401.95808019441074, + "y": 528, }, "transform": [ 1, @@ -13563,9 +12917,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 532.6573511543135, - "x": 399.0419198055893, - "y": 330, + "width": 10.664641555285542, + "x": 401.95808019441074, + "y": 528, }, "transform": [ 1, @@ -13589,23 +12943,6 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, - { - "props": { - "maxWidth": null, - "text": "github.com/weaveworks/common/middleware.Instrument.Wrap.func1.2 (5.49 Bil)", - "x": 402.5419198055893, - "y": 341, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, { "props": { "fillRule": "nonzero", @@ -13625,9 +12962,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 4.860267314702309, - "x": 932.1992709599028, - "y": 330, + "width": 0.9720534629404618, + "x": 401.45808019441074, + "y": 550, }, "transform": [ 1, @@ -13671,8 +13008,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 939.0036452004861, - "y": 330, + "x": 401.45808019441074, + "y": 572, }, "transform": [ 1, @@ -13715,9 +13052,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 1592.2235722964765, - "y": 330, + "width": 1.9441069258809236, + "x": 413.12272174969627, + "y": 528, }, "transform": [ 1, @@ -13760,9 +13097,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 1596.1117861482383, - "y": 330, + "width": 1.9441069258809236, + "x": 413.12272174969627, + "y": 550, }, "transform": [ 1, @@ -13805,9 +13142,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 1.9441069258809236, - "y": 352, + "width": 1.9441069258809236, + "x": 415.0668286755772, + "y": 484, }, "transform": [ 1, @@ -13851,8 +13188,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 128.31105710814094, - "y": 352, + "x": 415.0668286755772, + "y": 506, }, "transform": [ 1, @@ -13896,8 +13233,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 179.82989064398544, - "y": 352, + "x": 416.03888213851764, + "y": 506, }, "transform": [ 1, @@ -13923,6 +13260,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -13939,9 +13277,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 532.6573511543135, - "x": 399.0419198055893, - "y": 352, + "width": 0.9720534629404618, + "x": 416.03888213851764, + "y": 528, }, "transform": [ 1, @@ -13963,7 +13301,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -13984,9 +13322,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 532.6573511543135, - "x": 399.0419198055893, - "y": 352, + "width": 0.9720534629404618, + "x": 416.03888213851764, + "y": 550, }, "transform": [ 1, @@ -14010,23 +13348,6 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, - { - "props": { - "maxWidth": null, - "text": "github.com/gorilla/mux.(*Router).ServeHTTP (5.49 Bil)", - "x": 402.5419198055893, - "y": 363, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, { "props": { "fillRule": "nonzero", @@ -14046,9 +13367,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 3.888213851761847, - "x": 933.1713244228433, - "y": 352, + "width": 0.9720534629404618, + "x": 416.03888213851764, + "y": 572, }, "transform": [ 1, @@ -14091,9 +13412,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 1592.2235722964765, - "y": 352, + "width": 0.9720534629404618, + "x": 416.03888213851764, + "y": 594, }, "transform": [ 1, @@ -14137,8 +13458,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 1596.1117861482383, - "y": 352, + "x": 416.03888213851764, + "y": 616, }, "transform": [ 1, @@ -14182,8 +13503,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 128.31105710814094, - "y": 374, + "x": 416.03888213851764, + "y": 638, }, "transform": [ 1, @@ -14227,8 +13548,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 179.82989064398544, - "y": 374, + "x": 416.03888213851764, + "y": 660, }, "transform": [ 1, @@ -14254,6 +13575,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -14270,9 +13592,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 155.50060753341435, - "x": 399.0419198055893, - "y": 374, + "width": 0.9720534629404618, + "x": 416.03888213851764, + "y": 682, }, "transform": [ 1, @@ -14294,7 +13616,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -14315,9 +13637,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 155.50060753341435, - "x": 399.0419198055893, - "y": 374, + "width": 0.9720534629404618, + "x": 416.03888213851764, + "y": 704, }, "transform": [ 1, @@ -14341,23 +13663,6 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, - { - "props": { - "maxWidth": null, - "text": "github.com/bufbuild/connect-go.(*Handler).ServeHTTP (1.61 Bil)", - "x": 402.5419198055893, - "y": 385, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, { "props": { "path": [ @@ -14376,9 +13681,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 376.1567436208992, - "x": 555.5425273390036, - "y": 374, + "width": 81.62454434993926, + "x": 417.51093560145813, + "y": 462, }, "transform": [ 1, @@ -14421,9 +13726,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 376.1567436208992, - "x": 555.5425273390036, - "y": 374, + "width": 81.62454434993926, + "x": 417.51093560145813, + "y": 462, }, "transform": [ 1, @@ -14450,9 +13755,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "maxWidth": null, - "text": "net/http.(*ServeMux).ServeHTTP (3.88 Bil)", - "x": 559.0425273390036, - "y": 385, + "text": "test/pkg/create.(*Head).Ingest (850 Mil)", + "x": 421.01093560145813, + "y": 473, }, "transform": [ 1, @@ -14466,7 +13771,6 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -14483,9 +13787,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 933.1713244228433, - "y": 374, + "width": 33.02187120291616, + "x": 417.51093560145813, + "y": 484, }, "transform": [ 1, @@ -14507,7 +13811,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -14528,9 +13832,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 935.1154313487242, - "y": 374, + "width": 33.02187120291616, + "x": 417.51093560145813, + "y": 484, }, "transform": [ 1, @@ -14556,38 +13860,10 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 1592.2235722964765, - "y": 374, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], + "maxWidth": null, + "text": "test/pkg/create.(*Head).convertSamples (350 Mil)", + "x": 421.01093560145813, + "y": 495, }, "transform": [ 1, @@ -14597,11 +13873,10 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "fillText", }, { "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -14618,9 +13893,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 1596.1117861482383, - "y": 374, + "width": 28.161603888213854, + "x": 417.51093560145813, + "y": 506, }, "transform": [ 1, @@ -14642,7 +13917,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -14663,9 +13938,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 128.31105710814094, - "y": 396, + "width": 28.161603888213854, + "x": 417.51093560145813, + "y": 506, }, "transform": [ 1, @@ -14689,6 +13964,23 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, + { + "props": { + "maxWidth": null, + "text": "test/pkg/create.(*deduplicatingSlice[...]).ingest (300 Mil)", + "x": 421.01093560145813, + "y": 517, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, { "props": { "path": [ @@ -14707,9 +13999,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 155.50060753341435, - "x": 399.0419198055893, - "y": 396, + "width": 10.664641555285542, + "x": 417.51093560145813, + "y": 528, }, "transform": [ 1, @@ -14752,9 +14044,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 155.50060753341435, - "x": 399.0419198055893, - "y": 396, + "width": 10.664641555285542, + "x": 417.51093560145813, + "y": 528, }, "transform": [ 1, @@ -14778,23 +14070,6 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, - { - "props": { - "maxWidth": null, - "text": "github.com/bufbuild/connect-go.NewUnaryHandler[...].func1 (1.61 Bil)", - "x": 402.5419198055893, - "y": 407, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, { "props": { "path": [ @@ -14813,9 +14088,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 376.1567436208992, - "x": 555.5425273390036, - "y": 396, + "width": 9.69258809234508, + "x": 417.51093560145813, + "y": 550, }, "transform": [ 1, @@ -14858,9 +14133,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 376.1567436208992, - "x": 555.5425273390036, - "y": 396, + "width": 9.69258809234508, + "x": 417.51093560145813, + "y": 550, }, "transform": [ 1, @@ -14884,23 +14159,6 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, - { - "props": { - "maxWidth": null, - "text": "net/http.HandlerFunc.ServeHTTP (3.88 Bil)", - "x": 559.0425273390036, - "y": 407, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, { "props": { "fillRule": "nonzero", @@ -14920,9 +14178,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 935.1154313487242, - "y": 396, + "width": 7.776427703523694, + "x": 417.01093560145813, + "y": 572, }, "transform": [ 1, @@ -14965,9 +14223,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 1592.2235722964765, - "y": 396, + "width": 1.9441069258809236, + "x": 417.01093560145813, + "y": 594, }, "transform": [ 1, @@ -15011,8 +14269,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 1596.1117861482383, - "y": 396, + "x": 424.7873633049818, + "y": 572, }, "transform": [ 1, @@ -15038,6 +14296,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -15054,9 +14313,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 148.69623329283112, - "x": 399.0419198055893, - "y": 418, + "width": 7.776427703523694, + "x": 428.67557715674366, + "y": 528, }, "transform": [ 1, @@ -15078,7 +14337,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -15099,9 +14358,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 148.69623329283112, - "x": 399.0419198055893, - "y": 418, + "width": 3.888213851761847, + "x": 428.67557715674366, + "y": 550, }, "transform": [ 1, @@ -15125,23 +14384,6 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, - { - "props": { - "maxWidth": null, - "text": "github.com/bufbuild/connect-go.NewUnaryHandler[...].func1.1 (1.54 Bil)", - "x": 402.5419198055893, - "y": 429, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, { "props": { "fillRule": "nonzero", @@ -15161,9 +14403,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 6.804374240583233, - "x": 548.2381530984204, - "y": 418, + "width": 1.9441069258809236, + "x": 428.67557715674366, + "y": 572, }, "transform": [ 1, @@ -15189,6 +14431,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -15205,9 +14448,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 376.1567436208992, - "x": 555.5425273390036, - "y": 418, + "width": 0.9720534629404618, + "x": 432.5637910085055, + "y": 550, }, "transform": [ 1, @@ -15229,7 +14472,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -15250,9 +14493,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 376.1567436208992, - "x": 555.5425273390036, - "y": 418, + "width": 0.9720534629404618, + "x": 436.4520048602673, + "y": 528, }, "transform": [ 1, @@ -15278,10 +14521,38 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "maxWidth": null, - "text": "net/http/pprof.Index (3.88 Bil)", - "x": 559.0425273390036, - "y": 429, + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 4.860267314702309, + "x": 437.4240583232078, + "y": 528, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], }, "transform": [ 1, @@ -15291,7 +14562,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fillText", + "type": "fill", }, { "props": { @@ -15313,8 +14584,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 935.1154313487242, - "y": 418, + "x": 437.4240583232078, + "y": 550, }, "transform": [ 1, @@ -15357,9 +14628,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 1592.2235722964765, - "y": 418, + "width": 0.9720534629404618, + "x": 437.4240583232078, + "y": 572, }, "transform": [ 1, @@ -15403,8 +14674,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 1596.1117861482383, - "y": 418, + "x": 437.4240583232078, + "y": 594, }, "transform": [ 1, @@ -15430,6 +14701,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -15446,9 +14718,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 148.69623329283112, - "x": 399.0419198055893, - "y": 440, + "width": 0.9720534629404618, + "x": 437.4240583232078, + "y": 616, }, "transform": [ 1, @@ -15470,7 +14742,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -15491,9 +14763,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 148.69623329283112, - "x": 399.0419198055893, - "y": 440, + "width": 0.9720534629404618, + "x": 437.4240583232078, + "y": 638, }, "transform": [ 1, @@ -15519,10 +14791,38 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "maxWidth": null, - "text": "test/pkg/ingester.(*Ingester).Push (1.54 Bil)", - "x": 402.5419198055893, - "y": 451, + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 437.4240583232078, + "y": 660, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], }, "transform": [ 1, @@ -15532,7 +14832,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fillText", + "type": "fill", }, { "props": { @@ -15553,9 +14853,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 6.804374240583233, - "x": 548.2381530984204, - "y": 440, + "width": 0.9720534629404618, + "x": 437.4240583232078, + "y": 682, }, "transform": [ 1, @@ -15581,6 +14881,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -15597,9 +14898,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 376.1567436208992, - "x": 555.5425273390036, - "y": 440, + "width": 0.9720534629404618, + "x": 437.4240583232078, + "y": 704, }, "transform": [ 1, @@ -15621,7 +14922,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -15642,9 +14943,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 376.1567436208992, - "x": 555.5425273390036, - "y": 440, + "width": 0.9720534629404618, + "x": 437.4240583232078, + "y": 726, }, "transform": [ 1, @@ -15670,10 +14971,38 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "maxWidth": null, - "text": "net/http/pprof.handler.ServeHTTP (3.88 Bil)", - "x": 559.0425273390036, - "y": 451, + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 437.4240583232078, + "y": 748, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], }, "transform": [ 1, @@ -15683,7 +15012,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fillText", + "type": "fill", }, { "props": { @@ -15705,8 +15034,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 935.1154313487242, - "y": 440, + "x": 437.4240583232078, + "y": 770, }, "transform": [ 1, @@ -15750,8 +15079,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 1592.2235722964765, - "y": 440, + "x": 438.39611178614825, + "y": 550, }, "transform": [ 1, @@ -15795,8 +15124,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 1594.1676792223573, - "y": 440, + "x": 438.39611178614825, + "y": 572, }, "transform": [ 1, @@ -15840,8 +15169,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 1596.1117861482383, - "y": 440, + "x": 438.39611178614825, + "y": 594, }, "transform": [ 1, @@ -15867,6 +15196,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -15883,9 +15213,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 17.469015795868774, - "x": 399.0419198055893, - "y": 462, + "width": 1.9441069258809236, + "x": 439.36816524908875, + "y": 550, }, "transform": [ 1, @@ -15907,7 +15237,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -15928,9 +15258,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 17.469015795868774, - "x": 399.0419198055893, - "y": 462, + "width": 1.9441069258809236, + "x": 439.36816524908875, + "y": 572, }, "transform": [ 1, @@ -15956,6 +15286,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -15972,9 +15303,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 81.62454434993926, - "x": 417.51093560145813, - "y": 462, + "width": 1.9441069258809236, + "x": 442.2843256379101, + "y": 528, }, "transform": [ 1, @@ -15996,7 +15327,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -16017,9 +15348,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 81.62454434993926, - "x": 417.51093560145813, - "y": 462, + "width": 1.9441069258809236, + "x": 446.172539489672, + "y": 506, }, "transform": [ 1, @@ -16045,10 +15376,38 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "maxWidth": null, - "text": "test/pkg/create.(*Head).Ingest (850 Mil)", - "x": 421.01093560145813, - "y": 473, + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 446.172539489672, + "y": 528, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], }, "transform": [ 1, @@ -16058,10 +15417,11 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fillText", + "type": "fill", }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -16078,9 +15438,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 45.658566221142166, - "x": 500.1354799513974, - "y": 462, + "width": 0.9720534629404618, + "x": 447.1445929526124, + "y": 528, }, "transform": [ 1, @@ -16102,7 +15462,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -16123,9 +15483,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 45.658566221142166, - "x": 500.1354799513974, - "y": 462, + "width": 0.9720534629404618, + "x": 447.1445929526124, + "y": 550, }, "transform": [ 1, @@ -16151,10 +15511,38 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "maxWidth": null, - "text": "test/pkg/gen/google/v1.(*Profile).UnmarshalVT (480 Mil)", - "x": 503.6354799513974, - "y": 473, + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 448.1166464155529, + "y": 506, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], }, "transform": [ 1, @@ -16164,7 +15552,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fillText", + "type": "fill", }, { "props": { @@ -16185,9 +15573,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 8.748481166464156, - "x": 546.2940461725395, - "y": 462, + "width": 0.9720534629404618, + "x": 449.08869987849334, + "y": 506, }, "transform": [ 1, @@ -16229,9 +15617,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 375.1846901579587, - "x": 555.5425273390036, - "y": 462, + "width": 34.96597812879708, + "x": 451.5328068043743, + "y": 484, }, "transform": [ 1, @@ -16274,9 +15662,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 375.1846901579587, - "x": 555.5425273390036, - "y": 462, + "width": 34.96597812879708, + "x": 451.5328068043743, + "y": 484, }, "transform": [ 1, @@ -16303,9 +15691,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "maxWidth": null, - "text": "runtime/pprof.(*Profile).WriteTo (3.87 Bil)", - "x": 559.0425273390036, - "y": 473, + "text": "test/pkg/create.(*deduplicatingSlice[...]).ingest (370 Mil)", + "x": 455.0328068043743, + "y": 495, }, "transform": [ 1, @@ -16317,6 +15705,96 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fillText", }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 3.888213851761847, + "x": 451.0328068043743, + "y": 506, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 451.0328068043743, + "y": 528, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, { "props": { "fillRule": "nonzero", @@ -16337,8 +15815,19312 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 1592.2235722964765, - "y": 462, + "x": 452.9769137302552, + "y": 528, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 9.720534629404618, + "x": 454.92102065613614, + "y": 506, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 454.92102065613614, + "y": 528, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 454.92102065613614, + "y": 550, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 454.92102065613614, + "y": 572, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 2.9161603888213854, + "x": 455.8930741190766, + "y": 528, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 2.9161603888213854, + "x": 455.8930741190766, + "y": 550, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 7.776427703523694, + "x": 464.64155528554073, + "y": 506, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 464.64155528554073, + "y": 528, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 466.58566221142166, + "y": 528, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 466.58566221142166, + "y": 550, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 472.4179829890644, + "y": 506, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 3.888213851761847, + "x": 473.3900364520049, + "y": 506, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 473.3900364520049, + "y": 528, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 474.36208991494533, + "y": 528, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 477.27825030376675, + "y": 506, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 478.2503037667072, + "y": 506, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 480.1944106925881, + "y": 506, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 481.16646415552856, + "y": 506, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 483.1105710814095, + "y": 506, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 483.1105710814095, + "y": 528, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 483.1105710814095, + "y": 550, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 486.99878493317135, + "y": 484, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 486.99878493317135, + "y": 506, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 486.99878493317135, + "y": 528, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 486.99878493317135, + "y": 550, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 9.69258809234508, + "x": 488.4708383961118, + "y": 484, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 9.69258809234508, + "x": 488.4708383961118, + "y": 484, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 9.69258809234508, + "x": 488.4708383961118, + "y": 506, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 9.69258809234508, + "x": 488.4708383961118, + "y": 506, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 5.832320777642771, + "x": 487.9708383961118, + "y": 528, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 487.9708383961118, + "y": 550, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 487.9708383961118, + "y": 572, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 487.9708383961118, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 487.9708383961118, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 489.9149453219927, + "y": 550, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 489.9149453219927, + "y": 572, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 489.9149453219927, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 489.9149453219927, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 489.9149453219927, + "y": 638, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 493.8031591737546, + "y": 528, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 498.6634264884569, + "y": 484, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 498.6634264884569, + "y": 506, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 498.6634264884569, + "y": 528, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 498.6634264884569, + "y": 550, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 498.6634264884569, + "y": 572, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 498.6634264884569, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 498.6634264884569, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 498.6634264884569, + "y": 638, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 498.6634264884569, + "y": 660, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 498.6634264884569, + "y": 682, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 498.6634264884569, + "y": 704, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 498.6634264884569, + "y": 726, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 45.658566221142166, + "x": 500.1354799513974, + "y": 462, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 45.658566221142166, + "x": 500.1354799513974, + "y": 462, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "maxWidth": null, + "text": "test/pkg/gen/google/v1.(*Profile).UnmarshalVT (480 Mil)", + "x": 503.6354799513974, + "y": 473, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 13.580801944106927, + "x": 500.1354799513974, + "y": 484, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 13.580801944106927, + "x": 500.1354799513974, + "y": 484, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 499.6354799513974, + "y": 506, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 11.636695018226003, + "x": 501.1075334143378, + "y": 506, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 11.636695018226003, + "x": 501.1075334143378, + "y": 506, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 500.6075334143378, + "y": 528, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 501.5795868772783, + "y": 528, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 4.860267314702309, + "x": 502.55164034021874, + "y": 528, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 12.608748481166465, + "x": 514.7162818955043, + "y": 484, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 12.608748481166465, + "x": 514.7162818955043, + "y": 484, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 7.776427703523694, + "x": 514.2162818955043, + "y": 506, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 3.888213851761847, + "x": 514.2162818955043, + "y": 528, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 514.2162818955043, + "y": 550, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 518.1044957472661, + "y": 528, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 521.992709599028, + "y": 506, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 521.992709599028, + "y": 528, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 522.9647630619685, + "y": 528, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 523.9368165249089, + "y": 506, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 10.664641555285542, + "x": 528.3250303766707, + "y": 484, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 10.664641555285542, + "x": 528.3250303766707, + "y": 484, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 5.832320777642771, + "x": 527.8250303766707, + "y": 506, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 3.888213851761847, + "x": 527.8250303766707, + "y": 528, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 527.8250303766707, + "y": 550, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 528.7970838396112, + "y": 550, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 528.7970838396112, + "y": 572, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 528.7970838396112, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 531.7132442284326, + "y": 528, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 2.9161603888213854, + "x": 539.4896719319563, + "y": 484, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 2.9161603888213854, + "x": 539.4896719319563, + "y": 506, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 539.4896719319563, + "y": 528, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 539.4896719319563, + "y": 550, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 539.4896719319563, + "y": 572, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 539.4896719319563, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 539.4896719319563, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 539.4896719319563, + "y": 638, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 539.4896719319563, + "y": 660, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 539.4896719319563, + "y": 682, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 539.4896719319563, + "y": 704, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 541.4337788578372, + "y": 528, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 546.2940461725395, + "y": 462, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 546.2940461725395, + "y": 484, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 546.2940461725395, + "y": 506, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 546.2940461725395, + "y": 528, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 546.2940461725395, + "y": 550, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 546.2940461725395, + "y": 572, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 546.2940461725395, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 546.2940461725395, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 547.26609963548, + "y": 462, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 547.26609963548, + "y": 484, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 5.832320777642771, + "x": 548.2381530984204, + "y": 418, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 5.832320777642771, + "x": 548.2381530984204, + "y": 440, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 5.832320777642771, + "x": 548.2381530984204, + "y": 462, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 5.832320777642771, + "x": 548.2381530984204, + "y": 484, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 2.9161603888213854, + "x": 548.2381530984204, + "y": 506, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 548.2381530984204, + "y": 528, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 548.2381530984204, + "y": 550, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 548.2381530984204, + "y": 572, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 548.2381530984204, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 548.2381530984204, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 548.2381530984204, + "y": 638, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 548.2381530984204, + "y": 660, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 548.2381530984204, + "y": 682, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 548.2381530984204, + "y": 704, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 548.2381530984204, + "y": 726, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 548.2381530984204, + "y": 748, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 548.2381530984204, + "y": 770, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 549.2102065613609, + "y": 528, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 549.2102065613609, + "y": 550, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 549.2102065613609, + "y": 572, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 549.2102065613609, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 549.2102065613609, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 2.9161603888213854, + "x": 551.1543134872418, + "y": 506, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 2.9161603888213854, + "x": 551.1543134872418, + "y": 528, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 2.9161603888213854, + "x": 551.1543134872418, + "y": 550, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 2.9161603888213854, + "x": 551.1543134872418, + "y": 572, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 2.9161603888213854, + "x": 551.1543134872418, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 2.9161603888213854, + "x": 551.1543134872418, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 554.0704738760633, + "y": 418, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 554.0704738760633, + "y": 440, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 554.0704738760633, + "y": 462, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 554.0704738760633, + "y": 484, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 554.0704738760633, + "y": 506, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 554.0704738760633, + "y": 528, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 554.0704738760633, + "y": 550, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 554.0704738760633, + "y": 572, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 554.0704738760633, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 554.0704738760633, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 554.0704738760633, + "y": 638, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 554.0704738760633, + "y": 660, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 554.0704738760633, + "y": 682, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 554.0704738760633, + "y": 704, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 554.0704738760633, + "y": 726, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 554.0704738760633, + "y": 748, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 376.1567436208992, + "x": 555.5425273390036, + "y": 374, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 376.1567436208992, + "x": 555.5425273390036, + "y": 374, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "maxWidth": null, + "text": "net/http.(*ServeMux).ServeHTTP (3.88 Bil)", + "x": 559.0425273390036, + "y": 385, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 376.1567436208992, + "x": 555.5425273390036, + "y": 396, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 376.1567436208992, + "x": 555.5425273390036, + "y": 396, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "maxWidth": null, + "text": "net/http.HandlerFunc.ServeHTTP (3.88 Bil)", + "x": 559.0425273390036, + "y": 407, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 376.1567436208992, + "x": 555.5425273390036, + "y": 418, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 376.1567436208992, + "x": 555.5425273390036, + "y": 418, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "maxWidth": null, + "text": "net/http/pprof.Index (3.88 Bil)", + "x": 559.0425273390036, + "y": 429, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 376.1567436208992, + "x": 555.5425273390036, + "y": 440, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 376.1567436208992, + "x": 555.5425273390036, + "y": 440, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "maxWidth": null, + "text": "net/http/pprof.handler.ServeHTTP (3.88 Bil)", + "x": 559.0425273390036, + "y": 451, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 375.1846901579587, + "x": 555.5425273390036, + "y": 462, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 375.1846901579587, + "x": 555.5425273390036, + "y": 462, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "maxWidth": null, + "text": "runtime/pprof.(*Profile).WriteTo (3.87 Bil)", + "x": 559.0425273390036, + "y": 473, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 312.97326852976914, + "x": 555.5425273390036, + "y": 484, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 312.97326852976914, + "x": 555.5425273390036, + "y": 484, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "maxWidth": null, + "text": "runtime/pprof.writeAlloc (3.23 Bil)", + "x": 559.0425273390036, + "y": 495, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 312.97326852976914, + "x": 555.5425273390036, + "y": 506, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 312.97326852976914, + "x": 555.5425273390036, + "y": 506, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "maxWidth": null, + "text": "runtime/pprof.writeHeapInternal (3.23 Bil)", + "x": 559.0425273390036, + "y": 517, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 311.0291616038882, + "x": 555.5425273390036, + "y": 528, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 311.0291616038882, + "x": 555.5425273390036, + "y": 528, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "maxWidth": null, + "text": "runtime/pprof.writeHeapProto (3.21 Bil)", + "x": 559.0425273390036, + "y": 539, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 30.105710814094778, + "x": 555.5425273390036, + "y": 550, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 30.105710814094778, + "x": 555.5425273390036, + "y": 550, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "maxWidth": null, + "text": "runtime/pprof.(*profileBuilder).pbSample (320 Mil)", + "x": 559.0425273390036, + "y": 561, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 6.804374240583233, + "x": 555.0425273390036, + "y": 572, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 6.804374240583233, + "x": 555.0425273390036, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 3.888213851761847, + "x": 555.0425273390036, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 3.888213851761847, + "x": 555.0425273390036, + "y": 638, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 555.0425273390036, + "y": 660, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 555.0425273390036, + "y": 682, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 555.0425273390036, + "y": 704, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 555.0425273390036, + "y": 726, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 555.0425273390036, + "y": 748, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 555.0425273390036, + "y": 770, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 555.0425273390036, + "y": 792, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 555.0425273390036, + "y": 814, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 555.0425273390036, + "y": 836, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 555.0425273390036, + "y": 858, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 555.0425273390036, + "y": 880, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 555.0425273390036, + "y": 902, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 555.0425273390036, + "y": 924, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 555.0425273390036, + "y": 946, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 555.0425273390036, + "y": 968, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 555.0425273390036, + "y": 990, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 555.0425273390036, + "y": 1012, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 555.0425273390036, + "y": 1034, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 555.0425273390036, + "y": 1056, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 555.0425273390036, + "y": 1078, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 556.0145808019441, + "y": 682, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 556.9866342648846, + "y": 660, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 2.9161603888213854, + "x": 558.9307411907655, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 558.9307411907655, + "y": 638, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 558.9307411907655, + "y": 660, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 558.9307411907655, + "y": 682, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 558.9307411907655, + "y": 704, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 558.9307411907655, + "y": 726, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 558.9307411907655, + "y": 748, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 558.9307411907655, + "y": 770, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 558.9307411907655, + "y": 792, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 558.9307411907655, + "y": 814, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 559.902794653706, + "y": 638, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 559.902794653706, + "y": 660, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 559.902794653706, + "y": 682, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 6.804374240583233, + "x": 561.8469015795869, + "y": 572, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 5.832320777642771, + "x": 561.8469015795869, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 561.8469015795869, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 2.9161603888213854, + "x": 563.7910085054679, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 566.7071688942892, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 566.7071688942892, + "y": 638, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 567.6792223572297, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 9.720534629404618, + "x": 568.6512758201701, + "y": 572, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 568.6512758201701, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 4.860267314702309, + "x": 578.3718104495748, + "y": 572, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 178.82989064398544, + "x": 586.6482381530984, + "y": 550, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 178.82989064398544, + "x": 586.6482381530984, + "y": 550, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "maxWidth": null, + "text": "runtime/pprof.(*profileBuilder).appendLocsForStack (1.85 Bil)", + "x": 590.1482381530984, + "y": 561, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 38.85419198055893, + "x": 586.6482381530984, + "y": 572, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 38.85419198055893, + "x": 586.6482381530984, + "y": 572, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "maxWidth": null, + "text": "runtime/pprof.(*profileBuilder).emitLocation (410 Mil)", + "x": 590.1482381530984, + "y": 583, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 9.69258809234508, + "x": 586.6482381530984, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 9.69258809234508, + "x": 586.6482381530984, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 9.69258809234508, + "x": 586.6482381530984, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 9.69258809234508, + "x": 586.6482381530984, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 8.748481166464156, + "x": 586.1482381530984, + "y": 638, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 5.832320777642771, + "x": 586.1482381530984, + "y": 660, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 5.832320777642771, + "x": 586.1482381530984, + "y": 682, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 3.888213851761847, + "x": 586.1482381530984, + "y": 704, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 590.0364520048603, + "y": 704, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 590.0364520048603, + "y": 726, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 590.0364520048603, + "y": 748, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 2.9161603888213854, + "x": 591.9805589307413, + "y": 660, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 2.9161603888213854, + "x": 591.9805589307413, + "y": 682, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 2.9161603888213854, + "x": 591.9805589307413, + "y": 704, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 591.9805589307413, + "y": 726, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 591.9805589307413, + "y": 748, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 592.9526123936816, + "y": 726, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 592.9526123936816, + "y": 748, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 592.9526123936816, + "y": 770, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 592.9526123936816, + "y": 792, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 592.9526123936816, + "y": 814, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 592.9526123936816, + "y": 836, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 592.9526123936816, + "y": 858, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 594.8967193195626, + "y": 638, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 594.8967193195626, + "y": 660, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 594.8967193195626, + "y": 682, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 594.8967193195626, + "y": 704, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 595.868772782503, + "y": 704, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 2.9161603888213854, + "x": 596.8408262454435, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 596.8408262454435, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 598.7849331713245, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 3.888213851761847, + "x": 599.7569866342649, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 599.7569866342649, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 599.7569866342649, + "y": 638, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 599.7569866342649, + "y": 660, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 599.7569866342649, + "y": 682, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 599.7569866342649, + "y": 704, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 599.7569866342649, + "y": 726, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 599.7569866342649, + "y": 748, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 599.7569866342649, + "y": 770, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 599.7569866342649, + "y": 792, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 599.7569866342649, + "y": 814, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 599.7569866342649, + "y": 836, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 599.7569866342649, + "y": 858, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 599.7569866342649, + "y": 880, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 3.888213851761847, + "x": 603.6452004860267, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 603.6452004860267, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 7.776427703523694, + "x": 607.5334143377886, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 2.9161603888213854, + "x": 607.5334143377886, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 2.9161603888213854, + "x": 607.5334143377886, + "y": 638, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 607.5334143377886, + "y": 660, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 607.5334143377886, + "y": 682, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 607.5334143377886, + "y": 704, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 607.5334143377886, + "y": 726, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 607.5334143377886, + "y": 748, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 607.5334143377886, + "y": 770, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 607.5334143377886, + "y": 792, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 610.44957472661, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 5.832320777642771, + "x": 615.3098420413123, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 2.9161603888213854, + "x": 615.3098420413123, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 2.9161603888213854, + "x": 618.2260024301337, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 618.2260024301337, + "y": 638, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 621.1421628189551, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 622.1142162818956, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 622.1142162818956, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 623.086269744836, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 624.0583232077764, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 14.552855407047389, + "x": 626.5024301336574, + "y": 572, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 14.552855407047389, + "x": 626.5024301336574, + "y": 572, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 10.664641555285542, + "x": 626.5024301336574, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 10.664641555285542, + "x": 626.5024301336574, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 626.0024301336574, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 9.720534629404618, + "x": 627.9465370595383, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 4.860267314702309, + "x": 627.9465370595383, + "y": 638, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 632.8068043742406, + "y": 638, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 633.7788578371811, + "y": 638, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 61.211421628189555, + "x": 642.0552855407047, + "y": 572, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 61.211421628189555, + "x": 642.0552855407047, + "y": 572, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "maxWidth": null, + "text": "runtime/pprof.allFrames (640 Mil)", + "x": 645.5552855407047, + "y": 583, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 641.5552855407047, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 52.462940461725395, + "x": 643.0273390036452, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 52.462940461725395, + "x": 643.0273390036452, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "maxWidth": null, + "text": "runtime.(*Frames).Next (550 Mil)", + "x": 646.5273390036452, + "y": 605, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 38.85419198055893, + "x": 643.0273390036452, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 38.85419198055893, + "x": 643.0273390036452, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "maxWidth": null, + "text": "runtime.funcline1 (410 Mil)", + "x": 646.5273390036452, + "y": 627, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 7.776427703523694, + "x": 642.5273390036452, + "y": 638, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 5.832320777642771, + "x": 642.5273390036452, + "y": 660, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 24.273390036452007, + "x": 650.803766707169, + "y": 638, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 24.273390036452007, + "x": 650.803766707169, + "y": 638, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "maxWidth": null, + "text": "runtime.pcvalue (260 Mil)", + "x": 654.303766707169, + "y": 649, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 650.303766707169, + "y": 660, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 15.52490886998785, + "x": 652.7478736330498, + "y": 660, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 15.52490886998785, + "x": 652.7478736330498, + "y": 660, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 5.832320777642771, + "x": 675.5771567436209, + "y": 638, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 2.9161603888213854, + "x": 675.5771567436209, + "y": 660, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 675.5771567436209, + "y": 682, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 682.3815309842041, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 682.3815309842041, + "y": 638, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 682.3815309842041, + "y": 660, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 684.3256379100851, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 685.2976913730256, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 686.269744835966, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 4.860267314702309, + "x": 688.213851761847, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 3.888213851761847, + "x": 688.213851761847, + "y": 638, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 688.213851761847, + "y": 660, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 692.1020656136088, + "y": 638, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 692.1020656136088, + "y": 660, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 6.804374240583233, + "x": 695.9902794653706, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 2.9161603888213854, + "x": 695.9902794653706, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 3.888213851761847, + "x": 698.9064398541921, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 27.189550425273392, + "x": 704.2667071688943, + "y": 572, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 27.189550425273392, + "x": 704.2667071688943, + "y": 572, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "maxWidth": null, + "text": "runtime.mapaccess2_fast64 (290 Mil)", + "x": 707.7667071688943, + "y": 583, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 8.748481166464156, + "x": 703.7667071688943, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 2.9161603888213854, + "x": 731.9562575941677, + "y": 572, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 731.9562575941677, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 732.9283110571082, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 732.9283110571082, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 732.9283110571082, + "y": 638, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 19.413122721749698, + "x": 735.3724179829891, + "y": 572, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 19.413122721749698, + "x": 735.3724179829891, + "y": 572, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 734.8724179829891, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 734.8724179829891, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 734.8724179829891, + "y": 638, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 735.8444714459296, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 10.664641555285542, + "x": 737.3165249088701, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 10.664641555285542, + "x": 737.3165249088701, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 8.748481166464156, + "x": 736.8165249088701, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 8.748481166464156, + "x": 736.8165249088701, + "y": 638, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 5.832320777642771, + "x": 736.8165249088701, + "y": 660, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 742.6488456865128, + "y": 660, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 2.9161603888213854, + "x": 745.5650060753342, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 2.9161603888213854, + "x": 745.5650060753342, + "y": 638, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 2.9161603888213854, + "x": 745.5650060753342, + "y": 660, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 2.9161603888213854, + "x": 745.5650060753342, + "y": 682, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 745.5650060753342, + "y": 704, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 746.5370595382747, + "y": 704, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 4.860267314702309, + "x": 748.4811664641555, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 748.4811664641555, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 755.2855407047388, + "y": 572, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 765.9781287970839, + "y": 550, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 26.21749696233293, + "x": 767.4501822600243, + "y": 550, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 26.21749696233293, + "x": 767.4501822600243, + "y": 550, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "maxWidth": null, + "text": "runtime/pprof.(*profileBuilder).build (280 Mil)", + "x": 770.9501822600243, + "y": 561, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 13.580801944106927, + "x": 767.4501822600243, + "y": 572, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 13.580801944106927, + "x": 767.4501822600243, + "y": 572, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 13.580801944106927, + "x": 767.4501822600243, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 13.580801944106927, + "x": 767.4501822600243, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 13.580801944106927, + "x": 767.4501822600243, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 13.580801944106927, + "x": 767.4501822600243, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 5.832320777642771, + "x": 766.9501822600243, + "y": 638, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 2.9161603888213854, + "x": 766.9501822600243, + "y": 660, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 7.776427703523694, + "x": 772.7825030376671, + "y": 638, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 4.860267314702309, + "x": 772.7825030376671, + "y": 660, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 772.7825030376671, + "y": 682, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 772.7825030376671, + "y": 704, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 772.7825030376671, + "y": 726, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 772.7825030376671, + "y": 748, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 772.7825030376671, + "y": 770, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 772.7825030376671, + "y": 792, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 772.7825030376671, + "y": 814, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 772.7825030376671, + "y": 836, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 772.7825030376671, + "y": 858, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 772.7825030376671, + "y": 880, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 772.7825030376671, + "y": 902, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 772.7825030376671, + "y": 924, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 772.7825030376671, + "y": 946, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 772.7825030376671, + "y": 968, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 772.7825030376671, + "y": 990, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 772.7825030376671, + "y": 1012, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 772.7825030376671, + "y": 1034, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 772.7825030376671, + "y": 1056, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 774.7266099635481, + "y": 682, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 777.6427703523694, + "y": 660, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 777.6427703523694, + "y": 682, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 777.6427703523694, + "y": 704, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 779.5868772782503, + "y": 660, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 779.5868772782503, + "y": 682, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 779.5868772782503, + "y": 704, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 779.5868772782503, + "y": 726, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 779.5868772782503, + "y": 748, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 779.5868772782503, + "y": 770, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 779.5868772782503, + "y": 792, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 779.5868772782503, + "y": 814, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 779.5868772782503, + "y": 836, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 779.5868772782503, + "y": 858, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 779.5868772782503, + "y": 880, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 779.5868772782503, + "y": 902, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 779.5868772782503, + "y": 924, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 779.5868772782503, + "y": 946, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 779.5868772782503, + "y": 968, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 779.5868772782503, + "y": 990, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 779.5868772782503, + "y": 1012, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 779.5868772782503, + "y": 1034, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 779.5868772782503, + "y": 1056, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 780.5589307411908, + "y": 638, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 11.636695018226003, + "x": 782.0309842041313, + "y": 572, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 11.636695018226003, + "x": 782.0309842041313, + "y": 572, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 11.636695018226003, + "x": 782.0309842041313, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 11.636695018226003, + "x": 782.0309842041313, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 11.636695018226003, + "x": 782.0309842041313, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 11.636695018226003, + "x": 782.0309842041313, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 6.804374240583233, + "x": 781.5309842041313, + "y": 638, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 2.9161603888213854, + "x": 781.5309842041313, + "y": 660, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 2.9161603888213854, + "x": 784.4471445929527, + "y": 660, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 784.4471445929527, + "y": 682, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 784.4471445929527, + "y": 704, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 784.4471445929527, + "y": 726, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 784.4471445929527, + "y": 748, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 784.4471445929527, + "y": 770, }, "transform": [ 1, @@ -16382,8 +35164,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 1594.1676792223573, - "y": 462, + "x": 784.4471445929527, + "y": 792, }, "transform": [ 1, @@ -16427,8 +35209,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 1596.1117861482383, - "y": 462, + "x": 784.4471445929527, + "y": 814, }, "transform": [ 1, @@ -16454,6 +35236,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -16470,9 +35253,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 15.52490886998785, - "x": 399.0419198055893, - "y": 484, + "width": 0.9720534629404618, + "x": 784.4471445929527, + "y": 836, }, "transform": [ 1, @@ -16494,7 +35277,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -16515,9 +35298,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 15.52490886998785, - "x": 399.0419198055893, - "y": 484, + "width": 0.9720534629404618, + "x": 784.4471445929527, + "y": 858, }, "transform": [ 1, @@ -16560,9 +35343,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 415.0668286755772, - "y": 484, + "width": 0.9720534629404618, + "x": 784.4471445929527, + "y": 880, }, "transform": [ 1, @@ -16588,6 +35371,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -16604,9 +35388,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 33.02187120291616, - "x": 417.51093560145813, - "y": 484, + "width": 0.9720534629404618, + "x": 784.4471445929527, + "y": 902, }, "transform": [ 1, @@ -16628,7 +35412,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -16649,9 +35433,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 33.02187120291616, - "x": 417.51093560145813, - "y": 484, + "width": 0.9720534629404618, + "x": 784.4471445929527, + "y": 924, }, "transform": [ 1, @@ -16677,23 +35461,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "maxWidth": null, - "text": "test/pkg/create.(*Head).convertSamples (350 Mil)", - "x": 421.01093560145813, - "y": 495, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -16710,9 +35478,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 34.96597812879708, - "x": 451.5328068043743, - "y": 484, + "width": 0.9720534629404618, + "x": 784.4471445929527, + "y": 946, }, "transform": [ 1, @@ -16734,7 +35502,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -16755,9 +35523,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 34.96597812879708, - "x": 451.5328068043743, - "y": 484, + "width": 0.9720534629404618, + "x": 784.4471445929527, + "y": 968, }, "transform": [ 1, @@ -16781,23 +35549,6 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, - { - "props": { - "maxWidth": null, - "text": "test/pkg/create.(*deduplicatingSlice[...]).ingest (370 Mil)", - "x": 455.0328068043743, - "y": 495, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, { "props": { "fillRule": "nonzero", @@ -16818,8 +35569,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 486.99878493317135, - "y": 484, + "x": 784.4471445929527, + "y": 990, }, "transform": [ 1, @@ -16845,6 +35596,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -16861,9 +35613,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 9.69258809234508, - "x": 488.4708383961118, - "y": 484, + "width": 0.9720534629404618, + "x": 785.4191980558932, + "y": 682, }, "transform": [ 1, @@ -16885,7 +35637,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -16906,9 +35658,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 9.69258809234508, - "x": 488.4708383961118, - "y": 484, + "width": 0.9720534629404618, + "x": 787.363304981774, + "y": 660, }, "transform": [ 1, @@ -16952,8 +35704,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 498.6634264884569, - "y": 484, + "x": 788.3353584447145, + "y": 638, }, "transform": [ 1, @@ -16979,6 +35731,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -16995,9 +35748,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 13.580801944106927, - "x": 500.1354799513974, - "y": 484, + "width": 3.888213851761847, + "x": 789.3074119076549, + "y": 638, }, "transform": [ 1, @@ -17019,7 +35772,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -17040,9 +35793,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 13.580801944106927, - "x": 500.1354799513974, - "y": 484, + "width": 0.9720534629404618, + "x": 793.1956257594168, + "y": 638, }, "transform": [ 1, @@ -17084,9 +35837,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 12.608748481166465, - "x": 514.7162818955043, - "y": 484, + "width": 56.35115431348724, + "x": 794.6676792223573, + "y": 550, }, "transform": [ 1, @@ -17129,9 +35882,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 12.608748481166465, - "x": 514.7162818955043, - "y": 484, + "width": 56.35115431348724, + "x": 794.6676792223573, + "y": 550, }, "transform": [ 1, @@ -17157,6 +35910,24 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "maxWidth": null, + "text": "runtime.FuncForPC (590 Mil)", + "x": 798.1676792223573, + "y": 561, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -17173,9 +35944,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 10.664641555285542, - "x": 528.3250303766707, - "y": 484, + "width": 1.9441069258809236, + "x": 794.1676792223573, + "y": 572, }, "transform": [ 1, @@ -17197,7 +35968,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -17218,9 +35989,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 10.664641555285542, - "x": 528.3250303766707, - "y": 484, + "width": 1.9441069258809236, + "x": 794.1676792223573, + "y": 594, }, "transform": [ 1, @@ -17263,9 +36034,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 539.4896719319563, - "y": 484, + "width": 0.9720534629404618, + "x": 794.1676792223573, + "y": 616, }, "transform": [ 1, @@ -17308,9 +36079,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 8.748481166464156, - "x": 546.2940461725395, - "y": 484, + "width": 3.888213851761847, + "x": 796.1117861482383, + "y": 572, }, "transform": [ 1, @@ -17352,9 +36123,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 312.97326852976914, - "x": 555.5425273390036, - "y": 484, + "width": 13.580801944106927, + "x": 800.5, + "y": 572, }, "transform": [ 1, @@ -17397,9 +36168,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 312.97326852976914, - "x": 555.5425273390036, - "y": 484, + "width": 13.580801944106927, + "x": 800.5, + "y": 572, }, "transform": [ 1, @@ -17425,23 +36196,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "maxWidth": null, - "text": "runtime/pprof.writeAlloc (3.23 Bil)", - "x": 559.0425273390036, - "y": 495, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -17458,9 +36213,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 61.211421628189555, - "x": 869.5157958687728, - "y": 484, + "width": 2.9161603888213854, + "x": 800, + "y": 594, }, "transform": [ 1, @@ -17482,7 +36237,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -17503,9 +36258,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 61.211421628189555, - "x": 869.5157958687728, - "y": 484, + "width": 2.9161603888213854, + "x": 800, + "y": 616, }, "transform": [ 1, @@ -17531,24 +36286,6 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "maxWidth": null, - "text": "runtime/pprof.writeGoroutine (640 Mil)", - "x": 873.0157958687728, - "y": 495, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -17565,9 +36302,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 1592.2235722964765, - "y": 484, + "width": 10.664641555285542, + "x": 803.4161603888215, + "y": 594, }, "transform": [ 1, @@ -17589,7 +36326,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -17610,9 +36347,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 1594.1676792223573, - "y": 484, + "width": 10.664641555285542, + "x": 803.4161603888215, + "y": 594, }, "transform": [ 1, @@ -17656,8 +36393,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 1596.1117861482383, - "y": 484, + "x": 802.9161603888215, + "y": 616, }, "transform": [ 1, @@ -17683,6 +36420,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -17699,9 +36437,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 15.52490886998785, - "x": 399.0419198055893, - "y": 506, + "width": 7.776427703523694, + "x": 803.8882138517619, + "y": 616, }, "transform": [ 1, @@ -17723,11 +36461,10 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -17744,9 +36481,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 15.52490886998785, - "x": 399.0419198055893, - "y": 506, + "width": 34.96597812879708, + "x": 815.080801944107, + "y": 572, }, "transform": [ 1, @@ -17768,7 +36505,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -17789,9 +36526,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 415.0668286755772, - "y": 506, + "width": 34.96597812879708, + "x": 815.080801944107, + "y": 572, }, "transform": [ 1, @@ -17815,6 +36552,23 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, + { + "props": { + "maxWidth": null, + "text": "runtime.funcline1 (370 Mil)", + "x": 818.580801944107, + "y": 583, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, { "props": { "path": [ @@ -17833,9 +36587,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 28.161603888213854, - "x": 417.51093560145813, - "y": 506, + "width": 24.273390036452007, + "x": 815.080801944107, + "y": 594, }, "transform": [ 1, @@ -17878,9 +36632,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 28.161603888213854, - "x": 417.51093560145813, - "y": 506, + "width": 24.273390036452007, + "x": 815.080801944107, + "y": 594, }, "transform": [ 1, @@ -17907,9 +36661,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "maxWidth": null, - "text": "test/pkg/create.(*deduplicatingSlice[...]).ingest (300 Mil)", - "x": 421.01093560145813, - "y": 517, + "text": "runtime.pcvalue (260 Mil)", + "x": 818.580801944107, + "y": 605, }, "transform": [ 1, @@ -17941,8 +36695,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 3.888213851761847, - "x": 446.172539489672, - "y": 506, + "x": 814.580801944107, + "y": 616, }, "transform": [ 1, @@ -17968,7 +36722,6 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -17985,9 +36738,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 33.0498177399757, - "x": 451.0328068043743, - "y": 506, + "width": 13.580801944106927, + "x": 818.9690157958688, + "y": 616, }, "transform": [ 1, @@ -18009,7 +36762,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -18030,9 +36783,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 486.99878493317135, - "y": 506, + "width": 13.580801944106927, + "x": 818.9690157958688, + "y": 616, }, "transform": [ 1, @@ -18075,8 +36828,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 9.69258809234508, - "x": 488.4708383961118, - "y": 506, + "x": 840.354191980559, + "y": 594, }, "transform": [ 1, @@ -18120,8 +36873,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 9.69258809234508, - "x": 488.4708383961118, - "y": 506, + "x": 840.354191980559, + "y": 594, }, "transform": [ 1, @@ -18164,9 +36917,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 498.6634264884569, - "y": 506, + "width": 8.748481166464156, + "x": 839.854191980559, + "y": 616, }, "transform": [ 1, @@ -18190,50 +36943,6 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 11.636695018226003, - "x": 501.1075334143378, - "y": 506, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, { "props": { "fillRule": "nonzero", @@ -18253,9 +36962,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 11.636695018226003, - "x": 501.1075334143378, - "y": 506, + "width": 0.9720534629404618, + "x": 851.5188335358445, + "y": 550, }, "transform": [ 1, @@ -18298,9 +37007,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 11.664641555285542, - "x": 514.2162818955043, - "y": 506, + "width": 0.9720534629404618, + "x": 851.5188335358445, + "y": 572, }, "transform": [ 1, @@ -18343,9 +37052,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 5.832320777642771, - "x": 527.8250303766707, - "y": 506, + "width": 0.9720534629404618, + "x": 851.5188335358445, + "y": 594, }, "transform": [ 1, @@ -18388,9 +37097,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 539.4896719319563, - "y": 506, + "width": 0.9720534629404618, + "x": 851.5188335358445, + "y": 616, }, "transform": [ 1, @@ -18434,8 +37143,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 546.2940461725395, - "y": 506, + "x": 851.5188335358445, + "y": 638, }, "transform": [ 1, @@ -18478,9 +37187,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 6.804374240583233, - "x": 548.2381530984204, - "y": 506, + "width": 0.9720534629404618, + "x": 851.5188335358445, + "y": 660, }, "transform": [ 1, @@ -18506,6 +37215,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -18522,9 +37232,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 312.97326852976914, - "x": 555.5425273390036, - "y": 506, + "width": 0.9720534629404618, + "x": 851.5188335358445, + "y": 682, }, "transform": [ 1, @@ -18546,7 +37256,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -18567,9 +37277,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 312.97326852976914, - "x": 555.5425273390036, - "y": 506, + "width": 0.9720534629404618, + "x": 851.5188335358445, + "y": 704, }, "transform": [ 1, @@ -18595,23 +37305,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "maxWidth": null, - "text": "runtime/pprof.writeHeapInternal (3.23 Bil)", - "x": 559.0425273390036, - "y": 517, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -18628,9 +37322,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 61.211421628189555, - "x": 869.5157958687728, - "y": 506, + "width": 0.9720534629404618, + "x": 851.5188335358445, + "y": 726, }, "transform": [ 1, @@ -18652,7 +37346,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -18673,9 +37367,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 61.211421628189555, - "x": 869.5157958687728, - "y": 506, + "width": 0.9720534629404618, + "x": 851.5188335358445, + "y": 748, }, "transform": [ 1, @@ -18699,23 +37393,6 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, - { - "props": { - "maxWidth": null, - "text": "runtime/pprof.writeRuntimeProfile (640 Mil)", - "x": 873.0157958687728, - "y": 517, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, { "props": { "fillRule": "nonzero", @@ -18735,9 +37412,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 1592.2235722964765, - "y": 506, + "width": 1.9441069258809236, + "x": 852.490886998785, + "y": 550, }, "transform": [ 1, @@ -18780,9 +37457,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 1594.1676792223573, - "y": 506, + "width": 1.9441069258809236, + "x": 854.434993924666, + "y": 550, }, "transform": [ 1, @@ -18825,9 +37502,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 1596.1117861482383, - "y": 506, + "width": 1.9441069258809236, + "x": 854.434993924666, + "y": 572, }, "transform": [ 1, @@ -18870,9 +37547,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 398.5419198055893, - "y": 528, + "width": 1.9441069258809236, + "x": 854.434993924666, + "y": 594, }, "transform": [ 1, @@ -18898,6 +37575,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -18914,9 +37592,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 10.664641555285542, - "x": 401.95808019441074, - "y": 528, + "width": 1.9441069258809236, + "x": 854.434993924666, + "y": 616, }, "transform": [ 1, @@ -18938,7 +37616,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -18959,9 +37637,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 10.664641555285542, - "x": 401.95808019441074, - "y": 528, + "width": 6.804374240583233, + "x": 856.3791008505468, + "y": 550, }, "transform": [ 1, @@ -19004,9 +37682,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 413.12272174969627, - "y": 528, + "width": 5.832320777642771, + "x": 856.3791008505468, + "y": 572, }, "transform": [ 1, @@ -19049,8 +37727,8 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 416.03888213851764, + "width": 1.9441069258809236, + "x": 867.0716889428919, "y": 528, }, "transform": [ @@ -19077,6 +37755,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -19093,9 +37772,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 10.664641555285542, - "x": 417.51093560145813, - "y": 528, + "width": 1.9441069258809236, + "x": 867.0716889428919, + "y": 550, }, "transform": [ 1, @@ -19117,11 +37796,10 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -19138,9 +37816,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 10.664641555285542, - "x": 417.51093560145813, - "y": 528, + "width": 61.211421628189555, + "x": 869.5157958687728, + "y": 484, }, "transform": [ 1, @@ -19162,7 +37840,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -19183,9 +37861,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 15.552855407047389, - "x": 428.67557715674366, - "y": 528, + "width": 61.211421628189555, + "x": 869.5157958687728, + "y": 484, }, "transform": [ 1, @@ -19211,7 +37889,23 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", + "maxWidth": null, + "text": "runtime/pprof.writeGoroutine (640 Mil)", + "x": 873.0157958687728, + "y": 495, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { "path": [ { "props": {}, @@ -19228,9 +37922,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 446.172539489672, - "y": 528, + "width": 61.211421628189555, + "x": 869.5157958687728, + "y": 506, }, "transform": [ 1, @@ -19252,7 +37946,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -19273,9 +37967,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 451.0328068043743, - "y": 528, + "width": 61.211421628189555, + "x": 869.5157958687728, + "y": 506, }, "transform": [ 1, @@ -19301,7 +37995,23 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", + "maxWidth": null, + "text": "runtime/pprof.writeRuntimeProfile (640 Mil)", + "x": 873.0157958687728, + "y": 517, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { "path": [ { "props": {}, @@ -19318,8 +38028,8 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 3.888213851761847, - "x": 454.92102065613614, + "width": 23.301336573511545, + "x": 869.5157958687728, "y": 528, }, "transform": [ @@ -19342,7 +38052,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -19363,8 +38073,8 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 464.64155528554073, + "width": 23.301336573511545, + "x": 869.5157958687728, "y": 528, }, "transform": [ @@ -19391,7 +38101,23 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", + "maxWidth": null, + "text": "runtime/pprof.runtime_goroutineProfileWithLabels (250 Mil)", + "x": 873.0157958687728, + "y": 539, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { "path": [ { "props": {}, @@ -19408,9 +38134,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 473.3900364520049, - "y": 528, + "width": 23.301336573511545, + "x": 869.5157958687728, + "y": 550, }, "transform": [ 1, @@ -19432,7 +38158,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -19453,9 +38179,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 483.1105710814095, - "y": 528, + "width": 23.301336573511545, + "x": 869.5157958687728, + "y": 550, }, "transform": [ 1, @@ -19481,7 +38207,23 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", + "maxWidth": null, + "text": "runtime.goroutineProfileWithLabels (250 Mil)", + "x": 873.0157958687728, + "y": 561, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { "path": [ { "props": {}, @@ -19498,9 +38240,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 7.776427703523694, - "x": 486.99878493317135, - "y": 528, + "width": 21.35722964763062, + "x": 869.5157958687728, + "y": 572, }, "transform": [ 1, @@ -19522,7 +38264,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -19543,9 +38285,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 498.6634264884569, - "y": 528, + "width": 21.35722964763062, + "x": 869.5157958687728, + "y": 572, }, "transform": [ 1, @@ -19571,7 +38313,23 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", + "maxWidth": null, + "text": "runtime.forEachGRace (230 Mil)", + "x": 873.0157958687728, + "y": 583, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { "path": [ { "props": {}, @@ -19588,9 +38346,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 6.804374240583233, - "x": 500.6075334143378, - "y": 528, + "width": 16.496962332928312, + "x": 869.5157958687728, + "y": 594, }, "transform": [ 1, @@ -19612,7 +38370,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -19633,9 +38391,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 4.860267314702309, - "x": 514.2162818955043, - "y": 528, + "width": 16.496962332928312, + "x": 869.5157958687728, + "y": 594, }, "transform": [ 1, @@ -19661,7 +38419,6 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -19678,9 +38435,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 521.992709599028, - "y": 528, + "width": 15.52490886998785, + "x": 869.5157958687728, + "y": 616, }, "transform": [ 1, @@ -19702,7 +38459,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -19723,9 +38480,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 5.832320777642771, - "x": 527.8250303766707, - "y": 528, + "width": 15.52490886998785, + "x": 869.5157958687728, + "y": 616, }, "transform": [ 1, @@ -19751,7 +38508,6 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -19768,9 +38524,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 539.4896719319563, - "y": 528, + "width": 15.52490886998785, + "x": 869.5157958687728, + "y": 638, }, "transform": [ 1, @@ -19792,7 +38548,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -19813,9 +38569,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 546.2940461725395, - "y": 528, + "width": 15.52490886998785, + "x": 869.5157958687728, + "y": 638, }, "transform": [ 1, @@ -19841,7 +38597,6 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -19858,9 +38613,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 6.804374240583233, - "x": 548.2381530984204, - "y": 528, + "width": 15.52490886998785, + "x": 869.5157958687728, + "y": 660, }, "transform": [ 1, @@ -19882,10 +38637,11 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -19902,9 +38658,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 311.0291616038882, - "x": 555.5425273390036, - "y": 528, + "width": 15.52490886998785, + "x": 869.5157958687728, + "y": 660, }, "transform": [ 1, @@ -19926,11 +38682,10 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -19947,9 +38702,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 311.0291616038882, - "x": 555.5425273390036, - "y": 528, + "width": 15.52490886998785, + "x": 869.5157958687728, + "y": 682, }, "transform": [ 1, @@ -19971,14 +38726,42 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { - "maxWidth": null, - "text": "runtime/pprof.writeHeapProto (3.21 Bil)", - "x": 559.0425273390036, - "y": 539, + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 15.52490886998785, + "x": 869.5157958687728, + "y": 682, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], }, "transform": [ 1, @@ -19988,7 +38771,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fillText", + "type": "fill", }, { "props": { @@ -20009,9 +38792,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 867.0716889428919, - "y": 528, + "width": 4.860267314702309, + "x": 869.0157958687728, + "y": 704, }, "transform": [ 1, @@ -20037,6 +38820,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -20053,9 +38837,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 23.301336573511545, - "x": 869.5157958687728, - "y": 528, + "width": 0.9720534629404618, + "x": 869.0157958687728, + "y": 726, }, "transform": [ 1, @@ -20077,7 +38861,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -20098,9 +38882,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 23.301336573511545, - "x": 869.5157958687728, - "y": 528, + "width": 3.888213851761847, + "x": 869.9878493317133, + "y": 726, }, "transform": [ 1, @@ -20126,10 +38910,38 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "maxWidth": null, - "text": "runtime/pprof.runtime_goroutineProfileWithLabels (250 Mil)", - "x": 873.0157958687728, - "y": 539, + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 869.9878493317133, + "y": 748, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], }, "transform": [ 1, @@ -20139,10 +38951,11 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fillText", + "type": "fill", }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -20159,9 +38972,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 36.91008505467801, - "x": 893.8171324422843, - "y": 528, + "width": 0.9720534629404618, + "x": 870.9599027946538, + "y": 748, }, "transform": [ 1, @@ -20183,7 +38996,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -20204,9 +39017,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 36.91008505467801, - "x": 893.8171324422843, - "y": 528, + "width": 5.832320777642771, + "x": 873.8760631834751, + "y": 704, }, "transform": [ 1, @@ -20232,10 +39045,38 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "maxWidth": null, - "text": "runtime/pprof.printCountProfile (390 Mil)", - "x": 897.3171324422843, - "y": 539, + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 5.832320777642771, + "x": 873.8760631834751, + "y": 726, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], }, "transform": [ 1, @@ -20245,7 +39086,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fillText", + "type": "fill", }, { "props": { @@ -20267,8 +39108,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 401.45808019441074, - "y": 550, + "x": 873.8760631834751, + "y": 748, }, "transform": [ 1, @@ -20311,9 +39152,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 413.12272174969627, - "y": 550, + "width": 2.9161603888213854, + "x": 874.8481166464156, + "y": 748, }, "transform": [ 1, @@ -20357,8 +39198,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 416.03888213851764, - "y": 550, + "x": 879.7083839611179, + "y": 704, }, "transform": [ 1, @@ -20384,6 +39225,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -20400,9 +39242,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 9.69258809234508, - "x": 417.51093560145813, - "y": 550, + "width": 0.9720534629404618, + "x": 885.5407047387607, + "y": 616, }, "transform": [ 1, @@ -20424,7 +39266,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -20445,9 +39287,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 9.69258809234508, - "x": 417.51093560145813, - "y": 550, + "width": 0.9720534629404618, + "x": 885.5407047387607, + "y": 638, }, "transform": [ 1, @@ -20490,9 +39332,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 4.860267314702309, - "x": 428.67557715674366, - "y": 550, + "width": 0.9720534629404618, + "x": 885.5407047387607, + "y": 660, }, "transform": [ 1, @@ -20535,9 +39377,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 3.888213851761847, - "x": 437.4240583232078, - "y": 550, + "width": 0.9720534629404618, + "x": 885.5407047387607, + "y": 682, }, "transform": [ 1, @@ -20580,9 +39422,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 447.1445929526124, - "y": 550, + "width": 4.860267314702309, + "x": 886.5127582017011, + "y": 594, }, "transform": [ 1, @@ -20625,9 +39467,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 3.888213851761847, - "x": 454.92102065613614, - "y": 550, + "width": 4.860267314702309, + "x": 886.5127582017011, + "y": 616, }, "transform": [ 1, @@ -20670,9 +39512,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 466.58566221142166, - "y": 550, + "width": 1.9441069258809236, + "x": 886.5127582017011, + "y": 638, }, "transform": [ 1, @@ -20716,8 +39558,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 483.1105710814095, - "y": 550, + "x": 891.3730255164035, + "y": 572, }, "transform": [ 1, @@ -20760,9 +39602,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 3.888213851761847, - "x": 486.99878493317135, - "y": 550, + "width": 0.9720534629404618, + "x": 891.3730255164035, + "y": 594, }, "transform": [ 1, @@ -20806,8 +39648,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 498.6634264884569, - "y": 550, + "x": 891.3730255164035, + "y": 616, }, "transform": [ 1, @@ -20851,8 +39693,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 514.2162818955043, - "y": 550, + "x": 891.3730255164035, + "y": 638, }, "transform": [ 1, @@ -20895,9 +39737,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 527.8250303766707, - "y": 550, + "width": 0.9720534629404618, + "x": 891.3730255164035, + "y": 660, }, "transform": [ 1, @@ -20940,9 +39782,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 539.4896719319563, - "y": 550, + "width": 0.9720534629404618, + "x": 891.3730255164035, + "y": 682, }, "transform": [ 1, @@ -20986,8 +39828,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 546.2940461725395, - "y": 550, + "x": 891.3730255164035, + "y": 704, }, "transform": [ 1, @@ -21030,9 +39872,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 6.804374240583233, - "x": 548.2381530984204, - "y": 550, + "width": 0.9720534629404618, + "x": 891.3730255164035, + "y": 726, }, "transform": [ 1, @@ -21058,6 +39900,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -21074,9 +39917,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 30.105710814094778, - "x": 555.5425273390036, - "y": 550, + "width": 0.9720534629404618, + "x": 891.3730255164035, + "y": 748, }, "transform": [ 1, @@ -21098,7 +39941,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -21119,9 +39962,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 30.105710814094778, - "x": 555.5425273390036, - "y": 550, + "width": 0.9720534629404618, + "x": 892.345078979344, + "y": 572, }, "transform": [ 1, @@ -21147,23 +39990,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "maxWidth": null, - "text": "runtime/pprof.(*profileBuilder).pbSample (320 Mil)", - "x": 559.0425273390036, - "y": 561, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -21180,9 +40007,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 178.82989064398544, - "x": 586.6482381530984, - "y": 550, + "width": 0.9720534629404618, + "x": 892.345078979344, + "y": 594, }, "transform": [ 1, @@ -21204,7 +40031,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -21225,9 +40052,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 178.82989064398544, - "x": 586.6482381530984, - "y": 550, + "width": 0.9720534629404618, + "x": 892.345078979344, + "y": 616, }, "transform": [ 1, @@ -21251,23 +40078,6 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, - { - "props": { - "maxWidth": null, - "text": "runtime/pprof.(*profileBuilder).appendLocsForStack (1.85 Bil)", - "x": 590.1482381530984, - "y": 561, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, { "props": { "fillRule": "nonzero", @@ -21288,8 +40098,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 765.9781287970839, - "y": 550, + "x": 892.345078979344, + "y": 638, }, "transform": [ 1, @@ -21331,9 +40141,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 26.21749696233293, - "x": 767.4501822600243, - "y": 550, + "width": 36.91008505467801, + "x": 893.8171324422843, + "y": 528, }, "transform": [ 1, @@ -21376,9 +40186,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 26.21749696233293, - "x": 767.4501822600243, - "y": 550, + "width": 36.91008505467801, + "x": 893.8171324422843, + "y": 528, }, "transform": [ 1, @@ -21405,9 +40215,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "maxWidth": null, - "text": "runtime/pprof.(*profileBuilder).build (280 Mil)", - "x": 770.9501822600243, - "y": 561, + "text": "runtime/pprof.printCountProfile (390 Mil)", + "x": 897.3171324422843, + "y": 539, }, "transform": [ 1, @@ -21421,6 +40231,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -21437,8 +40248,8 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 56.35115431348724, - "x": 794.6676792223573, + "width": 5.832320777642771, + "x": 893.3171324422843, "y": 550, }, "transform": [ @@ -21461,7 +40272,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -21482,9 +40293,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 56.35115431348724, - "x": 794.6676792223573, - "y": 550, + "width": 3.888213851761847, + "x": 893.3171324422843, + "y": 572, }, "transform": [ 1, @@ -21510,10 +40321,38 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "maxWidth": null, - "text": "runtime.FuncForPC (590 Mil)", - "x": 798.1676792223573, - "y": 561, + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 2.9161603888213854, + "x": 893.3171324422843, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], }, "transform": [ 1, @@ -21523,7 +40362,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fillText", + "type": "fill", }, { "props": { @@ -21544,9 +40383,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 11.664641555285542, - "x": 851.5188335358445, - "y": 550, + "width": 1.9441069258809236, + "x": 893.3171324422843, + "y": 616, }, "transform": [ 1, @@ -21590,8 +40429,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 1.9441069258809236, - "x": 867.0716889428919, - "y": 550, + "x": 893.3171324422843, + "y": 638, }, "transform": [ 1, @@ -21617,6 +40456,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -21633,9 +40473,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 23.301336573511545, - "x": 869.5157958687728, - "y": 550, + "width": 0.9720534629404618, + "x": 893.3171324422843, + "y": 660, }, "transform": [ 1, @@ -21657,7 +40497,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -21678,9 +40518,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 23.301336573511545, - "x": 869.5157958687728, - "y": 550, + "width": 0.9720534629404618, + "x": 896.2332928311058, + "y": 594, }, "transform": [ 1, @@ -21706,10 +40546,38 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "maxWidth": null, - "text": "runtime.goroutineProfileWithLabels (250 Mil)", - "x": 873.0157958687728, - "y": 561, + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 896.2332928311058, + "y": 616, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], }, "transform": [ 1, @@ -21719,7 +40587,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fillText", + "type": "fill", }, { "props": { @@ -21740,9 +40608,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 17.496962332928312, - "x": 893.3171324422843, - "y": 550, + "width": 0.9720534629404618, + "x": 897.2053462940462, + "y": 572, }, "transform": [ 1, @@ -21768,6 +40636,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -21784,9 +40653,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 16.496962332928312, - "x": 911.3140947752127, - "y": 550, + "width": 0.9720534629404618, + "x": 897.2053462940462, + "y": 594, }, "transform": [ 1, @@ -21808,7 +40677,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -21829,8 +40698,8 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 16.496962332928312, - "x": 911.3140947752127, + "width": 2.9161603888213854, + "x": 899.1494532199272, "y": 550, }, "transform": [ @@ -21874,9 +40743,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 928.311057108141, - "y": 550, + "width": 0.9720534629404618, + "x": 899.1494532199272, + "y": 572, }, "transform": [ 1, @@ -21920,8 +40789,53 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 401.45808019441074, - "y": 572, + "x": 899.1494532199272, + "y": 594, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 899.1494532199272, + "y": 616, }, "transform": [ 1, @@ -21964,9 +40878,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 9.720534629404618, - "x": 416.03888213851764, - "y": 572, + "width": 0.9720534629404618, + "x": 899.1494532199272, + "y": 638, }, "transform": [ 1, @@ -22009,8 +40923,8 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 428.67557715674366, + "width": 0.9720534629404618, + "x": 900.1215066828676, "y": 572, }, "transform": [ @@ -22054,9 +40968,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 3.888213851761847, - "x": 437.4240583232078, - "y": 572, + "width": 8.748481166464156, + "x": 902.0656136087485, + "y": 550, }, "transform": [ 1, @@ -22100,7 +41014,7 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 454.92102065613614, + "x": 902.0656136087485, "y": 572, }, "transform": [ @@ -22144,9 +41058,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 487.9708383961118, - "y": 572, + "width": 0.9720534629404618, + "x": 902.0656136087485, + "y": 594, }, "transform": [ 1, @@ -22189,8 +41103,8 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 498.6634264884569, + "width": 5.832320777642771, + "x": 903.037667071689, "y": 572, }, "transform": [ @@ -22235,8 +41149,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 528.7970838396112, - "y": 572, + "x": 903.037667071689, + "y": 594, }, "transform": [ 1, @@ -22279,9 +41193,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 539.4896719319563, - "y": 572, + "width": 3.888213851761847, + "x": 904.0097205346294, + "y": 594, }, "transform": [ 1, @@ -22324,9 +41238,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 546.2940461725395, - "y": 572, + "width": 3.888213851761847, + "x": 904.0097205346294, + "y": 616, }, "transform": [ 1, @@ -22369,9 +41283,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 34.993924665856625, - "x": 548.2381530984204, - "y": 572, + "width": 3.888213851761847, + "x": 904.0097205346294, + "y": 638, }, "transform": [ 1, @@ -22397,6 +41311,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -22413,9 +41328,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 38.85419198055893, - "x": 586.6482381530984, - "y": 572, + "width": 2.9161603888213854, + "x": 904.0097205346294, + "y": 660, }, "transform": [ 1, @@ -22437,7 +41352,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -22458,9 +41373,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 38.85419198055893, - "x": 586.6482381530984, - "y": 572, + "width": 2.9161603888213854, + "x": 904.0097205346294, + "y": 682, }, "transform": [ 1, @@ -22486,10 +41401,38 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "maxWidth": null, - "text": "runtime/pprof.(*profileBuilder).emitLocation (410 Mil)", - "x": 590.1482381530984, - "y": 583, + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 2.9161603888213854, + "x": 904.0097205346294, + "y": 704, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], }, "transform": [ 1, @@ -22499,10 +41442,11 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fillText", + "type": "fill", }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -22519,9 +41463,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 14.552855407047389, - "x": 626.5024301336574, - "y": 572, + "width": 2.9161603888213854, + "x": 904.0097205346294, + "y": 726, }, "transform": [ 1, @@ -22543,7 +41487,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -22564,9 +41508,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 14.552855407047389, - "x": 626.5024301336574, - "y": 572, + "width": 2.9161603888213854, + "x": 904.0097205346294, + "y": 748, }, "transform": [ 1, @@ -22592,6 +41536,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -22608,9 +41553,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 61.211421628189555, - "x": 642.0552855407047, - "y": 572, + "width": 2.9161603888213854, + "x": 904.0097205346294, + "y": 770, }, "transform": [ 1, @@ -22632,7 +41577,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -22653,9 +41598,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 61.211421628189555, - "x": 642.0552855407047, - "y": 572, + "width": 2.9161603888213854, + "x": 904.0097205346294, + "y": 792, }, "transform": [ 1, @@ -22681,10 +41626,38 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "maxWidth": null, - "text": "runtime/pprof.allFrames (640 Mil)", - "x": 645.5552855407047, - "y": 583, + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 2.9161603888213854, + "x": 904.0097205346294, + "y": 814, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], }, "transform": [ 1, @@ -22694,10 +41667,11 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fillText", + "type": "fill", }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -22714,9 +41688,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 27.189550425273392, - "x": 704.2667071688943, - "y": 572, + "width": 0.9720534629404618, + "x": 904.0097205346294, + "y": 836, }, "transform": [ 1, @@ -22738,7 +41712,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -22759,9 +41733,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 27.189550425273392, - "x": 704.2667071688943, - "y": 572, + "width": 0.9720534629404618, + "x": 904.9817739975699, + "y": 836, }, "transform": [ 1, @@ -22787,10 +41761,38 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "maxWidth": null, - "text": "runtime.mapaccess2_fast64 (290 Mil)", - "x": 707.7667071688943, - "y": 583, + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 904.9817739975699, + "y": 858, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], }, "transform": [ 1, @@ -22800,7 +41802,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fillText", + "type": "fill", }, { "props": { @@ -22821,9 +41823,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 731.9562575941677, - "y": 572, + "width": 0.9720534629404618, + "x": 906.9258809234508, + "y": 660, }, "transform": [ 1, @@ -22849,6 +41851,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -22865,9 +41868,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 19.413122721749698, - "x": 735.3724179829891, - "y": 572, + "width": 0.9720534629404618, + "x": 906.9258809234508, + "y": 682, }, "transform": [ 1, @@ -22889,7 +41892,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -22910,9 +41913,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 19.413122721749698, - "x": 735.3724179829891, - "y": 572, + "width": 0.9720534629404618, + "x": 906.9258809234508, + "y": 704, }, "transform": [ 1, @@ -22955,8 +41958,8 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 755.2855407047388, + "width": 1.9441069258809236, + "x": 908.8699878493318, "y": 572, }, "transform": [ @@ -22983,6 +41986,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -22999,9 +42003,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 13.580801944106927, - "x": 767.4501822600243, - "y": 572, + "width": 0.9720534629404618, + "x": 908.8699878493318, + "y": 594, }, "transform": [ 1, @@ -23023,7 +42027,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -23044,9 +42048,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 13.580801944106927, - "x": 767.4501822600243, - "y": 572, + "width": 0.9720534629404618, + "x": 908.8699878493318, + "y": 616, }, "transform": [ 1, @@ -23072,6 +42076,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -23088,9 +42093,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 11.636695018226003, - "x": 782.0309842041313, - "y": 572, + "width": 0.9720534629404618, + "x": 909.8420413122723, + "y": 594, }, "transform": [ 1, @@ -23112,7 +42117,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -23133,9 +42138,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 11.636695018226003, - "x": 782.0309842041313, - "y": 572, + "width": 0.9720534629404618, + "x": 909.8420413122723, + "y": 616, }, "transform": [ 1, @@ -23178,9 +42183,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 5.832320777642771, - "x": 794.1676792223573, - "y": 572, + "width": 0.9720534629404618, + "x": 909.8420413122723, + "y": 638, }, "transform": [ 1, @@ -23222,9 +42227,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 13.580801944106927, - "x": 800.5, - "y": 572, + "width": 16.496962332928312, + "x": 911.3140947752127, + "y": 550, }, "transform": [ 1, @@ -23267,9 +42272,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 13.580801944106927, - "x": 800.5, - "y": 572, + "width": 16.496962332928312, + "x": 911.3140947752127, + "y": 550, }, "transform": [ 1, @@ -23311,8 +42316,8 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 34.96597812879708, - "x": 815.080801944107, + "width": 15.52490886998785, + "x": 911.3140947752127, "y": 572, }, "transform": [ @@ -23356,8 +42361,8 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 34.96597812879708, - "x": 815.080801944107, + "width": 15.52490886998785, + "x": 911.3140947752127, "y": 572, }, "transform": [ @@ -23382,23 +42387,6 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, - { - "props": { - "maxWidth": null, - "text": "runtime.funcline1 (370 Mil)", - "x": 818.580801944107, - "y": 583, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, { "props": { "fillRule": "nonzero", @@ -23418,9 +42406,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 851.5188335358445, - "y": 572, + "width": 4.860267314702309, + "x": 910.8140947752127, + "y": 594, }, "transform": [ 1, @@ -23463,9 +42451,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 7.776427703523694, - "x": 854.434993924666, - "y": 572, + "width": 1.9441069258809236, + "x": 910.8140947752127, + "y": 616, }, "transform": [ 1, @@ -23491,6 +42479,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -23507,9 +42496,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 21.35722964763062, - "x": 869.5157958687728, - "y": 572, + "width": 1.9441069258809236, + "x": 910.8140947752127, + "y": 638, }, "transform": [ 1, @@ -23531,7 +42520,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -23552,9 +42541,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 21.35722964763062, - "x": 869.5157958687728, - "y": 572, + "width": 1.9441069258809236, + "x": 910.8140947752127, + "y": 660, }, "transform": [ 1, @@ -23580,10 +42569,38 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "maxWidth": null, - "text": "runtime.forEachGRace (230 Mil)", - "x": 873.0157958687728, - "y": 583, + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 910.8140947752127, + "y": 682, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], }, "transform": [ 1, @@ -23593,7 +42610,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fillText", + "type": "fill", }, { "props": { @@ -23614,9 +42631,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 6.804374240583233, - "x": 891.3730255164035, - "y": 572, + "width": 0.9720534629404618, + "x": 910.8140947752127, + "y": 704, }, "transform": [ 1, @@ -23659,9 +42676,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 899.1494532199272, - "y": 572, + "width": 0.9720534629404618, + "x": 912.7582017010936, + "y": 616, }, "transform": [ 1, @@ -23704,9 +42721,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 8.748481166464156, - "x": 902.0656136087485, - "y": 572, + "width": 0.9720534629404618, + "x": 912.7582017010936, + "y": 638, }, "transform": [ 1, @@ -23732,6 +42749,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -23748,9 +42766,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 15.52490886998785, - "x": 911.3140947752127, - "y": 572, + "width": 0.9720534629404618, + "x": 913.730255164034, + "y": 616, }, "transform": [ 1, @@ -23772,7 +42790,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -23793,9 +42811,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 15.52490886998785, - "x": 911.3140947752127, - "y": 572, + "width": 0.9720534629404618, + "x": 913.730255164034, + "y": 638, }, "transform": [ 1, @@ -23838,9 +42856,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 3.888213851761847, - "x": 927.3390036452006, - "y": 572, + "width": 0.9720534629404618, + "x": 914.7023086269745, + "y": 616, }, "transform": [ 1, @@ -23883,9 +42901,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 416.03888213851764, - "y": 594, + "width": 0.9720534629404618, + "x": 914.7023086269745, + "y": 638, }, "transform": [ 1, @@ -23928,8 +42946,8 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 437.4240583232078, + "width": 2.9161603888213854, + "x": 915.674362089915, "y": 594, }, "transform": [ @@ -23973,9 +42991,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 487.9708383961118, - "y": 594, + "width": 2.9161603888213854, + "x": 915.674362089915, + "y": 616, }, "transform": [ 1, @@ -24018,9 +43036,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 489.9149453219927, - "y": 594, + "width": 1.9441069258809236, + "x": 915.674362089915, + "y": 638, }, "transform": [ 1, @@ -24063,9 +43081,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 498.6634264884569, - "y": 594, + "width": 1.9441069258809236, + "x": 915.674362089915, + "y": 660, }, "transform": [ 1, @@ -24108,9 +43126,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 528.7970838396112, - "y": 594, + "width": 1.9441069258809236, + "x": 915.674362089915, + "y": 682, }, "transform": [ 1, @@ -24153,9 +43171,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 539.4896719319563, - "y": 594, + "width": 0.9720534629404618, + "x": 917.6184690157959, + "y": 638, }, "transform": [ 1, @@ -24199,8 +43217,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 546.2940461725395, - "y": 594, + "x": 917.6184690157959, + "y": 660, }, "transform": [ 1, @@ -24243,9 +43261,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 22.35722964763062, - "x": 548.2381530984204, - "y": 594, + "width": 0.9720534629404618, + "x": 917.6184690157959, + "y": 682, }, "transform": [ 1, @@ -24271,6 +43289,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -24287,9 +43306,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 9.69258809234508, - "x": 586.6482381530984, - "y": 594, + "width": 0.9720534629404618, + "x": 917.6184690157959, + "y": 704, }, "transform": [ 1, @@ -24311,7 +43330,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -24332,9 +43351,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 9.69258809234508, - "x": 586.6482381530984, - "y": 594, + "width": 0.9720534629404618, + "x": 917.6184690157959, + "y": 726, }, "transform": [ 1, @@ -24377,9 +43396,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 28.189550425273392, - "x": 596.8408262454435, - "y": 594, + "width": 0.9720534629404618, + "x": 917.6184690157959, + "y": 748, }, "transform": [ 1, @@ -24405,6 +43424,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -24421,9 +43441,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 10.664641555285542, - "x": 626.5024301336574, - "y": 594, + "width": 0.9720534629404618, + "x": 917.6184690157959, + "y": 770, }, "transform": [ 1, @@ -24445,7 +43465,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -24466,8 +43486,8 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 10.664641555285542, - "x": 626.5024301336574, + "width": 8.748481166464156, + "x": 918.5905224787364, "y": 594, }, "transform": [ @@ -24512,8 +43532,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 641.5552855407047, - "y": 594, + "x": 918.5905224787364, + "y": 616, }, "transform": [ 1, @@ -24539,6 +43559,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -24555,9 +43576,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 52.462940461725395, - "x": 643.0273390036452, - "y": 594, + "width": 0.9720534629404618, + "x": 918.5905224787364, + "y": 638, }, "transform": [ 1, @@ -24579,7 +43600,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -24600,9 +43621,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 52.462940461725395, - "x": 643.0273390036452, - "y": 594, + "width": 0.9720534629404618, + "x": 918.5905224787364, + "y": 660, }, "transform": [ 1, @@ -24628,10 +43649,38 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "maxWidth": null, - "text": "runtime.(*Frames).Next (550 Mil)", - "x": 646.5273390036452, - "y": 605, + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 0.9720534629404618, + "x": 918.5905224787364, + "y": 682, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], }, "transform": [ 1, @@ -24641,7 +43690,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fillText", + "type": "fill", }, { "props": { @@ -24662,9 +43711,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 6.804374240583233, - "x": 695.9902794653706, - "y": 594, + "width": 0.9720534629404618, + "x": 918.5905224787364, + "y": 704, }, "transform": [ 1, @@ -24707,9 +43756,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 8.748481166464156, - "x": 703.7667071688943, - "y": 594, + "width": 0.9720534629404618, + "x": 918.5905224787364, + "y": 726, }, "transform": [ 1, @@ -24752,9 +43801,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 731.9562575941677, - "y": 594, + "width": 0.9720534629404618, + "x": 918.5905224787364, + "y": 748, }, "transform": [ 1, @@ -24797,9 +43846,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 734.8724179829891, - "y": 594, + "width": 0.9720534629404618, + "x": 918.5905224787364, + "y": 770, }, "transform": [ 1, @@ -24825,6 +43874,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -24841,9 +43891,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 10.664641555285542, - "x": 737.3165249088701, - "y": 594, + "width": 0.9720534629404618, + "x": 918.5905224787364, + "y": 792, }, "transform": [ 1, @@ -24865,7 +43915,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -24886,9 +43936,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 10.664641555285542, - "x": 737.3165249088701, - "y": 594, + "width": 0.9720534629404618, + "x": 918.5905224787364, + "y": 814, }, "transform": [ 1, @@ -24931,9 +43981,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 4.860267314702309, - "x": 748.4811664641555, - "y": 594, + "width": 0.9720534629404618, + "x": 918.5905224787364, + "y": 836, }, "transform": [ 1, @@ -24959,6 +44009,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -24975,9 +44026,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 13.580801944106927, - "x": 767.4501822600243, - "y": 594, + "width": 0.9720534629404618, + "x": 919.5625759416769, + "y": 616, }, "transform": [ 1, @@ -24999,7 +44050,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -25020,9 +44071,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 13.580801944106927, - "x": 767.4501822600243, - "y": 594, + "width": 0.9720534629404618, + "x": 919.5625759416769, + "y": 638, }, "transform": [ 1, @@ -25048,6 +44099,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -25064,9 +44116,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 11.636695018226003, - "x": 782.0309842041313, - "y": 594, + "width": 0.9720534629404618, + "x": 919.5625759416769, + "y": 660, }, "transform": [ 1, @@ -25088,7 +44140,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -25109,9 +44161,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 11.636695018226003, - "x": 782.0309842041313, - "y": 594, + "width": 0.9720534629404618, + "x": 919.5625759416769, + "y": 682, }, "transform": [ 1, @@ -25154,9 +44206,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 794.1676792223573, - "y": 594, + "width": 6.804374240583233, + "x": 920.5346294046172, + "y": 616, }, "transform": [ 1, @@ -25199,9 +44251,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 800, - "y": 594, + "width": 6.804374240583233, + "x": 920.5346294046172, + "y": 638, }, "transform": [ 1, @@ -25227,6 +44279,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -25243,9 +44296,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 10.664641555285542, - "x": 803.4161603888215, - "y": 594, + "width": 6.804374240583233, + "x": 920.5346294046172, + "y": 660, }, "transform": [ 1, @@ -25267,7 +44320,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -25288,9 +44341,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 10.664641555285542, - "x": 803.4161603888215, - "y": 594, + "width": 6.804374240583233, + "x": 920.5346294046172, + "y": 682, }, "transform": [ 1, @@ -25316,6 +44369,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -25332,9 +44386,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 24.273390036452007, - "x": 815.080801944107, - "y": 594, + "width": 0.9720534629404618, + "x": 927.3390036452006, + "y": 572, }, "transform": [ 1, @@ -25356,7 +44410,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -25377,9 +44431,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 24.273390036452007, - "x": 815.080801944107, - "y": 594, + "width": 1.9441069258809236, + "x": 928.311057108141, + "y": 550, }, "transform": [ 1, @@ -25405,10 +44459,38 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "maxWidth": null, - "text": "runtime.pcvalue (260 Mil)", - "x": 818.580801944107, - "y": 605, + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 1.9441069258809236, + "x": 928.311057108141, + "y": 572, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], }, "transform": [ 1, @@ -25418,10 +44500,11 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fillText", + "type": "fill", }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -25438,8 +44521,8 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 9.69258809234508, - "x": 840.354191980559, + "width": 0.9720534629404618, + "x": 928.311057108141, "y": 594, }, "transform": [ @@ -25462,7 +44545,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -25483,9 +44566,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 9.69258809234508, - "x": 840.354191980559, - "y": 594, + "width": 0.9720534629404618, + "x": 928.311057108141, + "y": 616, }, "transform": [ 1, @@ -25529,8 +44612,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 851.5188335358445, - "y": 594, + "x": 928.311057108141, + "y": 638, }, "transform": [ 1, @@ -25573,8 +44656,8 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 854.434993924666, + "width": 0.9720534629404618, + "x": 929.2831105710815, "y": 594, }, "transform": [ @@ -25601,6 +44684,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -25617,9 +44701,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 16.496962332928312, - "x": 869.5157958687728, - "y": 594, + "width": 0.9720534629404618, + "x": 929.2831105710815, + "y": 616, }, "transform": [ 1, @@ -25641,7 +44725,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -25662,9 +44746,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 16.496962332928312, - "x": 869.5157958687728, - "y": 594, + "width": 0.9720534629404618, + "x": 929.2831105710815, + "y": 638, }, "transform": [ 1, @@ -25707,9 +44791,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 11.664641555285542, - "x": 886.5127582017011, - "y": 594, + "width": 0.9720534629404618, + "x": 929.2831105710815, + "y": 660, }, "transform": [ 1, @@ -25753,8 +44837,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 899.1494532199272, - "y": 594, + "x": 930.255164034022, + "y": 550, }, "transform": [ 1, @@ -25797,9 +44881,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 5.832320777642771, - "x": 902.0656136087485, - "y": 594, + "width": 0.9720534629404618, + "x": 930.255164034022, + "y": 572, }, "transform": [ 1, @@ -25842,9 +44926,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 18.469015795868774, - "x": 908.8699878493318, - "y": 594, + "width": 0.9720534629404618, + "x": 932.1992709599028, + "y": 330, }, "transform": [ 1, @@ -25887,9 +44971,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 928.311057108141, - "y": 594, + "width": 0.9720534629404618, + "x": 933.1713244228433, + "y": 308, }, "transform": [ 1, @@ -25933,8 +45017,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 416.03888213851764, - "y": 616, + "x": 933.1713244228433, + "y": 330, }, "transform": [ 1, @@ -25978,8 +45062,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 437.4240583232078, - "y": 616, + "x": 933.1713244228433, + "y": 352, }, "transform": [ 1, @@ -26023,8 +45107,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 487.9708383961118, - "y": 616, + "x": 933.1713244228433, + "y": 374, }, "transform": [ 1, @@ -26067,9 +45151,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 489.9149453219927, - "y": 616, + "width": 1.9441069258809236, + "x": 934.1433778857838, + "y": 286, }, "transform": [ 1, @@ -26112,9 +45196,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 498.6634264884569, - "y": 616, + "width": 1.9441069258809236, + "x": 934.1433778857838, + "y": 308, }, "transform": [ 1, @@ -26157,9 +45241,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 539.4896719319563, - "y": 616, + "width": 0.9720534629404618, + "x": 934.1433778857838, + "y": 330, }, "transform": [ 1, @@ -26203,8 +45287,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 546.2940461725395, - "y": 616, + "x": 934.1433778857838, + "y": 352, }, "transform": [ 1, @@ -26247,9 +45331,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 19.441069258809236, - "x": 548.2381530984204, - "y": 616, + "width": 0.9720534629404618, + "x": 935.1154313487242, + "y": 330, }, "transform": [ 1, @@ -26273,50 +45357,6 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 9.69258809234508, - "x": 586.6482381530984, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, { "props": { "fillRule": "nonzero", @@ -26336,9 +45376,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 9.69258809234508, - "x": 586.6482381530984, - "y": 616, + "width": 0.9720534629404618, + "x": 935.1154313487242, + "y": 352, }, "transform": [ 1, @@ -26381,9 +45421,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 3.888213851761847, - "x": 596.8408262454435, - "y": 616, + "width": 0.9720534629404618, + "x": 935.1154313487242, + "y": 374, }, "transform": [ 1, @@ -26427,8 +45467,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 603.6452004860267, - "y": 616, + "x": 935.1154313487242, + "y": 396, }, "transform": [ 1, @@ -26471,9 +45511,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 4.860267314702309, - "x": 607.5334143377886, - "y": 616, + "width": 0.9720534629404618, + "x": 935.1154313487242, + "y": 418, }, "transform": [ 1, @@ -26516,9 +45556,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 5.832320777642771, - "x": 615.3098420413123, - "y": 616, + "width": 0.9720534629404618, + "x": 935.1154313487242, + "y": 440, }, "transform": [ 1, @@ -26562,8 +45602,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 622.1142162818956, - "y": 616, + "x": 936.0874848116647, + "y": 264, }, "transform": [ 1, @@ -26606,9 +45646,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 11.664641555285542, - "x": 626.0024301336574, - "y": 616, + "width": 0.9720534629404618, + "x": 936.0874848116647, + "y": 286, }, "transform": [ 1, @@ -26634,6 +45674,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -26650,9 +45691,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 38.85419198055893, - "x": 643.0273390036452, - "y": 616, + "width": 0.9720534629404618, + "x": 936.0874848116647, + "y": 308, }, "transform": [ 1, @@ -26674,7 +45715,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -26695,9 +45736,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 38.85419198055893, - "x": 643.0273390036452, - "y": 616, + "width": 0.9720534629404618, + "x": 936.0874848116647, + "y": 330, }, "transform": [ 1, @@ -26721,23 +45762,6 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, - { - "props": { - "maxWidth": null, - "text": "runtime.funcline1 (410 Mil)", - "x": 646.5273390036452, - "y": 627, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, { "props": { "fillRule": "nonzero", @@ -26757,9 +45781,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 10.69258809234508, - "x": 682.3815309842041, - "y": 616, + "width": 0.9720534629404618, + "x": 936.0874848116647, + "y": 352, }, "transform": [ 1, @@ -26802,9 +45826,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 6.804374240583233, - "x": 695.9902794653706, - "y": 616, + "width": 0.9720534629404618, + "x": 936.0874848116647, + "y": 374, }, "transform": [ 1, @@ -26847,9 +45871,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 732.9283110571082, - "y": 616, + "width": 1.9441069258809236, + "x": 937.0595382746052, + "y": 220, }, "transform": [ 1, @@ -26892,9 +45916,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 14.580801944106927, - "x": 734.8724179829891, - "y": 616, + "width": 1.9441069258809236, + "x": 937.0595382746052, + "y": 242, }, "transform": [ 1, @@ -26920,6 +45944,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -26936,9 +45961,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 13.580801944106927, - "x": 767.4501822600243, - "y": 616, + "width": 0.9720534629404618, + "x": 937.0595382746052, + "y": 264, }, "transform": [ 1, @@ -26960,7 +45985,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -26981,9 +46006,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 13.580801944106927, - "x": 767.4501822600243, - "y": 616, + "width": 0.9720534629404618, + "x": 937.0595382746052, + "y": 286, }, "transform": [ 1, @@ -27009,6 +46034,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -27025,9 +46051,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 11.636695018226003, - "x": 782.0309842041313, - "y": 616, + "width": 0.9720534629404618, + "x": 937.0595382746052, + "y": 308, }, "transform": [ 1, @@ -27049,7 +46075,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -27070,9 +46096,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 11.636695018226003, - "x": 782.0309842041313, - "y": 616, + "width": 0.9720534629404618, + "x": 938.0315917375456, + "y": 264, }, "transform": [ 1, @@ -27116,8 +46142,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 794.1676792223573, - "y": 616, + "x": 938.0315917375456, + "y": 286, }, "transform": [ 1, @@ -27160,9 +46186,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 11.664641555285542, - "x": 800, - "y": 616, + "width": 1.9441069258809236, + "x": 939.0036452004861, + "y": 220, }, "transform": [ 1, @@ -27205,9 +46231,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 3.888213851761847, - "x": 814.580801944107, - "y": 616, + "width": 1.9441069258809236, + "x": 939.0036452004861, + "y": 242, }, "transform": [ 1, @@ -27233,6 +46259,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -27249,9 +46276,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 13.580801944106927, - "x": 818.9690157958688, - "y": 616, + "width": 1.9441069258809236, + "x": 939.0036452004861, + "y": 264, }, "transform": [ 1, @@ -27273,7 +46300,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -27294,9 +46321,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 13.580801944106927, - "x": 818.9690157958688, - "y": 616, + "width": 1.9441069258809236, + "x": 939.0036452004861, + "y": 286, }, "transform": [ 1, @@ -27339,9 +46366,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 8.748481166464156, - "x": 839.854191980559, - "y": 616, + "width": 1.9441069258809236, + "x": 939.0036452004861, + "y": 308, }, "transform": [ 1, @@ -27385,8 +46412,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 851.5188335358445, - "y": 616, + "x": 939.0036452004861, + "y": 330, }, "transform": [ 1, @@ -27429,9 +46456,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 854.434993924666, - "y": 616, + "width": 3.888213851761847, + "x": 940.947752126367, + "y": 44, }, "transform": [ 1, @@ -27457,6 +46484,7 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { + "fillRule": "nonzero", "path": [ { "props": {}, @@ -27473,9 +46501,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 15.52490886998785, - "x": 869.5157958687728, - "y": 616, + "width": 3.888213851761847, + "x": 940.947752126367, + "y": 66, }, "transform": [ 1, @@ -27497,7 +46525,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "stroke", + "type": "fill", }, { "props": { @@ -27518,9 +46546,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 15.52490886998785, - "x": 869.5157958687728, - "y": 616, + "width": 0.9720534629404618, + "x": 940.947752126367, + "y": 88, }, "transform": [ 1, @@ -27563,9 +46591,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 9.720534629404618, - "x": 885.5407047387607, - "y": 616, + "width": 0.9720534629404618, + "x": 940.947752126367, + "y": 110, }, "transform": [ 1, @@ -27609,8 +46637,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 896.2332928311058, - "y": 616, + "x": 940.947752126367, + "y": 132, }, "transform": [ 1, @@ -27654,8 +46682,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 899.1494532199272, - "y": 616, + "x": 940.947752126367, + "y": 154, }, "transform": [ 1, @@ -27698,9 +46726,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 3.888213851761847, - "x": 904.0097205346294, - "y": 616, + "width": 0.9720534629404618, + "x": 940.947752126367, + "y": 176, }, "transform": [ 1, @@ -27743,9 +46771,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 18.469015795868774, - "x": 908.8699878493318, - "y": 616, + "width": 2.9161603888213854, + "x": 941.9198055893074, + "y": 88, }, "transform": [ 1, @@ -27788,9 +46816,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 928.311057108141, - "y": 616, + "width": 2.9161603888213854, + "x": 941.9198055893074, + "y": 110, }, "transform": [ 1, @@ -27833,9 +46861,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 416.03888213851764, - "y": 638, + "width": 2.9161603888213854, + "x": 941.9198055893074, + "y": 132, }, "transform": [ 1, @@ -27878,9 +46906,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 437.4240583232078, - "y": 638, + "width": 2.9161603888213854, + "x": 941.9198055893074, + "y": 154, }, "transform": [ 1, @@ -27923,9 +46951,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 489.9149453219927, - "y": 638, + "width": 2.9161603888213854, + "x": 941.9198055893074, + "y": 176, }, "transform": [ 1, @@ -27968,9 +46996,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 498.6634264884569, - "y": 638, + "width": 2.9161603888213854, + "x": 941.9198055893074, + "y": 198, }, "transform": [ 1, @@ -28013,9 +47041,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 539.4896719319563, - "y": 638, + "width": 0.9720534629404618, + "x": 944.8359659781288, + "y": 44, }, "transform": [ 1, @@ -28059,8 +47087,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 548.2381530984204, - "y": 638, + "x": 944.8359659781288, + "y": 66, }, "transform": [ 1, @@ -28086,7 +47114,6 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -28103,9 +47130,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 7.776427703523694, - "x": 554.0704738760633, - "y": 638, + "width": 600.7010935601459, + "x": 946.3080194410693, + "y": 22, }, "transform": [ 1, @@ -28127,7 +47154,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -28148,9 +47175,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 566.7071688942892, - "y": 638, + "width": 600.7010935601459, + "x": 946.3080194410693, + "y": 22, }, "transform": [ 1, @@ -28176,7 +47203,23 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", + "maxWidth": null, + "text": "runtime.gcBgMarkWorker (6.19 Bil)", + "x": 949.8080194410693, + "y": 33, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { "path": [ { "props": {}, @@ -28193,9 +47236,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 10.69258809234508, - "x": 586.1482381530984, - "y": 638, + "width": 598.7569866342649, + "x": 946.3080194410693, + "y": 44, }, "transform": [ 1, @@ -28217,7 +47260,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -28238,9 +47281,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 599.7569866342649, - "y": 638, + "width": 598.7569866342649, + "x": 946.3080194410693, + "y": 44, }, "transform": [ 1, @@ -28266,7 +47309,23 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", + "maxWidth": null, + "text": "runtime.systemstack (6.17 Bil)", + "x": 949.8080194410693, + "y": 55, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { "path": [ { "props": {}, @@ -28283,9 +47342,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 607.5334143377886, - "y": 638, + "width": 598.7569866342649, + "x": 946.3080194410693, + "y": 66, }, "transform": [ 1, @@ -28307,7 +47366,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -28328,9 +47387,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 618.2260024301337, - "y": 638, + "width": 598.7569866342649, + "x": 946.3080194410693, + "y": 66, }, "transform": [ 1, @@ -28356,7 +47415,23 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", + "maxWidth": null, + "text": "runtime.gcBgMarkWorker.func2 (6.17 Bil)", + "x": 949.8080194410693, + "y": 77, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { "path": [ { "props": {}, @@ -28373,9 +47448,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 6.804374240583233, - "x": 627.9465370595383, - "y": 638, + "width": 589.0364520048603, + "x": 946.3080194410693, + "y": 88, }, "transform": [ 1, @@ -28397,7 +47472,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -28418,9 +47493,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 7.776427703523694, - "x": 642.5273390036452, - "y": 638, + "width": 589.0364520048603, + "x": 946.3080194410693, + "y": 88, }, "transform": [ 1, @@ -28444,6 +47519,23 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, + { + "props": { + "maxWidth": null, + "text": "runtime.gcDrain (6.07 Bil)", + "x": 949.8080194410693, + "y": 99, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, { "props": { "path": [ @@ -28462,9 +47554,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 24.273390036452007, - "x": 650.803766707169, - "y": 638, + "width": 432.53584447144596, + "x": 946.3080194410693, + "y": 110, }, "transform": [ 1, @@ -28507,9 +47599,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 24.273390036452007, - "x": 650.803766707169, - "y": 638, + "width": 432.53584447144596, + "x": 946.3080194410693, + "y": 110, }, "transform": [ 1, @@ -28536,9 +47628,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "maxWidth": null, - "text": "runtime.pcvalue (260 Mil)", - "x": 654.303766707169, - "y": 649, + "text": "runtime.scanobject (4.46 Bil)", + "x": 949.8080194410693, + "y": 121, }, "transform": [ 1, @@ -28569,9 +47661,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 5.832320777642771, - "x": 675.5771567436209, - "y": 638, + "width": 0.9720534629404618, + "x": 945.8080194410693, + "y": 132, }, "transform": [ 1, @@ -28614,9 +47706,53 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 682.3815309842041, - "y": 638, + "width": 4.860267314702309, + "x": 946.7800729040098, + "y": 132, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 41.77035236938032, + "x": 952.140340218712, + "y": 132, }, "transform": [ 1, @@ -28638,7 +47774,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -28659,9 +47795,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 4.860267314702309, - "x": 688.213851761847, - "y": 638, + "width": 41.77035236938032, + "x": 952.140340218712, + "y": 132, }, "transform": [ 1, @@ -28685,6 +47821,67 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, + { + "props": { + "maxWidth": null, + "text": "runtime.pageIndexOf (440 Mil)", + "x": 955.640340218712, + "y": 143, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 51.49088699878494, + "x": 994.9106925880924, + "y": 132, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, { "props": { "fillRule": "nonzero", @@ -28704,9 +47901,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 732.9283110571082, - "y": 638, + "width": 51.49088699878494, + "x": 994.9106925880924, + "y": 132, }, "transform": [ 1, @@ -28730,6 +47927,23 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, + { + "props": { + "maxWidth": null, + "text": "runtime.greyobject (540 Mil)", + "x": 998.4106925880924, + "y": 143, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, { "props": { "fillRule": "nonzero", @@ -28749,9 +47963,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 734.8724179829891, - "y": 638, + "width": 1.9441069258809236, + "x": 994.4106925880924, + "y": 154, }, "transform": [ 1, @@ -28794,9 +48008,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 11.664641555285542, - "x": 736.8165249088701, - "y": 638, + "width": 0.9720534629404618, + "x": 994.4106925880924, + "y": 176, }, "transform": [ 1, @@ -28839,9 +48053,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 27.21749696233293, - "x": 766.9501822600243, - "y": 638, + "width": 0.9720534629404618, + "x": 995.3827460510329, + "y": 176, }, "transform": [ 1, @@ -28885,8 +48099,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 851.5188335358445, - "y": 638, + "x": 995.3827460510329, + "y": 198, }, "transform": [ 1, @@ -28928,9 +48142,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 15.52490886998785, - "x": 869.5157958687728, - "y": 638, + "width": 94.26123936816525, + "x": 1047.4015795868772, + "y": 132, }, "transform": [ 1, @@ -28973,9 +48187,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 15.52490886998785, - "x": 869.5157958687728, - "y": 638, + "width": 94.26123936816525, + "x": 1047.4015795868772, + "y": 132, }, "transform": [ 1, @@ -28999,6 +48213,23 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, + { + "props": { + "maxWidth": null, + "text": "runtime.findObject (980 Mil)", + "x": 1050.9015795868772, + "y": 143, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, { "props": { "fillRule": "nonzero", @@ -29018,9 +48249,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 885.5407047387607, - "y": 638, + "width": 0.9720534629404618, + "x": 1046.9015795868772, + "y": 154, }, "transform": [ 1, @@ -29063,9 +48294,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 3.888213851761847, - "x": 891.3730255164035, - "y": 638, + "width": 4.860267314702309, + "x": 1142.1628189550427, + "y": 132, }, "transform": [ 1, @@ -29091,7 +48322,6 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -29108,9 +48338,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 899.1494532199272, - "y": 638, + "width": 45.658566221142166, + "x": 1147.523086269745, + "y": 132, }, "transform": [ 1, @@ -29132,7 +48362,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -29153,9 +48383,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 3.888213851761847, - "x": 904.0097205346294, - "y": 638, + "width": 45.658566221142166, + "x": 1147.523086269745, + "y": 132, }, "transform": [ 1, @@ -29179,6 +48409,67 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, + { + "props": { + "maxWidth": null, + "text": "runtime.spanOf (480 Mil)", + "x": 1151.023086269745, + "y": 143, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, + { + "props": { + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 51.49088699878494, + "x": 1194.181652490887, + "y": 132, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "stroke", + }, { "props": { "fillRule": "nonzero", @@ -29198,9 +48489,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 17.496962332928312, - "x": 909.8420413122723, - "y": 638, + "width": 51.49088699878494, + "x": 1194.181652490887, + "y": 132, }, "transform": [ 1, @@ -29224,6 +48515,23 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, + { + "props": { + "maxWidth": null, + "text": "runtime.markBits.isMarked (540 Mil)", + "x": 1197.681652490887, + "y": 143, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fillText", + }, { "props": { "fillRule": "nonzero", @@ -29243,9 +48551,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 928.311057108141, - "y": 638, + "width": 4.860267314702309, + "x": 1246.172539489672, + "y": 132, }, "transform": [ 1, @@ -29271,7 +48579,6 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -29288,9 +48595,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 416.03888213851764, - "y": 660, + "width": 19.413122721749698, + "x": 1379.8438639125152, + "y": 110, }, "transform": [ 1, @@ -29312,7 +48619,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -29333,9 +48640,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 437.4240583232078, - "y": 660, + "width": 19.413122721749698, + "x": 1379.8438639125152, + "y": 110, }, "transform": [ 1, @@ -29378,9 +48685,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 498.6634264884569, - "y": 660, + "width": 2.9161603888213854, + "x": 1399.7569866342649, + "y": 110, }, "transform": [ 1, @@ -29423,9 +48730,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 539.4896719319563, - "y": 660, + "width": 2.9161603888213854, + "x": 1399.7569866342649, + "y": 132, }, "transform": [ 1, @@ -29468,9 +48775,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 548.2381530984204, - "y": 660, + "width": 5.832320777642771, + "x": 1402.6731470230864, + "y": 110, }, "transform": [ 1, @@ -29496,7 +48803,6 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -29513,9 +48819,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 7.776427703523694, - "x": 554.0704738760633, - "y": 660, + "width": 16.496962332928312, + "x": 1409.005467800729, + "y": 110, }, "transform": [ 1, @@ -29537,7 +48843,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -29558,9 +48864,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 10.69258809234508, - "x": 586.1482381530984, - "y": 660, + "width": 16.496962332928312, + "x": 1409.005467800729, + "y": 110, }, "transform": [ 1, @@ -29604,8 +48910,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 599.7569866342649, - "y": 660, + "x": 1426.0024301336575, + "y": 110, }, "transform": [ 1, @@ -29631,7 +48937,6 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -29648,9 +48953,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 607.5334143377886, - "y": 660, + "width": 19.413122721749698, + "x": 1427.4744835965978, + "y": 110, }, "transform": [ 1, @@ -29672,7 +48977,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -29693,9 +48998,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 5.832320777642771, - "x": 642.5273390036452, - "y": 660, + "width": 19.413122721749698, + "x": 1427.4744835965978, + "y": 110, }, "transform": [ 1, @@ -29739,8 +49044,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 1.9441069258809236, - "x": 650.303766707169, - "y": 660, + "x": 1447.3876063183475, + "y": 110, }, "transform": [ 1, @@ -29764,50 +49069,6 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 15.52490886998785, - "x": 652.7478736330498, - "y": 660, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, { "props": { "fillRule": "nonzero", @@ -29827,9 +49088,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 15.52490886998785, - "x": 652.7478736330498, - "y": 660, + "width": 1.9441069258809236, + "x": 1447.3876063183475, + "y": 132, }, "transform": [ 1, @@ -29872,9 +49133,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 675.5771567436209, - "y": 660, + "width": 1.9441069258809236, + "x": 1447.3876063183475, + "y": 154, }, "transform": [ 1, @@ -29917,9 +49178,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 682.3815309842041, - "y": 660, + "width": 9.720534629404618, + "x": 1535.8444714459297, + "y": 88, }, "transform": [ 1, @@ -29962,9 +49223,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 688.213851761847, - "y": 660, + "width": 1.9441069258809236, + "x": 1545.5650060753342, + "y": 44, }, "transform": [ 1, @@ -30007,9 +49268,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 692.1020656136088, - "y": 660, + "width": 1.9441069258809236, + "x": 1545.5650060753342, + "y": 66, }, "transform": [ 1, @@ -30052,9 +49313,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 6.804374240583233, - "x": 736.8165249088701, - "y": 660, + "width": 0.9720534629404618, + "x": 1545.5650060753342, + "y": 88, }, "transform": [ 1, @@ -30097,9 +49358,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 745.5650060753342, - "y": 660, + "width": 0.9720534629404618, + "x": 1545.5650060753342, + "y": 110, }, "transform": [ 1, @@ -30142,9 +49403,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 766.9501822600243, - "y": 660, + "width": 0.9720534629404618, + "x": 1545.5650060753342, + "y": 132, }, "transform": [ 1, @@ -30187,9 +49448,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 7.776427703523694, - "x": 772.7825030376671, - "y": 660, + "width": 0.9720534629404618, + "x": 1546.5370595382747, + "y": 88, }, "transform": [ 1, @@ -30232,9 +49493,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 6.804374240583233, - "x": 781.5309842041313, - "y": 660, + "width": 0.9720534629404618, + "x": 1546.5370595382747, + "y": 110, }, "transform": [ 1, @@ -30278,8 +49539,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 851.5188335358445, - "y": 660, + "x": 1546.5370595382747, + "y": 132, }, "transform": [ 1, @@ -30303,50 +49564,6 @@ exports[`FlameGraph should render correctly 1`] = ` ], "type": "fill", }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 15.52490886998785, - "x": 869.5157958687728, - "y": 660, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, { "props": { "fillRule": "nonzero", @@ -30366,9 +49583,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 15.52490886998785, - "x": 869.5157958687728, - "y": 660, + "width": 0.9720534629404618, + "x": 1546.5370595382747, + "y": 154, }, "transform": [ 1, @@ -30412,8 +49629,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 885.5407047387607, - "y": 660, + "x": 1546.5370595382747, + "y": 176, }, "transform": [ 1, @@ -30457,8 +49674,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 891.3730255164035, - "y": 660, + "x": 1546.5370595382747, + "y": 198, }, "transform": [ 1, @@ -30501,9 +49718,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 893.3171324422843, - "y": 660, + "width": 3.888213851761847, + "x": 1547.5091130012152, + "y": 22, }, "transform": [ 1, @@ -30546,9 +49763,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 3.888213851761847, - "x": 904.0097205346294, - "y": 660, + "width": 0.9720534629404618, + "x": 1547.5091130012152, + "y": 44, }, "transform": [ 1, @@ -30591,9 +49808,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 910.8140947752127, - "y": 660, + "width": 0.9720534629404618, + "x": 1547.5091130012152, + "y": 66, }, "transform": [ 1, @@ -30636,9 +49853,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 11.664641555285542, - "x": 915.674362089915, - "y": 660, + "width": 0.9720534629404618, + "x": 1547.5091130012152, + "y": 88, }, "transform": [ 1, @@ -30682,8 +49899,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 929.2831105710815, - "y": 660, + "x": 1547.5091130012152, + "y": 110, }, "transform": [ 1, @@ -30727,8 +49944,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 416.03888213851764, - "y": 682, + "x": 1547.5091130012152, + "y": 132, }, "transform": [ 1, @@ -30772,8 +49989,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 437.4240583232078, - "y": 682, + "x": 1547.5091130012152, + "y": 154, }, "transform": [ 1, @@ -30817,8 +50034,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 498.6634264884569, - "y": 682, + "x": 1547.5091130012152, + "y": 176, }, "transform": [ 1, @@ -30862,8 +50079,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 1.9441069258809236, - "x": 539.4896719319563, - "y": 682, + "x": 1548.4811664641556, + "y": 44, }, "transform": [ 1, @@ -30906,9 +50123,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 548.2381530984204, - "y": 682, + "width": 1.9441069258809236, + "x": 1548.4811664641556, + "y": 66, }, "transform": [ 1, @@ -30951,9 +50168,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 554.0704738760633, - "y": 682, + "width": 1.9441069258809236, + "x": 1548.4811664641556, + "y": 88, }, "transform": [ 1, @@ -30996,9 +50213,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 558.9307411907655, - "y": 682, + "width": 1.9441069258809236, + "x": 1548.4811664641556, + "y": 110, }, "transform": [ 1, @@ -31041,9 +50258,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 10.69258809234508, - "x": 586.1482381530984, - "y": 682, + "width": 1.9441069258809236, + "x": 1548.4811664641556, + "y": 132, }, "transform": [ 1, @@ -31086,9 +50303,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 599.7569866342649, - "y": 682, + "width": 1.9441069258809236, + "x": 1548.4811664641556, + "y": 154, }, "transform": [ 1, @@ -31131,9 +50348,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 607.5334143377886, - "y": 682, + "width": 1.9441069258809236, + "x": 1548.4811664641556, + "y": 176, }, "transform": [ 1, @@ -31177,8 +50394,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 1.9441069258809236, - "x": 675.5771567436209, - "y": 682, + "x": 1548.4811664641556, + "y": 198, }, "transform": [ 1, @@ -31221,9 +50438,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 745.5650060753342, - "y": 682, + "width": 0.9720534629404618, + "x": 1550.4252733900366, + "y": 44, }, "transform": [ 1, @@ -31266,9 +50483,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 772.7825030376671, - "y": 682, + "width": 0.9720534629404618, + "x": 1550.4252733900366, + "y": 66, }, "transform": [ 1, @@ -31311,9 +50528,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 777.6427703523694, - "y": 682, + "width": 0.9720534629404618, + "x": 1550.4252733900366, + "y": 88, }, "transform": [ 1, @@ -31356,9 +50573,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 784.4471445929527, - "y": 682, + "width": 0.9720534629404618, + "x": 1550.4252733900366, + "y": 110, }, "transform": [ 1, @@ -31402,8 +50619,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 851.5188335358445, - "y": 682, + "x": 1550.4252733900366, + "y": 132, }, "transform": [ 1, @@ -31446,8 +50663,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 15.52490886998785, - "x": 869.5157958687728, - "y": 682, + "x": 1551.897326852977, + "y": 22, }, "transform": [ 1, @@ -31491,8 +50708,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 15.52490886998785, - "x": 869.5157958687728, - "y": 682, + "x": 1551.897326852977, + "y": 22, }, "transform": [ 1, @@ -31518,7 +50735,6 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -31535,9 +50751,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 885.5407047387607, - "y": 682, + "width": 14.552855407047389, + "x": 1551.897326852977, + "y": 44, }, "transform": [ 1, @@ -31559,7 +50775,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -31580,9 +50796,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 891.3730255164035, - "y": 682, + "width": 14.552855407047389, + "x": 1551.897326852977, + "y": 44, }, "transform": [ 1, @@ -31625,9 +50841,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 3.888213851761847, - "x": 904.0097205346294, - "y": 682, + "width": 6.804374240583233, + "x": 1551.397326852977, + "y": 66, }, "transform": [ 1, @@ -31670,9 +50886,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 910.8140947752127, - "y": 682, + "width": 2.9161603888213854, + "x": 1558.2017010935601, + "y": 66, }, "transform": [ 1, @@ -31715,9 +50931,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 11.664641555285542, - "x": 915.674362089915, - "y": 682, + "width": 0.9720534629404618, + "x": 1558.2017010935601, + "y": 88, }, "transform": [ 1, @@ -31760,9 +50976,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 416.03888213851764, - "y": 704, + "width": 3.888213851761847, + "x": 1561.1178614823816, + "y": 66, }, "transform": [ 1, @@ -31806,8 +51022,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 437.4240583232078, - "y": 704, + "x": 1566.9501822600243, + "y": 44, }, "transform": [ 1, @@ -31833,7 +51049,6 @@ exports[`FlameGraph should render correctly 1`] = ` }, { "props": { - "fillRule": "nonzero", "path": [ { "props": {}, @@ -31850,9 +51065,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 498.6634264884569, - "y": 704, + "width": 15.52490886998785, + "x": 1568.4222357229648, + "y": 22, }, "transform": [ 1, @@ -31874,7 +51089,7 @@ exports[`FlameGraph should render correctly 1`] = ` 0, 0, ], - "type": "fill", + "type": "stroke", }, { "props": { @@ -31895,9 +51110,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 539.4896719319563, - "y": 704, + "width": 15.52490886998785, + "x": 1568.4222357229648, + "y": 22, }, "transform": [ 1, @@ -31940,9 +51155,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 548.2381530984204, - "y": 704, + "width": 8.748481166464156, + "x": 1567.9222357229648, + "y": 44, }, "transform": [ 1, @@ -31985,9 +51200,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 554.0704738760633, - "y": 704, + "width": 8.748481166464156, + "x": 1567.9222357229648, + "y": 66, }, "transform": [ 1, @@ -32030,9 +51245,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 558.9307411907655, - "y": 704, + "width": 6.804374240583233, + "x": 1567.9222357229648, + "y": 88, }, "transform": [ 1, @@ -32075,9 +51290,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 10.69258809234508, - "x": 586.1482381530984, - "y": 704, + "width": 1.9441069258809236, + "x": 1567.9222357229648, + "y": 110, }, "transform": [ 1, @@ -32121,8 +51336,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 599.7569866342649, - "y": 704, + "x": 1567.9222357229648, + "y": 132, }, "transform": [ 1, @@ -32165,9 +51380,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 607.5334143377886, - "y": 704, + "width": 2.9161603888213854, + "x": 1569.8663426488458, + "y": 110, }, "transform": [ 1, @@ -32211,8 +51426,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 2.9161603888213854, - "x": 745.5650060753342, - "y": 704, + "x": 1569.8663426488458, + "y": 132, }, "transform": [ 1, @@ -32255,9 +51470,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 772.7825030376671, - "y": 704, + "width": 2.9161603888213854, + "x": 1569.8663426488458, + "y": 154, }, "transform": [ 1, @@ -32301,8 +51516,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 2.9161603888213854, - "x": 777.6427703523694, - "y": 704, + "x": 1569.8663426488458, + "y": 176, }, "transform": [ 1, @@ -32346,8 +51561,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 784.4471445929527, - "y": 704, + "x": 1572.782503037667, + "y": 110, }, "transform": [ 1, @@ -32391,8 +51606,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 851.5188335358445, - "y": 704, + "x": 1573.7545565006076, + "y": 110, }, "transform": [ 1, @@ -32435,9 +51650,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 11.664641555285542, - "x": 869.0157958687728, - "y": 704, + "width": 0.9720534629404618, + "x": 1573.7545565006076, + "y": 132, }, "transform": [ 1, @@ -32481,8 +51696,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 891.3730255164035, - "y": 704, + "x": 1573.7545565006076, + "y": 154, }, "transform": [ 1, @@ -32525,9 +51740,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 3.888213851761847, - "x": 904.0097205346294, - "y": 704, + "width": 0.9720534629404618, + "x": 1574.726609963548, + "y": 88, }, "transform": [ 1, @@ -32571,8 +51786,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 910.8140947752127, - "y": 704, + "x": 1574.726609963548, + "y": 110, }, "transform": [ 1, @@ -32615,9 +51830,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 917.6184690157959, - "y": 704, + "width": 0.9720534629404618, + "x": 1574.726609963548, + "y": 132, }, "transform": [ 1, @@ -32661,8 +51876,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 437.4240583232078, - "y": 726, + "x": 1575.6986634264886, + "y": 88, }, "transform": [ 1, @@ -32705,9 +51920,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 498.6634264884569, - "y": 726, + "width": 7.776427703523694, + "x": 1576.670716889429, + "y": 44, }, "transform": [ 1, @@ -32751,8 +51966,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 548.2381530984204, - "y": 726, + "x": 1576.670716889429, + "y": 66, }, "transform": [ 1, @@ -32795,9 +52010,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 554.0704738760633, - "y": 726, + "width": 0.9720534629404618, + "x": 1576.670716889429, + "y": 88, }, "transform": [ 1, @@ -32840,9 +52055,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 558.9307411907655, - "y": 726, + "width": 6.804374240583233, + "x": 1577.6427703523696, + "y": 66, }, "transform": [ 1, @@ -32885,9 +52100,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 4.860267314702309, - "x": 590.0364520048603, - "y": 726, + "width": 5.832320777642771, + "x": 1577.6427703523696, + "y": 88, }, "transform": [ 1, @@ -32931,8 +52146,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 599.7569866342649, - "y": 726, + "x": 1577.6427703523696, + "y": 110, }, "transform": [ 1, @@ -32976,8 +52191,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 607.5334143377886, - "y": 726, + "x": 1577.6427703523696, + "y": 132, }, "transform": [ 1, @@ -33021,8 +52236,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 1.9441069258809236, - "x": 772.7825030376671, - "y": 726, + "x": 1578.6148238153098, + "y": 110, }, "transform": [ 1, @@ -33065,9 +52280,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 779.5868772782503, - "y": 726, + "width": 1.9441069258809236, + "x": 1580.5589307411908, + "y": 110, }, "transform": [ 1, @@ -33110,9 +52325,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 784.4471445929527, - "y": 726, + "width": 1.9441069258809236, + "x": 1580.5589307411908, + "y": 132, }, "transform": [ 1, @@ -33156,8 +52371,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 851.5188335358445, - "y": 726, + "x": 1583.4750911300123, + "y": 88, }, "transform": [ 1, @@ -33200,9 +52415,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 10.69258809234508, - "x": 869.0157958687728, - "y": 726, + "width": 7.776427703523694, + "x": 1584.4471445929528, + "y": 22, }, "transform": [ 1, @@ -33246,8 +52461,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 891.3730255164035, - "y": 726, + "x": 1584.4471445929528, + "y": 44, }, "transform": [ 1, @@ -33290,9 +52505,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 904.0097205346294, - "y": 726, + "width": 0.9720534629404618, + "x": 1584.4471445929528, + "y": 66, }, "transform": [ 1, @@ -33335,9 +52550,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 917.6184690157959, - "y": 726, + "width": 0.9720534629404618, + "x": 1584.4471445929528, + "y": 88, }, "transform": [ 1, @@ -33381,8 +52596,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 437.4240583232078, - "y": 748, + "x": 1584.4471445929528, + "y": 110, }, "transform": [ 1, @@ -33426,8 +52641,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 548.2381530984204, - "y": 748, + "x": 1584.4471445929528, + "y": 132, }, "transform": [ 1, @@ -33471,8 +52686,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 1.9441069258809236, - "x": 554.0704738760633, - "y": 748, + "x": 1585.419198055893, + "y": 44, }, "transform": [ 1, @@ -33515,9 +52730,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 558.9307411907655, - "y": 748, + "width": 1.9441069258809236, + "x": 1585.419198055893, + "y": 66, }, "transform": [ 1, @@ -33560,9 +52775,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 4.860267314702309, - "x": 590.0364520048603, - "y": 748, + "width": 1.9441069258809236, + "x": 1585.419198055893, + "y": 88, }, "transform": [ 1, @@ -33605,9 +52820,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 599.7569866342649, - "y": 748, + "width": 1.9441069258809236, + "x": 1585.419198055893, + "y": 110, }, "transform": [ 1, @@ -33650,9 +52865,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 607.5334143377886, - "y": 748, + "width": 1.9441069258809236, + "x": 1585.419198055893, + "y": 132, }, "transform": [ 1, @@ -33696,8 +52911,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 1.9441069258809236, - "x": 772.7825030376671, - "y": 748, + "x": 1585.419198055893, + "y": 154, }, "transform": [ 1, @@ -33740,9 +52955,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 779.5868772782503, - "y": 748, + "width": 1.9441069258809236, + "x": 1585.419198055893, + "y": 176, }, "transform": [ 1, @@ -33785,9 +53000,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 784.4471445929527, - "y": 748, + "width": 1.9441069258809236, + "x": 1585.419198055893, + "y": 198, }, "transform": [ 1, @@ -33830,9 +53045,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 851.5188335358445, - "y": 748, + "width": 1.9441069258809236, + "x": 1585.419198055893, + "y": 220, }, "transform": [ 1, @@ -33876,8 +53091,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 1.9441069258809236, - "x": 869.9878493317133, - "y": 748, + "x": 1585.419198055893, + "y": 242, }, "transform": [ 1, @@ -33920,9 +53135,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 3.888213851761847, - "x": 873.8760631834751, - "y": 748, + "width": 1.9441069258809236, + "x": 1585.419198055893, + "y": 264, }, "transform": [ 1, @@ -33965,9 +53180,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 891.3730255164035, - "y": 748, + "width": 1.9441069258809236, + "x": 1585.419198055893, + "y": 286, }, "transform": [ 1, @@ -34010,9 +53225,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 904.0097205346294, - "y": 748, + "width": 4.860267314702309, + "x": 1587.363304981774, + "y": 44, }, "transform": [ 1, @@ -34055,9 +53270,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 917.6184690157959, - "y": 748, + "width": 4.860267314702309, + "x": 1587.363304981774, + "y": 66, }, "transform": [ 1, @@ -34100,9 +53315,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 437.4240583232078, - "y": 770, + "width": 4.860267314702309, + "x": 1587.363304981774, + "y": 88, }, "transform": [ 1, @@ -34145,9 +53360,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 548.2381530984204, - "y": 770, + "width": 4.860267314702309, + "x": 1587.363304981774, + "y": 110, }, "transform": [ 1, @@ -34190,9 +53405,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 555.0425273390036, - "y": 770, + "width": 4.860267314702309, + "x": 1587.363304981774, + "y": 132, }, "transform": [ 1, @@ -34235,9 +53450,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 558.9307411907655, - "y": 770, + "width": 4.860267314702309, + "x": 1587.363304981774, + "y": 154, }, "transform": [ 1, @@ -34280,9 +53495,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 592.9526123936816, - "y": 770, + "width": 4.860267314702309, + "x": 1587.363304981774, + "y": 176, }, "transform": [ 1, @@ -34326,8 +53541,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 599.7569866342649, - "y": 770, + "x": 1587.363304981774, + "y": 198, }, "transform": [ 1, @@ -34371,8 +53586,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 607.5334143377886, - "y": 770, + "x": 1587.363304981774, + "y": 220, }, "transform": [ 1, @@ -34415,9 +53630,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 772.7825030376671, - "y": 770, + "width": 0.9720534629404618, + "x": 1587.363304981774, + "y": 242, }, "transform": [ 1, @@ -34460,9 +53675,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 779.5868772782503, - "y": 770, + "width": 5.832320777642771, + "x": 1592.2235722964765, + "y": 22, }, "transform": [ 1, @@ -34505,9 +53720,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 784.4471445929527, - "y": 770, + "width": 5.832320777642771, + "x": 1592.2235722964765, + "y": 44, }, "transform": [ 1, @@ -34550,9 +53765,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 904.0097205346294, - "y": 770, + "width": 5.832320777642771, + "x": 1592.2235722964765, + "y": 66, }, "transform": [ 1, @@ -34595,9 +53810,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 917.6184690157959, - "y": 770, + "width": 5.832320777642771, + "x": 1592.2235722964765, + "y": 88, }, "transform": [ 1, @@ -34640,9 +53855,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 555.0425273390036, - "y": 792, + "width": 5.832320777642771, + "x": 1592.2235722964765, + "y": 110, }, "transform": [ 1, @@ -34685,9 +53900,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 558.9307411907655, - "y": 792, + "width": 5.832320777642771, + "x": 1592.2235722964765, + "y": 132, }, "transform": [ 1, @@ -34730,9 +53945,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 592.9526123936816, - "y": 792, + "width": 5.832320777642771, + "x": 1592.2235722964765, + "y": 154, }, "transform": [ 1, @@ -34775,9 +53990,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 599.7569866342649, - "y": 792, + "width": 3.888213851761847, + "x": 1592.2235722964765, + "y": 176, }, "transform": [ 1, @@ -34820,9 +54035,54 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 607.5334143377886, - "y": 792, + "width": 3.888213851761847, + "x": 1592.2235722964765, + "y": 198, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "rect", + }, + ], + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "fill", + }, + { + "props": { + "fillRule": "nonzero", + "path": [ + { + "props": {}, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "beginPath", + }, + { + "props": { + "height": 22, + "width": 2.9161603888213854, + "x": 1592.2235722964765, + "y": 220, }, "transform": [ 1, @@ -34865,9 +54125,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 772.7825030376671, - "y": 792, + "width": 2.9161603888213854, + "x": 1592.2235722964765, + "y": 242, }, "transform": [ 1, @@ -34910,9 +54170,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 779.5868772782503, - "y": 792, + "width": 2.9161603888213854, + "x": 1592.2235722964765, + "y": 264, }, "transform": [ 1, @@ -34955,9 +54215,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 784.4471445929527, - "y": 792, + "width": 2.9161603888213854, + "x": 1592.2235722964765, + "y": 286, }, "transform": [ 1, @@ -35001,8 +54261,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 2.9161603888213854, - "x": 904.0097205346294, - "y": 792, + "x": 1592.2235722964765, + "y": 308, }, "transform": [ 1, @@ -35045,9 +54305,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 0.9720534629404618, - "x": 918.5905224787364, - "y": 792, + "width": 2.9161603888213854, + "x": 1592.2235722964765, + "y": 330, }, "transform": [ 1, @@ -35091,8 +54351,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 555.0425273390036, - "y": 814, + "x": 1592.2235722964765, + "y": 352, }, "transform": [ 1, @@ -35136,8 +54396,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 558.9307411907655, - "y": 814, + "x": 1592.2235722964765, + "y": 374, }, "transform": [ 1, @@ -35180,9 +54440,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 592.9526123936816, - "y": 814, + "width": 0.9720534629404618, + "x": 1592.2235722964765, + "y": 396, }, "transform": [ 1, @@ -35226,8 +54486,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 599.7569866342649, - "y": 814, + "x": 1592.2235722964765, + "y": 418, }, "transform": [ 1, @@ -35270,9 +54530,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 772.7825030376671, - "y": 814, + "width": 0.9720534629404618, + "x": 1592.2235722964765, + "y": 440, }, "transform": [ 1, @@ -35316,8 +54576,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 779.5868772782503, - "y": 814, + "x": 1592.2235722964765, + "y": 462, }, "transform": [ 1, @@ -35361,8 +54621,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 784.4471445929527, - "y": 814, + "x": 1592.2235722964765, + "y": 484, }, "transform": [ 1, @@ -35405,9 +54665,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 2.9161603888213854, - "x": 904.0097205346294, - "y": 814, + "width": 0.9720534629404618, + "x": 1592.2235722964765, + "y": 506, }, "transform": [ 1, @@ -35451,8 +54711,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 918.5905224787364, - "y": 814, + "x": 1593.1956257594168, + "y": 352, }, "transform": [ 1, @@ -35496,8 +54756,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 555.0425273390036, - "y": 836, + "x": 1593.1956257594168, + "y": 374, }, "transform": [ 1, @@ -35540,9 +54800,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 592.9526123936816, - "y": 836, + "width": 0.9720534629404618, + "x": 1593.1956257594168, + "y": 396, }, "transform": [ 1, @@ -35586,8 +54846,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 599.7569866342649, - "y": 836, + "x": 1593.1956257594168, + "y": 418, }, "transform": [ 1, @@ -35630,9 +54890,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 772.7825030376671, - "y": 836, + "width": 0.9720534629404618, + "x": 1594.1676792223573, + "y": 352, }, "transform": [ 1, @@ -35676,8 +54936,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 779.5868772782503, - "y": 836, + "x": 1594.1676792223573, + "y": 374, }, "transform": [ 1, @@ -35721,8 +54981,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 784.4471445929527, - "y": 836, + "x": 1594.1676792223573, + "y": 396, }, "transform": [ 1, @@ -35765,9 +55025,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 904.0097205346294, - "y": 836, + "width": 0.9720534629404618, + "x": 1594.1676792223573, + "y": 418, }, "transform": [ 1, @@ -35811,8 +55071,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 918.5905224787364, - "y": 836, + "x": 1594.1676792223573, + "y": 440, }, "transform": [ 1, @@ -35856,8 +55116,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 555.0425273390036, - "y": 858, + "x": 1594.1676792223573, + "y": 462, }, "transform": [ 1, @@ -35901,8 +55161,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 592.9526123936816, - "y": 858, + "x": 1594.1676792223573, + "y": 484, }, "transform": [ 1, @@ -35946,8 +55206,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 599.7569866342649, - "y": 858, + "x": 1594.1676792223573, + "y": 506, }, "transform": [ 1, @@ -35990,9 +55250,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 772.7825030376671, - "y": 858, + "width": 0.9720534629404618, + "x": 1596.1117861482383, + "y": 176, }, "transform": [ 1, @@ -36036,8 +55296,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 779.5868772782503, - "y": 858, + "x": 1596.1117861482383, + "y": 198, }, "transform": [ 1, @@ -36081,8 +55341,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 784.4471445929527, - "y": 858, + "x": 1596.1117861482383, + "y": 220, }, "transform": [ 1, @@ -36126,8 +55386,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 904.9817739975699, - "y": 858, + "x": 1596.1117861482383, + "y": 242, }, "transform": [ 1, @@ -36171,8 +55431,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 555.0425273390036, - "y": 880, + "x": 1596.1117861482383, + "y": 264, }, "transform": [ 1, @@ -36216,8 +55476,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 599.7569866342649, - "y": 880, + "x": 1596.1117861482383, + "y": 286, }, "transform": [ 1, @@ -36260,9 +55520,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 772.7825030376671, - "y": 880, + "width": 0.9720534629404618, + "x": 1596.1117861482383, + "y": 308, }, "transform": [ 1, @@ -36306,8 +55566,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 779.5868772782503, - "y": 880, + "x": 1596.1117861482383, + "y": 330, }, "transform": [ 1, @@ -36351,8 +55611,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 784.4471445929527, - "y": 880, + "x": 1596.1117861482383, + "y": 352, }, "transform": [ 1, @@ -36396,8 +55656,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 555.0425273390036, - "y": 902, + "x": 1596.1117861482383, + "y": 374, }, "transform": [ 1, @@ -36440,9 +55700,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 772.7825030376671, - "y": 902, + "width": 0.9720534629404618, + "x": 1596.1117861482383, + "y": 396, }, "transform": [ 1, @@ -36486,8 +55746,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 779.5868772782503, - "y": 902, + "x": 1596.1117861482383, + "y": 418, }, "transform": [ 1, @@ -36531,8 +55791,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 784.4471445929527, - "y": 902, + "x": 1596.1117861482383, + "y": 440, }, "transform": [ 1, @@ -36576,8 +55836,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 555.0425273390036, - "y": 924, + "x": 1596.1117861482383, + "y": 462, }, "transform": [ 1, @@ -36620,9 +55880,9 @@ exports[`FlameGraph should render correctly 1`] = ` { "props": { "height": 22, - "width": 1.9441069258809236, - "x": 772.7825030376671, - "y": 924, + "width": 0.9720534629404618, + "x": 1596.1117861482383, + "y": 484, }, "transform": [ 1, @@ -36666,8 +55926,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 779.5868772782503, - "y": 924, + "x": 1596.1117861482383, + "y": 506, }, "transform": [ 1, @@ -36711,8 +55971,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 784.4471445929527, - "y": 924, + "x": 1597.0838396111787, + "y": 176, }, "transform": [ 1, @@ -36756,8 +56016,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 555.0425273390036, - "y": 946, + "x": 1597.0838396111787, + "y": 198, }, "transform": [ 1, @@ -36801,8 +56061,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 772.7825030376671, - "y": 946, + "x": 1597.0838396111787, + "y": 220, }, "transform": [ 1, @@ -36846,8 +56106,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 779.5868772782503, - "y": 946, + "x": 1597.0838396111787, + "y": 242, }, "transform": [ 1, @@ -36891,8 +56151,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 784.4471445929527, - "y": 946, + "x": 1597.0838396111787, + "y": 264, }, "transform": [ 1, @@ -36936,8 +56196,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 555.0425273390036, - "y": 968, + "x": 1597.0838396111787, + "y": 286, }, "transform": [ 1, @@ -36981,8 +56241,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 772.7825030376671, - "y": 968, + "x": 1597.0838396111787, + "y": 308, }, "transform": [ 1, @@ -37026,8 +56286,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 779.5868772782503, - "y": 968, + "x": 1598.0558930741192, + "y": 22, }, "transform": [ 1, @@ -37071,8 +56331,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 784.4471445929527, - "y": 968, + "x": 1598.0558930741192, + "y": 44, }, "transform": [ 1, @@ -37116,8 +56376,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 555.0425273390036, - "y": 990, + "x": 1598.0558930741192, + "y": 66, }, "transform": [ 1, @@ -37161,8 +56421,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 772.7825030376671, - "y": 990, + "x": 1598.0558930741192, + "y": 88, }, "transform": [ 1, @@ -37206,8 +56466,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 779.5868772782503, - "y": 990, + "x": 1598.0558930741192, + "y": 110, }, "transform": [ 1, @@ -37251,8 +56511,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 784.4471445929527, - "y": 990, + "x": 1598.0558930741192, + "y": 132, }, "transform": [ 1, @@ -37296,8 +56556,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 555.0425273390036, - "y": 1012, + "x": 1598.0558930741192, + "y": 154, }, "transform": [ 1, @@ -37341,8 +56601,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 772.7825030376671, - "y": 1012, + "x": 1598.0558930741192, + "y": 176, }, "transform": [ 1, @@ -37386,8 +56646,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 779.5868772782503, - "y": 1012, + "x": 1598.0558930741192, + "y": 198, }, "transform": [ 1, @@ -37431,8 +56691,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 555.0425273390036, - "y": 1034, + "x": 1598.0558930741192, + "y": 220, }, "transform": [ 1, @@ -37476,8 +56736,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 772.7825030376671, - "y": 1034, + "x": 1598.0558930741192, + "y": 242, }, "transform": [ 1, @@ -37521,8 +56781,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 779.5868772782503, - "y": 1034, + "x": 1598.0558930741192, + "y": 264, }, "transform": [ 1, @@ -37566,8 +56826,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 555.0425273390036, - "y": 1056, + "x": 1599.0279465370597, + "y": 22, }, "transform": [ 1, @@ -37611,8 +56871,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 772.7825030376671, - "y": 1056, + "x": 1599.0279465370597, + "y": 44, }, "transform": [ 1, @@ -37656,8 +56916,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 779.5868772782503, - "y": 1056, + "x": 1599.0279465370597, + "y": 66, }, "transform": [ 1, @@ -37701,8 +56961,8 @@ exports[`FlameGraph should render correctly 1`] = ` "props": { "height": 22, "width": 0.9720534629404618, - "x": 555.0425273390036, - "y": 1078, + "x": 1599.0279465370597, + "y": 88, }, "transform": [ 1, diff --git a/packages/grafana-flamegraph/src/FlameGraph/dataTransform.test.ts b/packages/grafana-flamegraph/src/FlameGraph/dataTransform.test.ts index 397db71d77dad..89757c1f6e6ce 100644 --- a/packages/grafana-flamegraph/src/FlameGraph/dataTransform.test.ts +++ b/packages/grafana-flamegraph/src/FlameGraph/dataTransform.test.ts @@ -19,15 +19,15 @@ describe('nestedSetToLevels', () => { }); const [levels] = nestedSetToLevels(new FlameGraphDataContainer(frame)); - const n9: LevelItem = { itemIndexes: [8], start: 5, children: [], value: 1 }; - const n8: LevelItem = { itemIndexes: [7], start: 5, children: [n9], value: 2 }; - const n7: LevelItem = { itemIndexes: [6], start: 5, children: [n8], value: 3 }; - const n6: LevelItem = { itemIndexes: [5], start: 5, children: [n7], value: 4 }; - const n5: LevelItem = { itemIndexes: [4], start: 3, children: [], value: 1 }; - const n4: LevelItem = { itemIndexes: [3], start: 0, children: [], value: 1 }; - const n3: LevelItem = { itemIndexes: [2], start: 0, children: [n4], value: 3 }; - const n2: LevelItem = { itemIndexes: [1], start: 0, children: [n3, n5], value: 5 }; - const n1: LevelItem = { itemIndexes: [0], start: 0, children: [n2, n6], value: 10 }; + const n9: LevelItem = { itemIndexes: [8], start: 5, children: [], value: 1, level: 4 }; + const n8: LevelItem = { itemIndexes: [7], start: 5, children: [n9], value: 2, level: 3 }; + const n7: LevelItem = { itemIndexes: [6], start: 5, children: [n8], value: 3, level: 2 }; + const n6: LevelItem = { itemIndexes: [5], start: 5, children: [n7], value: 4, level: 1 }; + const n5: LevelItem = { itemIndexes: [4], start: 3, children: [], value: 1, level: 2 }; + const n4: LevelItem = { itemIndexes: [3], start: 0, children: [], value: 1, level: 3 }; + const n3: LevelItem = { itemIndexes: [2], start: 0, children: [n4], value: 3, level: 2 }; + const n2: LevelItem = { itemIndexes: [1], start: 0, children: [n3, n5], value: 5, level: 1 }; + const n1: LevelItem = { itemIndexes: [0], start: 0, children: [n2, n6], value: 10, level: 0 }; n2.parents = [n1]; n6.parents = [n1]; @@ -56,10 +56,10 @@ describe('nestedSetToLevels', () => { }); const [levels] = nestedSetToLevels(new FlameGraphDataContainer(frame)); - const n4: LevelItem = { itemIndexes: [3], start: 8, children: [], value: 1 }; - const n3: LevelItem = { itemIndexes: [2], start: 5, children: [], value: 3 }; - const n2: LevelItem = { itemIndexes: [1], start: 0, children: [], value: 5 }; - const n1: LevelItem = { itemIndexes: [0], start: 0, children: [n2, n3, n4], value: 10 }; + const n4: LevelItem = { itemIndexes: [3], start: 8, children: [], value: 1, level: 1 }; + const n3: LevelItem = { itemIndexes: [2], start: 5, children: [], value: 3, level: 1 }; + const n2: LevelItem = { itemIndexes: [1], start: 0, children: [], value: 5, level: 1 }; + const n1: LevelItem = { itemIndexes: [0], start: 0, children: [n2, n3, n4], value: 10, level: 0 }; n2.parents = [n1]; n3.parents = [n1]; diff --git a/packages/grafana-flamegraph/src/FlameGraph/dataTransform.ts b/packages/grafana-flamegraph/src/FlameGraph/dataTransform.ts index e8c18397f8677..526b608280fe6 100644 --- a/packages/grafana-flamegraph/src/FlameGraph/dataTransform.ts +++ b/packages/grafana-flamegraph/src/FlameGraph/dataTransform.ts @@ -25,9 +25,17 @@ export type LevelItem = { // node. itemIndexes: number[]; children: LevelItem[]; + level: number; parents?: LevelItem[]; }; +export type CollapseConfig = { + items: LevelItem[]; + collapsed: boolean; +}; + +export type CollapsedMap = Map; + /** * Convert data frame with nested set format into array of level. This is mainly done for compatibility with current * rendering code. @@ -65,6 +73,7 @@ export function nestedSetToLevels(container: FlameGraphDataContainer): [LevelIte start: offset, parents: parent && [parent], children: [], + level: currentLevel, }; if (uniqueLabels[container.getLabel(i)]) { diff --git a/packages/grafana-flamegraph/src/FlameGraph/rendering.test.ts b/packages/grafana-flamegraph/src/FlameGraph/rendering.test.ts index 3d889c12364c5..314eab7486e62 100644 --- a/packages/grafana-flamegraph/src/FlameGraph/rendering.test.ts +++ b/packages/grafana-flamegraph/src/FlameGraph/rendering.test.ts @@ -1,7 +1,7 @@ import { createDataFrame, FieldType } from '@grafana/data'; import { FlameGraphDataContainer, LevelItem } from './dataTransform'; -import { getRectDimensionsForLevel } from './rendering'; +import { walkTree } from './rendering'; function makeDataFrame(fields: Record>) { return createDataFrame({ @@ -13,76 +13,99 @@ function makeDataFrame(fields: Record>) { }); } -describe('getRectDimensionsForLevel', () => { - it('should render a single item', () => { - const level: LevelItem[] = [{ start: 0, itemIndexes: [0], children: [], value: 100 }]; +type RenderData = { + item: LevelItem; + x: number; + y: number; + width: number; + height: number; + label: string; + collapsed: boolean; +}; + +describe('walkTree', () => { + it('correctly compute sizes for a single item', () => { + const root: LevelItem = { start: 0, itemIndexes: [0], children: [], value: 100, level: 0 }; const container = new FlameGraphDataContainer(makeDataFrame({ value: [100], level: [1], label: ['1'], self: [0] })); - const result = getRectDimensionsForLevel(container, level, 1, 100, 0, 10); - expect(result).toEqual([ - { - width: 999, - height: 22, - itemIndex: 0, - x: 0, - y: 22, - collapsed: false, - ticks: 100, - label: '1', - unitLabel: '100', - }, - ]); + walkTree(root, 'children', container, 100, 0, 1, 100, (item, x, y, width, height, label, collapsed) => { + expect(item).toEqual(root); + expect(x).toEqual(0); + expect(y).toEqual(0); + expect(width).toEqual(99); // -1 for border + expect(height).toEqual(22); + expect(label).toEqual('1'); + expect(collapsed).toEqual(false); + }); }); it('should render a multiple items', () => { - const level: LevelItem[] = [ - { start: 0, itemIndexes: [0], children: [], value: 100 }, - { start: 100, itemIndexes: [1], children: [], value: 50 }, - { start: 150, itemIndexes: [2], children: [], value: 50 }, - ]; + const root: LevelItem = { + start: 0, + itemIndexes: [0], + value: 100, + level: 0, + children: [ + { start: 0, itemIndexes: [1], children: [], value: 50, level: 1 }, + { start: 50, itemIndexes: [2], children: [], value: 50, level: 1 }, + ], + }; const container = new FlameGraphDataContainer( - makeDataFrame({ value: [100, 50, 50], level: [2, 2, 2], label: ['1', '2', '3'], self: [0, 0, 0] }) + makeDataFrame({ value: [100, 50, 50], level: [0, 1, 1], label: ['1', '2', '3'], self: [0, 50, 50] }) ); - const result = getRectDimensionsForLevel(container, level, 2, 100, 0, 10); - expect(result).toEqual([ - { width: 999, height: 22, x: 0, y: 44, collapsed: false, ticks: 100, label: '1', unitLabel: '100', itemIndex: 0 }, - { - width: 499, - height: 22, - x: 1000, - y: 44, - collapsed: false, - ticks: 50, - label: '2', - unitLabel: '50', - itemIndex: 1, - }, - { - width: 499, - height: 22, - x: 1500, - y: 44, - collapsed: false, - ticks: 50, - label: '3', - unitLabel: '50', - itemIndex: 2, - }, + const renderData: RenderData[] = []; + walkTree(root, 'children', container, 100, 0, 1, 100, (item, x, y, width, height, label, collapsed) => { + renderData.push({ item, x, y, width, height, label, collapsed }); + }); + expect(renderData).toEqual([ + { item: root, width: 99, height: 22, x: 0, y: 0, collapsed: false, label: '1' }, + { item: root.children[0], width: 49, height: 22, x: 0, y: 22, collapsed: false, label: '2' }, + { item: root.children[1], width: 49, height: 22, x: 50, y: 22, collapsed: false, label: '3' }, ]); }); it('should render a collapsed items', () => { - const level: LevelItem[] = [ - { start: 0, itemIndexes: [0], children: [], value: 100 }, - { start: 100, itemIndexes: [1], children: [], value: 2 }, - { start: 102, itemIndexes: [2], children: [], value: 1 }, - ]; + const root: LevelItem = { + start: 0, + itemIndexes: [0], + value: 100, + level: 0, + children: [ + { start: 0, itemIndexes: [1], children: [], value: 1, level: 1 }, + { start: 1, itemIndexes: [2], children: [], value: 1, level: 1 }, + ], + }; const container = new FlameGraphDataContainer( - makeDataFrame({ value: [100, 2, 1], level: [2, 2, 2], label: ['1', '2', '3'], self: [0, 0, 0] }) + makeDataFrame({ value: [100, 1, 1], level: [0, 1, 1], label: ['1', '2', '3'], self: [0, 1, 1] }) ); - const result = getRectDimensionsForLevel(container, level, 2, 100, 0, 1); - expect(result).toEqual([ - { width: 99, height: 22, x: 0, y: 44, collapsed: false, ticks: 100, label: '1', unitLabel: '100', itemIndex: 0 }, - { width: 3, height: 22, x: 100, y: 44, collapsed: true, ticks: 3, label: '2', unitLabel: '2', itemIndex: 1 }, + const renderData: RenderData[] = []; + walkTree(root, 'children', container, 100, 0, 1, 100, (item, x, y, width, height, label, collapsed) => { + renderData.push({ item, x, y, width, height, label, collapsed }); + }); + expect(renderData).toEqual([ + { item: root, width: 99, height: 22, x: 0, y: 0, collapsed: false, label: '1' }, + { item: root.children[0], width: 1, height: 22, x: 0, y: 22, collapsed: true, label: '2' }, + { item: root.children[1], width: 1, height: 22, x: 1, y: 22, collapsed: true, label: '3' }, ]); }); + + it('skips too small items', () => { + const root: LevelItem = { + start: 0, + itemIndexes: [0], + value: 100, + level: 0, + children: [ + { start: 0, itemIndexes: [1], children: [], value: 0.1, level: 1 }, + { start: 1, itemIndexes: [2], children: [], value: 0.1, level: 1 }, + ], + }; + const container = new FlameGraphDataContainer( + makeDataFrame({ value: [100, 0.1, 0.1], level: [0, 1, 1], label: ['1', '2', '3'], self: [0, 0.1, 0.1] }) + ); + const renderData: RenderData[] = []; + walkTree(root, 'children', container, 100, 0, 1, 100, (item, x, y, width, height, label, collapsed) => { + renderData.push({ item, x, y, width, height, label, collapsed }); + }); + expect(renderData).toEqual([{ item: root, width: 99, height: 22, x: 0, y: 0, collapsed: false, label: '1' }]); + }); }); diff --git a/packages/grafana-flamegraph/src/FlameGraph/rendering.ts b/packages/grafana-flamegraph/src/FlameGraph/rendering.ts index b38ade060a5b5..c829649cfff79 100644 --- a/packages/grafana-flamegraph/src/FlameGraph/rendering.ts +++ b/packages/grafana-flamegraph/src/FlameGraph/rendering.ts @@ -23,7 +23,11 @@ const ufuzzy = new uFuzzy(); type RenderOptions = { canvasRef: RefObject; data: FlameGraphDataContainer; - levels: LevelItem[][]; + root: LevelItem; + direction: 'children' | 'parents'; + + // Depth in number of levels + depth: number; wrapperWidth: number; // If we are rendering only zoomed in part of the graph. @@ -48,7 +52,9 @@ export function useFlameRender(options: RenderOptions) { const { canvasRef, data, - levels, + root, + depth, + direction, wrapperWidth, rangeMin, rangeMax, @@ -60,7 +66,130 @@ export function useFlameRender(options: RenderOptions) { colorScheme, focusedItemData, } = options; - const foundLabels = useMemo(() => { + const foundLabels = useFoundLabels(search, data); + const ctx = useSetupCanvas(canvasRef, wrapperWidth, depth); + const theme = useTheme2(); + + // There is a bit of dependency injections here that does not add readability, mainly to prevent recomputing some + // common stuff for all the nodes in the graph when only once is enough. perf/readability tradeoff. + + const getBarColor = useColorFunction( + totalColorTicks, + totalTicksRight, + colorScheme, + theme, + rangeMin, + rangeMax, + foundLabels, + focusedItemData ? focusedItemData.item.level : 0 + ); + const renderFunc = useRenderFunc(ctx, data, getBarColor, textAlign); + + useEffect(() => { + if (!ctx) { + return; + } + + ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); + walkTree(root, direction, data, totalViewTicks, rangeMin, rangeMax, wrapperWidth, renderFunc); + }, [ctx, data, root, wrapperWidth, rangeMin, rangeMax, totalViewTicks, direction, renderFunc]); +} + +type RenderFunc = ( + item: LevelItem, + x: number, + y: number, + width: number, + height: number, + label: string, + // Collapsed means the width is too small to show the label, and we group collapsed siblings together. + collapsed: boolean +) => void; + +function useRenderFunc( + ctx: CanvasRenderingContext2D | undefined, + data: FlameGraphDataContainer, + getBarColor: (item: LevelItem, label: string, collapsed: boolean) => string, + textAlign: TextAlign +): RenderFunc { + return useMemo(() => { + if (!ctx) { + return () => {}; + } + + return (item, x, y, width, height, label, collapsed) => { + ctx.beginPath(); + ctx.rect(x + (collapsed ? 0 : BAR_BORDER_WIDTH), y, width, height); + ctx.fillStyle = getBarColor(item, label, collapsed); + + if (collapsed) { + // Only fill the collapsed rects + ctx.fill(); + } else { + ctx.stroke(); + ctx.fill(); + + if (width >= LABEL_THRESHOLD) { + renderLabel(ctx, data, label, item, width, x, y, textAlign); + } + } + }; + }, [ctx, getBarColor, textAlign, data]); +} + +/** + * Exported for testing don't use directly + * Walks the tree and computes coordinates, dimensions and other data needed for rendering. For each item in the tree + * it defers the rendering to the renderFunc. + */ +export function walkTree( + root: LevelItem, + // In sandwich view we use parents direction to show all callers. + direction: 'children' | 'parents', + data: FlameGraphDataContainer, + totalViewTicks: number, + rangeMin: number, + rangeMax: number, + wrapperWidth: number, + renderFunc: RenderFunc +) { + const stack: LevelItem[] = []; + stack.push(root); + + const pixelsPerTick = (wrapperWidth * window.devicePixelRatio) / totalViewTicks / (rangeMax - rangeMin); + + while (stack.length > 0) { + const item = stack.shift()!; + let curBarTicks = item.value; + // Multiple collapsed items are shown as a single gray bar + const collapsed = curBarTicks * pixelsPerTick <= COLLAPSE_THRESHOLD; + const width = curBarTicks * pixelsPerTick - (collapsed ? 0 : BAR_BORDER_WIDTH * 2); + const height = PIXELS_PER_LEVEL; + + if (width < HIDE_THRESHOLD) { + // We don't render nor it's children + continue; + } + + const barX = getBarX(item.start, totalViewTicks, rangeMin, pixelsPerTick); + const barY = item.level * PIXELS_PER_LEVEL; + + let label = data.getLabel(item.itemIndexes[0]); + + renderFunc(item, barX, barY, width, height, label, collapsed); + + const nextList = direction === 'children' ? item.children : item.parents; + if (nextList) { + stack.unshift(...nextList); + } + } +} + +/** + * Based on the search string it does a fuzzy search over all the unique labels so we can highlight them later. + */ +function useFoundLabels(search: string | undefined, data: FlameGraphDataContainer): Set | undefined { + return useMemo(() => { if (search) { const foundLabels = new Set(); let idxs = ufuzzy.filter(data.getUniqueLabels(), search); @@ -76,58 +205,50 @@ export function useFlameRender(options: RenderOptions) { // In this case undefined means there was no search so no attempt to highlighting anything should be made. return undefined; }, [search, data]); +} - const ctx = useSetupCanvas(canvasRef, wrapperWidth, levels.length); - const theme = useTheme2(); +function useColorFunction( + totalTicks: number, + totalTicksRight: number | undefined, + colorScheme: ColorScheme | ColorSchemeDiff, + theme: GrafanaTheme2, + rangeMin: number, + rangeMax: number, + foundNames: Set | undefined, + topLevel: number +) { + return useMemo(() => { + // We use the same color for all muted bars so let's do it just once and reuse the result in the closure of the + // returned function. + const barMutedColor = color(theme.colors.background.secondary); + const barMutedColorHex = theme.isLight + ? barMutedColor.darken(10).toHexString() + : barMutedColor.lighten(10).toHexString(); + + return function getColor(item: LevelItem, label: string, collapsed: boolean) { + // If collapsed and no search we can quickly return the muted color + if (collapsed && !foundNames) { + // Collapsed are always grayed + return barMutedColorHex; + } - useEffect(() => { - if (!ctx) { - return; - } - ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); - const pixelsPerTick = (wrapperWidth * window.devicePixelRatio) / totalViewTicks / (rangeMax - rangeMin); - - for (let levelIndex = 0; levelIndex < levels.length; levelIndex++) { - const level = levels[levelIndex]; - // Get all the dimensions of the rectangles for the level. We do this by level instead of per rectangle, because - // sometimes we collapse multiple bars into single rect. - const dimensions = getRectDimensionsForLevel(data, level, levelIndex, totalViewTicks, rangeMin, pixelsPerTick); - for (const rect of dimensions) { - const focusedLevel = focusedItemData ? focusedItemData.level : 0; - // Render each rectangle based on the computed dimensions - renderRect( - ctx, - rect, - totalColorTicks, - totalTicksRight, - rangeMin, - rangeMax, - levelIndex, - focusedLevel, - foundLabels, - textAlign, - colorScheme, - theme - ); + const barColor = + item.valueRight !== undefined && + (colorScheme === ColorSchemeDiff.Default || colorScheme === ColorSchemeDiff.DiffColorBlind) + ? getBarColorByDiff(item.value, item.valueRight!, totalTicks, totalTicksRight!, colorScheme) + : colorScheme === ColorScheme.ValueBased + ? getBarColorByValue(item.value, totalTicks, rangeMin, rangeMax) + : getBarColorByPackage(label, theme); + + if (foundNames) { + // Means we are searching, we use color for matches and gray the rest + return foundNames.has(label) ? barColor.toHslString() : barMutedColorHex; } - } - }, [ - ctx, - data, - levels, - wrapperWidth, - rangeMin, - rangeMax, - search, - focusedItemData, - foundLabels, - textAlign, - totalViewTicks, - totalColorTicks, - totalTicksRight, - colorScheme, - theme, - ]); + + // Mute if we are above the focused symbol + return item.level > topLevel - 1 ? barColor.toHslString() : barColor.lighten(15).toHslString(); + }; + }, [totalTicks, totalTicksRight, colorScheme, theme, rangeMin, rangeMax, foundNames, topLevel]); } function useSetupCanvas(canvasRef: RefObject, wrapperWidth: number, numberOfLevels: number) { @@ -153,146 +274,31 @@ function useSetupCanvas(canvasRef: RefObject, wrapperWidth: n return ctx; } -type RectData = { - width: number; - height: number; - x: number; - y: number; - collapsed: boolean; - ticks: number; - ticksRight?: number; - label: string; - unitLabel: string; - itemIndex: number; -}; - -/** - * Compute the pixel coordinates for each bar in a level. We need full level of bars so that we can collapse small bars - * into bigger rects. - */ -export function getRectDimensionsForLevel( - data: FlameGraphDataContainer, - level: LevelItem[], - levelIndex: number, - totalTicks: number, - rangeMin: number, - pixelsPerTick: number -): RectData[] { - const coordinatesLevel = []; - for (let barIndex = 0; barIndex < level.length; barIndex += 1) { - const item = level[barIndex]; - const barX = getBarX(item.start, totalTicks, rangeMin, pixelsPerTick); - let curBarTicks = item.value; - - // merge very small blocks into big "collapsed" ones for performance - const collapsed = curBarTicks * pixelsPerTick <= COLLAPSE_THRESHOLD; - if (collapsed) { - while ( - barIndex < level.length - 1 && - item.start + curBarTicks === level[barIndex + 1].start && - level[barIndex + 1].value * pixelsPerTick <= COLLAPSE_THRESHOLD - ) { - barIndex += 1; - curBarTicks += level[barIndex].value; - } - } - - const displayValue = data.valueDisplayProcessor(item.value); - let unit = displayValue.suffix ? displayValue.text + displayValue.suffix : displayValue.text; - - const width = curBarTicks * pixelsPerTick - (collapsed ? 0 : BAR_BORDER_WIDTH * 2); - coordinatesLevel.push({ - width, - height: PIXELS_PER_LEVEL, - x: barX, - y: levelIndex * PIXELS_PER_LEVEL, - collapsed, - ticks: curBarTicks, - // When collapsed this does not make that much sense but then we don't really use it anyway. - ticksRight: item.valueRight, - label: data.getLabel(item.itemIndexes[0]), - unitLabel: unit, - itemIndex: item.itemIndexes[0], - }); - } - return coordinatesLevel; -} - -export function renderRect( - ctx: CanvasRenderingContext2D, - rect: RectData, - totalTicks: number, - totalTicksRight: number | undefined, - rangeMin: number, - rangeMax: number, - levelIndex: number, - topLevelIndex: number, - foundNames: Set | undefined, - textAlign: TextAlign, - colorScheme: ColorScheme | ColorSchemeDiff, - theme: GrafanaTheme2 -) { - if (rect.width < HIDE_THRESHOLD) { - return; - } - - ctx.beginPath(); - ctx.rect(rect.x + (rect.collapsed ? 0 : BAR_BORDER_WIDTH), rect.y, rect.width, rect.height); - - const barColor = - rect.ticksRight !== undefined && - (colorScheme === ColorSchemeDiff.Default || colorScheme === ColorSchemeDiff.DiffColorBlind) - ? getBarColorByDiff(rect.ticks, rect.ticksRight, totalTicks, totalTicksRight!, colorScheme) - : colorScheme === ColorScheme.ValueBased - ? getBarColorByValue(rect.ticks, totalTicks, rangeMin, rangeMax) - : getBarColorByPackage(rect.label, theme); - - const barMutedColor = color(theme.colors.background.secondary); - const barMutedColorHex = theme.isLight - ? barMutedColor.darken(10).toHexString() - : barMutedColor.lighten(10).toHexString(); - - if (foundNames) { - // Means we are searching, we use color for matches and gray the rest - ctx.fillStyle = foundNames.has(rect.label) ? barColor.toHslString() : barMutedColorHex; - } else { - // No search - if (rect.collapsed) { - // Collapsed are always grayed - ctx.fillStyle = barMutedColorHex; - } else { - // Mute if we are above the focused symbol - ctx.fillStyle = levelIndex > topLevelIndex - 1 ? barColor.toHslString() : barColor.lighten(15).toHslString(); - } - } - - if (rect.collapsed) { - // Only fill the collapsed rects - ctx.fill(); - return; - } - - ctx.stroke(); - ctx.fill(); - - if (rect.width >= LABEL_THRESHOLD) { - renderLabel(ctx, rect.label, rect, textAlign); - } -} - // Renders a text inside the node rectangle. It allows setting alignment of the text left or right which takes effect // when text is too long to fit in the rectangle. -function renderLabel(ctx: CanvasRenderingContext2D, name: string, rect: RectData, textAlign: TextAlign) { +function renderLabel( + ctx: CanvasRenderingContext2D, + data: FlameGraphDataContainer, + label: string, + item: LevelItem, + width: number, + x: number, + y: number, + textAlign: TextAlign +) { ctx.save(); ctx.clip(); // so text does not overflow ctx.fillStyle = '#222'; + const displayValue = data.valueDisplayProcessor(item.value); + const unit = displayValue.suffix ? displayValue.text + displayValue.suffix : displayValue.text; + // We only measure name here instead of full label because of how we deal with the units and aligning later. - const measure = ctx.measureText(name); - const spaceForTextInRect = rect.width - BAR_TEXT_PADDING_LEFT; + const measure = ctx.measureText(label); + const spaceForTextInRect = width - BAR_TEXT_PADDING_LEFT; - let label = `${name} (${rect.unitLabel})`; - let labelX = Math.max(rect.x, 0) + BAR_TEXT_PADDING_LEFT; + let fullLabel = `${label} (${unit})`; + let labelX = Math.max(x, 0) + BAR_TEXT_PADDING_LEFT; // We use the desired alignment only if there is not enough space for the text, otherwise we keep left alignment as // that will already show full text. @@ -301,12 +307,12 @@ function renderLabel(ctx: CanvasRenderingContext2D, name: string, rect: RectData // If aligned to the right we don't want to take the space with the unit label as the assumption is user wants to // mainly see the name. This also reflects how pyro/flamegraph works. if (textAlign === 'right') { - label = name; - labelX = rect.x + rect.width - BAR_TEXT_PADDING_LEFT; + fullLabel = label; + labelX = x + width - BAR_TEXT_PADDING_LEFT; } } - ctx.fillText(label, labelX, rect.y + PIXELS_PER_LEVEL / 2); + ctx.fillText(fullLabel, labelX, y + PIXELS_PER_LEVEL / 2); ctx.restore(); } diff --git a/packages/grafana-flamegraph/src/FlameGraph/testHelpers.test.ts b/packages/grafana-flamegraph/src/FlameGraph/testHelpers.test.ts index 523bc49a441c8..99955090c8119 100644 --- a/packages/grafana-flamegraph/src/FlameGraph/testHelpers.test.ts +++ b/packages/grafana-flamegraph/src/FlameGraph/testHelpers.test.ts @@ -10,16 +10,16 @@ describe('textToDataContainer', () => { [6] `)!; - const n6: LevelItem = { itemIndexes: [5], start: 3, children: [], value: 3 }; + const n6: LevelItem = { itemIndexes: [5], start: 3, children: [], value: 3, level: 3 }; - const n5: LevelItem = { itemIndexes: [4], start: 3, children: [n6], value: 3 }; - const n3: LevelItem = { itemIndexes: [2], start: 0, children: [], value: 3 }; + const n5: LevelItem = { itemIndexes: [4], start: 3, children: [n6], value: 3, level: 2 }; + const n3: LevelItem = { itemIndexes: [2], start: 0, children: [], value: 3, level: 2 }; - const n7: LevelItem = { itemIndexes: [6], start: 8, children: [], value: 6 }; - const n4: LevelItem = { itemIndexes: [3], start: 3, children: [n5], value: 5 }; - const n2: LevelItem = { itemIndexes: [1], start: 0, children: [n3], value: 3 }; + const n7: LevelItem = { itemIndexes: [6], start: 8, children: [], value: 6, level: 1 }; + const n4: LevelItem = { itemIndexes: [3], start: 3, children: [n5], value: 5, level: 1 }; + const n2: LevelItem = { itemIndexes: [1], start: 0, children: [n3], value: 3, level: 1 }; - const n1: LevelItem = { itemIndexes: [0], start: 0, children: [n2, n4, n7], value: 17 }; + const n1: LevelItem = { itemIndexes: [0], start: 0, children: [n2, n4, n7], value: 17, level: 0 }; n2.parents = [n1]; n4.parents = [n1]; diff --git a/packages/grafana-flamegraph/src/FlameGraph/testHelpers.ts b/packages/grafana-flamegraph/src/FlameGraph/testHelpers.ts index fc42c5bf2acc5..482fb5a230031 100644 --- a/packages/grafana-flamegraph/src/FlameGraph/testHelpers.ts +++ b/packages/grafana-flamegraph/src/FlameGraph/testHelpers.ts @@ -43,6 +43,7 @@ export function textToDataContainer(text: string) { itemIndexes: [dfValues.length - 1], start: match.index - leftMargin, children: [], + level: i, }; itemLevels[i] = itemLevels[i] || []; diff --git a/packages/grafana-flamegraph/src/FlameGraph/treeTransforms.ts b/packages/grafana-flamegraph/src/FlameGraph/treeTransforms.ts index f68f21385ecbc..ee4e98f290885 100644 --- a/packages/grafana-flamegraph/src/FlameGraph/treeTransforms.ts +++ b/packages/grafana-flamegraph/src/FlameGraph/treeTransforms.ts @@ -91,6 +91,7 @@ export function mergeSubtrees( children: [], parents: [], start: 0, + level: args.level, }; levels[args.level] = levels[args.level] || []; @@ -119,6 +120,11 @@ export function mergeSubtrees( // Reverse the levels if we are doing callers tree, so we return levels in the correct order. if (direction === 'parents') { levels.reverse(); + levels.forEach((level, index) => { + level.forEach((item) => { + item.level = index; + }); + }); } return levels; diff --git a/packages/grafana-flamegraph/src/FlameGraphContainer.tsx b/packages/grafana-flamegraph/src/FlameGraphContainer.tsx index 6aacd8166744d..ac4439b244a2a 100644 --- a/packages/grafana-flamegraph/src/FlameGraphContainer.tsx +++ b/packages/grafana-flamegraph/src/FlameGraphContainer.tsx @@ -85,7 +85,6 @@ const FlameGraphContainer = ({ } return new FlameGraphDataContainer(data, theme); }, [data, theme]); - const [colorScheme, setColorScheme] = useColorScheme(dataContainer); const styles = getStyles(theme, vertical); diff --git a/packages/grafana-flamegraph/src/types.ts b/packages/grafana-flamegraph/src/types.ts index 9c6cad8e36661..c4616a2684742 100644 --- a/packages/grafana-flamegraph/src/types.ts +++ b/packages/grafana-flamegraph/src/types.ts @@ -5,7 +5,6 @@ export type ClickedItemData = { posY: number; label: string; item: LevelItem; - level: number; }; export enum SampleUnit { diff --git a/packages/grafana-plugin-configs/package.json b/packages/grafana-plugin-configs/package.json index a66637ad320d4..cae7f3f444b61 100644 --- a/packages/grafana-plugin-configs/package.json +++ b/packages/grafana-plugin-configs/package.json @@ -13,7 +13,7 @@ "fork-ts-checker-webpack-plugin": "8.0.0", "glob": "10.3.3", "replace-in-file-webpack-plugin": "1.0.6", - "webpack": "5.88.1" + "webpack": "5.89.0" }, "packageManager": "yarn@3.6.0" } diff --git a/packages/grafana-plugin-configs/webpack.config.ts b/packages/grafana-plugin-configs/webpack.config.ts index 243cf76d3087e..315f4a34f077e 100644 --- a/packages/grafana-plugin-configs/webpack.config.ts +++ b/packages/grafana-plugin-configs/webpack.config.ts @@ -20,7 +20,7 @@ function skipFiles(f: string): boolean { return true; } -const config = async (env: any): Promise => { +const config = async (env: Record): Promise => { const pluginJson = getPluginJson(); const baseConfig: Configuration = { cache: { @@ -28,6 +28,13 @@ const config = async (env: any): Promise => { buildDependencies: { config: [__filename], }, + cacheDirectory: path.resolve(__dirname, '../../.yarn/.cache/webpack', path.basename(process.cwd())), + cacheLocation: path.resolve( + __dirname, + '../../.yarn/.cache/eslint-webpack-plugin', + path.basename(process.cwd()), + '.eslintcache' + ), }, context: process.cwd(), @@ -63,8 +70,8 @@ const config = async (env: any): Promise => { // Mark legacy SDK imports as external if their name starts with the "grafana/" prefix ({ request }, callback) => { const prefix = 'grafana/'; - const hasPrefix = (request: any) => request.indexOf(prefix) === 0; - const stripPrefix = (request: any) => request.substr(prefix.length); + const hasPrefix = (request?: string) => request?.indexOf(prefix) === 0; + const stripPrefix = (request?: string) => request?.substr(prefix.length); if (hasPrefix(request)) { return callback(undefined, stripPrefix(request)); diff --git a/packages/grafana-schema/src/raw/composable/azuremonitor/dataquery/x/AzureMonitorDataQuery_types.gen.ts b/packages/grafana-schema/src/raw/composable/azuremonitor/dataquery/x/AzureMonitorDataQuery_types.gen.ts index 86c383bf69652..712b35a32f894 100644 --- a/packages/grafana-schema/src/raw/composable/azuremonitor/dataquery/x/AzureMonitorDataQuery_types.gen.ts +++ b/packages/grafana-schema/src/raw/composable/azuremonitor/dataquery/x/AzureMonitorDataQuery_types.gen.ts @@ -258,6 +258,7 @@ export const defaultAzureTracesFilter: Partial = { }; export enum ResultFormat { + Logs = 'logs', Table = 'table', TimeSeries = 'time_series', Trace = 'trace', diff --git a/packages/grafana-ui/package.json b/packages/grafana-ui/package.json index d6444345e3440..3d782edcc6ae7 100644 --- a/packages/grafana-ui/package.json +++ b/packages/grafana-ui/package.json @@ -81,7 +81,7 @@ "monaco-editor": "0.34.0", "ol": "7.4.0", "prismjs": "1.29.0", - "rc-cascader": "3.18.1", + "rc-cascader": "3.19.0", "rc-drawer": "6.5.2", "rc-slider": "10.3.1", "rc-time-picker": "^3.7.3", @@ -115,7 +115,7 @@ "uuid": "9.0.0" }, "devDependencies": { - "@babel/core": "7.23.0", + "@babel/core": "7.23.2", "@grafana/tsconfig": "^1.2.0-rc1", "@mdx-js/react": "1.6.22", "@rollup/plugin-node-resolve": "15.2.3", @@ -187,7 +187,7 @@ "storybook-dark-mode": "3.0.1", "style-loader": "3.3.3", "typescript": "4.8.4", - "webpack": "5.88.1" + "webpack": "5.89.0" }, "peerDependencies": { "react": "^17.0.0 || ^18.0.0", diff --git a/packages/grafana-ui/src/components/IconButton/IconButton.story.tsx b/packages/grafana-ui/src/components/IconButton/IconButton.story.tsx index db562ecb73b2a..0e410f601952a 100644 --- a/packages/grafana-ui/src/components/IconButton/IconButton.story.tsx +++ b/packages/grafana-ui/src/components/IconButton/IconButton.story.tsx @@ -32,8 +32,6 @@ const meta: Meta = { tooltip: 'sample tooltip message', tooltipPlacement: 'top', variant: 'secondary', - ariaLabel: 'this property is deprecated', - ['aria-label']: 'sample aria-label content', }, argTypes: { tooltip: { diff --git a/packages/grafana-ui/src/components/Tooltip/Tooltip.test.tsx b/packages/grafana-ui/src/components/Tooltip/Tooltip.test.tsx index 12e7ece46d046..009b7e749f398 100644 --- a/packages/grafana-ui/src/components/Tooltip/Tooltip.test.tsx +++ b/packages/grafana-ui/src/components/Tooltip/Tooltip.test.tsx @@ -39,6 +39,7 @@ describe('Tooltip', () => { expect(refObj.current).not.toBeNull(); }); + it('to be shown on hover and be dismissable by pressing Esc key when show is undefined', async () => { render( @@ -50,6 +51,7 @@ describe('Tooltip', () => { await userEvent.keyboard('{Escape}'); expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument(); }); + it('is always visible when show prop is true', async () => { render( @@ -61,6 +63,7 @@ describe('Tooltip', () => { await userEvent.unhover(screen.getByText('On the page')); expect(screen.getByText('Tooltip content')).toBeInTheDocument(); }); + it('is never visible when show prop is false', async () => { render( @@ -70,4 +73,27 @@ describe('Tooltip', () => { await userEvent.hover(screen.getByText('On the page')); expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument(); }); + + it('exposes the tooltip text to screen readers', async () => { + render( + + + + ); + + // if tooltip is not visible, description won't be set + expect( + screen.queryByRole('button', { + description: 'Tooltip content', + }) + ).not.toBeInTheDocument(); + + // tab to button to make tooltip visible + await userEvent.keyboard('{tab}'); + expect( + await screen.findByRole('button', { + description: 'Tooltip content', + }) + ).toBeInTheDocument(); + }); }); diff --git a/packages/grafana-ui/src/components/Tooltip/Tooltip.tsx b/packages/grafana-ui/src/components/Tooltip/Tooltip.tsx index b3c78762360bd..0b881601f84e8 100644 --- a/packages/grafana-ui/src/components/Tooltip/Tooltip.tsx +++ b/packages/grafana-ui/src/components/Tooltip/Tooltip.tsx @@ -1,4 +1,4 @@ -import React, { useCallback, useEffect } from 'react'; +import React, { useCallback, useEffect, useId, useState } from 'react'; import { usePopperTooltip } from 'react-popper-tooltip'; import { GrafanaTheme2 } from '@grafana/data'; @@ -24,7 +24,8 @@ export interface TooltipProps { export const Tooltip = React.forwardRef( ({ children, theme, interactive, show, placement, content }, forwardedRef) => { - const [controlledVisible, setControlledVisible] = React.useState(show); + const [controlledVisible, setControlledVisible] = useState(show); + const tooltipId = useId(); useEffect(() => { if (controlledVisible !== false) { @@ -44,10 +45,9 @@ export const Tooltip = React.forwardRef( const { getArrowProps, getTooltipProps, setTooltipRef, setTriggerRef, visible, update } = usePopperTooltip({ visible: show ?? controlledVisible, - placement: placement, - interactive: interactive, + placement, + interactive, delayHide: interactive ? 100 : 0, - delayShow: 150, offset: [0, 8], trigger: ['hover', 'focus'], onVisibleChange: setControlledVisible, @@ -69,17 +69,23 @@ export const Tooltip = React.forwardRef( [forwardedRef, setTriggerRef] ); + // if the child has an aria-label, this should take precedence over the tooltip content + const childHasAriaLabel = 'aria-label' in children.props; + return ( <> {React.cloneElement(children, { ref: handleRef, - tabIndex: 0, // tooltip should be keyboard focusable + tabIndex: 0, // tooltip trigger should be keyboard focusable + 'aria-describedby': !childHasAriaLabel && visible ? tooltipId : undefined, })} {visible && ( + } + > diff --git a/public/app/features/alerting/unified/RuleEditor.tsx b/public/app/features/alerting/unified/RuleEditor.tsx index 4928fc27cb569..1bc056c0b5e3d 100644 --- a/public/app/features/alerting/unified/RuleEditor.tsx +++ b/public/app/features/alerting/unified/RuleEditor.tsx @@ -47,7 +47,8 @@ const RuleEditor = ({ match }: RuleEditorProps) => { const dispatch = useDispatch(); const [searchParams] = useURLSearchParams(); - const { id, type } = match.params; + const { type } = match.params; + const id = ruleId.getRuleIdFromPathname(match.params); const identifier = ruleId.tryParse(id, true); const copyFromId = searchParams.get('copyFrom') ?? undefined; diff --git a/public/app/features/alerting/unified/components/rule-viewer/RuleViewer.v1.test.tsx b/public/app/features/alerting/unified/components/rule-viewer/RuleViewer.v1.test.tsx index df7ebac1f0acb..dce2c07b1e234 100644 --- a/public/app/features/alerting/unified/components/rule-viewer/RuleViewer.v1.test.tsx +++ b/public/app/features/alerting/unified/components/rule-viewer/RuleViewer.v1.test.tsx @@ -68,7 +68,8 @@ const ui = { loadingIndicator: byText(/Loading rule/i), }; -const renderRuleViewer = async (ruleId?: string) => { +const renderRuleViewer = async (ruleId: string) => { + locationService.push(`/alerting/grafana/${ruleId}/view`); render( @@ -153,7 +154,7 @@ describe('RuleViewer', () => { it('should render page with grafana alert', async () => { mocks.useIsRuleEditable.mockReturnValue({ loading: false, isEditable: false }); - await renderRuleViewer(); + await renderRuleViewer('test1'); expect(screen.getByText(/test alert/i)).toBeInTheDocument(); }); @@ -195,7 +196,7 @@ describe('RuleDetails RBAC', () => { }); // Act - await renderRuleViewer(); + await renderRuleViewer('test1'); // Assert expect(ui.actionButtons.edit.get()).toBeInTheDocument(); @@ -215,7 +216,7 @@ describe('RuleDetails RBAC', () => { const user = userEvent.setup(); // Act - await renderRuleViewer(); + await renderRuleViewer('test1'); await user.click(ui.moreButton.get()); // Assert @@ -234,7 +235,7 @@ describe('RuleDetails RBAC', () => { jest.spyOn(contextSrv, 'hasPermission').mockReturnValue(false); // Act - await renderRuleViewer(); + await renderRuleViewer('test1'); // Assert await waitFor(() => { @@ -256,7 +257,7 @@ describe('RuleDetails RBAC', () => { .mockImplementation((action) => action === AccessControlAction.AlertingInstanceCreate); // Act - await renderRuleViewer(); + await renderRuleViewer('test1'); // Assert await waitFor(() => { @@ -275,7 +276,7 @@ describe('RuleDetails RBAC', () => { const user = userEvent.setup(); - await renderRuleViewer(); + await renderRuleViewer('test1'); await user.click(ui.moreButton.get()); expect(ui.moreButtons.duplicate.get()).toBeInTheDocument(); @@ -293,7 +294,7 @@ describe('RuleDetails RBAC', () => { grantUserPermissions([AlertingRuleRead, AlertingRuleUpdate, AlertingRuleDelete]); const user = userEvent.setup(); - await renderRuleViewer(); + await renderRuleViewer('test1'); await user.click(ui.moreButton.get()); expect(ui.moreButtons.duplicate.query()).not.toBeInTheDocument(); @@ -321,7 +322,7 @@ describe('RuleDetails RBAC', () => { }); // Act - await renderRuleViewer(); + await renderRuleViewer('test1'); // Assert expect(ui.actionButtons.edit.query()).toBeInTheDocument(); @@ -341,7 +342,7 @@ describe('RuleDetails RBAC', () => { const user = userEvent.setup(); // Act - await renderRuleViewer(); + await renderRuleViewer('test1'); await user.click(ui.moreButton.get()); // Assert diff --git a/public/app/features/alerting/unified/components/rule-viewer/RuleViewer.v1.tsx b/public/app/features/alerting/unified/components/rule-viewer/RuleViewer.v1.tsx index 27ef3e827d0f1..6081d1b1a0757 100644 --- a/public/app/features/alerting/unified/components/rule-viewer/RuleViewer.v1.tsx +++ b/public/app/features/alerting/unified/components/rule-viewer/RuleViewer.v1.tsx @@ -43,14 +43,14 @@ export function RuleViewer({ match }: RuleViewerProps) { const styles = useStyles2(getStyles); const [expandQuery, setExpandQuery] = useToggle(false); - const { id } = match.params; const identifier = useMemo(() => { + const id = ruleId.getRuleIdFromPathname(match.params); if (!id) { throw new Error('Rule ID is required'); } return ruleId.parse(id, true); - }, [id]); + }, [match.params]); const { loading, error, result: rule } = useCombinedRule({ ruleIdentifier: identifier }); diff --git a/public/app/features/alerting/unified/components/rule-viewer/v2/RuleViewer.v2.tsx b/public/app/features/alerting/unified/components/rule-viewer/v2/RuleViewer.v2.tsx index b7fcd608bb5a0..9ddc8761e97a2 100644 --- a/public/app/features/alerting/unified/components/rule-viewer/v2/RuleViewer.v2.tsx +++ b/public/app/features/alerting/unified/components/rule-viewer/v2/RuleViewer.v2.tsx @@ -34,9 +34,9 @@ enum Tabs { // figure out why we needed // add provisioning and federation stuff back in const RuleViewer = ({ match }: RuleViewerProps) => { - const { id } = match.params; const [activeTab, setActiveTab] = useState(Tabs.Instances); + const id = ruleId.getRuleIdFromPathname(match.params); const identifier = useMemo(() => { if (!id) { throw new Error('Rule ID is required'); diff --git a/public/app/features/alerting/unified/components/rules/CloneRule.tsx b/public/app/features/alerting/unified/components/rules/CloneRule.tsx index 4ea1bf6d54f99..c422796823cbb 100644 --- a/public/app/features/alerting/unified/components/rules/CloneRule.tsx +++ b/public/app/features/alerting/unified/components/rules/CloneRule.tsx @@ -22,7 +22,7 @@ export function RedirectToCloneRule({ identifier, isProvisioned, onDismiss }: Co const [stage, setStage] = useState<'redirect' | 'confirm'>(isProvisioned ? 'confirm' : 'redirect'); if (stage === 'redirect') { - const cloneUrl = `/alerting/new?copyFrom=${ruleId.stringifyIdentifier(identifier)}`; + const cloneUrl = `/alerting/new?copyFrom=${encodeURIComponent(ruleId.stringifyIdentifier(identifier))}`; return ; } diff --git a/public/app/features/alerting/unified/utils/rule-id.test.ts b/public/app/features/alerting/unified/utils/rule-id.test.ts index cd75a0ee8a61a..d862d55475bbe 100644 --- a/public/app/features/alerting/unified/utils/rule-id.test.ts +++ b/public/app/features/alerting/unified/utils/rule-id.test.ts @@ -1,3 +1,5 @@ +import { renderHook } from '@testing-library/react-hooks'; + import { RuleIdentifier } from 'app/types/unified-alerting'; import { GrafanaAlertStateDecision, @@ -7,7 +9,7 @@ import { RulerRecordingRuleDTO, } from 'app/types/unified-alerting-dto'; -import { hashRulerRule, parse, stringifyIdentifier } from './rule-id'; +import { hashRulerRule, parse, stringifyIdentifier, getRuleIdFromPathname } from './rule-id'; describe('hashRulerRule', () => { it('should not hash unknown rule types', () => { @@ -114,3 +116,13 @@ describe('hashRulerRule', () => { expect(() => parse('foo$bar$baz', false)).toThrow(/failed to parse/i); }); }); + +describe('useRuleIdFromPathname', () => { + it('should return undefined when there is no id in params', () => { + const { result } = renderHook(() => { + getRuleIdFromPathname({ id: undefined }); + }); + + expect(result.current).toBe(undefined); + }); +}); diff --git a/public/app/features/alerting/unified/utils/rule-id.ts b/public/app/features/alerting/unified/utils/rule-id.ts index c2eb6eb29d103..316a1b3bae15b 100644 --- a/public/app/features/alerting/unified/utils/rule-id.ts +++ b/public/app/features/alerting/unified/utils/rule-id.ts @@ -1,3 +1,6 @@ +import { nth } from 'lodash'; + +import { locationService } from '@grafana/runtime'; import { CombinedRule, Rule, RuleIdentifier, RuleWithLocation } from 'app/types/unified-alerting'; import { Annotations, Labels, RulerRuleDTO } from 'app/types/unified-alerting-dto'; @@ -244,3 +247,17 @@ function hashLabelsOrAnnotations(item: Labels | Annotations | undefined): string export function ruleIdentifierToRuleSourceName(identifier: RuleIdentifier): string { return isGrafanaRuleIdentifier(identifier) ? GRAFANA_RULES_SOURCE_NAME : identifier.ruleSourceName; } + +// DO NOT USE REACT-ROUTER HOOKS FOR THIS CODE +// React-router's useLocation/useParams/props.match are broken and don't preserve original param values when parsing location +// so, they cannot be used to parse name and sourceName path params +// React-router messes the pathname up resulting in a string that is neither encoded nor decoded +// Relevant issue: https://github.com/remix-run/history/issues/505#issuecomment-453175833 +// It was probably fixed in React-Router v6 +type PathWithOptionalID = { id?: string }; +export function getRuleIdFromPathname(params: PathWithOptionalID): string | undefined { + const { pathname = '' } = locationService.getLocation(); + const { id } = params; + + return id ? nth(pathname.split('/'), -2) : undefined; +} diff --git a/public/app/features/datasources/state/navModel.ts b/public/app/features/datasources/state/navModel.ts index d0b76822886bf..c68e547b7f012 100644 --- a/public/app/features/datasources/state/navModel.ts +++ b/public/app/features/datasources/state/navModel.ts @@ -72,7 +72,7 @@ export function buildNavModel(dataSource: DataSourceSettings, plugin: GenericDat } if (featureEnabled('dspermissions.enforcement')) { - if (contextSrv.hasPermission(AccessControlAction.DataSourcesPermissionsRead)) { + if (contextSrv.hasPermissionInMetadata(AccessControlAction.DataSourcesPermissionsRead, dataSource)) { navModel.children!.push(dsPermissions); } } else if (highlightsEnabled && !isLoadingNav) { diff --git a/public/app/features/explore/TraceView/components/TracePageHeader/SpanFilters/SpanFilters.tsx b/public/app/features/explore/TraceView/components/TracePageHeader/SpanFilters/SpanFilters.tsx index 2bb219f93a1e9..d3db03719c0c5 100644 --- a/public/app/features/explore/TraceView/components/TracePageHeader/SpanFilters/SpanFilters.tsx +++ b/public/app/features/explore/TraceView/components/TracePageHeader/SpanFilters/SpanFilters.tsx @@ -338,9 +338,9 @@ export const SpanFilters = memo((props: SpanFilterProps) => { + {({ control, errors }) => ( + <> + ( + + + + )} + control={control} + name="title" /> - -
- - -
- - +
+ + +
+ + )} + ); diff --git a/public/app/plugins/datasource/azuremonitor/components/LogsQueryEditor/LogsQueryEditor.test.tsx b/public/app/plugins/datasource/azuremonitor/components/LogsQueryEditor/LogsQueryEditor.test.tsx index 1f0568572af4b..d77ff945ea46d 100644 --- a/public/app/plugins/datasource/azuremonitor/components/LogsQueryEditor/LogsQueryEditor.test.tsx +++ b/public/app/plugins/datasource/azuremonitor/components/LogsQueryEditor/LogsQueryEditor.test.tsx @@ -2,6 +2,8 @@ import { render, screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import React from 'react'; +import { dateTime, LoadingState } from '@grafana/data'; + import createMockDatasource from '../../__mocks__/datasource'; import createMockQuery from '../../__mocks__/query'; import { createMockResourcePickerData } from '../MetricsQueryEditor/MetricsQueryEditor.test'; @@ -211,4 +213,37 @@ describe('LogsQueryEditor', () => { }) ); }); + + describe('azure portal link', () => { + it('should show the link button', async () => { + const mockDatasource = createMockDatasource({ resourcePickerData: createMockResourcePickerData() }); + const query = createMockQuery(); + const onChange = jest.fn(); + + const date = dateTime(new Date()); + render( + {}} + data={{ + state: LoadingState.Done, + timeRange: { + from: date, + to: date, + raw: { + from: date, + to: date, + }, + }, + series: [{ refId: query.refId, length: 0, meta: { custom: { azurePortalLink: 'test' } }, fields: [] }], + }} + /> + ); + + expect(await screen.findByText('View query in Azure Portal')).toBeInTheDocument(); + }); + }); }); diff --git a/public/app/plugins/datasource/azuremonitor/components/LogsQueryEditor/LogsQueryEditor.tsx b/public/app/plugins/datasource/azuremonitor/components/LogsQueryEditor/LogsQueryEditor.tsx index 45de3fa3f7262..5bea85d8ea473 100644 --- a/public/app/plugins/datasource/azuremonitor/components/LogsQueryEditor/LogsQueryEditor.tsx +++ b/public/app/plugins/datasource/azuremonitor/components/LogsQueryEditor/LogsQueryEditor.tsx @@ -1,7 +1,8 @@ import React, { useEffect, useState } from 'react'; +import { PanelData, TimeRange } from '@grafana/data'; import { EditorFieldGroup, EditorRow, EditorRows } from '@grafana/experimental'; -import { Alert } from '@grafana/ui'; +import { Alert, LinkButton } from '@grafana/ui'; import Datasource from '../../datasource'; import { selectors } from '../../e2e/selectors'; @@ -25,6 +26,8 @@ interface LogsQueryEditorProps { variableOptionGroup: { label: string; options: AzureMonitorOption[] }; setError: (source: string, error: AzureMonitorErrorish | undefined) => void; hideFormatAs?: boolean; + timeRange?: TimeRange; + data?: PanelData; } const LogsQueryEditor = ({ @@ -35,6 +38,8 @@ const LogsQueryEditor = ({ onChange, setError, hideFormatAs, + timeRange, + data, }: LogsQueryEditorProps) => { const migrationError = useMigrations(datasource, query, onChange); const disableRow = (row: ResourceRow, selectedRows: ResourceRowGroup) => { @@ -60,6 +65,26 @@ const LogsQueryEditor = ({ } }, [query.azureLogAnalytics?.resources, datasource.azureLogAnalyticsDatasource]); + let portalLinkButton = null; + + if (data?.series) { + const querySeries = data.series.find((result) => result.refId === query.refId); + if (querySeries && querySeries.meta?.custom?.azurePortalLink) { + portalLinkButton = ( + <> + + View query in Azure Portal + + + ); + } + } + return ( @@ -122,15 +147,16 @@ const LogsQueryEditor = ({ setError={setError} inputId={'azure-monitor-logs'} options={[ + { label: 'Log', value: ResultFormat.Logs }, { label: 'Time series', value: ResultFormat.TimeSeries }, { label: 'Table', value: ResultFormat.Table }, ]} - defaultValue={ResultFormat.Table} + defaultValue={ResultFormat.Logs} setFormatAs={setFormatAs} resultFormat={query.azureLogAnalytics?.resultFormat} /> )} - + {portalLinkButton} {migrationError && {migrationError.message}} diff --git a/public/app/plugins/datasource/azuremonitor/components/QueryEditor/QueryEditor.tsx b/public/app/plugins/datasource/azuremonitor/components/QueryEditor/QueryEditor.tsx index 789c36000b900..3e9b85d3fd46f 100644 --- a/public/app/plugins/datasource/azuremonitor/components/QueryEditor/QueryEditor.tsx +++ b/public/app/plugins/datasource/azuremonitor/components/QueryEditor/QueryEditor.tsx @@ -142,12 +142,14 @@ const EditorForQueryType = ({ case AzureQueryType.LogAnalytics: return ( ); diff --git a/public/app/plugins/datasource/azuremonitor/components/TracesQueryEditor/Filters.test.tsx b/public/app/plugins/datasource/azuremonitor/components/TracesQueryEditor/Filters.test.tsx index 37676d0ee1a34..7b15cfc923c46 100644 --- a/public/app/plugins/datasource/azuremonitor/components/TracesQueryEditor/Filters.test.tsx +++ b/public/app/plugins/datasource/azuremonitor/components/TracesQueryEditor/Filters.test.tsx @@ -402,10 +402,8 @@ describe(`Traces Filters`, () => { ], }, }; - const removeLabel = screen.getAllByLabelText(`Remove`); - await act(async () => { - await userEvent.click(removeLabel[1]); - }); + const removeLabel = screen.getAllByLabelText(/Remove/); + await userEvent.click(removeLabel[1]); rerender( = { }; export enum ResultFormat { + Logs = 'logs', Table = 'table', TimeSeries = 'time_series', Trace = 'trace', diff --git a/public/app/plugins/datasource/azuremonitor/datasource.ts b/public/app/plugins/datasource/azuremonitor/datasource.ts index f29bf2e973b7e..964b958ded97f 100644 --- a/public/app/plugins/datasource/azuremonitor/datasource.ts +++ b/public/app/plugins/datasource/azuremonitor/datasource.ts @@ -8,6 +8,7 @@ import { DataQueryResponse, DataSourceInstanceSettings, LoadingState, + QueryFixAction, ScopedVars, } from '@grafana/data'; import { DataSourceWithBackend, getTemplateSrv, TemplateSrv } from '@grafana/runtime'; @@ -197,6 +198,27 @@ export default class Datasource extends DataSourceWithBackend { describe('addAdhocFilters', () => { describe('with invalid filters', () => { + let ds: ElasticDatasource, templateSrv: TemplateSrv; + beforeEach(() => { + const context = getTestContext(); + ds = context.ds; + templateSrv = context.templateSrv; + }); + it('should filter out ad hoc filter without key', () => { - const { ds, templateSrv } = getTestContext(); jest.mocked(templateSrv.getAdhocFilters).mockReturnValue([{ key: '', operator: '=', value: 'a', condition: '' }]); const query = ds.addAdHocFilters('foo:"bar"'); @@ -1316,7 +1322,6 @@ describe('addAdhocFilters', () => { }); it('should filter out ad hoc filter without value', () => { - const { ds, templateSrv } = getTestContext(); jest.mocked(templateSrv.getAdhocFilters).mockReturnValue([{ key: 'a', operator: '=', value: '', condition: '' }]); const query = ds.addAdHocFilters('foo:"bar"'); @@ -1324,7 +1329,6 @@ describe('addAdhocFilters', () => { }); it('should filter out filter ad hoc filter with invalid operator', () => { - const { ds, templateSrv } = getTestContext(); jest.mocked(templateSrv.getAdhocFilters).mockReturnValue([{ key: 'a', operator: 'A', value: '', condition: '' }]); const query = ds.addAdHocFilters('foo:"bar"'); @@ -1349,10 +1353,50 @@ describe('addAdhocFilters', () => { }); it('should correctly add 1 ad hoc filter when query is empty', () => { - const query = ds.addAdHocFilters(''); - expect(query).toBe('test:"test1"'); + expect(ds.addAdHocFilters('')).toBe('test:"test1"'); + expect(ds.addAdHocFilters(' ')).toBe('test:"test1"'); + expect(ds.addAdHocFilters(' ')).toBe('test:"test1"'); }); + it('should not fail if the filter value is a number', () => { + jest + .mocked(templateSrvMock.getAdhocFilters) + // @ts-expect-error + .mockReturnValue([{ key: 'key', operator: '=', value: 1, condition: '' }]); + expect(ds.addAdHocFilters('')).toBe('key:"1"'); + }); + + it.each(['=', '!=', '=~', '!~', '>', '<', '', ''])( + `should properly build queries with '%s' filters`, + (operator: string) => { + jest + .mocked(templateSrvMock.getAdhocFilters) + .mockReturnValue([{ key: 'key', operator, value: 'value', condition: '' }]); + + const query = ds.addAdHocFilters('foo:"bar"'); + switch (operator) { + case '=': + expect(query).toBe('foo:"bar" AND key:"value"'); + break; + case '!=': + expect(query).toBe('foo:"bar" AND -key:"value"'); + break; + case '=~': + expect(query).toBe('foo:"bar" AND key:/value/'); + break; + case '!~': + expect(query).toBe('foo:"bar" AND -key:/value/'); + break; + case '>': + expect(query).toBe('foo:"bar" AND key:>value'); + break; + case '<': + expect(query).toBe('foo:"bar" AND key: { jest .mocked(templateSrvMock.getAdhocFilters) diff --git a/public/app/plugins/datasource/elasticsearch/datasource.ts b/public/app/plugins/datasource/elasticsearch/datasource.ts index 3f49d181e776c..513c539344630 100644 --- a/public/app/plugins/datasource/elasticsearch/datasource.ts +++ b/public/app/plugins/datasource/elasticsearch/datasource.ts @@ -56,13 +56,7 @@ import { } from './components/QueryEditor/MetricAggregationsEditor/aggregations'; import { metricAggregationConfig } from './components/QueryEditor/MetricAggregationsEditor/utils'; import { isMetricAggregationWithMeta } from './guards'; -import { - addFilterToQuery, - escapeFilter, - escapeFilterValue, - queryHasFilter, - removeFilterFromQuery, -} from './modifyQuery'; +import { addAddHocFilter, addFilterToQuery, queryHasFilter, removeFilterFromQuery } from './modifyQuery'; import { trackAnnotationQuery, trackQuery } from './tracking'; import { Logs, @@ -955,35 +949,11 @@ export class ElasticDatasource if (adhocFilters.length === 0) { return query; } - const esFilters = adhocFilters.map((filter) => { - let { key, operator, value } = filter; - if (!key || !value) { - return; - } - /** - * Keys and values in ad hoc filters may contain characters such as - * colons, which needs to be escaped. - */ - key = escapeFilter(key); - value = escapeFilterValue(value); - switch (operator) { - case '=': - return `${key}:"${value}"`; - case '!=': - return `-${key}:"${value}"`; - case '=~': - return `${key}:/${value}/`; - case '!~': - return `-${key}:/${value}/`; - case '>': - return `${key}:>${value}`; - case '<': - return `${key}:<${value}`; - } - return; + let finalQuery = query; + adhocFilters.forEach((filter) => { + finalQuery = addAddHocFilter(finalQuery, filter); }); - const finalQuery = [query, ...esFilters].filter((f) => f).join(' AND '); return finalQuery; } diff --git a/public/app/plugins/datasource/elasticsearch/modifyQuery.ts b/public/app/plugins/datasource/elasticsearch/modifyQuery.ts index 97c271ab05def..f4206041f98d7 100644 --- a/public/app/plugins/datasource/elasticsearch/modifyQuery.ts +++ b/public/app/plugins/datasource/elasticsearch/modifyQuery.ts @@ -1,6 +1,8 @@ import { isEqual } from 'lodash'; import lucene, { AST, BinaryAST, LeftOnlyAST, NodeTerm } from 'lucene'; +import { AdHocVariableFilter } from '@grafana/data'; + type ModifierType = '' | '-'; /** @@ -65,7 +67,59 @@ export function addFilterToQuery(query: string, key: string, value: string, modi value = lucene.phrase.escape(value); const filter = `${modifier}${key}:"${value}"`; - return query === '' ? filter : `${query} AND ${filter}`; + return concatenate(query, filter); +} + +/** + * Merge a query with a filter. + */ +function concatenate(query: string, filter: string, condition = 'AND'): string { + if (!filter) { + return query; + } + return query.trim() === '' ? filter : `${query} ${condition} ${filter}`; +} + +/** + * Adds a label:"value" expression to the query. + */ +export function addAddHocFilter(query: string, filter: AdHocVariableFilter): string { + if (!filter.key || !filter.value) { + return query; + } + + filter = { + ...filter, + // Type is defined as string, but it can be a number. + value: filter.value.toString(), + }; + + const equalityFilters = ['=', '!=']; + if (equalityFilters.includes(filter.operator)) { + return addFilterToQuery(query, filter.key, filter.value, filter.operator === '=' ? '' : '-'); + } + /** + * Keys and values in ad hoc filters may contain characters such as + * colons, which needs to be escaped. + */ + const key = escapeFilter(filter.key); + const value = escapeFilterValue(filter.value); + let addHocFilter = ''; + switch (filter.operator) { + case '=~': + addHocFilter = `${key}:/${value}/`; + break; + case '!~': + addHocFilter = `-${key}:/${value}/`; + break; + case '>': + addHocFilter = `${key}:>${value}`; + break; + case '<': + addHocFilter = `${key}:<${value}`; + break; + } + return concatenate(query, addHocFilter); } /** diff --git a/public/app/plugins/datasource/grafana-testdata-datasource/package.json b/public/app/plugins/datasource/grafana-testdata-datasource/package.json index 27d9cc34a1488..45c8bbf60ba2a 100644 --- a/public/app/plugins/datasource/grafana-testdata-datasource/package.json +++ b/public/app/plugins/datasource/grafana-testdata-datasource/package.json @@ -28,7 +28,7 @@ "@types/testing-library__jest-dom": "5.14.8", "swc-loader": "0.2.3", "ts-node": "10.9.1", - "webpack": "5.88.1" + "webpack": "5.89.0" }, "peerDependencies": { "@grafana/runtime": "*" diff --git a/public/app/plugins/datasource/prometheus/querybuilder/components/PromQueryBuilder.tsx b/public/app/plugins/datasource/prometheus/querybuilder/components/PromQueryBuilder.tsx index 49183bf79402b..fbb17cd8d9f6e 100644 --- a/public/app/plugins/datasource/prometheus/querybuilder/components/PromQueryBuilder.tsx +++ b/public/app/plugins/datasource/prometheus/querybuilder/components/PromQueryBuilder.tsx @@ -1,7 +1,10 @@ +import { css } from '@emotion/css'; import React, { useState } from 'react'; import { DataSourceApi, PanelData } from '@grafana/data'; import { EditorRow } from '@grafana/experimental'; +import { config } from '@grafana/runtime'; +import { Button, Drawer } from '@grafana/ui'; import { PrometheusDatasource } from '../../datasource'; import promqlGrammar from '../../promql'; @@ -19,6 +22,8 @@ import { PromVisualQuery } from '../types'; import { MetricsLabelsSection } from './MetricsLabelsSection'; import { NestedQueryList } from './NestedQueryList'; import { EXPLAIN_LABEL_FILTER_CONTENT } from './PromQueryBuilderExplained'; +import { PromQail } from './promQail/PromQail'; +import AI_Logo_color from './promQail/resources/AI_Logo_color.svg'; export interface Props { query: PromVisualQuery; @@ -29,9 +34,14 @@ export interface Props { showExplain: boolean; } +// initial commit for hackathon-2023-08-promqail +// AI/ML + Prometheus +const prometheusPromQAIL = config.featureToggles.prometheusPromQAIL; + export const PromQueryBuilder = React.memo((props) => { const { datasource, query, onChange, onRunQuery, data, showExplain } = props; const [highlightedOp, setHighlightedOp] = useState(); + const [showDrawer, setShowDrawer] = useState(false); const lang = { grammar: promqlGrammar, name: 'promql' }; @@ -39,6 +49,16 @@ export const PromQueryBuilder = React.memo((props) => { return ( <> + {prometheusPromQAIL && showDrawer && ( + setShowDrawer(false)}> + setShowDrawer(false)} + onChange={onChange} + datasource={datasource} + /> + + )} @@ -72,6 +92,25 @@ export const PromQueryBuilder = React.memo((props) => { onRunQuery={onRunQuery} highlightedOp={highlightedOp} /> + {prometheusPromQAIL && ( +
+ +
+ )} datasource={datasource} query={query} diff --git a/public/app/plugins/datasource/prometheus/querybuilder/components/promQail/PromQail.test.tsx b/public/app/plugins/datasource/prometheus/querybuilder/components/promQail/PromQail.test.tsx new file mode 100644 index 0000000000000..47d2c09fe348e --- /dev/null +++ b/public/app/plugins/datasource/prometheus/querybuilder/components/promQail/PromQail.test.tsx @@ -0,0 +1,149 @@ +import { render, screen, waitFor } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; +import React from 'react'; + +import { DataSourceInstanceSettings, DataSourcePluginMeta } from '@grafana/data'; + +import { PrometheusDatasource } from '../../../datasource'; +import PromQlLanguageProvider from '../../../language_provider'; +import { EmptyLanguageProviderMock } from '../../../language_provider.mock'; +import { PromOptions } from '../../../types'; +import { PromVisualQuery } from '../../types'; + +import { PromQail, testIds } from './PromQail'; + +// don't care about interaction tracking in our unit tests +jest.mock('@grafana/runtime', () => ({ + ...jest.requireActual('@grafana/runtime'), + reportInteraction: jest.fn(), +})); + +window.HTMLElement.prototype.scrollIntoView = jest.fn(); + +describe('PromQail', () => { + it('renders the drawer', async () => { + setup(defaultQuery); + await waitFor(() => { + expect(screen.getByText('Query advisor')).toBeInTheDocument(); + }); + }); + + it('shows an option to not show security warning', async () => { + setup(defaultQuery); + await waitFor(() => { + expect(screen.getByText("Don't show this message again")).toBeInTheDocument(); + }); + }); + + it('shows selected metric and asks for a prompt', async () => { + setup(defaultQuery); + + clickSecurityButton(); + + await waitFor(() => { + expect(screen.getByText('random_metric')).toBeInTheDocument(); + expect(screen.getByText('Do you know what you want to query?')).toBeInTheDocument(); + }); + }); + + it('displays a prompt when the user knows what they want to query', async () => { + setup(defaultQuery); + + clickSecurityButton(); + + await waitFor(() => { + expect(screen.getByText('random_metric')).toBeInTheDocument(); + expect(screen.getByText('Do you know what you want to query?')).toBeInTheDocument(); + }); + + const aiPrompt = screen.getByTestId(testIds.clickForAi); + + userEvent.click(aiPrompt); + + await waitFor(() => { + expect(screen.getByText('What kind of data do you want to see with your metric?')).toBeInTheDocument(); + }); + }); + + it('does not display a prompt when choosing historical', async () => { + setup(defaultQuery); + + clickSecurityButton(); + + await waitFor(() => { + expect(screen.getByText('random_metric')).toBeInTheDocument(); + expect(screen.getByText('Do you know what you want to query?')).toBeInTheDocument(); + }); + + const historicalPrompt = screen.getByTestId(testIds.clickForHistorical); + + userEvent.click(historicalPrompt); + + await waitFor(() => { + expect(screen.queryByText('What kind of data do you want to see with your metric?')).toBeNull(); + }); + }); +}); + +const defaultQuery: PromVisualQuery = { + metric: 'random_metric', + labels: [], + operations: [], +}; + +function createDatasource(withLabels?: boolean) { + const languageProvider = new EmptyLanguageProviderMock() as unknown as PromQlLanguageProvider; + + languageProvider.metricsMetadata = { + 'all-metrics': { + type: 'all-metrics-type', + help: 'all-metrics-help', + }, + a: { + type: 'counter', + help: 'a-metric-help', + }, + a_bucket: { + type: 'counter', + help: 'for functions', + }, + }; + + const datasource = new PrometheusDatasource( + { + url: '', + jsonData: {}, + meta: {} as DataSourcePluginMeta, + } as DataSourceInstanceSettings, + undefined, + undefined, + languageProvider + ); + return datasource; +} + +function createProps(query: PromVisualQuery, datasource: PrometheusDatasource) { + return { + datasource, + onChange: jest.fn(), + closeDrawer: jest.fn(), + query: query, + }; +} + +function setup(query: PromVisualQuery) { + const withLabels: boolean = query.labels.length > 0; + const datasource = createDatasource(withLabels); + const props = createProps(query, datasource); + + // render the drawer only + const { container } = render(); + + return container; +} + +function clickSecurityButton() { + const securityInfoButton = screen.getByTestId(testIds.securityInfoButton); + + userEvent.click(securityInfoButton); +} diff --git a/public/app/plugins/datasource/prometheus/querybuilder/components/promQail/PromQail.tsx b/public/app/plugins/datasource/prometheus/querybuilder/components/promQail/PromQail.tsx new file mode 100644 index 0000000000000..cae32b6baf1d2 --- /dev/null +++ b/public/app/plugins/datasource/prometheus/querybuilder/components/promQail/PromQail.tsx @@ -0,0 +1,534 @@ +import { css, cx } from '@emotion/css'; +import React, { useEffect, useReducer, useRef, useState } from 'react'; + +import { GrafanaTheme2 } from '@grafana/data'; +import { Button, Checkbox, Input, Spinner, useTheme2 } from '@grafana/ui'; +import store from 'app/core/store'; + +import { PrometheusDatasource } from '../../../datasource'; +import { PromVisualQuery } from '../../types'; + +import { QuerySuggestionContainer } from './QuerySuggestionContainer'; +// @ts-ignore until we can get these added for icons +import AI_Logo_color from './resources/AI_Logo_color.svg'; +import { promQailExplain, promQailSuggest } from './state/helpers'; +import { initialState, stateSlice } from './state/state'; +import { Interaction, SuggestionType } from './types'; + +// actions to update the state +const { showStartingMessage, indicateCheckbox, addInteraction, updateInteraction } = stateSlice.actions; + +export type PromQailProps = { + query: PromVisualQuery; + closeDrawer: () => void; + onChange: (query: PromVisualQuery) => void; + datasource: PrometheusDatasource; +}; + +const SKIP_STARTING_MESSAGE = 'SKIP_STARTING_MESSAGE'; + +export const PromQail = (props: PromQailProps) => { + const { query, closeDrawer, onChange, datasource } = props; + const skipStartingMessage = store.getBool(SKIP_STARTING_MESSAGE, false); + + const [state, dispatch] = useReducer(stateSlice.reducer, initialState(query, !skipStartingMessage)); + + const [labelNames, setLabelNames] = useState([]); + + const suggestions = state.interactions.reduce((acc, int) => acc + int.suggestions.length, 0); + + const responsesEndRef = useRef(null); + + const scrollToBottom = () => { + if (responsesEndRef) { + // @ts-ignore for React.MutableRefObject + responsesEndRef?.current?.scrollIntoView({ behavior: 'smooth' }); + } + }; + + useEffect(() => { + // only scroll when an interaction has been added or the suggestions have been updated + scrollToBottom(); + }, [state.interactions.length, suggestions]); + + useEffect(() => { + const fetchLabels = async () => { + let labelsIndex: Record; + if (datasource.hasLabelsMatchAPISupport()) { + labelsIndex = await datasource.languageProvider.fetchSeriesLabelsMatch(query.metric); + } else { + labelsIndex = await datasource.languageProvider.fetchSeriesLabels(query.metric); + } + setLabelNames(Object.keys(labelsIndex)); + }; + fetchLabels(); + }, [query, datasource]); + + const theme = useTheme2(); + const styles = getStyles(theme); + + return ( +
+ {/* Query Advisor */} + {/* header */} +
+

Query advisor

+
+ {/* Starting message */} +
+
+ AI logo color Assistant +
+ {state.showStartingMessage ? ( + <> +
+ This assistant can suggest queries based on your use case and the metric you want to query +
+
+ The assistant will connect to OpenAI using your API key. The following information will be sent to OpenAI: +
+
+
    +
  • Metrics
  • +
  • Labels
  • +
  • Metrics metadata
  • +
+
+
Check with OpenAI to understand how your data is being used.
+
+ AI-suggested queries may not always be the right one for your use case. Always take a moment to understand + the queries before using them. +
+ + {/* don't show this message again, store in localstorage */} +
+ { + const val = store.getBool(SKIP_STARTING_MESSAGE, false); + store.set(SKIP_STARTING_MESSAGE, !val); + dispatch(indicateCheckbox(!val)); + }} + label="Don't show this message again" + /> +
+
+
+ + +
+
+ + ) : ( +
+ {/* MAKE THIS TABLE RESPONSIVE */} + {/* FIT SUPER LONG METRICS AND LABELS IN HERE */} +
Here is the metric you have selected:
+
+
+ + + + + + + + {state.query.labels.map((label, idx) => { + const text = idx === 0 ? 'labels' : ''; + return ( + + + + + + ); + })} + +
metric{state.query.metric} + +
{text}{`${label.label}${label.op}${label.value}`}
+
+
+ + {/* Ask if you know what you want to query? */} + {!state.askForQueryHelp && state.interactions.length === 0 && ( + <> +
Do you know what you want to query?
+
+
+ + +
+
+ + )} + + {state.interactions.map((interaction: Interaction, idx: number) => { + return ( +
+ {interaction.suggestionType === SuggestionType.AI ? ( + <> +
What kind of data do you want to see with your metric?
+
+
You do not need to enter in a metric or a label again in the prompt.
+
Example: I want to monitor request latency, not errors.
+
+
+ 0} + onChange={(e) => { + const prompt = e.currentTarget.value; + + const payload = { + idx: idx, + interaction: { ...interaction, prompt }, + }; + + dispatch(updateInteraction(payload)); + }} + /> +
+ {interaction.suggestions.length === 0 ? ( + interaction.isLoading ? ( + <> +
+ Waiting for OpenAI +
+ + ) : ( + <> +
+
+ + + +
+
+ + ) + ) : ( + // LIST OF SUGGESTED QUERIES FROM AI + { + const isLoading = false; + const suggestionType = SuggestionType.AI; + dispatch(addInteraction({ suggestionType, isLoading })); + }} + queryExplain={(suggIdx: number) => + interaction.suggestions[suggIdx].explanation === '' + ? promQailExplain(dispatch, idx, query, interaction, suggIdx, datasource) + : interaction.suggestions[suggIdx].explanation + } + onChange={onChange} + prompt={interaction.prompt ?? ''} + /> + )} + + ) : // HISTORICAL SUGGESTIONS + interaction.isLoading ? ( + <> +
+ Waiting for OpenAI +
+ + ) : ( + // LIST OF SUGGESTED QUERIES FROM HISTORICAL DATA + { + const isLoading = false; + const suggestionType = SuggestionType.AI; + dispatch(addInteraction({ suggestionType, isLoading })); + }} + queryExplain={(suggIdx: number) => + interaction.suggestions[suggIdx].explanation === '' + ? promQailExplain(dispatch, idx, query, interaction, suggIdx, datasource) + : interaction.suggestions[suggIdx].explanation + } + onChange={onChange} + prompt={interaction.prompt ?? ''} + /> + )} +
+ ); + })} +
+ )} +
+
+
+ ); +}; + +export const getStyles = (theme: GrafanaTheme2) => { + return { + sectionPadding: css({ + padding: '20px', + }), + header: css({ + display: 'flex', + + button: { + marginLeft: 'auto', + }, + }), + iconSection: css({ + padding: '0 0 10px 0', + color: `${theme.colors.text.secondary}`, + + img: { + paddingRight: '4px', + }, + }), + rightButtonsWrapper: css({ + display: 'flex', + }), + rightButtons: css({ + marginLeft: 'auto', + }), + leftButton: css({ + marginRight: '10px', + }), + dataList: css({ + padding: '0px 28px 28px 28px', + }), + textPadding: css({ + paddingBottom: '12px', + }), + containerPadding: css({ + padding: '28px', + }), + infoContainer: css({ + border: `${theme.colors.border.strong}`, + padding: '16px', + backgroundColor: `${theme.colors.background.secondary}`, + borderRadius: `8px`, + borderBottomLeftRadius: 0, + }), + infoContainerWrapper: css({ + paddingBottom: '24px', + }), + metricTable: css({ + width: '100%', + }), + metricTableName: css({ + width: '15%', + }), + metricTableValue: css({ + fontFamily: `${theme.typography.fontFamilyMonospace}`, + fontSize: `${theme.typography.bodySmall.fontSize}`, + overflow: 'scroll', + textWrap: 'nowrap', + maxWidth: '150px', + width: '60%', + maskImage: `linear-gradient(to right, rgba(0, 0, 0, 1) 90%, rgba(0, 0, 0, 0))`, + }), + metricTableButton: css({ + float: 'right', + }), + queryQuestion: css({ + textAlign: 'end', + padding: '8px 0', + }), + secondaryText: css({ + color: `${theme.colors.text.secondary}`, + }), + loadingMessageContainer: css({ + border: `${theme.colors.border.strong}`, + padding: `16px`, + backgroundColor: `${theme.colors.background.secondary}`, + marginBottom: `20px`, + borderRadius: `8px`, + color: `${theme.colors.text.secondary}`, + fontStyle: 'italic', + }), + floatRight: css({ + float: 'right', + }), + codeText: css({ + fontFamily: `${theme.typography.fontFamilyMonospace}`, + fontSize: `${theme.typography.bodySmall.fontSize}`, + }), + bodySmall: css({ + fontSize: `${theme.typography.bodySmall.fontSize}`, + }), + explainPadding: css({ + paddingLeft: '26px', + }), + bottomMargin: css({ + marginBottom: '20px', + }), + topPadding: css({ + paddingTop: '22px', + }), + doc: css({ + textDecoration: 'underline', + }), + afterButtons: css({ + display: 'flex', + justifyContent: 'flex-end', + }), + feedbackStyle: css({ + margin: 0, + textAlign: 'right', + paddingTop: '22px', + paddingBottom: '22px', + }), + nextInteractionHeight: css({ + height: '88px', + }), + center: css({ + display: 'flex', + alignItems: 'center', + justifyContent: 'center', + }), + inputPadding: css({ + paddingBottom: '24px', + }), + querySuggestion: css({ + display: 'flex', + flexWrap: 'nowrap', + }), + longCode: css({ + width: '90%', + textWrap: 'nowrap', + overflow: 'scroll', + maskImage: `linear-gradient(to right, rgba(0, 0, 0, 1) 90%, rgba(0, 0, 0, 0))`, + + div: { + display: 'inline-block', + }, + }), + useButton: css({ + marginLeft: 'auto', + }), + suggestionFeedback: css({ + textAlign: 'left', + }), + feedbackQuestion: css({ + display: 'flex', + padding: '8px 0px', + h6: { marginBottom: 0 }, + i: { + marginTop: '1px', + }, + }), + explationTextInput: css({ + paddingLeft: '24px', + }), + submitFeedback: css({ + padding: '16px 0', + }), + }; +}; + +export const testIds = { + promQail: 'prom-qail', + securityInfoButton: 'security-info-button', + clickForHistorical: 'click-for-historical', + clickForAi: 'click-for-ai', + submitPrompt: 'submit-prompt', + refinePrompt: 'refine-prompt', +}; diff --git a/public/app/plugins/datasource/prometheus/querybuilder/components/promQail/QuerySuggestionContainer.tsx b/public/app/plugins/datasource/prometheus/querybuilder/components/promQail/QuerySuggestionContainer.tsx new file mode 100644 index 0000000000000..5eb48cb5a8b82 --- /dev/null +++ b/public/app/plugins/datasource/prometheus/querybuilder/components/promQail/QuerySuggestionContainer.tsx @@ -0,0 +1,95 @@ +import { cx } from '@emotion/css'; +import React, { useState } from 'react'; + +import { Button, useTheme2 } from '@grafana/ui'; + +import { PromVisualQuery } from '../../types'; + +import { getStyles, testIds } from './PromQail'; +import { QuerySuggestionItem } from './QuerySuggestionItem'; +import { QuerySuggestion, SuggestionType } from './types'; + +export type Props = { + querySuggestions: QuerySuggestion[]; + suggestionType: SuggestionType; + closeDrawer: () => void; + nextInteraction: () => void; + queryExplain: (idx: number) => void; + onChange: (query: PromVisualQuery) => void; + prompt: string; +}; + +export function QuerySuggestionContainer(props: Props) { + const { suggestionType, querySuggestions, closeDrawer, nextInteraction, queryExplain, onChange, prompt } = props; + + const [hasNextInteraction, updateHasNextInteraction] = useState(false); + + const theme = useTheme2(); + const styles = getStyles(theme); + + let text, secondaryText, refineText; + + if (suggestionType === SuggestionType.Historical) { + text = `Here are ${querySuggestions.length} query suggestions:`; + secondaryText = 'These queries are based off of historical data (top used queries) for your metric.'; + refineText = 'I want to write a prompt'; + } else if (suggestionType === SuggestionType.AI) { + text = text = 'Here is your query suggestion:'; + secondaryText = + 'This query is based off of natural language descriptions of the most commonly used PromQL queries.'; + refineText = 'Refine prompt'; + } + + return ( + <> +
{text}
+
{secondaryText}
+
+
+ {querySuggestions.map((qs: QuerySuggestion, idx: number) => { + return ( + { + return acc + '$$' + qs.query; + }, '')} + prompt={prompt ?? ''} + /> + ); + })} +
+
+ {!hasNextInteraction && ( +
+
+ +
+
+ +
+
+ )} + + ); +} diff --git a/public/app/plugins/datasource/prometheus/querybuilder/components/promQail/QuerySuggestionItem.tsx b/public/app/plugins/datasource/prometheus/querybuilder/components/promQail/QuerySuggestionItem.tsx new file mode 100644 index 0000000000000..aa91d00b15eb3 --- /dev/null +++ b/public/app/plugins/datasource/prometheus/querybuilder/components/promQail/QuerySuggestionItem.tsx @@ -0,0 +1,318 @@ +import { cx } from '@emotion/css'; +import React, { FormEvent, useState } from 'react'; + +import { SelectableValue } from '@grafana/data'; +import { reportInteraction } from '@grafana/runtime'; +import { Button, RadioButtonList, Spinner, TextArea, Toggletip, useTheme2 } from '@grafana/ui'; + +import { buildVisualQueryFromString } from '../../parsing'; +import { PromVisualQuery } from '../../types'; + +import { getStyles } from './PromQail'; +import { QuerySuggestion } from './types'; + +export type Props = { + querySuggestion: QuerySuggestion; + order: number; + queryExplain: (idx: number) => void; + historical: boolean; + onChange: (query: PromVisualQuery) => void; + closeDrawer: () => void; + last: boolean; + prompt: string; + allSuggestions: string | undefined; +}; + +const suggestionOptions: SelectableValue[] = [ + { label: 'Yes', value: 'yes' }, + { label: 'No', value: 'no' }, +]; +const explationOptions: SelectableValue[] = [ + { label: 'Too vague', value: 'too vague' }, + { label: 'Too technical', value: 'too technical' }, + { label: 'Inaccurate', value: 'inaccurate' }, + { label: 'Other', value: 'other' }, +]; + +export function QuerySuggestionItem(props: Props) { + const { querySuggestion, order, queryExplain, historical, onChange, closeDrawer, last, allSuggestions, prompt } = + props; + const [showExp, updShowExp] = useState(false); + + const [gaveExplanationFeedback, updateGaveExplanationFeedback] = useState(false); + const [gaveSuggestionFeedback, updateGaveSuggestionFeedback] = useState(false); + + const [suggestionFeedback, setSuggestionFeedback] = useState({ + radioInput: '', + text: '', + }); + + const [explanationFeedback, setExplanationFeedback] = useState({ + radioInput: '', + text: '', + }); + + const theme = useTheme2(); + const styles = getStyles(theme); + + const { query, explanation } = querySuggestion; + + const feedbackToggleTip = (type: string) => { + const updateRadioFeedback = (value: string) => { + if (type === 'explanation') { + setExplanationFeedback({ + ...explanationFeedback, + radioInput: value, + }); + } else { + setSuggestionFeedback({ + ...suggestionFeedback, + radioInput: value, + }); + } + }; + + const updateTextFeedback = (e: FormEvent) => { + if (type === 'explanation') { + setExplanationFeedback({ + ...explanationFeedback, + text: e.currentTarget.value, + }); + } else { + setSuggestionFeedback({ + ...suggestionFeedback, + text: e.currentTarget.value, + }); + } + }; + + const disabledButton = () => + type === 'explanation' ? !explanationFeedback.radioInput : !suggestionFeedback.radioInput; + + const questionOne = + type === 'explanation' ? 'Why was the explanation not helpful?' : 'Were the query suggestions helpful?'; + + return ( +
+
+
+
{questionOne}
+ (Required) +
+ +
+
+ {type !== 'explanation' && ( +
+
How can we improve the query suggestions?
+
+ )} +