@perses-dev/scatter-chart-plugin 0.10.1 → 0.11.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/__mf/css/async/236.85c2cbf6.css +1 -0
  2. package/__mf/font/inter-cyrillic-300-normal.432f2b21.woff +0 -0
  3. package/__mf/font/inter-cyrillic-300-normal.9da91009.woff2 +0 -0
  4. package/__mf/font/inter-cyrillic-400-normal.372704ff.woff2 +0 -0
  5. package/__mf/font/inter-cyrillic-400-normal.a6b6ef6f.woff +0 -0
  6. package/__mf/font/inter-cyrillic-500-normal.7c15bba8.woff2 +0 -0
  7. package/__mf/font/inter-cyrillic-500-normal.b9f8c929.woff +0 -0
  8. package/__mf/font/inter-cyrillic-600-normal.2f42892a.woff2 +0 -0
  9. package/__mf/font/inter-cyrillic-600-normal.c3987adc.woff +0 -0
  10. package/__mf/font/inter-cyrillic-700-normal.93eba3c3.woff +0 -0
  11. package/__mf/font/inter-cyrillic-700-normal.e9e5b2dc.woff2 +0 -0
  12. package/__mf/font/inter-cyrillic-900-normal.f285bd7a.woff2 +0 -0
  13. package/__mf/font/inter-cyrillic-900-normal.ffbd8a3a.woff +0 -0
  14. package/__mf/font/inter-cyrillic-ext-300-normal.95bb9038.woff2 +0 -0
  15. package/__mf/font/inter-cyrillic-ext-300-normal.cfc143a9.woff +0 -0
  16. package/__mf/font/inter-cyrillic-ext-400-normal.2a31c04b.woff +0 -0
  17. package/__mf/font/inter-cyrillic-ext-400-normal.f572b170.woff2 +0 -0
  18. package/__mf/font/inter-cyrillic-ext-500-normal.5a6bb1da.woff +0 -0
  19. package/__mf/font/inter-cyrillic-ext-500-normal.fe0d9b14.woff2 +0 -0
  20. package/__mf/font/inter-cyrillic-ext-600-normal.ecbdecad.woff +0 -0
  21. package/__mf/font/inter-cyrillic-ext-600-normal.f7b3c15b.woff2 +0 -0
  22. package/__mf/font/inter-cyrillic-ext-700-normal.4b4022a6.woff +0 -0
  23. package/__mf/font/inter-cyrillic-ext-700-normal.74b516d2.woff2 +0 -0
  24. package/__mf/font/inter-cyrillic-ext-900-normal.9970ddb5.woff +0 -0
  25. package/__mf/font/inter-cyrillic-ext-900-normal.a0d59adc.woff2 +0 -0
  26. package/__mf/font/inter-greek-300-normal.0d7be683.woff2 +0 -0
  27. package/__mf/font/inter-greek-300-normal.8f0b988e.woff +0 -0
  28. package/__mf/font/inter-greek-400-normal.cc58c11b.woff +0 -0
  29. package/__mf/font/inter-greek-400-normal.d7020e3c.woff2 +0 -0
  30. package/__mf/font/inter-greek-500-normal.d9a33207.woff +0 -0
  31. package/__mf/font/inter-greek-500-normal.f41f43db.woff2 +0 -0
  32. package/__mf/font/inter-greek-600-normal.4ec0c1c1.woff +0 -0
  33. package/__mf/font/inter-greek-600-normal.cc532937.woff2 +0 -0
  34. package/__mf/font/inter-greek-700-normal.5ec6c758.woff +0 -0
  35. package/__mf/font/inter-greek-700-normal.97f0eeeb.woff2 +0 -0
  36. package/__mf/font/inter-greek-900-normal.46b66369.woff2 +0 -0
  37. package/__mf/font/inter-greek-900-normal.9ae3a3c5.woff +0 -0
  38. package/__mf/font/inter-greek-ext-300-normal.10247a66.woff2 +0 -0
  39. package/__mf/font/inter-greek-ext-300-normal.4668e5cb.woff +0 -0
  40. package/__mf/font/inter-greek-ext-400-normal.4ce1df5d.woff2 +0 -0
  41. package/__mf/font/inter-greek-ext-400-normal.88ede1ea.woff +0 -0
  42. package/__mf/font/inter-greek-ext-500-normal.7a4aa726.woff +0 -0
  43. package/__mf/font/inter-greek-ext-500-normal.cbd51e2d.woff2 +0 -0
  44. package/__mf/font/inter-greek-ext-600-normal.089a95ee.woff +0 -0
  45. package/__mf/font/inter-greek-ext-600-normal.1f33d317.woff2 +0 -0
  46. package/__mf/font/inter-greek-ext-700-normal.31f1075d.woff +0 -0
  47. package/__mf/font/inter-greek-ext-700-normal.827cd618.woff2 +0 -0
  48. package/__mf/font/inter-greek-ext-900-normal.531bcee7.woff +0 -0
  49. package/__mf/font/inter-greek-ext-900-normal.8a9b36b9.woff2 +0 -0
  50. package/__mf/font/inter-latin-300-normal.15fb600d.woff2 +0 -0
  51. package/__mf/font/inter-latin-300-normal.6f95f590.woff +0 -0
  52. package/__mf/font/inter-latin-400-normal.2c7a775c.woff +0 -0
  53. package/__mf/font/inter-latin-400-normal.ef6d3f52.woff2 +0 -0
  54. package/__mf/font/inter-latin-500-normal.b7b43ace.woff2 +0 -0
  55. package/__mf/font/inter-latin-500-normal.cb4c8ceb.woff +0 -0
  56. package/__mf/font/inter-latin-600-normal.8fb1a964.woff2 +0 -0
  57. package/__mf/font/inter-latin-600-normal.ce0f5f43.woff +0 -0
  58. package/__mf/font/inter-latin-700-normal.953b7aa5.woff2 +0 -0
  59. package/__mf/font/inter-latin-700-normal.9c21d4dc.woff +0 -0
  60. package/__mf/font/inter-latin-900-normal.2a8028ec.woff2 +0 -0
  61. package/__mf/font/inter-latin-900-normal.fa252135.woff +0 -0
  62. package/__mf/font/inter-latin-ext-300-normal.167cc8c9.woff2 +0 -0
  63. package/__mf/font/inter-latin-ext-300-normal.f695be66.woff +0 -0
  64. package/__mf/font/inter-latin-ext-400-normal.32a25442.woff2 +0 -0
  65. package/__mf/font/inter-latin-ext-400-normal.4edcaace.woff +0 -0
  66. package/__mf/font/inter-latin-ext-500-normal.a19a84a6.woff +0 -0
  67. package/__mf/font/inter-latin-ext-500-normal.d9b491de.woff2 +0 -0
  68. package/__mf/font/inter-latin-ext-600-normal.38b075d8.woff2 +0 -0
  69. package/__mf/font/inter-latin-ext-600-normal.49faa47a.woff +0 -0
  70. package/__mf/font/inter-latin-ext-700-normal.93534b50.woff +0 -0
  71. package/__mf/font/inter-latin-ext-700-normal.b63daa1a.woff2 +0 -0
  72. package/__mf/font/inter-latin-ext-900-normal.0efdb307.woff +0 -0
  73. package/__mf/font/inter-latin-ext-900-normal.9c0fc2c7.woff2 +0 -0
  74. package/__mf/font/inter-vietnamese-300-normal.aad496d8.woff +0 -0
  75. package/__mf/font/inter-vietnamese-300-normal.ad9ef503.woff2 +0 -0
  76. package/__mf/font/inter-vietnamese-400-normal.a9dd2faf.woff +0 -0
  77. package/__mf/font/inter-vietnamese-400-normal.de4fc44f.woff2 +0 -0
  78. package/__mf/font/inter-vietnamese-500-normal.7c0a695f.woff2 +0 -0
  79. package/__mf/font/inter-vietnamese-500-normal.a3a73b95.woff +0 -0
  80. package/__mf/font/inter-vietnamese-600-normal.9d518599.woff2 +0 -0
  81. package/__mf/font/inter-vietnamese-600-normal.c5ce3fcb.woff +0 -0
  82. package/__mf/font/inter-vietnamese-700-normal.bc68b199.woff +0 -0
  83. package/__mf/font/inter-vietnamese-700-normal.faf12809.woff2 +0 -0
  84. package/__mf/font/inter-vietnamese-900-normal.2b782045.woff +0 -0
  85. package/__mf/font/inter-vietnamese-900-normal.e639b65a.woff2 +0 -0
  86. package/__mf/js/ScatterChart.fe45b695.js +7 -0
  87. package/__mf/js/async/110.34eff628.js +2 -0
  88. package/__mf/js/async/121.9aac62a4.js +2 -0
  89. package/__mf/js/async/177.c9e9e666.js +1 -0
  90. package/__mf/js/async/181.c7d3eed2.js +2 -0
  91. package/__mf/js/async/192.cab71340.js +1 -0
  92. package/__mf/js/async/2.de302c44.js +1 -0
  93. package/__mf/js/async/235.0073450e.js +1 -0
  94. package/__mf/js/async/236.56a42fac.js +7 -0
  95. package/__mf/js/async/{901.23991dc9.js.LICENSE.txt → 236.56a42fac.js.LICENSE.txt} +19 -1
  96. package/__mf/js/async/274.c3bd8521.js +2 -0
  97. package/__mf/js/async/356.49c9bfe6.js +1 -0
  98. package/__mf/js/async/357.9293af22.js +147 -0
  99. package/__mf/js/async/{414.63cec352.js.LICENSE.txt → 357.9293af22.js.LICENSE.txt} +26 -2
  100. package/__mf/js/async/386.c425d184.js +2 -0
  101. package/__mf/js/async/386.c425d184.js.LICENSE.txt +9 -0
  102. package/__mf/js/async/392.2bf509f7.js +2 -0
  103. package/__mf/js/async/470.7b99bd75.js +2 -0
  104. package/__mf/js/async/568.3fc50d63.js +24 -0
  105. package/__mf/js/async/{864.edd45634.js.LICENSE.txt → 568.3fc50d63.js.LICENSE.txt} +5 -3
  106. package/__mf/js/async/587.ccc8bcd4.js +1 -0
  107. package/__mf/js/async/588.4db1394c.js +1 -0
  108. package/__mf/js/async/616.ca779190.js +1 -0
  109. package/__mf/js/async/659.9db1a9e6.js +1 -0
  110. package/__mf/js/async/71.ae02ccc1.js +1 -0
  111. package/__mf/js/async/873.4c238897.js +1 -0
  112. package/__mf/js/async/941.8657a25d.js +2 -0
  113. package/__mf/js/async/941.8657a25d.js.LICENSE.txt +9 -0
  114. package/__mf/js/async/968.9c716b09.js +1 -0
  115. package/__mf/js/async/978.6ae2caad.js +1 -0
  116. package/__mf/js/async/__federation_expose_ScatterChart.0112e08c.js +2 -0
  117. package/__mf/js/async/__federation_expose_ScatterChart.0112e08c.js.LICENSE.txt +9 -0
  118. package/__mf/js/async/lib-router.3e810b61.js +2 -0
  119. package/__mf/js/main.97fd01ad.js +7 -0
  120. package/lib/ScatterChartPanel.d.ts +1 -1
  121. package/lib/ScatterChartPanel.d.ts.map +1 -1
  122. package/lib/ScatterChartPanel.js.map +1 -1
  123. package/lib/Scatterplot.d.ts.map +1 -1
  124. package/lib/Scatterplot.js +1 -2
  125. package/lib/Scatterplot.js.map +1 -1
  126. package/lib/cjs/Scatterplot.js +2 -3
  127. package/lib/mock-trace-data.d.ts +1 -1
  128. package/lib/mock-trace-data.js.map +1 -1
  129. package/lib/scatter-chart-model.d.ts +1 -1
  130. package/lib/scatter-chart-model.d.ts.map +1 -1
  131. package/lib/scatter-chart-model.js.map +1 -1
  132. package/mf-manifest.json +59 -49
  133. package/mf-stats.json +70 -49
  134. package/package.json +4 -4
  135. package/__mf/css/async/442.d3010b86.css +0 -1
  136. package/__mf/css/async/61.d3010b86.css +0 -1
  137. package/__mf/css/async/823.d3010b86.css +0 -1
  138. package/__mf/font/lato-all-300-normal.322bdf14.woff +0 -0
  139. package/__mf/font/lato-all-400-normal.63513b00.woff +0 -0
  140. package/__mf/font/lato-all-700-normal.bb27db94.woff +0 -0
  141. package/__mf/font/lato-all-900-normal.a27049a3.woff +0 -0
  142. package/__mf/font/lato-latin-300-normal.c5195215.woff2 +0 -0
  143. package/__mf/font/lato-latin-400-normal.b7ffde23.woff2 +0 -0
  144. package/__mf/font/lato-latin-700-normal.d5eb20bc.woff2 +0 -0
  145. package/__mf/font/lato-latin-900-normal.d884a71c.woff2 +0 -0
  146. package/__mf/font/lato-latin-ext-300-normal.abcc64a9.woff2 +0 -0
  147. package/__mf/font/lato-latin-ext-400-normal.6ebed106.woff2 +0 -0
  148. package/__mf/font/lato-latin-ext-700-normal.8697d1d5.woff2 +0 -0
  149. package/__mf/font/lato-latin-ext-900-normal.20a2b415.woff2 +0 -0
  150. package/__mf/js/ScatterChart.0bee6e96.js +0 -6
  151. package/__mf/js/async/110.81c0553c.js +0 -2
  152. package/__mf/js/async/121.3d737127.js +0 -2
  153. package/__mf/js/async/177.dcbc74ea.js +0 -1
  154. package/__mf/js/async/192.bdbd0050.js +0 -1
  155. package/__mf/js/async/2.90f7755b.js +0 -1
  156. package/__mf/js/async/235.65b39c0b.js +0 -1
  157. package/__mf/js/async/274.a99c9e5e.js +0 -2
  158. package/__mf/js/async/356.b0eaf484.js +0 -1
  159. package/__mf/js/async/392.3493f5ea.js +0 -2
  160. package/__mf/js/async/414.63cec352.js +0 -2
  161. package/__mf/js/async/470.d8f8455f.js +0 -2
  162. package/__mf/js/async/558.9b9bceac.js +0 -1
  163. package/__mf/js/async/587.7d986455.js +0 -1
  164. package/__mf/js/async/588.ca097377.js +0 -1
  165. package/__mf/js/async/616.f69792d9.js +0 -1
  166. package/__mf/js/async/634.0be66d7c.js +0 -24
  167. package/__mf/js/async/634.0be66d7c.js.LICENSE.txt +0 -35
  168. package/__mf/js/async/659.1b8b8513.js +0 -1
  169. package/__mf/js/async/71.1f30dc06.js +0 -1
  170. package/__mf/js/async/864.edd45634.js +0 -147
  171. package/__mf/js/async/873.5e2131d5.js +0 -1
  172. package/__mf/js/async/901.23991dc9.js +0 -7
  173. package/__mf/js/async/941.541b64f3.js +0 -2
  174. package/__mf/js/async/968.fe693cc9.js +0 -1
  175. package/__mf/js/async/978.a16d507f.js +0 -1
  176. package/__mf/js/async/__federation_expose_ScatterChart.7325d09d.js +0 -1
  177. package/__mf/js/async/lib-router.67c25249.js +0 -2
  178. package/__mf/js/main.6137b11d.js +0 -6
  179. /package/__mf/js/async/{110.81c0553c.js.LICENSE.txt → 110.34eff628.js.LICENSE.txt} +0 -0
  180. /package/__mf/js/async/{121.3d737127.js.LICENSE.txt → 121.9aac62a4.js.LICENSE.txt} +0 -0
  181. /package/__mf/js/async/{941.541b64f3.js.LICENSE.txt → 181.c7d3eed2.js.LICENSE.txt} +0 -0
  182. /package/__mf/js/async/{274.a99c9e5e.js.LICENSE.txt → 274.c3bd8521.js.LICENSE.txt} +0 -0
  183. /package/__mf/js/async/{392.3493f5ea.js.LICENSE.txt → 392.2bf509f7.js.LICENSE.txt} +0 -0
  184. /package/__mf/js/async/{470.d8f8455f.js.LICENSE.txt → 470.7b99bd75.js.LICENSE.txt} +0 -0
  185. /package/__mf/js/async/{lib-router.67c25249.js.LICENSE.txt → lib-router.3e810b61.js.LICENSE.txt} +0 -0
