package handler
import (
"github.com/goodrain/rainbond/api/client/prometheus"
"github.com/goodrain/rainbond/pkg/component/prom"
)
type MonitorHandler interface {
GetTenantMonitorMetrics(tenantID string) []prometheus.Metadata
GetAppMonitorMetrics(tenantID, appID string) []prometheus.Metadata
GetComponentMonitorMetrics(tenantID, componentID string) []prometheus.Metadata
}
func NewMonitorHandler() MonitorHandler {
return &monitorHandler{cli: prom.Default().PrometheusCli}
}
type monitorHandler struct {
cli prometheus.Interface
}
func (m *monitorHandler) GetTenantMonitorMetrics(tenantID string) []prometheus.Metadata {
return m.cli.GetMetadata(tenantID)
}
func (m *monitorHandler) GetAppMonitorMetrics(tenantID, appID string) []prometheus.Metadata {
return m.cli.GetAppMetadata(tenantID, appID)
}
func (m *monitorHandler) GetComponentMonitorMetrics(tenantID, componentID string) []prometheus.Metadata {
return m.cli.GetComponentMetadata(tenantID, componentID)
}