From b06fb76be2d194fa0fdad81c784c8ea750d48053 Mon Sep 17 00:00:00 2001 From: ColinChamber Date: Tue, 19 Sep 2023 19:32:33 +0800 Subject: [PATCH] Replace glog with klog --- README-EN.md | 2 +- README.md | 2 +- codec/decoder.go | 6 +- codec/encoder.go | 8 +-- condition_filter/filter.go | 8 +-- condition_filter/parse.go | 12 ++-- filter/add.go | 6 +- filter/convert.go | 10 ++-- filter/date.go | 8 +-- filter/filter.go | 8 +-- filter/filters.go | 4 +- filter/grok.go | 30 +++++----- filter/gsub.go | 6 +- filter/ipip.go | 10 ++-- filter/json.go | 10 ++-- filter/kv.go | 8 +-- filter/link_metric.go | 14 ++--- filter/link_stats_metric.go | 14 ++--- filter/lowercase.go | 6 +- filter/remove.go | 4 +- filter/rename.go | 4 +- filter/replace_filter.go | 8 +-- filter/split_filter.go | 6 +- filter/translate.go | 14 ++--- filter/uppercase.go | 6 +- filter/url_decode.go | 6 +- go.mod | 2 +- go.sum | 7 ++- gohangout.go | 35 +++++------ input/input.go | 8 +-- input/input_box.go | 14 ++--- input/kafka_input.go | 20 +++---- input/random_input.go | 6 +- input/stdin_input.go | 4 +- input/tcp_input.go | 14 ++--- input/udp_input.go | 14 ++--- internal/config/config_parser.go | 4 +- internal/config/config_watcher.go | 10 ++-- internal/signal/signalhandle_unix.go | 4 +- internal/signal/signalhandle_windows.go | 4 +- output/bulk_http.go | 42 ++++++------- output/clickhouse_output.go | 80 ++++++++++++------------- output/elasticsearch_output.go | 50 ++++++++-------- output/influxdb_output.go | 14 ++--- output/kafka_output.go | 14 ++--- output/output.go | 8 +-- output/stdout_output.go | 4 +- output/tcp_output.go | 20 +++---- topology/filter.go | 8 +-- topology/output.go | 4 +- topology/prom_counter.go | 4 +- value_render/index_render.go | 4 +- value_render/template_value_render.go | 8 +-- 53 files changed, 315 insertions(+), 311 deletions(-) diff --git a/README-EN.md b/README-EN.md index e716e93e..f10c6b76 100644 --- a/README-EN.md +++ b/README-EN.md @@ -45,7 +45,7 @@ gohangout --config config.yml ### log -Gohangout use glog. +Gohangout use klog. use `-v n` to set log level. diff --git a/README.md b/README.md index c3468a12..56e4b9c9 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ outputs: ### 日志 -日志模块使用 github.com/golang/glog , 几个常用参数如下: +日志模块使用 k8s.io/klog/v2 , 几个常用参数如下: - -logtostderr 日志打印出标准错误 diff --git a/codec/decoder.go b/codec/decoder.go index 6932b5df..40d9c63a 100644 --- a/codec/decoder.go +++ b/codec/decoder.go @@ -3,7 +3,7 @@ package codec import ( "plugin" - "github.com/golang/glog" + "k8s.io/klog/v2" ) type Decoder interface { @@ -21,11 +21,11 @@ func NewDecoder(t string) Decoder { default: p, err := plugin.Open(t) if err != nil { - glog.Fatalf("could not open %s: %s", t, err) + klog.Fatalf("could not open %s: %s", t, err) } newFunc, err := p.Lookup("New") if err != nil { - glog.Fatalf("could not find New function in %s: %s", t, err) + klog.Fatalf("could not find New function in %s: %s", t, err) } return newFunc.(func() interface{})().(Decoder) } diff --git a/codec/encoder.go b/codec/encoder.go index b274b824..5c10896a 100644 --- a/codec/encoder.go +++ b/codec/encoder.go @@ -5,7 +5,7 @@ import ( "strings" "github.com/childe/gohangout/simplejson" - "github.com/golang/glog" + "k8s.io/klog/v2" ) type Encoder interface { @@ -24,7 +24,7 @@ func NewEncoder(t string) Encoder { if strings.HasPrefix(t, "format:") { splited := strings.SplitN(t, ":", 2) if len(splited) != 2 { - glog.Fatalf("format of `%s` is incorrect", t) + klog.Fatalf("format of `%s` is incorrect", t) } format := splited[1] return NewFormatEncoder(format) @@ -33,11 +33,11 @@ func NewEncoder(t string) Encoder { // try plugin p, err := plugin.Open(t) if err != nil { - glog.Fatalf("could not open %s: %s", t, err) + klog.Fatalf("could not open %s: %s", t, err) } newFunc, err := p.Lookup("New") if err != nil { - glog.Fatalf("could not find New function in %s: %s", t, err) + klog.Fatalf("could not find New function in %s: %s", t, err) } return newFunc.(func() interface{})().(Encoder) } diff --git a/condition_filter/filter.go b/condition_filter/filter.go index 3c99ebc9..fa356b6a 100644 --- a/condition_filter/filter.go +++ b/condition_filter/filter.go @@ -13,7 +13,7 @@ import ( "github.com/oliveagle/jsonpath" "github.com/childe/gohangout/value_render" - "github.com/golang/glog" + "k8s.io/klog/v2" ) type Condition interface { @@ -592,7 +592,7 @@ type BeforeCondition struct { func NewBeforeCondition(value string) *BeforeCondition { d, err := time.ParseDuration(value) if err != nil { - glog.Fatalf("could not parse %s to duration: %s", value, err) + klog.Fatalf("could not parse %s to duration: %s", value, err) } return &BeforeCondition{d} } @@ -612,7 +612,7 @@ type AfterCondition struct { func NewAfterCondition(value string) *AfterCondition { d, err := time.ParseDuration(value) if err != nil { - glog.Fatalf("could not parse %s to duration: %s", value, err) + klog.Fatalf("could not parse %s to duration: %s", value, err) } return &AfterCondition{d} } @@ -635,7 +635,7 @@ func NewCondition(c string) Condition { } if root, err := parseBoolTree(c); err != nil { - glog.Errorf("could not build Condition from `%s` : %s", original_c, err) + klog.Errorf("could not build Condition from `%s` : %s", original_c, err) return nil } else { return root diff --git a/condition_filter/parse.go b/condition_filter/parse.go index 1e20c9ed..b9c96489 100644 --- a/condition_filter/parse.go +++ b/condition_filter/parse.go @@ -4,7 +4,7 @@ import ( "errors" "strings" - "github.com/golang/glog" + "k8s.io/klog/v2" ) const ( @@ -27,13 +27,13 @@ var errorParse = errors.New("parse condition error") func parseBoolTree(c string) (node *OPNode, err error) { defer func() { if r := recover(); r != nil { - glog.Errorf("parse `%s` error at `%s`", c, r) + klog.Errorf("parse `%s` error at `%s`", c, r) node = nil err = errorParse } }() - //glog.Info(c) + //klog.Info(c) c = strings.Trim(c, " ") if c == "" { return nil, nil @@ -43,7 +43,7 @@ func parseBoolTree(c string) (node *OPNode, err error) { if err != nil { return nil, err } - //glog.Info(s2) + //klog.Info(s2) s := make([]interface{}, 0) for _, e := range s2 { @@ -74,7 +74,7 @@ func parseBoolTree(c string) (node *OPNode, err error) { } } - //glog.Info(s) + //klog.Info(s) if len(s) != 1 { return nil, errorParse } @@ -116,7 +116,7 @@ func buildRPNStack(c string) ([]interface{}, error) { if parenthesis == 0 { condition, err := NewSingleCondition(c[condition_start_pos : i+1]) if err != nil { - glog.Error(err) + klog.Error(err) panic(c[:i+1]) } n := &OPNode{ diff --git a/filter/add.go b/filter/add.go index 7078ad75..f4a59f71 100644 --- a/filter/add.go +++ b/filter/add.go @@ -4,7 +4,7 @@ import ( "github.com/childe/gohangout/field_setter" "github.com/childe/gohangout/topology" "github.com/childe/gohangout/value_render" - "github.com/golang/glog" + "k8s.io/klog/v2" ) type AddFilter struct { @@ -32,12 +32,12 @@ func newAddFilter(config map[interface{}]interface{}) topology.Filter { for f, v := range fieldsValue.(map[interface{}]interface{}) { fieldSetter := field_setter.NewFieldSetter(f.(string)) if fieldSetter == nil { - glog.Fatalf("could build field setter from %s", f.(string)) + klog.Fatalf("could build field setter from %s", f.(string)) } plugin.fields[fieldSetter] = value_render.GetValueRender(v.(string)) } } else { - glog.Fatal("fields must be set in add filter plugin") + klog.Fatal("fields must be set in add filter plugin") } return plugin } diff --git a/filter/convert.go b/filter/convert.go index 94593eeb..c4741224 100644 --- a/filter/convert.go +++ b/filter/convert.go @@ -8,8 +8,8 @@ import ( "github.com/childe/gohangout/field_setter" "github.com/childe/gohangout/topology" "github.com/childe/gohangout/value_render" - "github.com/golang/glog" "github.com/spf13/cast" + "k8s.io/klog/v2" ) type Converter interface { @@ -131,7 +131,7 @@ func newConvertFilter(config map[interface{}]interface{}) topology.Filter { v := vI.(map[interface{}]interface{}) fieldSetter := field_setter.NewFieldSetter(f.(string)) if fieldSetter == nil { - glog.Fatalf("could build field setter from %s", f.(string)) + klog.Fatalf("could build field setter from %s", f.(string)) } to := v["to"].(string) @@ -158,7 +158,7 @@ func newConvertFilter(config map[interface{}]interface{}) topology.Filter { } else if to == "array(float)" { converter = &ArrayFloatConverter{} } else { - glog.Fatal("can only convert to int/float/bool/array(int)/array(float)") + klog.Fatal("can only convert to int/float/bool/array(int)/array(float)") } plugin.fields[fieldSetter] = ConveterAndRender{ @@ -170,7 +170,7 @@ func newConvertFilter(config map[interface{}]interface{}) topology.Filter { } } } else { - glog.Fatal("fileds must be set in convert filter plugin") + klog.Fatal("fileds must be set in convert filter plugin") } return plugin } @@ -188,7 +188,7 @@ func (plugin *ConvertFilter) Filter(event map[string]interface{}) (map[string]in if err == nil { event = fs.SetField(event, v, "", true) } else { - glog.V(10).Infof("convert error: %s", err) + klog.V(10).Infof("convert error: %s", err) if conveterAndRender.removeIfFail { event = fs.SetField(event, nil, "", true) } else if conveterAndRender.settoIfFail != nil { diff --git a/filter/date.go b/filter/date.go index 5c5f27a1..175540ab 100644 --- a/filter/date.go +++ b/filter/date.go @@ -12,7 +12,7 @@ import ( "github.com/childe/gohangout/field_setter" "github.com/childe/gohangout/topology" "github.com/childe/gohangout/value_render" - "github.com/golang/glog" + "k8s.io/klog/v2" ) type DateParser interface { @@ -160,7 +160,7 @@ func newDateFilter(config map[interface{}]interface{}) topology.Filter { if srcValue, ok := config["src"]; ok { plugin.src = srcValue.(string) } else { - glog.Fatal("src must be set in date filter plugin") + klog.Fatal("src must be set in date filter plugin") } plugin.srcVR = value_render.GetValueRender2(plugin.src) @@ -179,7 +179,7 @@ func newDateFilter(config map[interface{}]interface{}) topology.Filter { if locationI, ok := config["location"]; ok { location, err = time.LoadLocation(locationI.(string)) if err != nil { - glog.Fatalf("load location error:%s", err) + klog.Fatalf("load location error:%s", err) } } else { location = nil @@ -192,7 +192,7 @@ func newDateFilter(config map[interface{}]interface{}) topology.Filter { plugin.dateParsers = append(plugin.dateParsers, getDateParser(formatI.(string), location, addYear)) } } else { - glog.Fatal("formats must be set in date filter plugin") + klog.Fatal("formats must be set in date filter plugin") } return plugin diff --git a/filter/filter.go b/filter/filter.go index 231726b0..e9d9e02d 100644 --- a/filter/filter.go +++ b/filter/filter.go @@ -5,7 +5,7 @@ import ( "plugin" "github.com/childe/gohangout/topology" - "github.com/golang/glog" + "k8s.io/klog/v2" ) type BuildFilterFunc func(map[interface{}]interface{}) topology.Filter @@ -15,7 +15,7 @@ var registeredFilter map[string]BuildFilterFunc = make(map[string]BuildFilterFun // Register is used by input plugins to register themselves func Register(filterType string, bf BuildFilterFunc) { if _, ok := registeredFilter[filterType]; ok { - glog.Errorf("%s has been registered, ignore %T", filterType, bf) + klog.Errorf("%s has been registered, ignore %T", filterType, bf) return } registeredFilter[filterType] = bf @@ -26,12 +26,12 @@ func BuildFilter(filterType string, config map[interface{}]interface{}) topology if v, ok := registeredFilter[filterType]; ok { return v(config) } - glog.Infof("could not load %s filter plugin, try third party plugin", filterType) + klog.Infof("could not load %s filter plugin, try third party plugin", filterType) pluginPath := filterType filter, err := getFilterFromPlugin(pluginPath, config) if err != nil { - glog.Errorf("could not open %s: %s", pluginPath, err) + klog.Errorf("could not open %s: %s", pluginPath, err) return nil } return filter diff --git a/filter/filters.go b/filter/filters.go index 7e7045fe..0efdfe5c 100644 --- a/filter/filters.go +++ b/filter/filters.go @@ -4,7 +4,7 @@ import ( "reflect" "github.com/childe/gohangout/topology" - "github.com/golang/glog" + "k8s.io/klog/v2" ) type FiltersFilter struct { @@ -29,7 +29,7 @@ func newFiltersFilter(config map[interface{}]interface{}) topology.Filter { f.filterBoxes = topology.BuildFilterBoxes(_config, BuildFilter) if len(f.filterBoxes) == 0 { - glog.Fatal("no filters configured in Filters") + klog.Fatal("no filters configured in Filters") } for _, b := range f.filterBoxes { diff --git a/filter/grok.go b/filter/grok.go index 0c8e6e13..813bad30 100644 --- a/filter/grok.go +++ b/filter/grok.go @@ -12,7 +12,7 @@ import ( "github.com/childe/gohangout/topology" "github.com/childe/gohangout/value_render" - "github.com/golang/glog" + "k8s.io/klog/v2" ) func (grok *Grok) loadPattern(filename string) { @@ -20,14 +20,14 @@ func (grok *Grok) loadPattern(filename string) { if strings.HasPrefix(filename, "http://") || strings.HasPrefix(filename, "https://") { resp, err := http.Get(filename) if err != nil { - glog.Fatalf("load pattern error:%s", err) + klog.Fatalf("load pattern error:%s", err) } defer resp.Body.Close() r = bufio.NewReader(resp.Body) } else { f, err := os.Open(filename) if err != nil { - glog.Fatalf("load pattern error:%s", err) + klog.Fatalf("load pattern error:%s", err) } r = bufio.NewReader(f) } @@ -37,17 +37,17 @@ func (grok *Grok) loadPattern(filename string) { break } if err != nil { - glog.Fatalf("read pattenrs error:%s", err) + klog.Fatalf("read pattenrs error:%s", err) } if isPrefix { - glog.Fatal("readline prefix") + klog.Fatal("readline prefix") } if len(line) == 0 || line[0] == '#' { continue } ss := strings.SplitN(string(line), " ", 2) if len(ss) != 2 { - glog.Fatalf("splited `%s` length !=2", string(line)) + klog.Fatalf("splited `%s` length !=2", string(line)) } grok.patterns[ss[0]] = ss[1] } @@ -57,13 +57,13 @@ func (grok *Grok) loadPatterns() { for _, path := range grok.patternPaths { files, err := getFiles(path) if err != nil { - glog.Fatalf("build grok filter error: %s", err) + klog.Fatalf("build grok filter error: %s", err) } for _, file := range files { grok.loadPattern(file) } } - glog.V(5).Infof("patterns:%s", grok.patterns) + klog.V(5).Infof("patterns:%s", grok.patterns) } func getFiles(filepath string) ([]string, error) { @@ -99,11 +99,11 @@ func getFiles(filepath string) ([]string, error) { func (grok *Grok) replaceFunc(s string) string { p, err := regexp.Compile(`%{(\w+?)(?::(\w+?))?}`) if err != nil { - glog.Fatal(err) + klog.Fatal(err) } rst := p.FindAllStringSubmatch(s, -1) if len(rst) != 1 { - glog.Fatalf("sub match in `%s` != 1", s) + klog.Fatalf("sub match in `%s` != 1", s) } if pattern, ok := grok.patterns[rst[0][1]]; ok { if rst[0][2] == "" { @@ -112,7 +112,7 @@ func (grok *Grok) replaceFunc(s string) string { return fmt.Sprintf("(?P<%s>%s)", rst[0][2], pattern) } } else { - glog.Fatalf("`%s` could not be found", rst[0][1]) + klog.Fatalf("`%s` could not be found", rst[0][1]) return "" } } @@ -120,7 +120,7 @@ func (grok *Grok) replaceFunc(s string) string { func (grok *Grok) translateMatchPattern(s string) string { p, err := regexp.Compile(`%{\w+?(:\w+?)?}`) if err != nil { - glog.Fatal(err) + klog.Fatal(err) } var r string = "" for { @@ -164,10 +164,10 @@ func NewGrok(match string, patternPaths []string, ignoreBlank bool) *Grok { grok.loadPatterns() finalPattern := grok.translateMatchPattern(match) - glog.Infof("final pattern:%s", finalPattern) + klog.Infof("final pattern:%s", finalPattern) p, err := regexp.Compile(finalPattern) if err != nil { - glog.Fatalf("could not build Grok:%s", err) + klog.Fatalf("could not build Grok:%s", err) } grok.p = p grok.subexpNames = p.SubexpNames() @@ -206,7 +206,7 @@ func newGrokFilter(config map[interface{}]interface{}) topology.Filter { groks = append(groks, NewGrok(mValue.(string), patternPaths, ignoreBlank)) } } else { - glog.Fatal("match must be set in grok filter") + klog.Fatal("match must be set in grok filter") } gf := &GrokFilter{ diff --git a/filter/gsub.go b/filter/gsub.go index 4e0a80d4..df066dc5 100644 --- a/filter/gsub.go +++ b/filter/gsub.go @@ -6,8 +6,8 @@ import ( "github.com/childe/gohangout/field_setter" "github.com/childe/gohangout/topology" "github.com/childe/gohangout/value_render" - "github.com/golang/glog" "github.com/mitchellh/mapstructure" + "k8s.io/klog/v2" ) type rs struct { @@ -38,12 +38,12 @@ func newGsubFilter(config map[interface{}]interface{}) topology.Filter { gsubFilter := &GsubFilter{} fields, ok := config["fields"] if !ok { - glog.Fatal("fields must be set in gsub filter") + klog.Fatal("fields must be set in gsub filter") } err := mapstructure.Decode(fields, &gsubFilter.fields) if err != nil { - glog.Fatal("decode fields config in gusb error:", err) + klog.Fatal("decode fields config in gusb error:", err) } for _, config := range gsubFilter.fields { diff --git a/filter/ipip.go b/filter/ipip.go index 962f327c..6b75eb38 100644 --- a/filter/ipip.go +++ b/filter/ipip.go @@ -6,9 +6,9 @@ import ( "github.com/childe/gohangout/topology" "github.com/childe/gohangout/value_render" - "github.com/golang/glog" datx "github.com/ipipdotnet/datx-go" ipdb "github.com/ipipdotnet/ipdb-go" + "k8s.io/klog/v2" ) type IPIPFilter struct { @@ -62,17 +62,17 @@ func newIPIPFilter(config map[interface{}]interface{}) topology.Filter { plugin.city = unsafe.Pointer(c2) } if err != nil { - glog.Fatalf("could not load %s: %s", plugin.database, err) + klog.Fatalf("could not load %s: %s", plugin.database, err) } } else { - glog.Fatal("database must be set in IPIP filter plugin") + klog.Fatal("database must be set in IPIP filter plugin") } if src, ok := config["src"]; ok { plugin.src = src.(string) plugin.srcVR = value_render.GetValueRender2(plugin.src) } else { - glog.Fatal("src must be set in IPIP filter plugin") + klog.Fatal("src must be set in IPIP filter plugin") } if target, ok := config["target"]; ok { @@ -96,7 +96,7 @@ func (plugin *IPIPFilter) Filter(event map[string]interface{}) (map[string]inter a, err = city.Find(inputI.(string), plugin.language) } if err != nil { - glog.V(10).Infof("failed to find %s: %s", inputI.(string), err) + klog.V(10).Infof("failed to find %s: %s", inputI.(string), err) return event, false } if plugin.target == "" { diff --git a/filter/json.go b/filter/json.go index 0a8a22a7..add8bacf 100644 --- a/filter/json.go +++ b/filter/json.go @@ -6,7 +6,7 @@ import ( "strings" "github.com/childe/gohangout/topology" - "github.com/golang/glog" + "k8s.io/klog/v2" ) // JSONFilter will parse json string in `field` and put the result into `target` field @@ -31,7 +31,7 @@ func newJSONFilter(config map[interface{}]interface{}) topology.Filter { if field, ok := config["field"]; ok { plugin.field = field.(string) } else { - glog.Fatal("field must be set in Json filter") + klog.Fatal("field must be set in Json filter") } if overwrite, ok := config["overwrite"]; ok { @@ -83,7 +83,7 @@ func (plugin *JSONFilter) Filter(event map[string]interface{}) (map[string]inter oo[k] = o[k] } } else { - glog.V(5).Infof("%s field is not map type, could not get `include` fields from it", plugin.field) + klog.V(5).Infof("%s field is not map type, could not get `include` fields from it", plugin.field) return event, false } o = oo @@ -93,14 +93,14 @@ func (plugin *JSONFilter) Filter(event map[string]interface{}) (map[string]inter delete(o, k) } } else { - glog.V(5).Infof("%s field is not map type, could not get `include` fields from it", plugin.field) + klog.V(5).Infof("%s field is not map type, could not get `include` fields from it", plugin.field) return event, false } } if plugin.target == "" { if reflect.TypeOf(o).Kind() != reflect.Map { - glog.V(5).Infof("%s field is not map type, `target` must be set in config file", plugin.field) + klog.V(5).Infof("%s field is not map type, `target` must be set in config file", plugin.field) return event, false } if plugin.overwrite { diff --git a/filter/kv.go b/filter/kv.go index 97e3f241..19e961c0 100644 --- a/filter/kv.go +++ b/filter/kv.go @@ -6,7 +6,7 @@ import ( "github.com/childe/gohangout/field_setter" "github.com/childe/gohangout/topology" "github.com/childe/gohangout/value_render" - "github.com/golang/glog" + "k8s.io/klog/v2" ) type KVFilter struct { @@ -35,7 +35,7 @@ func newKVFilter(config map[interface{}]interface{}) topology.Filter { if src, ok := config["src"]; ok { plugin.src = value_render.GetValueRender2(src.(string)) } else { - glog.Fatal("src must be set in kv filter") + klog.Fatal("src must be set in kv filter") } if target, ok := config["target"]; ok { @@ -47,13 +47,13 @@ func newKVFilter(config map[interface{}]interface{}) topology.Filter { if field_split, ok := config["field_split"]; ok { plugin.field_split = field_split.(string) } else { - glog.Fatal("field_split must be set in kv filter") + klog.Fatal("field_split must be set in kv filter") } if value_split, ok := config["value_split"]; ok { plugin.value_split = value_split.(string) } else { - glog.Fatal("value_split must be set in kv filter") + klog.Fatal("value_split must be set in kv filter") } if trim, ok := config["trim"]; ok { diff --git a/filter/link_metric.go b/filter/link_metric.go index 4a6b0b2a..0d70672d 100644 --- a/filter/link_metric.go +++ b/filter/link_metric.go @@ -6,7 +6,7 @@ import ( "time" "github.com/childe/gohangout/topology" - "github.com/golang/glog" + "k8s.io/klog/v2" ) type LinkMetricFilter struct { @@ -59,7 +59,7 @@ func newLinkMetricFilter(config map[interface{}]interface{}) topology.Filter { p.fieldsWithoutLast = p.fields[:p.fieldsLength-1] p.lastField = p.fields[p.fieldsLength-1] } else { - glog.Fatal("fieldsLink must be set in linkmetric filter plugin") + klog.Fatal("fieldsLink must be set in linkmetric filter plugin") } if timestamp, ok := config["timestamp"]; ok { @@ -77,13 +77,13 @@ func newLinkMetricFilter(config map[interface{}]interface{}) topology.Filter { if batchWindow, ok := config["batchWindow"]; ok { p.batchWindow = int64(batchWindow.(int)) } else { - glog.Fatal("batchWindow must be set in linkmetric filter plugin") + klog.Fatal("batchWindow must be set in linkmetric filter plugin") } if reserveWindow, ok := config["reserveWindow"]; ok { p.reserveWindow = int64(reserveWindow.(int)) } else { - glog.Fatal("reserveWindow must be set in linkmetric filter plugin") + klog.Fatal("reserveWindow must be set in linkmetric filter plugin") } if reduce, ok := config["reduce"]; ok { @@ -98,7 +98,7 @@ func newLinkMetricFilter(config map[interface{}]interface{}) topology.Filter { case "separate": p.accumulateMode = 1 default: - glog.Errorf("invalid accumulateMode: %s. set to cumulative", accumulateMode) + klog.Errorf("invalid accumulateMode: %s. set to cumulative", accumulateMode) p.accumulateMode = 0 } } else { @@ -201,13 +201,13 @@ func (f *LinkMetricFilter) updateMetric(event map[string]interface{}) { var timestamp int64 if v, ok := event[f.timestamp]; ok { if t, ok := v.(time.Time); !ok { - glog.V(20).Infof("timestamp is not time.Time type") + klog.V(20).Infof("timestamp is not time.Time type") return } else { timestamp = t.Unix() } } else { - glog.V(20).Infof("no timestamp in event. %s", event) + klog.V(20).Infof("no timestamp in event. %s", event) return } diff --git a/filter/link_stats_metric.go b/filter/link_stats_metric.go index c38c92e7..2360da61 100644 --- a/filter/link_stats_metric.go +++ b/filter/link_stats_metric.go @@ -7,7 +7,7 @@ import ( "time" "github.com/childe/gohangout/topology" - "github.com/golang/glog" + "k8s.io/klog/v2" ) type stats struct { @@ -62,7 +62,7 @@ func newLinkStatsMetricFilter(config map[interface{}]interface{}) topology.Filte p.fieldsWithoutLast = p.fields[:p.fieldsLength-1] p.lastField = p.fields[p.fieldsLength-1] } else { - glog.Fatal("fieldsLink must be set in linkstatmetric filter plugin") + klog.Fatal("fieldsLink must be set in linkstatmetric filter plugin") } if timestamp, ok := config["timestamp"]; ok { @@ -80,13 +80,13 @@ func newLinkStatsMetricFilter(config map[interface{}]interface{}) topology.Filte if batchWindow, ok := config["batchWindow"]; ok { p.batchWindow = int64(batchWindow.(int)) } else { - glog.Fatal("batchWindow must be set in linkstatmetric filter plugin") + klog.Fatal("batchWindow must be set in linkstatmetric filter plugin") } if reserveWindow, ok := config["reserveWindow"]; ok { p.reserveWindow = int64(reserveWindow.(int)) } else { - glog.Fatal("reserveWindow must be set in linkstatmetric filter plugin") + klog.Fatal("reserveWindow must be set in linkstatmetric filter plugin") } if reduce, ok := config["reduce"]; ok { @@ -101,7 +101,7 @@ func newLinkStatsMetricFilter(config map[interface{}]interface{}) topology.Filte case "separate": p.accumulateMode = 1 default: - glog.Errorf("invalid accumulateMode: %s. set to cumulative", accumulateMode) + klog.Errorf("invalid accumulateMode: %s. set to cumulative", accumulateMode) p.accumulateMode = 0 } } else { @@ -229,13 +229,13 @@ func (f *LinkStatsMetricFilter) updateMetric(event map[string]interface{}) { var timestamp int64 if v, ok := event[f.timestamp]; ok { if t, ok := v.(time.Time); !ok { - glog.V(20).Infof("timestamp is not time.Time type") + klog.V(20).Infof("timestamp is not time.Time type") return } else { timestamp = t.Unix() } } else { - glog.V(20).Infof("no timestamp in event. %s", event) + klog.V(20).Infof("no timestamp in event. %s", event) return } diff --git a/filter/lowercase.go b/filter/lowercase.go index 98e9c593..fd09de42 100644 --- a/filter/lowercase.go +++ b/filter/lowercase.go @@ -7,7 +7,7 @@ import ( "github.com/childe/gohangout/field_setter" "github.com/childe/gohangout/topology" "github.com/childe/gohangout/value_render" - "github.com/golang/glog" + "k8s.io/klog/v2" ) type LowercaseFilter struct { @@ -29,12 +29,12 @@ func newLowercaseFilter(config map[interface{}]interface{}) topology.Filter { for _, field := range fieldsValue.([]interface{}) { fieldSetter := field_setter.NewFieldSetter(field.(string)) if fieldSetter == nil { - glog.Fatalf("could build field setter from %s", field.(string)) + klog.Fatalf("could build field setter from %s", field.(string)) } plugin.fields[fieldSetter] = value_render.GetValueRender2(field.(string)) } } else { - glog.Fatal("fileds must be set in remove filter plugin") + klog.Fatal("fileds must be set in remove filter plugin") } return plugin } diff --git a/filter/remove.go b/filter/remove.go index 640c4931..f103eb6c 100644 --- a/filter/remove.go +++ b/filter/remove.go @@ -3,7 +3,7 @@ package filter import ( "github.com/childe/gohangout/field_deleter" "github.com/childe/gohangout/topology" - "github.com/golang/glog" + "k8s.io/klog/v2" ) type RemoveFilter struct { @@ -26,7 +26,7 @@ func newRemoveFilter(config map[interface{}]interface{}) topology.Filter { plugin.fieldsDeleters = append(plugin.fieldsDeleters, field_deleter.NewFieldDeleter(field.(string))) } } else { - glog.Fatal("fileds must be set in remove filter plugin") + klog.Fatal("fileds must be set in remove filter plugin") } return plugin } diff --git a/filter/rename.go b/filter/rename.go index 2a35d6ab..0f09230e 100644 --- a/filter/rename.go +++ b/filter/rename.go @@ -2,7 +2,7 @@ package filter import ( "github.com/childe/gohangout/topology" - "github.com/golang/glog" + "k8s.io/klog/v2" ) type RenameFilter struct { @@ -24,7 +24,7 @@ func newRenameFilter(config map[interface{}]interface{}) topology.Filter { plugin.fields[k.(string)] = v.(string) } } else { - glog.Fatal("fileds must be set in rename filter plugin") + klog.Fatal("fileds must be set in rename filter plugin") } return plugin } diff --git a/filter/replace_filter.go b/filter/replace_filter.go index cd128aab..66b89f2f 100644 --- a/filter/replace_filter.go +++ b/filter/replace_filter.go @@ -6,7 +6,7 @@ import ( "github.com/childe/gohangout/field_setter" "github.com/childe/gohangout/topology" "github.com/childe/gohangout/value_render" - "github.com/golang/glog" + "k8s.io/klog/v2" ) type replaceConfig struct { @@ -36,7 +36,7 @@ func newReplaceFilter(config map[interface{}]interface{}) topology.Filter { for fieldI, configI := range fieldsI.(map[interface{}]interface{}) { fieldSetter := field_setter.NewFieldSetter(fieldI.(string)) if fieldSetter == nil { - glog.Fatalf("could build field setter from %s", fieldI.(string)) + klog.Fatalf("could build field setter from %s", fieldI.(string)) } v := value_render.GetValueRender2(fieldI.(string)) @@ -61,11 +61,11 @@ func newReplaceFilter(config map[interface{}]interface{}) topology.Filter { } p.fields = append(p.fields, t) } else { - glog.Fatal("invalid fields config in replace filter") + klog.Fatal("invalid fields config in replace filter") } } } else { - glog.Fatal("fileds must be set in replace filter plugin") + klog.Fatal("fileds must be set in replace filter plugin") } return p } diff --git a/filter/split_filter.go b/filter/split_filter.go index 00cc8b29..0a725648 100644 --- a/filter/split_filter.go +++ b/filter/split_filter.go @@ -6,7 +6,7 @@ import ( "github.com/childe/gohangout/field_setter" "github.com/childe/gohangout/topology" "github.com/childe/gohangout/value_render" - "github.com/golang/glog" + "k8s.io/klog/v2" ) type SplitFilter struct { @@ -61,7 +61,7 @@ func newSplitFilter(config map[interface{}]interface{}) topology.Filter { plugin.sep = sep.(string) } if plugin.sep == "" { - glog.Fatal("sep must be set in split filter plugin") + klog.Fatal("sep must be set in split filter plugin") } if dynamicSep, ok := config["dynamicSep"]; ok { @@ -76,7 +76,7 @@ func newSplitFilter(config map[interface{}]interface{}) topology.Filter { plugin.fields = append(plugin.fields, field_setter.NewFieldSetter(f.(string))) } } else { - glog.Fatal("fileds must be set in split filter plugin") + klog.Fatal("fileds must be set in split filter plugin") } plugin.fieldsLength = len(plugin.fields) diff --git a/filter/translate.go b/filter/translate.go index 4eeb49f6..c4505d83 100644 --- a/filter/translate.go +++ b/filter/translate.go @@ -11,7 +11,7 @@ import ( "github.com/childe/gohangout/topology" "github.com/childe/gohangout/value_render" - "github.com/golang/glog" + "k8s.io/klog/v2" ) type TranslateFilter struct { @@ -76,31 +76,31 @@ func newTranslateFilter(config map[interface{}]interface{}) topology.Filter { if source, ok := config["source"]; ok { plugin.source = source.(string) } else { - glog.Fatal("source must be set in translate filter plugin") + klog.Fatal("source must be set in translate filter plugin") } plugin.sourceVR = value_render.GetValueRender2(plugin.source) if target, ok := config["target"]; ok { plugin.target = target.(string) } else { - glog.Fatal("target must be set in translate filter plugin") + klog.Fatal("target must be set in translate filter plugin") } if dictionaryPath, ok := config["dictionary_path"]; ok { plugin.dictionaryPath = dictionaryPath.(string) } else { - glog.Fatal("dictionary_path must be set in translate filter plugin") + klog.Fatal("dictionary_path must be set in translate filter plugin") } if refreshInterval, ok := config["refresh_interval"]; ok { plugin.refreshInterval = refreshInterval.(int) } else { - glog.Fatal("refresh_interval must be set in translate filter plugin") + klog.Fatal("refresh_interval must be set in translate filter plugin") } err := plugin.parseDict() if err != nil { - glog.Fatalf("could not parse %s:%s", plugin.dictionaryPath, err) + klog.Fatalf("could not parse %s:%s", plugin.dictionaryPath, err) } ticker := time.NewTicker(time.Second * time.Duration(plugin.refreshInterval)) @@ -108,7 +108,7 @@ func newTranslateFilter(config map[interface{}]interface{}) topology.Filter { for range ticker.C { err := plugin.parseDict() if err != nil { - glog.Errorf("could not parse %s:%s", plugin.dictionaryPath, err) + klog.Errorf("could not parse %s:%s", plugin.dictionaryPath, err) } } }() diff --git a/filter/uppercase.go b/filter/uppercase.go index 8310aaa3..d1e256ab 100644 --- a/filter/uppercase.go +++ b/filter/uppercase.go @@ -7,7 +7,7 @@ import ( "github.com/childe/gohangout/field_setter" "github.com/childe/gohangout/topology" "github.com/childe/gohangout/value_render" - "github.com/golang/glog" + "k8s.io/klog/v2" ) type UppercaseFilter struct { @@ -29,12 +29,12 @@ func newUppercaseFilter(config map[interface{}]interface{}) topology.Filter { for _, field := range fieldsValue.([]interface{}) { fieldSetter := field_setter.NewFieldSetter(field.(string)) if fieldSetter == nil { - glog.Fatalf("could build field setter from %s", field.(string)) + klog.Fatalf("could build field setter from %s", field.(string)) } plugin.fields[fieldSetter] = value_render.GetValueRender2(field.(string)) } } else { - glog.Fatal("fileds must be set in remove filter plugin") + klog.Fatal("fileds must be set in remove filter plugin") } return plugin } diff --git a/filter/url_decode.go b/filter/url_decode.go index f07114b1..a66ebcd3 100644 --- a/filter/url_decode.go +++ b/filter/url_decode.go @@ -7,7 +7,7 @@ import ( "github.com/childe/gohangout/field_setter" "github.com/childe/gohangout/topology" "github.com/childe/gohangout/value_render" - "github.com/golang/glog" + "k8s.io/klog/v2" ) type URLDecodeFilter struct { @@ -29,12 +29,12 @@ func newURLDecodeFilter(config map[interface{}]interface{}) topology.Filter { for _, field := range fieldsValue.([]interface{}) { fieldSetter := field_setter.NewFieldSetter(field.(string)) if fieldSetter == nil { - glog.Fatalf("could build field setter from %s", field.(string)) + klog.Fatalf("could build field setter from %s", field.(string)) } plugin.fields[fieldSetter] = value_render.GetValueRender2(field.(string)) } } else { - glog.Fatal("fileds must be set in URLDecode filter plugin") + klog.Fatal("fileds must be set in URLDecode filter plugin") } return plugin } diff --git a/go.mod b/go.mod index 9b84c586..34e9d85b 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,6 @@ require ( github.com/bkaradzic/go-lz4 v1.0.1-0.20160924222819-7224d8d8f27e // indirect github.com/childe/healer v0.5.5 github.com/fsnotify/fsnotify v1.5.1 - github.com/golang/glog v1.0.0 github.com/golang/snappy v0.0.4 // indirect github.com/google/uuid v1.3.0 // indirect github.com/huandu/xstrings v1.3.2 // indirect @@ -25,6 +24,7 @@ require ( github.com/spf13/cast v1.4.1 github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0 gopkg.in/yaml.v2 v2.4.0 + k8s.io/klog/v2 v2.100.1 ) replace github.com/spf13/cast v1.4.1 => github.com/oasisprotocol/cast v0.0.0-20220606122631-eba453e69641 diff --git a/go.sum b/go.sum index 93873faf..bfad5484 100644 --- a/go.sum +++ b/go.sum @@ -99,6 +99,8 @@ github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vb github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= +github.com/go-logr/logr v1.2.0 h1:QK40JKJyMdUDz+h+xvCsru/bJhvG0UxvePV0ufL/AcE= +github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= @@ -107,9 +109,8 @@ github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.0.0 h1:nfP3RFugxnNRyKgeWd4oI1nYvXpxrx8ck8ZrcizshdQ= -github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -615,6 +616,8 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +k8s.io/klog/v2 v2.100.1 h1:7WCHKK6K8fNhTqfBhISHQ97KrnJNFZMcQvKp7gP/tmg= +k8s.io/klog/v2 v2.100.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= diff --git a/gohangout.go b/gohangout.go index a6f7e342..a5c36f5a 100644 --- a/gohangout.go +++ b/gohangout.go @@ -15,8 +15,8 @@ import ( "github.com/childe/gohangout/internal/config" "github.com/childe/gohangout/internal/signal" "github.com/childe/gohangout/topology" - "github.com/golang/glog" "github.com/prometheus/client_golang/prometheus/promhttp" + "k8s.io/klog/v2" ) var version string @@ -85,7 +85,8 @@ func init() { flag.StringVar(&options.prometheus, "prometheus", "", "address to expose prometheus metrics") flag.BoolVar(&options.exitWhenNil, "exit-when-nil", false, "triger gohangout to exit when receive a nil event") - + + klog.InitFlags(nil) flag.Parse() } @@ -96,7 +97,7 @@ func buildPluginLink(config map[string]interface{}) (boxes []*input.InputBox, er var inputPlugin topology.Input i := inputI.(map[interface{}]interface{}) - glog.Infof("input[%d] %v", inputIdx+1, i) + klog.Infof("input[%d] %v", inputIdx+1, i) // len(i) is 1 for inputTypeI, inputConfigI := range i { @@ -126,34 +127,34 @@ func buildPluginLink(config map[string]interface{}) (boxes []*input.InputBox, er func reload() { gohangoutConfig, err := config.ParseConfig(options.config) if err != nil { - glog.Errorf("could not parse config, ignore reload: %v", err) + klog.Errorf("could not parse config, ignore reload: %v", err) return } boxes, err := buildPluginLink(gohangoutConfig) if err != nil { - glog.Errorf("build plugin link error, ignore reload: %v", err) + klog.Errorf("build plugin link error, ignore reload: %v", err) return } - glog.Info("stop old inputs") + klog.Info("stop old inputs") inputs.stop() inputs = gohangoutInputs(boxes) - glog.Info("start new inputs") + klog.Info("start new inputs") go inputs.start() } func main() { ctx, cancel = context.WithCancel(context.Background()) defer cancel() - + if options.version { fmt.Printf("gohangout version %s\n", version) return } - glog.Infof("gohangout version: %s", version) - defer glog.Flush() + klog.Infof("gohangout version: %s", version) + defer klog.Flush() if options.prometheus != "" { go func() { @@ -170,10 +171,10 @@ func main() { if options.cpuprofile != "" { f, err := os.Create(options.cpuprofile) if err != nil { - glog.Fatalf("could not create CPU profile: %s", err) + klog.Fatalf("could not create CPU profile: %s", err) } if err := pprof.StartCPUProfile(f); err != nil { - glog.Fatalf("could not start CPU profile: %s", err) + klog.Fatalf("could not start CPU profile: %s", err) } defer pprof.StopCPUProfile() } @@ -182,30 +183,30 @@ func main() { defer func() { f, err := os.Create(options.memprofile) if err != nil { - glog.Fatalf("could not create memory profile: %s", err) + klog.Fatalf("could not create memory profile: %s", err) } defer f.Close() runtime.GC() // get up-to-date statistics if err := pprof.WriteHeapProfile(f); err != nil { - glog.Fatalf("could not write memory profile: %s", err) + klog.Fatalf("could not write memory profile: %s", err) } }() } gohangoutConfig, err := config.ParseConfig(options.config) if err != nil { - glog.Fatalf("could not parse config: %v", err) + klog.Fatalf("could not parse config: %v", err) } boxes, err := buildPluginLink(gohangoutConfig) if err != nil { - glog.Fatalf("build plugin link error: %v", err) + klog.Fatalf("build plugin link error: %v", err) } inputs = gohangoutInputs(boxes) go inputs.start() if options.autoReload { if err := config.WatchConfig(options.config, reload); err != nil { - glog.Fatalf("watch config fail: %s", err) + klog.Fatalf("watch config fail: %s", err) } } diff --git a/input/input.go b/input/input.go index fc52759a..55642453 100644 --- a/input/input.go +++ b/input/input.go @@ -5,7 +5,7 @@ import ( "plugin" "github.com/childe/gohangout/topology" - "github.com/golang/glog" + "k8s.io/klog/v2" ) type BuildInputFunc func(map[interface{}]interface{}) topology.Input @@ -15,7 +15,7 @@ var registeredInput map[string]BuildInputFunc = make(map[string]BuildInputFunc) // Register is used by input plugins to register themselves func Register(inputType string, bf BuildInputFunc) { if _, ok := registeredInput[inputType]; ok { - glog.Errorf("%s has been registered, ignore %T", inputType, bf) + klog.Errorf("%s has been registered, ignore %T", inputType, bf) return } registeredInput[inputType] = bf @@ -26,12 +26,12 @@ func GetInput(inputType string, config map[interface{}]interface{}) topology.Inp if v, ok := registeredInput[inputType]; ok { return v(config) } - glog.Infof("could not load %s input plugin, try third party plugin", inputType) + klog.Infof("could not load %s input plugin, try third party plugin", inputType) pluginPath := inputType output, err := getInputFromPlugin(pluginPath, config) if err != nil { - glog.Errorf("could not load %s: %v", pluginPath, err) + klog.Errorf("could not load %s: %v", pluginPath, err) return nil } return output diff --git a/input/input_box.go b/input/input_box.go index 7781b6e6..ebdc5bc6 100644 --- a/input/input_box.go +++ b/input/input_box.go @@ -9,8 +9,8 @@ import ( "github.com/childe/gohangout/output" "github.com/childe/gohangout/topology" "github.com/childe/gohangout/value_render" - "github.com/golang/glog" "github.com/prometheus/client_golang/prometheus" + "k8s.io/klog/v2" ) type InputBox struct { @@ -51,7 +51,7 @@ func NewInputBox(input topology.Input, inputConfig map[interface{}]interface{}, for k, v := range add_fields.(map[interface{}]interface{}) { fieldSetter := field_setter.NewFieldSetter(k.(string)) if fieldSetter == nil { - glog.Errorf("could build field setter from %s", k.(string)) + klog.Errorf("could build field setter from %s", k.(string)) return nil } b.addFields[fieldSetter] = value_render.GetValueRender(v.(string)) @@ -75,13 +75,13 @@ func (box *InputBox) beat(workerIdx int) { box.promCounter.Inc() } if event == nil { - glog.V(5).Info("received nil message.") + klog.V(5).Info("received nil message.") if box.stop { break } if box.shutdownWhenNil { - glog.Info("received nil message. shutdown...") - box.exit() + klog.Info("received nil message. shutdown...") + box.exit() break } else { continue @@ -141,12 +141,12 @@ func (box *InputBox) Beat(worker int) { func (box *InputBox) shutdown() { box.once.Do(func() { - glog.Infof("try to shutdown input %T", box.input) + klog.Infof("try to shutdown input %T", box.input) box.input.Shutdown() for i, outputs := range box.outputsInAllWorker { for _, o := range outputs { - glog.Infof("try to shutdown output %T in worker %d", o, i) + klog.Infof("try to shutdown output %T in worker %d", o, i) o.Output.Shutdown() } } diff --git a/input/kafka_input.go b/input/kafka_input.go index 86a22877..bab47787 100644 --- a/input/kafka_input.go +++ b/input/kafka_input.go @@ -6,8 +6,8 @@ import ( "github.com/childe/gohangout/codec" "github.com/childe/gohangout/topology" "github.com/childe/healer" - "github.com/golang/glog" jsoniter "github.com/json-iterator/go" + "k8s.io/klog/v2" ) type KafkaInput struct { @@ -36,12 +36,12 @@ func newKafkaInput(config map[interface{}]interface{}) topology.Input { consumer_settings := make(map[string]interface{}) if v, ok := config["consumer_settings"]; !ok { - glog.Fatal("kafka input must have consumer_settings") + klog.Fatal("kafka input must have consumer_settings") } else { // official json marshal: unsupported type: map[interface {}]interface {} json := jsoniter.ConfigCompatibleWithStandardLibrary if b, err := json.Marshal(v); err != nil { - glog.Fatalf("marshal consumer settings error: %v", err) + klog.Fatalf("marshal consumer settings error: %v", err) } else { json.Unmarshal(b, &consumer_settings) } @@ -64,10 +64,10 @@ func newKafkaInput(config map[interface{}]interface{}) topology.Input { } if topics == nil && assign == nil { - glog.Fatal("either topic or assign should be set") + klog.Fatal("either topic or assign should be set") } if topics != nil && assign != nil { - glog.Fatal("topic and assign can not be both set") + klog.Fatal("topic and assign can not be both set") } if codecV, ok := config["codec"]; ok { @@ -97,14 +97,14 @@ func newKafkaInput(config map[interface{}]interface{}) topology.Input { for i := 0; i < threadCount.(int); i++ { c, err := healer.NewGroupConsumer(topic.(string), consumer_settings) if err != nil { - glog.Fatalf("could not create kafka GroupConsumer: %s", err) + klog.Fatalf("could not create kafka GroupConsumer: %s", err) } kafkaInput.groupConsumers = append(kafkaInput.groupConsumers, c) go func() { _, err = c.Consume(kafkaInput.messages) if err != nil { - glog.Fatalf("try to consumer error: %s", err) + klog.Fatalf("try to consumer error: %s", err) } }() } @@ -112,7 +112,7 @@ func newKafkaInput(config map[interface{}]interface{}) topology.Input { } else { c, err := healer.NewConsumer(consumer_settings) if err != nil { - glog.Fatalf("could not create kafka Consumer: %s", err) + klog.Fatalf("could not create kafka Consumer: %s", err) } kafkaInput.consumers = append(kafkaInput.consumers, c) @@ -121,7 +121,7 @@ func newKafkaInput(config map[interface{}]interface{}) topology.Input { go func() { _, err = c.Consume(kafkaInput.messages) if err != nil { - glog.Fatalf("try to consume error: %s", err) + klog.Fatalf("try to consume error: %s", err) } }() } @@ -138,7 +138,7 @@ func (p *KafkaInput) ReadOneEvent() map[string]interface{} { } if message.Error != nil { - glog.Error("kafka message carries error: ", message.Error) + klog.Error("kafka message carries error: ", message.Error) return nil } event := p.decoder.Decode(message.Message.Value) diff --git a/input/random_input.go b/input/random_input.go index f0b2f1f8..6f12451e 100644 --- a/input/random_input.go +++ b/input/random_input.go @@ -6,7 +6,7 @@ import ( "github.com/childe/gohangout/codec" "github.com/childe/gohangout/topology" - "github.com/golang/glog" + "k8s.io/klog/v2" ) type RandomInput struct { @@ -37,13 +37,13 @@ func newRandomInput(config map[interface{}]interface{}) topology.Input { if v, ok := config["from"]; ok { p.from = v.(int) } else { - glog.Fatal("from must be configured in Random Input") + klog.Fatal("from must be configured in Random Input") } if v, ok := config["to"]; ok { p.to = v.(int) } else { - glog.Fatal("to must be configured in Random Input") + klog.Fatal("to must be configured in Random Input") } if v, ok := config["max_messages"]; ok { diff --git a/input/stdin_input.go b/input/stdin_input.go index a76a5012..61609043 100644 --- a/input/stdin_input.go +++ b/input/stdin_input.go @@ -7,7 +7,7 @@ import ( "github.com/childe/gohangout/codec" "github.com/childe/gohangout/topology" - "github.com/golang/glog" + "k8s.io/klog/v2" ) type StdinInput struct { @@ -48,7 +48,7 @@ func (p *StdinInput) ReadOneEvent() map[string]interface{} { return p.decoder.Decode(msg) } if err := p.scanner.Err(); err != nil { - glog.Errorf("stdin scan error: %v", err) + klog.Errorf("stdin scan error: %v", err) } else { // EOF here. when stdin is closed by C-D, cpu will raise up to 100% if not sleep time.Sleep(time.Millisecond * 1000) diff --git a/input/tcp_input.go b/input/tcp_input.go index 673b3fe9..e077d54f 100644 --- a/input/tcp_input.go +++ b/input/tcp_input.go @@ -6,7 +6,7 @@ import ( "github.com/childe/gohangout/codec" "github.com/childe/gohangout/topology" - "github.com/golang/glog" + "k8s.io/klog/v2" ) type TCPInput struct { @@ -30,7 +30,7 @@ func readLine(scanner *bufio.Scanner, c net.Conn, messages chan<- []byte) { } if err := scanner.Err(); err != nil { - glog.Errorf("read from %v->%v error: %v", c.RemoteAddr(), c.LocalAddr(), err) + klog.Errorf("read from %v->%v error: %v", c.RemoteAddr(), c.LocalAddr(), err) } c.Close() } @@ -53,10 +53,10 @@ func newTCPInput(config map[interface{}]interface{}) topology.Input { if v, ok := config["max_length"]; ok { if max, ok := v.(int); ok { if max <= 0 { - glog.Fatal("max_length must be bigger than zero") + klog.Fatal("max_length must be bigger than zero") } } else { - glog.Fatal("max_length must be int") + klog.Fatal("max_length must be int") } } @@ -68,12 +68,12 @@ func newTCPInput(config map[interface{}]interface{}) topology.Input { if addr, ok := config["address"]; ok { p.address = addr.(string) } else { - glog.Fatal("address must be set in TCP input") + klog.Fatal("address must be set in TCP input") } l, err := net.Listen(p.network, p.address) if err != nil { - glog.Fatal(err) + klog.Fatal(err) } p.l = l @@ -84,7 +84,7 @@ func newTCPInput(config map[interface{}]interface{}) topology.Input { if p.stop { return } - glog.Error(err) + klog.Error(err) } else { scanner := bufio.NewScanner(conn) if v, ok := config["max_length"]; ok { diff --git a/input/udp_input.go b/input/udp_input.go index 5c88a55b..33c0eb81 100644 --- a/input/udp_input.go +++ b/input/udp_input.go @@ -5,7 +5,7 @@ import ( "github.com/childe/gohangout/codec" "github.com/childe/gohangout/topology" - "github.com/golang/glog" + "k8s.io/klog/v2" ) type msg struct { @@ -44,10 +44,10 @@ func newUDPInput(config map[interface{}]interface{}) topology.Input { if v, ok := config["max_length"]; ok { if max, ok := v.(int); ok { if max <= 0 { - glog.Fatal("max_length must be bigger than zero") + klog.Fatal("max_length must be bigger than zero") } } else { - glog.Fatal("max_length must be int") + klog.Fatal("max_length must be int") } } @@ -59,17 +59,17 @@ func newUDPInput(config map[interface{}]interface{}) topology.Input { if addr, ok := config["address"]; ok { p.address = addr.(string) } else { - glog.Fatal("address must be set in UDP input") + klog.Fatal("address must be set in UDP input") } udpAddr, err := net.ResolveUDPAddr(p.network, p.address) if err != nil { - glog.Fatalf("resolve udp addr error: %v", err) + klog.Fatalf("resolve udp addr error: %v", err) } conn, err := net.ListenUDP(p.network, udpAddr) if err != nil { - glog.Fatalf("listen udp error: %v", err) + klog.Fatalf("listen udp error: %v", err) } p.conn = conn @@ -90,7 +90,7 @@ func newUDPInput(config map[interface{}]interface{}) topology.Input { if p.stop { return } - glog.Errorf("read from UDP error: %v", err) + klog.Errorf("read from UDP error: %v", err) } p.messages <- msg{ message: buf[:n], diff --git a/internal/config/config_parser.go b/internal/config/config_parser.go index 0303f124..f974b32d 100644 --- a/internal/config/config_parser.go +++ b/internal/config/config_parser.go @@ -5,8 +5,8 @@ import ( "regexp" "strings" - "github.com/golang/glog" yaml "gopkg.in/yaml.v2" + "k8s.io/klog/v2" ) type Config map[string]interface{} @@ -31,7 +31,7 @@ func RemoveSensitiveInfo(config map[string]interface{}) string { b, err := yaml.Marshal(config) if err != nil { - glog.Errorf("marshal config error: %s", err) + klog.Errorf("marshal config error: %s", err) return "" } diff --git a/internal/config/config_watcher.go b/internal/config/config_watcher.go index 09797f20..16d72506 100644 --- a/internal/config/config_watcher.go +++ b/internal/config/config_watcher.go @@ -2,7 +2,7 @@ package config import ( "github.com/fsnotify/fsnotify" - "github.com/golang/glog" + "k8s.io/klog/v2" ) // Watcher watches the config file and callback f @@ -19,20 +19,20 @@ func WatchConfig(filename string, reloadFunc func()) error { select { case event, more := <-watcher.Events: if !more { - glog.Info("config file watcher closed") + klog.Info("config file watcher closed") return } - glog.Infof("capture file watch event: %s", event) + klog.Infof("capture file watch event: %s", event) reloadFunc() // filename may be renamed, so add it again watcher.Add(filename) case err, more := <-watcher.Errors: if !more { - glog.Info("error channel of config file watcher closed") + klog.Info("error channel of config file watcher closed") return } - glog.Errorf("error from config file watcher: %v", err) + klog.Errorf("error from config file watcher: %v", err) } } }() diff --git a/internal/signal/signalhandle_unix.go b/internal/signal/signalhandle_unix.go index 91ad6506..2646e957 100644 --- a/internal/signal/signalhandle_unix.go +++ b/internal/signal/signalhandle_unix.go @@ -8,7 +8,7 @@ import ( "os/signal" "syscall" - "github.com/golang/glog" + "k8s.io/klog/v2" ) func ListenSignal(termFunc func(), reloadFunc func()) { @@ -16,7 +16,7 @@ func ListenSignal(termFunc func(), reloadFunc func()) { signal.Notify(c, syscall.SIGINT, syscall.SIGTERM, syscall.SIGUSR1) for sig := range c { - glog.Infof("capture signal: %v", sig) + klog.Infof("capture signal: %v", sig) switch sig { case syscall.SIGINT, syscall.SIGTERM: termFunc() diff --git a/internal/signal/signalhandle_windows.go b/internal/signal/signalhandle_windows.go index 0167fbba..87df024e 100644 --- a/internal/signal/signalhandle_windows.go +++ b/internal/signal/signalhandle_windows.go @@ -8,7 +8,7 @@ import ( "os/signal" "syscall" - "github.com/golang/glog" + "k8s.io/klog/v2" ) func ListenSignal(termFunc func(), reloadFunc func()) { @@ -16,7 +16,7 @@ func ListenSignal(termFunc func(), reloadFunc func()) { signal.Notify(c, syscall.SIGINT, syscall.SIGTERM) for sig := range c { - glog.Infof("capture signal: %v", sig) + klog.Infof("capture signal: %v", sig) switch sig { case syscall.SIGINT, syscall.SIGTERM: termFunc() diff --git a/output/bulk_http.go b/output/bulk_http.go index 259393eb..d1cd0a7c 100644 --- a/output/bulk_http.go +++ b/output/bulk_http.go @@ -10,7 +10,7 @@ import ( "sync" "time" - "github.com/golang/glog" + "k8s.io/klog/v2" ) const ( @@ -150,33 +150,33 @@ func (p *HTTPBulkProcessor) innerBulk(bulkRequest *BulkRequest) { _startTime := float64(time.Now().UnixNano()/1000000) / 1000 eventCount := (*bulkRequest).eventCount() - glog.Infof("bulk %d docs with execution_id %d", eventCount, p.execution_id) + klog.Infof("bulk %d docs with execution_id %d", eventCount, p.execution_id) for { nexthost := p.hostSelector.Next() if nexthost == nil { - glog.Info("no available host, wait for 30s") + klog.Info("no available host, wait for 30s") time.Sleep(30 * time.Second) continue } host := nexthost.(string) - glog.Infof("try to bulk with host (%s)", REMOVE_HTTP_AUTH_REGEXP.ReplaceAllString(host, "${1}")) + klog.Infof("try to bulk with host (%s)", REMOVE_HTTP_AUTH_REGEXP.ReplaceAllString(host, "${1}")) url := strings.TrimRight(host, "/") + "/_bulk" success, shouldRetry, noRetry, newBulkRequest := p.tryOneBulk(url, bulkRequest) if success { _finishTime := float64(time.Now().UnixNano()/1000000) / 1000 timeTaken := _finishTime - _startTime - glog.Infof("bulk done with execution_id %d %.3f %d %.3f", execution_id, timeTaken, eventCount, float64(eventCount)/timeTaken) + klog.Infof("bulk done with execution_id %d %.3f %d %.3f", execution_id, timeTaken, eventCount, float64(eventCount)/timeTaken) p.hostSelector.AddWeight() } else { - glog.Errorf("bulk failed with %s", url) + klog.Errorf("bulk failed with %s", url) p.hostSelector.ReduceWeight() continue } if len(shouldRetry) > 0 || len(noRetry) > 0 { - glog.Infof("%d should retry; %d need not retry", len(shouldRetry), len(noRetry)) + klog.Infof("%d should retry; %d need not retry", len(shouldRetry), len(noRetry)) } if len(shouldRetry) > 0 { @@ -188,8 +188,8 @@ func (p *HTTPBulkProcessor) innerBulk(bulkRequest *BulkRequest) { } func (p *HTTPBulkProcessor) tryOneBulk(url string, br *BulkRequest) (bool, []int, []int, BulkRequest) { - glog.V(5).Infof("request size:%d", (*br).bufSizeByte()) - glog.V(20).Infof("%s", (*br).readBuf()) + klog.V(5).Infof("request size:%d", (*br).bufSizeByte()) + klog.V(20).Infof("%s", (*br).readBuf()) var ( shouldRetry = make([]int, 0) @@ -203,16 +203,16 @@ func (p *HTTPBulkProcessor) tryOneBulk(url string, br *BulkRequest) (bool, []int var buf bytes.Buffer g := gzip.NewWriter(&buf) if _, err = g.Write((*br).readBuf()); err != nil { - glog.Errorf("gzip bulk buf error: %s", err) + klog.Errorf("gzip bulk buf error: %s", err) return false, shouldRetry, noRetry, nil } if err = g.Close(); err != nil { - glog.Errorf("gzip bulk buf error: %s", err) + klog.Errorf("gzip bulk buf error: %s", err) return false, shouldRetry, noRetry, nil } req, err = http.NewRequest(p.requestMethod, url, &buf) if err != nil { - glog.Errorf("create request error: %s", err) + klog.Errorf("create request error: %s", err) return false, shouldRetry, noRetry, nil } else { req.Header.Set("Content-Encoding", "gzip") @@ -222,7 +222,7 @@ func (p *HTTPBulkProcessor) tryOneBulk(url string, br *BulkRequest) (bool, []int } if err != nil { - glog.Errorf("create request error: %s", err) + klog.Errorf("create request error: %s", err) return false, shouldRetry, noRetry, nil } @@ -233,7 +233,7 @@ func (p *HTTPBulkProcessor) tryOneBulk(url string, br *BulkRequest) (bool, []int resp, err := p.client.Do(req) if err != nil { - glog.Infof("request with %s error: %s", url, err) + klog.Infof("request with %s error: %s", url, err) return false, shouldRetry, noRetry, nil } @@ -245,11 +245,11 @@ func (p *HTTPBulkProcessor) tryOneBulk(url string, br *BulkRequest) (bool, []int respBody, err := ioutil.ReadAll(resp.Body) if err != nil { - glog.Errorf(`read bulk response error: %s. will NOT retry`, err) + klog.Errorf(`read bulk response error: %s. will NOT retry`, err) return true, shouldRetry, noRetry, nil } - glog.V(5).Infof("get response[%d]", len(respBody)) - glog.V(20).Infof("%s", respBody) + klog.V(5).Infof("get response[%d]", len(respBody)) + klog.V(20).Infof("%s", respBody) shouldRetry, noRetry, newBulkRequest = p.getRetryEventsFunc(resp, respBody, br) @@ -262,10 +262,10 @@ func (p *HTTPBulkProcessor) awaitclose(timeout time.Duration) { defer func() { select { case <-c: - glog.Info("all bulk job done. return") + klog.Info("all bulk job done. return") return case <-time.After(timeout): - glog.Info("await timeout. return") + klog.Info("await timeout. return") return } }() @@ -286,7 +286,7 @@ AllBulkReqInChan: } p.wg.Add(1) go func() { - glog.Infof("bulk %d docs from bulkChan in awaitclose", (*bulkRequest).eventCount()) + klog.Infof("bulk %d docs from bulkChan in awaitclose", (*bulkRequest).eventCount()) p.innerBulk(bulkRequest) p.wg.Done() }() @@ -305,7 +305,7 @@ AllBulkReqInChan: p.wg.Add(1) go func() { - glog.Infof("bulk last %d docs in awaitclose", bulkRequest.eventCount()) + klog.Infof("bulk last %d docs in awaitclose", bulkRequest.eventCount()) p.innerBulk(&bulkRequest) p.wg.Done() }() diff --git a/output/clickhouse_output.go b/output/clickhouse_output.go index 253a94ab..fe63d5f1 100644 --- a/output/clickhouse_output.go +++ b/output/clickhouse_output.go @@ -13,8 +13,8 @@ import ( clickhouse "github.com/ClickHouse/clickhouse-go" "github.com/childe/gohangout/topology" - "github.com/golang/glog" "github.com/spf13/cast" + "k8s.io/klog/v2" ) const ( @@ -66,7 +66,7 @@ func (c *ClickhouseOutput) setTableDesc() { c.desc = make(map[string]*rowDesc) query := fmt.Sprintf("desc table %s", c.table) - glog.V(5).Info(query) + klog.V(5).Info(query) for i := 0; i < c.dbSelector.Size(); i++ { nextdb := c.dbSelector.Next() @@ -75,16 +75,16 @@ func (c *ClickhouseOutput) setTableDesc() { rows, err := db.Query(query) if err != nil { - glog.Errorf("query %q error: %s", query, err) + klog.Errorf("query %q error: %s", query, err) continue } defer rows.Close() columns, err := rows.Columns() if err != nil { - glog.Fatalf("could not get columns from query `%s`: %s", query, err) + klog.Fatalf("could not get columns from query `%s`: %s", query, err) } - glog.V(10).Infof("desc table columns: %v", columns) + klog.V(10).Infof("desc table columns: %v", columns) descMap := make(map[string]string) for _, c := range columns { @@ -99,7 +99,7 @@ func (c *ClickhouseOutput) setTableDesc() { } if err := rows.Scan(values...); err != nil { - glog.Fatalf("scan rows error: %s", err) + klog.Fatalf("scan rows error: %s", err) } descMap := make(map[string]string) @@ -118,16 +118,16 @@ func (c *ClickhouseOutput) setTableDesc() { b, err := json.Marshal(descMap) if err != nil { - glog.Fatalf("marshal desc error: %s", err) + klog.Fatalf("marshal desc error: %s", err) } rowDesc := rowDesc{} err = json.Unmarshal(b, &rowDesc) if err != nil { - glog.Fatalf("marshal desc error: %s", err) + klog.Fatalf("marshal desc error: %s", err) } - glog.V(5).Infof("row desc: %#v", rowDesc) + klog.V(5).Infof("row desc: %#v", rowDesc) c.desc[rowDesc.Name] = &rowDesc } @@ -165,13 +165,13 @@ func (c *ClickhouseOutput) setColumnDefault() { case "DEFAULT": defaultValue = &(d.DefaultExpression) case "MATERIALIZED": - glog.Fatal("parse default value: MATERIALIZED expression not supported") + klog.Fatal("parse default value: MATERIALIZED expression not supported") case "ALIAS": - glog.Fatal("parse default value: ALIAS expression not supported") + klog.Fatal("parse default value: ALIAS expression not supported") case "": defaultValue = nil default: - glog.Fatal("parse default value: only DEFAULT expression supported") + klog.Fatal("parse default value: only DEFAULT expression supported") } switch d.Type { @@ -193,7 +193,7 @@ func (c *ClickhouseOutput) setColumnDefault() { if e == nil { c.defaultValue[columnName] = i } else { - glog.Fatalf("parse default value `%v` error: %v", defaultValue, e) + klog.Fatalf("parse default value `%v` error: %v", defaultValue, e) } } case "Float32", "Float64": @@ -204,7 +204,7 @@ func (c *ClickhouseOutput) setColumnDefault() { if e == nil { c.defaultValue[columnName] = i } else { - glog.Fatalf("parse default value `%v` error: %v", defaultValue, e) + klog.Fatalf("parse default value `%v` error: %v", defaultValue, e) } } case "IPv4": @@ -240,7 +240,7 @@ func (c *ClickhouseOutput) setColumnDefault() { // 需要要求列声明的最小枚举值为 '' c.defaultValue[columnName] = "" default: - glog.Errorf("column: %s, type: %s. unsupported column type, ignore.", columnName, d.Type) + klog.Errorf("column: %s, type: %s. unsupported column type, ignore.", columnName, d.Type) continue } @@ -281,7 +281,7 @@ func newClickhouseOutput(config map[interface{}]interface{}) topology.Output { if v, ok := config["table"]; ok { p.table = v.(string) } else { - glog.Fatalf("table must be set in clickhouse output") + klog.Fatalf("table must be set in clickhouse output") } if v, ok := config["hosts"]; ok { @@ -289,7 +289,7 @@ func newClickhouseOutput(config map[interface{}]interface{}) topology.Output { p.hosts = append(p.hosts, h.(string)) } } else { - glog.Fatalf("hosts must be set in clickhouse output") + klog.Fatalf("hosts must be set in clickhouse output") } if v, ok := config["username"]; ok { @@ -317,22 +317,22 @@ func newClickhouseOutput(config map[interface{}]interface{}) topology.Output { if db, err := sql.Open("clickhouse", dataSourceName); err == nil { if err := db.Ping(); err != nil { if exception, ok := err.(*clickhouse.Exception); ok { - glog.Errorf("[%d] %s \n%s\n", exception.Code, exception.Message, exception.StackTrace) + klog.Errorf("[%d] %s \n%s\n", exception.Code, exception.Message, exception.StackTrace) } else { - glog.Errorf("clickhouse ping error: %s", err) + klog.Errorf("clickhouse ping error: %s", err) } } else { db.SetConnMaxLifetime(time.Second * time.Duration(connMaxLifetime)) dbs = append(dbs, db) } } else { - glog.Errorf("open %s error: %s", host, err) + klog.Errorf("open %s error: %s", host, err) } } - glog.V(5).Infof("%d available clickhouse hosts", len(dbs)) + klog.V(5).Infof("%d available clickhouse hosts", len(dbs)) if len(dbs) == 0 { - glog.Fatal("no available host") + klog.Fatal("no available host") } dbsI := make([]interface{}, len(dbs)) @@ -343,7 +343,7 @@ func newClickhouseOutput(config map[interface{}]interface{}) topology.Output { p.setColumnDefault() if len(p.fields) <= 0 { - glog.Fatalf("fields not set in clickhouse output and could get fields from clickhouse table") + klog.Fatalf("fields not set in clickhouse output and could get fields from clickhouse table") } p.fieldsLength = len(p.fields) @@ -356,7 +356,7 @@ func newClickhouseOutput(config map[interface{}]interface{}) topology.Output { questionMarks[i] = "?" } p.query = fmt.Sprintf("INSERT INTO %s (%s) VALUES (%s)", p.table, strings.Join(fields, ","), strings.Join(questionMarks, ",")) - glog.V(5).Infof("query: %s", p.query) + klog.V(5).Infof("query: %s", p.query) concurrent := 1 if v, ok := config["concurrent"]; ok { @@ -409,7 +409,7 @@ func (c *ClickhouseOutput) convert(event map[string]interface{}) { if intConverterValue, err := cast.ToInt64E(keyIntValue); err == nil { event[key] = intConverterValue } else { - glog.V(10).Infof("ch_output convert intType error: %s", err) + klog.V(10).Infof("ch_output convert intType error: %s", err) event[key] = nil } } @@ -423,7 +423,7 @@ func (c *ClickhouseOutput) convert(event map[string]interface{}) { if v, err := cast.ToInt64E(v); err == nil { ints[i] = v } else { - glog.V(10).Infof("ch_output convert arrayIntType error: %s", err) + klog.V(10).Infof("ch_output convert arrayIntType error: %s", err) ints[i] = 0 } event[key] = ints @@ -437,7 +437,7 @@ func (c *ClickhouseOutput) convert(event map[string]interface{}) { if err == nil { event[key] = floatConverterValue } else { - glog.V(10).Infof("ch_output convert floatType error: %s", err) + klog.V(10).Infof("ch_output convert floatType error: %s", err) event[key] = nil } } @@ -446,14 +446,14 @@ func (c *ClickhouseOutput) convert(event map[string]interface{}) { func (c *ClickhouseOutput) innerFlush(events []map[string]interface{}) { execution_id := atomic.AddUint64(&c.execution_id, 1) - glog.Infof("write %d docs to clickhouse with execution_id %d", len(events), execution_id) + klog.Infof("write %d docs to clickhouse with execution_id %d", len(events), execution_id) for { nextdb := c.dbSelector.Next() /*** not ReduceWeight for now , so this should not happen if nextdb == nil { - glog.Info("no available db, wait for 30s") + klog.Info("no available db, wait for 30s") time.Sleep(30 * time.Second) continue } @@ -461,14 +461,14 @@ func (c *ClickhouseOutput) innerFlush(events []map[string]interface{}) { tx, err := nextdb.(*sql.DB).Begin() if err != nil { - glog.Errorf("db begin to create transaction error: %s", err) + klog.Errorf("db begin to create transaction error: %s", err) continue } defer tx.Rollback() stmt, err := tx.Prepare(c.query) if err != nil { - glog.Errorf("transaction prepare statement error: %s", err) + klog.Errorf("transaction prepare statement error: %s", err) return } defer stmt.Close() @@ -492,16 +492,16 @@ func (c *ClickhouseOutput) innerFlush(events []map[string]interface{}) { } if _, err := stmt.Exec(args...); err != nil { - glog.Errorf("exec clickhouse insert %v error: %s", event, err) + klog.Errorf("exec clickhouse insert %v error: %s", event, err) return } } if err := tx.Commit(); err != nil { - glog.Errorf("exec clickhouse commit error: %s", err) + klog.Errorf("exec clickhouse commit error: %s", err) return } - glog.Infof("%d docs has been committed to clickhouse", len(events)) + klog.Infof("%d docs has been committed to clickhouse", len(events)) return } } @@ -537,10 +537,10 @@ func (c *ClickhouseOutput) awaitclose(timeout time.Duration) { defer func() { select { case <-exit: - glog.Info("all clickhouse flush job done. return") + klog.Info("all clickhouse flush job done. return") return case <-time.After(timeout): - glog.Info("clickhouse await timeout. return") + klog.Info("clickhouse await timeout. return") return } }() @@ -552,18 +552,18 @@ func (c *ClickhouseOutput) awaitclose(timeout time.Duration) { }() }() - glog.Info("try to write remaining docs to clickhouse") + klog.Info("try to write remaining docs to clickhouse") c.mux.Lock() if len(c.events) <= 0 { - glog.Info("no docs remain, return") + klog.Info("no docs remain, return") c.mux.Unlock() } else { events := c.events c.events = make([]map[string]interface{}, 0, c.bulk_actions) c.mux.Unlock() - glog.Infof("ramain %d docs, write them to clickhouse", len(events)) + klog.Infof("ramain %d docs, write them to clickhouse", len(events)) c.wg.Add(1) go func() { c.innerFlush(events) @@ -571,7 +571,7 @@ func (c *ClickhouseOutput) awaitclose(timeout time.Duration) { }() } - glog.Info("check if there are events blocking in bulk channel") + klog.Info("check if there are events blocking in bulk channel") for { select { diff --git a/output/elasticsearch_output.go b/output/elasticsearch_output.go index 52e888e1..57397e33 100644 --- a/output/elasticsearch_output.go +++ b/output/elasticsearch_output.go @@ -13,12 +13,12 @@ import ( "time" "github.com/yalp/jsonpath" + "k8s.io/klog/v2" "github.com/childe/gohangout/codec" "github.com/childe/gohangout/condition_filter" "github.com/childe/gohangout/topology" "github.com/childe/gohangout/value_render" - "github.com/golang/glog" ) const ( @@ -76,7 +76,7 @@ func (action *Action) Encode() []byte { if action.rawSource == nil { buf, err = f().Encode(action.event) if err != nil { - glog.Errorf("could marshal event(%v):%s", action.event, err) + klog.Errorf("could marshal event(%v):%s", action.event, err) return nil } } else { @@ -139,15 +139,15 @@ func esGetRetryEvents(resp *http.Response, respBody []byte, bulkRequest *BulkReq var responseI interface{} err := json.Unmarshal(respBody, &responseI) if err != nil { - glog.Errorf(`could not unmarshal bulk response:"%s". will NOT retry. %s`, err, string(respBody[:100])) + klog.Errorf(`could not unmarshal bulk response:"%s". will NOT retry. %s`, err, string(respBody[:100])) return retry, noRetry, nil } bulkResponse := responseI.(map[string]interface{}) - glog.V(20).Infof("%v", bulkResponse) + klog.V(20).Infof("%v", bulkResponse) if bulkResponse["errors"] == nil { - glog.Infof("could NOT get errors in response:%s", string(respBody)) + klog.Infof("could NOT get errors in response:%s", string(respBody)) return retry, noRetry, nil } @@ -162,7 +162,7 @@ func esGetRetryEvents(resp *http.Response, respBody []byte, bulkRequest *BulkReq if errorValue, ok := index["error"]; ok { //errorType := errorValue.(map[string]interface{})["type"].(string) if !hasLog { - glog.Infof("error :%v", errorValue) + klog.Infof("error :%v", errorValue) hasLog = true } @@ -183,9 +183,9 @@ func buildRetryBulkRequest(shouldRetry, noRetry []int, bulkRequest *BulkRequest) if len(noRetry) > 0 { b, err := json.Marshal(esBulkRequest.events[noRetry[0]].(*Action).event) if err != nil { - glog.Infof("one failed doc that need no retry: %+v", esBulkRequest.events[noRetry[0]].(*Action).event) + klog.Infof("one failed doc that need no retry: %+v", esBulkRequest.events[noRetry[0]].(*Action).event) } else { - glog.Infof("one failed doc that need no retry: %s", b) + klog.Infof("one failed doc that need no retry: %s", b) } } @@ -226,14 +226,14 @@ func newElasticsearchOutput(config map[interface{}]interface{}) topology.Output if v, ok := config["index"]; ok { rst.index = value_render.GetValueRender(v.(string)) } else { - glog.Fatal("index must be set in elasticsearch output") + klog.Fatal("index must be set in elasticsearch output") } if v, ok := config["index_time_location"]; ok { if e, ok := rst.index.(*value_render.IndexRender); ok { e.SetTimeLocation(v.(string)) } else { - glog.Fatal("index_time_location is not supported in this index format") + klog.Fatal("index_time_location is not supported in this index format") } } @@ -299,7 +299,7 @@ func newElasticsearchOutput(config map[interface{}]interface{}) topology.Output concurrent = DEFAULT_CONCURRENT } if concurrent <= 0 { - glog.Fatal("concurrent must > 0") + klog.Fatal("concurrent must > 0") } if v, ok := config["compress"]; ok { compress = v.(bool) @@ -340,7 +340,7 @@ func newElasticsearchOutput(config map[interface{}]interface{}) topology.Output for _, h := range v.([]interface{}) { scheme, user, password, host := getUserPasswordAndHost(h.(string)) if host == "" { - glog.Fatalf("invalid host: %q", host) + klog.Fatalf("invalid host: %q", host) } rst.scheme = scheme rst.user = user @@ -348,21 +348,21 @@ func newElasticsearchOutput(config map[interface{}]interface{}) topology.Output hosts = append(hosts, host) } } else { - glog.Fatal("hosts must be set in elasticsearch output") + klog.Fatal("hosts must be set in elasticsearch output") } rst.hosts = hosts var err error if sniff, ok := config["sniff"]; ok { - glog.Infof("sniff hosts in es cluster") + klog.Infof("sniff hosts in es cluster") sniff := sniff.(map[interface{}]interface{}) hosts, err = sniffNodes(config) - glog.Infof("new hosts after sniff: %v", hosts) + klog.Infof("new hosts after sniff: %v", hosts) if err != nil { - glog.Fatalf("could not sniff hosts: %v", err) + klog.Fatalf("could not sniff hosts: %v", err) } if len(hosts) == 0 { - glog.Fatal("no available hosts after sniff") + klog.Fatal("no available hosts after sniff") } rst.hosts = hosts @@ -372,10 +372,10 @@ func newElasticsearchOutput(config map[interface{}]interface{}) topology.Output for range time.NewTicker(time.Second * time.Duration(refreshInterval)).C { hosts, err = sniffNodes(config) if err != nil { - glog.Errorf("could not sniff hosts: %v", err) + klog.Errorf("could not sniff hosts: %v", err) } else { if !reflect.DeepEqual(rst.hosts, hosts) { - glog.Infof("new hosts after sniff: %v", hosts) + klog.Infof("new hosts after sniff: %v", hosts) rst.hosts = hosts rst.bulkProcessor.(*HTTPBulkProcessor).resetHosts(rst.assebleHosts()) } @@ -401,7 +401,7 @@ func getUserPasswordAndHost(url string) (scheme, user, password, host string) { host = strings.TrimRight(r[2], "/") return } else { - glog.Infof("%q is invalid host format", host) + klog.Infof("%q is invalid host format", host) return } } @@ -416,7 +416,7 @@ func sniffNodes(config map[interface{}]interface{}) ([]string, error) { if v != nil { match, ok = v.(string) if !ok { - glog.Fatal("match in sniff settings must be string") + klog.Fatal("match in sniff settings must be string") } } for _, host := range config["hosts"].([]interface{}) { @@ -424,7 +424,7 @@ func sniffNodes(config map[interface{}]interface{}) ([]string, error) { if nodes, err := sniffNodesFromOneHost(host, match); err == nil { return nodes, err } else { - glog.Errorf("sniff nodes error from %s: %v", REMOVE_HTTP_AUTH_REGEXP.ReplaceAllString(host, "${1}"), err) + klog.Errorf("sniff nodes error from %s: %v", REMOVE_HTTP_AUTH_REGEXP.ReplaceAllString(host, "${1}"), err) } } return nil, errors.New("sniff nodes error from all hosts") @@ -457,7 +457,7 @@ func sniffNodesFromOneHost(host string, match string) ([]string, error) { return nil, err } - glog.Infof("sniff resp: %v", v) + klog.Infof("sniff resp: %v", v) return filterNodesIPList(v, match) } @@ -525,7 +525,7 @@ func (p *ElasticsearchOutput) Emit(event map[string]interface{}) { t := p.id.Render(event) if t == nil { id = "" - glog.V(20).Infof("could not render id:%s", event) + klog.V(20).Infof("could not render id:%s", event) } else { id = t.(string) } @@ -537,7 +537,7 @@ func (p *ElasticsearchOutput) Emit(event map[string]interface{}) { t := p.routing.Render(event) if t == nil { routing = "" - glog.V(20).Infof("could not render routing:%s", event) + klog.V(20).Infof("could not render routing:%s", event) } else { routing = t.(string) } diff --git a/output/influxdb_output.go b/output/influxdb_output.go index 71c5cf4e..c429ad74 100644 --- a/output/influxdb_output.go +++ b/output/influxdb_output.go @@ -9,7 +9,7 @@ import ( "github.com/childe/gohangout/topology" "github.com/childe/gohangout/value_render" - "github.com/golang/glog" + "k8s.io/klog/v2" ) const () @@ -45,7 +45,7 @@ func (action *InAction) Encode() []byte { } } if len(field_set) <= 0 { - glog.V(20).Infof("field set is nil. fields: %v. event: %v", action.fields, action.event) + klog.V(20).Infof("field set is nil. fields: %v. event: %v", action.fields, action.event) return nil } else { bulk_buf = append(bulk_buf, ' ') @@ -57,7 +57,7 @@ func (action *InAction) Encode() []byte { if t != nil && reflect.TypeOf(t).String() == "time.Time" { bulk_buf = append(bulk_buf, fmt.Sprintf(" %d", t.(time.Time).UnixNano())...) } else { - glog.V(20).Infof("%s is not time.Time", action.timestamp) + klog.V(20).Infof("%s is not time.Time", action.timestamp) } return bulk_buf @@ -112,13 +112,13 @@ func newInfluxdbOutput(config map[interface{}]interface{}) topology.Output { if v, ok := config["db"]; ok { rst.db = v.(string) } else { - glog.Fatal("db must be set in elasticsearch output") + klog.Fatal("db must be set in elasticsearch output") } if v, ok := config["measurement"]; ok { rst.measurement = value_render.GetValueRender(v.(string)) } else { - glog.Fatal("measurement must be set in elasticsearch output") + klog.Fatal("measurement must be set in elasticsearch output") } if v, ok := config["tags"]; ok { @@ -163,7 +163,7 @@ func newInfluxdbOutput(config map[interface{}]interface{}) topology.Output { concurrent = DEFAULT_CONCURRENT } if concurrent <= 0 { - glog.Fatal("concurrent must > 0") + klog.Fatal("concurrent must > 0") } if v, ok := config["compress"]; ok { compress = v.(bool) @@ -177,7 +177,7 @@ func newInfluxdbOutput(config map[interface{}]interface{}) topology.Output { hosts = append(hosts, h.(string)+"/write?db="+rst.db) } } else { - glog.Fatal("hosts must be set in elasticsearch output") + klog.Fatal("hosts must be set in elasticsearch output") } headers := make(map[string]string) diff --git a/output/kafka_output.go b/output/kafka_output.go index a8029ef3..ba2a4230 100644 --- a/output/kafka_output.go +++ b/output/kafka_output.go @@ -7,7 +7,7 @@ import ( "github.com/childe/gohangout/topology" "github.com/childe/gohangout/value_render" "github.com/childe/healer" - "github.com/golang/glog" + "k8s.io/klog/v2" ) func init() { @@ -36,7 +36,7 @@ func newKafkaOutput(config map[interface{}]interface{}) topology.Output { pc, ok := config["producer_settings"] if !ok { - glog.Fatal("kafka output must have producer_settings") + klog.Fatal("kafka output must have producer_settings") } newPc := make(map[string]interface{}) for k, v := range pc.(map[interface{}]interface{}) { @@ -44,23 +44,23 @@ func newKafkaOutput(config map[interface{}]interface{}) topology.Output { } producer_settings := make(map[string]interface{}) if b, err := json.Marshal(newPc); err != nil { - glog.Fatalf("could not init kafka producer config: %v", err) + klog.Fatalf("could not init kafka producer config: %v", err) } else { json.Unmarshal(b, &producer_settings) } - glog.Info(producer_settings) + klog.Info(producer_settings) var topic string if v, ok := config["topic"]; !ok { - glog.Fatal("kafka output must have topic setting") + klog.Fatal("kafka output must have topic setting") } else { topic = v.(string) } producer, err := healer.NewProducer(topic, producer_settings) if err != nil { - glog.Fatalf("could not create kafka producer: %v", err) + klog.Fatalf("could not create kafka producer: %v", err) } p.producer = producer @@ -76,7 +76,7 @@ func newKafkaOutput(config map[interface{}]interface{}) topology.Output { func (p *KafkaOutput) Emit(event map[string]interface{}) { buf, err := p.encoder.Encode(event) if err != nil { - glog.Errorf("marshal %v error: %s", event, err) + klog.Errorf("marshal %v error: %s", event, err) return } if p.key == nil { diff --git a/output/output.go b/output/output.go index 9b5a07ee..485f2588 100644 --- a/output/output.go +++ b/output/output.go @@ -6,7 +6,7 @@ import ( "github.com/childe/gohangout/condition_filter" "github.com/childe/gohangout/topology" - "github.com/golang/glog" + "k8s.io/klog/v2" ) type BuildOutputFunc func(map[interface{}]interface{}) topology.Output @@ -16,7 +16,7 @@ var registeredOutput map[string]BuildOutputFunc = make(map[string]BuildOutputFun // Register is used by output plugins to register themselves func Register(outputType string, bf BuildOutputFunc) { if _, ok := registeredOutput[outputType]; ok { - glog.Errorf("%s has been registered, ignore %T", outputType, bf) + klog.Errorf("%s has been registered, ignore %T", outputType, bf) return } registeredOutput[outputType] = bf @@ -29,10 +29,10 @@ func BuildOutput(outputType string, config map[interface{}]interface{}) *topolog if v, ok := registeredOutput[outputType]; ok { output = v(config) } else { - glog.Info("use third party plugin") + klog.Info("use third party plugin") output, err = getOutputFromPlugin(outputType, config) if err != nil { - glog.Errorf("could not load %s: %v", outputType, err) + klog.Errorf("could not load %s: %v", outputType, err) return nil } } diff --git a/output/stdout_output.go b/output/stdout_output.go index dd36d8ff..a3c2e564 100644 --- a/output/stdout_output.go +++ b/output/stdout_output.go @@ -5,7 +5,7 @@ import ( "github.com/childe/gohangout/codec" "github.com/childe/gohangout/topology" - "github.com/golang/glog" + "k8s.io/klog/v2" ) func init() { @@ -35,7 +35,7 @@ func newStdoutOutput(config map[interface{}]interface{}) topology.Output { func (p *StdoutOutput) Emit(event map[string]interface{}) { buf, err := p.encoder.Encode(event) if err != nil { - glog.Errorf("marshal %v error:%s", event, err) + klog.Errorf("marshal %v error:%s", event, err) } fmt.Println(string(buf)) } diff --git a/output/tcp_output.go b/output/tcp_output.go index f3deebb6..2614e18a 100644 --- a/output/tcp_output.go +++ b/output/tcp_output.go @@ -8,7 +8,7 @@ import ( "github.com/childe/gohangout/simplejson" "github.com/childe/gohangout/topology" - "github.com/golang/glog" + "k8s.io/klog/v2" ) func init() { @@ -44,7 +44,7 @@ func newTCPOutput(config map[interface{}]interface{}) topology.Output { if addr, ok := config["address"]; ok { p.address, ok = addr.(string) } else { - glog.Fatal("address must be set in TCP output") + klog.Fatal("address must be set in TCP output") } if timeoutI, ok := config["dial.timeout"]; ok { @@ -55,7 +55,7 @@ func newTCPOutput(config map[interface{}]interface{}) topology.Output { if keepaliveI, ok := config["keepalive"]; ok { keepalive, ok := keepaliveI.(int) if !ok { - glog.Fatal("keepalive must be integer") + klog.Fatal("keepalive must be integer") } p.keepalive = time.Second * time.Duration(keepalive) } @@ -74,14 +74,14 @@ func newTCPOutput(config map[interface{}]interface{}) topology.Output { d := &simplejson.SimpleJsonDecoder{} buf, err := d.Encode(event) if err != nil { - glog.Errorf("marshal %v error:%s", event, err) + klog.Errorf("marshal %v error:%s", event, err) return } buf = append(buf, '\n') for { if err = write(p.conn[i], buf); err != nil { - glog.Error(err) + klog.Error(err) p.conn[i].Close() p.conn[i] = p.loopDial() } else { @@ -98,10 +98,10 @@ func newTCPOutput(config map[interface{}]interface{}) topology.Output { func (p *TCPOutput) loopDial() net.Conn { for { if conn, err := p.dial(); err != nil { - glog.Errorf("dial error: %s. sleep 1s", err) + klog.Errorf("dial error: %s. sleep 1s", err) time.Sleep(1 * time.Second) } else { - glog.Infof("conn built to %s", conn.RemoteAddr()) + klog.Infof("conn built to %s", conn.RemoteAddr()) return conn } } @@ -130,7 +130,7 @@ func probe(conn net.Conn) { conn.SetReadDeadline(time.Time{}) _, err := conn.Read(b) // should block here if err != nil && err == io.EOF { - glog.Infof("conn [%s] is closed by the server, close the conn.", conn.RemoteAddr()) + klog.Infof("conn [%s] is closed by the server, close the conn.", conn.RemoteAddr()) conn.Close() } } @@ -140,7 +140,7 @@ func (p *TCPOutput) Emit(event map[string]interface{}) { //buf = append(buf, '\n') //n, err := p.writer.Write(buf) //if n != len(buf) { - //glog.Errorf("write to %s[%s] error: %s", p.address, p.conn.RemoteAddr(), err) + //klog.Errorf("write to %s[%s] error: %s", p.address, p.conn.RemoteAddr(), err) //} //p.writer.Flush() } @@ -150,7 +150,7 @@ func write(conn net.Conn, buf []byte) error { n, err := conn.Write(buf) if err != nil { return err - //glog.Errorf("write to %s[%s] error: %s", p.address, conn.RemoteAddr(), err) + //klog.Errorf("write to %s[%s] error: %s", p.address, conn.RemoteAddr(), err) //switch { //case strings.Contains(str, "use of closed network connection"): //conn = loopDial() diff --git a/topology/filter.go b/topology/filter.go index ba923f91..49d8aa68 100644 --- a/topology/filter.go +++ b/topology/filter.go @@ -7,8 +7,8 @@ import ( "github.com/childe/gohangout/field_deleter" "github.com/childe/gohangout/field_setter" "github.com/childe/gohangout/value_render" - "github.com/golang/glog" "github.com/prometheus/client_golang/prometheus" + "k8s.io/klog/v2" ) type Filter interface { @@ -56,7 +56,7 @@ func NewFilterBox(config map[interface{}]interface{}) *FilterBox { for k, v := range add_fields.(map[interface{}]interface{}) { fieldSetter := field_setter.NewFieldSetter(k.(string)) if fieldSetter == nil { - glog.Fatalf("could build field setter from %s", k.(string)) + klog.Fatalf("could build field setter from %s", k.(string)) } f.addFields[fieldSetter] = value_render.GetValueRender(v.(string)) } @@ -121,9 +121,9 @@ func BuildFilterBoxes(config map[string]interface{}, buildFilter buildFilterFunc for i := 0; i < len(filters); i++ { for filterTypeI, filterConfigI := range filtersI[i].(map[interface{}]interface{}) { filterType := filterTypeI.(string) - glog.Infof("filter type: %s", filterType) + klog.Infof("filter type: %s", filterType) filterConfig := filterConfigI.(map[interface{}]interface{}) - glog.Infof("filter config: %v", filterConfig) + klog.Infof("filter config: %v", filterConfig) filterPlugin := buildFilter(filterType, filterConfig) diff --git a/topology/output.go b/topology/output.go index e571b4e9..394daf75 100644 --- a/topology/output.go +++ b/topology/output.go @@ -2,8 +2,8 @@ package topology import ( "github.com/childe/gohangout/condition_filter" - "github.com/golang/glog" "github.com/prometheus/client_golang/prometheus" + "k8s.io/klog/v2" ) type Output interface { @@ -25,7 +25,7 @@ func BuildOutputs(config map[string]interface{}, buildOutput buildOutputFunc) [] for _, outputs := range config["outputs"].([]interface{}) { for outputType, outputConfig := range outputs.(map[interface{}]interface{}) { outputType := outputType.(string) - glog.Infof("output type: %s", outputType) + klog.Infof("output type: %s", outputType) outputConfig := outputConfig.(map[interface{}]interface{}) output := buildOutput(outputType, outputConfig) diff --git a/topology/prom_counter.go b/topology/prom_counter.go index 0c210e29..ba6f65f7 100644 --- a/topology/prom_counter.go +++ b/topology/prom_counter.go @@ -4,10 +4,10 @@ import ( "encoding/json" "sync" - "github.com/golang/glog" "github.com/mitchellh/mapstructure" "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promauto" + "k8s.io/klog/v2" ) var lock = sync.Mutex{} @@ -33,7 +33,7 @@ func GetPromCounter(config map[interface{}]interface{}) prometheus.Counter { var opts prometheus.CounterOpts = prometheus.CounterOpts{} err := mapstructure.Decode(promConf, &opts) if err != nil { - glog.Errorf("marshal prometheus counter config error: %v", err) + klog.Errorf("marshal prometheus counter config error: %v", err) return nil } diff --git a/value_render/index_render.go b/value_render/index_render.go index fedfceab..11518143 100644 --- a/value_render/index_render.go +++ b/value_render/index_render.go @@ -10,7 +10,7 @@ import ( "strings" "time" - "github.com/golang/glog" + "k8s.io/klog/v2" ) type field struct { @@ -99,7 +99,7 @@ func NewIndexRender(t string) *IndexRender { func (r *IndexRender) SetTimeLocation(loc string) { location, err := time.LoadLocation(loc) if err != nil { - glog.Fatalf("invalid localtion: %s", loc) + klog.Fatalf("invalid localtion: %s", loc) } r.location = location } diff --git a/value_render/template_value_render.go b/value_render/template_value_render.go index e55c2d9e..b9ba700a 100644 --- a/value_render/template_value_render.go +++ b/value_render/template_value_render.go @@ -10,7 +10,7 @@ import ( "time" "github.com/Masterminds/sprig/v3" - "github.com/golang/glog" + "k8s.io/klog/v2" ) type TemplateValueRender struct { @@ -73,7 +73,7 @@ func init() { } d, err := time.ParseDuration(s) if err != nil { - glog.Error(err) + klog.Error(err) return false } dst := time.Now().Add(d) @@ -87,7 +87,7 @@ func init() { } d, err := time.ParseDuration(s) if err != nil { - glog.Error(err) + klog.Error(err) return false } dst := time.Now().Add(d) @@ -140,7 +140,7 @@ func init() { func NewTemplateValueRender(t string) *TemplateValueRender { tmpl, err := template.New(t).Funcs(funcMap).Parse(t) if err != nil { - glog.Fatalf("could not parse template %s:%s", t, err) + klog.Fatalf("could not parse template %s:%s", t, err) } return &TemplateValueRender{ tmpl: tmpl,