github.com/GuanceCloud/cliutils@v1.1.21/prom2metrics_test.go (about) 1 // Unless explicitly stated otherwise all files in this repository are licensed 2 // under the MIT License. 3 // This product includes software developed at Guance Cloud (https://www.guance.com/). 4 // Copyright 2021-present Guance, Inc. 5 6 package cliutils 7 8 import ( 9 "strings" 10 "testing" 11 "time" 12 ) 13 14 const data1 = ` 15 # HELP go_gc_duration_seconds A summary of the GC invocation durations. 16 # TYPE go_gc_duration_seconds summary 17 go_gc_duration_seconds{quantile="0"} 7.4545e-05 18 go_gc_duration_seconds{quantile="0.25"} 7.6999e-05 19 go_gc_duration_seconds{quantile="0.5"} 0.000277935 20 go_gc_duration_seconds{quantile="0.75"} 0.000706591 21 go_gc_duration_seconds{quantile="1"} 0.000706591 22 go_gc_duration_seconds_sum 0.00113607 23 go_gc_duration_seconds_count 4 24 # HELP go_goroutines Number of goroutines that currently exist. 25 # TYPE go_goroutines gauge 26 go_goroutines 15 27 # HELP cpu_usage_user Telegraf collected metric 28 # TYPE cpu_usage_user gauge 29 cpu_usage_user{cpu="cpu0"} 1.4112903225816156 30 cpu_usage_user{cpu="cpu1"} 0.702106318955865 31 cpu_usage_user{cpu="cpu2"} 2.0161290322588776 32 cpu_usage_user{cpu="cpu3"} 1.5045135406226022 33 ` 34 35 const data2 = ` 36 # HELP confluence_user_logout_count User Logout Count 37 # TYPE confluence_user_logout_count counter 38 confluence_user_logout_count{username="admin",ip="",} 2.0 39 # HELP confluence_user_failed_login_count User Failed Login Count 40 # TYPE confluence_user_failed_login_count counter 41 # HELP confluence_request_duration_on_path Request duration on path 42 # TYPE confluence_request_duration_on_path histogram 43 confluence_request_duration_on_path_bucket{path="/rest",le="0.005",} 0.0 44 confluence_request_duration_on_path_bucket{path="/rest",le="0.01",} 4.0 45 confluence_request_duration_on_path_bucket{path="/rest",le="0.025",} 5.0 46 confluence_request_duration_on_path_bucket{path="/rest",le="0.05",} 5.0 47 confluence_request_duration_on_path_bucket{path="/rest",le="0.075",} 5.0 48 confluence_request_duration_on_path_bucket{path="/rest",le="0.1",} 5.0 49 confluence_request_duration_on_path_bucket{path="/rest",le="0.25",} 5.0 50 confluence_request_duration_on_path_bucket{path="/rest",le="0.5",} 5.0 51 confluence_request_duration_on_path_bucket{path="/rest",le="0.75",} 5.0 52 confluence_request_duration_on_path_bucket{path="/rest",le="1.0",} 5.0 53 confluence_request_duration_on_path_bucket{path="/rest",le="2.5",} 6.0 54 confluence_request_duration_on_path_bucket{path="/rest",le="5.0",} 6.0 55 confluence_request_duration_on_path_bucket{path="/rest",le="7.5",} 6.0 56 confluence_request_duration_on_path_bucket{path="/rest",le="10.0",} 6.0 57 confluence_request_duration_on_path_bucket{path="/rest",le="+Inf",} 6.0 58 confluence_request_duration_on_path_count{path="/rest",} 6.0 59 confluence_request_duration_on_path_sum{path="/rest",} 2.336312921 60 confluence_request_duration_on_path_bucket{path="/plugins",le="0.005",} 0.0 61 confluence_request_duration_on_path_bucket{path="/plugins",le="0.01",} 0.0 62 confluence_request_duration_on_path_bucket{path="/plugins",le="0.025",} 0.0 63 confluence_request_duration_on_path_bucket{path="/plugins",le="0.05",} 1.0 64 confluence_request_duration_on_path_bucket{path="/plugins",le="0.075",} 1.0 65 confluence_request_duration_on_path_bucket{path="/plugins",le="0.1",} 1.0 66 confluence_request_duration_on_path_bucket{path="/plugins",le="0.25",} 3.0 67 confluence_request_duration_on_path_bucket{path="/plugins",le="0.5",} 5.0 68 confluence_request_duration_on_path_bucket{path="/plugins",le="0.75",} 5.0 69 confluence_request_duration_on_path_bucket{path="/plugins",le="1.0",} 5.0 70 confluence_request_duration_on_path_bucket{path="/plugins",le="2.5",} 5.0 71 confluence_request_duration_on_path_bucket{path="/plugins",le="5.0",} 5.0 72 confluence_request_duration_on_path_bucket{path="/plugins",le="7.5",} 5.0 73 confluence_request_duration_on_path_bucket{path="/plugins",le="10.0",} 5.0 74 confluence_request_duration_on_path_bucket{path="/plugins",le="+Inf",} 5.0 75 confluence_request_duration_on_path_count{path="/plugins",} 5.0 76 confluence_request_duration_on_path_sum{path="/plugins",} 0.971921824 77 # HELP confluence_total_cluster_nodes_gauge Total Cluster Nodes Gauge 78 # TYPE confluence_total_cluster_nodes_gauge gauge 79 confluence_total_cluster_nodes_gauge 0.0 80 ` 81 82 const data3 = ` 83 # HELP jvm_gc_collection_seconds Time spent in a given JVM garbage collector in seconds. 84 # TYPE jvm_gc_collection_seconds summary 85 jvm_gc_collection_seconds_count{gc="G1 Young Generation",} 129.0 86 jvm_gc_collection_seconds_sum{gc="G1 Young Generation",} 4.615 87 jvm_gc_collection_seconds_count{gc="G1 Old Generation",} 0.0 88 jvm_gc_collection_seconds_sum{gc="G1 Old Generation",} 0.0 89 ` 90 91 func TestProm2Metrics(t *testing.T) { 92 const measurementPrefix = "confluence" 93 const defaultMeasurement = "confluence" 94 95 data := strings.NewReader(data1) 96 // data := strings.NewReader(data2) 97 // data := strings.NewReader(data3) 98 pts, err := PromTextToMetrics(data, measurementPrefix, defaultMeasurement, time.Now()) 99 if err != nil { 100 panic(err) 101 } 102 103 for _, pt := range pts { 104 t.Log(pt) 105 } 106 }