diff --git a/README.md b/README.md index 803a0f9..bd41049 100644 --- a/README.md +++ b/README.md @@ -367,8 +367,8 @@ User can start multiple [labstack/echo](https://github.com/labstack/echo) instan | echo.enabled | Enable echo entry or not | bool | false | | echo.description | Description of echo entry. | string | "" | | echo.cert.ref | Reference of cert entry declared in [cert entry](https://github.com/rookie-ninja/rk-entry#certentry) | string | "" | -| echo.logger.zapLogger.ref | Reference of zapLoggerEntry declared in [zapLoggerEntry](https://github.com/rookie-ninja/rk-entry#zaploggerentry) | string | "" | -| echo.logger.eventLogger.ref | Reference of eventLoggerEntry declared in [eventLoggerEntry](https://github.com/rookie-ninja/rk-entry#eventloggerentry) | string | "" | +| echo.logger.zapLogger | Reference of zapLoggerEntry declared in [zapLoggerEntry](https://github.com/rookie-ninja/rk-entry#zaploggerentry) | string | "" | +| echo.logger.eventLogger | Reference of eventLoggerEntry declared in [eventLoggerEntry](https://github.com/rookie-ninja/rk-entry#eventloggerentry) | string | "" | ### CommonService | Path | Description | @@ -641,9 +641,31 @@ The supported scheme of **tokenLookup** #zapLogger: # - name: zap-logger # Required # description: "Description of entry" # Optional +# loki: +# enabled: true # Optional, default: false +# addr: localhost:3100 # Optional, default: localhost:3100 +# path: /loki/api/v1/push # Optional, default: /loki/api/v1/push +# username: "" # Optional, default: "" +# password: "" # Optional, default: "" +# maxBatchWaitMs: 3000 # Optional, default: 3000 +# maxBatchSize: 1000 # Optional, default: 1000 +# insecureSkipVerify: false # Optional, default: false +# labels: # Optional, default: empty map +# my_label_key: my_label_value #eventLogger: # - name: event-logger # Required # description: "Description of entry" # Optional +# loki: +# enabled: true # Optional, default: false +# addr: localhost:3100 # Optional, default: localhost:3100 +# path: /loki/api/v1/push # Optional, default: /loki/api/v1/push +# username: "" # Optional, default: "" +# password: "" # Optional, default: "" +# maxBatchWaitMs: 3000 # Optional, default: 3000 +# maxBatchSize: 1000 # Optional, default: 1000 +# insecureSkipVerify: false # Optional, default: false +# labels: # Optional, default: empty map +# my_label_key: my_label_value #cred: # - name: "local-cred" # Required # provider: "localFs" # Required, etcd, consul, localFs, remoteFs are supported options @@ -670,8 +692,7 @@ echo: port: 8080 # Required enabled: true # Required # description: "greeter server" # Optional, default: "" -# cert: -# ref: "local-cert" # Optional, default: "", reference of cert entry declared above +# certEntry: "local-cert" # Optional, default: "", reference of cert entry declared above # sw: # enabled: true # Optional, default: false # path: "sw" # Optional, default: "sw" @@ -698,10 +719,8 @@ echo: # cert: # Optional # ref: "local-test" # Optional, default: "", reference of cert entry declared above # logger: -# zapLogger: -# ref: zap-logger # Optional, default: logger of STDOUT, reference of logger entry declared above -# eventLogger: -# ref: event-logger # Optional, default: logger of STDOUT, reference of logger entry declared above +# zapLogger: zap-logger # Optional, default: logger of STDOUT, reference of logger entry declared above +# eventLogger: event-logger # Optional, default: logger of STDOUT, reference of logger entry declared above # interceptors: # loggingZap: # enabled: true # Optional, default: false diff --git a/boot/echo_entry.go b/boot/echo_entry.go index 6b9a9bc..1a83736 100644 --- a/boot/echo_entry.go +++ b/boot/echo_entry.go @@ -51,7 +51,7 @@ import ( const ( // EchoEntryType type of entry - EchoEntryType = "EchoEntry" + EchoEntryType = "Echo" // EchoEntryDescription description of entry EchoEntryDescription = "Internal RK entry which helps to bootstrap with Echo framework." ) @@ -65,13 +65,11 @@ func init() { // BootConfig boot config which is for echo entry. type BootConfig struct { Echo []struct { - Enabled bool `yaml:"enabled" json:"enabled"` - Name string `yaml:"name" json:"name"` - Port uint64 `yaml:"port" json:"port"` - Description string `yaml:"description" json:"description"` - Cert struct { - Ref string `yaml:"ref" json:"ref"` - } `yaml:"cert" json:"cert"` + Enabled bool `yaml:"enabled" json:"enabled"` + Name string `yaml:"name" json:"name"` + Port uint64 `yaml:"port" json:"port"` + Description string `yaml:"description" json:"description"` + CertEntry string `yaml:"certEntry" json:"certEntry"` SW rkentry.BootConfigSw `yaml:"sw" json:"sw"` CommonService rkentry.BootConfigCommonService `yaml:"commonService" json:"commonService"` TV rkentry.BootConfigTv `yaml:"tv" json:"tv"` @@ -95,12 +93,8 @@ type BootConfig struct { TracingTelemetry rkmidtrace.BootConfig `yaml:"tracingTelemetry" json:"tracingTelemetry"` } `yaml:"interceptors" json:"interceptors"` Logger struct { - ZapLogger struct { - Ref string `yaml:"ref" json:"ref"` - } `yaml:"zapLogger" json:"zapLogger"` - EventLogger struct { - Ref string `yaml:"ref" json:"ref"` - } `yaml:"eventLogger" json:"eventLogger"` + ZapLogger string `yaml:"zapLogger" json:"zapLogger"` + EventLogger string `yaml:"eventLogger" json:"eventLogger"` } `yaml:"logger" json:"logger"` } `yaml:"echo" json:"echo"` } @@ -156,12 +150,12 @@ func RegisterEchoEntriesWithConfig(configFilePath string) map[string]rkentry.Ent name := element.Name - zapLoggerEntry := rkentry.GlobalAppCtx.GetZapLoggerEntry(element.Logger.ZapLogger.Ref) + zapLoggerEntry := rkentry.GlobalAppCtx.GetZapLoggerEntry(element.Logger.ZapLogger) if zapLoggerEntry == nil { zapLoggerEntry = rkentry.GlobalAppCtx.GetZapLoggerEntryDefault() } - eventLoggerEntry := rkentry.GlobalAppCtx.GetEventLoggerEntry(element.Logger.EventLogger.Ref) + eventLoggerEntry := rkentry.GlobalAppCtx.GetEventLoggerEntry(element.Logger.EventLogger) if eventLoggerEntry == nil { eventLoggerEntry = rkentry.GlobalAppCtx.GetEventLoggerEntryDefault() } @@ -267,7 +261,7 @@ func RegisterEchoEntriesWithConfig(configFilePath string) map[string]rkentry.Ent rkmidlimit.ToOptions(&element.Interceptors.RateLimit, element.Name, EchoEntryType)...)) } - certEntry := rkentry.GlobalAppCtx.GetCertEntry(element.Cert.Ref) + certEntry := rkentry.GlobalAppCtx.GetCertEntry(element.CertEntry) entry := RegisterEchoEntry( WithName(name), @@ -320,6 +314,10 @@ func RegisterEchoEntry(opts ...EchoEntryOption) *EchoEntry { entry.Echo.HideBanner = true } + // add entry name and entry type into loki syncer if enabled + entry.ZapLoggerEntry.AddEntryLabelToLokiSyncer(entry) + entry.EventLoggerEntry.AddEntryLabelToLokiSyncer(entry) + // insert panic interceptor entry.Echo.Use(rkechopanic.Interceptor( rkmidpanic.WithEntryNameAndType(entry.EntryName, entry.EntryType))) diff --git a/example/boot/full/boot.yaml b/example/boot/full/boot.yaml index ac700dc..b1a0cb6 100644 --- a/example/boot/full/boot.yaml +++ b/example/boot/full/boot.yaml @@ -9,9 +9,31 @@ #zapLogger: # - name: zap-logger # Required # description: "Description of entry" # Optional +# loki: +# enabled: true # Optional, default: false +# addr: localhost:3100 # Optional, default: localhost:3100 +# path: /loki/api/v1/push # Optional, default: /loki/api/v1/push +# username: "" # Optional, default: "" +# password: "" # Optional, default: "" +# maxBatchWaitMs: 3000 # Optional, default: 3000 +# maxBatchSize: 1000 # Optional, default: 1000 +# insecureSkipVerify: false # Optional, default: false +# labels: # Optional, default: empty map +# my_label_key: my_label_value #eventLogger: # - name: event-logger # Required # description: "Description of entry" # Optional +# loki: +# enabled: true # Optional, default: false +# addr: localhost:3100 # Optional, default: localhost:3100 +# path: /loki/api/v1/push # Optional, default: /loki/api/v1/push +# username: "" # Optional, default: "" +# password: "" # Optional, default: "" +# maxBatchWaitMs: 3000 # Optional, default: 3000 +# maxBatchSize: 1000 # Optional, default: 1000 +# insecureSkipVerify: false # Optional, default: false +# labels: # Optional, default: empty map +# my_label_key: my_label_value #cred: # - name: "local-cred" # Required # provider: "localFs" # Required, etcd, consul, localFs, remoteFs are supported options @@ -38,8 +60,7 @@ echo: port: 8080 # Required enabled: true # Required # description: "greeter server" # Optional, default: "" -# cert: -# ref: "local-cert" # Optional, default: "", reference of cert entry declared above +# certEntry: "local-cert" # Optional, default: "", reference of cert entry declared above # sw: # enabled: true # Optional, default: false # path: "sw" # Optional, default: "sw" @@ -66,10 +87,8 @@ echo: # cert: # Optional # ref: "local-test" # Optional, default: "", reference of cert entry declared above # logger: -# zapLogger: -# ref: zap-logger # Optional, default: logger of STDOUT, reference of logger entry declared above -# eventLogger: -# ref: event-logger # Optional, default: logger of STDOUT, reference of logger entry declared above +# zapLogger: zap-logger # Optional, default: logger of STDOUT, reference of logger entry declared above +# eventLogger: event-logger # Optional, default: logger of STDOUT, reference of logger entry declared above # interceptors: # loggingZap: # enabled: true # Optional, default: false diff --git a/go.mod b/go.mod index de125f3..8995793 100644 --- a/go.mod +++ b/go.mod @@ -7,12 +7,12 @@ require ( github.com/labstack/echo/v4 v4.6.1 github.com/prometheus/client_golang v1.10.0 github.com/rookie-ninja/rk-common v1.2.3 - github.com/rookie-ninja/rk-entry v1.0.7 - github.com/rookie-ninja/rk-logger v1.2.3 - github.com/rookie-ninja/rk-query v1.2.4 + github.com/rookie-ninja/rk-entry v1.0.8 + github.com/rookie-ninja/rk-logger v1.2.7 + github.com/rookie-ninja/rk-query v1.2.7 github.com/rs/xid v1.3.0 github.com/stretchr/testify v1.7.0 go.opentelemetry.io/otel v1.3.0 go.opentelemetry.io/otel/trace v1.3.0 - go.uber.org/zap v1.16.0 + go.uber.org/zap v1.20.0 ) diff --git a/go.sum b/go.sum index 772fa8a..ce122db 100644 --- a/go.sum +++ b/go.sum @@ -11,8 +11,9 @@ cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqCl cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/toml v1.0.0 h1:dtDWrepsVPfW9H/4y7dDgFc2MBUSeJhlaDtK13CxFlU= +github.com/BurntSushi/toml v1.0.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= @@ -41,6 +42,8 @@ github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6l github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= +github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= +github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -415,14 +418,16 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rookie-ninja/rk-common v1.2.3 h1:bID5I11Om4az+Bkk7/RxuaHei0MS6ya1jHGnrvrqZBg= github.com/rookie-ninja/rk-common v1.2.3/go.mod h1:M2DqLnf5rUK6ewOcSNYZY4LLSJX5dg9I8Wh9JoAs4xo= github.com/rookie-ninja/rk-entry v1.0.4/go.mod h1:WMuVes3tyUgYbzNESO+4GtR7Vavw85l+VUOM5W+7Nso= -github.com/rookie-ninja/rk-entry v1.0.7 h1:y4Ic0xExsPh6/X4+b/2Kq/Eu3SciRJgAn73KwVRBgas= -github.com/rookie-ninja/rk-entry v1.0.7/go.mod h1:gaxt1RYnHLgGs4SpqTTYRjNoYVaLsxoiD1cREEmZSIg= -github.com/rookie-ninja/rk-logger v1.2.3 h1:BTbHizHtCIP01JD2msdmZrijEPEFXD/KprsBgMDBJ6A= +github.com/rookie-ninja/rk-entry v1.0.8 h1:8+y0rCWin1WXWi7RSHiogdR2OlhiaCTukJ2PW6BvoCM= +github.com/rookie-ninja/rk-entry v1.0.8/go.mod h1:52WaDvSSoY5G3vDE0GLlYQB9ohbrGqeuTsBEpgESVD4= github.com/rookie-ninja/rk-logger v1.2.3/go.mod h1:NDRMGnXMO/PBsFQc+N4LQgTmIxOKaFE1c7pDRmQUGjc= +github.com/rookie-ninja/rk-logger v1.2.7 h1:2nA2bEhnU1Y3PfMqlVwL6RRidQVmv8yZzErj/Hr0NYo= +github.com/rookie-ninja/rk-logger v1.2.7/go.mod h1:BgOmPpVjIHCHhqo1tqf3jUd/71Rg+Ptwi6pBeaOnOQw= github.com/rookie-ninja/rk-prom v1.1.4 h1:p33XVD9/pK7QtcYNX8nAfm1aiLc/NQI0mQBKgIw4IZ0= github.com/rookie-ninja/rk-prom v1.1.4/go.mod h1:ZiYyxCmWfVyZMNVAVZiZOzqxx+lutVsnWadj5A+XTEM= -github.com/rookie-ninja/rk-query v1.2.4 h1:PBM90z5dDWRKNvJHtDUQ2F4um5c4I+WwSml8uLVvfkc= github.com/rookie-ninja/rk-query v1.2.4/go.mod h1:nxdqy600ZC996QW0yHflY/hAkG4Qt9lSaDftf540YDI= +github.com/rookie-ninja/rk-query v1.2.7 h1:AXJ9hLbBunE5ltYsaQYsdPx1N/OlJVMpkwvx2InHxwA= +github.com/rookie-ninja/rk-query v1.2.7/go.mod h1:smuSx32BoIH9bVhuDCPO5P4PAKVr5zL2DXxS7dFZstY= github.com/rs/xid v1.3.0 h1:6NjYksEUlhurdVehpc7S7dk6DAmcKv8V9gG0FsVN2U4= github.com/rs/xid v1.3.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= @@ -522,6 +527,8 @@ go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= +go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= @@ -532,8 +539,9 @@ go.uber.org/ratelimit v0.2.0/go.mod h1:YYBV4e4naJvhpitQrWJu1vCpgB7CboMe0qhltKt6m go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= -go.uber.org/zap v1.16.0 h1:uFRZXykJGK9lLY4HtgSw44DnIcAM+kRBP7x5m+NpAOM= go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= +go.uber.org/zap v1.20.0 h1:N4oPlghZwYG55MlU6LXk/Zp00FVNE9X9wrYO8CEs4lc= +go.uber.org/zap v1.20.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -561,14 +569,12 @@ golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 h1:VLliZ0d+/avPrXXH+OakdXhpJuEoBZuwh1m2j7U6Iug= golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.4.2 h1:Gz96sIWK3OalVv/I/qNygP42zyoKp3xptRVCWRFEBvo= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -700,8 +706,8 @@ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.1.2 h1:kRBLX7v7Af8W7Gdbbc908OJcdgtK8bOz9Uaj8/F1ACA= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -800,7 +806,6 @@ honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -honnef.co/go/tools v0.0.1-2020.1.4 h1:UoveltGrhghAA7ePc+e+QYDHXrBps2PqFZiHkGR/xK8= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=