Skip to content

Commit

Permalink
Fix externalURL and path prefix issues (#1026)
Browse files Browse the repository at this point in the history
  • Loading branch information
erwinvaneyk authored and cyriltovena committed Sep 19, 2019
1 parent b2cd49a commit 297cc63
Showing 1 changed file with 8 additions and 6 deletions.
14 changes: 8 additions & 6 deletions pkg/promtail/server/server.go
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package server

import (
"context"
"fmt"
"net/http"
"net/url"
"os"
"path"
"sort"
"strings"
"text/template"
Expand Down Expand Up @@ -49,13 +49,15 @@ func New(cfg Config, tms *targets.TargetManagers) (*Server, error) {
if err != nil {
return nil, errors.Wrapf(err, "parse external URL %q", cfg.ExternalURL)
}
cfg.PathPrefix = externalURL.Path

serv := &Server{
Server: wws,
tms: tms,
externalURL: externalURL,
}

serv.HTTP.Path("/").Handler(http.RedirectHandler("/targets", 303))
serv.HTTP.Path("/").Handler(http.RedirectHandler(path.Join(serv.externalURL.Path, "/targets"), 303))
serv.HTTP.Path("/ready").Handler(http.HandlerFunc(serv.ready))
serv.HTTP.PathPrefix("/static/").Handler(http.FileServer(ui.Assets))
serv.HTTP.Path("/service-discovery").Handler(http.HandlerFunc(serv.serviceDiscovery))
Expand All @@ -65,7 +67,7 @@ func New(cfg Config, tms *targets.TargetManagers) (*Server, error) {
}

// serviceDiscovery serves the service discovery page.
func (s *Server) serviceDiscovery(rw http.ResponseWriter, _ *http.Request) {
func (s *Server) serviceDiscovery(rw http.ResponseWriter, req *http.Request) {
var index []string
allTarget := s.tms.AllTargets()
for job := range allTarget {
Expand Down Expand Up @@ -103,7 +105,7 @@ func (s *Server) serviceDiscovery(rw http.ResponseWriter, _ *http.Request) {
}
}

executeTemplate(context.Background(), rw, templateOptions{
executeTemplate(req.Context(), rw, templateOptions{
Data: scrapeConfigData,
BuildVersion: version.Info(),
Name: "service-discovery.html",
Expand Down Expand Up @@ -133,8 +135,8 @@ func (s *Server) serviceDiscovery(rw http.ResponseWriter, _ *http.Request) {
}

// targets serves the targets page.
func (s *Server) targets(rw http.ResponseWriter, _ *http.Request) {
executeTemplate(context.Background(), rw, templateOptions{
func (s *Server) targets(rw http.ResponseWriter, req *http.Request) {
executeTemplate(req.Context(), rw, templateOptions{
Data: struct {
TargetPools map[string][]targets.Target
}{
Expand Down

0 comments on commit 297cc63

Please sign in to comment.