37 lines
1.2 KiB
Go
37 lines
1.2 KiB
Go
package stats
|
|
|
|
import (
|
|
"log"
|
|
"os"
|
|
"strings"
|
|
)
|
|
|
|
// NewProvider создаёт StatsProvider из переменных окружения.
|
|
//
|
|
// Переменные:
|
|
// - GRAFANA_INTERNAL_URL — внутренний URL (http://grafana.grafana.svc.cluster.local:3000)
|
|
// - GRAFANA_PUBLIC_URL — публичный URL для ссылок (https://fission.kube5s.ru/grafana)
|
|
// - GRAFANA_ADMIN_USER — имя admin (default: "admin")
|
|
// - GRAFANA_ADMIN_PASS — пароль admin
|
|
func NewProvider() StatsProvider {
|
|
internalURL := strings.TrimSpace(os.Getenv("GRAFANA_INTERNAL_URL"))
|
|
if internalURL == "" {
|
|
log.Printf("stats: GRAFANA_INTERNAL_URL not set — using NoopProvider")
|
|
return NoopProvider{}
|
|
}
|
|
|
|
publicURL := strings.TrimSpace(os.Getenv("GRAFANA_PUBLIC_URL"))
|
|
if publicURL == "" {
|
|
publicURL = "https://fission.kube5s.ru/grafana"
|
|
}
|
|
|
|
adminUser := strings.TrimSpace(os.Getenv("GRAFANA_ADMIN_USER"))
|
|
if adminUser == "" {
|
|
adminUser = "admin"
|
|
}
|
|
adminPass := os.Getenv("GRAFANA_ADMIN_PASS")
|
|
|
|
log.Printf("stats: GrafanaProvider internalURL=%s publicURL=%s user=%s", internalURL, publicURL, adminUser)
|
|
return NewGrafanaProvider(internalURL, publicURL, adminUser, adminPass)
|
|
}
|