github.com/go-graphite/carbonapi@v0.17.0/cmd/carbonapi/http/version_handler.go (about)

     1  package http
     2  
     3  import (
     4  	"net/http"
     5  	"time"
     6  
     7  	"github.com/go-graphite/carbonapi/carbonapipb"
     8  	"github.com/go-graphite/carbonapi/cmd/carbonapi/config"
     9  	"github.com/lomik/zapwriter"
    10  	"go.uber.org/zap"
    11  )
    12  
    13  func versionHandler(w http.ResponseWriter, r *http.Request) {
    14  	t0 := time.Now()
    15  	accessLogger := zapwriter.Logger("access")
    16  
    17  	if config.Config.GraphiteWeb09Compatibility {
    18  		_, _ = w.Write([]byte("0.9.15\n"))
    19  	} else {
    20  		_, _ = w.Write([]byte("1.1.0\n"))
    21  	}
    22  
    23  	srcIP, srcPort := splitRemoteAddr(r.RemoteAddr)
    24  	var accessLogDetails = carbonapipb.AccessLogDetails{
    25  		Handler:  "version",
    26  		URL:      r.URL.RequestURI(),
    27  		PeerIP:   srcIP,
    28  		PeerPort: srcPort,
    29  		Host:     r.Host,
    30  		Referer:  r.Referer(),
    31  		Runtime:  time.Since(t0).Seconds(),
    32  		HTTPCode: http.StatusOK,
    33  		URI:      r.RequestURI,
    34  	}
    35  	accessLogger.Info("request served", zap.Any("data", accessLogDetails))
    36  }