Merge pull request #33 from influxdata/js-transpilerd-logger

feat(cmd/transpilerd): follow the logging style guide for transpilerd
pull/10616/head
Jonathan A. Sternberg 2018-05-23 12:28:15 -05:00 committed by GitHub
commit 367793c1bd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 14 deletions

View File

@ -1,21 +1,28 @@
package main package main
import ( import (
"fmt" "context"
"log"
"os" "os"
"strings" "strings"
influxlogger "github.com/influxdata/influxdb/logger"
"github.com/influxdata/platform/http" "github.com/influxdata/platform/http"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"github.com/spf13/viper" "github.com/spf13/viper"
"go.uber.org/zap"
) )
var transpileCmd = &cobra.Command{ var transpileCmd = &cobra.Command{
Use: "transpilerd", Use: "transpilerd",
Short: "Transpiler Query Server", Short: "Transpiler Query Server",
Run: transpileF, Run: func(cmd *cobra.Command, args []string) {
logger := influxlogger.New(os.Stdout)
if err := transpileF(cmd, logger, args); err != nil && err != context.Canceled {
logger.Error("Encountered fatal error", zap.String("error", err.Error()))
os.Exit(1)
}
},
} }
// Flags contains all the CLI flag values for transpilerd. // Flags contains all the CLI flag values for transpilerd.
@ -41,16 +48,19 @@ func init() {
viper.BindPFlag("IFQLD_HOSTS", transpileCmd.PersistentFlags().Lookup("ifqld-hosts")) viper.BindPFlag("IFQLD_HOSTS", transpileCmd.PersistentFlags().Lookup("ifqld-hosts"))
} }
func transpileF(cmd *cobra.Command, args []string) { func transpileF(cmd *cobra.Command, logger *zap.Logger, args []string) error {
hosts, err := discoverHosts() hosts, err := discoverHosts()
if err != nil { if err != nil {
log.Fatal(err) return err
} else if len(hosts) == 0 { } else if len(hosts) == 0 {
log.Fatal("no ifqld hosts found") return errors.New("no ifqld hosts found")
} }
// TODO(nathanielc): Allow QueryService to use multiple hosts.
logger.Info("Using ifqld service", zap.Strings("hosts", hosts))
transpileHandler := http.NewTranspilerQueryHandler() transpileHandler := http.NewTranspilerQueryHandler()
transpileHandler.QueryService = &http.QueryService{ transpileHandler.QueryService = &http.QueryService{
//TODO(nathanielc): Allow QueryService to use multiple hosts.
Addr: hosts[0], Addr: hosts[0],
} }
@ -59,15 +69,12 @@ func transpileF(cmd *cobra.Command, args []string) {
handler := http.NewHandler("transpile") handler := http.NewHandler("transpile")
handler.Handler = transpileHandler handler.Handler = transpileHandler
log.Printf("Starting transpilerd on %s\n", flags.bindAddr) logger.Info("Starting transpilerd", zap.String("bind_addr", flags.bindAddr))
if err := http.ListenAndServe(flags.bindAddr, handler, nil); err != nil { return http.ListenAndServe(flags.bindAddr, handler, logger)
log.Fatal(err)
}
} }
func main() { func main() {
if err := transpileCmd.Execute(); err != nil { if err := transpileCmd.Execute(); err != nil {
fmt.Println(err)
os.Exit(1) os.Exit(1)
} }
} }

View File

@ -40,8 +40,6 @@ func NewServer(handler http.Handler, logger *zap.Logger) *Server {
srv: &http.Server{ srv: &http.Server{
Handler: handler, Handler: handler,
}, },
// TODO(jsternberg): Use the logger to report when we are
// shutting down.
logger: logger, logger: logger,
} }
} }
@ -79,6 +77,8 @@ func (s *Server) serve(listener net.Listener) <-chan error {
} }
func (s *Server) shutdown(signalCh <-chan os.Signal) error { func (s *Server) shutdown(signalCh <-chan os.Signal) error {
s.logger.Info("Shutting down server", zap.Duration("timeout", s.ShutdownTimeout))
// The shutdown needs to succeed in 20 seconds or less. // The shutdown needs to succeed in 20 seconds or less.
ctx, cancel := context.WithTimeout(context.Background(), s.ShutdownTimeout) ctx, cancel := context.WithTimeout(context.Background(), s.ShutdownTimeout)
defer cancel() defer cancel()
@ -92,6 +92,7 @@ func (s *Server) shutdown(signalCh <-chan os.Signal) error {
defer s.wg.Done() defer s.wg.Done()
select { select {
case <-signalCh: case <-signalCh:
s.logger.Info("Initializing hard shutdown")
cancel() cancel()
case <-done: case <-done:
} }