@@ -1,6 +1,6 @@
1
1
  import { PanelProps } from '@perses-dev/plugin-system';
2
2
  import { ReactElement } from 'react';
3
- import { TraceData, TraceSearchResult } from '@perses-dev/core';
3
+ import { TraceData, TraceSearchResult } from '@perses-dev/spec';
4
4
  import { ScatterChartOptions } from './scatter-chart-model';
5
5
  export interface EChartTraceValue extends Omit<TraceSearchResult, 'startTimeUnixMs' | 'serviceStats'> {
6
6
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"ScatterChartPanel.d.ts","sourceRoot":"","sources":["../../src/ScatterChartPanel.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAW,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAIhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,cAAc,CAAC;IACnG,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;AAKhF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,YAAY,GAAG,IAAI,CA+GpF;AAGD,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1B,MAAM,CAYR"}
1
+ {"version":3,"file":"ScatterChartPanel.d.ts","sourceRoot":"","sources":["../../src/ScatterChartPanel.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAW,MAAM,OAAO,CAAC;AAG9C,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,cAAc,CAAC;IACnG,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;AAKhF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,YAAY,GAAG,IAAI,CA+GpF;AAGD,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1B,MAAM,CAYR"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/ScatterChartPanel.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { PanelProps } from '@perses-dev/plugin-system';\nimport { ReactElement, useMemo } from 'react';\nimport { TraceData, TraceSearchResult } from '@perses-dev/core';\nimport { EChartsOption, SeriesOption } from 'echarts';\nimport { NoDataOverlay, useChartsTheme } from '@perses-dev/components';\nimport { Scatterplot } from './Scatterplot';\nimport { ScatterChartOptions } from './scatter-chart-model';\n\nexport interface EChartTraceValue extends Omit<TraceSearchResult, 'startTimeUnixMs' | 'serviceStats'> {\n name: string;\n linkVariables: Record<string, string>;\n startTime: Date;\n spanCount: number;\n errorCount: number;\n}\n\nexport type ScatterChartPanelProps = PanelProps<ScatterChartOptions, TraceData>;\n\n/** default size range of the circles diameter */\nconst DEFAULT_SIZE_RANGE: [number, number] = [6, 20];\n\n/**\n * ScatterChartPanel receives data from the DataQueriesProvider and transforms it\n * into a `dataset` object that Apache ECharts can consume. Additionally,\n * data formatting is also dictated in this component. Formatting includes\n * datapoint size and color.\n *\n * Documentation for data structures accepted by Apache ECharts:\n * https://echarts.apache.org/handbook/en/concepts/dataset\n *\n * Examples for scatter chart formatting in Apache ECharts:\n * https://echarts.apache.org/examples/en/index.html#chart-type-scatter\n *\n * @returns a `ScatterPlot` component that contains an EChart which will handle\n * visualization of the data.\n */\nexport function ScatterChartPanel(props: ScatterChartPanelProps): ReactElement | null {\n const { spec, contentDimensions, queryResults: traceResults } = props;\n const chartsTheme = useChartsTheme();\n const defaultColor = chartsTheme.thresholds.defaultColor || 'blue';\n const sizeRange = spec.sizeRange || DEFAULT_SIZE_RANGE;\n\n // Generate dataset\n // Transform Tempo API response to fit 'dataset' structure from Apache ECharts\n // https://echarts.apache.org/handbook/en/concepts/dataset\n const { dataset, minSpanCount, maxSpanCount } = useMemo(() => {\n const dataset = [];\n let minSpanCount: number | undefined;\n let maxSpanCount: number | undefined;\n for (const result of traceResults) {\n if (result.data.searchResult === undefined) continue;\n const dataSeries = result.data.searchResult.map((trace) => {\n let spanCount = 0;\n let errorCount = 0;\n for (const stats of Object.values(trace.serviceStats)) {\n spanCount += stats.spanCount;\n errorCount += stats.errorCount ?? 0;\n }\n\n if (minSpanCount === undefined || spanCount < minSpanCount) {\n minSpanCount = spanCount;\n }\n if (maxSpanCount === undefined || spanCount > maxSpanCount) {\n maxSpanCount = spanCount;\n }\n\n const pluginSpec = result.definition.spec.plugin.spec as { datasource?: { name?: string } } | undefined;\n const newTraceValue: EChartTraceValue = {\n ...trace,\n linkVariables: {\n datasourceName: pluginSpec?.datasource?.name ?? '',\n traceId: trace.traceId,\n },\n name: `${trace.rootServiceName}: ${trace.rootTraceName}`,\n startTime: new Date(trace.startTimeUnixMs), // convert unix epoch time to Date\n spanCount,\n errorCount,\n };\n return newTraceValue;\n });\n dataset.push({\n source: dataSeries,\n });\n }\n return { dataset, minSpanCount: minSpanCount ?? 0, maxSpanCount: maxSpanCount ?? 0 };\n }, [traceResults]);\n\n // Formatting for the dataset\n // 1. Map x,y coordinates\n // 2. Datapoint size corresponds to the number of spans in a trace\n // 3. Color datapoint red if the trace contains an error\n const series = useMemo(() => {\n const seriesTemplate2: SeriesOption = {\n type: 'scatter',\n encode: {\n // Map to x-axis.\n x: 'startTime',\n // Map to y-axis.\n y: 'durationMs',\n },\n symbolSize: function (data) {\n // returns the diameter of the circles\n return getSymbolSize(data.spanCount, [minSpanCount, maxSpanCount], sizeRange);\n },\n itemStyle: {\n color: function (params) {\n const traceData: EChartTraceValue = params.data as EChartTraceValue;\n // If the trace contains an error, color the datapoint in red\n if (traceData.errorCount > 0) {\n return 'red';\n }\n // Else return default color\n return defaultColor;\n },\n },\n };\n\n // Each data set needs to have a corresponding series formatting object\n const series = [];\n for (let i = 0; i < dataset.length; i++) {\n series.push({ ...seriesTemplate2, datasetIndex: i });\n }\n return series;\n }, [dataset, defaultColor, minSpanCount, maxSpanCount, sizeRange]);\n\n const tracesFound = traceResults.some((traceData) => (traceData.data?.searchResult ?? []).length > 0);\n if (!tracesFound) {\n return <NoDataOverlay resource=\"traces\" />;\n }\n\n const options: EChartsOption = {\n dataset: dataset,\n series: series,\n };\n\n if (contentDimensions === undefined) return null;\n\n return (\n <div data-testid=\"ScatterChartPanel_ScatterPlot\">\n <Scatterplot\n width={contentDimensions.width}\n height={contentDimensions.height}\n options={options}\n link={spec.link}\n />\n </div>\n );\n}\n\n// exported for tests\nexport function getSymbolSize(\n spanCount: number,\n spanCountRange: [number, number],\n sizeRange: [number, number]\n): number {\n const [minSize, maxSize] = sizeRange;\n const [minSpanCount, maxSpanCount] = spanCountRange;\n\n // catch divison by zero\n if (maxSpanCount - minSpanCount === 0) {\n return maxSize;\n }\n\n // apply linear scale of spanCount from range [minSpanCount,maxSpanCount] to a value from range [minSize,maxSize]\n const rel = (spanCount - minSpanCount) / (maxSpanCount - minSpanCount);\n return minSize + (maxSize - minSize) * rel;\n}\n"],"names":["useMemo","NoDataOverlay","useChartsTheme","Scatterplot","DEFAULT_SIZE_RANGE","ScatterChartPanel","props","spec","contentDimensions","queryResults","traceResults","chartsTheme","defaultColor","thresholds","sizeRange","dataset","minSpanCount","maxSpanCount","result","data","searchResult","undefined","dataSeries","map","trace","spanCount","errorCount","stats","Object","values","serviceStats","pluginSpec","definition","plugin","newTraceValue","linkVariables","datasourceName","datasource","name","traceId","rootServiceName","rootTraceName","startTime","Date","startTimeUnixMs","push","source","series","seriesTemplate2","type","encode","x","y","symbolSize","getSymbolSize","itemStyle","color","params","traceData","i","length","datasetIndex","tracesFound","some","resource","options","div","data-testid","width","height","link","spanCountRange","minSize","maxSize","rel"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/ScatterChartPanel.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { PanelProps } from '@perses-dev/plugin-system';\nimport { ReactElement, useMemo } from 'react';\nimport { EChartsOption, SeriesOption } from 'echarts';\nimport { NoDataOverlay, useChartsTheme } from '@perses-dev/components';\nimport { TraceData, TraceSearchResult } from '@perses-dev/spec';\nimport { Scatterplot } from './Scatterplot';\nimport { ScatterChartOptions } from './scatter-chart-model';\n\nexport interface EChartTraceValue extends Omit<TraceSearchResult, 'startTimeUnixMs' | 'serviceStats'> {\n name: string;\n linkVariables: Record<string, string>;\n startTime: Date;\n spanCount: number;\n errorCount: number;\n}\n\nexport type ScatterChartPanelProps = PanelProps<ScatterChartOptions, TraceData>;\n\n/** default size range of the circles diameter */\nconst DEFAULT_SIZE_RANGE: [number, number] = [6, 20];\n\n/**\n * ScatterChartPanel receives data from the DataQueriesProvider and transforms it\n * into a `dataset` object that Apache ECharts can consume. Additionally,\n * data formatting is also dictated in this component. Formatting includes\n * datapoint size and color.\n *\n * Documentation for data structures accepted by Apache ECharts:\n * https://echarts.apache.org/handbook/en/concepts/dataset\n *\n * Examples for scatter chart formatting in Apache ECharts:\n * https://echarts.apache.org/examples/en/index.html#chart-type-scatter\n *\n * @returns a `ScatterPlot` component that contains an EChart which will handle\n * visualization of the data.\n */\nexport function ScatterChartPanel(props: ScatterChartPanelProps): ReactElement | null {\n const { spec, contentDimensions, queryResults: traceResults } = props;\n const chartsTheme = useChartsTheme();\n const defaultColor = chartsTheme.thresholds.defaultColor || 'blue';\n const sizeRange = spec.sizeRange || DEFAULT_SIZE_RANGE;\n\n // Generate dataset\n // Transform Tempo API response to fit 'dataset' structure from Apache ECharts\n // https://echarts.apache.org/handbook/en/concepts/dataset\n const { dataset, minSpanCount, maxSpanCount } = useMemo(() => {\n const dataset = [];\n let minSpanCount: number | undefined;\n let maxSpanCount: number | undefined;\n for (const result of traceResults) {\n if (result.data.searchResult === undefined) continue;\n const dataSeries = result.data.searchResult.map((trace) => {\n let spanCount = 0;\n let errorCount = 0;\n for (const stats of Object.values(trace.serviceStats)) {\n spanCount += stats.spanCount;\n errorCount += stats.errorCount ?? 0;\n }\n\n if (minSpanCount === undefined || spanCount < minSpanCount) {\n minSpanCount = spanCount;\n }\n if (maxSpanCount === undefined || spanCount > maxSpanCount) {\n maxSpanCount = spanCount;\n }\n\n const pluginSpec = result.definition.spec.plugin.spec as { datasource?: { name?: string } } | undefined;\n const newTraceValue: EChartTraceValue = {\n ...trace,\n linkVariables: {\n datasourceName: pluginSpec?.datasource?.name ?? '',\n traceId: trace.traceId,\n },\n name: `${trace.rootServiceName}: ${trace.rootTraceName}`,\n startTime: new Date(trace.startTimeUnixMs), // convert unix epoch time to Date\n spanCount,\n errorCount,\n };\n return newTraceValue;\n });\n dataset.push({\n source: dataSeries,\n });\n }\n return { dataset, minSpanCount: minSpanCount ?? 0, maxSpanCount: maxSpanCount ?? 0 };\n }, [traceResults]);\n\n // Formatting for the dataset\n // 1. Map x,y coordinates\n // 2. Datapoint size corresponds to the number of spans in a trace\n // 3. Color datapoint red if the trace contains an error\n const series = useMemo(() => {\n const seriesTemplate2: SeriesOption = {\n type: 'scatter',\n encode: {\n // Map to x-axis.\n x: 'startTime',\n // Map to y-axis.\n y: 'durationMs',\n },\n symbolSize: function (data) {\n // returns the diameter of the circles\n return getSymbolSize(data.spanCount, [minSpanCount, maxSpanCount], sizeRange);\n },\n itemStyle: {\n color: function (params) {\n const traceData: EChartTraceValue = params.data as EChartTraceValue;\n // If the trace contains an error, color the datapoint in red\n if (traceData.errorCount > 0) {\n return 'red';\n }\n // Else return default color\n return defaultColor;\n },\n },\n };\n\n // Each data set needs to have a corresponding series formatting object\n const series = [];\n for (let i = 0; i < dataset.length; i++) {\n series.push({ ...seriesTemplate2, datasetIndex: i });\n }\n return series;\n }, [dataset, defaultColor, minSpanCount, maxSpanCount, sizeRange]);\n\n const tracesFound = traceResults.some((traceData) => (traceData.data?.searchResult ?? []).length > 0);\n if (!tracesFound) {\n return <NoDataOverlay resource=\"traces\" />;\n }\n\n const options: EChartsOption = {\n dataset: dataset,\n series: series,\n };\n\n if (contentDimensions === undefined) return null;\n\n return (\n <div data-testid=\"ScatterChartPanel_ScatterPlot\">\n <Scatterplot\n width={contentDimensions.width}\n height={contentDimensions.height}\n options={options}\n link={spec.link}\n />\n </div>\n );\n}\n\n// exported for tests\nexport function getSymbolSize(\n spanCount: number,\n spanCountRange: [number, number],\n sizeRange: [number, number]\n): number {\n const [minSize, maxSize] = sizeRange;\n const [minSpanCount, maxSpanCount] = spanCountRange;\n\n // catch divison by zero\n if (maxSpanCount - minSpanCount === 0) {\n return maxSize;\n }\n\n // apply linear scale of spanCount from range [minSpanCount,maxSpanCount] to a value from range [minSize,maxSize]\n const rel = (spanCount - minSpanCount) / (maxSpanCount - minSpanCount);\n return minSize + (maxSize - minSize) * rel;\n}\n"],"names":["useMemo","NoDataOverlay","useChartsTheme","Scatterplot","DEFAULT_SIZE_RANGE","ScatterChartPanel","props","spec","contentDimensions","queryResults","traceResults","chartsTheme","defaultColor","thresholds","sizeRange","dataset","minSpanCount","maxSpanCount","result","data","searchResult","undefined","dataSeries","map","trace","spanCount","errorCount","stats","Object","values","serviceStats","pluginSpec","definition","plugin","newTraceValue","linkVariables","datasourceName","datasource","name","traceId","rootServiceName","rootTraceName","startTime","Date","startTimeUnixMs","push","source","series","seriesTemplate2","type","encode","x","y","symbolSize","getSymbolSize","itemStyle","color","params","traceData","i","length","datasetIndex","tracesFound","some","resource","options","div","data-testid","width","height","link","spanCountRange","minSize","maxSize","rel"],"mappings":"AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;;AAGjC,SAAuBA,OAAO,QAAQ,QAAQ;AAE9C,SAASC,aAAa,EAAEC,cAAc,QAAQ,yBAAyB;AAEvE,SAASC,WAAW,QAAQ,gBAAgB;AAa5C,+CAA+C,GAC/C,MAAMC,qBAAuC;IAAC;IAAG;CAAG;AAEpD;;;;;;;;;;;;;;CAcC,GACD,OAAO,SAASC,kBAAkBC,KAA6B;IAC7D,MAAM,EAAEC,IAAI,EAAEC,iBAAiB,EAAEC,cAAcC,YAAY,EAAE,GAAGJ;IAChE,MAAMK,cAAcT;IACpB,MAAMU,eAAeD,YAAYE,UAAU,CAACD,YAAY,IAAI;IAC5D,MAAME,YAAYP,KAAKO,SAAS,IAAIV;IAEpC,mBAAmB;IACnB,8EAA8E;IAC9E,0DAA0D;IAC1D,MAAM,EAAEW,OAAO,EAAEC,YAAY,EAAEC,YAAY,EAAE,GAAGjB,QAAQ;QACtD,MAAMe,UAAU,EAAE;QAClB,IAAIC;QACJ,IAAIC;QACJ,KAAK,MAAMC,UAAUR,aAAc;YACjC,IAAIQ,OAAOC,IAAI,CAACC,YAAY,KAAKC,WAAW;YAC5C,MAAMC,aAAaJ,OAAOC,IAAI,CAACC,YAAY,CAACG,GAAG,CAAC,CAACC;gBAC/C,IAAIC,YAAY;gBAChB,IAAIC,aAAa;gBACjB,KAAK,MAAMC,SAASC,OAAOC,MAAM,CAACL,MAAMM,YAAY,EAAG;oBACrDL,aAAaE,MAAMF,SAAS;oBAC5BC,cAAcC,MAAMD,UAAU,IAAI;gBACpC;gBAEA,IAAIV,iBAAiBK,aAAaI,YAAYT,cAAc;oBAC1DA,eAAeS;gBACjB;gBACA,IAAIR,iBAAiBI,aAAaI,YAAYR,cAAc;oBAC1DA,eAAeQ;gBACjB;gBAEA,MAAMM,aAAab,OAAOc,UAAU,CAACzB,IAAI,CAAC0B,MAAM,CAAC1B,IAAI;gBACrD,MAAM2B,gBAAkC;oBACtC,GAAGV,KAAK;oBACRW,eAAe;wBACbC,gBAAgBL,YAAYM,YAAYC,QAAQ;wBAChDC,SAASf,MAAMe,OAAO;oBACxB;oBACAD,MAAM,GAAGd,MAAMgB,eAAe,CAAC,EAAE,EAAEhB,MAAMiB,aAAa,EAAE;oBACxDC,WAAW,IAAIC,KAAKnB,MAAMoB,eAAe;oBACzCnB;oBACAC;gBACF;gBACA,OAAOQ;YACT;YACAnB,QAAQ8B,IAAI,CAAC;gBACXC,QAAQxB;YACV;QACF;QACA,OAAO;YAAEP;YAASC,cAAcA,gBAAgB;YAAGC,cAAcA,gBAAgB;QAAE;IACrF,GAAG;QAACP;KAAa;IAEjB,6BAA6B;IAC7B,yBAAyB;IACzB,kEAAkE;IAClE,wDAAwD;IACxD,MAAMqC,SAAS/C,QAAQ;QACrB,MAAMgD,kBAAgC;YACpCC,MAAM;YACNC,QAAQ;gBACN,iBAAiB;gBACjBC,GAAG;gBACH,iBAAiB;gBACjBC,GAAG;YACL;YACAC,YAAY,SAAUlC,IAAI;gBACxB,sCAAsC;gBACtC,OAAOmC,cAAcnC,KAAKM,SAAS,EAAE;oBAACT;oBAAcC;iBAAa,EAAEH;YACrE;YACAyC,WAAW;gBACTC,OAAO,SAAUC,MAAM;oBACrB,MAAMC,YAA8BD,OAAOtC,IAAI;oBAC/C,6DAA6D;oBAC7D,IAAIuC,UAAUhC,UAAU,GAAG,GAAG;wBAC5B,OAAO;oBACT;oBACA,4BAA4B;oBAC5B,OAAOd;gBACT;YACF;QACF;QAEA,uEAAuE;QACvE,MAAMmC,SAAS,EAAE;QACjB,IAAK,IAAIY,IAAI,GAAGA,IAAI5C,QAAQ6C,MAAM,EAAED,IAAK;YACvCZ,OAAOF,IAAI,CAAC;gBAAE,GAAGG,eAAe;gBAAEa,cAAcF;YAAE;QACpD;QACA,OAAOZ;IACT,GAAG;QAAChC;QAASH;QAAcI;QAAcC;QAAcH;KAAU;IAEjE,MAAMgD,cAAcpD,aAAaqD,IAAI,CAAC,CAACL,YAAc,AAACA,CAAAA,UAAUvC,IAAI,EAAEC,gBAAgB,EAAE,AAAD,EAAGwC,MAAM,GAAG;IACnG,IAAI,CAACE,aAAa;QAChB,qBAAO,KAAC7D;YAAc+D,UAAS;;IACjC;IAEA,MAAMC,UAAyB;QAC7BlD,SAASA;QACTgC,QAAQA;IACV;IAEA,IAAIvC,sBAAsBa,WAAW,OAAO;IAE5C,qBACE,KAAC6C;QAAIC,eAAY;kBACf,cAAA,KAAChE;YACCiE,OAAO5D,kBAAkB4D,KAAK;YAC9BC,QAAQ7D,kBAAkB6D,MAAM;YAChCJ,SAASA;YACTK,MAAM/D,KAAK+D,IAAI;;;AAIvB;AAEA,qBAAqB;AACrB,OAAO,SAAShB,cACd7B,SAAiB,EACjB8C,cAAgC,EAChCzD,SAA2B;IAE3B,MAAM,CAAC0D,SAASC,QAAQ,GAAG3D;IAC3B,MAAM,CAACE,cAAcC,aAAa,GAAGsD;IAErC,wBAAwB;IACxB,IAAItD,eAAeD,iBAAiB,GAAG;QACrC,OAAOyD;IACT;IAEA,iHAAiH;IACjH,MAAMC,MAAM,AAACjD,CAAAA,YAAYT,YAAW,IAAMC,CAAAA,eAAeD,YAAW;IACpE,OAAOwD,UAAU,AAACC,CAAAA,UAAUD,OAAM,IAAKE;AACzC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Scatterplot.d.ts","sourceRoot":"","sources":["../../src/Scatterplot.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,YAAY,EAAW,MAAM,OAAO,CAAC;AAa9C,OAAO,EAAE,aAAa,EAAuB,MAAM,SAAS,CAAC;AAqB7D,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,aAAa,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAOD,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,YAAY,CAoFjE"}
1
+ {"version":3,"file":"Scatterplot.d.ts","sourceRoot":"","sources":["../../src/Scatterplot.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,YAAY,EAAW,MAAM,OAAO,CAAC;AAa9C,OAAO,EAAE,aAAa,EAAuB,MAAM,SAAS,CAAC;AAoB7D,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,aAAa,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAOD,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,YAAY,CAoFjE"}
@@ -12,12 +12,11 @@ import { jsx as _jsx } from "react/jsx-runtime";
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
  import { useMemo } from 'react';
15
- import { EChart, useChartsTheme } from '@perses-dev/components';
15
+ import { EChart, formatValue, useChartsTheme } from '@perses-dev/components';
16
16
  import { use } from 'echarts/core';
17
17
  import { ScatterChart as EChartsScatterChart } from 'echarts/charts';
18
18
  import { DatasetComponent, DataZoomComponent, LegendComponent, GridComponent, TitleComponent, TooltipComponent } from 'echarts/components';
19
19
  import { CanvasRenderer } from 'echarts/renderers';
20
- import { formatValue } from '@perses-dev/core';
21
20
  import { replaceVariablesInString, useAllVariableValues, useRouterContext, useTimeRange } from '@perses-dev/plugin-system';
22
21
  use([
23
22
  DatasetComponent,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Scatterplot.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { ReactElement, useMemo } from 'react';\nimport { EChart, OnEventsType, useChartsTheme } from '@perses-dev/components';\nimport { use, EChartsCoreOption } from 'echarts/core';\nimport { ScatterChart as EChartsScatterChart } from 'echarts/charts';\nimport {\n DatasetComponent,\n DataZoomComponent,\n LegendComponent,\n GridComponent,\n TitleComponent,\n TooltipComponent,\n} from 'echarts/components';\nimport { CanvasRenderer } from 'echarts/renderers';\nimport { EChartsOption, ScatterSeriesOption } from 'echarts';\nimport { formatValue } from '@perses-dev/core';\nimport {\n replaceVariablesInString,\n useAllVariableValues,\n useRouterContext,\n useTimeRange,\n} from '@perses-dev/plugin-system';\nimport { EChartTraceValue } from './ScatterChartPanel';\n\nuse([\n DatasetComponent,\n DataZoomComponent,\n LegendComponent,\n EChartsScatterChart,\n GridComponent,\n TitleComponent,\n TooltipComponent,\n CanvasRenderer,\n]);\n\nexport interface ScatterplotProps {\n width: number;\n height: number;\n options: EChartsOption;\n link?: string;\n}\n\nconst DATE_FORMATTER = new Intl.DateTimeFormat(undefined, {\n dateStyle: 'long',\n timeStyle: 'medium',\n}).format;\n\nexport function Scatterplot(props: ScatterplotProps): ReactElement {\n const { width, height, options, link: linkTemplate } = props;\n const chartsTheme = useChartsTheme();\n const { absoluteTimeRange } = useTimeRange();\n const variableValues = useAllVariableValues();\n const { navigate } = useRouterContext();\n\n // Apache EChart Options Docs: https://echarts.apache.org/en/option.html\n const eChartOptions: EChartsCoreOption = {\n dataset: options.dataset,\n series: options.series,\n dataZoom: options.dataZoom,\n grid: {\n top: 45,\n bottom: 20,\n left: 30,\n right: 20,\n },\n xAxis: {\n type: 'time',\n min: absoluteTimeRange.start,\n max: absoluteTimeRange.end,\n },\n yAxis: {\n scale: true,\n type: 'value',\n name: 'Duration',\n splitNumber: 4,\n axisLabel: {\n formatter: (durationMs: number) => formatValue(durationMs, { unit: 'milliseconds' }),\n },\n },\n animation: false,\n tooltip: {\n padding: 5,\n borderWidth: 1,\n trigger: 'axis',\n axisPointer: {\n type: 'cross',\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n formatter: function (params: any) {\n // TODO: import type from ECharts instead of using any\n const data = params[0].data as EChartTraceValue;\n return [\n `<b>Service name</b>: ${data.rootServiceName}<br/>`,\n `<b>Span name</b>: ${data.rootTraceName}<br/>`,\n `<b>Time</b>: ${DATE_FORMATTER(data.startTime)}<br/>`,\n `<b>Duration</b>: ${formatValue(data.durationMs, { unit: 'milliseconds' })}<br/>`,\n `<b>Span count</b>: ${data.spanCount} (${data.errorCount} errors)<br/>`,\n ].join('');\n },\n },\n legend: {\n show: true,\n type: 'scroll',\n orient: 'horizontal',\n bottom: 0,\n },\n };\n\n const handleEvents: OnEventsType<ScatterSeriesOption['data'] | unknown> = useMemo(() => {\n const handlers: OnEventsType<ScatterSeriesOption['data'] | unknown> = {};\n if (navigate && linkTemplate) {\n handlers.click = (params): void => {\n const linkVariables = params.data.linkVariables as Record<string, string> | undefined;\n const link = replaceVariablesInString(linkTemplate, variableValues, linkVariables);\n navigate(link);\n };\n }\n return handlers;\n }, [linkTemplate, navigate, variableValues]);\n\n return (\n <EChart\n style={{\n width: width,\n height: height,\n }}\n option={eChartOptions}\n theme={chartsTheme.echartsTheme}\n onEvents={handleEvents}\n />\n );\n}\n"],"names":["useMemo","EChart","useChartsTheme","use","ScatterChart","EChartsScatterChart","DatasetComponent","DataZoomComponent","LegendComponent","GridComponent","TitleComponent","TooltipComponent","CanvasRenderer","formatValue","replaceVariablesInString","useAllVariableValues","useRouterContext","useTimeRange","DATE_FORMATTER","Intl","DateTimeFormat","undefined","dateStyle","timeStyle","format","Scatterplot","props","width","height","options","link","linkTemplate","chartsTheme","absoluteTimeRange","variableValues","navigate","eChartOptions","dataset","series","dataZoom","grid","top","bottom","left","right","xAxis","type","min","start","max","end","yAxis","scale","name","splitNumber","axisLabel","formatter","durationMs","unit","animation","tooltip","padding","borderWidth","trigger","axisPointer","params","data","rootServiceName","rootTraceName","startTime","spanCount","errorCount","join","legend","show","orient","handleEvents","handlers","click","linkVariables","style","option","theme","echartsTheme","onEvents"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/Scatterplot.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { ReactElement, useMemo } from 'react';\nimport { EChart, formatValue, OnEventsType, useChartsTheme } from '@perses-dev/components';\nimport { use, EChartsCoreOption } from 'echarts/core';\nimport { ScatterChart as EChartsScatterChart } from 'echarts/charts';\nimport {\n DatasetComponent,\n DataZoomComponent,\n LegendComponent,\n GridComponent,\n TitleComponent,\n TooltipComponent,\n} from 'echarts/components';\nimport { CanvasRenderer } from 'echarts/renderers';\nimport { EChartsOption, ScatterSeriesOption } from 'echarts';\nimport {\n replaceVariablesInString,\n useAllVariableValues,\n useRouterContext,\n useTimeRange,\n} from '@perses-dev/plugin-system';\nimport { EChartTraceValue } from './ScatterChartPanel';\n\nuse([\n DatasetComponent,\n DataZoomComponent,\n LegendComponent,\n EChartsScatterChart,\n GridComponent,\n TitleComponent,\n TooltipComponent,\n CanvasRenderer,\n]);\n\nexport interface ScatterplotProps {\n width: number;\n height: number;\n options: EChartsOption;\n link?: string;\n}\n\nconst DATE_FORMATTER = new Intl.DateTimeFormat(undefined, {\n dateStyle: 'long',\n timeStyle: 'medium',\n}).format;\n\nexport function Scatterplot(props: ScatterplotProps): ReactElement {\n const { width, height, options, link: linkTemplate } = props;\n const chartsTheme = useChartsTheme();\n const { absoluteTimeRange } = useTimeRange();\n const variableValues = useAllVariableValues();\n const { navigate } = useRouterContext();\n\n // Apache EChart Options Docs: https://echarts.apache.org/en/option.html\n const eChartOptions: EChartsCoreOption = {\n dataset: options.dataset,\n series: options.series,\n dataZoom: options.dataZoom,\n grid: {\n top: 45,\n bottom: 20,\n left: 30,\n right: 20,\n },\n xAxis: {\n type: 'time',\n min: absoluteTimeRange.start,\n max: absoluteTimeRange.end,\n },\n yAxis: {\n scale: true,\n type: 'value',\n name: 'Duration',\n splitNumber: 4,\n axisLabel: {\n formatter: (durationMs: number) => formatValue(durationMs, { unit: 'milliseconds' }),\n },\n },\n animation: false,\n tooltip: {\n padding: 5,\n borderWidth: 1,\n trigger: 'axis',\n axisPointer: {\n type: 'cross',\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n formatter: function (params: any) {\n // TODO: import type from ECharts instead of using any\n const data = params[0].data as EChartTraceValue;\n return [\n `<b>Service name</b>: ${data.rootServiceName}<br/>`,\n `<b>Span name</b>: ${data.rootTraceName}<br/>`,\n `<b>Time</b>: ${DATE_FORMATTER(data.startTime)}<br/>`,\n `<b>Duration</b>: ${formatValue(data.durationMs, { unit: 'milliseconds' })}<br/>`,\n `<b>Span count</b>: ${data.spanCount} (${data.errorCount} errors)<br/>`,\n ].join('');\n },\n },\n legend: {\n show: true,\n type: 'scroll',\n orient: 'horizontal',\n bottom: 0,\n },\n };\n\n const handleEvents: OnEventsType<ScatterSeriesOption['data'] | unknown> = useMemo(() => {\n const handlers: OnEventsType<ScatterSeriesOption['data'] | unknown> = {};\n if (navigate && linkTemplate) {\n handlers.click = (params): void => {\n const linkVariables = params.data.linkVariables as Record<string, string> | undefined;\n const link = replaceVariablesInString(linkTemplate, variableValues, linkVariables);\n navigate(link);\n };\n }\n return handlers;\n }, [linkTemplate, navigate, variableValues]);\n\n return (\n <EChart\n style={{\n width: width,\n height: height,\n }}\n option={eChartOptions}\n theme={chartsTheme.echartsTheme}\n onEvents={handleEvents}\n />\n );\n}\n"],"names":["useMemo","EChart","formatValue","useChartsTheme","use","ScatterChart","EChartsScatterChart","DatasetComponent","DataZoomComponent","LegendComponent","GridComponent","TitleComponent","TooltipComponent","CanvasRenderer","replaceVariablesInString","useAllVariableValues","useRouterContext","useTimeRange","DATE_FORMATTER","Intl","DateTimeFormat","undefined","dateStyle","timeStyle","format","Scatterplot","props","width","height","options","link","linkTemplate","chartsTheme","absoluteTimeRange","variableValues","navigate","eChartOptions","dataset","series","dataZoom","grid","top","bottom","left","right","xAxis","type","min","start","max","end","yAxis","scale","name","splitNumber","axisLabel","formatter","durationMs","unit","animation","tooltip","padding","borderWidth","trigger","axisPointer","params","data","rootServiceName","rootTraceName","startTime","spanCount","errorCount","join","legend","show","orient","handleEvents","handlers","click","linkVariables","style","option","theme","echartsTheme","onEvents"],"mappings":";AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SAAuBA,OAAO,QAAQ,QAAQ;AAC9C,SAASC,MAAM,EAAEC,WAAW,EAAgBC,cAAc,QAAQ,yBAAyB;AAC3F,SAASC,GAAG,QAA2B,eAAe;AACtD,SAASC,gBAAgBC,mBAAmB,QAAQ,iBAAiB;AACrE,SACEC,gBAAgB,EAChBC,iBAAiB,EACjBC,eAAe,EACfC,aAAa,EACbC,cAAc,EACdC,gBAAgB,QACX,qBAAqB;AAC5B,SAASC,cAAc,QAAQ,oBAAoB;AAEnD,SACEC,wBAAwB,EACxBC,oBAAoB,EACpBC,gBAAgB,EAChBC,YAAY,QACP,4BAA4B;AAGnCb,IAAI;IACFG;IACAC;IACAC;IACAH;IACAI;IACAC;IACAC;IACAC;CACD;AASD,MAAMK,iBAAiB,IAAIC,KAAKC,cAAc,CAACC,WAAW;IACxDC,WAAW;IACXC,WAAW;AACb,GAAGC,MAAM;AAET,OAAO,SAASC,YAAYC,KAAuB;IACjD,MAAM,EAAEC,KAAK,EAAEC,MAAM,EAAEC,OAAO,EAAEC,MAAMC,YAAY,EAAE,GAAGL;IACvD,MAAMM,cAAc7B;IACpB,MAAM,EAAE8B,iBAAiB,EAAE,GAAGhB;IAC9B,MAAMiB,iBAAiBnB;IACvB,MAAM,EAAEoB,QAAQ,EAAE,GAAGnB;IAErB,wEAAwE;IACxE,MAAMoB,gBAAmC;QACvCC,SAASR,QAAQQ,OAAO;QACxBC,QAAQT,QAAQS,MAAM;QACtBC,UAAUV,QAAQU,QAAQ;QAC1BC,MAAM;YACJC,KAAK;YACLC,QAAQ;YACRC,MAAM;YACNC,OAAO;QACT;QACAC,OAAO;YACLC,MAAM;YACNC,KAAKd,kBAAkBe,KAAK;YAC5BC,KAAKhB,kBAAkBiB,GAAG;QAC5B;QACAC,OAAO;YACLC,OAAO;YACPN,MAAM;YACNO,MAAM;YACNC,aAAa;YACbC,WAAW;gBACTC,WAAW,CAACC,aAAuBvD,YAAYuD,YAAY;wBAAEC,MAAM;oBAAe;YACpF;QACF;QACAC,WAAW;QACXC,SAAS;YACPC,SAAS;YACTC,aAAa;YACbC,SAAS;YACTC,aAAa;gBACXlB,MAAM;YACR;YACA,8DAA8D;YAC9DU,WAAW,SAAUS,MAAW;gBAC9B,sDAAsD;gBACtD,MAAMC,OAAOD,MAAM,CAAC,EAAE,CAACC,IAAI;gBAC3B,OAAO;oBACL,CAAC,qBAAqB,EAAEA,KAAKC,eAAe,CAAC,KAAK,CAAC;oBACnD,CAAC,kBAAkB,EAAED,KAAKE,aAAa,CAAC,KAAK,CAAC;oBAC9C,CAAC,aAAa,EAAElD,eAAegD,KAAKG,SAAS,EAAE,KAAK,CAAC;oBACrD,CAAC,iBAAiB,EAAEnE,YAAYgE,KAAKT,UAAU,EAAE;wBAAEC,MAAM;oBAAe,GAAG,KAAK,CAAC;oBACjF,CAAC,mBAAmB,EAAEQ,KAAKI,SAAS,CAAC,EAAE,EAAEJ,KAAKK,UAAU,CAAC,aAAa,CAAC;iBACxE,CAACC,IAAI,CAAC;YACT;QACF;QACAC,QAAQ;YACNC,MAAM;YACN5B,MAAM;YACN6B,QAAQ;YACRjC,QAAQ;QACV;IACF;IAEA,MAAMkC,eAAoE5E,QAAQ;QAChF,MAAM6E,WAAgE,CAAC;QACvE,IAAI1C,YAAYJ,cAAc;YAC5B8C,SAASC,KAAK,GAAG,CAACb;gBAChB,MAAMc,gBAAgBd,OAAOC,IAAI,CAACa,aAAa;gBAC/C,MAAMjD,OAAOhB,yBAAyBiB,cAAcG,gBAAgB6C;gBACpE5C,SAASL;YACX;QACF;QACA,OAAO+C;IACT,GAAG;QAAC9C;QAAcI;QAAUD;KAAe;IAE3C,qBACE,KAACjC;QACC+E,OAAO;YACLrD,OAAOA;YACPC,QAAQA;QACV;QACAqD,QAAQ7C;QACR8C,OAAOlD,YAAYmD,YAAY;QAC/BC,UAAUR;;AAGhB"}
@@ -27,7 +27,6 @@ const _core = require("echarts/core");
27
27
  const _charts = require("echarts/charts");
28
28
  const _components1 = require("echarts/components");
29
29
  const _renderers = require("echarts/renderers");
30
- const _core1 = require("@perses-dev/core");
31
30
  const _pluginsystem = require("@perses-dev/plugin-system");
32
31
  (0, _core.use)([
33
32
  _components1.DatasetComponent,
@@ -71,7 +70,7 @@ function Scatterplot(props) {
71
70
  name: 'Duration',
72
71
  splitNumber: 4,
73
72
  axisLabel: {
74
- formatter: (durationMs)=>(0, _core1.formatValue)(durationMs, {
73
+ formatter: (durationMs)=>(0, _components.formatValue)(durationMs, {
75
74
  unit: 'milliseconds'
76
75
  })
77
76
  }
@@ -92,7 +91,7 @@ function Scatterplot(props) {
92
91
  `<b>Service name</b>: ${data.rootServiceName}<br/>`,
93
92
  `<b>Span name</b>: ${data.rootTraceName}<br/>`,
94
93
  `<b>Time</b>: ${DATE_FORMATTER(data.startTime)}<br/>`,
95
- `<b>Duration</b>: ${(0, _core1.formatValue)(data.durationMs, {
94
+ `<b>Duration</b>: ${(0, _components.formatValue)(data.durationMs, {
96
95
  unit: 'milliseconds'
97
96
  })}<br/>`,
98
97
  `<b>Span count</b>: ${data.spanCount} (${data.errorCount} errors)<br/>`
@@ -1,4 +1,4 @@
1
- import { TraceData } from '@perses-dev/core';
1
+ import { TraceData } from '@perses-dev/spec';
2
2
  /**
3
3
  * Mock data we get from getTraceData() in @perses/tempo-plugin.
4
4
  */
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/mock-trace-data.ts"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { TraceData } from '@perses-dev/core';\n\n/**\n * Mock data we get from getTraceData() in @perses/tempo-plugin.\n */\nexport const MOCK_TRACE_SEARCH_RESULT: TraceData = {\n searchResult: [\n {\n startTimeUnixMs: 1702915645000, // unix epoch time in milliseconds\n durationMs: 100,\n serviceStats: {\n 'service-name': {\n spanCount: 10,\n },\n 'second-service-name': {\n spanCount: 3,\n errorCount: 2,\n },\n },\n traceId: '123',\n rootServiceName: 'service-name',\n rootTraceName: 'span-name',\n },\n ],\n metadata: {\n executedQueryString: '{duration > 500ms}',\n },\n};\n\nexport const MOCK_TRACE_SEARCH_RESULT_EMPTY: TraceData = {\n searchResult: [],\n metadata: {\n executedQueryString: '{duration > 500ms}',\n },\n};\n\n/**\n * Mocks results obtained from useTraceQueries() in @perses/plugin-system/runtime.\n * This function uses then React TanStack function useQueries(fooQuery) to\n * handle fetching.\n */\nexport const MOCK_TRACE_SEARCH_RESULT_QUERY_RESULT = [\n {\n status: 'success',\n fetchStatus: 'idle',\n isLoading: false,\n isSuccess: true,\n isError: false,\n data: MOCK_TRACE_SEARCH_RESULT,\n dataUpdatedAt: 1666500979895,\n definition: {\n kind: 'TraceQuery',\n spec: {\n plugin: {\n kind: 'TempoTraceQuery',\n spec: {\n query: '{}',\n datasource: {\n kind: 'TempoDatasource',\n name: 'tempolocal',\n },\n },\n },\n },\n },\n error: null,\n errorUpdatedAt: 0,\n failureCount: 0,\n errorUpdateCount: 0,\n isFetched: true,\n isFetchedAfterMount: true,\n isFetching: false,\n isRefetching: false,\n isLoadingError: false,\n isPaused: false,\n isPlaceholderData: false,\n isPreviousData: false,\n isRefetchError: false,\n isStale: true,\n },\n];\n\nexport const MOCK_TRACE_SEARCH_RESULT_QUERY_RESULT_EMPTY = [\n {\n status: 'success',\n fetchStatus: 'idle',\n isLoading: false,\n isSuccess: true,\n isError: false,\n data: MOCK_TRACE_SEARCH_RESULT_EMPTY,\n dataUpdatedAt: 1666500979895,\n definition: {\n kind: 'TraceQuery',\n spec: {\n plugin: {\n kind: 'TempoTraceQuery',\n spec: {\n query: '{}',\n datasource: {\n kind: 'TempoDatasource',\n name: 'tempolocal',\n },\n },\n },\n },\n },\n error: null,\n errorUpdatedAt: 0,\n failureCount: 0,\n errorUpdateCount: 0,\n isFetched: true,\n isFetchedAfterMount: true,\n isFetching: false,\n isRefetching: false,\n isLoadingError: false,\n isPaused: false,\n isPlaceholderData: false,\n isPreviousData: false,\n isRefetchError: false,\n isStale: true,\n },\n];\n"],"names":["MOCK_TRACE_SEARCH_RESULT","searchResult","startTimeUnixMs","durationMs","serviceStats","spanCount","errorCount","traceId","rootServiceName","rootTraceName","metadata","executedQueryString","MOCK_TRACE_SEARCH_RESULT_EMPTY","MOCK_TRACE_SEARCH_RESULT_QUERY_RESULT","status","fetchStatus","isLoading","isSuccess","isError","data","dataUpdatedAt","definition","kind","spec","plugin","query","datasource","name","error","errorUpdatedAt","failureCount","errorUpdateCount","isFetched","isFetchedAfterMount","isFetching","isRefetching","isLoadingError","isPaused","isPlaceholderData","isPreviousData","isRefetchError","isStale","MOCK_TRACE_SEARCH_RESULT_QUERY_RESULT_EMPTY"],"mappings":"AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAIjC;;CAEC,GACD,OAAO,MAAMA,2BAAsC;IACjDC,cAAc;QACZ;YACEC,iBAAiB;YACjBC,YAAY;YACZC,cAAc;gBACZ,gBAAgB;oBACdC,WAAW;gBACb;gBACA,uBAAuB;oBACrBA,WAAW;oBACXC,YAAY;gBACd;YACF;YACAC,SAAS;YACTC,iBAAiB;YACjBC,eAAe;QACjB;KACD;IACDC,UAAU;QACRC,qBAAqB;IACvB;AACF,EAAE;AAEF,OAAO,MAAMC,iCAA4C;IACvDX,cAAc,EAAE;IAChBS,UAAU;QACRC,qBAAqB;IACvB;AACF,EAAE;AAEF;;;;CAIC,GACD,OAAO,MAAME,wCAAwC;IACnD;QACEC,QAAQ;QACRC,aAAa;QACbC,WAAW;QACXC,WAAW;QACXC,SAAS;QACTC,MAAMnB;QACNoB,eAAe;QACfC,YAAY;YACVC,MAAM;YACNC,MAAM;gBACJC,QAAQ;oBACNF,MAAM;oBACNC,MAAM;wBACJE,OAAO;wBACPC,YAAY;4BACVJ,MAAM;4BACNK,MAAM;wBACR;oBACF;gBACF;YACF;QACF;QACAC,OAAO;QACPC,gBAAgB;QAChBC,cAAc;QACdC,kBAAkB;QAClBC,WAAW;QACXC,qBAAqB;QACrBC,YAAY;QACZC,cAAc;QACdC,gBAAgB;QAChBC,UAAU;QACVC,mBAAmB;QACnBC,gBAAgB;QAChBC,gBAAgB;QAChBC,SAAS;IACX;CACD,CAAC;AAEF,OAAO,MAAMC,8CAA8C;IACzD;QACE5B,QAAQ;QACRC,aAAa;QACbC,WAAW;QACXC,WAAW;QACXC,SAAS;QACTC,MAAMP;QACNQ,eAAe;QACfC,YAAY;YACVC,MAAM;YACNC,MAAM;gBACJC,QAAQ;oBACNF,MAAM;oBACNC,MAAM;wBACJE,OAAO;wBACPC,YAAY;4BACVJ,MAAM;4BACNK,MAAM;wBACR;oBACF;gBACF;YACF;QACF;QACAC,OAAO;QACPC,gBAAgB;QAChBC,cAAc;QACdC,kBAAkB;QAClBC,WAAW;QACXC,qBAAqB;QACrBC,YAAY;QACZC,cAAc;QACdC,gBAAgB;QAChBC,UAAU;QACVC,mBAAmB;QACnBC,gBAAgB;QAChBC,gBAAgB;QAChBC,SAAS;IACX;CACD,CAAC"}
1
+ {"version":3,"sources":["../../src/mock-trace-data.ts"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { TraceData } from '@perses-dev/spec';\n\n/**\n * Mock data we get from getTraceData() in @perses/tempo-plugin.\n */\nexport const MOCK_TRACE_SEARCH_RESULT: TraceData = {\n searchResult: [\n {\n startTimeUnixMs: 1702915645000, // unix epoch time in milliseconds\n durationMs: 100,\n serviceStats: {\n 'service-name': {\n spanCount: 10,\n },\n 'second-service-name': {\n spanCount: 3,\n errorCount: 2,\n },\n },\n traceId: '123',\n rootServiceName: 'service-name',\n rootTraceName: 'span-name',\n },\n ],\n metadata: {\n executedQueryString: '{duration > 500ms}',\n },\n};\n\nexport const MOCK_TRACE_SEARCH_RESULT_EMPTY: TraceData = {\n searchResult: [],\n metadata: {\n executedQueryString: '{duration > 500ms}',\n },\n};\n\n/**\n * Mocks results obtained from useTraceQueries() in @perses/plugin-system/runtime.\n * This function uses then React TanStack function useQueries(fooQuery) to\n * handle fetching.\n */\nexport const MOCK_TRACE_SEARCH_RESULT_QUERY_RESULT = [\n {\n status: 'success',\n fetchStatus: 'idle',\n isLoading: false,\n isSuccess: true,\n isError: false,\n data: MOCK_TRACE_SEARCH_RESULT,\n dataUpdatedAt: 1666500979895,\n definition: {\n kind: 'TraceQuery',\n spec: {\n plugin: {\n kind: 'TempoTraceQuery',\n spec: {\n query: '{}',\n datasource: {\n kind: 'TempoDatasource',\n name: 'tempolocal',\n },\n },\n },\n },\n },\n error: null,\n errorUpdatedAt: 0,\n failureCount: 0,\n errorUpdateCount: 0,\n isFetched: true,\n isFetchedAfterMount: true,\n isFetching: false,\n isRefetching: false,\n isLoadingError: false,\n isPaused: false,\n isPlaceholderData: false,\n isPreviousData: false,\n isRefetchError: false,\n isStale: true,\n },\n];\n\nexport const MOCK_TRACE_SEARCH_RESULT_QUERY_RESULT_EMPTY = [\n {\n status: 'success',\n fetchStatus: 'idle',\n isLoading: false,\n isSuccess: true,\n isError: false,\n data: MOCK_TRACE_SEARCH_RESULT_EMPTY,\n dataUpdatedAt: 1666500979895,\n definition: {\n kind: 'TraceQuery',\n spec: {\n plugin: {\n kind: 'TempoTraceQuery',\n spec: {\n query: '{}',\n datasource: {\n kind: 'TempoDatasource',\n name: 'tempolocal',\n },\n },\n },\n },\n },\n error: null,\n errorUpdatedAt: 0,\n failureCount: 0,\n errorUpdateCount: 0,\n isFetched: true,\n isFetchedAfterMount: true,\n isFetching: false,\n isRefetching: false,\n isLoadingError: false,\n isPaused: false,\n isPlaceholderData: false,\n isPreviousData: false,\n isRefetchError: false,\n isStale: true,\n },\n];\n"],"names":["MOCK_TRACE_SEARCH_RESULT","searchResult","startTimeUnixMs","durationMs","serviceStats","spanCount","errorCount","traceId","rootServiceName","rootTraceName","metadata","executedQueryString","MOCK_TRACE_SEARCH_RESULT_EMPTY","MOCK_TRACE_SEARCH_RESULT_QUERY_RESULT","status","fetchStatus","isLoading","isSuccess","isError","data","dataUpdatedAt","definition","kind","spec","plugin","query","datasource","name","error","errorUpdatedAt","failureCount","errorUpdateCount","isFetched","isFetchedAfterMount","isFetching","isRefetching","isLoadingError","isPaused","isPlaceholderData","isPreviousData","isRefetchError","isStale","MOCK_TRACE_SEARCH_RESULT_QUERY_RESULT_EMPTY"],"mappings":"AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAIjC;;CAEC,GACD,OAAO,MAAMA,2BAAsC;IACjDC,cAAc;QACZ;YACEC,iBAAiB;YACjBC,YAAY;YACZC,cAAc;gBACZ,gBAAgB;oBACdC,WAAW;gBACb;gBACA,uBAAuB;oBACrBA,WAAW;oBACXC,YAAY;gBACd;YACF;YACAC,SAAS;YACTC,iBAAiB;YACjBC,eAAe;QACjB;KACD;IACDC,UAAU;QACRC,qBAAqB;IACvB;AACF,EAAE;AAEF,OAAO,MAAMC,iCAA4C;IACvDX,cAAc,EAAE;IAChBS,UAAU;QACRC,qBAAqB;IACvB;AACF,EAAE;AAEF;;;;CAIC,GACD,OAAO,MAAME,wCAAwC;IACnD;QACEC,QAAQ;QACRC,aAAa;QACbC,WAAW;QACXC,WAAW;QACXC,SAAS;QACTC,MAAMnB;QACNoB,eAAe;QACfC,YAAY;YACVC,MAAM;YACNC,MAAM;gBACJC,QAAQ;oBACNF,MAAM;oBACNC,MAAM;wBACJE,OAAO;wBACPC,YAAY;4BACVJ,MAAM;4BACNK,MAAM;wBACR;oBACF;gBACF;YACF;QACF;QACAC,OAAO;QACPC,gBAAgB;QAChBC,cAAc;QACdC,kBAAkB;QAClBC,WAAW;QACXC,qBAAqB;QACrBC,YAAY;QACZC,cAAc;QACdC,gBAAgB;QAChBC,UAAU;QACVC,mBAAmB;QACnBC,gBAAgB;QAChBC,gBAAgB;QAChBC,SAAS;IACX;CACD,CAAC;AAEF,OAAO,MAAMC,8CAA8C;IACzD;QACE5B,QAAQ;QACRC,aAAa;QACbC,WAAW;QACXC,WAAW;QACXC,SAAS;QACTC,MAAMP;QACNQ,eAAe;QACfC,YAAY;YACVC,MAAM;YACNC,MAAM;gBACJC,QAAQ;oBACNF,MAAM;oBACNC,MAAM;wBACJE,OAAO;wBACPC,YAAY;4BACVJ,MAAM;4BACNK,MAAM;wBACR;oBACF;gBACF;YACF;QACF;QACAC,OAAO;QACPC,gBAAgB;QAChBC,cAAc;QACdC,kBAAkB;QAClBC,WAAW;QACXC,qBAAqB;QACrBC,YAAY;QACZC,cAAc;QACdC,gBAAgB;QAChBC,UAAU;QACVC,mBAAmB;QACnBC,gBAAgB;QAChBC,gBAAgB;QAChBC,SAAS;IACX;CACD,CAAC"}
@@ -1,4 +1,4 @@
1
- import { UnknownSpec, QueryDefinition } from '@perses-dev/core';
1
+ import { QueryDefinition, UnknownSpec } from '@perses-dev/spec';
2
2
  export type TraceQueryDefinition<PluginSpec = UnknownSpec> = QueryDefinition<'TraceQuery', PluginSpec>;
3
3
  /**
4
4
  * The Options object type supported by the ScatterChart panel plugin.
@@ -1 +1 @@
1
- {"version":3,"file":"scatter-chart-model.d.ts","sourceRoot":"","sources":["../../src/scatter-chart-model.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEhE,MAAM,MAAM,oBAAoB,CAAC,UAAU,GAAG,WAAW,IAAI,eAAe,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;AAEvG;;GAEG;AAKH,MAAM,WAAW,mBAAmB;IAClC,oCAAoC;IACpC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,wBAAgB,gCAAgC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAE1E"}
1
+ {"version":3,"file":"scatter-chart-model.d.ts","sourceRoot":"","sources":["../../src/scatter-chart-model.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEhE,MAAM,MAAM,oBAAoB,CAAC,UAAU,GAAG,WAAW,IAAI,eAAe,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;AAEvG;;GAEG;AAKH,MAAM,WAAW,mBAAmB;IAClC,oCAAoC;IACpC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,wBAAgB,gCAAgC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAE1E"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/scatter-chart-model.ts"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { UnknownSpec, QueryDefinition } from '@perses-dev/core';\n\nexport type TraceQueryDefinition<PluginSpec = UnknownSpec> = QueryDefinition<'TraceQuery', PluginSpec>;\n\n/**\n * The Options object type supported by the ScatterChart panel plugin.\n */\n// TODO: Add support for scatter chart formatting options.\n// Some scaffolding has been done to support formatting options.\n// This includes the interface below which still needs implementation.\n// Note: The interface attributes must match schemas/scatter.cue\nexport interface ScatterChartOptions {\n /** range of the circles diameter */\n sizeRange?: [number, number];\n\n /**\n * Where to navigate after clicking on a bubble.\n * Supported variables: datasourceName, traceId\n */\n link?: string;\n}\n\n/**\n * Creates the initial/empty options for a ScatterChart panel.\n */\nexport function createInitialScatterChartOptions(): Record<string, unknown> {\n return {};\n}\n"],"names":["createInitialScatterChartOptions"],"mappings":"AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAwBjC;;CAEC,GACD,OAAO,SAASA;IACd,OAAO,CAAC;AACV"}
1
+ {"version":3,"sources":["../../src/scatter-chart-model.ts"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { QueryDefinition, UnknownSpec } from '@perses-dev/spec';\n\nexport type TraceQueryDefinition<PluginSpec = UnknownSpec> = QueryDefinition<'TraceQuery', PluginSpec>;\n\n/**\n * The Options object type supported by the ScatterChart panel plugin.\n */\n// TODO: Add support for scatter chart formatting options.\n// Some scaffolding has been done to support formatting options.\n// This includes the interface below which still needs implementation.\n// Note: The interface attributes must match schemas/scatter.cue\nexport interface ScatterChartOptions {\n /** range of the circles diameter */\n sizeRange?: [number, number];\n\n /**\n * Where to navigate after clicking on a bubble.\n * Supported variables: datasourceName, traceId\n */\n link?: string;\n}\n\n/**\n * Creates the initial/empty options for a ScatterChart panel.\n */\nexport function createInitialScatterChartOptions(): Record<string, unknown> {\n return {};\n}\n"],"names":["createInitialScatterChartOptions"],"mappings":"AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAwBjC;;CAEC,GACD,OAAO,SAASA;IACd,OAAO,CAAC;AACV"}
package/mf-manifest.json CHANGED
@@ -5,11 +5,11 @@
5
5
  "name": "ScatterChart",
6
6
  "type": "app",
7
7
  "buildInfo": {
8
- "buildVersion": "0.10.1",
8
+ "buildVersion": "0.11.0-beta.1",
9
9
  "buildName": "@perses-dev/scatter-chart-plugin"
10
10
  },
11
11
  "remoteEntry": {
12
- "name": "__mf/js/ScatterChart.0bee6e96.js",
12
+ "name": "__mf/js/ScatterChart.fe45b695.js",
13
13
  "path": "",
14
14
  "type": "global"
15
15
  },
@@ -20,8 +20,7 @@
20
20
  "api": ""
21
21
  },
22
22
  "globalName": "ScatterChart",
23
- "pluginVersion": "0.21.6",
24
- "prefetchInterface": false,
23
+ "pluginVersion": "2.4.0",
25
24
  "getPublicPath": "function() { const prefix = window.PERSES_PLUGIN_ASSETS_PATH || window.PERSES_APP_CONFIG?.api_prefix || \"\"; return prefix + \"/plugins/ScatterChart/\"; }"
26
25
  },
27
26
  "shared": [
@@ -35,34 +34,36 @@
35
34
  "js": {
36
35
  "async": [],
37
36
  "sync": [
38
- "__mf/js/async/274.a99c9e5e.js"
37
+ "__mf/js/async/274.c3bd8521.js"
39
38
  ]
40
39
  },
41
40
  "css": {
42
41
  "async": [],
43
42
  "sync": []
44
43
  }
45
- }
44
+ },
45
+ "fallback": ""
46
46
  },
47
47
  {
48
48
  "id": "ScatterChart:@emotion/styled",
49
49
  "name": "@emotion/styled",
50
- "version": "11.14.0",
50
+ "version": "11.14.1",
51
51
  "singleton": true,
52
- "requiredVersion": "^11.14.0",
52
+ "requiredVersion": "^11.14.1",
53
53
  "assets": {
54
54
  "js": {
55
55
  "async": [],
56
56
  "sync": [
57
- "__mf/js/async/235.65b39c0b.js",
58
- "__mf/js/async/616.f69792d9.js"
57
+ "__mf/js/async/235.0073450e.js",
58
+ "__mf/js/async/616.ca779190.js"
59
59
  ]
60
60
  },
61
61
  "css": {
62
62
  "async": [],
63
63
  "sync": []
64
64
  }
65
- }
65
+ },
66
+ "fallback": ""
66
67
  },
67
68
  {
68
69
  "id": "ScatterChart:@hookform/resolvers",
@@ -74,53 +75,58 @@
74
75
  "js": {
75
76
  "async": [],
76
77
  "sync": [
77
- "__mf/js/async/587.7d986455.js",
78
- "__mf/js/async/968.fe693cc9.js"
78
+ "__mf/js/async/587.ccc8bcd4.js",
79
+ "__mf/js/async/968.9c716b09.js"
79
80
  ]
80
81
  },
81
82
  "css": {
82
83
  "async": [],
83
84
  "sync": []
84
85
  }
85
- }
86
+ },
87
+ "fallback": ""
86
88
  },
87
89
  {
88
90
  "id": "ScatterChart:@perses-dev/components",
89
91
  "name": "@perses-dev/components",
90
- "version": "0.53.1",
92
+ "version": "0.54.0-beta.3",
91
93
  "singleton": true,
92
- "requiredVersion": "^0.53.1",
94
+ "requiredVersion": "^0.54.0-beta.3",
93
95
  "assets": {
94
96
  "js": {
95
97
  "async": [],
96
98
  "sync": [
97
- "__mf/js/async/901.23991dc9.js"
99
+ "__mf/js/async/236.56a42fac.js"
98
100
  ]
99
101
  },
100
102
  "css": {
101
103
  "async": [],
102
- "sync": []
104
+ "sync": [
105
+ "__mf/css/async/236.85c2cbf6.css"
106
+ ]
103
107
  }
104
- }
108
+ },
109
+ "fallback": ""
105
110
  },
106
111
  {
107
112
  "id": "ScatterChart:@perses-dev/plugin-system",
108
113
  "name": "@perses-dev/plugin-system",
109
- "version": "0.53.1",
114
+ "version": "0.54.0-beta.3",
110
115
  "singleton": true,
111
- "requiredVersion": "^0.53.1",
116
+ "requiredVersion": "^0.54.0-beta.3",
112
117
  "assets": {
113
118
  "js": {
114
119
  "async": [],
115
120
  "sync": [
116
- "__mf/js/async/634.0be66d7c.js"
121
+ "__mf/js/async/568.3fc50d63.js"
117
122
  ]
118
123
  },
119
124
  "css": {
120
125
  "async": [],
121
126
  "sync": []
122
127
  }
123
- }
128
+ },
129
+ "fallback": ""
124
130
  },
125
131
  {
126
132
  "id": "ScatterChart:date-fns",
@@ -132,14 +138,15 @@
132
138
  "js": {
133
139
  "async": [],
134
140
  "sync": [
135
- "__mf/js/async/192.bdbd0050.js"
141
+ "__mf/js/async/192.cab71340.js"
136
142
  ]
137
143
  },
138
144
  "css": {
139
145
  "async": [],
140
146
  "sync": []
141
147
  }
142
- }
148
+ },
149
+ "fallback": ""
143
150
  },
144
151
  {
145
152
  "id": "ScatterChart:echarts",
@@ -151,33 +158,35 @@
151
158
  "js": {
152
159
  "async": [],
153
160
  "sync": [
154
- "__mf/js/async/873.5e2131d5.js"
161
+ "__mf/js/async/873.4c238897.js"
155
162
  ]
156
163
  },
157
164
  "css": {
158
165
  "async": [],
159
166
  "sync": []
160
167
  }
161
- }
168
+ },
169
+ "fallback": ""
162
170
  },
163
171
  {
164
172
  "id": "ScatterChart:lodash",
165
173
  "name": "lodash",
166
- "version": "4.17.23",
174
+ "version": "4.18.1",
167
175
  "singleton": true,
168
- "requiredVersion": "^4.17.23",
176
+ "requiredVersion": "^4.18.1",
169
177
  "assets": {
170
178
  "js": {
171
179
  "async": [],
172
180
  "sync": [
173
- "__mf/js/async/392.3493f5ea.js"
181
+ "__mf/js/async/392.2bf509f7.js"
174
182
  ]
175
183
  },
176
184
  "css": {
177
185
  "async": [],
178
186
  "sync": []
179
187
  }
180
- }
188
+ },
189
+ "fallback": ""
181
190
  },
182
191
  {
183
192
  "id": "ScatterChart:react-dom",
@@ -189,14 +198,15 @@
189
198
  "js": {
190
199
  "async": [],
191
200
  "sync": [
192
- "__mf/js/async/470.d8f8455f.js"
201
+ "__mf/js/async/470.7b99bd75.js"
193
202
  ]
194
203
  },
195
204
  "css": {
196
205
  "async": [],
197
206
  "sync": []
198
207
  }
199
- }
208
+ },
209
+ "fallback": ""
200
210
  },
201
211
  {
202
212
  "id": "ScatterChart:react",
@@ -208,14 +218,15 @@
208
218
  "js": {
209
219
  "async": [],
210
220
  "sync": [
211
- "__mf/js/async/121.3d737127.js"
221
+ "__mf/js/async/121.9aac62a4.js"
212
222
  ]
213
223
  },
214
224
  "css": {
215
225
  "async": [],
216
226
  "sync": []
217
227
  }
218
- }
228
+ },
229
+ "fallback": ""
219
230
  },
220
231
  {
221
232
  "id": "ScatterChart:date-fns-tz",
@@ -227,14 +238,15 @@
227
238
  "js": {
228
239
  "async": [],
229
240
  "sync": [
230
- "__mf/js/async/978.a16d507f.js"
241
+ "__mf/js/async/978.6ae2caad.js"
231
242
  ]
232
243
  },
233
244
  "css": {
234
245
  "async": [],
235
246
  "sync": []
236
247
  }
237
- }
248
+ },
249
+ "fallback": ""
238
250
  }
239
251
  ],
240
252
  "remotes": [],
@@ -245,25 +257,23 @@
245
257
  "assets": {
246
258
  "js": {
247
259
  "sync": [
248
- "__mf/js/async/110.81c0553c.js",
249
- "__mf/js/async/414.63cec352.js",
250
- "__mf/js/async/__federation_expose_ScatterChart.7325d09d.js"
260
+ "__mf/js/async/110.34eff628.js",
261
+ "__mf/js/async/__federation_expose_ScatterChart.0112e08c.js"
251
262
  ],
252
263
  "async": [
253
- "__mf/js/async/588.ca097377.js",
254
- "__mf/js/async/71.1f30dc06.js",
255
- "__mf/js/async/356.b0eaf484.js",
256
- "__mf/js/async/864.edd45634.js",
257
- "__mf/js/async/659.1b8b8513.js",
258
- "__mf/js/async/lib-router.67c25249.js",
259
- "__mf/js/async/177.dcbc74ea.js"
264
+ "__mf/js/async/588.4db1394c.js",
265
+ "__mf/js/async/356.49c9bfe6.js",
266
+ "__mf/js/async/71.ae02ccc1.js",
267
+ "__mf/js/async/357.9293af22.js",
268
+ "__mf/js/async/659.9db1a9e6.js",
269
+ "__mf/js/async/lib-router.3e810b61.js",
270
+ "__mf/js/async/177.c9e9e666.js"
260
271
  ]
261
272
  },
262
273
  "css": {
263
274
  "sync": [],
264
275
  "async": [
265
- "__mf/css/async/61.d3010b86.css",
266
- "__mf/css/async/823.d3010b86.css"
276
+ "__mf/css/async/236.85c2cbf6.css"
267
277
  ]
268
278
  }
269
279
  },