mirror of
https://github.com/grafana/grafana.git
synced 2024-11-21 16:38:03 -06:00
More work on getting grafana pro to work in sub url
This commit is contained in:
parent
f25a415a9e
commit
4cc8a9bd18
1
.gitignore
vendored
1
.gitignore
vendored
@ -19,3 +19,4 @@ data/*.db
|
||||
data/log
|
||||
/bin/*
|
||||
/grafana-pro
|
||||
grafana.custom.ini
|
||||
|
@ -1,38 +1,9 @@
|
||||
app_name = Grafana
|
||||
app_mode = development
|
||||
|
||||
[server]
|
||||
protocol = http
|
||||
domain = localhost
|
||||
root_url = %(protocol)s://%(domain)s:%(http_port)s/
|
||||
http_addr =
|
||||
http_port = 3000
|
||||
router_logging = false
|
||||
static_root_path = grafana/src
|
||||
|
||||
[session]
|
||||
; Either "memory", "file", default is "memory"
|
||||
provider = file
|
||||
; Provider config options
|
||||
; memory: not have any config yet
|
||||
; file: session file path, e.g. `data/sessions`
|
||||
; redis: config like redis server addr, poolSize, password, e.g. `127.0.0.1:6379,100,grafana`
|
||||
; mysql: go-sql-driver/mysql dsn config string, e.g. `root:password@/session_table`
|
||||
provider_config = data/sessions
|
||||
; Session cookie name
|
||||
cookie_name = grafana_sess
|
||||
; If you use session in https only, default is false
|
||||
cookie_secure = false
|
||||
; Enable set cookie, default is true
|
||||
enable_set_cookie = true
|
||||
; Session GC time interval, default is 86400
|
||||
gc_time_interval = 86400
|
||||
; Session life time, default is 86400
|
||||
session_life_time = 86400
|
||||
; session id hash func, Either "sha1", "sha256" or "md5" default is sha1
|
||||
session_id_hashfunc = sha1
|
||||
; Session hash key, default is use random string
|
||||
session_id_hashkey =
|
||||
root_url = %(protocol)s://%(domain)s:%(http_port)s/
|
||||
|
||||
[oauth]
|
||||
enabled = true
|
||||
@ -53,56 +24,4 @@ scopes = https://www.googleapis.com/auth/userinfo.profile https://www.googleapis
|
||||
auth_url = https://accounts.google.com/o/oauth2/auth
|
||||
token_url = https://accounts.google.com/o/oauth2/token
|
||||
|
||||
[database]
|
||||
; Either "mysql", "postgres" or "sqlite3", it's your choice
|
||||
type = sqlite3
|
||||
host = 127.0.0.1:3306
|
||||
name = grafana
|
||||
user = root
|
||||
PASSWD =
|
||||
; For "postgres" only, either "disable", "require" or "verify-full"
|
||||
ssl_mode = disable
|
||||
; For "sqlite3" only
|
||||
path = data/grafana.db
|
||||
|
||||
; [database]
|
||||
; ; Either "mysql", "postgres" or "sqlite3", it's your choice
|
||||
; type = postgres
|
||||
; host = 127.0.0.1:5432
|
||||
; name = grafana
|
||||
; user = grafana
|
||||
; password = grafana
|
||||
; ; For "postgres" only, either "disable", "require" or "verify-full"
|
||||
; ssl_mode = disable
|
||||
; ; For "sqlite3" only
|
||||
; path = data/grafana.db
|
||||
;
|
||||
[log]
|
||||
root_path =
|
||||
; Either "console", "file", "conn", "smtp" or "database", default is "console"
|
||||
; Use comma to separate multiple modes, e.g. "console, file"
|
||||
mode = console
|
||||
; Buffer length of channel, keep it as it is if you don't know what it is.
|
||||
buffer_len = 10000
|
||||
; Either "Trace", "Debug", "Info", "Warn", "Error", "Critical", default is "Trace"
|
||||
level = Trace
|
||||
|
||||
; For "console" mode only
|
||||
[log.console]
|
||||
level =
|
||||
|
||||
; For "file" mode only
|
||||
[log.file]
|
||||
level =
|
||||
; This enables automated log rotate(switch of following options), default is true
|
||||
log_rotate = true
|
||||
; Max line number of single file, default is 1000000
|
||||
max_lines = 1000000
|
||||
; Max size shift of single file, default is 28 means 1 << 28, 256MB
|
||||
max_lines_shift = 28
|
||||
; Segment log daily, default is true
|
||||
daily_rotate = true
|
||||
; Expired days of log file(delete after max days), default is 7
|
||||
max_days = 7
|
||||
|
||||
|
||||
|
2
grafana
2
grafana
@ -1 +1 @@
|
||||
Subproject commit 5feed2344ab8a5eb65ffeda9ccae8b768e9b8764
|
||||
Subproject commit 9be53f0a79753d22205a5db6ac42aa1e455a58c3
|
@ -6,6 +6,7 @@ import (
|
||||
"github.com/torkelo/grafana-pro/pkg/bus"
|
||||
"github.com/torkelo/grafana-pro/pkg/middleware"
|
||||
m "github.com/torkelo/grafana-pro/pkg/models"
|
||||
"github.com/torkelo/grafana-pro/pkg/setting"
|
||||
)
|
||||
|
||||
func getFrontendSettings(c *middleware.Context) (map[string]interface{}, error) {
|
||||
@ -28,7 +29,7 @@ func getFrontendSettings(c *middleware.Context) (map[string]interface{}, error)
|
||||
url := ds.Url
|
||||
|
||||
if ds.Access == m.DS_ACCESS_PROXY {
|
||||
url = "/api/datasources/proxy/" + strconv.FormatInt(ds.Id, 10)
|
||||
url = setting.AppSubUrl + "/api/datasources/proxy/" + strconv.FormatInt(ds.Id, 10)
|
||||
}
|
||||
|
||||
var dsMap = map[string]interface{}{
|
||||
@ -56,12 +57,12 @@ func getFrontendSettings(c *middleware.Context) (map[string]interface{}, error)
|
||||
// add grafana backend data source
|
||||
datasources["grafana"] = map[string]interface{}{
|
||||
"type": "grafana",
|
||||
"url": "",
|
||||
"grafanaDB": true,
|
||||
}
|
||||
|
||||
jsonObj := map[string]interface{}{
|
||||
"datasources": datasources,
|
||||
"appSubUrl": setting.AppSubUrl,
|
||||
}
|
||||
|
||||
return jsonObj, nil
|
||||
|
@ -80,39 +80,49 @@ func getWorkDir() string {
|
||||
return p
|
||||
}
|
||||
|
||||
func findConfigFile() string {
|
||||
func findConfigFiles() []string {
|
||||
WorkDir = getWorkDir()
|
||||
ConfRootPath = path.Join(WorkDir, "conf")
|
||||
filenames := make([]string, 0)
|
||||
|
||||
configFile := path.Join(ConfRootPath, "grafana.ini")
|
||||
//log.Info("Looking for config file: %v", configFile)
|
||||
if com.IsFile(configFile) {
|
||||
return configFile
|
||||
}
|
||||
configFile = path.Join(ConfRootPath, "grafana.dev.ini")
|
||||
//log.Info("Looking for config file: %v", configFile)
|
||||
if com.IsFile(configFile) {
|
||||
return configFile
|
||||
}
|
||||
configFile = path.Join(ConfRootPath, "grafana.example.ini")
|
||||
//log.Info("Looking for config file: %v", configFile)
|
||||
if com.IsFile(configFile) {
|
||||
return configFile
|
||||
filenames = append(filenames, configFile)
|
||||
}
|
||||
|
||||
log.Fatal(3, "Could not find any config file")
|
||||
return ""
|
||||
configFile = path.Join(ConfRootPath, "grafana.dev.ini")
|
||||
if com.IsFile(configFile) {
|
||||
filenames = append(filenames, configFile)
|
||||
}
|
||||
|
||||
configFile = path.Join(ConfRootPath, "grafana.custom.ini")
|
||||
if com.IsFile(configFile) {
|
||||
filenames = append(filenames, configFile)
|
||||
}
|
||||
|
||||
if len(filenames) == 0 {
|
||||
log.Fatal(3, "Could not find any config file")
|
||||
}
|
||||
|
||||
return filenames
|
||||
}
|
||||
|
||||
func NewConfigContext() {
|
||||
configFile := findConfigFile()
|
||||
configFiles := findConfigFiles()
|
||||
|
||||
log.Info("Loading config file: %v", configFile)
|
||||
log.Info("Loading config files: %v", configFiles)
|
||||
var err error
|
||||
|
||||
Cfg, err = goconfig.LoadConfigFile(configFile)
|
||||
Cfg, err = goconfig.LoadConfigFile(configFiles[0])
|
||||
if err != nil {
|
||||
log.Fatal(4, "Fail to parse %v, error: %v", configFile, err)
|
||||
log.Fatal(4, "Fail to parse config file, error: %v", err)
|
||||
}
|
||||
|
||||
if len(configFiles) > 1 {
|
||||
err = Cfg.AppendFiles(configFiles[1:]...)
|
||||
if err != nil {
|
||||
log.Fatal(4, "Fail to parse config file, error: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
AppName = Cfg.MustValue("", "app_name", "Grafana")
|
||||
@ -128,7 +138,6 @@ func NewConfigContext() {
|
||||
}
|
||||
|
||||
AppSubUrl = strings.TrimSuffix(url.Path, "/")
|
||||
log.Info("AppSubUrl: %v", AppSubUrl)
|
||||
|
||||
Protocol = HTTP
|
||||
if Cfg.MustValue("server", "protocol") == "https" {
|
||||
|
Loading…
Reference in New Issue
Block a user