api: list metric labels and values

Signed-off-by: huanggze <loganhuang@yunify.com>
This commit is contained in:
huanggze
2020-05-15 10:18:52 +08:00
parent d80cbff938
commit 8b913abd61
12 changed files with 362 additions and 1 deletions

View File

@@ -19,6 +19,7 @@
package v1alpha3
import (
"errors"
"github.com/emicklei/go-restful"
"k8s.io/client-go/kubernetes"
"kubesphere.io/kubesphere/pkg/api"
@@ -198,6 +199,30 @@ func (h handler) handleMetadataQuery(req *restful.Request, resp *restful.Respons
resp.WriteAsJson(res)
}
func (h handler) handleMetricLabelSetQuery(req *restful.Request, resp *restful.Response) {
var res model.MetricLabelSet
params := parseRequestParams(req)
if params.metric == "" || params.start == "" || params.end == "" {
api.HandleBadRequest(resp, nil, errors.New("required fields are missing: [metric, start, end]"))
return
}
opt, err := h.makeQueryOptions(params, 0)
if err != nil {
if err.Error() == ErrNoHit {
resp.WriteAsJson(res)
return
}
api.HandleBadRequest(resp, nil, err)
return
}
res = h.mo.GetMetricLabelSet(params.metric, params.namespaceName, opt.start, opt.end)
resp.WriteAsJson(res)
}
func (h handler) handleAdhocQuery(req *restful.Request, resp *restful.Response) {
var res monitoring.Metric