Merge pull request #33 from influxdata/js-transpilerd-logger
feat(cmd/transpilerd): follow the logging style guide for transpilerdpull/10616/head
commit
367793c1bd
|
@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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:
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue