diff --git a/core/stores/redis/metrics.go b/core/stores/redis/metrics.go index 955091e2..fe3ce9cc 100644 --- a/core/stores/redis/metrics.go +++ b/core/stores/redis/metrics.go @@ -34,11 +34,9 @@ var ( Labels: []string{"command"}, }) - connLabels = []string{"key", "client_type"} - - connCollector = newCollector() - - _ prometheus.Collector = (*collector)(nil) + connLabels = []string{"key", "client_type"} + connCollector = newCollector() + _ prometheus.Collector = (*collector)(nil) ) type ( diff --git a/core/stores/sqlx/metrics.go b/core/stores/sqlx/metrics.go index 842439fe..1092c9a2 100644 --- a/core/stores/sqlx/metrics.go +++ b/core/stores/sqlx/metrics.go @@ -34,11 +34,9 @@ var ( Labels: []string{"command"}, }) - connLabels = []string{"db_name", "hash"} - - connCollector = newCollector() - - _ prometheus.Collector = (*collector)(nil) + connLabels = []string{"db_name", "hash"} + connCollector = newCollector() + _ prometheus.Collector = (*collector)(nil) ) type ( @@ -143,15 +141,24 @@ func (c *collector) Collect(ch chan<- prometheus.Metric) { for _, client := range c.clients { dbName, hash := client.dbName, client.hash stats := client.poolStats() - ch <- prometheus.MustNewConstMetric(c.maxOpenConnections, prometheus.GaugeValue, float64(stats.MaxOpenConnections), dbName, hash) - ch <- prometheus.MustNewConstMetric(c.openConnections, prometheus.GaugeValue, float64(stats.OpenConnections), dbName, hash) - ch <- prometheus.MustNewConstMetric(c.inUseConnections, prometheus.GaugeValue, float64(stats.InUse), dbName, hash) - ch <- prometheus.MustNewConstMetric(c.idleConnections, prometheus.GaugeValue, float64(stats.Idle), dbName, hash) - ch <- prometheus.MustNewConstMetric(c.waitCount, prometheus.CounterValue, float64(stats.WaitCount), dbName, hash) - ch <- prometheus.MustNewConstMetric(c.waitDuration, prometheus.CounterValue, stats.WaitDuration.Seconds(), dbName, hash) - ch <- prometheus.MustNewConstMetric(c.maxIdleClosed, prometheus.CounterValue, float64(stats.MaxIdleClosed), dbName, hash) - ch <- prometheus.MustNewConstMetric(c.maxLifetimeClosed, prometheus.CounterValue, float64(stats.MaxLifetimeClosed), dbName, hash) - ch <- prometheus.MustNewConstMetric(c.maxIdleTimeClosed, prometheus.CounterValue, float64(stats.MaxIdleTimeClosed), dbName, hash) + ch <- prometheus.MustNewConstMetric(c.maxOpenConnections, prometheus.GaugeValue, + float64(stats.MaxOpenConnections), dbName, hash) + ch <- prometheus.MustNewConstMetric(c.openConnections, prometheus.GaugeValue, + float64(stats.OpenConnections), dbName, hash) + ch <- prometheus.MustNewConstMetric(c.inUseConnections, prometheus.GaugeValue, + float64(stats.InUse), dbName, hash) + ch <- prometheus.MustNewConstMetric(c.idleConnections, prometheus.GaugeValue, + float64(stats.Idle), dbName, hash) + ch <- prometheus.MustNewConstMetric(c.waitCount, prometheus.CounterValue, + float64(stats.WaitCount), dbName, hash) + ch <- prometheus.MustNewConstMetric(c.waitDuration, prometheus.CounterValue, + stats.WaitDuration.Seconds(), dbName, hash) + ch <- prometheus.MustNewConstMetric(c.maxIdleClosed, prometheus.CounterValue, + float64(stats.MaxIdleClosed), dbName, hash) + ch <- prometheus.MustNewConstMetric(c.maxLifetimeClosed, prometheus.CounterValue, + float64(stats.MaxLifetimeClosed), dbName, hash) + ch <- prometheus.MustNewConstMetric(c.maxIdleTimeClosed, prometheus.CounterValue, + float64(stats.MaxIdleTimeClosed), dbName, hash) } } diff --git a/rest/httpc/internal/metricsinterceptor.go b/rest/httpc/internal/metricsinterceptor.go index 38cbb84c..99835f92 100644 --- a/rest/httpc/internal/metricsinterceptor.go +++ b/rest/httpc/internal/metricsinterceptor.go @@ -31,26 +31,24 @@ var ( }) ) -type ( - MetricsURLRewriter func(u url.URL) string -) +type MetricsURLRewriter func(u url.URL) string func MetricsInterceptor(name string, pr MetricsURLRewriter) Interceptor { return func(r *http.Request) (*http.Request, ResponseHandler) { startTime := timex.Now() return r, func(resp *http.Response, err error) { - u := cleanURL(*r.URL) - method := r.Method - var ( - code int - path string - ) + var code int + var path string + // error or resp is nil, set code=500 if err != nil || resp == nil { code = http.StatusInternalServerError } else { code = resp.StatusCode } + + u := cleanURL(*r.URL) + method := r.Method if pr != nil { path = pr(u) } else { diff --git a/tools/goctl/internal/version/version.go b/tools/goctl/internal/version/version.go index 89b15b2e..c1f3947c 100644 --- a/tools/goctl/internal/version/version.go +++ b/tools/goctl/internal/version/version.go @@ -6,7 +6,7 @@ import ( ) // BuildVersion is the version of goctl. -const BuildVersion = "1.5.6" +const BuildVersion = "1.6.0" var tag = map[string]int{"pre-alpha": 0, "alpha": 1, "pre-bata": 2, "beta": 3, "released": 4, "": 5}