@@ -14,16 +14,15 @@ import (
1414)
1515
1616var (
17- promHost string
18- promPort string
19- startStamp string
20- endStamp string
21- query string
22- step string
23- dataDir string
24- importstatus bool
25- targetDir string
26- metricType string
17+ promHost string
18+ promPort string
19+ startStamp string
20+ endStamp string
21+ query string
22+ step string
23+ dataDir string
24+ targetDir string
25+ metricType string
2726)
2827
2928func newPrometheusHandler (host string ) prom.Prometheus {
@@ -33,6 +32,7 @@ func newPrometheusHandler(host string) prom.Prometheus {
3332func CallPrometheus () {
3433
3534 var promHandler prom.Prometheus
35+
3636 promHandler = newPrometheusHandler (promHost )
3737 rawMetricData := []string {}
3838
@@ -65,40 +65,20 @@ func CallPrometheus() {
6565 return
6666 }
6767
68+ ch := make (chan interface {}, len (results ))
6869 for _ , r := range results {
69-
70- result , ok := r .(map [string ]interface {})
71- if ! ok {
72- continue
73- }
74-
75- labelMap := []string {}
76- metric , ok := result ["metric" ].(map [string ]interface {})
77- if ! ok {
78- continue
79- }
80- metricName , ok := metric ["__name__" ].(string )
81- if ok {
82- for key , value := range metric {
83-
84- if key != "__name__" {
85- labelMap = append (labelMap , fmt .Sprintf (`%s="%s"` , key , value ))
86- }
87- }
88- query := fmt .Sprintf (`%s{%s}` , metricName , strings .Join (labelMap , "," ))
89-
90- values , ok := result ["values" ].([]interface {})
91- if ok {
92- for _ , v := range values {
93- valArr , ok := v .([]interface {})
94- if ok && len (valArr ) == 2 {
95- tmpData := fmt .Sprintf ("%s %v %f" , query , valArr [1 ], valArr [0 ])
96- rawMetricData = append (rawMetricData , tmpData )
97- }
98- }
99- }
70+ ch <- r
71+ go promHandler .ParsePrometheusMetric (ch )
72+ }
73+ lengthOfMigration := 0
74+ for val := range ch {
75+ msg := val .(map [string ]interface {})
76+ tmpData := fmt .Sprintf ("%v" , msg ["mt" ])
77+ lengthOfMigration = lengthOfMigration + len (tmpData )
78+ log .Info ().Msgf ("Size of migrated chunks:: %d" , lengthOfMigration )
79+ if msg ["mt" ] != nil {
80+ rawMetricData = append (rawMetricData , tmpData )
10081 }
101-
10282 }
10383 rawMetricData = append (rawMetricData , "# EOF" )
10484
@@ -116,6 +96,7 @@ func CallPrometheus() {
11696}
11797
11898func main () {
99+
119100 var rootCmd = & cobra.Command {
120101 Use : "openmetricmigrator" ,
121102 Short : "CLI tool to export Prometheus data in OpenMetrics format" ,
0 commit comments