You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by li...@apache.org on 2023/03/23 05:23:17 UTC
[dubbo-admin] branch refactor-with-go updated: monitor -- cluster overview (#1053)
This is an automated email from the ASF dual-hosted git repository.
liujun pushed a commit to branch refactor-with-go
in repository https://gitbox.apache.org/repos/asf/dubbo-admin.git
The following commit(s) were added to refs/heads/refactor-with-go by this push:
new ad77fc60 monitor -- cluster overview (#1053)
ad77fc60 is described below
commit ad77fc60659ed32b8db86862ba51a4218d754f17
Author: 无言独上机房 <88...@users.noreply.github.com>
AuthorDate: Thu Mar 23 13:23:08 2023 +0800
monitor -- cluster overview (#1053)
---
pkg/admin/services/prometheus_service_impl.go | 56 ++++++++++++++++++++++++++-
1 file changed, 55 insertions(+), 1 deletion(-)
diff --git a/pkg/admin/services/prometheus_service_impl.go b/pkg/admin/services/prometheus_service_impl.go
index 9d272014..0e570c6a 100644
--- a/pkg/admin/services/prometheus_service_impl.go
+++ b/pkg/admin/services/prometheus_service_impl.go
@@ -19,6 +19,7 @@ import (
"context"
"fmt"
"net/http"
+ "strconv"
"time"
"github.com/prometheus/client_golang/api"
@@ -31,10 +32,63 @@ import (
"github.com/apache/dubbo-admin/pkg/monitor/prometheus"
)
+var (
+ providerService ProviderService = &ProviderServiceImpl{}
+ consumerService ConsumerService = &ConsumerServiceImpl{}
+)
+
type PrometheusServiceImpl struct{}
func (p *PrometheusServiceImpl) ClusterMetrics() ([]model.Response, error) {
- return nil, nil
+ res := make([]model.Response, 5)
+ applications, err := providerService.FindApplications()
+ appNum := 0
+ if err != nil {
+ logger.Sugar().Errorf("Error find applications: %v\n", err)
+ res[0].Status = http.StatusInternalServerError
+ res[0].Data = ""
+ } else {
+ appNum = len(applications)
+ res[0].Status = http.StatusOK
+ res[0].Data = strconv.Itoa(appNum)
+ }
+ services, err := providerService.FindServices()
+ svc := 0
+ if err != nil {
+ logger.Sugar().Errorf("Error find services: %v\n", err)
+ res[1].Status = http.StatusInternalServerError
+ res[1].Data = ""
+ } else {
+ svc = len(services)
+ res[1].Status = http.StatusOK
+ res[1].Data = strconv.Itoa(svc)
+ }
+ providers, err := providerService.FindService(constant.IP, constant.AnyValue)
+ pro := 0
+ if err != nil {
+ logger.Sugar().Errorf("Error find providers: %v\n", err)
+ res[2].Status = http.StatusInternalServerError
+ res[2].Data = ""
+ } else {
+ pro = len(providers)
+ res[2].Status = http.StatusOK
+ res[2].Data = strconv.Itoa(pro)
+ }
+ consumers, err := consumerService.FindAll()
+ con := 0
+ if err != nil {
+ logger.Sugar().Errorf("Error find consumers: %v\n", err)
+ res[3].Status = http.StatusInternalServerError
+ res[3].Data = ""
+ } else {
+ con = len(consumers)
+ res[3].Status = http.StatusOK
+ res[3].Data = strconv.Itoa(con)
+ }
+ allInstance := pro + con
+ res[5].Status = http.StatusOK
+ res[5].Data = strconv.Itoa(allInstance)
+ return res, nil
}
func (p *PrometheusServiceImpl) FlowMetrics() ([]model.Response, error) {