@@ -3,53 +3,66 @@ import { Line } from "@ant-design/plots";
3
3
import styles from "./index.scss" ;
4
4
import MetricLine from "./MetricLine" ;
5
5
import { formatMessage } from "umi/locale" ;
6
+ import { useState } from "react" ;
7
+ import request from "@/utils/request" ;
8
+ import MetricChart from "@/pages/Platform/Overview/components/MetricChart" ;
6
9
7
- export default ( { metrics = { } , renderExtraMetric } ) => {
8
- let newMetrics = Object . values ( metrics ) . map ( ( item ) => {
9
- let key = item . key ;
10
- let units = "" ;
11
- let newData = [ ] ;
12
- item . lines . map ( ( line ) => {
13
- let category = line . metric . label ;
14
- if ( ! units ) {
15
- if ( line . metric . formatType . toLowerCase ( ) == "bytes" ) {
16
- units = line . metric . formatType ;
17
- } else {
18
- units = line . metric . units ;
19
- }
20
- }
21
-
22
- return line . data . map ( ( ld ) => {
23
- newData . push ( {
24
- category : category ,
25
- x : formatter . dateUserDefined ( parseInt ( ld [ 0 ] ) ) ,
26
- y : ld [ 1 ] ,
27
- } ) ;
28
- } ) ;
29
- } ) ;
30
- return { key : key , data : newData , units : units , order : item . order } ;
31
- } ) ;
32
- newMetrics = newMetrics . sort ( ( a , b ) => a . order - b . order ) ;
10
+ export default ( props ) => {
11
+ const { action, timeRange, timezone, timeout, overview, renderExtraMetric, metrics = [ ] , queryParams } = props
33
12
34
13
return (
35
14
< div className = { styles . metricChart } >
36
- { newMetrics . map ( ( item ) => {
37
- if ( [ "node_health" , "parent_breaker" , "index_health" ] . includes ( item . key ) ) {
38
- return null ;
39
- }
40
- let config = {
41
- data : item . data ,
42
- xField : "x" ,
43
- yField : "y" ,
44
- seriesField : "category" ,
45
- title : `${ formatMessage ( {
46
- id : "cluster.metrics.axis." + item . key + ".title" ,
47
- } ) } ${ item . units ? "(" + item . units + ")" : "" } `,
48
- yUnits : item . units ,
49
- } ;
50
- return < MetricLine { ...config } key = { item . key } /> ;
15
+ { metrics . map ( ( metricKey ) => {
16
+ return (
17
+ < MetricChart
18
+ key = { metricKey }
19
+ timezone = { timezone }
20
+ timeRange = { timeRange }
21
+ fetchUrl = { action }
22
+ metricKey = { metricKey }
23
+ title = { formatMessage ( { id : "cluster.metrics.axis." + metricKey + ".title" } ) }
24
+ queryParams = { queryParams }
25
+ timeout = { timeout }
26
+ className = { styles . lineWrapper }
27
+ formatMetric = { ( metric ) => {
28
+ if ( ! metric ) return metric ;
29
+ let units = "" ;
30
+ const newData = [ ] ;
31
+ ( metric . lines || [ ] ) . map ( ( line ) => {
32
+ let category = line . metric . label ;
33
+ if ( ! units ) {
34
+ if ( line . metric . formatType . toLowerCase ( ) == "bytes" ) {
35
+ units = line . metric . formatType ;
36
+ } else {
37
+ units = line . metric . units ;
38
+ }
39
+ }
40
+
41
+ return line . data . map ( ( ld ) => {
42
+ newData . push ( {
43
+ category : category ,
44
+ x : formatter . dateUserDefined ( parseInt ( ld [ 0 ] ) ) ,
45
+ y : ld [ 1 ] ,
46
+ } ) ;
47
+ } ) ;
48
+ } ) ;
49
+ return { ...metric , data : newData , units } ;
50
+ } }
51
+ customRenderChart = { ( metric ) => {
52
+ if ( ! metric ) return null
53
+ const config = {
54
+ data : metric . data ,
55
+ xField : "x" ,
56
+ yField : "y" ,
57
+ seriesField : "category" ,
58
+ yUnits : metric . units ,
59
+ } ;
60
+ return < MetricLine { ...config } key = { metric . key } />
61
+ } }
62
+ />
63
+ )
51
64
} ) }
52
65
{ renderExtraMetric ? renderExtraMetric ( ) : null }
53
66
</ div >
54
67
) ;
55
- } ;
68
+ } ;
0 commit comments