From 79472607d0126a5aab51951ac7baffe9005adb3a Mon Sep 17 00:00:00 2001 From: Alex SZAKALY Date: Wed, 21 Dec 2022 13:44:52 +0100 Subject: [PATCH 001/401] fix: address CVE-2022-46146 (#167) --- cmd/sql_exporter/main.go | 8 +++++++- go.mod | 13 +++++++------ go.sum | 23 +++++++++++++++-------- 3 files changed, 29 insertions(+), 15 deletions(-) diff --git a/cmd/sql_exporter/main.go b/cmd/sql_exporter/main.go index 922dcb5a..3820a91b 100644 --- a/cmd/sql_exporter/main.go +++ b/cmd/sql_exporter/main.go @@ -96,12 +96,18 @@ func main() { } klog.Warning("Listening on ", *listenAddress) + server := &http.Server{Addr: *listenAddress, ReadHeaderTimeout: httpReadHeaderTimeout} - if err := web.ListenAndServe(server, *webConfigFile, logger); err != nil { + if err := web.ListenAndServe(server, &web.FlagConfig{WebListenAddresses: &([]string{*listenAddress}), WebConfigFile: webConfigFile, WebSystemdSocket: OfBool(false)}, logger); err != nil { klog.Fatal(err) } } +// OfBool returns bool address. +func OfBool(i bool) *bool { + return &i +} + func reloadCollectors(e sql_exporter.Exporter) func(http.ResponseWriter, *http.Request) { return func(w http.ResponseWriter, r *http.Request) { klog.Infof("Reloading the collectors...") diff --git a/go.mod b/go.mod index e52c675e..6cc1ba04 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/prometheus/client_golang v1.13.0 github.com/prometheus/client_model v0.2.0 github.com/prometheus/common v0.37.0 - github.com/prometheus/exporter-toolkit v0.7.1 + github.com/prometheus/exporter-toolkit v0.8.2 github.com/snowflakedb/gosnowflake v1.6.13 github.com/vertica/vertica-sql-go v1.2.2 github.com/xo/dburl v0.12.4 @@ -43,10 +43,11 @@ require ( github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.1.2 // indirect github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 // indirect + github.com/coreos/go-systemd/v22 v22.4.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/form3tech-oss/jwt-go v3.2.5+incompatible // indirect github.com/gabriel-vasile/mimetype v1.4.0 // indirect - github.com/go-kit/log v0.2.0 // indirect + github.com/go-kit/log v0.2.1 // indirect github.com/go-logfmt/logfmt v0.5.1 // indirect github.com/golang-jwt/jwt v3.2.2+incompatible // indirect github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe // indirect @@ -70,17 +71,17 @@ require ( github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect github.com/pierrec/lz4/v4 v4.1.11 // indirect github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect - github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/procfs v0.8.0 // indirect github.com/sirupsen/logrus v1.8.1 // indirect - golang.org/x/crypto v0.0.0-20220919173607-35f4265a4bc0 // indirect + golang.org/x/crypto v0.0.0-20221012134737-56aed061732a // indirect golang.org/x/net v0.0.0-20220920203100-d0c6ba3f52d9 // indirect - golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b // indirect + golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1 // indirect + golang.org/x/sync v0.1.0 // indirect golang.org/x/sys v0.0.0-20220919091848-fb04ddd9f9c8 // indirect golang.org/x/text v0.3.7 // indirect golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect - google.golang.org/appengine v1.6.6 // indirect + google.golang.org/appengine v1.6.7 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect ) diff --git a/go.sum b/go.sum index e217036a..f698918d 100644 --- a/go.sum +++ b/go.sum @@ -126,6 +126,8 @@ github.com/cockroachdb/apd v1.1.0 h1:3LFP3629v+1aKXU5Q37mxmRxX/pIu1nijXydLShEq5I github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd/v22 v22.4.0 h1:y9YHcjnjynCd/DVbg5j9L/33jQM3MxJlbj/zWskzfGU= +github.com/coreos/go-systemd/v22 v22.4.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -159,8 +161,9 @@ github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2 github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= -github.com/go-kit/log v0.2.0 h1:7i2K3eKTos3Vc0enKCfnVcgHh2olr/MyfboYq7cAcFw= github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= +github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= +github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= github.com/go-latex/latex v0.0.0-20210118124228-b3d85cf34e07/go.mod h1:CO1AlKB2CSIqUrmQPqA0gdRIlnLEY0gK5JGjh37zN5U= 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= @@ -171,6 +174,7 @@ github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofrs/uuid v4.0.0+incompatible h1:1SD/1F5pU8p29ybwgQSwpQk+mwdRrXCYuPhW6m+TnJw= github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= @@ -394,12 +398,11 @@ github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6T github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= -github.com/prometheus/common v0.29.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= github.com/prometheus/common v0.37.0 h1:ccBbHCgIiT9uSoFY0vX8H3zsNR5eLt17/RQLUvn8pXE= github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA= -github.com/prometheus/exporter-toolkit v0.7.1 h1:c6RXaK8xBVercEeUQ4tRNL8UGWzDHfvj9dseo1FcK1Y= -github.com/prometheus/exporter-toolkit v0.7.1/go.mod h1:ZUBIj498ePooX9t/2xtDjeQYwvRpiPP2lh5u4iblj2g= +github.com/prometheus/exporter-toolkit v0.8.2 h1:sbJAfBXQFkG6sUkbwBun8MNdzW9+wd5YfPYofbmj0YM= +github.com/prometheus/exporter-toolkit v0.8.2/go.mod h1:00shzmJL7KxcsabLWcONwpyNEuWhREOnFqZW7vadFS0= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= @@ -479,8 +482,8 @@ golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220511200225-c6db032c6c88/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220919173607-35f4265a4bc0 h1:a5Yg6ylndHHYJqIPrdq0AhvR6KTvDTAvgBtaidhEevY= -golang.org/x/crypto v0.0.0-20220919173607-35f4265a4bc0/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20221012134737-56aed061732a h1:NmSIgad6KjE6VvHciPZuNRTKxGhlPfD6OA87W/PLkqg= +golang.org/x/crypto v0.0.0-20221012134737-56aed061732a/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -573,8 +576,9 @@ golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4Iltr golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b h1:clP8eMhB30EHdc0bd2Twtq6kgU7yl5ub2cQLSdrv1Dg= golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1 h1:lxqLZaMad/dJHMFZH0NiNpiEZI/nhgWhe4wgzpE+MuA= +golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -585,6 +589,8 @@ golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -740,8 +746,9 @@ google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7 google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.6 h1:lMO5rYAqUxkmaj76jAkRUvt5JZgFymx/+Q5Mzfivuhc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= +google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= From b9915518ad16f67b235bf64abeb9fb79295d97cb Mon Sep 17 00:00:00 2001 From: Alex SZAKALY Date: Wed, 21 Dec 2022 13:54:56 +0100 Subject: [PATCH 002/401] fix: address CVE-2022-32149 (#168) --- go.mod | 2 +- go.sum | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index 6cc1ba04..bad4bc9e 100644 --- a/go.mod +++ b/go.mod @@ -79,7 +79,7 @@ require ( golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1 // indirect golang.org/x/sync v0.1.0 // indirect golang.org/x/sys v0.0.0-20220919091848-fb04ddd9f9c8 // indirect - golang.org/x/text v0.3.7 // indirect + golang.org/x/text v0.5.0 // indirect golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect google.golang.org/appengine v1.6.7 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/go.sum b/go.sum index f698918d..d6ca427b 100644 --- a/go.sum +++ b/go.sum @@ -657,8 +657,9 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.5.0 h1:OLmvp0KP+FVG99Ct/qFiL/Fhk4zp4QQnZ7b2U+5piUM= +golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= From b8fb60826c8fda5f2e143975552d66e8aebc2f73 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 21 Dec 2022 14:00:26 +0100 Subject: [PATCH 003/401] deps: bump github.com/kardianos/minwinsvc from 1.0.0 to 1.0.2 (#159) Bumps [github.com/kardianos/minwinsvc](https://github.com/kardianos/minwinsvc) from 1.0.0 to 1.0.2. - [Release notes](https://github.com/kardianos/minwinsvc/releases) - [Commits](https://github.com/kardianos/minwinsvc/compare/v1.0.0...v1.0.2) --- updated-dependencies: - dependency-name: github.com/kardianos/minwinsvc dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 9 ++++----- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index bad4bc9e..65822809 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/ClickHouse/clickhouse-go v1.5.4 github.com/go-sql-driver/mysql v1.6.0 github.com/jackc/pgx/v4 v4.17.2 - github.com/kardianos/minwinsvc v1.0.0 + github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.7 github.com/microsoft/go-mssqldb v0.17.0 github.com/prometheus/client_golang v1.13.0 @@ -78,7 +78,7 @@ require ( golang.org/x/net v0.0.0-20220920203100-d0c6ba3f52d9 // indirect golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1 // indirect golang.org/x/sync v0.1.0 // indirect - golang.org/x/sys v0.0.0-20220919091848-fb04ddd9f9c8 // indirect + golang.org/x/sys v0.0.0-20221013171732-95e765b1cc43 // indirect golang.org/x/text v0.5.0 // indirect golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect google.golang.org/appengine v1.6.7 // indirect diff --git a/go.sum b/go.sum index d6ca427b..653528a8 100644 --- a/go.sum +++ b/go.sum @@ -318,8 +318,8 @@ github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7V github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= -github.com/kardianos/minwinsvc v1.0.0 h1:+JfAi8IBJna0jY2dJGZqi7o15z13JelFIklJCAENALA= -github.com/kardianos/minwinsvc v1.0.0/go.mod h1:Bgd0oc+D0Qo3bBytmNtyRKVlp85dAloLKhfxanPFFRc= +github.com/kardianos/minwinsvc v1.0.2 h1:JmZKFJQrmTGa/WiW+vkJXKmfzdjabuEW4Tirj5lLdR0= +github.com/kardianos/minwinsvc v1.0.2/go.mod h1:LUZNYhNmxujx2tR7FbdxqYJ9XDDoCd3MQcl1o//FWl4= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.13.1/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= github.com/klauspost/compress v1.13.6 h1:P76CopJELS0TiO2mebmnzgWaajssP/EszplttgQxcgc= @@ -625,7 +625,6 @@ golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200602225109-6fdc65e7d980/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -644,8 +643,8 @@ golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220224120231-95c6836cb0e7/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220919091848-fb04ddd9f9c8 h1:h+EGohizhe9XlX18rfpa8k8RAc5XyaeamM+0VHRd4lc= -golang.org/x/sys v0.0.0-20220919091848-fb04ddd9f9c8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20221013171732-95e765b1cc43 h1:OK7RB6t2WQX54srQQYSXMW8dF5C6/8+oA/s5QBmmto4= +golang.org/x/sys v0.0.0-20221013171732-95e765b1cc43/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= From 7e7e75a9c90118d7035dd11a0d4c6fe4fb637027 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 21 Dec 2022 14:00:43 +0100 Subject: [PATCH 004/401] deps: bump github.com/prometheus/client_model from 0.2.0 to 0.3.0 (#158) Bumps [github.com/prometheus/client_model](https://github.com/prometheus/client_model) from 0.2.0 to 0.3.0. - [Release notes](https://github.com/prometheus/client_model/releases) - [Commits](https://github.com/prometheus/client_model/compare/v0.2.0...v0.3.0) --- updated-dependencies: - dependency-name: github.com/prometheus/client_model dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index 65822809..890a739c 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/lib/pq v1.10.7 github.com/microsoft/go-mssqldb v0.17.0 github.com/prometheus/client_golang v1.13.0 - github.com/prometheus/client_model v0.2.0 + github.com/prometheus/client_model v0.3.0 github.com/prometheus/common v0.37.0 github.com/prometheus/exporter-toolkit v0.8.2 github.com/snowflakedb/gosnowflake v1.6.13 diff --git a/go.sum b/go.sum index 653528a8..56d8a036 100644 --- a/go.sum +++ b/go.sum @@ -393,8 +393,9 @@ github.com/prometheus/client_golang v1.13.0/go.mod h1:vTeo+zgvILHsnnj/39Ou/1fPN5 github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= +github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= From 009b31eab748d6a4a134f29ffcb240f2f939f2b0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 21 Dec 2022 14:07:19 +0100 Subject: [PATCH 005/401] deps: bump github.com/vertica/vertica-sql-go from 1.2.2 to 1.3.0 (#156) Bumps [github.com/vertica/vertica-sql-go](https://github.com/vertica/vertica-sql-go) from 1.2.2 to 1.3.0. - [Release notes](https://github.com/vertica/vertica-sql-go/releases) - [Commits](https://github.com/vertica/vertica-sql-go/compare/v1.2.2...v1.3.0) --- updated-dependencies: - dependency-name: github.com/vertica/vertica-sql-go dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 7 ++++++- go.sum | 15 +++++++++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 890a739c..d1ae01f4 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/prometheus/common v0.37.0 github.com/prometheus/exporter-toolkit v0.8.2 github.com/snowflakedb/gosnowflake v1.6.13 - github.com/vertica/vertica-sql-go v1.2.2 + github.com/vertica/vertica-sql-go v1.3.0 github.com/xo/dburl v0.12.4 google.golang.org/protobuf v1.28.1 gopkg.in/yaml.v3 v3.0.1 @@ -45,6 +45,8 @@ require ( github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 // indirect github.com/coreos/go-systemd/v22 v22.4.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/elastic/go-sysinfo v1.8.1 // indirect + github.com/elastic/go-windows v1.0.0 // indirect github.com/form3tech-oss/jwt-go v3.2.5+incompatible // indirect github.com/gabriel-vasile/mimetype v1.4.0 // indirect github.com/go-kit/log v0.2.1 // indirect @@ -63,6 +65,7 @@ require ( github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b // indirect github.com/jackc/pgtype v1.12.0 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect + github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 // indirect github.com/jpillora/backoff v1.0.0 // indirect github.com/klauspost/compress v1.13.6 // indirect github.com/kylelemons/godebug v1.1.0 // indirect @@ -71,6 +74,7 @@ require ( github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect github.com/pierrec/lz4/v4 v4.1.11 // indirect github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect + github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/procfs v0.8.0 // indirect github.com/sirupsen/logrus v1.8.1 // indirect @@ -83,6 +87,7 @@ require ( golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect google.golang.org/appengine v1.6.7 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect + howett.net/plist v0.0.0-20181124034731-591f970eefbb // indirect ) replace k8s.io/klog/v2 => github.com/simonpasquier/klog-gokit/v3 v3.1.0 diff --git a/go.sum b/go.sum index 56d8a036..04ab1caf 100644 --- a/go.sum +++ b/go.sum @@ -136,6 +136,10 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8Yc github.com/dnaeon/go-vcr v1.1.0/go.mod h1:M7tiix8f0r6mKKJ3Yq/kqU1OYf3MnfmBWVbPx/yU9ko= github.com/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI= github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= +github.com/elastic/go-sysinfo v1.8.1 h1:4Yhj+HdV6WjbCRgGdZpPJ8lZQlXZLKDAeIkmQ/VRvi4= +github.com/elastic/go-sysinfo v1.8.1/go.mod h1:JfllUnzoQV/JRYymbH3dO1yggI3mV2oTKSXsDHM+uIM= +github.com/elastic/go-windows v1.0.0 h1:qLURgZFkkrYyTTkvYpsZIgf83AUsdIHfvlJaqaZ7aSY= +github.com/elastic/go-windows v1.0.0/go.mod h1:TsU0Nrp7/y3+VwE82FoZF8gC/XFg/Elz6CcloAxnPgU= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= @@ -301,11 +305,14 @@ github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0f github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v1.3.0/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= +github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks= +github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 h1:rp+c0RAYOWj8l6qbCUTSiRLG/iKnW3K3/QfPPuSsBt4= +github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901/go.mod h1:Z86h9688Y0wesXCyonoVr47MasHilkuLMqGhRZ4Hpak= github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= @@ -405,6 +412,7 @@ github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJ github.com/prometheus/exporter-toolkit v0.8.2 h1:sbJAfBXQFkG6sUkbwBun8MNdzW9+wd5YfPYofbmj0YM= github.com/prometheus/exporter-toolkit v0.8.2/go.mod h1:00shzmJL7KxcsabLWcONwpyNEuWhREOnFqZW7vadFS0= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= @@ -443,8 +451,8 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/vertica/vertica-sql-go v1.2.2 h1:woI501lizEoqONmO5B7a5DNsLTQTsT0HnD1JM7SiNhk= -github.com/vertica/vertica-sql-go v1.2.2/go.mod h1:fGr44VWdEvL+f+Qt5LkKLOT7GoxaWdoUCnPBU9h6t04= +github.com/vertica/vertica-sql-go v1.3.0 h1:oZL8PgwrpALegtTFhImsaJvg5oQd2G7v7Uai97X9Xp8= +github.com/vertica/vertica-sql-go v1.3.0/go.mod h1:jnn2GFuv+O2Jcjktb7zyc4Utlbu9YVqpHH/lx63+1M4= github.com/xo/dburl v0.12.4 h1:mAIQjCNqCRtfytZNN0tZzK01rfng3n4Ei1s+H9lh61I= github.com/xo/dburl v0.12.4/go.mod h1:K6rSPgbVqP3ZFT0RHkdg/M3M5KhLeV2MaS/ZqaLd1kA= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -644,6 +652,7 @@ golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220224120231-95c6836cb0e7/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20221013171732-95e765b1cc43 h1:OK7RB6t2WQX54srQQYSXMW8dF5C6/8+oA/s5QBmmto4= golang.org/x/sys v0.0.0-20221013171732-95e765b1cc43/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= @@ -840,6 +849,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= +howett.net/plist v0.0.0-20181124034731-591f970eefbb h1:jhnBjNi9UFpfpl8YZhA9CrOqpnJdvzuiHsl/dnxl11M= +howett.net/plist v0.0.0-20181124034731-591f970eefbb/go.mod h1:vMygbs4qMhSZSc4lCUl2OEE+rDiIIJAIdR4m7MiMcm0= 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= From 7464732cf6608ef4d228abcb1dadfca0c368817f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 21 Dec 2022 14:43:00 +0100 Subject: [PATCH 006/401] deps: bump github.com/snowflakedb/gosnowflake from 1.6.13 to 1.6.16 (#170) Bumps [github.com/snowflakedb/gosnowflake](https://github.com/snowflakedb/gosnowflake) from 1.6.13 to 1.6.16. - [Release notes](https://github.com/snowflakedb/gosnowflake/releases) - [Changelog](https://github.com/snowflakedb/gosnowflake/blob/master/release.go) - [Commits](https://github.com/snowflakedb/gosnowflake/compare/v1.6.13...v1.6.16) --- updated-dependencies: - dependency-name: github.com/snowflakedb/gosnowflake dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 50 +++++++++++++--------- go.sum | 130 +++++++++++++++++++++++++++++++++++---------------------- 2 files changed, 110 insertions(+), 70 deletions(-) diff --git a/go.mod b/go.mod index d1ae01f4..0d1ab4ee 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,7 @@ require ( github.com/prometheus/client_model v0.3.0 github.com/prometheus/common v0.37.0 github.com/prometheus/exporter-toolkit v0.8.2 - github.com/snowflakedb/gosnowflake v1.6.13 + github.com/snowflakedb/gosnowflake v1.6.16 github.com/vertica/vertica-sql-go v1.3.0 github.com/xo/dburl v0.12.4 google.golang.org/protobuf v1.28.1 @@ -22,41 +22,49 @@ require ( ) require ( + github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect + github.com/99designs/keyring v1.2.1 // indirect github.com/Azure/azure-pipeline-go v0.2.3 // indirect github.com/Azure/azure-sdk-for-go/sdk/azcore v1.0.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.0.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0 // indirect - github.com/Azure/azure-storage-blob-go v0.14.0 // indirect + github.com/Azure/azure-storage-blob-go v0.15.0 // indirect github.com/AzureAD/microsoft-authentication-library-for-go v0.4.0 // indirect github.com/apache/arrow/go/arrow v0.0.0-20211112161151-bc219186db40 // indirect - github.com/aws/aws-sdk-go-v2 v1.11.0 // indirect - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.0.0 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.6.1 // indirect - github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.7.1 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.0 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.0.0 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.5.0 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.5.0 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.9.0 // indirect - github.com/aws/aws-sdk-go-v2/service/s3 v1.19.0 // indirect - github.com/aws/smithy-go v1.9.0 // indirect + github.com/aws/aws-sdk-go-v2 v1.16.16 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.8 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.12.20 // indirect + github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.33 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.23 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.17 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.14 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.9 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.18 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.17 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.17 // indirect + github.com/aws/aws-sdk-go-v2/service/s3 v1.27.11 // indirect + github.com/aws/smithy-go v1.13.3 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.1.2 // indirect github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 // indirect github.com/coreos/go-systemd/v22 v22.4.0 // indirect + github.com/danieljoos/wincred v1.1.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/dvsekhvalnov/jose2go v1.5.0 // indirect github.com/elastic/go-sysinfo v1.8.1 // indirect github.com/elastic/go-windows v1.0.0 // indirect github.com/form3tech-oss/jwt-go v3.2.5+incompatible // indirect - github.com/gabriel-vasile/mimetype v1.4.0 // indirect + github.com/gabriel-vasile/mimetype v1.4.1 // indirect github.com/go-kit/log v0.2.1 // indirect github.com/go-logfmt/logfmt v0.5.1 // indirect + github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/golang-jwt/jwt v3.2.2+incompatible // indirect github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe // indirect github.com/golang-sql/sqlexp v0.1.0 // indirect github.com/golang/protobuf v1.5.2 // indirect - github.com/google/flatbuffers v2.0.0+incompatible // indirect + github.com/google/flatbuffers v2.0.8+incompatible // indirect github.com/google/uuid v1.3.0 // indirect + github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect github.com/jackc/chunkreader/v2 v2.0.1 // indirect github.com/jackc/pgconn v1.13.0 // indirect github.com/jackc/pgio v1.0.0 // indirect @@ -67,24 +75,26 @@ require ( github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 // indirect github.com/jpillora/backoff v1.0.0 // indirect - github.com/klauspost/compress v1.13.6 // indirect + github.com/klauspost/compress v1.15.11 // indirect github.com/kylelemons/godebug v1.1.0 // indirect github.com/mattn/go-ieproxy v0.0.1 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect + github.com/mtibben/percent v0.2.1 // indirect github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect - github.com/pierrec/lz4/v4 v4.1.11 // indirect + github.com/pierrec/lz4/v4 v4.1.16 // indirect github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/procfs v0.8.0 // indirect - github.com/sirupsen/logrus v1.8.1 // indirect + github.com/sirupsen/logrus v1.9.0 // indirect golang.org/x/crypto v0.0.0-20221012134737-56aed061732a // indirect - golang.org/x/net v0.0.0-20220920203100-d0c6ba3f52d9 // indirect + golang.org/x/net v0.0.0-20221002022538-bcab6841153b // indirect golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1 // indirect golang.org/x/sync v0.1.0 // indirect golang.org/x/sys v0.0.0-20221013171732-95e765b1cc43 // indirect + golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect golang.org/x/text v0.5.0 // indirect - golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect + golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect google.golang.org/appengine v1.6.7 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect howett.net/plist v0.0.0-20181124034731-591f970eefbb // indirect diff --git a/go.sum b/go.sum index 04ab1caf..21b432cd 100644 --- a/go.sum +++ b/go.sum @@ -32,6 +32,10 @@ cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RX cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8= +github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 h1:/vQbFIOMbk2FiG/kXiLl8BRyzTWDw7gX/Hz7Dd5eDMs= +github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4/go.mod h1:hN7oaIRCjzsZ2dE+yG5k+rsdt3qcwykqK6HVGcKwsw4= +github.com/99designs/keyring v1.2.1 h1:tYLp1ULvO7i3fI5vE21ReQuj99QFSs7lGm0xWyJo87o= +github.com/99designs/keyring v1.2.1/go.mod h1:fc+wB5KTk9wQ9sDx0kFXB3A0MaeGHM9AwRStKOQ5vOA= github.com/Azure/azure-pipeline-go v0.2.3 h1:7U9HBg1JFK3jHl5qmo4CTZKFTVgMwdFHMVtCdfBE21U= github.com/Azure/azure-pipeline-go v0.2.3/go.mod h1:x841ezTBIMG6O3lAcl8ATHnsOPVl2bqk7S3ta6S6u4k= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.0.0 h1:sVPhtT2qjO86rTUaWMr4WoES4TkjGnzcioXcnHV9s5k= @@ -40,8 +44,8 @@ github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.0.0 h1:Yoicul8bnVdQrhDMTHxdE github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.0.0/go.mod h1:+6sju8gk8FRmSajX3Oz4G5Gm7P+mbqE9FVaXXFYTkCM= github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0 h1:jp0dGvZ7ZK0mgqnTSClMxa5xuRL7NZgHameVYF6BurY= github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0/go.mod h1:eWRD7oawr1Mu1sLCawqVc0CUiF43ia3qQMxLscsKQ9w= -github.com/Azure/azure-storage-blob-go v0.14.0 h1:1BCg74AmVdYwO3dlKwtFU1V0wU2PZdREkXvAmZJRUlM= -github.com/Azure/azure-storage-blob-go v0.14.0/go.mod h1:SMqIBi+SuiQH32bvyjngEewEeXoPfKMgWlBDaYf6fck= +github.com/Azure/azure-storage-blob-go v0.15.0 h1:rXtgp8tN1p29GvpGgfJetavIG0V7OgcSXPpwp3tx6qk= +github.com/Azure/azure-storage-blob-go v0.15.0/go.mod h1:vbjsVbX0dlxnRc4FFMPsS9BsJWPcne7GB7onqlPvz58= github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs= github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= github.com/Azure/go-autorest/autorest/adal v0.9.13 h1:Mp5hbtOePIzM8pJVRa3YLrWWmZtoxRXqUEzCfJt3+/Q= @@ -70,38 +74,44 @@ github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk5 github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/apache/arrow/go/arrow v0.0.0-20211112161151-bc219186db40 h1:q4dksr6ICHXqG5hm0ZW5IHyeEJXoIJSOZeBLmWPNeIQ= github.com/apache/arrow/go/arrow v0.0.0-20211112161151-bc219186db40/go.mod h1:Q7yQnSMnLvcXlZ8RV+jwz/6y1rQTqbX6C82SndT52Zs= -github.com/aws/aws-sdk-go-v2 v1.11.0 h1:HxyD62DyNhCfiFGUHqJ/xITD6rAjJ7Dm/2nLxLmO4Ag= -github.com/aws/aws-sdk-go-v2 v1.11.0/go.mod h1:SQfA+m2ltnu1cA0soUkj4dRSsmITiVQUJvBIZjzfPyQ= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.0.0 h1:yVUAwvJC/0WNPbyl0nA3j1L6CW1CN8wBubCRqtG7JLI= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.0.0/go.mod h1:Xn6sxgRuIDflLRJFj5Ev7UxABIkNbccFPV/p8itDReM= -github.com/aws/aws-sdk-go-v2/config v1.10.1 h1:z/ViqIjW6ZeuLWgTWMTSyZzaVWo/1cWeVf1Uu+RF01E= -github.com/aws/aws-sdk-go-v2/config v1.10.1/go.mod h1:auIv5pIIn3jIBHNRcVQcsczn6Pfa6Dyv80Fai0ueoJU= -github.com/aws/aws-sdk-go-v2/credentials v1.6.1 h1:A39JYth2fFCx+omN/gib/jIppx3rRnt2r7UKPq7Mh5Y= -github.com/aws/aws-sdk-go-v2/credentials v1.6.1/go.mod h1:QyvQk1IYTqBWSi1T6UgT/W8DMxBVa5pVuLFSRLLhGf8= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.8.0 h1:OpZjuUy8Jt3CA1WgJgBC5Bz+uOjE5Ppx4NFTRaooUuA= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.8.0/go.mod h1:5E1J3/TTYy6z909QNR0QnXGBpfESYGDqd3O0zqONghU= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.7.1 h1:p9Dys1g2YdaqMalnp6AwCA+tpMMdJNGw5YYKP/u3sUk= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.7.1/go.mod h1:wN/mvkow08GauDwJ70jnzJ1e+hE+Q3Q7TwpYLXOe9oI= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.0 h1:zY8cNmbBXt3pzjgWgdIbzpQ6qxoCwt+Nx9JbrAf2mbY= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.0/go.mod h1:NO3Q5ZTTQtO2xIg2+xTXYDiT7knSejfeDm7WGDaOo0U= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.0.0 h1:Z3aR/OXBnkYK9zXkNkfitHX6SmUBzSsx8VMHbH4Lvhw= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.0.0/go.mod h1:anlUzBoEWglcUxUQwZA7HQOEVEnQALVZsizAapB2hq8= -github.com/aws/aws-sdk-go-v2/internal/ini v1.3.0 h1:c10Z7fWxtJCoyc8rv06jdh9xrKnu7bAJiRaKWvTb2mU= -github.com/aws/aws-sdk-go-v2/internal/ini v1.3.0/go.mod h1:6oXGy4GLpypD3uCh8wcqztigGgmhLToMfjavgh+VySg= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.5.0 h1:lPLbw4Gn59uoKqvOfSnkJr54XWk5Ak1NK20ZEiSWb3U= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.5.0/go.mod h1:80NaCIH9YU3rzTTs/J/ECATjXuRqzo/wB6ukO6MZ0XY= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.5.0 h1:qGZWS/WgiFY+Zgad2u0gwBHpJxz6Ne401JE7iQI1nKs= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.5.0/go.mod h1:Mq6AEc+oEjCUlBuLiK5YwW4shSOAKCQ3tXN0sQeYoBA= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.9.0 h1:0BOlTqnNnrEO04oYKzDxMMe68t107pmIotn18HtVonY= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.9.0/go.mod h1:xKCZ4YFSF2s4Hnb/J0TLeOsKuGzICzcElaOKNGrVnx4= -github.com/aws/aws-sdk-go-v2/service/s3 v1.19.0 h1:5mRAms4TjSTOGYsqKYte5kHr1PzpMJSyLThjF3J+hw0= -github.com/aws/aws-sdk-go-v2/service/s3 v1.19.0/go.mod h1:Gwz3aVctJe6mUY9T//bcALArPUaFmNAy2rTB9qN4No8= -github.com/aws/aws-sdk-go-v2/service/sso v1.6.0 h1:JDgKIUZOmLFu/Rv6zXLrVTWCmzA0jcTdvsT8iFIKrAI= -github.com/aws/aws-sdk-go-v2/service/sso v1.6.0/go.mod h1:Q/l0ON1annSU+mc0JybDy1Gy6dnJxIcWjphO6qJPzvM= -github.com/aws/aws-sdk-go-v2/service/sts v1.10.0 h1:1jh8J+JjYRp+QWKOsaZt7rGUgoyrqiiVwIm+w0ymeUw= -github.com/aws/aws-sdk-go-v2/service/sts v1.10.0/go.mod h1:jLKCFqS+1T4i7HDqCP9GM4Uk75YW1cS0o82LdxpMyOE= -github.com/aws/smithy-go v1.9.0 h1:c7FUdEqrQA1/UVKKCNDFQPNKGp4FQg3YW4Ck5SLTG58= -github.com/aws/smithy-go v1.9.0/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E= +github.com/aws/aws-sdk-go-v2 v1.16.16 h1:M1fj4FE2lB4NzRb9Y0xdWsn2P0+2UHVxwKyOa4YJNjk= +github.com/aws/aws-sdk-go-v2 v1.16.16/go.mod h1:SwiyXi/1zTUZ6KIAmLK5V5ll8SiURNUYOqTerZPaF9k= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.8 h1:tcFliCWne+zOuUfKNRn8JdFBuWPDuISDH08wD2ULkhk= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.8/go.mod h1:JTnlBSot91steJeti4ryyu/tLd4Sk84O5W22L7O2EQU= +github.com/aws/aws-sdk-go-v2/config v1.17.7 h1:odVM52tFHhpqZBKNjVW5h+Zt1tKHbhdTQRb+0WHrNtw= +github.com/aws/aws-sdk-go-v2/config v1.17.7/go.mod h1:dN2gja/QXxFF15hQreyrqYhLBaQo1d9ZKe/v/uplQoI= +github.com/aws/aws-sdk-go-v2/credentials v1.12.20 h1:9+ZhlDY7N9dPnUmf7CDfW9In4sW5Ff3bh7oy4DzS1IE= +github.com/aws/aws-sdk-go-v2/credentials v1.12.20/go.mod h1:UKY5HyIux08bbNA7Blv4PcXQ8cTkGh7ghHMFklaviR4= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.17 h1:r08j4sbZu/RVi+BNxkBJwPMUYY3P8mgSDuKkZ/ZN1lE= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.17/go.mod h1:yIkQcCDYNsZfXpd5UX2Cy+sWA1jPgIhGTw9cOBzfVnQ= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.33 h1:fAoVmNGhir6BR+RU0/EI+6+D7abM+MCwWf8v4ip5jNI= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.33/go.mod h1:84XgODVR8uRhmOnUkKGUZKqIMxmjmLOR8Uyp7G/TPwc= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.23 h1:s4g/wnzMf+qepSNgTvaQQHNxyMLKSawNhKCPNy++2xY= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.23/go.mod h1:2DFxAQ9pfIRy0imBCJv+vZ2X6RKxves6fbnEuSry6b4= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.17 h1:/K482T5A3623WJgWT8w1yRAFK4RzGzEl7y39yhtn9eA= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.17/go.mod h1:pRwaTYCJemADaqCbUAxltMoHKata7hmB5PjEXeu0kfg= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.24 h1:wj5Rwc05hvUSvKuOF29IYb9QrCLjU+rHAy/x/o0DK2c= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.24/go.mod h1:jULHjqqjDlbyTa7pfM7WICATnOv+iOhjletM3N0Xbu8= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.14 h1:ZSIPAkAsCCjYrhqfw2+lNzWDzxzHXEckFkTePL5RSWQ= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.14/go.mod h1:AyGgqiKv9ECM6IZeNQtdT8NnMvUb3/2wokeq2Fgryto= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.9 h1:Lh1AShsuIJTwMkoxVCAYPJgNG5H+eN6SmoUn8nOZ5wE= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.9/go.mod h1:a9j48l6yL5XINLHLcOKInjdvknN+vWqPBxqeIDw7ktw= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.18 h1:BBYoNQt2kUZUUK4bIPsKrCcjVPUMNsgQpNAwhznK/zo= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.18/go.mod h1:NS55eQ4YixUJPTC+INxi2/jCqe1y2Uw3rnh9wEOVJxY= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.17 h1:Jrd/oMh0PKQc6+BowB+pLEwLIgaQF29eYbe7E1Av9Ug= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.17/go.mod h1:4nYOrY41Lrbk2170/BGkcJKBhws9Pfn8MG3aGqjjeFI= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.17 h1:HfVVR1vItaG6le+Bpw6P4midjBDMKnjMyZnw9MXYUcE= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.17/go.mod h1:YqMdV+gEKCQ59NrB7rzrJdALeBIsYiVi8Inj3+KcqHI= +github.com/aws/aws-sdk-go-v2/service/s3 v1.27.11 h1:3/gm/JTX9bX8CpzTgIlrtYpB3EVBDxyg/GY/QdcIEZw= +github.com/aws/aws-sdk-go-v2/service/s3 v1.27.11/go.mod h1:fmgDANqTUCxciViKl9hb/zD5LFbvPINFRgWhDbR+vZo= +github.com/aws/aws-sdk-go-v2/service/sso v1.11.23 h1:pwvCchFUEnlceKIgPUouBJwK81aCkQ8UDMORfeFtW10= +github.com/aws/aws-sdk-go-v2/service/sso v1.11.23/go.mod h1:/w0eg9IhFGjGyyncHIQrXtU8wvNsTJOP0R6PPj0wf80= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.13.5 h1:GUnZ62TevLqIoDyHeiWj2P7EqaosgakBKVvWriIdLQY= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.13.5/go.mod h1:csZuQY65DAdFBt1oIjO5hhBR49kQqop4+lcuCjf2arA= +github.com/aws/aws-sdk-go-v2/service/sts v1.16.19 h1:9pPi0PsFNAGILFfPCk8Y0iyEBGc6lu6OQ97U7hmdesg= +github.com/aws/aws-sdk-go-v2/service/sts v1.16.19/go.mod h1:h4J3oPZQbxLhzGnk+j9dfYHi5qIOVJ5kczZd658/ydM= +github.com/aws/smithy-go v1.13.3 h1:l7LYxGuzK6/K+NzJ2mC+VvLUbae0sL3bXU//04MkmnA= +github.com/aws/smithy-go v1.13.3/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= 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= @@ -129,6 +139,8 @@ github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7 github.com/coreos/go-systemd/v22 v22.4.0 h1:y9YHcjnjynCd/DVbg5j9L/33jQM3MxJlbj/zWskzfGU= github.com/coreos/go-systemd/v22 v22.4.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= +github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0= +github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= @@ -136,6 +148,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8Yc github.com/dnaeon/go-vcr v1.1.0/go.mod h1:M7tiix8f0r6mKKJ3Yq/kqU1OYf3MnfmBWVbPx/yU9ko= github.com/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI= github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= +github.com/dvsekhvalnov/jose2go v1.5.0 h1:3j8ya4Z4kMCwT5nXIKFSV84YS+HdqSSO0VsTQxaLAeM= +github.com/dvsekhvalnov/jose2go v1.5.0/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB/mPZadG+mhXU= github.com/elastic/go-sysinfo v1.8.1 h1:4Yhj+HdV6WjbCRgGdZpPJ8lZQlXZLKDAeIkmQ/VRvi4= github.com/elastic/go-sysinfo v1.8.1/go.mod h1:JfllUnzoQV/JRYymbH3dO1yggI3mV2oTKSXsDHM+uIM= github.com/elastic/go-windows v1.0.0 h1:qLURgZFkkrYyTTkvYpsZIgf83AUsdIHfvlJaqaZ7aSY= @@ -152,8 +166,8 @@ github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzP github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/form3tech-oss/jwt-go v3.2.5+incompatible h1:/l4kBbb4/vGSsdtB5nUe8L7B9mImVMaBPw9L/0TBHU8= github.com/form3tech-oss/jwt-go v3.2.5+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= -github.com/gabriel-vasile/mimetype v1.4.0 h1:Cn9dkdYsMIu56tGho+fqzh7XmvY2YyGU0FnbhiOsEro= -github.com/gabriel-vasile/mimetype v1.4.0/go.mod h1:fA8fi6KUiG7MgQQ+mEWotXoEOvmxRtOJlERCzSmRvr8= +github.com/gabriel-vasile/mimetype v1.4.1 h1:TRWk7se+TOjCYgRth7+1/OYLNiRNIotknkFtf/dnN7Q= +github.com/gabriel-vasile/mimetype v1.4.1/go.mod h1:05Vi0w3Y9c/lNvJOdmIwvrrAhX3rYhfQQCaf9VJcv7M= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-fonts/dejavu v0.1.0/go.mod h1:4Wt4I4OU2Nq9asgDCteaAaWZOV24E+0/Pwo0gppep4g= github.com/go-fonts/latin-modern v0.2.0/go.mod h1:rQVLdDMK+mK1xscDwsqM5J8U2jrRa3T0ecnM9pNujks= @@ -178,6 +192,8 @@ github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+Hoeu/iUR3ruzNvZ+yQfO03a0= +github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofrs/uuid v4.0.0+incompatible h1:1SD/1F5pU8p29ybwgQSwpQk+mwdRrXCYuPhW6m+TnJw= github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= @@ -223,8 +239,9 @@ github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiu github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/flatbuffers v2.0.0+incompatible h1:dicJ2oXwypfwUGnB2/TYWYEKiuk9eYQlQO/AnOHl5mI= github.com/google/flatbuffers v2.0.0+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= +github.com/google/flatbuffers v2.0.8+incompatible h1:ivUb1cGomAB101ZM1T0nOiWz9pSrTMoa9+EiY7igmkM= +github.com/google/flatbuffers v2.0.8+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -236,6 +253,7 @@ github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= +github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= @@ -255,6 +273,8 @@ github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= +github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c h1:6rhixN/i8ZofjG1Y75iExal34USq5p+wiN1tpie8IrU= +github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c/go.mod h1:NMPJylDgVpX0MLRlPy15sqSwOFv/U1GZ2m21JhFfek0= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= @@ -329,8 +349,8 @@ github.com/kardianos/minwinsvc v1.0.2 h1:JmZKFJQrmTGa/WiW+vkJXKmfzdjabuEW4Tirj5l github.com/kardianos/minwinsvc v1.0.2/go.mod h1:LUZNYhNmxujx2tR7FbdxqYJ9XDDoCd3MQcl1o//FWl4= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.13.1/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= -github.com/klauspost/compress v1.13.6 h1:P76CopJELS0TiO2mebmnzgWaajssP/EszplttgQxcgc= -github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= +github.com/klauspost/compress v1.15.11 h1:Lcadnb3RKGin4FYM/orgq0qde+nc15E5Cbqg4B9Sx9c= +github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -370,16 +390,19 @@ github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3Rllmb github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8= github.com/montanaflynn/stats v0.6.6/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= +github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs= +github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ibNBTZrns= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/phpdave11/gofpdf v1.4.2/go.mod h1:zpO6xFn9yxo3YLyMvW8HcKWVdbNqgIfOOp2dXMnm1mY= github.com/phpdave11/gofpdi v1.0.12/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= github.com/pierrec/lz4 v2.0.5+incompatible h1:2xWsjqPFWcplujydGg4WmhC/6fZqK42wMM8aXeqhl0I= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pierrec/lz4/v4 v4.1.8/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= -github.com/pierrec/lz4/v4 v4.1.11 h1:LVs17FAZJFOjgmJXl9Tf13WfLUvZq7/RjfEJrnwZ9OE= -github.com/pierrec/lz4/v4 v4.1.11/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= +github.com/pierrec/lz4/v4 v4.1.16 h1:kQPfno+wyx6C5572ABwV+Uo3pDFzQ7yhyGchSyRda0c= +github.com/pierrec/lz4/v4 v4.1.16/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4/go.mod h1:N6UoU20jOqggOuDwUaBQpluzLNDqif3kq9z2wpdYEfQ= github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU= github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI= @@ -435,13 +458,14 @@ github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPx github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= -github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/snowflakedb/gosnowflake v1.6.13 h1:r8iozak/p3P2jYfjF3EbeteqMMzPWjwmVrdENJDW6EI= -github.com/snowflakedb/gosnowflake v1.6.13/go.mod h1:BoZ0gnLERaUEiziH4Dumim10LN8cvoaCKovsAfhxzrE= +github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= +github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/snowflakedb/gosnowflake v1.6.16 h1:R9NrID/trYxXUChdOKXxTHUGDDZkfWV0w9hEYRuABhU= +github.com/snowflakedb/gosnowflake v1.6.16/go.mod h1:rcAsyMje5e2aN0uhzbUYkpNSnkNyEDa8w8ScOsiHsBc= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= +github.com/stretchr/objx v0.4.0 h1:M2gUjqZET1qApGOWNSnZ49BAIMX4F/1plDv3+l31EJ4= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= @@ -486,6 +510,7 @@ golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201203163018-be400aefbc4c/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= @@ -570,15 +595,16 @@ golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81R golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210505024714-0287a6fb4125/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210610132358-84b48f89b13b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220920203100-d0c6ba3f52d9 h1:asZqf0wXastQr+DudYagQS8uBO8bHKeYD1vbAvGmFL8= -golang.org/x/net v0.0.0-20220920203100-d0c6ba3f52d9/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20221002022538-bcab6841153b h1:6e93nYa3hNqAvLr0pD4PN1fFS+gKzp2zAXqrnTCstqU= +golang.org/x/net v0.0.0-20221002022538-bcab6841153b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -637,7 +663,6 @@ golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200828194041-157a740278f4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -649,14 +674,17 @@ golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220224120231-95c6836cb0e7/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20221013171732-95e765b1cc43 h1:OK7RB6t2WQX54srQQYSXMW8dF5C6/8+oA/s5QBmmto4= golang.org/x/sys v0.0.0-20221013171732-95e765b1cc43/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -726,8 +754,9 @@ golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8T 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= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= +golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0= gonum.org/v1/gonum v0.9.3 h1:DnoIG+QAMaF5NvxnGe/oKsgKcAc6PcUyl8q0VetfQ8s= @@ -825,6 +854,7 @@ gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLks gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= From 0d4da7f1e759921d6fd3c2a34113bc34e7b89b79 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 22 Dec 2022 14:02:30 +0100 Subject: [PATCH 007/401] deps: bump github.com/microsoft/go-mssqldb from 0.17.0 to 0.19.0 (#172) Bumps [github.com/microsoft/go-mssqldb](https://github.com/microsoft/go-mssqldb) from 0.17.0 to 0.19.0. - [Release notes](https://github.com/microsoft/go-mssqldb/releases) - [Commits](https://github.com/microsoft/go-mssqldb/compare/v0.17.0...v0.19.0) --- updated-dependencies: - dependency-name: github.com/microsoft/go-mssqldb dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 8 ++++---- go.sum | 29 ++++++++++++++++++++++------- 2 files changed, 26 insertions(+), 11 deletions(-) diff --git a/go.mod b/go.mod index 0d1ab4ee..58bdee64 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/jackc/pgx/v4 v4.17.2 github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.7 - github.com/microsoft/go-mssqldb v0.17.0 + github.com/microsoft/go-mssqldb v0.19.0 github.com/prometheus/client_golang v1.13.0 github.com/prometheus/client_model v0.3.0 github.com/prometheus/common v0.37.0 @@ -25,11 +25,11 @@ require ( github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.1 // indirect github.com/Azure/azure-pipeline-go v0.2.3 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.0.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.0.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azcore v1.1.2 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.1.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0 // indirect github.com/Azure/azure-storage-blob-go v0.15.0 // indirect - github.com/AzureAD/microsoft-authentication-library-for-go v0.4.0 // indirect + github.com/AzureAD/microsoft-authentication-library-for-go v0.5.1 // indirect github.com/apache/arrow/go/arrow v0.0.0-20211112161151-bc219186db40 // indirect github.com/aws/aws-sdk-go-v2 v1.16.16 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.8 // indirect diff --git a/go.sum b/go.sum index 21b432cd..09bb767a 100644 --- a/go.sum +++ b/go.sum @@ -38,10 +38,11 @@ github.com/99designs/keyring v1.2.1 h1:tYLp1ULvO7i3fI5vE21ReQuj99QFSs7lGm0xWyJo8 github.com/99designs/keyring v1.2.1/go.mod h1:fc+wB5KTk9wQ9sDx0kFXB3A0MaeGHM9AwRStKOQ5vOA= github.com/Azure/azure-pipeline-go v0.2.3 h1:7U9HBg1JFK3jHl5qmo4CTZKFTVgMwdFHMVtCdfBE21U= github.com/Azure/azure-pipeline-go v0.2.3/go.mod h1:x841ezTBIMG6O3lAcl8ATHnsOPVl2bqk7S3ta6S6u4k= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.0.0 h1:sVPhtT2qjO86rTUaWMr4WoES4TkjGnzcioXcnHV9s5k= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.0.0/go.mod h1:uGG2W01BaETf0Ozp+QxxKJdMBNRWPdstHG0Fmdwn1/U= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.0.0 h1:Yoicul8bnVdQrhDMTHxdEckRGX01XvwXDHUT9zYZ3k0= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.0.0/go.mod h1:+6sju8gk8FRmSajX3Oz4G5Gm7P+mbqE9FVaXXFYTkCM= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.1.2 h1:lneMk5qtUMulXa/eVxjVd+/bDYMEDIqYpLzLa2/EsNI= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.1.2/go.mod h1:uGG2W01BaETf0Ozp+QxxKJdMBNRWPdstHG0Fmdwn1/U= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.1.0 h1:QkAcEIAKbNL4KoFr4SathZPhDhF4mVwpBMFlYjyAqy8= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.1.0/go.mod h1:bhXu1AjYL+wutSL/kpSq6s7733q2Rb0yuot9Zgfqa/0= github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0 h1:jp0dGvZ7ZK0mgqnTSClMxa5xuRL7NZgHameVYF6BurY= github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0/go.mod h1:eWRD7oawr1Mu1sLCawqVc0CUiF43ia3qQMxLscsKQ9w= github.com/Azure/azure-storage-blob-go v0.15.0 h1:rXtgp8tN1p29GvpGgfJetavIG0V7OgcSXPpwp3tx6qk= @@ -57,8 +58,8 @@ github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+Z github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo= github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= -github.com/AzureAD/microsoft-authentication-library-for-go v0.4.0 h1:WVsrXCnHlDDX8ls+tootqRE87/hL9S/g4ewig9RsD/c= -github.com/AzureAD/microsoft-authentication-library-for-go v0.4.0/go.mod h1:Vt9sXTKwMyGcOxSmLDMnGPgqsUg7m8pe215qMLrDXw4= +github.com/AzureAD/microsoft-authentication-library-for-go v0.5.1 h1:BWe8a+f/t+7KY7zH2mqygeUD0t8hNFXe08p1Pb3/jKE= +github.com/AzureAD/microsoft-authentication-library-for-go v0.5.1/go.mod h1:Vt9sXTKwMyGcOxSmLDMnGPgqsUg7m8pe215qMLrDXw4= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/ClickHouse/clickhouse-go v1.5.4 h1:cKjXeYLNWVJIx2J1K6H2CqyRmfwVJVY1OV1coaaFcI0= @@ -272,9 +273,12 @@ github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= +github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c h1:6rhixN/i8ZofjG1Y75iExal34USq5p+wiN1tpie8IrU= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c/go.mod h1:NMPJylDgVpX0MLRlPy15sqSwOFv/U1GZ2m21JhFfek0= +github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= @@ -325,6 +329,12 @@ github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0f github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v1.3.0/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= +github.com/jcmturner/aescts/v2 v2.0.0/go.mod h1:AiaICIRyfYg35RUkr8yESTqvSy7csK90qZ5xfvvsoNs= +github.com/jcmturner/dnsutils/v2 v2.0.0/go.mod h1:b0TnjGOvI/n42bZa+hmXL+kFJZsFT7G4t3HTlQ184QM= +github.com/jcmturner/gofork v1.0.0/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/UM3ncEo0o= +github.com/jcmturner/goidentity/v6 v6.0.1/go.mod h1:X1YW3bgtvwAXju7V3LCIMpY0Gbxyjn/mY9zx4tFonSg= +github.com/jcmturner/gokrb5/v8 v8.4.2/go.mod h1:sb+Xq/fTY5yktf/VxLsE3wlfPqQjp0aWNYyvBVK62bc= +github.com/jcmturner/rpc/v2 v2.0.3/go.mod h1:VUJYCIDm3PVOEHw8sgt091/20OJjskO/YJki3ELg/Hc= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= @@ -381,8 +391,8 @@ github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOq github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/microsoft/go-mssqldb v0.17.0 h1:Fto83dMZPnYv1Zwx5vHHxpNraeEaUlQ/hhHLgZiaenE= -github.com/microsoft/go-mssqldb v0.17.0/go.mod h1:OkoNGhGEs8EZqchVTtochlXruEhEOaO4S0d2sB5aeGQ= +github.com/microsoft/go-mssqldb v0.19.0 h1:LMRSgLcNMF8paPX14xlyQBmBH+jnFylPsYpVZf86eHM= +github.com/microsoft/go-mssqldb v0.19.0/go.mod h1:ukJCBnnzLzpVF0qYRT+eg1e+eSwjeQ7IvenUv8QPook= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= @@ -471,6 +481,7 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= @@ -511,10 +522,12 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20201112155050-0c6587e931a9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201203163018-be400aefbc4c/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220511200225-c6db032c6c88/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20221012134737-56aed061732a h1:NmSIgad6KjE6VvHciPZuNRTKxGhlPfD6OA87W/PLkqg= golang.org/x/crypto v0.0.0-20221012134737-56aed061732a/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= @@ -859,6 +872,8 @@ gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntN gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s= +gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce h1:+JknDZhAj8YMt7GC73Ei8pv4MzjDUNPHgQWJdtMAaDU= +gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce/go.mod h1:5AcXVHNjg+BDxry382+8OKon8SEWiKktQR07RKPsv1c= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= From bf67e044426522d02e9b4ce67b5f5781c8b47758 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 22 Dec 2022 14:03:15 +0100 Subject: [PATCH 008/401] deps: bump github.com/go-sql-driver/mysql from 1.6.0 to 1.7.0 (#173) Bumps [github.com/go-sql-driver/mysql](https://github.com/go-sql-driver/mysql) from 1.6.0 to 1.7.0. - [Release notes](https://github.com/go-sql-driver/mysql/releases) - [Changelog](https://github.com/go-sql-driver/mysql/blob/master/CHANGELOG.md) - [Commits](https://github.com/go-sql-driver/mysql/compare/v1.6.0...v1.7.0) --- updated-dependencies: - dependency-name: github.com/go-sql-driver/mysql dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 58bdee64..e190a099 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.18 require ( github.com/ClickHouse/clickhouse-go v1.5.4 - github.com/go-sql-driver/mysql v1.6.0 + github.com/go-sql-driver/mysql v1.7.0 github.com/jackc/pgx/v4 v4.17.2 github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.7 diff --git a/go.sum b/go.sum index 09bb767a..c4957471 100644 --- a/go.sum +++ b/go.sum @@ -190,8 +190,8 @@ github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA= github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= -github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= -github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= +github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc= +github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+Hoeu/iUR3ruzNvZ+yQfO03a0= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= From 0c3593562ea4e0739263f07c1834d078d11778c3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 22 Dec 2022 14:08:12 +0100 Subject: [PATCH 009/401] deps: bump github.com/prometheus/client_golang from 1.13.0 to 1.14.0 (#175) Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.13.0 to 1.14.0. - [Release notes](https://github.com/prometheus/client_golang/releases) - [Changelog](https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md) - [Commits](https://github.com/prometheus/client_golang/compare/v1.13.0...v1.14.0) --- updated-dependencies: - dependency-name: github.com/prometheus/client_golang dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index e190a099..c8470ef1 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.7 github.com/microsoft/go-mssqldb v0.19.0 - github.com/prometheus/client_golang v1.13.0 + github.com/prometheus/client_golang v1.14.0 github.com/prometheus/client_model v0.3.0 github.com/prometheus/common v0.37.0 github.com/prometheus/exporter-toolkit v0.8.2 diff --git a/go.sum b/go.sum index c4957471..10c75a60 100644 --- a/go.sum +++ b/go.sum @@ -428,8 +428,8 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= -github.com/prometheus/client_golang v1.13.0 h1:b71QUfeo5M8gq2+evJdTPfZhYMAU0uKPkyPJ7TPsloU= -github.com/prometheus/client_golang v1.13.0/go.mod h1:vTeo+zgvILHsnnj/39Ou/1fPN5nJFOEMgftOUOmlvYQ= +github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw= +github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= From 4b5b121e989ba6da9a921da03f96fc8e4b4b55bf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 22 Dec 2022 14:12:21 +0100 Subject: [PATCH 010/401] deps: bump github.com/prometheus/common from 0.37.0 to 0.39.0 (#174) Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.37.0 to 0.39.0. - [Release notes](https://github.com/prometheus/common/releases) - [Commits](https://github.com/prometheus/common/compare/v0.37.0...v0.39.0) --- updated-dependencies: - dependency-name: github.com/prometheus/common dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 12 +-- go.sum | 329 +++------------------------------------------------------ 2 files changed, 19 insertions(+), 322 deletions(-) diff --git a/go.mod b/go.mod index c8470ef1..50ab245b 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/microsoft/go-mssqldb v0.19.0 github.com/prometheus/client_golang v1.14.0 github.com/prometheus/client_model v0.3.0 - github.com/prometheus/common v0.37.0 + github.com/prometheus/common v0.39.0 github.com/prometheus/exporter-toolkit v0.8.2 github.com/snowflakedb/gosnowflake v1.6.16 github.com/vertica/vertica-sql-go v1.3.0 @@ -78,7 +78,7 @@ require ( github.com/klauspost/compress v1.15.11 // indirect github.com/kylelemons/godebug v1.1.0 // indirect github.com/mattn/go-ieproxy v0.0.1 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect + github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/mtibben/percent v0.2.1 // indirect github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect github.com/pierrec/lz4/v4 v4.1.16 // indirect @@ -88,11 +88,11 @@ require ( github.com/prometheus/procfs v0.8.0 // indirect github.com/sirupsen/logrus v1.9.0 // indirect golang.org/x/crypto v0.0.0-20221012134737-56aed061732a // indirect - golang.org/x/net v0.0.0-20221002022538-bcab6841153b // indirect - golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1 // indirect + golang.org/x/net v0.4.0 // indirect + golang.org/x/oauth2 v0.3.0 // indirect golang.org/x/sync v0.1.0 // indirect - golang.org/x/sys v0.0.0-20221013171732-95e765b1cc43 // indirect - golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect + golang.org/x/sys v0.3.0 // indirect + golang.org/x/term v0.3.0 // indirect golang.org/x/text v0.5.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect google.golang.org/appengine v1.6.7 // indirect diff --git a/go.sum b/go.sum index 10c75a60..30be5df4 100644 --- a/go.sum +++ b/go.sum @@ -1,35 +1,5 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= -cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= -cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= -cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= -cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= -cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= -cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= -cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= -cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= -cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= -cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= -cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= -cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= -cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= -cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= -cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= -cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= -cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= -cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= -cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= -cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= -cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= -cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= -cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= -cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= -cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8= github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 h1:/vQbFIOMbk2FiG/kXiLl8BRyzTWDw7gX/Hz7Dd5eDMs= @@ -67,11 +37,6 @@ github.com/ClickHouse/clickhouse-go v1.5.4/go.mod h1:EaI/sW7Azgz9UATzd5ZdZHRUhHg github.com/Masterminds/semver/v3 v3.1.1 h1:hLg3sBzpNErnxhQtUy/mmLR2I9foDujNK030IGemrRc= github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/apache/arrow/go/arrow v0.0.0-20211112161151-bc219186db40 h1:q4dksr6ICHXqG5hm0ZW5IHyeEJXoIJSOZeBLmWPNeIQ= github.com/apache/arrow/go/arrow v0.0.0-20211112161151-bc219186db40/go.mod h1:Q7yQnSMnLvcXlZ8RV+jwz/6y1rQTqbX6C82SndT52Zs= @@ -113,20 +78,14 @@ github.com/aws/aws-sdk-go-v2/service/sts v1.16.19 h1:9pPi0PsFNAGILFfPCk8Y0iyEBGc github.com/aws/aws-sdk-go-v2/service/sts v1.16.19/go.mod h1:h4J3oPZQbxLhzGnk+j9dfYHi5qIOVJ5kczZd658/ydM= github.com/aws/smithy-go v1.13.3 h1:l7LYxGuzK6/K+NzJ2mC+VvLUbae0sL3bXU//04MkmnA= github.com/aws/smithy-go v1.13.3/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= -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= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bkaradzic/go-lz4 v1.0.0 h1:RXc4wYsyz985CkXXeX04y4VnZFGG8Rd43pRaHsOXAKk= github.com/bkaradzic/go-lz4 v1.0.0/go.mod h1:0YdlkowM3VswSROI7qDxhRvJ3sLhlFrRRwjwegp5jy4= github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE= github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= -github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= -github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 h1:F1EaeKL/ta07PY/k9Os/UFtwERei2/XzGemhpGnBKNg= github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58/go.mod h1:EOBUe0h4xcZ5GoxqC5SDxFQ8gwyZPKQoEzownBlhI80= @@ -175,17 +134,10 @@ github.com/go-fonts/latin-modern v0.2.0/go.mod h1:rQVLdDMK+mK1xscDwsqM5J8U2jrRa3 github.com/go-fonts/liberation v0.1.1/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY= github.com/go-fonts/stix v0.1.0/go.mod h1:w/c1f0ldAUlJmLBvlbkvVXLAD+tAMqobIIQpmnUIzUY= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= -github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= github.com/go-latex/latex v0.0.0-20210118124228-b3d85cf34e07/go.mod h1:CO1AlKB2CSIqUrmQPqA0gdRIlnLEY0gK5JGjh37zN5U= -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-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA= github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= @@ -198,7 +150,6 @@ github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6 github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofrs/uuid v4.0.0+incompatible h1:1SD/1F5pU8p29ybwgQSwpQk+mwdRrXCYuPhW6m+TnJw= github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= -github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/golang-jwt/jwt v3.2.1+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY= github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= @@ -210,21 +161,11 @@ github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -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= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= -github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= @@ -238,8 +179,6 @@ github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaS github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/flatbuffers v2.0.0+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/flatbuffers v2.0.8+incompatible h1:ivUb1cGomAB101ZM1T0nOiWz9pSrTMoa9+EiY7igmkM= github.com/google/flatbuffers v2.0.8+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= @@ -247,41 +186,23 @@ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5a github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= -github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c h1:6rhixN/i8ZofjG1Y75iExal34USq5p+wiN1tpie8IrU= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c/go.mod h1:NMPJylDgVpX0MLRlPy15sqSwOFv/U1GZ2m21JhFfek0= github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/jackc/chunkreader v1.0.0/go.mod h1:RT6O25fNZIuasFJRyZ4R/Y2BbhasbmZXF9QQ7T3kePo= github.com/jackc/chunkreader/v2 v2.0.0/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk= github.com/jackc/chunkreader/v2 v2.0.1 h1:i+RDz65UE+mmpjTfyz0MoVTnzeYxroil2G82ki7MGG8= @@ -345,14 +266,6 @@ github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 h1:rp+c0RAYOWj8 github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901/go.mod h1:Z86h9688Y0wesXCyonoVr47MasHilkuLMqGhRZ4Hpak= github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= -github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= -github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= -github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= github.com/kardianos/minwinsvc v1.0.2 h1:JmZKFJQrmTGa/WiW+vkJXKmfzdjabuEW4Tirj5lLdR0= @@ -363,8 +276,6 @@ github.com/klauspost/compress v1.15.11 h1:Lcadnb3RKGin4FYM/orgq0qde+nc15E5Cbqg4B github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= @@ -388,21 +299,14 @@ github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hd github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= -github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= -github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= +github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/microsoft/go-mssqldb v0.19.0 h1:LMRSgLcNMF8paPX14xlyQBmBH+jnFylPsYpVZf86eHM= github.com/microsoft/go-mssqldb v0.19.0/go.mod h1:ukJCBnnzLzpVF0qYRT+eg1e+eSwjeQ7IvenUv8QPook= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8= github.com/montanaflynn/stats v0.6.6/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs= github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ibNBTZrns= -github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= @@ -416,40 +320,22 @@ github.com/pierrec/lz4/v4 v4.1.16/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFu github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4/go.mod h1:N6UoU20jOqggOuDwUaBQpluzLNDqif3kq9z2wpdYEfQ= github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU= github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw= github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= -github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= -github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= -github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/common v0.37.0 h1:ccBbHCgIiT9uSoFY0vX8H3zsNR5eLt17/RQLUvn8pXE= -github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA= +github.com/prometheus/common v0.39.0 h1:oOyhkDq05hPZKItWVBkJ6g6AtGxi+fy7F4JvUV8uhsI= +github.com/prometheus/common v0.39.0/go.mod h1:6XBZ7lYdLCbkAVhwRsWTZn+IN5AB9F/NXd5w0BbEX0Y= github.com/prometheus/exporter-toolkit v0.8.2 h1:sbJAfBXQFkG6sUkbwBun8MNdzW9+wd5YfPYofbmj0YM= github.com/prometheus/exporter-toolkit v0.8.2/go.mod h1:00shzmJL7KxcsabLWcONwpyNEuWhREOnFqZW7vadFS0= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo= github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= @@ -464,10 +350,8 @@ github.com/shopspring/decimal v1.2.0 h1:abSATXmQEYyShuxI4/vyW3tV1MrKAJzCZ/0zLUXY github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= github.com/simonpasquier/klog-gokit/v3 v3.1.0 h1:xQGqjZdgo1lFA4eZ9PcGnKKXgIPz9t+jc25q/fXooIE= github.com/simonpasquier/klog-gokit/v3 v3.1.0/go.mod h1:+WRhGy707Lp2Q4r727m9Oc7FxazOHgW76FIyCr23nus= -github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/snowflakedb/gosnowflake v1.6.16 h1:R9NrID/trYxXUChdOKXxTHUGDDZkfWV0w9hEYRuABhU= @@ -490,16 +374,8 @@ github.com/vertica/vertica-sql-go v1.3.0 h1:oZL8PgwrpALegtTFhImsaJvg5oQd2G7v7Uai github.com/vertica/vertica-sql-go v1.3.0/go.mod h1:jnn2GFuv+O2Jcjktb7zyc4Utlbu9YVqpHH/lx63+1M4= github.com/xo/dburl v0.12.4 h1:mAIQjCNqCRtfytZNN0tZzK01rfng3n4Ei1s+H9lh61I= github.com/xo/dburl v0.12.4/go.mod h1:K6rSPgbVqP3ZFT0RHkdg/M3M5KhLeV2MaS/ZqaLd1kA= -github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= -go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= -go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= @@ -512,11 +388,9 @@ go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9E go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= -golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -536,16 +410,8 @@ golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191002040644-a1355ae1e2c3 h1:n9HxLrNxWWtEb1cA950nuEEj3QnKbtsCJ6KjcgisNUs= golang.org/x/exp v0.0.0-20191002040644-a1355ae1e2c3/go.mod h1:NOZ3BPKG0ec/BKJQgnvsSFpcKLM5xXVWnvZS97DWHgE= -golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= -golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6 h1:QE6XYQK6naiK1EPAe1g/ILLxN5RBoH5xkJk3CqlMI/Y= -golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= @@ -557,125 +423,61 @@ golang.org/x/image v0.0.0-20201208152932-35266b937fa6/go.mod h1:FeLwcggjj3mMvU+o golang.org/x/image v0.0.0-20210216034530-4410531fe030/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -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-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= -golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= 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.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= 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= -golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= -golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191112182307-2180aed22343/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210610132358-84b48f89b13b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.0.0-20221002022538-bcab6841153b h1:6e93nYa3hNqAvLr0pD4PN1fFS+gKzp2zAXqrnTCstqU= -golang.org/x/net v0.0.0-20221002022538-bcab6841153b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.4.0 h1:Q5QPcMlvfxFTAPV0+07Xz/MpK9NTXu2VDUuy0FeMfaU= +golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= -golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1 h1:lxqLZaMad/dJHMFZH0NiNpiEZI/nhgWhe4wgzpE+MuA= -golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= +golang.org/x/oauth2 v0.3.0 h1:6l90koy8/LaBLmLu8jpHeHexzMwEita0zFfYlggy2F8= +golang.org/x/oauth2 v0.3.0/go.mod h1:rQrIauxkUhJ6CuwEXwymO2/eh4xz2ZWF1nBkcxS+tGk= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191112214154-59a1497f0cea/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -683,25 +485,22 @@ golang.org/x/sys v0.0.0-20210304124612-50617c2ba197/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220224120231-95c6836cb0e7/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20221013171732-95e765b1cc43 h1:OK7RB6t2WQX54srQQYSXMW8dF5C6/8+oA/s5QBmmto4= -golang.org/x/sys v0.0.0-20221013171732-95e765b1cc43/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.3.0 h1:w8ZOecv6NaNa/zC8944JTU3vz4u6Lagfk4RPQxv92NQ= +golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/term v0.3.0 h1:qoo4akIqOcDME5bhc/NgxUdovd6BSS2uMsVjB56q1xI= +golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -710,57 +509,22 @@ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.5.0 h1:OLmvp0KP+FVG99Ct/qFiL/Fhk4zp4QQnZ7b2U+5piUM= golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190425163242-31fd60d6bfdc/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190823170909-c4a336ef6a2f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190927191325-030b2cf1153e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/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.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -777,73 +541,19 @@ gonum.org/v1/gonum v0.9.3/go.mod h1:TZumC3NeyVQskjXqmyWt4S3bINhy7B4eYwW69EbyX+0= gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= gonum.org/v1/plot v0.9.0/go.mod h1:3Pcqqmp6RHvJI72kgb8fThyUnav364FOsdDo2aGW5lY= -google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= -google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= -google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= -google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= -google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210630183607-d20f26d13c79/go.mod h1:yiaVoXHpRzHGyxV3o4DktVWY4mSUErTKaeEOq6C3t3U= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= -google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= -google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= @@ -856,17 +566,14 @@ google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzi google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= @@ -877,10 +584,7 @@ gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce/go.mod h1:5AcXVHN gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= @@ -888,15 +592,8 @@ gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -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.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= howett.net/plist v0.0.0-20181124034731-591f970eefbb h1:jhnBjNi9UFpfpl8YZhA9CrOqpnJdvzuiHsl/dnxl11M= howett.net/plist v0.0.0-20181124034731-591f970eefbb/go.mod h1:vMygbs4qMhSZSc4lCUl2OEE+rDiIIJAIdR4m7MiMcm0= -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= -rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= From 190f772252d1bbbe8d81aae60fcc1c86e492c553 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 22 Dec 2022 14:17:44 +0100 Subject: [PATCH 011/401] deps: bump github.com/xo/dburl from 0.12.4 to 0.13.0 (#171) Bumps [github.com/xo/dburl](https://github.com/xo/dburl) from 0.12.4 to 0.13.0. - [Release notes](https://github.com/xo/dburl/releases) - [Commits](https://github.com/xo/dburl/compare/v0.12.4...v0.13.0) --- updated-dependencies: - dependency-name: github.com/xo/dburl dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 50ab245b..0612830d 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( github.com/prometheus/exporter-toolkit v0.8.2 github.com/snowflakedb/gosnowflake v1.6.16 github.com/vertica/vertica-sql-go v1.3.0 - github.com/xo/dburl v0.12.4 + github.com/xo/dburl v0.13.0 google.golang.org/protobuf v1.28.1 gopkg.in/yaml.v3 v3.0.1 k8s.io/klog/v2 v2.70.1 diff --git a/go.sum b/go.sum index 30be5df4..dff57f2d 100644 --- a/go.sum +++ b/go.sum @@ -372,8 +372,8 @@ github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PK github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/vertica/vertica-sql-go v1.3.0 h1:oZL8PgwrpALegtTFhImsaJvg5oQd2G7v7Uai97X9Xp8= github.com/vertica/vertica-sql-go v1.3.0/go.mod h1:jnn2GFuv+O2Jcjktb7zyc4Utlbu9YVqpHH/lx63+1M4= -github.com/xo/dburl v0.12.4 h1:mAIQjCNqCRtfytZNN0tZzK01rfng3n4Ei1s+H9lh61I= -github.com/xo/dburl v0.12.4/go.mod h1:K6rSPgbVqP3ZFT0RHkdg/M3M5KhLeV2MaS/ZqaLd1kA= +github.com/xo/dburl v0.13.0 h1:kq+oD1j/m8DnJ/p6G/LQXRosVchs8q5/AszEUKkvYfo= +github.com/xo/dburl v0.13.0/go.mod h1:K6rSPgbVqP3ZFT0RHkdg/M3M5KhLeV2MaS/ZqaLd1kA= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= From 22dff1674287332d1c2f0ba0bdc20755c7b4397b Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Thu, 22 Dec 2022 15:41:36 +0100 Subject: [PATCH 012/401] chore: add darwin/arm64 arch to promu (#176) --- .promu.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.promu.yml b/.promu.yml index c5b79c9d..a486350b 100644 --- a/.promu.yml +++ b/.promu.yml @@ -27,3 +27,4 @@ crossbuild: - windows/amd64 - linux/armv7 - linux/arm64 + - darwin/arm64 From e1a5775cca58bf1110516baebc6fe7854d18279b Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Thu, 22 Dec 2022 16:03:52 +0100 Subject: [PATCH 013/401] Bump up version to 0.9.2 --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index f374f666..2003b639 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.9.1 +0.9.2 From 2ff59aa752005d027182d6bc3204774783093de3 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Thu, 22 Dec 2022 16:56:41 +0100 Subject: [PATCH 014/401] build: Update actions/setup-go and actions/checkout to v3 (#177) Node.js 12 actions are deprecated. For more information see: https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/. --- .github/workflows/build.yml | 4 ++-- .github/workflows/codeql-analysis.yml | 4 ++-- .github/workflows/release.yml | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 36d55db1..ddf42997 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,12 +14,12 @@ jobs: runs-on: ubuntu-latest steps: - name: Set up Go 1.x - uses: actions/setup-go@v2 + uses: actions/setup-go@v3 with: go-version: ^1.18 id: go - name: Check out code into the Go module directory - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Style run: make style - name: Vet diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 0a844888..2787ffe2 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -25,14 +25,14 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: # We must fetch at least the immediate parents so that if this is # a pull request then we can checkout the head. fetch-depth: 2 - name: Set up Go - uses: actions/setup-go@v2 + uses: actions/setup-go@v3 with: go-version: ^1.18 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index adc95ef7..7a2d17ac 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -14,11 +14,11 @@ jobs: VERSION: ${{ github.ref_name }} steps: - name: Set up Go 1.x - uses: actions/setup-go@v2 + uses: actions/setup-go@v3 with: go-version: ^1.18 - name: Check out code into the Go module directory - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Promu - Crossbuild run: make crossbuild From 7f833a3bc0a057c2129c1475374d8b4c041f8ded Mon Sep 17 00:00:00 2001 From: Hugo Hromic Date: Thu, 26 Jan 2023 23:49:15 +0000 Subject: [PATCH 015/401] fix: exporter panics on config corner cases (#185) * fix: initialize global defaults if not provided in config * fix: do not start exporter with empty configuration files --- config/config.go | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/config/config.go b/config/config.go index aa6bd466..30e0a093 100644 --- a/config/config.go +++ b/config/config.go @@ -31,6 +31,10 @@ func Load(configFile string) (*Config, error) { return nil, err } + if c.Globals == nil { + return nil, fmt.Errorf("empty or no configuration provided") + } + return &c, nil } @@ -40,7 +44,7 @@ func Load(configFile string) (*Config, error) { // Config is a collection of jobs and collectors. type Config struct { - Globals *GlobalConfig `yaml:"global"` + Globals *GlobalConfig `yaml:"global,omitempty"` CollectorFiles []string `yaml:"collector_files,omitempty"` Target *TargetConfig `yaml:"target,omitempty"` Jobs []*JobConfig `yaml:"jobs,omitempty"` @@ -59,6 +63,14 @@ func (c *Config) UnmarshalYAML(unmarshal func(interface{}) error) error { return err } + if c.Globals == nil { + c.Globals = &GlobalConfig{} + // Force a dummy unmarshall to populate global defaults + if err := c.Globals.UnmarshalYAML(func(interface{}) error { return nil }); err != nil { + return err + } + } + if (len(c.Jobs) == 0) == (c.Target == nil) { return fmt.Errorf("exactly one of `jobs` and `target` must be defined") } From f4f80c1f6931acc40d5e55ad5329bd3eb534e9fa Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Fri, 27 Jan 2023 00:49:57 +0100 Subject: [PATCH 016/401] fix: detect fedauth for AzureSQL and assign a correct driver name (#187) fix: detect fedauth for AzureSQL and assign a correct driver --- sql.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sql.go b/sql.go index 9f511738..be7a9b51 100644 --- a/sql.go +++ b/sql.go @@ -27,6 +27,14 @@ func OpenConnection(ctx context.Context, logContext, dsn string, maxConns, maxId return nil, err } + // FIXME: currently `dburl` handles `azuresql` scheme as `sqlserver` alias and assigns it as a driver name. + // To use Azure AD the upstream driver expects strictly `azuresql` as a driver name. We detect `fedauth` + // in a query string, and set the expected driver name. + // This might be fixed later in the upstream dependency and removed here. + if url.Driver == "sqlserver" && url.Query().Has("fedauth") { + url.Driver = "azuresql" + } + // Open the DB handle in a separate goroutine so we can terminate early if the context closes. go func() { conn, err = sql.Open(url.Driver, url.DSN) From 7e0e172bae389363aa5cc62750b9d714f293cc3c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 29 Jan 2023 15:30:18 +0100 Subject: [PATCH 017/401] deps: bump github.com/microsoft/go-mssqldb from 0.19.0 to 0.20.0 (#188) Bumps [github.com/microsoft/go-mssqldb](https://github.com/microsoft/go-mssqldb) from 0.19.0 to 0.20.0. - [Release notes](https://github.com/microsoft/go-mssqldb/releases) - [Changelog](https://github.com/microsoft/go-mssqldb/blob/main/CHANGELOG.md) - [Commits](https://github.com/microsoft/go-mssqldb/compare/v0.19.0...v0.20.0) --- updated-dependencies: - dependency-name: github.com/microsoft/go-mssqldb dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 0612830d..e8ba28e3 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/jackc/pgx/v4 v4.17.2 github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.7 - github.com/microsoft/go-mssqldb v0.19.0 + github.com/microsoft/go-mssqldb v0.20.0 github.com/prometheus/client_golang v1.14.0 github.com/prometheus/client_model v0.3.0 github.com/prometheus/common v0.39.0 diff --git a/go.sum b/go.sum index dff57f2d..4ecb0349 100644 --- a/go.sum +++ b/go.sum @@ -301,8 +301,8 @@ github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Ky github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/microsoft/go-mssqldb v0.19.0 h1:LMRSgLcNMF8paPX14xlyQBmBH+jnFylPsYpVZf86eHM= -github.com/microsoft/go-mssqldb v0.19.0/go.mod h1:ukJCBnnzLzpVF0qYRT+eg1e+eSwjeQ7IvenUv8QPook= +github.com/microsoft/go-mssqldb v0.20.0 h1:jAfvs5TIR311fEuNgohFzMtUO0IcCHyI1kWAVws4ES8= +github.com/microsoft/go-mssqldb v0.20.0/go.mod h1:ukJCBnnzLzpVF0qYRT+eg1e+eSwjeQ7IvenUv8QPook= github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8= github.com/montanaflynn/stats v0.6.6/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs= From acaa6fe77e1c1c8c0dd9a1dae4c770d3e87feb5c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 29 Jan 2023 15:30:27 +0100 Subject: [PATCH 018/401] deps: bump github.com/vertica/vertica-sql-go from 1.3.0 to 1.3.1 (#189) Bumps [github.com/vertica/vertica-sql-go](https://github.com/vertica/vertica-sql-go) from 1.3.0 to 1.3.1. - [Release notes](https://github.com/vertica/vertica-sql-go/releases) - [Commits](https://github.com/vertica/vertica-sql-go/compare/v1.3.0...v1.3.1) --- updated-dependencies: - dependency-name: github.com/vertica/vertica-sql-go dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index e8ba28e3..2b7c0b20 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/prometheus/common v0.39.0 github.com/prometheus/exporter-toolkit v0.8.2 github.com/snowflakedb/gosnowflake v1.6.16 - github.com/vertica/vertica-sql-go v1.3.0 + github.com/vertica/vertica-sql-go v1.3.1 github.com/xo/dburl v0.13.0 google.golang.org/protobuf v1.28.1 gopkg.in/yaml.v3 v3.0.1 diff --git a/go.sum b/go.sum index 4ecb0349..6f2da734 100644 --- a/go.sum +++ b/go.sum @@ -370,8 +370,8 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/vertica/vertica-sql-go v1.3.0 h1:oZL8PgwrpALegtTFhImsaJvg5oQd2G7v7Uai97X9Xp8= -github.com/vertica/vertica-sql-go v1.3.0/go.mod h1:jnn2GFuv+O2Jcjktb7zyc4Utlbu9YVqpHH/lx63+1M4= +github.com/vertica/vertica-sql-go v1.3.1 h1:qjkJzkFmLG+z2koRC6inT+yFr23TyBkNXUP4vf92rSQ= +github.com/vertica/vertica-sql-go v1.3.1/go.mod h1:jnn2GFuv+O2Jcjktb7zyc4Utlbu9YVqpHH/lx63+1M4= github.com/xo/dburl v0.13.0 h1:kq+oD1j/m8DnJ/p6G/LQXRosVchs8q5/AszEUKkvYfo= github.com/xo/dburl v0.13.0/go.mod h1:K6rSPgbVqP3ZFT0RHkdg/M3M5KhLeV2MaS/ZqaLd1kA= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= From 7dc1bb315e6043b4686155c9f6e6e0619c0c1446 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 29 Jan 2023 15:36:43 +0100 Subject: [PATCH 019/401] deps: bump github.com/snowflakedb/gosnowflake from 1.6.16 to 1.6.17 (#190) Bumps [github.com/snowflakedb/gosnowflake](https://github.com/snowflakedb/gosnowflake) from 1.6.16 to 1.6.17. - [Release notes](https://github.com/snowflakedb/gosnowflake/releases) - [Changelog](https://github.com/snowflakedb/gosnowflake/blob/master/release.go) - [Commits](https://github.com/snowflakedb/gosnowflake/compare/v1.6.16...v1.6.17) --- updated-dependencies: - dependency-name: github.com/snowflakedb/gosnowflake dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 10 +++++----- go.sum | 20 ++++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/go.mod b/go.mod index 2b7c0b20..f83bff27 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,7 @@ require ( github.com/prometheus/client_model v0.3.0 github.com/prometheus/common v0.39.0 github.com/prometheus/exporter-toolkit v0.8.2 - github.com/snowflakedb/gosnowflake v1.6.16 + github.com/snowflakedb/gosnowflake v1.6.17 github.com/vertica/vertica-sql-go v1.3.1 github.com/xo/dburl v0.13.0 google.golang.org/protobuf v1.28.1 @@ -88,12 +88,12 @@ require ( github.com/prometheus/procfs v0.8.0 // indirect github.com/sirupsen/logrus v1.9.0 // indirect golang.org/x/crypto v0.0.0-20221012134737-56aed061732a // indirect - golang.org/x/net v0.4.0 // indirect + golang.org/x/net v0.5.0 // indirect golang.org/x/oauth2 v0.3.0 // indirect golang.org/x/sync v0.1.0 // indirect - golang.org/x/sys v0.3.0 // indirect - golang.org/x/term v0.3.0 // indirect - golang.org/x/text v0.5.0 // indirect + golang.org/x/sys v0.4.0 // indirect + golang.org/x/term v0.4.0 // indirect + golang.org/x/text v0.6.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect google.golang.org/appengine v1.6.7 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/go.sum b/go.sum index 6f2da734..ff38ee5d 100644 --- a/go.sum +++ b/go.sum @@ -354,8 +354,8 @@ github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMB github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/snowflakedb/gosnowflake v1.6.16 h1:R9NrID/trYxXUChdOKXxTHUGDDZkfWV0w9hEYRuABhU= -github.com/snowflakedb/gosnowflake v1.6.16/go.mod h1:rcAsyMje5e2aN0uhzbUYkpNSnkNyEDa8w8ScOsiHsBc= +github.com/snowflakedb/gosnowflake v1.6.17 h1:npFUsPPUoHX1JERa1zQmHFzlt7D2JEieEhshOl2R0F0= +github.com/snowflakedb/gosnowflake v1.6.17/go.mod h1:BhNDWNSUY+t4T8GBuOg3ckWC4v5hhGlLovqGcF8Rkac= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= @@ -451,8 +451,8 @@ golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.4.0 h1:Q5QPcMlvfxFTAPV0+07Xz/MpK9NTXu2VDUuy0FeMfaU= -golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= +golang.org/x/net v0.5.0 h1:GyT4nK/YDHSqa1c4753ouYCDajOYKTja9Xb/OHtgvSw= +golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.3.0 h1:6l90koy8/LaBLmLu8jpHeHexzMwEita0zFfYlggy2F8= @@ -493,13 +493,13 @@ golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220224120231-95c6836cb0e7/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.3.0 h1:w8ZOecv6NaNa/zC8944JTU3vz4u6Lagfk4RPQxv92NQ= -golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.4.0 h1:Zr2JFtRQNX3BCZ8YtxRE9hNJYC8J6I1MVbMg6owUp18= +golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.3.0 h1:qoo4akIqOcDME5bhc/NgxUdovd6BSS2uMsVjB56q1xI= -golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= +golang.org/x/term v0.4.0 h1:O7UWfv5+A2qiuulQk30kVinPoMtoIPeVaKLEgLpVkvg= +golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -507,8 +507,8 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.5.0 h1:OLmvp0KP+FVG99Ct/qFiL/Fhk4zp4QQnZ7b2U+5piUM= -golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.6.0 h1:3XmdazWV+ubf7QgHSTWeykHOci5oeekaGJBLkrkaw4k= +golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= From 2706ca623eb8c1522b773625003c6096eb4a07b3 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Sun, 29 Jan 2023 16:20:54 +0100 Subject: [PATCH 020/401] build: github actions - add docker build (#191) --- .github/workflows/release.yml | 36 +++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7a2d17ac..87ba52d5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -47,3 +47,39 @@ jobs: with: files: | .tarballs/* + docker: + name: Push Docker image to Docker Hub + runs-on: ubuntu-latest + needs: build + steps: + - name: Set up Go 1.x + uses: actions/setup-go@v3 + with: + go-version: ^1.18 + + - name: Check out the repo + uses: actions/checkout@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Log in to Docker Hub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_TOKEN }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v4 + with: + images: burningalchemist/sql_exporter + + - name: Build and push Docker image + uses: docker/build-push-action@v3 + with: + context: . + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + provenance: false From 4e16868da97096403c8a659f5ca0724203423250 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Sun, 29 Jan 2023 16:49:22 +0100 Subject: [PATCH 021/401] build: adjust docker tag inference (#193) --- .github/workflows/release.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 87ba52d5..4b01641a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -74,6 +74,9 @@ jobs: uses: docker/metadata-action@v4 with: images: burningalchemist/sql_exporter + tags: | + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} - name: Build and push Docker image uses: docker/build-push-action@v3 From a522dd8ca9868ca5fa79cb7ebd5c3d3577ffac28 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Sun, 29 Jan 2023 16:23:22 +0100 Subject: [PATCH 022/401] Bump up version to 0.9.3 (#192) --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 2003b639..965065db 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.9.2 +0.9.3 From bc8a374b241146004ff31fde4f7cce3f1ebd19d3 Mon Sep 17 00:00:00 2001 From: Hugo Hromic Date: Tue, 31 Jan 2023 09:47:12 +0000 Subject: [PATCH 023/401] feat: add globbing support to collector refs in config (#194) * feat: add globbing support to collector refs in config * chore: update README and example config about globbing support --- README.md | 7 ++++++- config/config.go | 19 ++++++++++++++----- examples/sql_exporter.yml | 4 +++- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 3abde153..74e58346 100644 --- a/README.md +++ b/README.md @@ -137,13 +137,18 @@ target: data_source_name: 'sqlserver://prom_user:prom_password@dbserver1.example.com:1433' # Collectors (referenced by name) to execute on the target. - collectors: [pricing_data_freshness] + # Glob patterns are supported (see for syntax). + collectors: [pricing_data_freshness, pricing_*] # Collector definition files. +# Glob patterns are supported (see for syntax). collector_files: - "*.collector.yml" ``` +**NOTE:** The `collectors` and `collector_files` configurations support [Glob pattern matching](https://pkg.go.dev/path/filepath#Match). +To match names with literal pattern terms in them, e.g. `collector_*1*`, these must be escaped: `collector_\*1\*`. + ### Collectors Collectors may be defined inline, in the exporter configuration file, under `collectors`, or they may be defined in diff --git a/config/config.go b/config/config.go index 30e0a093..31eb4304 100644 --- a/config/config.go +++ b/config/config.go @@ -558,13 +558,22 @@ func checkCollectorRefs(collectorRefs []string, ctx string) error { func resolveCollectorRefs( collectorRefs []string, collectors map[string]*CollectorConfig, ctx string, ) ([]*CollectorConfig, error) { - resolved := make([]*CollectorConfig, 0, len(collectorRefs)) + found := make(map[*CollectorConfig]bool) for _, cref := range collectorRefs { - c, found := collectors[cref] - if !found { - return nil, fmt.Errorf("unknown collector %q referenced in %s", cref, ctx) + for k, c := range collectors { + matched, err := filepath.Match(cref, k) + if err != nil { + return nil, fmt.Errorf("bad collector %q referenced in %s: %w", cref, ctx, err) + } + if !matched { + return nil, fmt.Errorf("unknown collector %q referenced in %s", cref, ctx) + } + found[c] = true } - resolved = append(resolved, c) + } + resolved := make([]*CollectorConfig, 0, len(found)) + for k := range found { + resolved = append(resolved, k) } return resolved, nil } diff --git a/examples/sql_exporter.yml b/examples/sql_exporter.yml index 1595a4bc..9fc34f99 100644 --- a/examples/sql_exporter.yml +++ b/examples/sql_exporter.yml @@ -21,8 +21,10 @@ target: data_source_name: 'sqlserver://prom_user:prom_password@dbserver1.example.com:1433' # Collectors (referenced by name) to execute on the target. - collectors: [mssql_standard] + # Glob patterns are supported (see for syntax). + collectors: [mssql_*] # Collector files specifies a list of globs. One collector definition is read from each matching file. +# Glob patterns are supported (see for syntax). collector_files: - "*.collector.yml" From 8c3b2e3dff3c8e3c9f41a74b5d5e68342728026a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 18 Feb 2023 10:22:29 +0100 Subject: [PATCH 024/401] deps: bump golang.org/x/net from 0.5.0 to 0.7.0 (#196) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.5.0 to 0.7.0. - [Release notes](https://github.com/golang/net/releases) - [Commits](https://github.com/golang/net/compare/v0.5.0...v0.7.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 8 ++++---- go.sum | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index f83bff27..788a53a8 100644 --- a/go.mod +++ b/go.mod @@ -88,12 +88,12 @@ require ( github.com/prometheus/procfs v0.8.0 // indirect github.com/sirupsen/logrus v1.9.0 // indirect golang.org/x/crypto v0.0.0-20221012134737-56aed061732a // indirect - golang.org/x/net v0.5.0 // indirect + golang.org/x/net v0.7.0 // indirect golang.org/x/oauth2 v0.3.0 // indirect golang.org/x/sync v0.1.0 // indirect - golang.org/x/sys v0.4.0 // indirect - golang.org/x/term v0.4.0 // indirect - golang.org/x/text v0.6.0 // indirect + golang.org/x/sys v0.5.0 // indirect + golang.org/x/term v0.5.0 // indirect + golang.org/x/text v0.7.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect google.golang.org/appengine v1.6.7 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/go.sum b/go.sum index ff38ee5d..e459143b 100644 --- a/go.sum +++ b/go.sum @@ -451,8 +451,8 @@ golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.5.0 h1:GyT4nK/YDHSqa1c4753ouYCDajOYKTja9Xb/OHtgvSw= -golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= +golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= +golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.3.0 h1:6l90koy8/LaBLmLu8jpHeHexzMwEita0zFfYlggy2F8= @@ -493,13 +493,13 @@ golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220224120231-95c6836cb0e7/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.4.0 h1:Zr2JFtRQNX3BCZ8YtxRE9hNJYC8J6I1MVbMg6owUp18= -golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.4.0 h1:O7UWfv5+A2qiuulQk30kVinPoMtoIPeVaKLEgLpVkvg= -golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= +golang.org/x/term v0.5.0 h1:n2a8QNdAb0sZNpU9R1ALUXBbY+w51fCQDN+7EdxNBsY= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -507,8 +507,8 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.6.0 h1:3XmdazWV+ubf7QgHSTWeykHOci5oeekaGJBLkrkaw4k= -golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= From 0aa57ba323c307f6403afb61c3c73d76f8bc82dd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 26 Feb 2023 23:42:23 +0100 Subject: [PATCH 025/401] deps: bump github.com/jackc/pgx/v4 from 4.17.2 to 4.18.0 (#198) --- go.mod | 12 ++++++------ go.sum | 38 ++++++++++++++++++++++++-------------- 2 files changed, 30 insertions(+), 20 deletions(-) diff --git a/go.mod b/go.mod index 788a53a8..352c9b30 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.18 require ( github.com/ClickHouse/clickhouse-go v1.5.4 github.com/go-sql-driver/mysql v1.7.0 - github.com/jackc/pgx/v4 v4.17.2 + github.com/jackc/pgx/v4 v4.18.0 github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.7 github.com/microsoft/go-mssqldb v0.20.0 @@ -66,12 +66,12 @@ require ( github.com/google/uuid v1.3.0 // indirect github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect github.com/jackc/chunkreader/v2 v2.0.1 // indirect - github.com/jackc/pgconn v1.13.0 // indirect + github.com/jackc/pgconn v1.14.0 // indirect github.com/jackc/pgio v1.0.0 // indirect github.com/jackc/pgpassfile v1.0.0 // indirect - github.com/jackc/pgproto3/v2 v2.3.1 // indirect - github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b // indirect - github.com/jackc/pgtype v1.12.0 // indirect + github.com/jackc/pgproto3/v2 v2.3.2 // indirect + github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect + github.com/jackc/pgtype v1.14.0 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 // indirect github.com/jpillora/backoff v1.0.0 // indirect @@ -87,7 +87,7 @@ require ( github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/procfs v0.8.0 // indirect github.com/sirupsen/logrus v1.9.0 // indirect - golang.org/x/crypto v0.0.0-20221012134737-56aed061732a // indirect + golang.org/x/crypto v0.6.0 // indirect golang.org/x/net v0.7.0 // indirect golang.org/x/oauth2 v0.3.0 // indirect golang.org/x/sync v0.1.0 // indirect diff --git a/go.sum b/go.sum index e459143b..5b85367b 100644 --- a/go.sum +++ b/go.sum @@ -213,8 +213,8 @@ github.com/jackc/pgconn v0.0.0-20190831204454-2fabfa3c18b7/go.mod h1:ZJKsE/KZfsU github.com/jackc/pgconn v1.8.0/go.mod h1:1C2Pb36bGIP9QHGBYCjnyhqu7Rv3sGshaQUvmfGIB/o= github.com/jackc/pgconn v1.9.0/go.mod h1:YctiPyvzfU11JFxoXokUOOKQXQmDMoJL9vJzHH8/2JY= github.com/jackc/pgconn v1.9.1-0.20210724152538-d89c8390a530/go.mod h1:4z2w8XhRbP1hYxkpTuBjTS3ne3J48K83+u0zoyvg2pI= -github.com/jackc/pgconn v1.13.0 h1:3L1XMNV2Zvca/8BYhzcRFS70Lr0WlDg16Di6SFGAbys= -github.com/jackc/pgconn v1.13.0/go.mod h1:AnowpAqO4CMIIJNZl2VJp+KrkAZciAkhEl0W0JIobpI= +github.com/jackc/pgconn v1.14.0 h1:vrbA9Ud87g6JdFWkHTJXppVce58qPIdP7N8y0Ml/A7Q= +github.com/jackc/pgconn v1.14.0/go.mod h1:9mBNlny0UvkgJdCDvdVHYSjI+8tD2rnKK69Wz8ti++E= github.com/jackc/pgio v1.0.0 h1:g12B9UwVnzGhueNavwioyEEpAmqMe1E/BN9ES+8ovkE= github.com/jackc/pgio v1.0.0/go.mod h1:oP+2QK2wFfUWgr+gxjoBH9KGBb31Eio69xUb0w5bYf8= github.com/jackc/pgmock v0.0.0-20190831213851-13a1b77aafa2/go.mod h1:fGZlG77KXmcq05nJLRkk0+p82V8B8Dw8KN2/V9c/OAE= @@ -230,22 +230,23 @@ github.com/jackc/pgproto3/v2 v2.0.0-rc3/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvW github.com/jackc/pgproto3/v2 v2.0.0-rc3.0.20190831210041-4c03ce451f29/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvWKnT95C46ckYeM= github.com/jackc/pgproto3/v2 v2.0.6/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= github.com/jackc/pgproto3/v2 v2.1.1/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= -github.com/jackc/pgproto3/v2 v2.3.1 h1:nwj7qwf0S+Q7ISFfBndqeLwSwxs+4DPsbRFjECT1Y4Y= -github.com/jackc/pgproto3/v2 v2.3.1/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= -github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b h1:C8S2+VttkHFdOOCXJe+YGfa4vHYwlt4Zx+IVXQ97jYg= +github.com/jackc/pgproto3/v2 v2.3.2 h1:7eY55bdBeCz1F2fTzSz69QC+pG46jYq9/jtSPiJ5nn0= +github.com/jackc/pgproto3/v2 v2.3.2/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b/go.mod h1:vsD4gTJCa9TptPL8sPkXrLZ+hDuNrZCnj29CQpr4X1E= +github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/Y25WS6cokEszi5g+S0QxI/d45PkRi7Nk= +github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= github.com/jackc/pgtype v0.0.0-20190421001408-4ed0de4755e0/go.mod h1:hdSHsc1V01CGwFsrv11mJRHWJ6aifDLfdV3aVjFF0zg= github.com/jackc/pgtype v0.0.0-20190824184912-ab885b375b90/go.mod h1:KcahbBH1nCMSo2DXpzsoWOAfFkdEtEJpPbVLq8eE+mc= github.com/jackc/pgtype v0.0.0-20190828014616-a8802b16cc59/go.mod h1:MWlu30kVJrUS8lot6TQqcg7mtthZ9T0EoIBFiJcmcyw= github.com/jackc/pgtype v1.8.1-0.20210724151600-32e20a603178/go.mod h1:C516IlIV9NKqfsMCXTdChteoXmwgUceqaLfjg2e3NlM= -github.com/jackc/pgtype v1.12.0 h1:Dlq8Qvcch7kiehm8wPGIW0W3KsCCHJnRacKW0UM8n5w= -github.com/jackc/pgtype v1.12.0/go.mod h1:LUMuVrfsFfdKGLw+AFFVv6KtHOFMwRgDDzBt76IqCA4= +github.com/jackc/pgtype v1.14.0 h1:y+xUdabmyMkJLyApYuPj38mW+aAIqCe5uuBB51rH3Vw= +github.com/jackc/pgtype v1.14.0/go.mod h1:LUMuVrfsFfdKGLw+AFFVv6KtHOFMwRgDDzBt76IqCA4= github.com/jackc/pgx/v4 v4.0.0-20190420224344-cc3461e65d96/go.mod h1:mdxmSJJuR08CZQyj1PVQBHy9XOp5p8/SHH6a0psbY9Y= github.com/jackc/pgx/v4 v4.0.0-20190421002000-1b8f0016e912/go.mod h1:no/Y67Jkk/9WuGR0JG/JseM9irFbnEPbuWV2EELPNuM= github.com/jackc/pgx/v4 v4.0.0-pre1.0.20190824185557-6972a5742186/go.mod h1:X+GQnOEnf1dqHGpw7JmHqHc1NxDoalibchSk9/RWuDc= github.com/jackc/pgx/v4 v4.12.1-0.20210724153913-640aa07df17c/go.mod h1:1QD0+tgSXP7iUjYm9C1NxKhny7lq6ee99u/z+IHFcgs= -github.com/jackc/pgx/v4 v4.17.2 h1:0Ut0rpeKwvIVbMQ1KbMBU4h6wxehBI535LK6Flheh8E= -github.com/jackc/pgx/v4 v4.17.2/go.mod h1:lcxIZN44yMIrWI78a5CpucdD14hX0SBDbNRvjDBItsw= +github.com/jackc/pgx/v4 v4.18.0 h1:Ltaa1ePvc7msFGALnCrqKJVEByu/qYh5jJBYcDtAno4= +github.com/jackc/pgx/v4 v4.18.0/go.mod h1:FydWkUyadDmdNH/mHnGob881GawxeEm7TcMCzkb+qQE= github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= @@ -359,8 +360,9 @@ github.com/snowflakedb/gosnowflake v1.6.17/go.mod h1:BhNDWNSUY+t4T8GBuOg3ckWC4v5 github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= -github.com/stretchr/objx v0.4.0 h1:M2gUjqZET1qApGOWNSnZ49BAIMX4F/1plDv3+l31EJ4= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= @@ -368,13 +370,15 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5 github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/vertica/vertica-sql-go v1.3.1 h1:qjkJzkFmLG+z2koRC6inT+yFr23TyBkNXUP4vf92rSQ= github.com/vertica/vertica-sql-go v1.3.1/go.mod h1:jnn2GFuv+O2Jcjktb7zyc4Utlbu9YVqpHH/lx63+1M4= github.com/xo/dburl v0.13.0 h1:kq+oD1j/m8DnJ/p6G/LQXRosVchs8q5/AszEUKkvYfo= github.com/xo/dburl v0.13.0/go.mod h1:K6rSPgbVqP3ZFT0RHkdg/M3M5KhLeV2MaS/ZqaLd1kA= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= @@ -400,11 +404,11 @@ golang.org/x/crypto v0.0.0-20201112155050-0c6587e931a9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20201203163018-be400aefbc4c/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220511200225-c6db032c6c88/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20221012134737-56aed061732a h1:NmSIgad6KjE6VvHciPZuNRTKxGhlPfD6OA87W/PLkqg= -golang.org/x/crypto v0.0.0-20221012134737-56aed061732a/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.6.0 h1:qfktjS5LUO+fFKeJXZ+ikTRijMmljikvG68fpMMruSc= +golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -431,6 +435,7 @@ golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKG 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/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= 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= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -451,6 +456,8 @@ golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -462,6 +469,7 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -493,6 +501,7 @@ golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220224120231-95c6836cb0e7/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= @@ -526,6 +535,7 @@ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtn 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.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= From 56fbd01ab8f7c42c8985713fb03d60422bb13cae Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 26 Feb 2023 23:43:42 +0100 Subject: [PATCH 026/401] deps: bump github.com/prometheus/common from 0.39.0 to 0.40.0 (#199) --- go.mod | 5 ++++- go.sum | 12 ++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 352c9b30..57ba2874 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/microsoft/go-mssqldb v0.20.0 github.com/prometheus/client_golang v1.14.0 github.com/prometheus/client_model v0.3.0 - github.com/prometheus/common v0.39.0 + github.com/prometheus/common v0.40.0 github.com/prometheus/exporter-toolkit v0.8.2 github.com/snowflakedb/gosnowflake v1.6.17 github.com/vertica/vertica-sql-go v1.3.1 @@ -75,10 +75,13 @@ require ( github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 // indirect github.com/jpillora/backoff v1.0.0 // indirect + github.com/json-iterator/go v1.1.12 // indirect github.com/klauspost/compress v1.15.11 // indirect github.com/kylelemons/godebug v1.1.0 // indirect github.com/mattn/go-ieproxy v0.0.1 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect + github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect + github.com/modern-go/reflect2 v1.0.2 // indirect github.com/mtibben/percent v0.2.1 // indirect github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect github.com/pierrec/lz4/v4 v4.1.16 // indirect diff --git a/go.sum b/go.sum index 5b85367b..6c58bf80 100644 --- a/go.sum +++ b/go.sum @@ -191,6 +191,7 @@ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -267,6 +268,8 @@ github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 h1:rp+c0RAYOWj8 github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901/go.mod h1:Z86h9688Y0wesXCyonoVr47MasHilkuLMqGhRZ4Hpak= github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= +github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= github.com/kardianos/minwinsvc v1.0.2 h1:JmZKFJQrmTGa/WiW+vkJXKmfzdjabuEW4Tirj5lLdR0= @@ -304,6 +307,11 @@ github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zk github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/microsoft/go-mssqldb v0.20.0 h1:jAfvs5TIR311fEuNgohFzMtUO0IcCHyI1kWAVws4ES8= github.com/microsoft/go-mssqldb v0.20.0/go.mod h1:ukJCBnnzLzpVF0qYRT+eg1e+eSwjeQ7IvenUv8QPook= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8= github.com/montanaflynn/stats v0.6.6/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs= @@ -332,8 +340,8 @@ github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQg github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= -github.com/prometheus/common v0.39.0 h1:oOyhkDq05hPZKItWVBkJ6g6AtGxi+fy7F4JvUV8uhsI= -github.com/prometheus/common v0.39.0/go.mod h1:6XBZ7lYdLCbkAVhwRsWTZn+IN5AB9F/NXd5w0BbEX0Y= +github.com/prometheus/common v0.40.0 h1:Afz7EVRqGg2Mqqf4JuF9vdvp1pi220m55Pi9T2JnO4Q= +github.com/prometheus/common v0.40.0/go.mod h1:L65ZJPSmfn/UBWLQIHV7dBrKFidB/wPlF1y5TlSt9OE= github.com/prometheus/exporter-toolkit v0.8.2 h1:sbJAfBXQFkG6sUkbwBun8MNdzW9+wd5YfPYofbmj0YM= github.com/prometheus/exporter-toolkit v0.8.2/go.mod h1:00shzmJL7KxcsabLWcONwpyNEuWhREOnFqZW7vadFS0= github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= From ad0bcdded530d9ec3c2a028223f611fb8311b6fb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 26 Feb 2023 23:49:30 +0100 Subject: [PATCH 027/401] deps: bump github.com/snowflakedb/gosnowflake from 1.6.17 to 1.6.18 (#200) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 57ba2874..c8fb4249 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,7 @@ require ( github.com/prometheus/client_model v0.3.0 github.com/prometheus/common v0.40.0 github.com/prometheus/exporter-toolkit v0.8.2 - github.com/snowflakedb/gosnowflake v1.6.17 + github.com/snowflakedb/gosnowflake v1.6.18 github.com/vertica/vertica-sql-go v1.3.1 github.com/xo/dburl v0.13.0 google.golang.org/protobuf v1.28.1 diff --git a/go.sum b/go.sum index 6c58bf80..a0167919 100644 --- a/go.sum +++ b/go.sum @@ -363,8 +363,8 @@ github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMB github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/snowflakedb/gosnowflake v1.6.17 h1:npFUsPPUoHX1JERa1zQmHFzlt7D2JEieEhshOl2R0F0= -github.com/snowflakedb/gosnowflake v1.6.17/go.mod h1:BhNDWNSUY+t4T8GBuOg3ckWC4v5hhGlLovqGcF8Rkac= +github.com/snowflakedb/gosnowflake v1.6.18 h1:mm4KYvp3LWGHIuACwX/tHv9qDs2NdLDXuK0Rep+vfJc= +github.com/snowflakedb/gosnowflake v1.6.18/go.mod h1:BhNDWNSUY+t4T8GBuOg3ckWC4v5hhGlLovqGcF8Rkac= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= From 14d473bf33ac49070c3e478454fff501d1722701 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Mar 2023 00:20:22 +0100 Subject: [PATCH 028/401] deps: bump github.com/jackc/pgx/v4 from 4.18.0 to 4.18.1 (#201) Bumps [github.com/jackc/pgx/v4](https://github.com/jackc/pgx) from 4.18.0 to 4.18.1. - [Release notes](https://github.com/jackc/pgx/releases) - [Changelog](https://github.com/jackc/pgx/blob/v4.18.1/CHANGELOG.md) - [Commits](https://github.com/jackc/pgx/compare/v4.18.0...v4.18.1) --- updated-dependencies: - dependency-name: github.com/jackc/pgx/v4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index c8fb4249..52ccdda6 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.18 require ( github.com/ClickHouse/clickhouse-go v1.5.4 github.com/go-sql-driver/mysql v1.7.0 - github.com/jackc/pgx/v4 v4.18.0 + github.com/jackc/pgx/v4 v4.18.1 github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.7 github.com/microsoft/go-mssqldb v0.20.0 diff --git a/go.sum b/go.sum index a0167919..98e4de99 100644 --- a/go.sum +++ b/go.sum @@ -246,8 +246,8 @@ github.com/jackc/pgx/v4 v4.0.0-20190420224344-cc3461e65d96/go.mod h1:mdxmSJJuR08 github.com/jackc/pgx/v4 v4.0.0-20190421002000-1b8f0016e912/go.mod h1:no/Y67Jkk/9WuGR0JG/JseM9irFbnEPbuWV2EELPNuM= github.com/jackc/pgx/v4 v4.0.0-pre1.0.20190824185557-6972a5742186/go.mod h1:X+GQnOEnf1dqHGpw7JmHqHc1NxDoalibchSk9/RWuDc= github.com/jackc/pgx/v4 v4.12.1-0.20210724153913-640aa07df17c/go.mod h1:1QD0+tgSXP7iUjYm9C1NxKhny7lq6ee99u/z+IHFcgs= -github.com/jackc/pgx/v4 v4.18.0 h1:Ltaa1ePvc7msFGALnCrqKJVEByu/qYh5jJBYcDtAno4= -github.com/jackc/pgx/v4 v4.18.0/go.mod h1:FydWkUyadDmdNH/mHnGob881GawxeEm7TcMCzkb+qQE= +github.com/jackc/pgx/v4 v4.18.1 h1:YP7G1KABtKpB5IHrO9vYwSrCOhs7p3uqhvhhQBptya0= +github.com/jackc/pgx/v4 v4.18.1/go.mod h1:FydWkUyadDmdNH/mHnGob881GawxeEm7TcMCzkb+qQE= github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= From 3e9475ff001b3ab1c246ac97892e1f9cd02bd364 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Wed, 1 Mar 2023 00:35:11 +0100 Subject: [PATCH 029/401] Bump up version to 0.10.0 (#202) --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 965065db..78bc1abd 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.9.3 +0.10.0 From dbe888fa8fda330f18732387a99a99057d0b8e06 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Mar 2023 22:12:12 +0100 Subject: [PATCH 030/401] deps: bump github.com/prometheus/common from 0.40.0 to 0.41.0 (#203) Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.40.0 to 0.41.0. - [Release notes](https://github.com/prometheus/common/releases) - [Commits](https://github.com/prometheus/common/compare/v0.40.0...v0.41.0) --- updated-dependencies: - dependency-name: github.com/prometheus/common dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 7 ++----- go.sum | 16 ++++------------ 2 files changed, 6 insertions(+), 17 deletions(-) diff --git a/go.mod b/go.mod index 52ccdda6..bdfa9392 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/microsoft/go-mssqldb v0.20.0 github.com/prometheus/client_golang v1.14.0 github.com/prometheus/client_model v0.3.0 - github.com/prometheus/common v0.40.0 + github.com/prometheus/common v0.41.0 github.com/prometheus/exporter-toolkit v0.8.2 github.com/snowflakedb/gosnowflake v1.6.18 github.com/vertica/vertica-sql-go v1.3.1 @@ -75,13 +75,10 @@ require ( github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 // indirect github.com/jpillora/backoff v1.0.0 // indirect - github.com/json-iterator/go v1.1.12 // indirect github.com/klauspost/compress v1.15.11 // indirect github.com/kylelemons/godebug v1.1.0 // indirect github.com/mattn/go-ieproxy v0.0.1 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect - github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect - github.com/modern-go/reflect2 v1.0.2 // indirect github.com/mtibben/percent v0.2.1 // indirect github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect github.com/pierrec/lz4/v4 v4.1.16 // indirect @@ -92,7 +89,7 @@ require ( github.com/sirupsen/logrus v1.9.0 // indirect golang.org/x/crypto v0.6.0 // indirect golang.org/x/net v0.7.0 // indirect - golang.org/x/oauth2 v0.3.0 // indirect + golang.org/x/oauth2 v0.5.0 // indirect golang.org/x/sync v0.1.0 // indirect golang.org/x/sys v0.5.0 // indirect golang.org/x/term v0.5.0 // indirect diff --git a/go.sum b/go.sum index 98e4de99..58cf9d09 100644 --- a/go.sum +++ b/go.sum @@ -191,7 +191,6 @@ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -268,8 +267,6 @@ github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 h1:rp+c0RAYOWj8 github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901/go.mod h1:Z86h9688Y0wesXCyonoVr47MasHilkuLMqGhRZ4Hpak= github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= -github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= -github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= github.com/kardianos/minwinsvc v1.0.2 h1:JmZKFJQrmTGa/WiW+vkJXKmfzdjabuEW4Tirj5lLdR0= @@ -307,11 +304,6 @@ github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zk github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/microsoft/go-mssqldb v0.20.0 h1:jAfvs5TIR311fEuNgohFzMtUO0IcCHyI1kWAVws4ES8= github.com/microsoft/go-mssqldb v0.20.0/go.mod h1:ukJCBnnzLzpVF0qYRT+eg1e+eSwjeQ7IvenUv8QPook= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= -github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8= github.com/montanaflynn/stats v0.6.6/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs= @@ -340,8 +332,8 @@ github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQg github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= -github.com/prometheus/common v0.40.0 h1:Afz7EVRqGg2Mqqf4JuF9vdvp1pi220m55Pi9T2JnO4Q= -github.com/prometheus/common v0.40.0/go.mod h1:L65ZJPSmfn/UBWLQIHV7dBrKFidB/wPlF1y5TlSt9OE= +github.com/prometheus/common v0.41.0 h1:npo01n6vUlRViIj5fgwiK8vlNIh8bnoxqh3gypKsyAw= +github.com/prometheus/common v0.41.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc= github.com/prometheus/exporter-toolkit v0.8.2 h1:sbJAfBXQFkG6sUkbwBun8MNdzW9+wd5YfPYofbmj0YM= github.com/prometheus/exporter-toolkit v0.8.2/go.mod h1:00shzmJL7KxcsabLWcONwpyNEuWhREOnFqZW7vadFS0= github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= @@ -470,8 +462,8 @@ golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.3.0 h1:6l90koy8/LaBLmLu8jpHeHexzMwEita0zFfYlggy2F8= -golang.org/x/oauth2 v0.3.0/go.mod h1:rQrIauxkUhJ6CuwEXwymO2/eh4xz2ZWF1nBkcxS+tGk= +golang.org/x/oauth2 v0.5.0 h1:HuArIo48skDwlrvM3sEdHXElYslAMsf3KwRkkW4MC4s= +golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= From 23ad04f00ac89ef54a6b0db7b657b254ab53edbf Mon Sep 17 00:00:00 2001 From: Kirill Lyubchenko Date: Thu, 23 Mar 2023 02:19:32 -0700 Subject: [PATCH 031/401] fix: don't fail immediately in resolveCollectorRefs nested loop (#208) --- config/config.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/config/config.go b/config/config.go index 31eb4304..4b1d28da 100644 --- a/config/config.go +++ b/config/config.go @@ -566,7 +566,7 @@ func resolveCollectorRefs( return nil, fmt.Errorf("bad collector %q referenced in %s: %w", cref, ctx, err) } if !matched { - return nil, fmt.Errorf("unknown collector %q referenced in %s", cref, ctx) + continue } found[c] = true } @@ -575,6 +575,9 @@ func resolveCollectorRefs( for k := range found { resolved = append(resolved, k) } + if len(resolved) == 0 { + return nil, fmt.Errorf("no matching collectors referenced in %s", ctx) + } return resolved, nil } From c53415c41413b61cc2c8c77fa6e4dafe5a28c9f9 Mon Sep 17 00:00:00 2001 From: Corporte Gadfly Date: Sun, 2 Apr 2023 02:06:44 -0400 Subject: [PATCH 032/401] add examples and grafana dashboard for Azure SQL MI (#209) --- .../grafana-dashboard/azure-sql-mi.json | 2605 +++++++++++++++++ .../grafana-dashboard/cpu-and-queuing.png | Bin 0 -> 171384 bytes .../grafana-dashboard/log-activity.png | Bin 0 -> 208765 bytes .../azure-sql-mi/grafana-dashboard/memory.png | Bin 0 -> 519820 bytes .../grafana-dashboard/overview.png | Bin 0 -> 200641 bytes .../grafana-dashboard/sql-activity.png | Bin 0 -> 220865 bytes .../grafana-dashboard/waits-and-queues.png | Bin 0 -> 583223 bytes .../azure-sql-mi/mssql_mi_clerk.collector.yml | 36 + .../azure-sql-mi/mssql_mi_perf.collector.yml | 226 ++ .../mssql_mi_properties.collector.yml | 74 + .../azure-sql-mi/mssql_mi_size.collector.yml | 49 + .../azure-sql-mi/mssql_mi_wait.collector.yml | 153 + examples/azure-sql-mi/sql_exporter.yml | 28 + 13 files changed, 3171 insertions(+) create mode 100644 examples/azure-sql-mi/grafana-dashboard/azure-sql-mi.json create mode 100644 examples/azure-sql-mi/grafana-dashboard/cpu-and-queuing.png create mode 100644 examples/azure-sql-mi/grafana-dashboard/log-activity.png create mode 100644 examples/azure-sql-mi/grafana-dashboard/memory.png create mode 100644 examples/azure-sql-mi/grafana-dashboard/overview.png create mode 100644 examples/azure-sql-mi/grafana-dashboard/sql-activity.png create mode 100644 examples/azure-sql-mi/grafana-dashboard/waits-and-queues.png create mode 100644 examples/azure-sql-mi/mssql_mi_clerk.collector.yml create mode 100644 examples/azure-sql-mi/mssql_mi_perf.collector.yml create mode 100644 examples/azure-sql-mi/mssql_mi_properties.collector.yml create mode 100644 examples/azure-sql-mi/mssql_mi_size.collector.yml create mode 100644 examples/azure-sql-mi/mssql_mi_wait.collector.yml create mode 100644 examples/azure-sql-mi/sql_exporter.yml diff --git a/examples/azure-sql-mi/grafana-dashboard/azure-sql-mi.json b/examples/azure-sql-mi/grafana-dashboard/azure-sql-mi.json new file mode 100644 index 00000000..1d4d74c7 --- /dev/null +++ b/examples/azure-sql-mi/grafana-dashboard/azure-sql-mi.json @@ -0,0 +1,2605 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "grafana", + "uid": "-- Grafana --" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "target": { + "limit": 100, + "matchAny": false, + "tags": [], + "type": "dashboard" + }, + "type": "dashboard" + } + ] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": 54, + "links": [], + "liveNow": false, + "panels": [ + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 4, + "panels": [], + "title": "Managed Instance Overview", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 2, + "x": 0, + "y": 1 + }, + "id": 2, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "9.4.7", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "editorMode": "code", + "expr": "mssqlmi_cpu_count{instance=~\"${instance}\"}", + "legendFormat": "__auto", + "range": true, + "refId": "A" + } + ], + "title": "Virtual Cores", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 3, + "x": 2, + "y": 1 + }, + "id": 19, + "options": { + "colorMode": "background", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": { + "valueSize": 48 + }, + "textMode": "auto" + }, + "pluginVersion": "9.4.7", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "editorMode": "code", + "expr": "mssqlmi_server_memory_bytes{instance=~\"${instance}\"}", + "format": "table", + "interval": "", + "legendFormat": "__auto", + "range": true, + "refId": "A" + } + ], + "title": "Server Memory", + "transformations": [], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 2, + "x": 5, + "y": 1 + }, + "id": 7, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "name" + }, + "pluginVersion": "9.4.7", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "editorMode": "code", + "exemplar": false, + "expr": "mssqlmi_total_storage_bytes{instance=~\"${instance}\"}", + "instant": true, + "legendFormat": "__auto", + "range": false, + "refId": "A" + } + ], + "title": "Server Tier", + "transformations": [ + { + "id": "labelsToFields", + "options": { + "keepLabels": [ + "sku" + ], + "mode": "columns", + "valueLabel": "sku" + } + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 2, + "x": 7, + "y": 1 + }, + "id": 8, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "name" + }, + "pluginVersion": "9.4.7", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "editorMode": "code", + "exemplar": false, + "expr": "mssqlmi_total_storage_bytes{instance=~\"${instance}\"}", + "instant": true, + "legendFormat": "__auto", + "range": false, + "refId": "A" + } + ], + "title": "Service Level Objective", + "transformations": [ + { + "id": "labelsToFields", + "options": { + "keepLabels": [ + "hardware_type" + ], + "mode": "columns", + "valueLabel": "hardware_type" + } + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 3, + "x": 9, + "y": 1 + }, + "id": 10, + "options": { + "colorMode": "background", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": { + "valueSize": 48 + }, + "textMode": "auto" + }, + "pluginVersion": "9.4.7", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "editorMode": "code", + "expr": "mssqlmi_total_storage_bytes{instance=~\"${instance}\"}", + "format": "table", + "interval": "", + "legendFormat": "__auto", + "range": true, + "refId": "A" + } + ], + "title": "Total Storage", + "transformations": [], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "red", + "value": null + }, + { + "color": "#EAB839", + "value": 150000000 + }, + { + "color": "green", + "value": 200000000 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 3, + "x": 12, + "y": 1 + }, + "id": 18, + "options": { + "colorMode": "background", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": { + "valueSize": 48 + }, + "textMode": "auto" + }, + "pluginVersion": "9.4.7", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "editorMode": "code", + "expr": "mssqlmi_available_storage_bytes{instance=~\"${instance}\"}", + "format": "table", + "interval": "", + "legendFormat": "__auto", + "range": true, + "refId": "A" + } + ], + "title": "Available Storage", + "transformations": [], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 3, + "x": 15, + "y": 1 + }, + "id": 17, + "options": { + "colorMode": "background", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": { + "valueSize": 48 + }, + "textMode": "auto" + }, + "pluginVersion": "9.4.7", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "editorMode": "code", + "expr": "mssqlmi_db_online{instance=~\"${instance}\"}", + "format": "table", + "interval": "", + "legendFormat": "__auto", + "range": true, + "refId": "A" + } + ], + "title": "# Databases", + "transformations": [], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 1, + "min": 0, + "thresholds": { + "mode": "percentage", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "#EAB839", + "value": 70 + }, + { + "color": "red", + "value": 90 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 7, + "x": 0, + "y": 4 + }, + "id": 52, + "options": { + "displayMode": "lcd", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^Value$/", + "values": false + }, + "showUnfilled": true + }, + "pluginVersion": "9.4.7", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "editorMode": "code", + "exemplar": false, + "expr": "(mssqlmi_total_storage_bytes{instance=~\"${instance}\"} - ignoring(instance,hardware_type,sku) mssqlmi_available_storage_bytes{instance=~\"${instance}\"}) / ignoring(instance,hardware_type,sku) mssqlmi_total_storage_bytes{instance=~\"${instance}\"}", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "__auto", + "range": false, + "refId": "A" + } + ], + "title": "Storage Usage %", + "transformations": [], + "type": "bargauge" + }, + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 7 + }, + "id": 54, + "options": { + "legend": { + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true, + "sortBy": "Last *", + "sortDesc": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "editorMode": "code", + "expr": "mssqlmi_database_size_bytes{instance=~\"${instance}\"}", + "interval": "", + "legendFormat": "{{file_type}} {{database}}", + "range": true, + "refId": "A" + } + ], + "title": "Database Sizes", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 15 + }, + "id": 13, + "panels": [], + "title": "SQL Activity", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 16 + }, + "id": 15, + "options": { + "legend": { + "calcs": [ + "lastNotNull", + "mean" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "editorMode": "code", + "expr": "rate(mssqlmi_perf_counter{counter=\"Batch Requests/sec\",instance=~\"${instance}\"}[$__interval])", + "interval": "", + "legendFormat": "{{counter}}", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "editorMode": "code", + "expr": "rate(mssqlmi_perf_counter{counter=\"SQL Compilations/sec\",instance=~\"${instance}\"}[$__interval])", + "hide": false, + "interval": "", + "legendFormat": "{{counter}}", + "range": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "editorMode": "code", + "expr": "rate(mssqlmi_perf_counter{counter=\"SQL Re-Compilations/sec\",instance=~\"${instance}\"}[$__interval])", + "hide": false, + "interval": "", + "legendFormat": "{{counter}}", + "range": true, + "refId": "C" + } + ], + "title": "Batch Requests/sec", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 16 + }, + "id": 16, + "options": { + "legend": { + "calcs": [ + "lastNotNull", + "mean" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "editorMode": "code", + "expr": "rate(mssqlmi_perf_counter{counter=\"Transactions/sec\",instance=~\"${instance}\"}[$__interval])", + "interval": "", + "legendFormat": "{{db}}", + "range": true, + "refId": "A" + } + ], + "title": "Transactions/sec", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 24 + }, + "id": 21, + "panels": [], + "title": "CPU and Queuing", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percent" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 25 + }, + "id": 23, + "options": { + "legend": { + "calcs": [ + "lastNotNull", + "mean" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "editorMode": "code", + "expr": "sum(mssqlmi_perf_gauge{gauge=\"CPU usage %\", object=~\".*Resource Pool Stats\", instance=~\"${instance}\"})", + "interval": "", + "legendFormat": "CPU usage %", + "range": true, + "refId": "A" + } + ], + "title": "Total %CPU Usage", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percent" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 25 + }, + "id": 24, + "options": { + "legend": { + "calcs": [ + "lastNotNull", + "mean" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true, + "sortBy": "Mean", + "sortDesc": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "editorMode": "code", + "expr": "mssqlmi_perf_gauge{gauge=\"CPU usage %\", object=~\".*Workload Group Stats\", instance=~\"${instance}\"}", + "interval": "", + "legendFormat": "{{db}}", + "range": true, + "refId": "A" + } + ], + "title": "Workload Group - %CPU Usage", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 33 + }, + "id": 26, + "panels": [], + "title": "Waits and Queues", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "s" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 34 + }, + "id": 28, + "options": { + "legend": { + "calcs": [ + "lastNotNull", + "mean" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true, + "sortBy": "Mean", + "sortDesc": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "editorMode": "code", + "expr": "rate(mssqlmi_wait_time_seconds{instance=~\"${instance}\"}[$__rate_interval])", + "legendFormat": "{{wait_type}}", + "range": true, + "refId": "A" + } + ], + "title": "Wait Times by Type", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "s" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 34 + }, + "id": 29, + "options": { + "legend": { + "calcs": [ + "lastNotNull", + "mean" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true, + "sortBy": "Mean", + "sortDesc": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "editorMode": "code", + "expr": "sum by(wait_category) (rate(mssqlmi_wait_time_seconds{instance=~\"${instance}\"}[$__rate_interval]))", + "interval": "", + "legendFormat": "{{wait_category}}", + "range": true, + "refId": "A" + } + ], + "title": "Wait Times by Category", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "s" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 42 + }, + "id": 30, + "options": { + "legend": { + "calcs": [ + "lastNotNull", + "mean" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true, + "sortBy": "Mean", + "sortDesc": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "editorMode": "code", + "expr": "rate(mssqlmi_signal_wait_time_seconds{instance=~\"${instance}\"}[$__rate_interval])", + "legendFormat": "{{wait_type}}", + "range": true, + "refId": "A" + } + ], + "title": "Signal Wait Times by Type", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "s" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 42 + }, + "id": 31, + "options": { + "legend": { + "calcs": [ + "lastNotNull", + "mean" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true, + "sortBy": "Mean", + "sortDesc": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "editorMode": "code", + "expr": "sum by(wait_category) (rate(mssqlmi_signal_wait_time_seconds{instance=~\"${instance}\"}[$__rate_interval]))", + "interval": "", + "legendFormat": "{{wait_category}}", + "range": true, + "refId": "A" + } + ], + "title": "Signal Wait Times by Category", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 50 + }, + "id": 32, + "options": { + "legend": { + "calcs": [ + "lastNotNull", + "mean" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true, + "sortBy": "Mean", + "sortDesc": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "editorMode": "code", + "expr": "rate(mssqlmi_waiting_tasks_count{instance=~\"${instance}\"}[$__rate_interval])", + "legendFormat": "{{wait_type}}", + "range": true, + "refId": "A" + } + ], + "title": "Waiting Tasks by Type", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 50 + }, + "id": 33, + "options": { + "legend": { + "calcs": [ + "lastNotNull", + "mean" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true, + "sortBy": "Mean", + "sortDesc": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "editorMode": "code", + "expr": "sum by(wait_category) (rate(mssqlmi_waiting_tasks_count{instance=~\"${instance}\"}[$__rate_interval]))", + "interval": "", + "legendFormat": "{{wait_category}}", + "range": true, + "refId": "A" + } + ], + "title": "Waiting Tasks by Category", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 58 + }, + "id": 35, + "panels": [], + "title": "Log Activity", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "Bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 59 + }, + "id": 37, + "options": { + "legend": { + "calcs": [ + "lastNotNull", + "mean" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true, + "sortBy": "Mean", + "sortDesc": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "editorMode": "code", + "expr": "rate(mssqlmi_perf_counter{counter=\"Log Bytes Flushed/sec\", instance=~\"${instance}\"}[$__rate_interval])", + "interval": "", + "legendFormat": "{{db}}", + "range": true, + "refId": "A" + } + ], + "title": "Log Bytes Flushed/sec", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 59 + }, + "id": 38, + "options": { + "legend": { + "calcs": [ + "lastNotNull", + "mean" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true, + "sortBy": "Mean", + "sortDesc": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "editorMode": "code", + "expr": "rate(mssqlmi_perf_counter{counter=\"Log Flushes/sec\", instance=~\"${instance}\"}[$__rate_interval])", + "interval": "", + "legendFormat": "{{db}}", + "range": true, + "refId": "A" + } + ], + "title": "Log Flushes/sec", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 67 + }, + "id": 40, + "panels": [], + "title": "Memory", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "deckbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 68 + }, + "id": 42, + "options": { + "legend": { + "calcs": [ + "lastNotNull", + "mean" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "editorMode": "code", + "expr": "mssqlmi_perf_gauge{object=~\".*Memory Manager\", instance=~\"${instance}\"}", + "interval": "", + "legendFormat": "{{gauge}}", + "range": true, + "refId": "A" + } + ], + "title": "Memory Manager", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "deckbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 68 + }, + "id": 44, + "options": { + "legend": { + "calcs": [ + "lastNotNull", + "mean" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true, + "sortBy": "Mean", + "sortDesc": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "editorMode": "code", + "expr": "mssqlmi_clerk_size_kilobytes{instance=~\"${instance}\"}", + "legendFormat": "{{clerk_type}}", + "range": true, + "refId": "A" + } + ], + "title": "Memory Clerks", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 76 + }, + "id": 46, + "options": { + "legend": { + "calcs": [ + "lastNotNull", + "mean" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "editorMode": "code", + "expr": "mssqlmi_perf_gauge{gauge=\"Page life expectancy\", instance=~\"${instance}\"}", + "legendFormat": "{{object}}", + "range": true, + "refId": "A" + } + ], + "title": "Page Life Expectancy", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 76 + }, + "id": 47, + "options": { + "legend": { + "calcs": [ + "lastNotNull", + "mean" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "editorMode": "code", + "expr": "rate(mssqlmi_perf_counter{object=~\".*Buffer Manager\", instance=~\"${instance}\"}[$__rate_interval])", + "interval": "", + "legendFormat": "{{counter}}", + "range": true, + "refId": "A" + } + ], + "title": "Buffer Manager", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 84 + }, + "id": 48, + "options": { + "legend": { + "calcs": [ + "lastNotNull", + "mean" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "editorMode": "code", + "expr": "rate(mssqlmi_perf_counter{object=~\".*Access Methods\", instance=~\"${instance}\"}[$__rate_interval])", + "interval": "", + "legendFormat": "{{counter}}", + "range": true, + "refId": "A" + } + ], + "title": "Access Methods", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 84 + }, + "id": 49, + "options": { + "legend": { + "calcs": [ + "lastNotNull", + "mean" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "0fyLmRlGk" + }, + "editorMode": "code", + "expr": "rate(mssqlmi_perf_counter{object=~\".*General Statistics\", instance=~\"${instance}\"}[$__rate_interval])", + "interval": "", + "legendFormat": "{{counter}}", + "range": true, + "refId": "A" + } + ], + "title": "General Statistics", + "type": "timeseries" + } + ], + "refresh": "1m", + "revision": 1, + "schemaVersion": 38, + "style": "dark", + "tags": [ + "SQLMI" + ], + "templating": { + "list": [ + { + "current": { + "selected": true, + "text": "some-instance-of-az-sql-mi.database.windows.net:1433", + "value": "some-instance-of-az-sql-mi.database.windows.net:1433" + }, + "definition": "mssqlmi_cpu_count", + "hide": 0, + "includeAll": false, + "label": "Database", + "multi": false, + "name": "instance", + "options": [], + "query": { + "query": "mssqlmi_cpu_count", + "refId": "StandardVariableQuery" + }, + "refresh": 1, + "regex": "/.*instance=\"([^\"]*).*/", + "skipUrlSync": false, + "sort": 0, + "type": "query" + } + ] + }, + "time": { + "from": "now-6h", + "to": "now" + }, + "timepicker": {}, + "timezone": "", + "title": "Azure SQL MI", + "uid": "nF3YtP1Vz", + "version": 29, + "weekStart": "" +} diff --git a/examples/azure-sql-mi/grafana-dashboard/cpu-and-queuing.png b/examples/azure-sql-mi/grafana-dashboard/cpu-and-queuing.png new file mode 100644 index 0000000000000000000000000000000000000000..4a8ef587e09c137c22b3301be875bc477b9cc7d5 GIT binary patch literal 171384 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⁣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�$gR&FhRW$|k1d<2;mxBwJ&5xnL3t|h7Y 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 literal 0 HcmV?d00001 diff --git a/examples/azure-sql-mi/grafana-dashboard/log-activity.png b/examples/azure-sql-mi/grafana-dashboard/log-activity.png new file mode 100644 index 0000000000000000000000000000000000000000..8fbb4086ae1fafe96f655eab5ab5767985927e9f GIT binary patch literal 208765 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 z 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 z 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

Y6dx#2uN<{UpmU z27?qc_)jkxT1v8tXryZ_<1%V%gd;2~JW4Spq@a|QNvQ#oZINPr?8JWrTeq0=aoI?A zC84d6LhT+WQO*#P5p1kPQTwTU(A?Q&&V+or9_t&ycpAaFFp~F#3pSG}y8A>j(^8xi zaC9=Z2Hm7YVnExSA}F=Ikl zh)J-QEUF}v)MIA!5D>VG3`>hVNYd=jOD;lsRuab5zJondX(g=2zFN&HUJdJlu2lZ6@}} zkw+YDVDSV61`q%3epFEztd;RMzW3d)<5$1B730QDz?=`?!-I4STu%YX*s*1Xjv8qI z%I&XWGTwC4&#AE0JZy|=|3mg`)213UkY^D`LAWg7rF2%ye&!X8frLEu4V&@xubpLJ zDca=WM;^kWPd+vQ+2w9af#?rE{7Z)Jko%*8|=%rkng)Ja;4(2PxlSqBkShp_A@l8uZi z4uy?SM`LOmMb#slg+sRc8AmG_HwgkITVN8Yak)EE(!7hUsk4IX1~7iXTz$^D=Z-cJ|1<9NAOrpJ04y-3lpjJHYwGC zG092Dp*CNttW0Rp)XR0Ppqa@ot_yaw*SKwHS|v_Z9zb>c%HMKGezv-WLT3 z5yr{Y!nNixF*6n|`P9VLu!|^;hWyw{6DX4!R%=OsTygpN#?qv?h?Whs4AFAZUR^Va>SQ);I$Vcz_Y%(a9k3ZPg>Yl~}t z{v&hG{xh~>ya|G+x<@kEFj*&}>#9o!nvzgRO_Qt``QUOkY{zL3vjrM6K98@qq8?-&F=9|ZUg&~JBQ zS`lLu&>Dk#O~}O8y`K!Jv=q4-U5*}VmG3!qtjX@;nc79mz)(rCFKBauB&P!{jh&2z zkVvLB4~Hm|&gMQB(%_yOPfN4B`J z+@trN|9ziGWn<4r76QW6$58m7xFVPT@VtS>WTCCJuDaULExH~*a}3Jd&c72)C96I&UOT~_pefB1g$vCHe8Tuw=$OKo09p^Tlf^NLL0)W?ygS=6TJ zIVo&aR81N-M$s!0T*y*isj#FBB~<#FGxtNxdh=Ce=ND1X2t$NP^*|7<>X1{>B=0v@Sx#)Km_v}4~f2>3xj2a$*rC269#rRu;G0>3lQ z{QpSHtB)I$4mqc>9N}i=pJ9|V7-`=e4eE-&V?EybSm@gl!mftT4RugF3dwVZ6hN??x9 z^4m+lO!E6nzBC!%8bcIB2G_U*LiC=7-gXi75{|F}don|G#Dk%dSeoYw`sSjLBPXkhUZ4B% zzQ)dX&$!s4dycr4Ze*m;MG^D%l6kLy*U4leE6B54AP9j|uxvLq{_K}s^QxE)LOui+ zt*Jh0-BL%-tSlLnDb7hMP2rOh7;lHaT_nPt)WA#S{SCUkOBH?V)`| z&vkA{$T4y9Zs?$8gO}@8_q7c4EjLkBj8~#nAVR^~gDe244*9cHS;Hvd+S5G|3_W~b zgjoOh#}_kmg1MIVlj>9*<0nov0pRuebi2FF`=w_ioz#Y4l12eXe(p5BkCs~x1y>Zq zK<}qqdx>C3X1o=x^d7#uf|-)`1HCt<|IDjBK`^r6=HGw8LRxErk%Z@hsVsW5myAZ( z`1d__9fQDUg+P3w3vFaX?0&|DC>XyF6-X3YKqo_x#Fs)!A_;WcH21@0sNd4U_cAL; z#-X>&-bB1k!C4gxqphJEUb;i-Bkx}CSyYMndJ~9`xceBaoUUc!Ez1#E25TpZwwkEg z+5wq#rgt=XP&7G}LR}Y{#rS8)dUIe$GdShpw7Dc4>Fh)o_raV@Up$TNuvc#vkZByG zqq5RcObo;(<6emS_0}u^=55*FK~7peUYxT4$4}awXR3v#tD3;1GezfxVw3#f+s9Bi z@{tk9sVkAzu5g{|+HM?va2bjVQnAsUgT(G;w69x-r1Ht6g*C^)lg=Z0m4_qV$qd1I z7QCFftM`;0)JFl?`(^dd>-YrvZi>`t-#YSkNdbu3;B{MY!hU;T$qUySnm<&l;tROQ zsDJ(KML7GiJLuA80-D-KF3^3jehA)Dc={}Hhy?G(Ho9r!__q?;!Md`|?r9E%gNfl; zTv~1{gjdjw&ZZ_W-lm(KeN*DF8~4;~(iCD``s48$hp1iQK)Rpk`-nbC@?G<5r%0P9 z;Cs2b1244nVx>2cB3~a6x^jog9)HmJVUP*0QX=L>P8w31TuThB$8 z6&Dl`Zsi;o1>B^ir3fdQP%sj#qy*-4lJ4QK1T(=vWk+(HG2zJeT0yaPb~*@%VXR~r z=Jda+q!%)BvY35+ULqi378>D*aJKEYVMXp^@Eleb>5hki#id#9ZtX!PnV(^F>;@{b zA=AUn%R<^*7IMuT_OpS^qwK<(SEoU)Jody#(?qE&)4XZ=mPGMQgY0V@sM4cRph zEsL!2C-ZQQvayi0ef|gL9b>nv*Gn5Q%Kq@3c4Q`@Af46~I&eRKH@0~VB3wI&d<`V_ z(;l7NcWABYGZ1&de$H#oIca!@*v6z8Roq@RKl5|pgR$xjlmX;?=h#%j$Llo$a9@A3cOhd*>*_w?61 z^Sc-L+pc5qn}RZ5ezj*4R3ey?`J(9K@_lsACZ=@l;Cu>B{3OS4iouI=+m2&I=kCU}n11p#C_e6dd`v5|Q%^dU z4+_xM;W2n(FvTAp8E9zpV85z7y68zp6D=G1+&o{?{m;wb&HCS^Y@IHGlF&kCM^d)V z+zg&O68h?__s?lx^CtH*y}w?g=wsg>h2J_C8LKWkBNd8I*eJ$7ts;UBD^&N1LpVI~ z1}Bn&PC;(;@iY`GqKovL;3S-NtJ)3KpKW~KLLF!kn4XMwGQ^r0EIdt^$X1{fI=k8! zM{pwDOuoE+3GTS**{FLt@0D9||1Dp~ML)UEF#ns${12Ce@ASJnFrhq`umv{tq`+Ih zSjZlg3~jtKTn(S?ncfAR{sN1;O}MI*C}{nhAZDUwHax%t=Y|b#?4DkLJ70bS4?plW zlC!xML(no}-gOYy8(&_4Yc4$*=bnBP9(n3RR8;0|TUw4i4@??~#%mPd_+!b^<$+nE z{+*FO25Gcx8;$gi5s>hm7L!+EtEN5&7En;U(nI&ct!_g*2p0CdYtZ_wxisILcl){W zXipXn@8S=7Uqc!{2JdG9E>9mV;-eGzo2$pFo7enrKK!!2)rf!cZN~N zGAX}(U)NSWbbS~kDW3!^`q;_8tlE!qR@GZz+iBvpti|>DZoa#@dQOV5fk9Mf@Zh=8LQ$l?FZq4Zw@ zhGYsFlmgFHb90pau{Yi%22B#-(AQ191sDDK`Y}L5b=g8F$+RLO?VxrC;+$kY5gHnJ zG=K|L@d)1+x(ZSO7BpAIM1PbFGA2`X*dL8 zuo(`M*qvPk0>o|N6X~w1mKKt$xtR~gqpXqgd`L`1`=*U(sab-`@~K$9>UoqDWa8*U z%kcU;)fiJsWf1>!%?Bd${&$6ezUaJo+7UtJO&cnY)X} ztKZ=O06+jqL_t)+OGQ68uwrE^zs(6`kKYH4J@)FehW`k(Ce)9 z6tvSCu8BhKjICt+i+h>CVB?;yHo}%}J*k;WM^sV9(@^`VNTVgtnA~LIuVS4>PO_wL zrC@A(xHppqJTWJ_=S_i|!i7ezgA}e;V>uGJs{=VSvK}g66)~n&Z}NCJClDvL$eV#Y zgBP-haNwhPtMJ70@8i4QI1I&9BB-Y|v0TZ88@GgZbjXM)6bd%9#$%0}HpF!ckdT#6 zK|_!iWw6oDb)`5X@kHKa{od25GhNCK34FDac*ZOK2q6#-Ib^q0O0;WIayA2wRBPbksgI3suBQ6{f-YGaYliqA<=*5%wUdgxw8Km{3 zK^_^50)y6-+=cz(_Gd7Eb(5tKHi`%y?VlQ_^j-SRrm5eGy%a}bK|h+!Jxy4+NgafR zoy%5`iYKnGYrPku0R%R|PS;B2x8Jq7>Gwy^{gYk4|2_Nqvpkc3k?wv6X$x74kd6>7 z!3|Sz(I=K-5Qsrw`#>Nj9N9i_j3zRaHP*-=0{O} zhh-tsVdgq6iB=HwKWm(*3SEk3)FfeuY?kI^;nfYxaOb_xqGw}hVqpA)33%>-@8ht8 z_QLGBn^0Qdib~T@uyrNHW681=VZpS1T@!F4g<8~Vuu#3Q*{z8cB1)vJU))~)AG90^ zT~dwbzsCGz%!EZ2ofAbYQrRHpUcXman;)xS2Y7m z+9oiLQ41!GE5_@y7IUvp^;zc*twg6UPZbjbqphnOTWA%LOlFtix5zjne@w6i|pTEX5=6-gxSx}mPs2nZ&OA4kO-T7D~**eE-PY{tK_93kVs zp_?$;YQ{g$TgKDqC9d8_hUY0?W;~5ak>hEImfKj@jJMujhIi(z!Ka@t(}YEx3QEe5 zmYm4Bu&jroF6ft0c!JReHxq5G7{ABnGRX)VdX06Bm(~z&Zx?NUgXaw_YyURughf2G zXmw=9qn_Hwt`^cYVHp1sT1}o*hTs0_DSY+Vy>Z)5zKXMn7wC0+z`Ep z?zYy9i!lM4>T59b$r~`HI0q}&*3w-MVQ(S)(N#3cb6NY9)*0zZDl94XlbIuq(a;av z>_XBJ8rzV4*7~8pqKNeonQM~$J+y%D;g0y?nDw7)QgiK3M~t>Td`Cbh)@BR>+YW(Y8GlRI3h|4F#yqzYxKp*5H*_>}}B>((*g_MJaK z`ItNtaD6DvtM%H)`Vtvig4R3TB4i?L@0{yCdNgpRQ!9*|Vj20!@AIH=B=m~4@JffV zvXOuM!VC&WIPXr*`;JHw#;w}iiDQr07YFP;0XN_M96tJFEj90`!4^g{O54Sj?xm}20^@Bp} zG6sR@Ai(!T1b!^VATYWhz>Pe@-Yjk9gd|#zteuCxj(W6a?uDkNM(j1MfN zNj!KB>8iY(G>GxvE5^TsBjE}KJ|j%p83!^eEf+6;{0WXOooXy>0xh=fVmA0?Ay8D1 zjVsPO9#`<@rp*ih9*C&hg?!&yD#CHMG`Hi7pFDxh8`opnlu8DJXDm0n;(#)NKb1{* zW_r34Tc~_fze%pdLKk*rTMBiVbgL!zlRb3b;)qLwXKSFOHNk%#T2!Ru_*Os^K$bv_ zs#tjVskd?E1z*O#`|OSnKVC_T3c7aV8VQzK^DLkEq8m51xX{zufP`kQyS%NO*I<>0 zxz|skB_S&w4x0OFoDQxh60D?QL~{>yHxslP-#*~!?nNR6Jks3vQ0NwJ{d>5EigQ!3 zWXV#z`|)y|`PBm{9C-%087`zaM@l%t{eZ5TKb*S|Pd#vz5sXYY>_+Zmn}ZH3(oMP5 z%BL5CNO2a0!;S_#RypXncB^IjnIx%|eeS|SH(-{t=EBax3kgT;`}Xa?Z!13qVRYY>NP$QO z`?!ggQWl96n0w@Z%W7op>ZQ2ghEq{f+lV_Jc-9CzTDOE3c9@=NUx+g1NU|$s06`!5 zQElrM24;C%S3I;nHZ$1L;FZbb`#JRP&|gC<+eW|qny@a1-mt_Zer=h@!*UK}(4JwE z2pL`Y2$})HCc0C`sw4I{27z4+0(vL(_P80SF_vNw*clcF?I|1lmokp?PJRj-o`rd)qTmjtUm3T`?X>^?C*2kr<$3jbOq8w!w1gvfYQS4Wldg6m$-AEyaKo0|DtiFwEMJ4CZ|RB zgeq;pD3O8C7p`qXZ}SGYa>wB0W5@f1RsoIqeoDyj(tMzNY%W(%9NKF;k(rr6t#=A1 z)S)O-99@Tc7;s!PoFj{h8^L88Lu%_}?8GUP$Kt-fzlhUM*cUhc=&LyQ>PK+!^b!i+ zBsdwGg!70l?(q~MFTW6TR?z*?>IGD~QhQMljzg>4s$Zh998?A~mLm+vo{%ET5xLcp zHAUpXs^9U<@9lI@I3htn1A5(b$>p=657rrhzmb+DC1b1b?H~OcOJ-h;>wa`5es#y= z!Lo1Ddk@}v8TQ?y3g5c&&m5l{`|LTD!H@^zrbW}3)~f=tM~XM1e2G--bT}A;MS$92 z$!go`f?q%UF72)jzcu`h$?Lm44DYuq+CkqI-$=p{e;!iw@B0qwcC6VL1V$AE^v38F z|2*_ZOgJ*CrZm=>&jSHz4OLewNNcDAk-7&-NtjTT710_(FPGc|Wo9wP1DU^Wno&y= zKN=iCt=mDmW%iqzVzG>+#jZFA!II3h6(rC)9E0W9KKE?ATS4Tl7$O`?lu{iFHVNot z5O-OQ$jEt1T?@9*qJq@N&;c-W0vXa}xh`XhyrakMp>QOZnnTj=vfOHMo}!s-|50(# zge%fvOs=!>(wmF$v&+7MJ*Q8_(&`rEQYaJ7pRZl%@ki`||Gx1twE`dXZ#CdL2~#e4 zgpgPK0|vAU@hS`{#60FO@#VEGN9+S;NM8Gg8EAruIifXPl$&A#i>1)zKrpQBI0`m1*pjaN7NPIK;B&P*^w($ViC+_e<;^3%CI&A93i0RQox!WX`iB0t2pQcQ z+`|T27@9ZsD+YlW1Y!_~L0|x-Kw7_NfPex?JJQEv^U_z5c=*9sw$X*%%PnT_dmk+f zI|O5SP3sR&XDhYY(=FX18@Uc!(x4+my8Gd7CsUhJl6r3^K6tA}h`9d&HLR96Du}!> zdjaFw&BW6WU4bY5aFJ0I5q=ad>7)~mzhP4&UU_Q~{_*r;Z0uhbuE?-wajsIFecC=a z{_x$6R=XY3DOk%oC%fDpOsy)#>Wg$+5Nx06m+bw@5HD7n1=@+eaZh(#Ou3%a}ln);#BOvR~0V%c{n_LcvVLp zIs@mQak{ZS%1BElTF*fQ1CXz%=&xjF5?)#I2`#%hFj@}ud78<*r$vM;@#wiluIs;v`Op2Fc)jlVIv4n* z`CykiJWhPFz5{*DpP)aZl--D8LIUfG^0!_mxdKj1PT+gi3om0M_otAC=6fQmuilv{))yU3j5k_%?D%dEKHb)HHl(Lf{;+y8IL^V|MOi^CTMPm*2y7z=#DpW;2#~RA zb}R%W7;#b)>G&hdEoOd*vrY!)ugpEwiP(>=%|INaoAZ=H#8#F?Ju<(L z)90;C9GGAw;xAr7{Q|1!C$U^PAsdhV=R;iny<_pUy@bFS|NhI1&ui zw5zaa9ul-|)_Q&GJ*v4yNMpuU7}&^4C)zcoF$xAL{Dew+HfQc)-2T%m(A?UIJ0E-& z6DN!}YsxBPk1SLT)^mSYgv!}P|JY%PrcecA_hS%H9Q0;c~ zcGI$gTIyl(2ZMxAwS{~)qBCl4h*U^ywJxRNSpJ=}*=&$|WJ zQ=9#W11Ap9AK@UZnAu}Xa`DS6zh+!1H8!{L-3?bl&y<09D7o#~bR(9L>cWQFCexnJ zo-$|!?53d!mNQ<$>l+p$DXoC6Wy!U716+`g*XH8Y*^7+}GQlELS*;~E;o{w!%12pavG$`S$eA!5t{nE4 z_>(Kfd81l+gO9 zIG@4MN$ZDO`z#%h!u8I|D(eQ-srUQthhL{f&rD32I2NlHFZ?W2su^BdaVf_j*JGjE z*ZT8#JoKaxCICyoXktHO5Qsq_27yrl0q*0UhyDo7aT*n)+kTy}-3f`w9!onH1RQjw zRa582;rkTfo?m~P{(ybj>j6lPG;#E7_J_-H`h~y4)X5W#|JP8A+8!~?X+dFJEg6P+ z^wtD+AZQ_!hs>Ca7asm8kzpc`e(TF#X#L9?yRYH8Vf_8ZIkB;|l_v6D-15`2452n`D6CBPL>S!u;7f*?J;lrggTD{U z9InOi&uj=v=#r6|7}O1dYS42hg(BIR$;P*E4=s3j*B*ZOM)*|l(b(lzI>E_!A0)K; zR|%yZo^nY<0Bu-b(|{S%D@_J5|K;y_SOL~2|IA7!AG0UsEvZM^5m#e;Nv3gKHcZ06 zJ_u>=?&%`YxP@9%X{KzrKkB1Q?lslA)<*#ieN!K#vl-bKnwyg2*e-|gTPJ-0l5W=%Vpe$>W{E)>=}4-&POOK$+8ewGp3=)fN)wV z1FbNO|0To+3(#2iDH4kFky^Yrk={_!4L<-8hw9k$Ho9p!(%-i~1tnf8>=3skf*H&z zcd#U5-?_;UrndZqQU`9Jo1Yu*9LLA(RM@2F!uMBTp9x7g=_{w;z4eNB_dSvIc}x{TGZQks#B&)N#zF1* zq-MHC68>x9vVrZ`Fc3qyv%UdNTB=l>^kd{#?L{kt6h78KhnF&U%s>fy#*oRKwg`{> z<3{}Rsn_wZKVO5aOj%4*P+{=i;pJ5=QF3%r>Fu@$U&TFteRg=JuyFR0s z)2~Br#Z+Sr5w^d+`ue%n+=n;8OB6{!&*q%m4A<-T;H*n; zGxtaQPuy6HNp_>HFAFoyxrtUY=|)f%ZM%k6rMtjYv;NKi_M1t<(W`|PX^5o!`ovNU z0x<~0An-+kz)mY1QIPD^6#9SX;V0A0j?PXZjzbx4Vvr@fT;^jlrKQE+-Q8^@{Psj^ z^OwY5A15{5?Y#E$*!Sp$fQc88n}k(0Ex7dBhb;?)fb-rU1zaD}!MOF>vvJq2&co%` zJp}oUZKD58g8=xINua<*X2N1z%bLJr;!tp{MG1-y!(h+C>q{52#W*BOV8iw3k7iif zAbmvU5^>c&Y}IYfFLWR#<%nF+N{O+{&$W>TyilMF0N-C+KPt)DxNN(`a0I& z!gEhTUX~NTdo>+Jam{$|;cJnUT}7mr6tjO3Gj7gtTo?L#==)iMm~bj$J~$<%vab{b zYQ<@;2Q5c5xZp`vRoN7Tt?6jOYo9Dcu_Md3ru;jkx-4JVd+%O}*Zz4ijydxN`ZJz@ z4r;^=g^zzbd{5Ysv}6Z9UAlr+Ghf4ThwV<+W7hue1GldLwVNooETCpv7X>xHyzLo` zpD>BRQ0Y=2QG%!_65HzU?O}`bVgntS`6{d~x`ubl2F*=s;0HM{yq_fFxCddLjw;&po; z1I?P2_%N1Y5Qsq_27%820iDlD#P3BDXy@uBlSp(!EX5!Y3IZlDd&*dB{`dt{%=ii} zeXtE3i|!1SeaQX2FDXSXPqV}mu0+wKy(2T>{YrPYeG_Zm{vYEW&W0m7iS9^S=q88^ z`jAT8JgXUJp|7V29W8yxJoHR_`P3tkmRaCeYnV$S2R+>#*sy*%1u9SSAm-;Yq$$() zg)2GD;NJm9{gB#p?n@~rKP?{1TR&mI@p@Vz4@GB(6bSgCy2Y#SY0rhjxd+n5P-~yD zHDs7Wv}JfQoe`evM%jViLc#bMCeP-TAEAEvJ1i&H$HYE@mL=S|SGdx1F=nshapL8F z#p<~)Vl!R809ls!@rse;9`PabzW zRxFu`*>ad z*-xUQ?Kw<4r4&6p58Sl&iVtaBqjJKk`|f(;DdQgtt81xYg>S`yjCzL*iNi;OZj7w%D18SE`rc{wM#7 zmWAO1LqC4+k8$U9XX1db{1lm~IY>_-`V|VV3ur6SPa$JT)Mne*(T%#AHIcHL=Moee zZaIG$cURH$MR~|~=%+BEt-l*@zEvHvt@KC^UXy!ghA_-Ov8A@dJ^ zAnmaB2rAkB%X-;zQ>j{OSxWTi=6EyNi*s_+fO`Ra00;0Z8xAHEWQ4GWaucODy8aJooQ| zf9-+SgZV_{m?W*MP#ST}U~9|$`V9sp{A=jBw(2S-5%P2V^X@Bg*7t8mdfphcg$$NX z@tCYxJau^R_m|?xgQj9_^=7LY^LOx%h!hDgTUtBt{2O%b6_<&grWI&xh~Rc$unO}^ zJK0`x@i-$Sv4|?a45Ro`WLi;tA0{OBqJ)CTG%j0ubdw$^wFSjMAVI}z^WksJvj0a6 z2K%>$sr>q_WZyU6{A2$fcs6j)E@OQwpECRBx69}|FlpPcKcd|wWR;yz4+-8b{%)b* zZUdM4VmF1V3{p#7-oPqizhe;i%n%U17pPeCnJe4H3hpYf(RnO-V14y^ZZLx!=CX?M z3?w}C9NopHFg6@N2#AN8PD6ndr*J;&jPiRtpEK{3NB2=tWWbL14sWDqZxWe$_|V9FYmHdbk%+`#o>M{-`|ocv?6d zh?e>{k(^VDlzduNNNXTi;<+tlnZ%SVlukdIjQkwbt(uF)D?gwRLc%}}JXle4l&Vd} z{b0O>f^qxcl&fxlr>))y1VSlM*V_kY&)Ai1p4eGWXCsAFO(dVB zm=*0@ezu+%D%&TJqFyjB<_jEBs&0b`rIS(y6c&AD>SbZ*}lE=|O<+ zeYoyx&eIwHW8ve!!o(B5kJ3F)_Q9ML23taY-OyR&>1tst7{+Gd9-@7Q!1Bux>{5BS zRvAO4$K8ol?>&W$b6$v8DpXCzt(F9W;RYG3aO_?T0x<~0An*l%z)mL|Nu*$;p}843 zS(&))w);?0G6owrZosW~{+9kcn~|H9Wh_9X9VWrZ#h3gDGiK~h1dc(v7@%z9#u_~H z+`sX`dv9SZ2_p$wHmzKXKmYl0YNWgI{Y$@%NmHg9;fwGKx7%&%`vRs;KD5zaL8TFBp5P3(cggQw`ice;I4Vo*H znA81Xlfrh&3Ug?V{0F@L_%E>X?O$TWnoVS21P^*I98U78#^w$zT2BAZt83BJ(r(S$ z@XC3gaYSfga>}tM;+R9H8KFo`?H1!AZFpzcNA^eN@vkjfh!xF^$R!0$o-9)!gmiCc zl7?4e7KJ18`><(N`_PAezf_%SJM`*86dc%%59h7MMduuaZ+-0$!YD{P8Z#GCHxcO@ zo=!#=!`eYWVfvT*+bSc?elb!kfb_akQDDo zLOgv;dpZ&@KCcocu^HL>ehcHr&R~Buiogy97N@|9 zV`-{hjI}h6cNLAd1SEmkM#*mp@lsqVWbPy(yR!*}89(%FNV?LBy(0Y)36^}n$T!C_Y!iq0KdgJ18vhg!K^U0ud9EZIqBmy5w_ zhwSOJAnKw7o^|d}3?=_D}kqmYQbrYgg0x(L?-Bbqqb{Vd@ZG zIa-urgb$>oFqkaIs=jt|?6P<^aHBO`N(!}8eM#`^>h2=0;%01ujDhi5k1gwn_6`Q{ z4M?f1U%0Q?@dX=CkEvs{!zN%DQT^1IoLpDy*Q~%%$DD{WzWz<5rKMx>;!kkXO+QD; z*h&Li|FK6^aV*nL1p)D<)A{PGTFnI?RboCeUB`^|P*b}YHS=FY?#Wl9^5ox=?@Zhx zV9yz-Qq}WWLQ*$2E&dp*Ub_uFZHxyJ1ruI%h_Srtg*m9sEXB01Ux3`Av#{@ZNyO{I z^xM~_gd9y9KE<+E?nKwdYB&q>{qUKgd!*H0t4`sJtCoF$RlHep(CNsZaDcHqkYZK% zBz&zGUCjz=UBhoOm&x=spb6Doc0=;X)WUdF9Gr)`73mb_6vLHS$a2Amg}@$&R-@ts z+v;v*JdD&fRDZYyZ8g1QYBO)Bc2y01Ty<^!l%IN}lvW}wofiE8N=AXL*}oI0?B>jN zVAYF%LVe{lR2+16lx~eaBaG-GEqzQ9O84G~&5Ktct#lF>hsW$ycAvt1Yqk@KKYOTG z)aRw*R{TbEtla`v8R-LyxCvQYLO2uU(8S%)h zm=dC)$hZ6G7A%TJBUiK&=MavlDH$mj%sVk?VqM=!AfPoY4@%k_gujYbunh#Z=MdDk zP19*p4QG`tB_$VWJoVM4-E6u}Aq?apM9%^h*3^c^nn-?ZYg=2?=iq0B!%ig}F$6Go zv+mYL{ONB`V9b~@EM5934mtD)R920{X{R1TC-vDxuoy#t8YN1*@4hGY+xI|xx@3_7 z<^cyDf&&gX7{9*h7nt?#+sMkuK-GjP#udx!ufJ@{w6wOMwq~8VPRY!nAST-`?*BhLa_1#vm{1p)bqq_a zLrj=rsDKBe+o~}lpi>+a~2W|+#PoQae94#BX)H>^?kfe^W7*o=Pqz>lsn z&T{91yx%so7V<(^qJS= zUw5C6+#Ck|Gw#HO_e)jCDOyHK0*=_P3TK?O57JY~L<<8T&1qYQ8?Vh?gv+kwyWPKD z)r3vET{xM@Hl+^T?VPIsw^gA^QYhE&X`_2Ij-7aJs3dEM?)6^OeA!;-2HkFeA7hI+*%i0?;(?@5fZk2 zeG;a~5tE9Lx$aCsDmB!SbISb)YponB39h{qoOIN#A|YHy7glXpH9z!Ri^i&=WzCDP zZonO7Dfsb4r{JV7P50F{{7YkyHOSfx^*Hj(Ut`mz&Dd*NrHQi=Y-Oll31ldAcdSO< zAwNSw)gEZAt+6^x=0@10#tZ`>LcXw-Y@dfh79{kqU$YE{lc@h%MIL6PxlqLQBZlg( znk4Kgp;cEQ$64j0L(#cBoWV zIe|(F9;{m7Z($fuC6}rJBwJ;*KY6%!uUNKdSXE=n#|;P?tcP*P&CW53F*c$;tk8D4 zA=pS@q3@N;2d$#B^Jy`dY@K!0>sAKsjm8yhyvkfyQf6Rc7ZiMk!q9r6IZ)dY#3&CT zIci{I_x-bci z&H8%D)J`i&!kGP=vFgnQbkS3ev>e4l7~JoIl=QpB@|D@>SksQ?`adGxIgP>+D&S;N z$ZPX}{c_uv!reSw&1haZpGqEMkXkm8yjtRliIHQ^sg9JfWbQI;{^Z|S|ISkb_@22L z;TtIboG^Lq`N?qeCNPDuJJB)n6zb!2>b57Cn!qcuZOUsV$2raL+ zHc56QVURN=5e_PA$o(;E3R{hs>RLapqH%QRRR?#=T6Tz=M#y5O!+hR{*0pVPsl~IF zx5B*ArhRMG(!zxonI%+!DjU!Bpx&|5A>OgD9XI_8*~zd)ccq7-r=)C_5ROLPl?EIe z%Ps=}?Q>H0*WR#l`5--%kyC)obh;NLon+zgBR^#IC0eWOwA9og{q?6g{AnK1ETV;M zL66>5(Lk$LE;R$nD=aniqS_v*v{MO3Tuv9(tXhgIe)Ka`R*u6T|8yJv^3dJ5=;AAI z@kN)L`*+^)8$;;WKod|mZrX@5&p6S*Fd;Pq|9kN*eC@O|@W$&eqJaqOu}2?Ims$?Y zo;}m#sjR5Ph38*tfdACLAIE}ubBvYAjwYT*Y7y)z^~yTcidaDeB?MDc8ef?c4#$z- zn~1Mp{Cga|Z#(CiX61az0)++E2E-T+2j`-mOyIGFxpciFBvlOOP%kAr!2`FqrydC# zS2D<;HZhvXQ=>hpKR6S-pZNK-(m1^T;X2&$mvWqQ%0aZ$u!MWs{DvppW&6F|Y>FQ; z=R*@CmQ{oTe*gXP|KZ*TW}-Dz*ZmqQJR}ukre$K{_(PGq_W^LFQ3H+dlEFaz^7&ty zzOwE_S3EN4-{+9?nO|-By6c};*Fp+=Nhwh$23NdH%^ebz2Eh%?==-ht>FsIfuxqee z+G1omJ)Ae*4Kml-GbMC*Yw;#Du6Q4XB;2y|gTr5kNM8?$f$RiS=DD$~yB1EmeTt(d zkTKN{(I4wJ+b6LV@62Xkz+$@gBO%K950%m?=mKi>8Wc|6f+?rx;INM0-7ll3c@t{qy@m{Gx%PQl4M>N#!M<>P$Mtc2dK(Z&|G%M#f0d0Rww=I+ zrL~tpS6ZY?D0pt5f9ykW;3ZEJuESTKnNHr9YXWy$0|j{9NT->8*tupkiV;)Vwiyq7 zva^O!c|ydgskD#c(}Usj5L*r^${tb|8qkigL6QjIP=ZL=kw<2TK$bc}rIvcH_kPhU41?55EQUcp5 zN_Vj-x~L+q9%YMzRVp?eU6nbhxgQKi9?WQ6*)ZxMjJ&kaGxH%NH%y8%mK426riEW0 zgN=7IdeNQFc&Oeed#mc1)j`F(E{?HPO#F#GC_a};cg71qi1r14GTvL(JJI|a8S#Z4 zBvMckgv1KkdsC|;9_!WCHnnDtt$DJ1!*1P zS0T1AD`)h79iKtC;0!P8qx{0%#26N@ z&Q4NrO`<}MmXq+n9xBebsJ*VD;t?px0$I48a3mM&(f%%LTDkAH@hpQEvP=>cwG^vN z_hTsrfgJ$>L(_1LZ>g)HqW>KjS2Y1!8XNG?U+%-akIAntuQUo`Bi%RqJ&k0Qt$ygN zlpyDHgM=Ft0j>#g@1Pf#@*t8wccw_tNa0}Au=%{wTeiUcG7 zchz+q>v-Jt$J?mnU27~!Mv6w;se~g*Bm|ZAn7$WkYd0Ce$h6(|#Qpc(iBnHK1Jh|G zqNIGb)L#=~h(hy(8q6d(^;?9aQa=y218Ggt#9(J{z4cKSK^!DUxk5-V=BhjS8d zyz%FF?e$kktd?z;1?TJPcKOm_v(qOXQbbn!J807V=v6|oLy`k}R$rQcj3aMiV7=dA z{f4zf62vqJ0R;l6u-Ad2sf=?oIh~p%ndacs`U-@dst}u2+6XNzjc6^}jFp>P(6yx< zwK+s(g!>1+ajZlp&RL~7IP8cqSk3w`cs{V^;eFGluu z8nhrqE7=txy}=u8A#|%BkZ`i?Xlb6rcrBt z;v9WQrz^yR4<+-FL`1g{Xbf+`F3NE2ICU!fMWV^uFOyNdxuKH@{NB}u#UC#~cj93v zJ>}HskXHgfj&9>Tn-{{p_>YK78&4QUuT5z8NOQ>P=eYuGtQWz?Cqbsj&TqasSTQ?_ z@^wZ@fHe5J49UkIS_j$gYVco#g;cR z2m9=^AI?4ZR6~&TxjRM;Y(5X%1=nu3rAaJd)AD6Yj9{dSmLg9*^*CX9FkyTUKKy`g zQ3xLsYwhzixD%Bf*%dwd0MSnCgrceh+;{5+{5`IbZ%^n$S~l5Uiciwwvv9+0Wq9bC zeEjDA8a(|znZ?;D24@d8LRkls1&)kt;y8?s)mpQPG2j@KohSuSM81E)N)5fId7;5M z+|>AYZ%M_}X@?_Y{|ffkNLYqu9{5ESBQo?l8INH0ytf(KjzW&?Vhfoc$g>p}G6{*8 zh=r2LnV!TrBRy2qpjEw#I7|Y&8E%+T%1NTtPFivfoPEhCYubn$TAXAMhuoSq*+PY{ zEsPa8G3gNOJ^ncE``t)Ll`Fzv9p_E{7ZY_;!y3FlkMZep;?b3q%gn+pgBA)_(crz_ z&@OZbGg&Z7A&j~y{O=>f)e@|QZ%_M{n}k?yhLdsvHwrxKP|UM1o9>?YD5^yC9L?Qy zdFJq#EeF)>a_oC8_JeM=@&AuX#P$(gj$GK(P?ghEv)dXko@Z;_wTPHI?W{nixs ztJdHj6in51G|{@r@~jaYXud*b(&(~`uGb1vv(ZCgY$$qMJUTI4{Zq-93UpA2QB%Ff z+?IB^-e(C<0w`@UoTazi{OwY#n@(L_oG!MVM<&Vh8$-{*g zoP}c6t-PJY9sTPmucVb26?HbOUrRU*&T)2r5t6B_9dpTLz#99r9U-81UczLp)4%@h zDZ>w6{OLmMxyRnP`KH_P?eotzmhcYJTO%bnu!k#NyR5PgGgjF*8Q!ODm7Pbc>>tr8 zyK4Lt3MISI(9(?C?|1-*9&)%5`d4pQXQ~m6_s|1>M{aH&R;^r)gAY2)(0HewdNlW{ z9MXiA#mI5TpG+f%bB#jSWB>d+meR9LI+ejjYK)ONo;DOl!MB*sN&=>Y8A^t+&F_}x zCI+3hwC$D8Iy7j$OCmduK!5!4|8n2%M@2;y+8K2Hs_U*sMb$*CWn7Zdk};?wk*;*& z2`3|!zN+`#ccS@y_uUVpxVV&upQXuYZuA>0A)0F>;Gz)wZi-#(RI+f4XxDl++?gHB4NO0gG^3ETH!cqV9AwSXatMZ z8)0B~a~ql|U3R;<)cJMtxEmMqwI^dm6B;u0V{%~;Dod+yVEJ^E z<(GtAA7X&5+O!^TtZl%;wOusFZlEg!-_Qfw5U`oQPv-ym$04EgGzMcNBaEDPA*R8S zddg7k+^-npCb=7_WW2`{2@jrIHORC(4(+vE8x7UqM#weJy){$;!Gim1c3KuDlug6* z{M|5vOv=!6O%?qG9n{`wrOB(YJwb|uD5m}(dZHeM`(V&TGhxcK68O_?8Fehtp~ z=64~Bp1HK5P#P_;F`fC0e>C0>o;`)7q|)*rv7PX#_#>d z5$xI@_qVTu<=d6+B@+*-ZuH>t1B(9xdmKFq$6F-P`tV_zo~ zP4elAg&RyrBM_G9W47dW2i)tE>2cso*jzG}))7=x@$#WIr$~uy$5WXk+1ZaTO{&B> zyYGjzJ)994aRvt>^L^3kg_t}0S!|$dJ_iNO#^O6to1gVL``Sl5Yh!vjmgeQclQxEQ zm^A2#$Ou;qmUz3jhYV(CJQ}Io)plxt zCG#>|1uP_H>XN!mSU+YtGV7Kgt9}(y#))hNb0L-(taoVml$OmT1SPnXx>8Q zAh!#yy}p8c#*8d>Mdu<-!{8Q=mBdNAIz1>anT)ZnN}h{a^PvZ6`pOJ-%{6Fre2SE+ zc}QGWOBW~XkRC=#tUD*IAC*b*nE!MyW>bkLTzdo6vF@adWR%9wK*jFanByoStruY( zu{(N4*S061CAAklhfX zbLYK@Pu_ZlVo=LQD_R&y&KZ|X_wVINNTelGbfBdL5pkY+$L?ry6~N7peVz~PUGQIO zL;0m_=ZXIhUqaG(R1D+91}_liuISH1uIZYF)!3_Qf21*Pig1c>bFKFE{t?Gyk8;#JC1M}fvU-?{)zjg1&LZUPlJ(sA=`zs2P7({Fv6YZFu<6zj9CY zl4r7(ahb;8s;jSu7_#%`e~iZ;`zz!sQ=Vq_KkzUd$JnD%4teI;f8pZ~-^1}IoPynV z+k=+28Acm@=9{nc{<|m|Q-PoU>_*0`OUEqYl&`$>EQL@x`0|%erpNvq(r3MxK_!xZ zJoYeFuBPCd{TeCeY#8vz9({o!Ai>Bw3Jy;_?JR?%Kl!hJ;Q!mZ4uC4F_x&;j6a^e8 zqJp`tY*=Y&YQs!3+k5^pD{Yu%|Ms$>?QLe3X=!fDkyfVW$dTL34I+x72;xA*@qeE8 zJ zA`EQFh1*U%u+q2?_Jwlt$<2rhI^8(%(3^=kdA~)LjRsTS2udbW1!LkeFcpFR@C{qw zr16t0{jwzJ@Ky<3GhKp?ApVAG4!LOy%H#<)3>~Zq=_V^N^_~x*Xq@fCDG0$`qWL{Z02=176r z`ChcsKO3zeft~?#Wmr@cmdFcLtQIUa&v;lWR)zJ&(e2_7_fFO!zVq`SVvj-)0jA`F z+WxW;mMq(jhCv8pnajF+m$s5GLwf`amivVFLSrN_bG?KeN(Ns7sgJIxuAX997)e1e zp+LMB#fKef$y;4LkedZQkL#QzRU4lLv)(WXKEgnE1th)#RcZtaic8}T$eNW)Wlv5N z<{@4OzNz2@-`Gb|q(bI43C&4IE#0*nFQDqwaR|UruHSZaqC18GMNxa`_#SG1n@h&R{~NJ zBn&R3g5h7+(j&9#aPnV{a#&L!eh`gJXkqV3LQ~MiezF4V`ltStBnH|{2VJ$@O<~*; zXfYCwu`>0Oy3(*-7_^O0+g!W~dX!645Hw9UY&j^MA4AL*ltCjlGPTYrJfwnL5)~@V zz+A&i$7!Exz#P6V)+HP{sC$&t9*}YX0JZY`g2QCmuT$jb$rJLFQ`7|l<_g`9(0YT) zEDWB`zZ&fE7A=?~jhmh=5BI!Zg#>JF*K4j-x+QH-nzo(?KTNv!V{VaFBaLP! zx@F}(GPu+xWL;`N*uucvOcW4MGbs~RDq&%j zOc%6lEeQ#mBplWt-+ntr7A^WqI$zsS8r6^2`_u*tgHpu%?|-Rn88=}R1Vpp6ojeSn z`T44qON0U^TFZR<-C#Ti7ZJcyiIChyiHAFm3KbL_C^lGx(o(nM;3mAxV51HHFMrVH zqcF>3(}NgK42k0+2Z9lfg@Tsp@=D(q1{K@OzUEjW4?sqfbH$?73VXWz-aiIqo#24= z@=x%Mk`dAz)>Tl1;OVNHbR5(2Si9r05@!swhzLI$nX$HzL~u23^g3?PRZif6EIF^y zUa1V?E*gWc65Rc`*xFBeJImdR{5$+Z7!MC9B#M zaD{uR@~2wa6IqMxo84AwPuGX#$k|5^NG;U63R=l~7D@%Yj?-}0QKcmrOyMYu^^Wef zo^yq(V<|TF(BG1a(cZ%gR!C~rLg)+?_9XfYdrV|_MY$rplI)FYB8RKD#B-sjs#Rmh z_Y~)MyY#|qXuVb2h|C;Eei%p9t7b?9X!LMkM4HFOprAV1_iF$Xf4E~hyzU=KTk$sl zD7*%Kz#<1O-6C<|9T<9v__cty1pH^0SG)bGEri`K16N z_bVZv<8TS95DY#xUILnTC#&poJ;3Dx6I%s2g@Ao3{9(S3dp7vX*z9!7wIfms?zF+W zdDJhg1mDMgJOcjkha7)Ng@REKB)#@*WgbscCD2Zr64uJ|_rD}}cDzHa)`%L*FDTjf zsl5EduOsBGZ~Ms^@lE6aytmlNcBOVSI}2`CZ&PKMOvC`DQb_C8ZLwa!0|#g&9;TiN z;l_RU-l&JJeV={-{C9{dK3{&>RqA%N-|Nrfp!FW<)w6e=CzuXUeChRAch$D9QY8{G z97CZ9-AZQv`G+)Ya;ALt@nER}SF8tc0Nb%+XU)fR!p;zm(8Ej?XxI!W)@VEg)WsX& zl-)-2X%P4?2vCuVscoC~un0dOAARwWG;P*GrcN0z_ubb+;^OOD#dE@!VB*-%v&xRm zwaSKIgnY=@u_M*O-L}eROvHr5&GJys`((q$jWYkwPFO9h3U1uAQQq$VDg@2gpOEPK zj_1?5UIm3JzxVPh1EhBCSQ+u-Fja}Yjy<7U12uTAILT5b{F%%{M_?e%823PWazNLGVt^F)gLuY_3RV`B9z)@d1Fv})4p4FKe>Hz@X-Q?i7tW4 z^CE9;$FL@Vv)O?4U#bpAUY}?S9sY0#(excu*C7y&3`A{_4Gwvnzk)!8pCWJ`%xjH7 z=Pdbu`$^JYQzhrmDLA;JW`6#=&c9fH()Ga@w;{PEwuL-m6@h0+>ngp=LR==?0Ab~i zgG3(s?hk-Aj%tgz%xqm`S#)d4gl3-@;CjXNA7FZH&tds@)Vtc=BY0;)ZD8@dXLSYK z1>x|Xro|YNo~Huad!h)%1&mh?Iv^d3sr$qA+~+_vN?jkZ|LiJ<0WVI zxV*l0S2ebqea%=Ap`ii#-C_V-m3`tGT<}6`2(lh6ynr|GGH~|`qT2^>3fXvIFE$ar zw17wS4ZKf{whHI~65;&kD%qD&*0J3?W$mc`UiEbl+FT*GuM2vG<7=VJr$Ii`@oBlh zaJ=jE9Za%c0NPDgYm{PAg5yDAlVIN@83FKD8-QTAqWrQFKXRRI$n9T{QdVLS-WP1oYANm_JO0&_**9f z27HEt+hF--=pYC(LY400b!tq}${`+Zqf&NklQ-XZUSp2XwL+di1ml4Rz?Xr}Yuco_ zL_|a)#zwr18#hu`Lns{{SzRt`+g=3-e=V4+z>)bqgfcpHxtp>yh57_0_$5Pq`Ro=6BzHoxVQ+v>GiPc&JYyQma;%$Y-B_AU}>A zD)CU@NlD!yHDc<@#jP)uB}*5{!oOxqLuimOmWh4vz=B9aH-XEoVZ$e=TdnxG`g%a{ z$BbVPgDO%wlp$>X3-BBRmEdYD3Dz?Q!AOQfV8p~j7HWc4fLk)gWnpr5sa0O-du>c1 ze=Olhpz;7m5WCG1jui4xIlrycdsHK-x^1S!Y?}vd??Na-Y_)zkSSBq|FV||-6IxAS z!v5rUJPR&tw<5qZXbe4sv<{d(ff4$c5`&kqj>m#(;x9HkjAgfpdmz?@V>xicgrM<$ zDhMp(8Mg&`aFZCpV%$GFMFMj6f`sI{>tQ?5B;B@w57-CsKnE*dg%l3FKLihglmmBiAs(}4H7E}kyG@dd!u8S=6Dk|#7*ai^ZbKZHCbQ~STI7*gaD3pbO zkVg|dPBuoN02l`6o+Z2>1g>GjutpvYMhq)haiFI>dp0+x_N&K_a1db(`9WBjwFT~+ zIbYB>9*!eb?!q%3^}jF$dyy32^&_MMn0G=T(3}#P7 zO_&3PL2FlqUQ%!zDgKAx$_sT1#9Xuf^Zey3i?cHb?v_Jf;dLDJ&QVq5;vLUZg+S}< zsCis7coB$%yQ}<)!v&SZbEk?By74(Cmg6WKu@(f}fRY*yfz#8|q)V4e<&j7FNUvUf zWZt~l^3X$fLd*PfX?N-6YUvRT&kdV4ZICx{z`6-B4MvWfEUjC$(ei0=>+A`JmLIex zZq%p=gf7+P)>}Gj-ob-Ms?tQOR!#NymtPKtCz)<~PH69!-+~rpoa0)taS{my7MpI< z2h1OXfDaHLt;R(9H4|sshv35B4ftHw7fVn;I zybCmVCj(J3AbWJp82M$|B)!jk6pAo$G1iS*e_4O{+rCCKpIy6CHRw9;z5)pqH5u=^ ztD9zCu;5?0uw^S5h+kx+9EBr?;N!HU2A;mW1pg2hrfg`*)Ad++KV0J0z6IO#LU92u;=^&YluIzy)DhO!ro&o6!hPF3=2!4 z)KXzD&vzf~MqdX9!jC)LSkdRLs-8Q;lkXXaD!|>3#|gq6|1g-v>ItnhYo{v1b} zk0a=y>wfe2?G71p`x=%+(2JDA2fXQP0)swQe5_5#ph3ZbCZ=h+1JpDI|`RF$DkSO=TEMo@I+%1tId3$+X`8Q`5~?e z0@IXSU!x9a@A1PPa6K49{$M@>pviSOb07FD3WPlCJ8cY`3%7~Y;Vt|C#;xNaqSe^a z{YxQsLc)59yXrzPGwGi6PU%+IM{n2FxUhB1M|Cl;DI5XP7^F2Q07->4MquSg_{e=9 zgm4-d-+MJs`eD!`2Vvz)H%J#>aw)Wl7UO{bPncGpDd`!x0P8>$zr;7RCK-H?dk3|N zdO!KReDvX4DjXo~#_OEJ{G`QjHUt3-Y+k8SxW?6B&~>`7Y6IW5)DT>}WRX@rF=3N5 zZrn^JOq?O>U<&@wLwDi&aj93oko4T{;e+L=r=gj7$9?iZ z_eW*O*PlTU@}V*!zfGT{7>$JT&b3`{RN)A%MiLOTkX9pHGrk=&HbL84U(#MJQB*6f3}ACoy}i6ZEU8h-lmsS>e8X9AtF~(SV(IE zWWmDupw-~IF_*uvUs0avd%Fz!G+$yL8KUQ_yN$|L* zb4a5FSB?PPj93wvBc$a$W5!u71@@dW zTYctbF@nP~m~=JkWyr`=3>oE7rzM zl`f)!!?S%~(qQeR33+JCw0^@nIrrR_@B}jlo?!l!58#e<6RfD1REawG9E`tdMa=Z| z*FWmvYZMNd`7a!9(Rmn4w z?EM+ix6gC33t=ywe(GWAaCs-4cQfbxi8I4PmIW8yRT68M)f%ggW&STscxayU@kjmP z^58O<)IBI|+qQ?MT_Z@2*XwoOXTIAYKC@s@tD9p%d0kc7p6RacIbS;pLW}=OIgx(iCLW5Q);VZ1 z#4o53E_&J)PxEOz0p?*Z897IMyy*+a=Uja+PkmiX?bg0V|AwNM5r*FCYYJaHOrUCmGa-jE|3lMZ_AR*TQ@ zS(f3-%8Y@mv+$091})@J!U73BkbfWYy27Wx1BbAtr6V9K-6?v!mYo9aF7HjCf=M!B zd}Qy-kY9e8tAuo)zK=?ksx{!^AVi7Xty?zAJMVn1#PqjAzmfpBc*@+j4=xsJAU<4e znFPPl{KqtI+^@noA{360=_eh-{f=~-ALyGu=ggFM-+4{*cDlM7eDc00*LS-~KK$TK z4f?lp=MLF|xO2_UJXfB3?g>fWwiQB?_6SDaUgpeME+2k0K*o<7p_VDOa*h^OjDIX9 z$0Ef8VV$~VOM(hUnl(R1-hZzjgdaD^*=L`tZ=^tjf|0XZw3L-_ld^jC3Tf8tEWMY! zZJX2v{mX!cOP4N|MGOASvl?-(E*TZZE_oz3=1AT84duu0C(121-KoNn1`QfXS-{4* z-bMMX7DW(#{4nx6Y1)*oGrm$`8QVBx#&iT@pR29_n9nhBES(B;v16O;?;LYB?axm# zue^3DC+_o9wTSkEI~nU}u)yZ>VD1>`h*0FEG4W9{{v@!xOxV$}F6AB)cnPm&$2%d$ z^6sr#O)sDE?hTqd4dz%&OP5}BL2#SkYaHR!DX;wRZ)K>d7$07Wr9l2MD zbFC;$gI6y>W=D+RS2uusJX!f7ri1L)|3ElrBMv6hKZ$GPoJQwZXDMJ_INl3N6bSNu z`u=o%j`{3z9G}VS51iN8`)?TBe)2o_Dki!iWqg^9n>Wg{&%G`;-FUkSFSdbxOH13W zLK0fg4(R`~@LH#{K2qN;R< z@9F2BdR{dLXa4c4^nd?tsaOTt6}ZoQ)D~nS^T>rRz#nFtSXdJ_Z<4w5XDf5v?Ydi~ zdbJud6bv{MH41z8eo&r&;SFgF?M9m6|NQefl@`~FZzNd|j<{R=wUBb~$KDV)JU!E3 zDF=(HOoCyfTqQ$j%BU3_ud+ynkOD!5p) zdKm(_Uk8Pl9`gAYAIcBkf2}R1_PfR`!7pW;LHqGNq;b@W4h({w=w5->Z6>!yjcEBD zhvQ5MTa(m{*Vg1Ma{F!9Nb|GLlkdM9ix?oSR5(IHzodjCd_StCDKT-AwC`}GTm?Z6 zgMs#V=m`xPx_0dvz5m*){bkeU4bteY$OH2q%M*k~pG!yht^v2f=$_s<#f%4^RduFPG^ zM2-Y=MfV!D;WEwko%|nOQ|=xm?VmgBbY7IZ26$Ovwv}5&4knv*l;ExatP_|Ev=xB| zZ20N_FGq>)-c!gudtoRfTj|_(#0YMQP>FK273<))XFy3I=!j7%j-#SB&j;g=doqrt z@!xT{eumK28-=c-w#(IXK4`0}*Lrd-KSrg0cCjBpm}BeIm;R&Pkm-wmD^fsqKF@OU zpQ)Xgk4nSk(j%6_3uu$vK4P3BeosPR>NA_SkUfYycWu}93gxh2h>hd6AUbZ z96iCD4_Eq3q!(?g()3*^aN)H_s=x}ad-vP)ez$J7$VG5ls!3mG)s62yQA_K#`D+mH z6#|UO!9>Nc4&W7fJn)FT^77MiEyn8^;0J#Db*fLQ!ue^>pQNPxR@qNJ(O3D4`G3uk zy73JWIKG7}U$Kmu+FCaXQ0!T>?%$P&Ir52Gczy6;e;Gc^I*+Gv`4M;t_1IjM9OX(lLR530ITr!H!E{6L%rm_dX#S~LyRL)+Jl-eMN2ah& zTm$)X;D>p6>@R+hNHG!MHEUMM%2msuxd^Ei1|9vLz4hjcc2@nYht8#7q^!AH$yZ4) ze-NYWLssA$M<&_JV#-x^wvz$q+3wS&&Fmo4*Cn-lmc8L``nq)bnqJRphSNQc$Zreb zrjYw~VH7l~N`=6h)%{d3!ZNT#_ej%ls(I2!vOvgy4Fsp|v+egJ3f7IOD%@j2{LAJ7mb0AnYf}7heoh zqI>X=FC+;5y!RtsMvYo^Wc*KbA$5a1{@By%gSHy{MKhMjPzVB;9GO-U&=kIOgwN?S zL6}pxQ46kDckE1&k3a4&x7>PK0*#zwN2GSO`m!ozJ>r%?EtO0Ug%$-R(jQ=W0s<@Q zbB7UEB)?#U5AuptMg`Dsq}!Nmdd_wuL`z2=%+^PoH7Y>ga?71EX6!UouxZesvC?^b zj`YzL^aKNC7uyre{5;oOE1?K;54_0yj>Fm4WXzZ!^_^hnP>((T%tBr|ib#`@-W z##WpKWu}imd|O8TVDUc8+wJ;Wxsvs{ZZBEbJ ztt($AQJX#kK?%=?2K(;ayJYah2?!n^2u-^q5{?JL5m(36bNLE6g?>Z^`)|E z^>P_KYM9imQ%_C9X$`Rp`G1}=QEI{BqY4ycDCqe1+d)cj$JKAFhx?@dI2P!>t2*4L zGNuSENcLrB%B z>AxUM`ReP>5v+cRJlXqMpJ2m&V!yKQSx;AUxVZQamQ8*j0)1N({6MwpHKj^Kl;T}d zeOeyMEzLc%tmDHmLwrms7y*M(!PwY$3`RB*?mx|1x$watg{d(}H zaz?|ZGWqARIOD4hSNq|T0JlB-odydODvB`n+uutTO3&VpAWl%W)UV%AEld9RW4fLR z8o`LGUNhHxg#hX0kg!S+91PL05fKp)vSH(T>HqHQk_hieQBhHOaSThcPBc=8f>FY% z6-y*>OQO__uBGmb>CNe-7yIa|!(r{gG;jWF@OMdwnOG5XwW_RGu~h!~XN88vprkQ1 zb%*i*3|~QS0E`i|4D-DS_{GSm>JkKDXavd%1>eR{7+J`}y|t)`&${D3{34^G3!LZd z07__eVSyCtBu1;KwJIae5m)+NrsmkG*0wSNv8jeZz#w1{FbEV80Ww3>TB7+lQ;nLj z(9+70n1CbF9>SONg8k*J@KA{ffzRes+`rU8SpBU;ypKRjd{#V1f0jR^W$M~i&`B-{g&LZ9*02a2XSz22Un-Y(NUOL@7R`)v zH1jsl>~@N*R#O9rP93@c@;*g)R`5T)b zv!8MPbmYG%i`bKqAz7Jwbl!*Ho$6lC`5_N~7sh{_*1{2DNPyUZ-Y?PQnUR3GAIjrw>Q_>XFMpV zP{A_I;$aBgLRg7Hy+APDG=t>!2w$eSNB?!yc5qIdbQQ6|^8Nv67cen6EX!v*F+?=6 z-NesVi;nfy6MwDA9I66KUZv|e``{)Y9vIGS3)}1}6<0Z~$}a9}Y!??^n$WTzNSLr) z_MGLlFlhafnBsSiZ5}Q;_Yw0`N=&IU^YI|e9>=`Lu|jQQyT5Ts4nU)p0dSqmD(*I( zTwdXGn)PMyUJmE%?8E9a-BmrE`^vDOB?$xT4`b}& z`C;d`Z}HRdS@vBv{FA2U9Fa8#56d6>j>_`GI6%%7jQHnTj<{}tW2xqQSwMi}mIvY? zhy%yDXeDbc+7BxauD5i*#k3!LvGbb7b)IvVdp4ivoaLVEocJ8e@$=&hz$ijq=A-LW zTCi9QMF8SW)XQ7r`AkL7KcuHvGsdByRf}^SoZnU4zu89CgP+8M`#jeGJCUB_p6J+q zey8w=bc`qa7W0wLqOpwGz8Zt&QF$Utu@#Xxp3fJyv})8UXnEz zPcPoW+rB9bBd*CDM;u?uUt}H7@2=iMdXDQalOz4ku~dov)H#$;4#zEBP96a7Y0pJh z<&~9d1y1L^vn3wa5^NjO}JQ-cYIPQVvbvVO>;$}x14(&^~AD3FO^>hMopqIu*!9{?RkQ$(lsV-u}@UVo|KxBT>Qn%;b zt_lqU5~Q58BtV&1e@?W$d-uv71mt3(wgETdt%)1;xAUJm_0I6QfP@Da{#bB$Xp@|j ztLcziF}9gPA#UEzc+f8)7a;Z#|8czV^S_kij7LfS=0O_AptGhdHC*W;gNfraPx~Xc zGWIxNKQeK=P&l|78mg2!+ld;vOk8lC%iwiCnE%GqicwoUVWaMUGzzc(x?u zAN#6htwf|Ahl8O&Fj0;fw9S^>vrSCQOCpnu%&xSwGBLM{YfiHqu4B|NIJh^>YB2tC z{_{YVvVd(#33=BYzu4o(ULPFqmHv0@5R>DBZi3jq{M0#(YvBRMBsTE4)WE+`41plb zbB+W{NMeZ&bY!6Y_+Jx09lz)OaJX*ebpMx3hsVi9W*3+8isQY5I2YcAXs;U&`%C&! zv;yllEk@W+_S%;Bfcat&C0mbQDDYHO52*tv3%RA%f40?KRKRB1MxG( z!CH!1jMd<3g)WmTLb=8rkHm3Gd{_=?uT2})XjAAQEFRJ~Y~Hm^C|y*V(u^=7xR#3Cr{{-{{ipM^Ng~Ze8=PD*Cuzwqipjyjx{yk z4FU!MgFwk4P#FJVgd-(~eTkP$27lZ3?GhgsC%qndLSkZKW&8GI`C`y#vN>V1)UQ_$ zg#5qK z)|a%CyYKoRd_Go1aL`Ti>f5hN7_^ir?IW?`%S7Um3<{Z<+wZtvuDtSU9DG-Rf5-*$ z5rX%SDNNpxBJp+Oq~}AANv)XLlCpgpF!@9_Z`mR-U}o56o7o}LR}TTao_gZ{WY?~p z^2UIEay^y>9A{QO^(cV0+s(_ep`DkI?I&(}db**_$VX^QsZOK(ZDre{HNnkhd| z8ZT2OjnlxZ8`k|Jx7~if20o(J&61^y<^A{i2?=x(t}KJ?rWR_E$^oOyI`}HFpLv+g z{^^2%Q`cU5BQ!@U%bI^z!B7128oZW-@OCh~FTLC!n4GEp<;P7JCBICWfbrc>850VE zNH4RTRu{LEJMXv;{tm0d$LL1s|K8gY2F8EKwk`7Hlg~?w7UwDRVl%@(j{Y8f{)_sd z_thbqyE&bZm?-sPYfAzSLY{j1B{~1R3)FIG+Vm;vcb*K^QMgi}WS-;OcF*$cbN%G3 zGh5(yw)_EKklzmwWe0 zK-rqSRSxXkgJ8^eYmhz)QOJH#aJCSBZ9o0w9ifXJ3Ruf#B6CfxJAP6)VlmtLo!3}t zW^hU;UvbJ%hJSL+(u98Hyk!4!E!Oo62M+j&l$XoOYyKJp3PFHliHUQ`r2Gi@3LC!1 z2uJc`@69i3-waWumu$c(H=`meqBpIC%>S%jn9`YaYeNyoI-8uP}^kTKeiP*UJqE7+VP%?rZ*C zE&X15R{0c;L6*Tpx}27Iy`OweTAtquigwxZ+wapf=xlUM9gQn>|Ghm_X^&%uyc~VW zzxL`gKIc0<#i_7$$j0X+UZel(5*ie!LRr#v#D?*-C^)+Es%wGe&FW)5F)=|t_~cy` z@>YY}O)3GFxAn-vsE~7u6r5YsE9Bfl*XqJ}oHXz__moo}$J0?~@)-mS0tSJiBTyLs zQSJh=7afXI>q!z@^uK)s+|W0JhDoEwO=S;)Nu7fO-ZmGvm1)0DQJ;-ZfCzi=fu10h6aLQOwp;4LMM}F%FO#j?l4aSFMY0bE;T+rhva+RF^Rsmvb8PQL-(QHs^NU(u zD8s)Sq|NEm=Xq(=sHwVDV^G^*xN9R*vS#%%sRE&(FUGmsIekf6nLd58YCpdE+PiYw zt#`roU8Yp6T1`5jugRFsnf+VdxMr{}3c zJQ?uThowHZi*rsNf^g{Eb1#qqShMONxU#N^nA;b(ZVM*#7uk<7^WcMzN}D$AE$bP~ zt%`7Cz`5|}>=_8qSHq`5K=0;~B_QB4+}NG}@qo(@f-!0-TK}v(Do}8d-}(8n_}i+x zB@E&Gu>Mit$u@Fzv<|tw!_nk62p9xP8v)K=3aBZJ=HZbwpYzv>^PRL8T_Bm19|5{X zqoPFLXI_CoqX)Fk4=Jrm8a_O{vP_vgUMgU3`|68tJfelE7}cw1Z&jqA3%ZF=G}*If zm$;%gC=~e<^hWjS(Ro(9`D<7Dzc`*ae$rr7Km6M<((-~hA7%r1ah3lhP%=eghfM|6}RWxtr7h{k;wWLzg0GZ;KW!rTYVqsAUOTtx99y zix?P~v^eWf7E^Ka7PQnY54?ppeNh-jR4QDucs>sEyUL5tzm7n-Rn>jSrENNZ=V&2g zMh%mSa1TWOjbmsZc#nSlK9HMlx&tm!_bUC~zTFjA-;T<>Ie$n8@aMPPb`QKc9F>4T zxXZ@;JqY(~)2B~DQ0k~MDa?1f4nbf@1->&eNBY0{L4IBX{1*cXlUJdVo6VDVgMjIU z=U$UY1mGq{7hZTV6v0}`DDdVP>1pM1J@SahfvXu$&MmSKto%GE#+{lxjyJQ@x<#(Jrk!-{+71W&$x7VwX5Xh@kSSB=$ORX*(F0~4o=%xMQ8nobm-;gJ>(5~+aIFmeZm`6~)mLqkw4K{!^q60Omn8(bs$*x_l9VXRmMzYA%oYm9 zbH$1!a`Vld;Z8f;3Gzlrqj^tMgLx_48b+Gbe7w1yGAV^E(DWXyKX$J9y&1`^ue|C!i+JG`VCd6a@%cPq*JGhRoHjM<()KdS()3# zHm5)PRd*%of|K|`Yfzsu9MF{{}ArcYRi?EU8U_N)3s^S2DuUQnsbHgV!zj) z6S`}o?^$<=?yM*%E6smANW}k~9!QpeKo1si7{pKeA0#D|qUb;ST6z0q8(3$n9aeL# z_8%|RJ}AxpH}5Xp`DgI=5Pz(dCY1~VTobttGEwlKn7CQ41C844+76PqB|(M%y!ZIS zj~7A+PS`a^fA zbSZijc%TLi8p+6!!<6=W1$03aTxxZ_<~pq~g&l5rq$zXc()L$Mhjy1qeb7@=rb4j{ zhqiXA0qayM?mXD@KIKKab-N6fB)6*-Cj}#RKiT=q$|re?lp^pJYh3ac-M!{5SWap1 z7T(}r7)IA$ce56E+bwsgaO{ys{|CjTE;4uCY$y`8l?%Y1)B~?FdGc&|@x?bZFBJ@z zuUM+Q<<*@ofwEQx=AK2H)`s_o1Bh#IO_xiR2f4Oud+GCJ52+1z&x}1%*2a>j>(G7o zJmB&i;pSWJmK+EWfBt!<3>fg4;=}cf@p}IE;GH^O$Br8*O`9~w9PEgI+@U&V%G-KW zoIK9q1AFC?66A3l=Lg4|p?5r_cS@NrH2q}y$&3MqG4LPx59OL1{yActQ5C%-mYtx)LGeLCSE)AQUsRxLapw$u& z!NJ&ZKgx?QJSikrI)D-2Bx8z;uP>W7Z999CUsXNtuSR=Ia^UvOu>$=^f*I7?$idTYW z9n(O#+xm6d&oXrASk=1Ii}*v+Xu8|^;DbSm<=F8*3N17O0&4oyl^FYhKBZ~-Gw{og zWid3>NGPYlYCvNTz~UU&zy@O_s+VeM-7rcdK5bODe`!IS5OkFX3`w z;iA7hF6Yrl`=~Y2$PwR4Ww@(4>Vy6!v*{ODL4JqH`Eu`?~9IgTMSBnflAm5>hEb z4(-p770Z{Xb``5eBAjEF?cR~POZq(BQ&vI9$8=$(U0idT0sNSz z!)k6CtZdeoJkIpS1yE3F0OgXDov9L0xw21bVo%XzyoZQtHD%|{9rD3P{h|Ca50*3$Iwp_7 zB_(OUMsQIZ5fKHN;rqN|^LV7jxjYgSXKL20CBK3eoeH{|)&ZA8(ZUuW#lUqh1O7hI z^GR5ZRD_G)g)-#p&y?mU%fb=T&UE|b4R7HO-r^URyag;Ayx=YDa!P}@$m?hiz7&R0 zu7(P%lxhZUiYM_JP)wvphcWO1K%P7_ zHz@B9BZkW713%7-%Mu-3Q)98L+ptbF8EQ4;ql1fvuUUREf|}5^PMN zaKW_;f(9mTlAB!O#Qh-(!JVa+=o#_IMiA)O< zwR33N%Je{wyLGdVs$NT0t+ozO1JHhZ`=^x#-8xl;+b|xmSBI;e3omRf1K#Z?({U(W zC(a6vr-ha9AGWsw>arVwv+YTB84a*iE62CbhOS~lO~i^OqDrt{~YMoZ<$>XMnh zOWI%734Ti66A%0>N1P{@XOw zagve|K|w z4+KMGA|8L@S*;7>Xs})sj->3^uKnMp?d9_9|2-x#5C$E91w?F2j0#4s=y;7h^3daO zI~J#|xV{{0X=qVMP!{HPanI@O?8CBo~7|1EL=Lmf%~l%FPeT+>svT^<8qG8zO70tNv^fCs9i z$3~C(4hOOgWb2lV@>JiKrBTBs@&goEm_k7F7Dfw$7?y~t(Xup`u5zUDs#ddH=Q`6H z0idgE)~F>L*R7LC(Bow>k*;7c`GhTrvV7@6C{i_+>;oC7*pkj8}Cpznl5>y zvrq6y85tQktPYl4DamjEZkXP>JF*sWkKKVxj7UF^8a+aS!y{GUW-l!3HDO-v0#A|y9;Oy} zl(qjXm+lYUEt|F^DbM=d&@ZKagC;5%dHd~8RPZ)>%n$l#1z5h5u5SjRCfzC1%A{e# zMrzs2@k@7hWi1uF4mE`!$g)bK;3E}6N~XMX1n_E+5KJ;X`0zcF0i~_zn7WdYu~*|C zy#;J2JRu)WVaQJK`s4|DHc{TzqZ2&N$b9D(blqK)bBoi9$I&5T{ul%d0tNw}Az*|f zK7+b=Uqr1X`m?QBy_y8oswJCn7&!7rORMRPH(%73@hFLhWjx@wlM?C2VrHl4T52|zhQ&Mat&P1P5yZ- z1R(D_C9g_?K1_6VBLBJgXAQu@2$)u7) zfOKtB#0C5p2e5ZTN$Aeo@0Gt{CHw9>uj@!-D%mjida#^w$GYCiJhw1{Im05{QecXu4_Q5Z|L zO0`-R-wja9<9g&3kE00Sti{E-h1Wa|yk`s^=sAy*`)U>Rk_WfFEZEo0r$N9VU=S$t z2>eI>!w5&pd=D2~K@uAz+$b3NddQFJm-CB(A3@uGj8v}~E2+D7LQ6VOHSFzDX#PuL zcpHLNcewm&X@{WR<0p6n2dNU_o@au^JT+Yfrt03i!T!2Qwc7yC>UYT zOvaa>+pPX?zpUDDNjLzeP@oosWK4Sybh38sSP-KDvU5j@wvhq6|Csrkntpp7OQ!7XJ#=zS^lwMlHB`*oQ!&Ow^{L)yY!CA-U=1 zyHxA!>unYisuu-~qzg_9p z)hn0gr-gHsB?_X28{{7H@*PwRV%iP5ib@yx>5UkrH+Mi2yb|2@`i2VD>J;e@wecw! zdFP$aRcJ9{()~xHCov)z53d_vUKTUnKfsYDrh~}<8it7?gwP?;=kmXzP(fdi}CKLz%_CF zNVV|ibCah`lqVkRD`z714_#Y_hc_s5!jXd4q1%+7QhXrr$m2C&{bHXZkndu8`IP}0 z2k?jQzm}F4UV=dMVe;miFX+9?ujmXbug~Pk$NH%2XnKPvZ|e~;^6K28khQubc^m~j z_YcoG_|GJRfI+|@a5^Di)Vj)XZ&N#dD*_I__ufEh0nLif5P0~jK_6?2cI`-(*)xAt zA;6`VUY6I&cKDvLH(makKMR4`uSEdC+tq~--BVe~3c#i6RJf3kun9p38^|rU-lIM; zAAR@>VH<~f%y}? zpOa0{Na^+H(?Y+c3^vKcgYV8)U#s73w_wLWypVulii(Po!Gpd>5c-dW3}yrbLd1Zs zxtJJ>#LlZ1O85_nDz@X{NBSUu^zG0znj(Gs_SCo1Zz;8Ik|0E&YcW3%j&dvqecMeL z*wLeg34_kxc;jvGlYFJ@+@1tH`g&CkwV?i-J6j^FBi>4`wL%FuS(z`si-M6cW2UJ~ zw0r+|n=JkNF93?HFfwGwD2atn z-&bFMUMOr}+6;@DW=+qOABK;UK2N=%j85BjSE@j97leye@*Vr{ZcZP|KB(@|*dNyT zwd!^Lc^Ard2s`)h*(IHzWp*>>bbZ7VY22u(eDT>g()XEHbK7BQT-gG{gv7Ejw~K2| zcj;mUSndA6Bl6|Iq0$VNR!nga2s0gkB?;3T{oa*9nBNqPFf~N5R=OTJc5okrkd=Ho zx3vQ1k3qm7U=T0}7zDgPfUcYp5J#=erI$;e-p@)Bw5)HskygZ@fkC(GCj|dg9`TG8 zw%9?^w$$`yS_CT;T3$NS8_CIAWdpR~Yrtit?-XXVN?!e;D_zDUeEx+uQG^ber`#8MKX(1VHe#*7&YB{nt&zm6i9b~kmiMYpX?#~if3^+Fl? z<27$_yqI{4+;U2Tx9}EzcNnetXO$M01lMg%5H!5i#qA^oya;&`Dmu;h<5vhSZ&CiM zQ>SYrb5E+=cKdyD|9ub15(rDWKX98q&$*NWj|R^?{UT!E%~pPeH`-p(9(>$Uct+SL z6%lK*EY3A|>ktJaO!>|cHm?)=9AWO~5y7e#N-bzt zlQ<*6&tSzi5jJG#S1Nev^W<}KE36OBsNYaltXL|ee*8{o-swyCQalK!H9;oa27Ug? zSJ2FArrIW>ad^%{Wghyz_rY88{(Emon>HQf?zZ{M7 zQAgjcu>Q!ke4%z3|1m9?KO356tCb;SK+DQis%Y$zNt4FweP5cH(#j_}B}H0;NPggd z533uncnE67jsH#Cyax58pk&I_iSj4{u>bzsUqWl2*w}h9Ay)t}|F1c645rER=g)xv zp^e-JcTsdF=5aX_Mj-(DW>{G?%`3}Uc+DRZQY0$%Hv~4W39GQj<{|4sj=SykM z?c$u%wi~gTGk=#Bu=x7&^KW4xmjo@ocomFHoH$n7{r8eZDnyz*ae2 z=gY8fMr*8zxO(v#l>OIfKl_|V@(>!$ro6@W?FH}_A+iRR^Z%WfUaXche8)<)oJ#;w?!o+kBSiLw)B^Rs9FE-?t$ zJ@SVk5{W=?;Rw*342`@&2x3i_JoRz|HlH90OTP8l5C+shU`z&<-irR9CK21qVB}lj zQftnfKV&5YR*aRxJcl79`UL^(2K0Xg0U;a8HV9Y#M4MB#Z&hNO0q(YL^`e{suSi|^ zg7syfYL4#=^h>kmXKNp)As{)m89BZW;vdb?Q+B7xl%GdSRkXPZ+$bf(dScMvPoZ5j z8SciK$b5`#=3{Dx7&SC~r!@%YOBT$$`Hy2`?Z2z#*I6^98pa0QRIG<3&PN}=D~m99 zVrs<#=bSu7xFmbKusOXxcTUfOs|E&Ijf{*$ERo$1atx6lM-EjNVXX7wMe`*DF15rz zP)0ydR1-oYnzUzNy%-CD(Py8&BWE;hs;=qQZCF>TbGta_^h#*Ua$TDTq0ko0*@%cL zSl2?Zeyx#@KYdT;VLUM4`q(kU^#G|#{OcIA*pTc=}HK) z5AIB;P~xf#$9MbUJGGSAKE@4W0BCBQI?qR9!1gn*6|gTDT1F zm&AzeA#KlffYvS)<}hv;m1q)SIr|s*9FKV<%()}S{SbR3L<33FdOkI6kE~d_KvKYe zMW~Ch<1!N#`_KO0<9ZNInvP?;tfp+ltE2VL>BL)j+ZXOI;yfY$wRzKe@LAhIOVge6 zahWxHhP?26Z{;QFE^FqDUu5&<4RQv?Voa?V@Lx$f2Fa^asV`;6c3HS|iTnlHH8VF* zIj>KiJOLgOUea=$_W^I)Q4;wJU55}OauF>2>EU4g#`RLIDq^H!%|CIDP(#lVh|e0t z>!AYP^l3lI9$0cmL`0~|yA>;z$Q%7%h4sm1iH~m}6DN!;SL+d$fMPqhI9+%gu9>7y zxMz_TB0U3LR^9U)$1%rW81j%-Vjl7|+!uMBiREy-Q5lr?85hXW#UbNSF^}Ujj^*>a zO-GWpVp+^@(~+c4cwgVoda@o$m%{4>=&3N2??`7kKFd1tyg_MLD6cZ+C=*>;2EZjc zpLMKjVQtlCQ8#TX>Tvi7+`s3RsRg_E})@=b^J#K z3$}*!xBJ4y>rbmo#EbMi`;}M`7gzWw{Izlkef#AIBbDViIe6j_^BO zf3tr|19#S)w3d!}w1IPge1&sen2&r4&u2)BIVO%LD(Q3V@i|X%b1cJ??=0IL|KS%I z6&jk&#Y5YZX4`8D#!uz%6n`h+qD;hrG4o|E5~_(v)@w^pWF~aV9Aq| zxY1?t6~ZG_m_g=~uI2KQUmyfI@p|B5Z4_8sanl)_y!`l5H?E-uFW&(-3wEj$SxurK za5)6#k?-(D@?=gkU?Ka#xjj7CKL{6d+;q7C^N?T1DaQGBScEwyJ1;Gz(ji|b6n3!`tv~ghj6XEWFiN4r< zIoItzGM@$kcL?Y@!F?HlYV8yf&0Kdl-08Ph!xCNe645&$dM}9Zbdp^ojHojNqqiO9&ToG=+5J76d!PH~{rml%@}6_v_c_n|{d^8r zGMFq{wee!d zU`H;n<+6Ud}&fIS{qBMPI0H z3?CeiDk-3@Ak)Ky8c@ny|8DmpHRWCf@9?0{90Znl+q;;Qw6wA7$=A?6MMB-56eDHT z7212=91Q@UeY_5O9UH=z@nGgLYbRYbiS&Jsy?W-|`cpI9xzaHU`%2Pi9HFv_dla-5 z52=8MrO+X!EN37H@l?_7IOkqVk#$G9*=1rD<*-L>oi$oFPXunTsk_%Ya^?7lZ@qmP z_(q9wEQGv(Iv7d1&t~TgCo?6iyVEVG^iF=HCoZvaHsJuywf;``y`K;8mqUfY6i<&v z${Mf5=Z86AG&IQ{gU~RO7NA-niF2~BR2D|T`g;BO$^+R=VRCMkDw$gpuZ&2i^+~6* zEAkaE!e;@2PP3YM} zBX|MilO@?7#z2q)!H3;&R~Ct4{OR)@eHfNSV0dL(Tm;P9I%&3PgqSzn<1o zVm(;F3B<|$R0em1eburr@_@@Lql6m$&y8ppm_;b4?fAo{9yzr~U0>N%(~|SjB4X*o zhcHWgss!T^Xz_Q0!L~CV2qbr&6qmM!%P01do5d`xaqL1gpC4mlDBvQhJF#Kpx*_%9)(~9oE;}U=jIZBo_fElvR#oZ*TzE;!;<-45l;)4 zST7j#^@zzbeVsJ`>;i7=B-RfvN(nv05YioH6$dY-iBo}}l|^d;#S#P2@R!eDtj4eJ z<*vpc*Q48y1EZQEp=0hD;|?URFnTXfSc@r6-hoz%&@CW-P{B_MOO`{QH&oxC zVI^l4Cp&1aFc!2kvK^HmvRKqJUKIHiwjr9%CTC{Y`@uXar=1dQC@Ut~&bs zCd2NQVSV9x{*jV^lQyG7LoE@CtZ5{*_in1Bhq%cpSTiB~Fy06%Yy9S!hSp-?2m7{m zX4R8nhNMhO%E0=QiirA?OE!sX1@3l4wq~Wn#ZQApN!3OQ>{S zK`I9b*;4-!jR0{ahZk^%r1-&Q*27zhBPR@J3dIUR=>bAt09^E2;T`)-izlgqEQ%R~ z8I(3~MdtI?O*>lNS z7e+m$gWYwY>Po0X2&Dgk0EUkA2#>7fDzNlJK}Sn2Dcb_f>3olc+3*QKwhz7>|7u@~A#a}g!*NaOXZm+Uz7#0#5bJ^g zs$-<|7wsZ<;h_V~3H^f+Z~)(#t^kyHTKsTZQKmtiEAP+-!Ykjq&bP@3*xlz)wKFP} z(~nFfOU1*k%vVu46D!^IB()rF6Ia^#@>_`a)uWyrZ!W^l?+S(8|EfImQmo&chl+@rMd~jmcaxjKd{)B9*rhw=shB@CAs+l$|wH;h{8U-lldFklCmvWJgc2{f5Ay@DiIyyhgw%+G+RkVJ&;p@#8b7plWP}PW=L#pO2N=;I}FxAgkCjnpMkcp*IEDZpd~%7WkgRbrTJR z_0I-9!aQj8NJ*gv6=NwM3c(~LE(xyL0n+X`i39`X254USp{dN1PLRA=C#MRnW6Aku zm!d*z%(?!U64&iLwJ6V$eHGxzv1Yq7=Q#j3RW|O`GY;8T!>QE4P#k-VR*KZ%{Q$&v>3Q0+YS%XJ z73I&RyfV-g&v)_DD-q%~iiL?JG&H-OaPo!&zfkL{AvU7#Tm+ShoIN5ZxeM}$_M zCGgvheSin-LjN6a#PL+kpc%k2@p9R~|o>U^1X&y{p;`GC~!X_qA*` zx=^x+bfh+KGDmX7cMdwNRT}EHa?Ag=uA||X2*Uvhj9dqS$FGzvHrn5? zPxCElg%`;azxefqDHjdQfQ|ixp;)s!ac3qHLXyIqKaFW7ZHQ1 zP^1zz{=|Cbrg2mN_kD2l-Joq6lq3jD9(zq5-2dq%E-&cy0VP%jJi@!F zqaC@P%`sFn*@vsU4x<0Z#=djqWkH?1B>WdcqEhY96e4=j7!jiM;VrVVrv`+H&NJsp zck?n9poS0bNV<#8WdB}vB>kc9qB0Crp#38K$Uf4qDjXvdPqqgOH0q? zuyiN#6bk^mD7B7GjA9^Ly>bjV0wIE@*wL)D9sK;_ulNqZH@!1Hcm|+|A`vM~Z)Kod z$%@wADGi&cBzmUOjh}(x)svx{#cpA<%wnK%?V{CN;JeU3ldL`@seOZ1yEdMKox^Y& z#`v5HN%|Ru)4PCoBvG4E^@!y9vs z90HK1XOVZOHNXP9r5Q#XOM)uhgm&ri(-6mlGD`q(W>`23-%wa*gb=>|;PH(+8FP>k zO@DXFwE;l($T^aR`T-60p^Q(bPgYRkugwAsQK1@4U}Sk8+P)> z)&kvPm+`Y1`UTlfL3dtd=RmGi33>8AQR&!og$uiTAq%mxZQHGEqja5C_;Hc{X1TJE z7z0SWJP|w8So1lXo+Z=t(siUig~TIsVf|DiqKLZ^A(U^^90zGhs%Q@kvaj)UzZ%H_8WmSd*A zU}^Vu+R!N%dI0rY;zE2&{$x%<%a_NLwRPKf!IO&ns*J4)zsKw@;WiA^MM0Sz1gju1 zM7c6UGfTm^&X#`1wSO^DtRt(bt*YD}pepRnjb`d*RQ)+=yxzNw7b3E)4GoA$51){@ zH*C^h=@QNk!SnB!_NyEQf!p&gdonjpOK)j$?iPLu4*jYZL#p=*X%aRe+4CX+o;Ra94#21c~b1qT0&zd3=s;hD2|tx?LY4p7R&6!#kcgKnrgA_9q5HE(&>bW^X)ISBVyz- zm`2JGw?c2VL*6A}`!P&PMle%I``6A3-=j;(TN5FE8A~b!+b=pia;xBTE{uq(N+(MW z{^GmePz`@ly}xJo+nM-})jVR7G`|XtfSkAG-!t?dAN)Z4ePVRjvR-X96)sTLTl&L~ ztc0XS^GcR|>GOo--Mj|U^Pyw^seMV62)f7ZW_%C4Ix3G3; zM!W8iK2C#+AojRxO{Hgl5JnT)z310{Tb85y{IX%{Lq)u_Isbz)Edm3}T08e!775Gh z6k0=e^55C&-wjge_7YzWI4|QF+H$-@{uQPR4{!X@U|?WKk`f|{U|_F!!N4F3VPAo2Xwn|f!NB0o z&4h*JC544aU{`7w1-VP72u5M~O-lLM;XK-JKMK&LBlnihdALELe?~F@J+FA zH}RFA=|F;|4H?>zfswF&;ph8?<-3degf<Q1^oisS2Vb94a!KAcF)%fe-Sm z4OktQ?Uq5MTR}n6o!Ndlc8V zZWM0f&xg{9G+tFF-n|C<;j^{1bzR1n=m@5j@@|CnraDg<1uO^BXPK{)mqY;}Ekk`~`AY_r!N8b>U)2b};;i zrNH4%qF#1=o^rog$wLU_AdK#UwfDAGoK#F`i4i=3JbsOz@jGPJmNz6_%$kswk%@z& zdQH~DP91NNA5p#VT18gLX;8!Ato-FWRE7B0*fJw*f|y0s$<8t2gL6f!_1SE3%D>JE zHpvo@w~$6lR8Ww|z|e-qy`!T_CBKTHk|6GbFjT2{%N3j=!Y^1#%1AGwN362#i5xNd08csPX97aEy8740F9gP%DHC6-~AH_V`y*eUeF5Nb1 z0-2N0VZ&@nT}E99r!=qlW7DlLoVt)ohmwAB7i|cC2(%=vq`PFzCQHA0jJ+ZoEkc25 zflvW*freRO)i;MYhs;Z?y&VVA21>pJo%biXqk|HCoP8Ai%6*rE4E=Qd_kG3#>;wD> zh`x^--?;9&nTDT zs!$hwD5Nf$DUvfCW7A?|eXGf)^J&2R)hD8f!|_L8P8n8_qvk<$jZaOiQ?66;wK<^* zVS;SI2%mOnY3i};lIoJ0+b1_YH|opd1EnkNtDAl2J#Thqw$;~cuZQpk@L%C4;6}1S z;U0(cij|@D^bMHiDKw757(i}_Y+Uqsf6Y(s`a1b-s8~f4zvlXKUQ$UzDc3AuuMT&K zVfHY4uC6|u>qpbXV?jWQXufECcU4ZPQPmdiV4|v~DnSudk*K-B!O?UoI}N^jGC{J} z2k;NX3+M~fP8CjQPFGGB*Z0>8hdhML$Ro%>1Y(4ggc_06kr%RovJ0sVsr@55Ba|a@ z+RECTOqQkJi((J-X38Dm57uX@>%ck0Ydfu?mf{yN7QL_A-0Ixp+;}f0uixJso&nt~ z&kHZyb}YA2PoDb3=cxPh1`}sE`f8`0$47h0+N>9Ke|R^(9D$Ylq|CCpaqPWSOCw%khHbLqzH@ksPxuXAJYG?Y6R|Z;i$5L=sK#qw6&# zE%lLPk_5XnlZ;pTda@m9yue%jYU`r?>8B5QKMp6n76X@i=BMMCVq54v^&7XYLkY(s zzYuEkY&jVpr3`!@&7Tup#Hu_@w#O6g^g?2^! zYQ1VvGcMB(GkDX}(~^^0Go4qGSCuB8M-Wr0xfbR#mgUDK%!l}3MkrI=pOsGK$ahjl zowYw|nbzgoloyB0$NfNjYi*fk9b$oNjbuvLwCPY#G@Mz3QCK^nmZ_aH#;)t-;Y3Qz- zvRhbnvQPKY{QAOLn$L_v%awEqv*K#9Yla-52m&xX{ z>Dcb=)7Zls6n)|*x37;jdkQ_TjTv@WRyKgt=yG)4DtFbkiyt4){f9+Xl*;m=s5D{$ zUJK_7c?HELaVDZaCVo`E;eK;e=~M|hIwO$o*6vl#miWZ;a$*FC*VTFKT#ssTeYq=8 zOHmsvyI2lxDex+~sWET&TqfhUajbM^5M2x-ArUsLi?t*~87@Q>O{-sfevttStWYEMKQ--9ps%-VDGqQ?+VwTs=_ ztw-)Wp%-Z{+itGpwj!$07lSzpKuTbOk-DU@j0_kZs0<4R4UP^52`Yhu{=mTTz@Yyq zgMmqbz&fW9E;KYt-(0>NNFcj%z6e+I zrmXIuF7uw-z}k{Y&(K=mh{?s$=I1zIye{0JqNS089*K*kg_S+G3m@4ZJ-9*TpVa^| zl0UjQnDddT%gB=mTiY3turo0;F_ZDblaP?`+8G*iD~gEy2@bmBBQteyu;B&(oSmJS zoZm26+nE4ZxVX3g%&Y)bRz^?{MtfH)2R#=?D|_-^gZyh85hHs8J2M*xGixi7pX2K3 zTRS@Nk&*qJ=zl)H)@kHo_V1aj?Eic$&;tT~wg6a|m;wI@%)!j~{|D@6%P+7$p6l0i zygvuymN#=TvQQT>vjm|Uv^4%VEL^O-f6ViLH2r&}zd%*&jqHT2EkTeD{QuspKY{<+ z_)ow;=G6H2oGhFi?0=o}FHL^|{rM2wibnR<7LGrWsA6U2zz`EyZ!t^2b-FW~3a|AiEO(b*rhAVTAZ=LP%^ z(elHmBkbdYfeC_1io8>H0Y6NIaZyp34s5+##t`zMpm2C4A4>AE9fB@6KiB}@eWtt? z&Al`5s5ZRWmy8t~Q&a>h+c{fG29`2AW;xco#L-^J^s^ud%gXjzg8lW}79YpWakZK~ z0zyK^j~>d(s`@jUjanTX6oL@Hx#Wd2MzDwq7bPU;_^OVHh1I#Vw57F9 z!!z-thNQV6A?T{H}Y?7C9bhpt{cqe<9!;> zmW=uhWANe1mV~tsS1Lz_(E12fhlRzKhJg+^ zkrjxk`x_c>TcZZ;SJb?4_2$O;>e^a}PV@b2LE!-1#c`j+N@y5U6FwSRH2O%Pexm>O zes$(Rq zOX1=~_4wM2R~;&9Iw%4H-iC(RYg=kMBJOlqzf#{#(o>4r|{V0T=v4ZMPg3C#e3{{B3Q%erR}jk$_eLkd;H#fyoe4 zwmHH>ERx8iUH-9MtLdyK%ygNoJ?>5Qx6`-3dwJW|$WIe7iSRy4bxNDvQX}E0G(t(v z=AECj!mTOS6>$iw7YhKnI6)Vdv!^^@eud2$ljJwQP+It49b3tD5=0MhqW^wXVHpD>qhK2D%3zNLm zMq_+j1`P)X5E|@)??)%UzK&tDN4eAI?yThG@z}4n>t^A+rz@lrLLEACRJY-_QBteZ zUT2$Ssioa`Ef|EHI@aLGV=l+1AQtgFJAbrrV+b-4zjg>W%XE+dSq%H2gCir`7hNk4 z-IQ);>G^*{4q$MT(BL$H=RR z0!j3K%ii*NAYh75<)M3PN|J3hBAizX@^otCm0DW(fo-sY1Gz{pw`*v1S1UJ3LLyO9 zO#9`T{mtHKyb735T)Pu@>JGau;VN8DRc|Qe0*SYW(nyJLM7Lc@3;K_=IL?a4{8v^y zcw~8*bUJ_mm9_^ZYI++zSEl1+$e#C?!m>_DuHL5T7tSm07y>ensy#O(?ADTKQD0a+ zDD+CbzVU)b2{^UVkWOo&Uwru@Z{8}MXtf;=Jo3Kp=SiS>Ds_L3V6-a<{LcOIn5in) zyLx==OHAz*WRgY{X{+l6?<}Y5akIpMO-0Ynj_e1c`_a)o_$Fk;WNTpSnqQt**GU0v zPT}{|Lm>MTL8q7iB*uns0xqYnE>}}G!&$-@Zms77jdiCTgQ%+~iVmEP=CA1BQIKxf z%+3vqHLJBc_}+HU`HfWnc-ftV2C-+C<9ZW@cXe)xabYuo*edVy$u>S`;uzdpOP?h_ zrav#BD~Xxz7O0kJk(RUZ#!pKx)nKimD@uh?p{j{Wm%2Fm2Q@~<$0d9f$^lkDl-rh2 zoVj9LEPs7_z~S-$m8so0(kHR-d2=&j+YBABR#vq;Tit9lm@w-;d^FC=PgGEl{Qc7v z{DtP;(gPIFOpT?xq*Gc@fs%LmO+ZX>Y5WUi zfBJAwvAQcJX5sBbE;dqPj#QWott3s=B1tK#CM6|h!YVI4&)|N6c<{7}TsQ-qTu!(4 z@#FFq6}$FY^=dR&{9xIXqfSE(nf65N{{HvBhDlS(Dgzcmn=bskBVot@pLeQr@#s<;%^Vn<8%N%?hkWPzPnJb7B0 z&MZY5?cSc5JRlMzx;{QXe!Ja>+B&^JNi<+o&{U;!m5j-5`BAE~cS*7TEk;p9$}5s3 z-8*;?&^kR|e^^0pc`TjCRB_PM+{};|+`I<)J7FQ1ipKddASkkpm!_hkE4e-A(x!=1 zc`h^b%i-Z+GaV0|=y--JLsKCZZWzvJV%ORZ87Jp!$$tE^a+-Hlri4${Zg8%x9(Rfa z?(aFY-1g$fm^JnZ?T)`7Fgxsu($Fxp5!SAdgpBQENW~F5X)^}++Ye2tSEFaU5fH_! zY7L%aNss5s@T52|2S{LS^{#g#oTbAMML&|9&3@M-YBWU`01aG~2hTJ8<-v@uow>-z_RsaDQs?=uT#t{B=F0*+ z>u3~J76BVkCt=A}4UjWB?v+#HUsPkgpU2|}*P>Yx9)uU115)g+);5Yf?>jr=7)lM6 z`T3oO&M0uX&NceGqkTqVM4mF&&fu5gk2v49AHUcu8?}|-K zT3m0Mm`z3yMa0B3?9P2MY=)8_l4GY!z?J)syE`X z?g!#Cbq{l_L>P4a=+x$YBSk^obGg^5e>f{Q#zuwAlJv%DyFhYL0y8?J>YSs)8EA|8Coiek!@a(Z^I||^%Tph`N|3k8d|UYk;_T8S(BhU zlyLQbL*_O=t)%PD{A7M*F5mznqZfGQDaI(mRh+~^%UmRMkcd=;9m>VxY+90jFGW}o z%{$;>byO4wNJS{+Z@DNC4TIXm!BnQEldHyPc_uwolS5Gm&(5ol!yroYf`xf$HlUQM@db5Rx67`05n0VNf4o^ z)TKB-3-*%%U4?iV52r@3??V48GX}Bhj8fRidXP#)puDz98yawUNC?tvdMELP;!%?} z7yF~p7<$<};@raXaRS_ecR}Wd_ieC#J1^Cyr-A}nX!nm!TGAK(u89_x1k>i# zkCrP7=p{Ty=IJf&W&$9iFO3zueyqX=Gng!=xOgZ@O%91Lk&fM=n45_(i%#wpGBYLl!$95q^gDZ@!0dCUy zy@Ag&K*y^5b0I9$dv9Gz6Ts2V)=`px@Iu*=?9ufL!%Se{ej%Ug4mV*KorY?e4sBWC z=|ctO>$~+>)7&&t;Gs=~moE9X?Qc1Kr)0(mA20IG#{=mPh5iaBahGgrrD!Hvg@wg z%_J7$1Z`i8p=u>uX*cobALh^0hWnBKSDW+}A0wk<1J%0J&F%L*k3bvZSiIK#TK0GQ zA_x&A>jNJpY|@AQ8*RV`Dv}lS=#l40A8&qZrTwE%G=BT8Og-qmecm@l3zoBtqN-)4+_^v;6N zQ209H4BmHl1}6lraetrc;|tWML1K3m7k_{Mw!sDW7sm2e|0KP`06`5i+Vk`CYdhmn z;W&Y7!w&L)>>7-0TeN_af=j+pJUo8dvJS}B<~^NOkNx{(K2V>~eo97pc~m<)yX(EZ zcXwIX%q$Z4-Twz`@DA{4h{M6cYF`;$ zF$|Y-ZEZAscehc7YNY-57ueSmEk9b|5%T*R$sl;rYD|J^-IF3xBI>`-Oyau)H<>_r zSlx%`jyXW=PO|pT_Ey=9n#XdbwX>OpHLQQ&;6L2T17PLX6aZF`Fu!-C&_Ly%a$>qQ zCHxa-|9qD+bWk%ovUC<-A%Ff|*HwAY{I)cgE{y-&(|<~T!Df+<$ zUsmy~0C?^9Q_}~h8G!3j3IY;BEODohm)=P_q4^(JB!W_g8)M)W!yZ3YuQz^6w#iei zg-OsrqFNS7Hg}7H2rC$7%=le6j%-f@_w@Yolg&!~eRAeN@;1w`h+ts{@xcrk1x+7A zwnOQCYgI9(@3XHdm1Bi6OHAq<$xcJB%=Rzp^o1nLXoY_EdY+9=)xLO;e-IiVt~UGS z<00^ZxaZSS)d|cGrh$TiA!oE~w7hh8b2}#U-hFr-t>^HRM%N?drY+2{&sP>2xrtO$Zm)x{btiY7$L<7!|i&eI7??Rvq^%Z7usNnc(oy4z&$2a;jYDfi8@W(HRu* z=jYRFJ6gfXR4op_rsk%jx|SJs2*V3lpt{11d9@<^7l6IBHQ+$_fJYP>$5L+LD(=k8 zldtT>(e?zeax{)>1lvlJVYcAz_&FxK77qyCC{Crwwcc z>kk&^Yc`QS;EJsu09Cr8cI6Q)QOg5bNLc9XXvV;>blCj zQ}pBbS>Z#o(q*j_G_E(-iIQcG%0tsrnCIm%Y(wxhlqZ42So0!d#*==aCf~;crIU4WjtN=*#M`g-38hD@O>zV`cdXp@FyR zbsyQ`FD_0y5X!<*?6`8}(mzMgCR>cq1r_jSp9cpcyAP@D?2@wTh=@?Imwt%oCH5v# z({<(B9!>XCp-%{5z@*){enSp0v7js4VTlTVoAl5C7-5{xN=CC{_J=WqWt|1bZT+QH7 zy$jUf*ybqJwLD1;aw+GZ2=J6T=jPcYMEyMRnP7))zUl#H`nepq?P=&>{~;y$Tx4E$ zt^zuq68i0qfo2t(9RCxz#PV*1+c_MfsN{2G68A{hY(j~GrsgN>nG)M8v?YcSDB^|E zLb}@eeF6wbKbw0qlhwiU^fqyS3@kTgu)4kNMpWYTj|Pg}0oWkht$3*poQARD<{ovb zDuC8XSz@m48HI-k6FY!0Ia|k30b3L(sNkCkY=Xegewy#*D#JJDZkgXPubm=miQf$^ zeBbt=)yYT(BQts&Hs&FBAJ|;3;Ka@UcYlScDU>q*85-BtS0?T8Qehmpvp8^Xjr1Ly zO>(vh+6G5HSwjrnL=Q4^%LQii0FjATGxLkztUZK2TtFyr=^brT?AQ$3>mOW8EH~j| zb<3JEaCG%h14Z_W(BE|~PV4wR1o)HFF?1jnRoFQN+Zh|ke7NqAsVNpY9z&--52?wL zioG&dn`4RhCg@~T@yR#orOitXcsOx~VgXKS)OsPYTg$$?z%J)36$h|k30Fa!9e=%B zz3Uc!+Wv#H6YrHE+0+IS4h|fF7gn@bsz@AX zcw#N)L)Ob(TVATi(-Ou>3=B;Jkbmmd;u5BAcb$GbZ&b1mhd$>MMMo%I*g;Ha0|jj?!Lf>lQ@aGvmH~sZPh4mB8te`Sl{})~WiG1cd+F`ZI(KwnDg>mg7$aq z?4@DHuBhO^_usfJSzGQtA)+rhw7tTz0%bjxHWCXhupf1Os)JI>eGWfc@$dyjbh-wq z@VUO3)$ODO8NDYgr=`SQ@q9sI@>*3W{!shsq~!q*LWq1=@o-H%P1GWc(_*dx*Pz!k zQl&@~Tv6xqK`91%iMB;xiYNc#;?n76WfZwOlqlA7{_XdLL72a2aK5jE1UY5~DYW9< zsI-_b(_QWh)`IsIks8=rHzHqxcf_mu0Sz@X)irp`1r;0n=2k3s!dO^8Odjc$_tL+W zE585ndeM7SSiQz0q}qKVByTZf44kb)BO{UhvPZxAAlJ_ke*XHKOWAtS$LG32# zK}Dra?U+Pv9cMl$aL6o1y#YAddgou#l6kDL#XQfM$biYDylezFi+5ntr4Nv)0%&6;Gn z*KVMaWoAyI7r5V~?Rwt}USKN#5Ux_>Ggo^)l(HN3QYPv|BwIBJ#}Q^4$4};shM<4m zcR}>N)lqWU1wPzv$T5pbDWR!P2b1YN1v+A<(MdrOskr0^b;qkM`Cp7QqYfqlu$*t! zsESP|92pBs6~btcRDe=gjyT?jA`ig3Fz>L8kfflD4j1Coa^i8 z?hmG-&P3d-JZ1Myvp`^?bJ>w5kJ!z zv=U-m4wsuTSLKMnW+MJ@{nDn&V%l)=%!5im6i~Nau3o9frxRb@5?G{YK+V{YtHy-K zPfu;nL*%xLt7X&P?erc?fR6ZbcX=?5imK9e4ytA z4*kKA-7Uq2fynic9}^3EZP6a^{bFBxO_QQ=ZB6{7Gf`h72R_zn$!!(?Y^?4m@}S$# zfKapg6S-6@KQQ35f`F8c#^ZeNp>7q}{*}v~o7?Hof1!I_A`Bk4u$YD((EWy-s9i}; z;B!=$5FI5YTnYL@hWKcUsvH)1;rv%F^M>Xb+rGj@og!2q)28{%Gb!Axb4DHw6Wgq% z>b&aN>TA=`Z?3G=Say@rLed~6EMw}nvoteaZBAw^*%%U1(mlVg#iL87rR-X%5(A^- zF;~wzGfHV?lW}Srk>_5UrvDAwh=|GU$$nHo?`kSpWYDvA#T*{ExrtPF)3U&Po?~+8 zW!j{bTA9$;%`Gi#89~US`MRbfXdO4}W(yd`RC$q;Ls>n`OIPknETU8%sHEqwsva2p z2ipIYw1E`tvt3O8`AZemzB0Y1zn`bo;Sx>s`3RJLxF3`qRUh3QPY3|lg0pot_KUe^O8LR z|MPC^dd?G!X0Y0IMr9CCQOGFOP0Aa8=Mmceupx=SKcIg5U1`rpNiqaw$)(pUIuobb zG8DCe1Ijbn&gHnKdjXL^Qt~(2P3J*tO&3gE*!@Z_u|tl#0g&ZhPnwq)lu>S`hDJt7 z(TRbKX?;B#J~$n50aP(C{b#Gz`c zNw+pXTro%44WHx_0qXDWs5a&(ZhzquM9d(=UEQ{V1*G}+$Yw|}^H zO`fHAp0`6yx#`Ni_v3BZP_l5RsR|a(#~j#qq@<)V-d#C@W1@}l0xMoGSRGmV6xs2E zZj$)p_4{?Kq7v#24w)|6T^qWIx+X`?7~LXn_fBXI#tT~X^mIqJS2Mbw%}X0G&8LfN zzH1i7joap1j61HC9H+?o+LU=3`xDW4{mz)9^J?W_Y{r3@P+%7%1vkh zk2OpV6pg3epF8WGRrq@O!zFnE5KA4}(Y+LDPKe|fA0JQoc}z^p@oE^TH5Yoc4qryv zS2byTF}HhD?rJVIZ0p|sR|Nwc-Bb`tD{YSGD^orFWb)(X4{fPnaL89lkEhB0MHBix zGUtoc=FYKZs>SM`NK4p=#q8{2UbEdL-#BWD;jxLQ({VU>K92`k>-o7TH2d7gf|YP0w=nI$n=Im0e^g^mF)E6l=63!L;cQaq+&qOY?H~ZiCO>*=G>E-% zw?mA95?SJgoABH+i-|xTOkIaJK9b0?mAca6Q zH1KeW08e(@{(u5=rXUaTdws!pl3V^I=IHGd`mt(6<0OK2j{mWu-y5Vv_Ze-DkK+@f zvKZHow^`&v2u2g50us+(K9rzbg_fbZO2)S6(y}UgE2J&D98`0f*a(19CnUcbs43oP z5yaU4aK|Bot3|?S7kg7IW9=aFuXNC*@~>K)(MkAgk}>L*FJeMR z*80$A*5WfYUealN;W=uvr;<&m}&!-`E%C^Q3^`+OSrCJ10 zMF8U=0!3L+Lg|v5-WjmoI6lXfr&vOuP(mRrciw1!vY#_Y*IOan;oZxdSLEE>noZ1J z!W9&cKPdKGf#1(iw|tcxED8;A$(PabTBNZk={VUeCnk%N?I`Xt=zIv)_F5i@J2T$x zB=OW=mswqKCnlMxL5{IQb^^20C|>AkEAA{;8sG-ba`CN%rOV$dwTmv4YAfpj(+Kd= z=rdK^EzlDkRS?azv5p@pyo0b+sun$d98J_p!%mzPP=~tZOLS|`-iB;xT8c)!ZTknM zkw7^NmmX}scs>Xq;@W|82e+#{coT$;=<{Z0W-hxNymXoFlPOSO&V}>xH5sOAg;b7k z!vTKG8nP!9Y ziEqG#iC$12e8aP}GNz3o#nt2~JZw9PKxFMAz9ogXE>C}0ex~J2sdj{!5;f^N zUP|SDvX1!bBCTA`)wr0;=^P)x^Dlz%aje+3P^?P+H zrDNvRyN<4`){JK{eum;bP6yJ$`qk)J^zp-Xmi&TW{U4q@_aHp(woJ8X?q197IX671 zkyq+csBIXmj}tFcRQJ+p01Zljgwq8MVUiNCW z%zwE*7>$YJk-#2nC_A3to(ZV3x)&f{#>0(ilEWFU=m|`uVWE2AZAX8o-*05Uq0cUr zg1j%27ZNm6AQcOv8d5re_AF!C)?^F zSlYa8oG)nGFPgZ};Tc$G*|;A!XMY59q^iA=7uFUXR|Vcn@B;}hhMc^WnRui11@Fw3 z(UO7PxLzKb_DEWLrS;yexNZQYtE6^OrATsy7gN3kmO)1+jddgyKGr)F=Dm2oAFE{D z${IMES37q&3lbO#4kf1(WhP`l)oSn`0wm-$*#cl2{P;4bB6I*^ zMUt~{wB>g491=SeCj>9IK+UE0xc37wlWV&Xr!nN0%+O2fdI%HEz>Rgm;0M&)ShNaj8Uf&P4I+~tE2#n_L39rb)PC_&-aX9yizXxV3Fp49=oCDrS;v#QDVIO zLc9V=(liAs)47^FTu1xhN?(*e0G^&3Vc*7>%EuypB3O{)C#LKN`vA;NfKJpln5p+C z^(;ehuI^GqiLEw&ZhMbLp)4`x#gHA}SgRpn8Snp@T-QVKJgK--k~;NMM*zH_W?|Px z$6F>>@{VYDKBwlYOi``^tQmi}4aTM!XyF&Lki{uK;jkWJ)v{=5rj`yN<0a40&JM?n z;nB+Zb928<9<$}901b^N);k!pH()o*PpGB&$h|o?Iqdl6U;n1$QH-_0)@38j;C+}` zIO1_&$s&)(nh#dY$jA^BlJf*qo-+pomikr~V?p~3AS3|{nqR+_x!V%ga_f(;J4p-r zLNgGF&hnb|E=zNJ+?>wb5L2y;uE^BAFm9|umbd3>zBk06%hBo)GLbrOjdpU8c12Z_6Q0xmzaI2&4h+g3F23F;OGC?B58W|25RQoHOy zZPm2LB*I}CifMlhJjI7L+gc+35RSq(2x4Ji+lu4&YxARu>7Bs@|NhQfc! zDSNnpVx}Lr-S@%CwwfTXOa*y-k;Fhm0k}+&sO^OHnH;zV$Sn4Hc4g9W-(ys2T68}d zj$!8Oo}a1zWNXOf-ua8m`*wR6;g&1jRA9U5INH)k;G4b4kU z$k>vR$c+2-dQ9{C{iIt{Gvb=X^FJtbdmr!2nT^&FO*>jsQV4j;h!Ey;8#2wy$KC_g z<+lQ<1ZIF`)sfGm{fkxzR@y=AO? zL{`<{%yW*X=U1fqvwSBYFi0GtPbQ~Ks%`9sI|q@ysfh^p#Y%fkM(>6r%^ozxH=ckM znDlB)LEB4Xt|O_99Z-x%;sGd(BfJ(@fB_VxuHd$H_y=f)*xUL~6xWaTWucT)QXq$n zK7O9g3gNEh7l z^@QUtIMwCG%JTLz-@gU2@KC{f4}@k08d{JN6olTRL1y@?mRRx~ zYsNON?d1g;)D#!I1+2tLzA;*A!SkdH3dAE~LS3%{}7F)syEg~I^hNFg=0`0msi)fQ>LwR z6mZItr|>j!9Z&pj%A)dDQ11~MqJre+^zzHFGm5EV>svCBp)X&g;*GjtRQlU!|AH9io7lOCca-Y42#n)9GlV#nAzIiB;{m#{m$;_d`r69?i03Zv8LG_ zkHcAdN|QoNSX7OZcjBi1#g<2r>e0}^ftq9&Qxb-faaV6oi1T}R)sUIKsP+4!4f0kc zeaW1s_g_y-T>DH9*9zX`0!3~;Ii9`s`KqBo$x5pThk7V;bH!&W3D(g3; znD2x!pbPb>MPpFBxUAT8Jl5cnmyazjy{2f~3BWvl#xB9pX93_##S;zc*yWbb+CmPjkG8tHfA5|{f*+_lJfNWO5FbJ zm0HxL2Ez6?yN^RA#K8m@zKSg0=b7p`j7QT*)6f$$m8Ta-N%eviUB#v+=|)Y*nH7^_ z4dyRtC&cNKm&C=-1fXE#+-CQ7Ardx1GTIl7~ z;Jha|_E35R7@TcRg6y0=RLxr>$om`O;9MDl)7G+{kK;gBSU9BGCgN$=D?hhyP=m8Q zUS}-l@aNs`O%sTzlZ}Q$IO(f7(Q+Yn;ytvl6hh96&$~8hV^ zFWL4C_=)0B>&&~r7%12v#$&QP`7}a?(FOs znw8=zQgg?M-kQV^jVLl6NeWyzX%XG5|EQF~N%XdQr)}n^(?<{jMy`$0+oh9{fp`AB zlM1ZDO{4ss-L!hZ;v$zzT~iDw)5#Wn44^7glbE(2Dp_58?j@c)KKqblXy_t|Uq z`-sTHZD9rL%#(BShQRZN|0ZwMayTmbguGR-ud>Sgd+i*FLF* z{ZGcVy&{s_b$Uymc;+dnrf2)3&}u9tYYfJR*G2l*!!{$#of_?S7Nh}G-ZK<6=!b72xjvpfjO)Y@T47R(OQxA?jZE3XSsvB`a*}F0#g<-fY9x2G zdQE;AcFh=LC$iq<$4k+vmYIr9FHAX)<<3^TQa|w=6z1bKTDU%^kyXSCOv9x`&y`v% zE5WCBb^3Ib#3N>>vwKsGC(Om__lAfs?_37tb1b#&6DP;QenFmCKvjX*d&p4&|Fqt#ny#&+lhg1wZqjv2 zP#MD2 zCJM`PPRE9gqS1$+`eB++->aJbQX*JrGFa1b(TWD$osg?2tF!|$t&&8xAw^%BuWw6B z8m-_ZXQ`#hm@G|W_#M|&i-?<5Il|$)Wg3;|rvNrG9;KFBgDl#!2d-CjWBkf{Ku3>B zMlJ01!l`NQ!l7w%<@$ANrnweHfzc7k#J+@?^p=}%E*e!V2;Xa$y^wT6DV3YxNvAR^ z9r$H!BRb!rAO+=63T|f{AIz6VYR9v@^La1&DlhnD zN+IfX9#m+ISZ|*F51^{v@jkk8>E7hC zOu`U{i_VntF|73Mj`GKhDUf$dXEpardH3{n$b@)gOLjYsmmP6)!4Xn%r_I|1MamfA zGA7B1Y;nb|_{)8N9m2($R-sT&Drm@z6jWqMqo#shZ-~Q@7!*=|gQG(i<{2>}* zpp+FdrDA5W%VQwNm15#g+6K15@WVaqC^X6ef4rUGI3UybR`MsUg2YUK4;@mCb*zoj zIRQ5AR>gO8K-_)lp$%2$hFTG;%Cf~018Hm5{y?aDPPY^hD&Mh7E9cDVukd-s@z10r zXNx)3KRo5w5PRrkwLltTU%lvHSfsa6(Sc;?YzgjNt}&ogAVE*kRT^I2gFzooX3U(k~a9p$8mI&W2Ev$=UdZn_GIA61mD+!jxF~PG_=jG{;=9`? zp|K)9H?JeCXv?<}EP$Bu$2md*lAmTjDrON#XZ|8+K$2l=gzq*^K$!%a_K%YV8G0D< zfTK^XM}d53k!iou0fN!Sipv>(?$3X}#xg)o)$t5#Vi>vKbm*~L-3HmK_@!v8r{KERPytSKp6p+l5E#!Q-*8@{1iya}`T) zj*pKg5@vlQF|gvX8mo+UviTV2g}1Cc=ivT%a%hqsLfK`qXraCRmm2@;{~?7uGzZ60 zlasiL(cMU=|Q8kU`iRv2{>UwdN&a^3S@QenN1YZvaW5NJnH)cfwgnD#5JS@>cXrqp%q%nafTg( z0@FQ}gPbDZ@|tzBJ+qj{L@nYb;V|s6!lhd@JnWPul{F)r_Q5ptb}Z&SWw6#0h|i#d ztuzcGPGWSjy!8T)BHvid)?Eq?0zr8@P6}?OA6gW>I~%58BP~KfCqu*}CE;>qQVlJ8 zscS^_6wu~t&BDN5z|O#I-{cGwe^Wa0uo#?ftTKW5=h%^tqTYcZw#L?Tsv7?^Bw!ntg(s%zsdbd z%egj^@vmv)Y%UO1`s%ufFJmGuZV#ja1`$%w?y2#~1kQ}6Hh7xZ!dmNC$NHT~`$Uvwzi#zI11lPh)(LBt{6O~xcdsH^eQN>; zPnx)<6~wd)=;|6J{+DW$Q=9aWaR|zP(}V}M8#tBCwZYJixp@+`(FsbeFN?*6n_P?mQWx758Sa&^qgF%X86&pw-i*o4ymP*Xtg)!%T z+Jno`9U}K}M7v#57N6aPKh67seK3&~v%JiytfewaF}S&eguC<+@NxmbGtXkf)|+ec z3M(wO>ui1zwmx%wfAY#J`jltOX_;PJx)`W~{CDv2hO{+~zwxAdNX zaXhxV5qi+kN$cA4S_0RAv1k$wkJ136WXfVM-95RpN?rxympnST+D3P~XD1drrw4Qr za&bGZQw`iMpIQM@azJVC+&lF(@BeYj;#opu^Akx(%ZhE@H6lO6HuitqaWumEClS@AyQvVc_kaHbhX^^>gpJDm=lF?jhLgBvKtSU0&x zOG;V}*rmPmV~XLxGj7$(7U>pBNN-Z|_8fi{2S+Ezb;n`fOY|>;fY8klSOK4?E{e=( z^Biw{D%72mh_GzIX1n3-aYtiDVRZaY(~!eM)=(Unde1&ji^u01@uJ(abZOTdg=%0d&7kX zLYaL9kweS>W;p*%FuY_8x|zeU$6F-*IFo5ye9tOs_d_a^H`e*iGBv(MFvZ4I z3yRbrmGkg4^!y=9E*-yv4VJLZPg zN8;Hs@4eI9a)uZbV|Y*D%{r z4p&(wnu0|!^p{uQK`(v-cQsP@KvDfDO~asNfcRa?meJvyB;)jIfqvJs+~7z@-+8Ka zbsFA-p{^h7`sph=Ns9QKSFXKFj0G(lw;3NNhIm|s4BMvR^SJfR+%WWwmLT*r=u;5M z2`geqmQvFNef`$k=4yReJwBD}{(M|IkiiDnN-q&NTAqoze7qiPLYz*%2mHRTf7?t- zj6Tfq{${JyJb02Ujq)AOD4S*#m_V;Xf^WH_lSAmaW8%k}RxkhW60xv>dRIAMG!4TV zi)=F19{XzHPfgb}WQR#%ZNqR?2aKMWK!qCj>XcAAPab_bfX$LcJof3sproJZJ%uIN zCM3e39v79l5(O?chV!^GPIW!OCy0!hP9EDa4>!fYUrvHjbH$9zVO_~Q_YmFxxL=2S zua~S6&MFykS2KzB_9|$XdrKCl=6#2&BvDWg!IFoiQ&ZHV|AUEZP6WB+>z*p$^hQgG zbO_&4>r4Eo=>Y2$^Ts12@bKzwVFP%}WPlxc&}W0XYpc1GW@G>H9cc+GB;9(p;q3)`?pfx$p4I3YKbE=v2fx<)u8QYj=-Fr#(@Xg_CEciy*fwUS z^RBoBuo$U>R8(W}-c^J1%Ctg@5m*HaXKR&dgc>LE9;-r|evP>}{VdVv*ND+1&f)Tl zoOo&Ob2Jmjn2G@Bom7jgsa8Q*AUt(Aih(!a7pc9tg9BsnYunrjdql)wU&sxU$K{g+ zPENR`lS;purAEa+Gci$b-lOBrgIcre8lpzC*_VG~-JN@YPg^RF9#O0I-|^i?{mcN{-c&)N{W&?Gkv0?RLl+{Ij{qcqv9Ba5QH<`gOwA;RaURKnB+)?IWdP z<)y$j?ncxRqOhc5C=gaYZ9>uftJ;)_DWFg>|iV>w0&ji_6Gmx*s^?t7B}A5ft`_k zHGa{JDlFP0q973iJ_sB76?Xthv+;!}(cr0(YGfc z3vXL5bzQi(^_QuoGOp{4{s5Y?K5PcS5IUaeUJIs+mYW=j>h{_O=piS(q%a5!iKEF} z_$ARv%M)r{zwPj32J7u;b^8s8SAEmHyL70iswg3O*~+7*SLze)pDC1V@UTSRsh<|; zs~x`Y>89_-G&Q2U-FVQ~&RXY9Wz)$fWn`eEV=6!aMC_J}ag;Vfg#~NQUD0VPo%&ix z!0J4jWY-syRJ5Z{10<{2iaTM_7;-#0YfRWxbZV>zA??=Y{W>< zt-MOOTVdR+zKg1zpD~=Jbv9;27lOo zX|Dbm6)Z=|Fv-(G^}3>ZC($)iqmQxw1t#`9wxZB7QJ}h&O3;bjUQlKjO)-sbf>bok zTKsgHyz#+V#p5&!KJH)X|39z4;t*x0rL-vHrEZUBjtwF}gfES8P-RJ;pk45Bl zpYaWko0tTPl`{Ous6p<^HVYW3n<-aB3-`u-v%^Ose(PUldzVNsNe+5s>~3~G1jK(K zTXX~nPd2vC&WxKEczF@G+90cx#B)+1&$|iKDx44Q9HyYT3lojr&j=}L7XM9w1_Y5Q zC}z+QU`3?e-8noyh7enB$62`V3?4Ayt~eh0OGTCjnmbJE!L2a8tFsOn5$O zJ;XAL89efGGvDZ@jcKv=Y^+GrZo4UUgZ&AlS*;FEYEcKcgiKt&fCTdBjcd6Sn~|}m z77egeOst+Y4utnSrXxNNPT_nlsW)aW%wYVrrB%EIkwQie{35ZnQ{O+AbAHyS18cJd z4+`XPICP_Cw4*(Dc(K?Z2BIk2YYHIZUg{q*_1lzQ0QJ@K;sv#iU`~ zxe}5Q6Mw>8LrSu9mtga}{m_>7Q2tIRvyB!XKFjb14K>mgJ!b2m$l{e2tGl>Zb$o;k_7g*#f4AHF3tv zVg`o=G-sQpt^kxY=4VXSh**BoX)kKtlcWBAv;RE?iwF(AGLk&`_O}veF74etxoH?t zP#uMSPASE3M_Xh7{~0^e`-Ov;wS}FOgFeeYxw|u@#%wr$IQ=0FI#Uu|B&N8;e>NGQ9 zQ3X-j;@DQ`8-SlSa5_0&Uy%);y16VeGvi?{0_3_es>SoNI!$wTGLwlz82b!np5=;2 z0I-1qer$Df9uN3gtQGSO`8}mK)>vHmAmDLA^%Hu1&oFphC+g1~i#=AR$TKzKNswX&p8q(sP~)jr*G1tA_m zx7=0D!3%K1bDOElPfDW{O6@JzmVfz`+^b#dl{=MGRut8W$GW^63Qp|W?($7lJuDm_ z9Iy^DT>fGZSLz|0+jGM(Z$8BAZ@zY|Tq6AEGQtb!9LKw|Z7VqJ@s3Yz{IUz=TtJAU z?*LfE7|t}^)iaqbTEoN~(*eJ8WUp6E`=m~ zc=n3vQ=0b^|8~T9ke4ee<5TnKNaLKnmyTm`%gZydkFV6h7!z0p0r*>oIDOv@tW{u( z{V69&O0)k$HxCu{^*dbuZzVdHAH^Z1i5jmI{wddbb1}JfzkEb;GrZEec>G$OcEhxP zNr07r51J3mp782DzDCSS(e+&yE%(k0a8v5RwKvw+rIfg{PeOr<+GPoyzZ)l3&0;@T zyr0;jwd%TG8m}h?F*DehN;*AX=bU#IJ%YIOCgSSe_NVBhub`mDYw8d)Un=g6=|Vbq z1o%lu`D-LIzUb;4?=hiy1egTW@>%jfBY6Jp;5v}^D)5R`-5IQfG}j}OTt;h)3LEBb zpL$jply5{Xv@KJTXshHh!-$&;vO9-krcZ>_v_zAWz6FHS2Jgb98Z2t$$!90GSK7%flkM`8 zKeonarr9iun%I4Pa--2|gVGV$7oU^*$@^0CxZN&Mq*^+Vrlgg1c^?8X{P+}nBCSH| zl~~1{Am?1C_kQK&#GQPIAK$Z<+2JovITvKSDtj!f$Bke`MqTKK5PNl7cmETA<%=dUFkI->tqNcwD*NIaWc>vUrB zcKFQJJ`^>*KO`+#j!HAyt{ZFceE?ABERm-=ccEcS z!PUF1aW~2j`~qB^^}|xLe>07Bh{Ot*w@`k?%>ChSDhKGhGKyjOSWG+Bihf~XGd z4N#eFMugx&Zq1%Q5fO= z__sE0>%o#R_a;Jpr=y)bVxm?ux=hK`_h>a*pZkmt&-r?Rb3aiXVJ);szzE2}A(TI9 z6hq2Q7Ocfe}Cughg&p@ij%iCvj zqq`5raV1JgHYDR^#Z){<$ukRe5K&+u?os6HF784^R_i#`m0^jpSrgbO`Tk7^2 zN%vD+g*6?EDfxX+kTZUym|!pu%bJlTXMLVDT{$$vUTDj5fIlq=C3yx%6E~Hp#S>n1 z;QpuC7;O@kt&l{$@<5DVc1tuNNj6It<%kxAZ;E72Z6B*lB2}dI6H)NBl2|}@PWRs8 z2xf>-2o<8$&0G0(*y2*WN(Lpb>bbpw20C#+iKwO`EduFM#0c{z_ftYjZmy@t0wtC5 zVXgD$O0D!}z5+bD>CY+;$HEf36lJ@eMxr~h%efhK?t8qeBg({^>+K+mjTs$unXbgs zj@%kqFr_UY6ka^*fjoSt0;?;uIPF#z2!Nya4J>Z4DWoG z7XbjIs_rlRiGsVNTXoNWD91&_BoE}EoHTw#c|QhApK9wT?Ny7I{;`=0YZCHwY@-DC zIc*6eg`}k!i~q3Pp(cR4=sBo^rmvbsU6n%nl7eA}_N5Q8wl0!yEO2=0&)Jm}`v#5c zdr|slV*IPsGhIm}1T5yI973qI#?kp9@$C_LZQb4ZLCEo(`UxDoBM4O{K~XQ!8g`RL z>P8{4{tG|RWMNgaPP?wK`(QYScnXZcj?%@NO2#7pP0=)h$J6j=Jfh+jXEYpASloeJ zP4H|!n4*}}S-x;=*uGl4XL!D_h~k^31cc zza4_x@jSb`1H6MC>4yHd{=Ik2J>sYq9Z)J@SEWslj!ju1p*BYC6#x}}M==XkcZbF) zj^<0N@gMc*iDJHI&xqq0AS<1*ES9_DmGth3@gdE%XGzxYN;U+{4_S)}iSt4?_7=6f zRbJ1FgCaM{oKg_31xp%zTKf9xgjlgd*T^erJ&Mqu_$6s$hEHYkNgizJ(8O;KwnqHF z(lv=lkESyy<8j&qamhVNkfdK8Is$KW<5Hd`&bUj(h-k$6C@9jG!eD^&KUPL^jNH!j6$;3+=< zqt4B=)|sG+t31BxX1VH@0h8TAPOER z1m$O8ovvJ>2-LmkJS2T_n`+!1!xCq4SVrkCI*tEdVeo$%rvImxx^*G>X>{#A^xd!c zKcD~qADpX*Vjxle)3u#T^S{f~Mx0wqtoiR-xwR-W9bf-nBj+v-Y^nI}BHKaqzX?K^ z+?L=T(x)*Xi$(iW_AMQT;w3x$8(<>>a+7^JH=G1rb#OL3iwFX2e0_Yj&d%s+@9uuN z{K#o}X7P&+{*U64;_r8efq|h0c)+)z`G3{smIIoCX;@B#y2%Q`e;y@0v!o8W z*U%UQ;y3iQ_MhR1n=E&2O1r*HA-(&gN3okl|TAGgMj07w#tAOC(GdML5+-vQX*s%}Z6 z{f_v2C^%c8V*;}#Ez+G0uhcfnYT)*N9w=0CvA-ZbNT71Y6K;@j5!{RY{|pPRVm-2$ zGw0u@l(9BkRa|WMx3>{LDdZj=ZP^bi$+TNEMScr8bk7f-SDQCbOT~ccmod$MwhA!V z(;P4if*13F@1M*2E!sb{b~Qscgy4*i>7-Tkag;+>Y`=?w$O#>8kn>~ih27waaNpwl z!O*4J%g`Xpf6vJ0drX@Dxg#{xi)3l$(3jrEr*l{a28I@I6=9B7T zpUeJVbBjQLZzc9Ufb2gQ6+u3-TxK~_Ju*}ypDiN$a{w34n)3MeE~qPNAr-D{a4^{d zb2o(IB3#5rnQ%g10q((JHtqjWt+2rxD;8#KF)(CY2I8P#S=}Jo+^FfOhnptLad{$t z3IG_IEpB;>zVQy;$w$pPG{=cm)o*_6El4Pz_V!I4&=N^OTrb98*G4e_aIJ_Z{9xRHo&HNNY5 zjSRJBK!I9L=9e>%z2U~;aMpmrf=8{-Lw|7|fZ48yetv%Jsrfs^9-dyKL*Wk9jmm{N z_?0CO`S*ts0wPmDTE_BELppl2TLGLg#_cuQbD%@0s>mZxbgPN!^&f7xccM z!y%lgtmW|_-=@NO-1=EFNQTOgQ++J)W*-(MqpxZ$(qeBH^Ede!E#%0wQB=2v=rT3EqmJ@eTsn zYr#boD~Y^r)8{qNgs_14^D0vvXS~}j$2b*RcjE$}M2=_bN#Lb(ZAoi7cImmYN>f~- zpuJkr##hmI{dnFJ=o^#gyx_WWj+eRHc-YwN=1Q;SmQ#RVai_qdcV^AdeZgjp)cSKN za!PB$Qut*>n-I~uQ{Qc~Y|XuD{$};ze2Lq6cK3O85AtlyQat-3r?VdHwCs835r+-a zhS3WFJ0_PBGct0+z`(c}0FU-dK>=J$tQJ=c!DjF)qzby2V4=55zk$$Och1ckuE5Y& z5vn`<{pQV!&KJ8(@6FB<`AZo_eeE{!-?7ad?>BfC@YCR5EDeSu&R_U^(ZwD-UXo}a z+<6ISjD1QrXK$4m7mr#Cbzpd)AuC`HNHyediJ!A5TY!-}Z-I^7X7IPo)hvzB70N3X z{InWDLi&-PL@;0|VVB+w@EgEh)%~*T%Wi&auKw&}#Cd3Ua~XvP`?KEd!xsK3&Z~Io zWq5YPrFVD$GUNvwg6LF|t6H8Bl{Q__UL(l3!Ydh7jhvu&C6owt%<2g)oHnFp?ry*& z{AcTcxJAylFa7pJU)>ZD1UVjw8V1QqN`-jw z3x&`4U{J@IPw*8wMuCILbnUa9xf4~l?ix^WcXee5aBhUKvBBVb|QUpH~8 ztJk=k8`PXtWPzbHcogKR&7yZGMm$Y26{Zte#@1?d%_nSDAa|VcsnHdSP6edh+2G}g z<6oUsTCOMFAD<=oGz=LQSldM=G#w@d+Dk#J=4EKi?zUm7#E^r%L;ZhKSZEDNJDFCmyI_VC>P zxb0{lSBgegqH2|fr18uv2H04iMbZM#m`}A9`M#=6;KCoxc_(LQ+eUPap3J8kTivPy zksE#LuFQoBy^Un;TduY*0TznNT9cxjdki2D+3 zBM{yAYz>)lvWe(R78-xvI}u?OY#dX4lF8-qEG8l)*X=S(erO;=Bd?`;Wir+kDRcZc~gxr`Nn^M!Q=Eq*PEn1?U(BW#U z2`{^{J7+kMOZ-vV7>gnZItOPY)ogJ2qe`1op^s~UvKq9QQEyUv#HEQ?Ha&__t|2x% zyV6JI3njnBrnw8_e|W?Z%DRt=Mkj8HsTlVDQ;>81MXyrJwHor-#nmX0>(lRTsVCb34*l0KlIY#!~xbT^CG51jJGk4W(2)7kV!R06m#eV13?yhvV)PkyzH8do{P?g&-tp(N z?@Ufyz=Kjfh@24SnEmK$dn~smBBCE6mmjNr;VD`{p-VjTzaiJu($r*6T~*mm$Rabe z4MDwk%=vmhge6^RUX4($%%B$b%RYt&e-eNJ&C|KNRs*^HqQJ@A3$ONae0(g&YUtUm z7wjj=1dEJKGa&OhSttUf^XIib_zqog&qoM5*ZHTptOF7R;TDH!{xP^8^is=|0MsnY zbsA~-s}7Y;hui|nu`v}BJnHp9Rb2`+zTN)7ZS<>g;pAkRon<44s~-I?u5PotFkvs- zGsZ^h(S-&`lm%thc%(Xvff`zYf7L6dHXlslS3Dpas(XAeI*?;E*Ee`O2AB2k9Y&kL zG>+A|Z5MvFYK|&LyCmZf*fcPqBTg7J3ZfD7Xexc$@?)icoXnKT;hueWznhfn5qQ^- zU+W(1ZSpuq)g~@xlSDXBp%TeBYs_J3M5B;z(6Vf-a7mx*N~sgeM0z>)#%fzz#cRKB z(>_a5o~l7?Zfq79igC^NkY41yEnv*8u9&{nI`)L{TO|(8xxGcMOr>H3g zzD^6gNSH4Eu4Z5w=*5{0>ZnG>efnnaya(b)4`K_(<9x!sv`kF@w< z-w$x>LCgh`bf!8(5d4s=7C3?o?+RfRrX`H})ad1AI2CNx) zjPl~uuE~c+nOQE8Foe0Y#C#m9mq)X3Jt#z;SB;$J1S@yBA=V&zVJ?5>lDgnFoO)&* zrXA?Rz-d0py8SBmQCpP;@9=fSY&=( z3A`Zq>QwO!tSy_3@u)oD{r7|0pA*?%y_!x>*QZ`qG(%l)hNU;-Q-lR7yQa&bTb#(7 z3Dg8sT#{$kZ4v6Gr}O4=4=LD$FX%rtz$X^;nnZa?FId}g9u(pi6NPkLsmMz#KHxeU zJVM!~{A%W(kj`|OzkDMa5d2T>M~|>KYE4Ha1m#@Sv`<#|_=hZy%trye#!$NJ5O!** zLf1Ybg3%@~OdLJ3uX+svQpBR*lWbVuWtj3EZO8m5UB>%gMPebyj=Xg=J@F)ZCN!?H zd&;1tc@Dxop$y^4XoqgVjZgz|eoisY@%BRbFso&;s+wm5X%dB2(BUfx?T9$rD81@Fq& zMbWoRRCT{AMWM08N8HV;LA(uTzzS!)Ct)Q_YiOWN^zRHtofd0X)j9%V8^pZ@>|f5j z{fA85cE2^R)lc8mx^H@JEWv~3(>cgsl6Ef3s|D)A z2s)M&7!Bg<8hhF~D2xLe`Sx9SK02gt2q==4z08{ckJ~)$ayL$oD8rgBAp7LY+>BHl z4!dYw-(6L$@`NYTY{;)C2fr_xJ`H6XAz(U$q+;?Vu^jLMCnVY5A%Nd1kkzd^@BB`` zthwi4w!xt(jg_`bFSY9!I2{=dKRzFDtL6OVkVaT%nZB>>4eDyhK>hyMcB$1L_rd*j z1V^FRMzVafu(mtrgUsjB?lQXuU}9bUE>A(Xgp>BW;1Z8JteL{!xdgHyE=6+Lz(PUg zH<^@5qO-s7%GS^u!h9%_clRz`CwFxo6>~0O^OLaHUXiV~dvy)EEP)4?V>^M@8q?JZmp>Uz7r>X* z%6!;4G5abZgVN`&7rz>d8IZ}K&Xm?Uz<*=&j0g~?+5Y;w^5(o1E4!h(`*k4OXGct% zG%oP7PduA3BC#cpgC@AE=X@8#ZXgH%t<*>97H*p7_y)`~&X~9ZvyCr0KZ^Ml+rvoq zuEcZPz;{ejv(9dbvkAW^M}IHY%mGffg?(wD@;A79*aS4vR9Tp(x}2JY5s>rl&312X zJtTCm26YlRRR0BbX1m}iGU(wC;{)pEm0&)mc^*tS;3BXEEc2mYmP+Ka3^+FDX0@96 z7h(!MQa@p$Mo70UOBmSLBAGL7mAal!jrj$ar5YfY`4VQ<){n0C&g}l_ww`x)Rc{dW zs#W|^9xIMI@)UB$$tjCnz4Myx(NBEzuZPBB`nO&!?Xnq+LsRpeixk=U{5r-qNk8=4Y#owbBf26I1-4*A8xCDfp9C(786=u=_f2@DN3WjKg8B4e-1& zoZ02O^&UpjQ2vN=gnJ1q>-y=0*M13m)~M&Zck)7fc5Y2V3NqcBs~5+j`JHLxzD`dd z3ZzeH4X+hbO7giLeYszEj^kmdcT!EcJHDwqtDki@T2`=0Co=4u8CwL}4aU3XT5w%?@+tub1X=aDI zb5neo5dDAr^{S~2KS<(Snwx>ApuP`(b3~8Wa#IgCtF`(}LPJ~H&V4)Y&X4iMhh%f# zOWk%}13Dz$fv3Tdu2fTzP#&@`g)0yq>o731NKV2`0Y}c}F;V~!b>*+cBsYh}X*dgBC z)VBqMLx!8QgbewJz6v9pGGoV2sMqMFl%qx-)YVqkE161Vh*^w(dqb~OEN+0C)+~|r z?OeA~{W*Pn3Qsi9)6@$#k(Z)6<)rC2omtII68!Uunt=*FpBnQwsWluylo2hF223Zb zHl~a`-^N;{d@Sdy1{ z2-=7s(0(zRYVo~yxUx$4+nw*7XY)0;YT&B#0PXuH73zLA4ANv!Pi$hXBj!Y|dTB&= z!0-gZf_8thC891RfefDr>PH0xd7fV{OkPAFBofI#tK$f ztOQR}#ddIbnW&G`rj??2YxWo=rb_2-xkNS{&Qjv7Ee3kMxV{{$RTqV~Ez!4K!l`@I zG^M%I#$SGKd#$rJsZ?F@lKkNhv41^YU29$4syLPjUr~py>|tw=#VH1Q3dOx>aGvfQ z`5F6tdqVb`<|)(ECroqPY}D!MVKcNS~9+=k_!ZPr434hi9-ALGZsxOA9y1DBJ@z z3l>O!A<6ihBRaBO-T=s`cJ!0}&S7UV+URb?uO@19ia8K58UBgkdF$j+xlYrDswnk)b|h^Q{O+zk-J}_d|;+mcCUYhDm*=*j~?7u596fhv% z3>bfM2&7IzZv|s|%ghDwF=U8d5*IKRq&`i9%{Qbv9x*}#AEy^x4)10BlO4jX$ZxP@ zah%s4JU0{0wiAQ}r&;cs@f;GqRO0lth|TL{ru~w7)3(iSf6uoXT`s(Zv9B9b+8O` zoEFs4F~K5h>+;n}Hc4DNZm)kesoaveGRNkKznYa~Qi=sS%znglq4LVRBccD~w7R{J zE10h~6!xe-bU|39ves zWL)kev?#E2T|#0W-#BpJ#}&NKpEyo?AQ3UoZUcPj3Q!M%8t2}+#53J8SPlQ6b7fU* zaA7TvBy_K6qh_dM#jICtge-0^wr~8tFCpx@t4&l!f;kul1QYUnfuz!+sBfGi^eO#a zq*lER@nNa-9ijpjSnm$>oqxw>8RHXT#;A*MuzQyqHQsHQpKkml!uCH&EO&1C##Pvy znQQ%`gq-I2V5VZOZv3+&u#;mh&uR!_t~*` z+#O!UebXOP&$odWt#zOH1-|!wecM-a0ustuTha%de>J{LDmOv?Y}cBMXut8=ZlT{DuG;x^fX5 zX`8~1@IZGQvfv;9Q@Z7WUfX?gv87Y54 z=qKU3yLW7AHFEc*A04@!EAf0A$nF1YV8|)AXizZtPa$$t6Kehb=;xlghL5BH6u26o zS!{7cV~9)E4~uPHZL5$0EuI-_E|y3Kpj>c~>YY6#X3#7d7mO_ z*e+Kks@FywgK}{#n#7$$4AZtZpK=9SXdyW^T*4+(y`9#Y#9!>gJu03lKSF|mUWu`RVADtXJrLotB*5JIKidQU{9REHomO=;c1EV|G>3{}h z`@yw+9spo=(AOV^#`7qByS+iGiihPzRB$tpeVp=N>Nr&tCjjN41h%1MLhXj8XR&$) zcF@Yr+7_CD1|DNmF^m~_#H2XU36h3wy)V^syfEJMyk|qdz05C7HNz?UBO6&`5Nr_; z!JqGth`-v9jghamoyvG$|LKAQ)T*SEoK-sAWz@lCewJNV5x!)3@E=+yS>?Js8!zDf z@|$YaI^-dubXZ^=>kpnUPs10t_NC99LpWY=?c=ShnH9)bl>@wNse>SK!fp!dA&{=( zV>%R{M?j|6Sh`!Ou*Mb&R6UE;-;4Vz@e2>{yA$@Bx54#cNka*b4neSOj{Z1g$bU)O zXFEaMIM*c|HHFDGLf3cLbTQYmP1sWWy2i#%fm;pTskKlRk7Y93$H2d+NPWgRWFCAl z|IhW27NwA|W!D?#?dgzz$yAC({Z<61s!MM>ZtfE^PT&B40+pqo<9D6S_i_r7!z!j? zCCl#1bXO*quam!?;tBRn)pv}+ca^aQ-6^Q^2sTU|mt>v6#d)85&cvX#J+ut}=Bhm7 zV&)&IGnVI8T9iq^!?GW5^WN&Ys4O}nK_|$30{4Zg#`zYFQBZi%{l@&k%=Lh$g3a4O zGQEn9BiZpZM6+1E8TQ%L3F=q_g+zrzo6FIB-{W~k?-VjmhhL=}KF#1lHuR--=4Ny1h7opI$Bq4_xk$cgl;xQ@>G|Z| z9ppXA@!e5=Ob)B-11##P3Wd(^1_%`E}% zUl9L;oMl_Phl$g=gc(?m^10N%mgl7|bj2gXn$W%J`aA#wc3jao}y(c*jZ8qJ&cJxTH>_oFeL*&Z@XX zX)K0^E|Y>r+6SvmDeWqMB8HT=ChaJkOk@O=)P4AMa9Z1E4YnJDdQK&`NTu(?G?R`) zJA@pMg!hL_BAj0;9<|E88I*M} zU9yMM;9g*I2ZX4FA?kMECrLAE&7S>L;DH_?J{`^p^+*d8LE@Xc2YL&$)Kw?J(CK;xH?Ae1F1n}wtmv;?^61!ld*JE8&^(eQiXLQiBk^PJrSMd06P|#eXeK0# zPEgNR0cjPmxNH`uyT3UtJ3JAil&;a^U6DY{FwIa21d5e=9Ezt59guqi5)$F+k7bHV zf;#!gTJWa{VHeKwpPYRAyEeB?WBZ3faP#$#<6--(V}GWfU`Vg*MlHgIc!m#dXZzV4 zjaCbe*1YE^ZU}?wLldKJBYEQOVdLgGiAV!~r|byqwn5eWwV2OKHCN|;zLksLv-v8~ z4`2ts=XD^nQGiOx3YSxyV6&#^o2~#BM3#B^QTZh?hdHN$ z;$)+K1xNt@@`m(PW3UWPte6ea1(5seW0yw?DOjpQ-6Qm@xZ_8#19o|hhvqn@W}{RL zuMe)N2n-Xl(T{&hF@XK6lvTHW8{_!>a&uFb%M??JPF`kCDt874{K$)kTeI1>vlj+H zt>x~arya)BYM=sM26avJfzO_dz&VtsQFv32a#}r196Ya8v*_>bJUCYLGiLeiU>GbB z4JCubshVm24~^`K$;y3jI@4Q5CL`V-0s3I=Y%3enl6_VX@_aXGd=8uaaJGLpzbRe% zi9HGW)ttZ?vkEOPQS#g`I};*_1jZpD`$rRg&h^Je;f_p-jrxtDA&WA}Kug1aOaGqm$vFPjGkT?foEb~E# z+4~I6VOMhz!_A5UhwXKgs)q84dQcA>mwev^32cJ#b$`Cq?xp?@3!v7~g2tkgZ|_M_ z&85sDqZ+!*Z(G!5oqw!dP3ZMoUfyLqK6TtmI4aT5|Hsr@MztArTidw1yF0~-yF-zp z#oa0H1b26e7I%uf26uYKZt2nbxr~b^8(yTqN~$9@CP`aN zn)?yl?8HYx;7m}2mii#MhinZbnCQL z+fRV(zlqq;8LkpvHr;zwC8CO-7lSV-M)IV(=eRC!U6gJx^sO>d?56IKI$5r%AWmo! zn_1lNZSr!Lyt5LlkKVtQmWIXyZhe){r4AawNI+ymruzQ$^zoX5d~S6yDAWrNXy8X| z{zwl+;w|_&>^S>pmP!AC4*%9R7)(!cyO!~qG_SX>gyHSq>fJI30T%{P@FF;^^_l$Y zSPGM43zq}Sml;%m7;xHCgd>M(0*9eM>Lp;*Q-5aOt4+u#N*h9tSu?jD$}o9<`T9YW zf-A{J@B>3Lqt6BGR3iEd_H|&RMqIX@ZKv^H1rlKews02rP*nRsRLP7!5hPr6@gvf$ z#zi5emOtrry1g&!6py6i|XIfvWv~Dk;Y9rAfVp@ztS#aB9^pJA7{i64!ic3V&|F$w(Bg%o5_!3NE; zfdrERw}8*{yn=pB7{D$CV9+XzRr-AI=F_tax5$w9$9!&x6tT-RG@_>VZ%B zK}ReVL&U6@E2M5fA`(X*2M0zT^Ow9Ph0+2Ri8T@)ikh{zB@eQK*mXG%h~=aiVQv`% zN%i+^^-*tLV`V6mq9WD!Ri(HV>SO)l{5TL6FGtx}#rJ(5)*YmWS^^U*-wYK5ss~5+ zFKWe(BHJ%oXUk+F5?Y-?!cr)65c9_P7*n|AxsAS*jon1AF$=`~g<>2{$7esQ5s!0% z{*j3F6Hpe7(`hKNgn4xXR>nw9F%?iP89DDWn2t-AIe*-#u9Vn4PFZMpZs-`wFBr(6 zdnr6opJuwDCJ9=b|B4kjwk!K?|H*;m^m1%{`pJ-aMs^KJU^p*J)XM4Yg=ine*1>Wz zqq>fYti-Yso_5nW)#Eb=9*t}Nj@t*XJH&nI3dCq-K!3P8lbs;oiut<#;mYS!;72*e zk;jsJqM`Vrgz-XZ4Wb!`Lq3u@T=@^$j%;ML4On0Rx_qMMQ+Z!pt*WA6U!UH?k0U}P zl3cmb!9mFrHO2aR=QkS~?=ju1g11$Scvz%@K#RS+Q;uZIuQ#%}S0ZVeGQCS5@4`3E zMAo-d_~O8#D_t;N*x%fni^p)luxnZBHR?d!lSr5&|KB%TgY5TzN~~8#Xmbuizmzlz z%H5sbKQtuq1;P3p914aCfn_t!T1?zrQqhN!i19)qD`Sc1#6xZ+MpZlU6=aIJRf5Vv zgPWtFt!1(#HKY67JJAtIeclt354NO8IsuB-7m$j017}P5J4TnVU?|!x3uB*cI?$I| zmu|Z2lTiimb`<#==0@al^--_{bp$rZp*iOQG8my;k8!c}ka}BQ~(#kypZCvV2Ib{u8-Vmtmy*V35C|0AW@t zu`$2cP_3hDEWJh{PfSDpm>9HFuj*x|`OcMY3LKJ?EUmR453ZiyR(Dov)Cr zr0TzBpx>WdlT^j`nkZgdUG)NF!78#!%;ZOAWbS}845|+Cs^C~`S^U{bo#==-dpQM8S`-?#m%lVRWExMX0Gf?4$wTGynapXU2? zh{=63eGq+viBiV)(Q)w#v7?1V-`fd3(HR8NlF|NCFFzWJgiUHE3KX=&ueu&ERP30T z9%}Q1o4aeWh_ytA(=9WHB*|=-B2<4sBT2ydz+2WA-6`>ur=@*!a%39G7adDIyt>-r zO+d*o<3cE>Q-HYm8OiQBxqLXLy$2QNfmj=>ggFQmFFOE#v*iKAJs7 z4W~h6f!as&0OOT|o5e&%3q&h1Uw0c17W#K76#%NHo(T?1iY-@rjXouD_36kUe}vpT!FP$X^`7a+dj{Hm3j4{insMzNA4n$fMhnq%JX;$7*>EMg7bhG%^Ei}R%Xe%IO zc`DAq665-E7ZS}d{l7-H8p=QOEV`ztVR#z2?|xR)iv2>bf41q6eq4Vn1Ser|b? zZMq4%58=kq=a|?_zizEi7!emc;z)x}vrHns?08JpF+ex&HI{u|F&iUWU`a_mPwsyw z3z-DS8L@Z@UzcY2O+GUNkIDC^ZJYH@0SF5W*EJrr%EsWVKdc*Qo;z{`g2Ro3oDYzO z`ZDZ04@mU3wi4y45^D~>5LN)GDX~t5;HDeJ`rHs0=kU+(51AT$ma>C==@4r`vmiB*>Xt#_iT-v4*OK>cW@l3?PaZ!y zg7C(x3&yQyzU(x^}mq%#?zu96}9e5=JOg-Oh zuhPGlmPN4lB9M?E`Do+wd~wH++sYq?7M>pgRl_PA20S~c2$+-rO0bOq z=u4w&={HXHWc$h<;vNIu+BShFdZ!C-F@)ULoZP-|IV#Nex6;>bd6z{YL7Mli(Fe92 z4x|Qoi8?#=zUGtZyUubO>|mfzJ2MQ2tc0$?32f~dE{=YYT%AM(L|mD8nSh0eXC63I z0gI|y5AtJv_p!!I+jsAN?er2jVIH(?W|(<8F3B{9lyI&`HS}*VzJ{ngEe-TAX#K&L zm+7R$e9hS7E5R&!ca{ir%3wWCR@T z?bnYRE^26r)~k=O1Rx|UD!?n#>q5ruid>qHU0JQFw+ZJGieB`VBU5t$7fJ)oQe3li zZ>tZx)8EvFd()*oti@CDT~JTm5!~=vvZcg1`Ks2CpVb1~MBJlumJ5w8+@+`Tx;4yf z`&E_--tZ@kC_*=fGA>wOg!Cu~I<&n(OVwPZ()zoj9IwAS)YP#8oPM-$O{^!tHMh?b z9w}+gIq_vp626u(Nl|%i``3U=TDx-(!F~@GV++>P_TZ94Y@OW@tXrvnHGA<*`$Ses*0QgSK6H zgTkSy{Ot{G_;%PI@6*b~^}h*G28^GGBV4FFN}#PuzyL1QCO~DyZ=z^C9fT@0PV(a- zJx?6wSvVVC$UC1=?`blS_HZbWm;IfTyaUC?BYggk>Y_cY^^Bj*J}d(6mN)&+y26&@ zrDwP1EsA2ENHziPE52>PvwR|UVHD!Ch;O_(=JGk2n=2%;RS`~wrycH3jkHNe_rsL2 z6H|`?_qGZO!T8(nv@(bEk<@QNgKr>5=2Mp(bH||bME7_CEsV7$mSx}m2n2}7&$Sg3 zC*VH9($}f+gtSpG%zpv>|2smZjluS%o@E`mJfB=%Yd&%P=)+*A?3lx(9WBeq*3cTD z10O{V{Mz7!vg+pFCuYn8{9~qb;FwvIeM4}Q4e}(G!$aP$5t=2^FD2}`N;NjSx*lG} zvKfPb_IvehTfL0f2&eevi-z1KF+oeu0X?#Y93m}hPNUROFn#4;{X1EZ)hPCmGyo!> zFuiAv`RR)zw@rm&Y7o)b1TK@~e;y(}z^QjB9$Cjlubq{%!&u3`Wyp3j90c_H+BJZm zSI0%C<{j7v$LGQpM}+gZt_O|4Te`1HY8QVTv9?VMs?yvc8hmYWQqR;xcc&7GD`Ux!ssvs2<4RfQVbvr;GN454&q(ebf)HwH!)YqQ|6F*dQ99kbgJ@ z-;M86NY{0M5#fY9*m!QY?nM&e; zF`2NzvBFc~8IT8fyq?0<$OGu=P-xxTe>Sf;l9GUeowg6}+y>b7BsgW6!M zD6V1dYl9Bm7Sy_I);Ov-YMT;#r0`Pgx6CPdv6M$kPQb;^b3lgw$nkoBe^en08#tum z9XF{P78WaI#Ot2IE^nFD)8jlquscU}#?sWs4wcggKazTHyFbI$iX?U#M$dkFeSh49 z5F}yIg1o(Kp&)haXVbBhF6t5YxA^!ftvLi9Y+}VIIhxs8Pkp3_1?ibd%XvtG6U&ed zd#Z=tjhdKE%ECyr7XLbiQE6p0;Y|(itglx43;kesCO%uAwzNB$R#bRpEb+SIvC}P% z_{$sl(a&nTtQR-q)7kxbmGxcRK5tAea6>_|_$Rv~_fhDC-_={A_PJ>WKvWMvuvSh< zt% zA+$nG?1z5_*(R)fv5rTXU%yu8Q$C~M2PZGn@XSoxJ^f@&=ZBO5DYy|!jhH~*{ZA6@ zKq7qCqNHbzsVF+7Gi>LU=K&>>9R}Yw_!0)B)eTQ~p*gpB>-`%bzml84{aiVMMs3bb z1=2J?_S6SBh(izTg_XVXy`SgS84J?ZstzM{kP0RuWTnn2CF$ku26~t23V=l;?pCQ* z*ZNdW6LrP#OeqLln`#(-IfU zUW@*@Am2b|p%aND4Cfwllbd|hQ9s2ug-zl+Xf5A>icEyZE8+)X-?=_@asIat=I&FZ zp}#!8t8Tpo4*Wx>4R$&wavGhs>Aq{)r+#1ZrbvJ`mjX1_)gGi&C5B;3YK9wwi|6`> zRx=ijVP#ES0&hdtoyPPQDxKZiUoQx$U6Mq{+H~y;%EfvUGpe(a(07O88Wn|N@jjj= zN>N|@#@T2!?Pm~45n+*&xeMp>qyfXMksUWDh}re0A9kZ!H*c7}2dX6dBd6~M55Koq za$$9dy<2WD<{W+_kUMl~G`ihf&Amv>sL0{A=RQz{fExpy&A-=IOZLqSfs8`S$wasN zJ~J=w!V_lJpQgJoX?-m#@C2;cqvl8)0HxRNV{JvDr?-J%l=w_m8}sL7qx9eZZ1iM`G* zAVY<#5ueXssr7K2c$Q+IIik_4Np2=m;h|iAHwaxen;FmG%Ct zyhIKjwxyhEQYn)A(}4;Ue8@;bz^<%ZfEkpgQ&nC;85?`=(TD76LMiQ^H|!MC?3DvoSU7lsOj38qOZWqO^?+3dGMDN%yC`efNJgh#w@R z_P0}N+UV~L`w>Irowq4#=8X6EwE6H;u}t**5Mtp(C@rI6HMB)P91(qXAV`Y~m#H`h z5h8dxz-L2oMYa-GN57o1c8b`SG-a+ujZQW-f&bpdwRchKc6{ zC0$i53SRE@(opNcy0L!gfDNF-CmXSLk-UX$mKT^#yKl^Fz)L$hpp~QnD$z2*T>Ucw z(Z*rby#eut*xaHx2CN+4O^Y73r4tUL=IvJQE*w8pN|iKc5x86_foCf6RVl z(CG8Y_9hTeP^){=M?eH?d6b9pQ8@eB6@2irRp73>97sC`)S6u%rGcA*?vZVw&3pz$ zNGcqRI6JDo`TV{V2+itW%o_Oec>JE3*d}M>FrsB=B%y!~=eI*|a(%nuW#5X(J;j|k z_8E?@5=)mrGa|x%+l#!%tu)TUIuWeH-+0cO?U$e96c0vMUD2=!m8?~Y;-+$AAil!1pBUv$NYh4|?FIoZu?w}$$7auChOORy^-k2?4nvcBNV#rSskv%m=C!Z$EV`pcMuDYitmoz8YKAQq z5+awPdFz8R?YX+1zNapm5-~t6EBZxU8Sn!eb6vC6nb7)-3MdU9)Qk{``rw}@-c{e; zwsxE?(tm5NS0Bp25WRNatZO0I_RxTX@zOA@@Bh_oZ`k0xEu-pM=vqPLA)GR{Nt_yP zyQ2sD9W>gsiPZ0D@b<=LtUqGo$ly(67=z`M9~d0i5m$!Ce#%d=MYp>>(K1OAHl(23 zy%L!^Pl!agioF}%lt_&PZjA#2ngZej5tn(?6jjC#B>A7tnI1OenY(rWYazE~Zaoc) zixtU)vT05uY~9d7K1iHDW~8HbpXTB_?PqZ zOvQn`i9{;a%cVa-u1avfe<|{=ukduVZm>GEyjBr170UxpC`iR)KQR-|ecnMcna;iO z?{po_yu2RLH!eIzkdHdMDbo(&+MipId{mO`_XPGm+Ce@_7n}-bmbF6zz~7i40198e z=(|+DO#4%7kH>vRw44&4VtgEgu8(9^egO~^lfOubfs-=|Lh z88^b-pc^uJ6ZtfMak(+@k&0WF;%HtL2ls68hZJnl@)0y3JGFM~H{5rcHH93ZiI}on z!71TOV;028gKx_-ig%D4r%3xy$DRh#9`c)cL;Ja^7Jm5Ycb=u?!kFXm4a2{I zO-I81wa|G#C`Sgc3FOY5Kl0zm9r+LWrKqMAGiSCupRRIrx3{0>bRoCu5Bt__H+^(k zFp%suEJOX7%{z7^k*4Eh=l`DhaqIq!yE{5ZVDHVK@Gida8h}jtE}KB@$LY0~@EXF1 zzdBsHM-xKGME^FKEjX6#``}0@>1|m~xxUM=MPD{@ z8u-RfCkqD9+K|Db5Md1q1_sjlJQtPdD#HpR_>KP#ZSrk!SM)M)5$tXcb-EjTXnx*6 zK>hCf-RX=q5uTNA9;I_=up z1$mN3m@grlt_K$B4awXL2_~(Ow`jIIj#M%UpSHV?utfl(8}$cev6!sdWwJeyXM{|W z*iaDsEeS~QMuG%JN9o->m5YOZ-Vlir~cO;$&IkfB$mFQulR-{+B=(Zc6Rkjsm0$9a|?T0 zxF&Uh?U+R*k-AzHjV1m}W>N{1zJbYfJa}gQcCm1;U|-Q#QN$;M_ZbhD^Uo~5XbARu z>;`HFh6Q4+)4He_BoJX%0@q$M#$4SO&XA~`br?cS=>5XT&ny%&_NGYPo@!SXM^`RK z;aTk;T(oc(T)CI=+YD;#Fio^oT}vXnbsGSA=s9@ikcQrLLf!+;8;MSM_gccBW3VqmOsse$s>D~oK8 zIdK6tdv;FYeJqQ#CZmPFg;?odT_Y>b%T5Iu&ll{_uKKVB$-sia048g0ugF~L^4gMG zw7qB_*#1=kJ*Jh3?K{oNl$C8a;$)^__;42qLqT{mNw`*P`Svf-#|mle+=$o@0aqG5 zD^{*cY?FAX%5=>BZzQZU;KT#J$+sUH=y$Pm+9Mm6EQE1&QI&@oa+}h?l6a_`V1k)TwXL(S;&QXxai?u3JUE-Lj8S@6qS;S7&u6`QmvEh!_QgVG1<)ZCtQPA%&@2$X8gPKVbvijGDd!g((@Tn932`=yjX(z0 zMl7z_iy=Qnb9mW%7Q*o@MNPdAa~RL25MVvK5hu0SI4+CBwoELiScWdA!kOFYV3r#T zUezT|iQ!Lv7Y{7AbOtC}xNX7xJiTCE>F~QGGcjK=e%hlg`paLJl-f=43@4PyUnStJ zQ@M!jNl`|h2d_L6T;E+_Jh;F{nQ&r&x(LxKC#%}`@FDzCgxz^zq`QHSWLUUj_eFg5 zdANC$csU>LE1?3!v+U;DZDRb6G)}0OC{T~V=2=vH6-~Y0M8~F-^qB^;3O)uS%52n`wSiB$C(z~!WfVnif#5(Xpm|@-$qC<8}+#k z>NS%kBqsniH4B?)?~U8I9?d9No6F$M!)&S`qHUI z`EeMvPD#pys%fb7i`JmzvB%WMw)tZ5eSqg1#3CUoyeD7Yv$)6pWL?U4%CMlkt zs|XLILD^@tCKi}9jRW3X^6ieR27GqUV5E4fXMR{cZbfH>Y)On|Kgv!df9W(K$!AJ; zYYIMZqhOZV-*V;3eda&kYnmmdsP7mW_^cs$#IomtAws7hue$Zi9jS z#zA9H9I~mCs!KUj8uX6jHwY;xb2+G!ZgNF;G8PU!Q7AY3qe0w?xZpvl?bp*Q(h9L6 ztI5)u%d0nvnY*)J!9(IB!yn`KVBPo3J$}QM^gjSl^>tBi$mywFGn+-qh>cOkOrd`F z(}XHh1n5ZO^T~taIL&zc+`$7y&m=b9m!31E+On_ z>|hD7eQ>`dHA#Aj(d#07kQ^XXAGOB7(IszgZYZv50=Ip;!$I>nuwbH6zTDT{@s?ud zV@L%ThNv;B-L$pB)~abQoU$4ps{m?lD{q@iy;VcAY`0U(!|t1$@?RpgUN1?wMH zKe>T!HSC^=rNyJpN*&7EdL9i^W%Il=pWwTb;zQSPT%#z~-Ak}1$gZ)%X~jxyHRq87 zBCYzhvAHD;OS|{P%~@ME8~|^(QvD<*CKc`hoRQx9#O zZLJ#J_n%8jUN3*7Gp}`u-!FATE07&HJ@3912tkpYK?BSA5kaTzkV$qU=3h#F zoJ;aa_b;8zYSsgJf6{cIh5$z%La-FOBno7~%{}w?PsHUa|Rj zI2=rQNfAHs7!N`LrM$-+PYFIFLc$jT_)^6~%12h0p1;DXQuJEO`FfIJe^EG?IJjUC zr>~}^L|D~dpwDBJveRCscYcNwnfrGe6 zO)bGpOG$BJr1zx#OIei@e_h0RfT4@n1#}q}eGmAGu<|n&NkN@Sr!bQ>B87PXc4Gzn zeb5HQ4b%5L5B(anFP&+YSh|7ojUq2&9kam2D^DmxJOZ>B&W!2`mP z;**L2p^7(?2Jwe}#9_HEliKJeRTpVR?RfzH11l0qDogeyiR~8ERjAv34nY>LZQUVm zZw-2Oq>wp0>Q;nfZI|gO-{obfkF&TvzA(?~pSQ4$bI`$Mq~I1||0TB)`|1LNcr!E$ z&Jk^yOgxl9Y|rNWbqgUb{q($4z36<|>vRcOFFF3Q+@@ShE~O9s#kOExo0(Z^By3Uh zl3(Sld-rttV==D2VPwo!4_d1PSH-s=%)LAA$_H*UY=@aW4Jy1O5P~Nh`Jy%j?Kee* z8-;|~bJPI*I7&2%QE2S1SAmqP*<`YsDbO!hi;h}qJy z9@|Su98H(N&MOvz$g+$NRjxLsY(^`f?&F@7hY89`p6{SyR}{obJj(E0ac3 z8#2$Dn&HyX=a2DcTWauJyCyyg)XVa|hzT1`D|hC;X%z_lJ?ui96I}=QEjZoftD5OK z$>;2ZHAAd|ABA~hXkjimMeg)^w+fOq>V?d7?lN3miyG8Y8Zvm7dzY;2GepTBngGuD z8a)|*C@oA6fpKS?rY@rD-=0L1xKDFU&HA!_W|UX+JRUtZsQ?VYqxX;GSUS$hztmv3 z7UiuxiSc@6tI{R9A+S4vWSzDvo8_CLx@cRQOFBigZ0mkW>F!?k+oB`uFV;&JkM}Ck zJ7pyL5RC00v&eFD$gR*=*Cg1oO`vG z08B9Ru&0r{2u~%w3-tSu+RdVR&(`9&K%sejk)B57%zHe6SNBh;LAq!Er}jW=wwI0r zl6QzB7PKS_(n6aa!39J~ADcTA$$9Anutjgwjfq^rs&}YK_JvvB8efIm9)9I&Lwha^W`jD^

k__q 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

?H{4md#D8|VGI?n4hQH=92=jKRv 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� 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Ð!+e-oWiD^V&CU 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
aZ;Q91y`mtinQ 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 S0Zj1+@iNf4uU)Tc7yCaS{<6LR literal 0 HcmV?d00001 diff --git a/examples/azure-sql-mi/grafana-dashboard/overview.png b/examples/azure-sql-mi/grafana-dashboard/overview.png new file mode 100644 index 0000000000000000000000000000000000000000..20d90b9acc0ce5a825f8568a30933090e233f4c0 GIT binary patch literal 200641 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

~SPhP2H#ehQVBRm{js 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

Jv$P4q^|iWN|LG`N^u48L{E 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 Kq^l)OzWzV)-hK`M literal 0 HcmV?d00001 diff --git a/examples/azure-sql-mi/grafana-dashboard/waits-and-queues.png b/examples/azure-sql-mi/grafana-dashboard/waits-and-queues.png new file mode 100644 index 0000000000000000000000000000000000000000..37b9805e952491081972491dca7ae5323e2258a7 GIT binary patch literal 583223 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 z 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

Y4OAjc?Bgee2Kkpr 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
5MGH5x}rOt z*yw2ejpq_FonxY+!~@Uxo!a*V$8;?rj_sh(ft&C|0LPyK zFbW_NQ+g;JP$1GAn2y2+5710va;pAJ8lnKgq@m_{I{IB{90EED9PKM!<9whnfm_ifIFYec@m*wxOzPmm#XxDe`i@BgtdfT_}07(FG&?m;)1K*zkSj?KeJ@*Is`?o_^{fmAsMAOd!E|W5F^9))+POSL=OG zzyP-n(uwJV&J$WkyJ|x03HaDu+DO)WTsY@to&50Lqj1?`T$QFiQhEc#@TSh^#ulWKP%$qzxTs8<)jv{_&1koA5 z@^J3Qff0B?Gqq;!u~_C;2oAjJaoTK8duqgC)Em|b_Bv3FQ3+APVmk^%D}*7mqUYGs zg}=TxRSax@Eo>vo_CN$>Piih=4%mJ}eZG+hC|S_

@&{(hf;vE84xRlJR6JF(w^E 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 z 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

;E|`IGwp79lc! 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 xSI*CS|G&3A4=FZ11*G(y1UUf@hP)BoKu)z= 1024 + OPTION(RECOMPILE); diff --git a/examples/azure-sql-mi/mssql_mi_perf.collector.yml b/examples/azure-sql-mi/mssql_mi_perf.collector.yml new file mode 100644 index 00000000..20e64a79 --- /dev/null +++ b/examples/azure-sql-mi/mssql_mi_perf.collector.yml @@ -0,0 +1,226 @@ +# A collector defining performance metrics for Microsoft SQL Server (Managed Instance). +# +# It is required that the SQL Server user has the following permissions: +# +# GRANT VIEW ANY DEFINITION TO +# GRANT VIEW SERVER STATE TO +# +collector_name: mssqlmi_perf + +# Similar to global.min_interval, but applies to the queries defined by this collector only. +#min_interval: 0s + +metrics: + # + # Collected from sys.dm_os_performance_counters + # + - metric_name: mssqlmi_perf_counter + type: counter + help: 'Performance counters' + key_labels: + - db + - object + - counter + values: [counter_value] + query_ref: mssqlmi_performance_counters + + - metric_name: mssqlmi_perf_gauge + type: gauge + help: 'Performance gauges' + key_labels: + - db + - object + - gauge + values: [counter_value] + query_ref: mssqlmi_performance_gauges + +queries: + - query_name: mssqlmi_performance_counters + query: | + SET DEADLOCK_PRIORITY -10; + IF SERVERPROPERTY('EngineEdition') <> 8 BEGIN /*not Azure Managed Instance*/ + DECLARE @ErrorMessage AS nvarchar(500) = 'sql_exporter - Connection string Server:'+ @@SERVERNAME + ',Database:' + DB_NAME() +' is not an Azure Managed Instance.'; + RAISERROR (@ErrorMessage,11,1) + RETURN + END + DECLARE @PCounters TABLE + ( + [object_name] nvarchar(128), + [counter_name] nvarchar(128), + [instance_name] nvarchar(128), + [cntr_value] bigint, + [cntr_type] INT , + Primary Key([object_name],[counter_name],[instance_name]) + ); + WITH PerfCounters AS ( + SELECT DISTINCT + RTrim(spi.[object_name]) [object_name] + ,RTrim(spi.[counter_name]) [counter_name] + ,CASE WHEN ( + RTRIM(spi.[object_name]) LIKE '%:Databases' + OR RTRIM(spi.[object_name]) LIKE '%:Database Replica' + OR RTRIM(spi.[object_name]) LIKE '%:Catalog Metadata' + OR RTRIM(spi.[object_name]) LIKE '%:Query Store' + OR RTRIM(spi.[object_name]) LIKE '%:Columnstore' + OR RTRIM(spi.[object_name]) LIKE '%:Advanced Analytics') + AND TRY_CONVERT([uniqueidentifier], spi.[instance_name]) IS NOT NULL -- for cloud only + THEN ISNULL(d.[name],RTRIM(spi.instance_name)) -- Elastic Pools counters exist for all databases but sys.databases only has current DB value + WHEN + RTRIM([object_name]) LIKE '%:Availability Replica' + AND TRY_CONVERT([uniqueidentifier], spi.[instance_name]) IS NOT NULL -- for cloud only + THEN ISNULL(d.[name],RTRIM(spi.[instance_name])) + RTRIM(SUBSTRING(spi.[instance_name], 37, LEN(spi.[instance_name]))) + ELSE RTRIM(spi.instance_name) + END AS [instance_name] + ,CAST(spi.[cntr_value] AS BIGINT) AS [cntr_value] + ,spi.[cntr_type] + FROM sys.dm_os_performance_counters AS spi + LEFT JOIN sys.databases AS d + ON LEFT(spi.[instance_name], 36) -- some instance_name values have an additional identifier appended after the GUID + = CASE + /*in SQL DB standalone, physical_database_name for master is the GUID of the user database*/ + WHEN d.[name] = 'master' AND TRY_CONVERT([uniqueidentifier], d.[physical_database_name]) IS NOT NULL + THEN d.[name] + ELSE d.[physical_database_name] + END + WHERE + counter_name IN ( + -- following are all counters + -- from Databases object + 'Transactions/sec' + ,'Log Bytes Flushed/sec' + ,'Log Flushes/sec' + -- from SQL Statistics object + ,'Batch Requests/sec' + ,'SQL Compilations/sec' + ,'SQL Re-Compilations/sec' + -- from Access Methods object + ,'Forwarded Records/sec' + ,'Full Scans/sec' + ,'Index Searches/sec' + ,'Page Splits/sec' + ,'Table Lock Escalations/sec' + ,'Workfiles Created/sec' + ,'Worktables Created/sec' + -- from General Statistics + ,'Active Temp Tables' + ,'Logins/sec' + ,'Logouts/sec' + ,'Logical Connections' + ,'Processes blocked' + ,'Temp Tables Creation Rate' + ,'Temp Tables For Destruction' + ,'User Connections' + -- from Buffer Manager + ,'Background writer pages/sec' + ,'Free list stalls/sec' + ,'Lazy writes/sec' + ,'Page lookups/sec' + ,'Page reads/sec' + ,'Page writes/sec' + ,'Readahead pages/sec' + ) + ) + INSERT INTO @PCounters select * from PerfCounters + SELECT + pc.[object_name] AS [object] + ,pc.[counter_name] AS [counter] + ,CASE pc.[instance_name] + WHEN '_Total' THEN 'Total' + ELSE ISNULL(pc.[instance_name],'') + END AS [db] + ,pc.[cntr_value] AS [counter_value] + from @PCounters pc + OPTION (RECOMPILE); + + - query_name: mssqlmi_performance_gauges + query: | + SET DEADLOCK_PRIORITY -10; + IF SERVERPROPERTY('EngineEdition') <> 8 BEGIN /*not Azure Managed Instance*/ + DECLARE @ErrorMessage AS nvarchar(500) = 'sql_exporter - Connection string Server:'+ @@SERVERNAME + ',Database:' + DB_NAME() +' is not an Azure Managed Instance.'; + RAISERROR (@ErrorMessage,11,1) + RETURN + END + DECLARE @PCounters TABLE + ( + [object_name] nvarchar(128), + [counter_name] nvarchar(128), + [instance_name] nvarchar(128), + [cntr_value] bigint, + [cntr_type] INT , + Primary Key([object_name],[counter_name],[instance_name]) + ); + WITH PerfCounters AS ( + SELECT DISTINCT + RTrim(spi.[object_name]) [object_name] + ,RTrim(spi.[counter_name]) [counter_name] + ,CASE WHEN ( + RTRIM(spi.[object_name]) LIKE '%:Databases' + OR RTRIM(spi.[object_name]) LIKE '%:Database Replica' + OR RTRIM(spi.[object_name]) LIKE '%:Buffer Manager' + OR RTRIM(spi.[object_name]) LIKE '%:Buffer Node' + OR RTRIM(spi.[object_name]) LIKE '%:Catalog Metadata' + OR RTRIM(spi.[object_name]) LIKE '%:Query Store' + OR RTRIM(spi.[object_name]) LIKE '%:Columnstore' + OR RTRIM(spi.[object_name]) LIKE '%:Advanced Analytics') + AND TRY_CONVERT([uniqueidentifier], spi.[instance_name]) IS NOT NULL -- for cloud only + THEN ISNULL(d.[name],RTRIM(spi.instance_name)) -- Elastic Pools counters exist for all databases but sys.databases only has current DB value + WHEN + RTRIM([object_name]) LIKE '%:Availability Replica' + AND TRY_CONVERT([uniqueidentifier], spi.[instance_name]) IS NOT NULL -- for cloud only + THEN ISNULL(d.[name],RTRIM(spi.[instance_name])) + RTRIM(SUBSTRING(spi.[instance_name], 37, LEN(spi.[instance_name]))) + ELSE RTRIM(spi.instance_name) + END AS [instance_name] + ,CAST(spi.[cntr_value] AS BIGINT) AS [cntr_value] + ,spi.[cntr_type] + FROM sys.dm_os_performance_counters AS spi + LEFT JOIN sys.databases AS d + ON LEFT(spi.[instance_name], 36) -- some instance_name values have an additional identifier appended after the GUID + = CASE + /*in SQL DB standalone, physical_database_name for master is the GUID of the user database*/ + WHEN d.[name] = 'master' AND TRY_CONVERT([uniqueidentifier], d.[physical_database_name]) IS NOT NULL + THEN d.[name] + ELSE d.[physical_database_name] + END + WHERE + counter_name IN ( + -- following are all gauges + -- from Resource Pool Stats/Workload Group Stats objects + 'CPU usage %' + ,'CPU usage % base' + -- from Memory Manager object + --,'Memory Grants Outstanding' + --,'Memory Grants Pending' + ,'Target Server Memory (KB)' + ,'Total Server Memory (KB)' + -- from General Statistics + --,'Active Temp Tables' + --,'Logical Connections' + --,'Processes blocked' + --,'Temp Tables Creation Rate' + --,'Temp Tables For Destruction' + --,'User Connections' + -- from Buffer Manager + ,'Page life expectancy' + ) + ) + INSERT INTO @PCounters select * from PerfCounters + SELECT + pc.[object_name] AS [object] + ,pc.[counter_name] AS [gauge] + ,CASE pc.[instance_name] + WHEN '_Total' THEN 'Total' + ELSE ISNULL(pc.[instance_name],'') + END AS [db] + ,CAST(CASE WHEN pc.[cntr_type] = 537003264 AND pc1.[cntr_value] > 0 THEN (pc.[cntr_value] * 1.0) / (pc1.[cntr_value] * 1.0) * 100 ELSE pc.[cntr_value] END AS float(10)) AS [counter_value] + from @PCounters pc + LEFT OUTER JOIN @PCounters AS pc1 + ON ( + pc.[counter_name] = REPLACE(pc1.[counter_name],' base','') + OR pc.[counter_name] = REPLACE(pc1.[counter_name],' base',' (ms)') + ) + AND pc.[object_name] = pc1.[object_name] + AND pc.[instance_name] = pc1.[instance_name] + AND pc1.[counter_name] LIKE '%base' + WHERE + pc.[counter_name] NOT LIKE '% base' + OPTION (RECOMPILE); diff --git a/examples/azure-sql-mi/mssql_mi_properties.collector.yml b/examples/azure-sql-mi/mssql_mi_properties.collector.yml new file mode 100644 index 00000000..16a75b8d --- /dev/null +++ b/examples/azure-sql-mi/mssql_mi_properties.collector.yml @@ -0,0 +1,74 @@ +# A collector defining standard metrics for Microsoft SQL Server (Managed Instance). +# +# It is required that the SQL Server user has the following permissions: +# +# GRANT VIEW ANY DEFINITION TO +# GRANT VIEW SERVER STATE TO +# +collector_name: mssqlmi_properties + +# Similar to global.min_interval, but applies to the queries defined by this collector only. +#min_interval: 0s + +metrics: + # + # Collected from sys.server_resource_stats + # + - metric_name: mssqlmi_cpu_count + type: gauge + help: 'Virtual Cores' + values: [cpu_count] + query_ref: mssqlmi_properties + + - metric_name: mssqlmi_server_memory_bytes + type: gauge + help: 'Server Memory in bytes' + values: [server_memory] + query_ref: mssqlmi_properties + + - metric_name: mssqlmi_total_storage_bytes + type: gauge + help: 'Total Storage in bytes' + key_labels: + # populated from sku column + - sku + - hardware_type + values: [total_storage] + query_ref: mssqlmi_properties + + - metric_name: mssqlmi_available_storage_bytes + type: gauge + help: 'Available Storage in bytes' + values: [available_storage] + query_ref: mssqlmi_properties + + - metric_name: mssqlmi_db_online + type: gauge + help: '# of Online Databases' + values: [db_online] + query_ref: mssqlmi_properties + +queries: + - query_name: mssqlmi_properties + query: | + IF SERVERPROPERTY('EngineEdition') <> 8 BEGIN /*not Azure Managed Instance*/ + DECLARE @ErrorMessage AS nvarchar(500) = 'sql_exporter - Connection string Server:'+ @@SERVERNAME + ',Database:' + DB_NAME() +' is not an Azure Managed Instance.'; + RAISERROR (@ErrorMessage,11,1) + RETURN + END + SELECT TOP 1 + [virtual_core_count] AS [cpu_count] + ,(SELECT [process_memory_limit_mb]*1000000 FROM sys.dm_os_job_object) AS [server_memory] + ,[sku] + ,[hardware_generation] AS [hardware_type] + ,cast([reserved_storage_mb]*1000000 as bigint) AS [total_storage] + ,cast(([reserved_storage_mb] - [storage_space_used_mb])*1000000 as bigint) AS [available_storage] + ,[db_online] + FROM sys.server_resource_stats + CROSS APPLY ( + SELECT + SUM( CASE WHEN [state] = 0 THEN 1 ELSE 0 END ) AS [db_online] + FROM sys.databases + ) AS dbs + ORDER BY + [start_time] DESC; diff --git a/examples/azure-sql-mi/mssql_mi_size.collector.yml b/examples/azure-sql-mi/mssql_mi_size.collector.yml new file mode 100644 index 00000000..4814c976 --- /dev/null +++ b/examples/azure-sql-mi/mssql_mi_size.collector.yml @@ -0,0 +1,49 @@ +# A collector defining database size metrics for Microsoft SQL Server (Managed Instance). +# +# It is required that the SQL Server user has the following permissions: +# +# GRANT VIEW ANY DEFINITION TO +# GRANT VIEW SERVER STATE TO +# +collector_name: mssqlmi_size + +# Similar to global.min_interval, but applies to the queries defined by this collector only. +#min_interval: 0s + +metrics: + # + # Collected from sys.dm_io_virtual_file_stats + # + - metric_name: mssqlmi_database_size_bytes + type: gauge + help: 'Database Size in Bytes' + key_labels: + - database + - file_type + values: [size_on_disk_bytes] + query_ref: mssqlmi_size + +queries: + - query_name: mssqlmi_size + query: | + IF SERVERPROPERTY('EngineEdition') <> 8 BEGIN /*not Azure Managed Instance*/ + DECLARE @ErrorMessage AS nvarchar(500) = 'sql_exporter - Connection string Server:'+ @@SERVERNAME + ',Database:' + DB_NAME() +' is not an Azure Managed Instance.'; + RAISERROR (@ErrorMessage,11,1) + RETURN + END + SELECT + DB_NAME(mf.database_id) AS [database] + -- ,name AS 'File Logical Name' + ,'file_type' = CASE WHEN type_desc = 'LOG' THEN 'Log File' WHEN type_desc = 'ROWS' THEN 'Data File' ELSE type_desc END + -- ,mf.physical_name AS 'File Physical Name' + ,size_on_disk_bytes + -- ,size_on_disk_bytes/ 1024 AS 'Size(KB)' + -- size_on_disk_bytes/ 1024 / 1024 AS 'Size(MB)', + -- size_on_disk_bytes/ 1024 / 1024 / 1024 AS 'Size(GB)' + FROM + sys.dm_io_virtual_file_stats(NULL, NULL) AS divfs + JOIN sys.master_files AS mf + ON mf.database_id = divfs.database_id + AND mf.file_id = divfs.file_id + WHERE DB_NAME(mf.database_id) NOT IN ('master', 'model','tempdb', 'msdb') + -- ORDER BY size_on_disk_bytes DESC diff --git a/examples/azure-sql-mi/mssql_mi_wait.collector.yml b/examples/azure-sql-mi/mssql_mi_wait.collector.yml new file mode 100644 index 00000000..809f693a --- /dev/null +++ b/examples/azure-sql-mi/mssql_mi_wait.collector.yml @@ -0,0 +1,153 @@ +# A collector defining wait metrics for Microsoft SQL Server (Managed Instance). +# +# It is required that the SQL Server user has the following permissions: +# +# GRANT VIEW ANY DEFINITION TO +# GRANT VIEW SERVER STATE TO +# +collector_name: mssqlmi_wait + +# Similar to global.min_interval, but applies to the queries defined by this collector only. +#min_interval: 0s + +metrics: + # + # Collected from sys.dm_os_wait_stats + # + - metric_name: mssqlmi_wait_time_seconds + type: gauge + help: 'Wait Time in Seconds' + key_labels: + - wait_type + - wait_category + values: [wait_time_seconds] + query_ref: mssqlmi_wait + - metric_name: mssqlmi_signal_wait_time_seconds + type: gauge + help: 'Signal Wait Time in Seconds' + key_labels: + - wait_type + - wait_category + values: [signal_wait_time_seconds] + query_ref: mssqlmi_wait + - metric_name: mssqlmi_waiting_tasks_count + type: gauge + help: 'Wait Tasks Count' + key_labels: + - wait_type + - wait_category + values: [waiting_tasks_count] + query_ref: mssqlmi_wait + +queries: + - query_name: mssqlmi_wait + query: | + IF SERVERPROPERTY('EngineEdition') <> 8 BEGIN /*not Azure Managed Instance*/ + DECLARE @ErrorMessage AS nvarchar(500) = 'sql_exporter - Connection string Server:'+ @@SERVERNAME + ',Database:' + DB_NAME() +' is not an Azure Managed Instance.'; + RAISERROR (@ErrorMessage,11,1) + RETURN + END + SELECT + ws.[wait_type] + ,CAST([wait_time_ms] / 1000.0 AS FLOAT(10)) AS [wait_time_seconds] + --,[wait_time_ms] - [signal_wait_time_ms] AS [resource_wait_ms] + ,CAST([signal_wait_time_ms] / 1000.0 AS FLOAT(10)) AS [signal_wait_time_seconds] + -- ,[max_wait_time_ms] + ,[waiting_tasks_count] + ,CASE + WHEN ws.[wait_type] LIKE 'SOS_SCHEDULER_YIELD' then 'CPU' + WHEN ws.[wait_type] = 'THREADPOOL' THEN 'Worker Thread' + WHEN ws.[wait_type] LIKE 'LCK[_]%' THEN 'Lock' + WHEN ws.[wait_type] LIKE 'LATCH[_]%' THEN 'Latch' + WHEN ws.[wait_type] LIKE 'PAGELATCH[_]%' THEN 'Buffer Latch' + WHEN ws.[wait_type] LIKE 'PAGEIOLATCH[_]%' THEN 'Buffer IO' + WHEN ws.[wait_type] LIKE 'RESOURCE_SEMAPHORE_QUERY_COMPILE%' THEN 'Compilation' + WHEN ws.[wait_type] LIKE 'CLR[_]%' or ws.[wait_type] like 'SQLCLR%' THEN 'SQL CLR' + WHEN ws.[wait_type] LIKE 'DBMIRROR_%' THEN 'Mirroring' + WHEN ws.[wait_type] LIKE 'DTC[_]%' or ws.[wait_type] LIKE 'DTCNEW%' or ws.[wait_type] LIKE 'TRAN_%' + or ws.[wait_type] LIKE 'XACT%' or ws.[wait_type] like 'MSQL_XACT%' THEN 'Transaction' + WHEN ws.[wait_type] LIKE 'SLEEP[_]%' + or ws.[wait_type] IN ( + 'LAZYWRITER_SLEEP', 'SQLTRACE_BUFFER_FLUSH', 'SQLTRACE_INCREMENTAL_FLUSH_SLEEP', + 'SQLTRACE_WAIT_ENTRIES', 'FT_IFTS_SCHEDULER_IDLE_WAIT', 'XE_DISPATCHER_WAIT', + 'REQUEST_FOR_DEADLOCK_SEARCH', 'LOGMGR_QUEUE', 'ONDEMAND_TASK_QUEUE', + 'CHECKPOINT_QUEUE', 'XE_TIMER_EVENT') THEN 'Idle' + WHEN ws.[wait_type] IN( + 'ASYNC_IO_COMPLETION','BACKUPIO','CHKPT','WRITE_COMPLETION', + 'IO_QUEUE_LIMIT', 'IO_RETRY') THEN 'Other Disk IO' + WHEN ws.[wait_type] LIKE 'PREEMPTIVE_%' THEN 'Preemptive' + WHEN ws.[wait_type] LIKE 'BROKER[_]%' THEN 'Service Broker' + WHEN ws.[wait_type] IN ( + 'WRITELOG','LOGBUFFER','LOGMGR_RESERVE_APPEND', + 'LOGMGR_FLUSH', 'LOGMGR_PMM_LOG') THEN 'Tran Log IO' + WHEN ws.[wait_type] LIKE 'LOG_RATE%' then 'Log Rate Governor' + WHEN ws.[wait_type] LIKE 'HADR_THROTTLE[_]%' + or ws.[wait_type] = 'THROTTLE_LOG_RATE_LOG_STORAGE' THEN 'HADR Log Rate Governor' + WHEN ws.[wait_type] LIKE 'RBIO_RG%' or ws.[wait_type] like 'WAIT_RBIO_RG%' then 'VLDB Log Rate Governor' + WHEN ws.[wait_type] LIKE 'RBIO[_]%' or ws.[wait_type] like 'WAIT_RBIO[_]%' then 'VLDB RBIO' + WHEN ws.[wait_type] IN( + 'ASYNC_NETWORK_IO','EXTERNAL_SCRIPT_NETWORK_IOF', + 'NET_WAITFOR_PACKET','PROXY_NETWORK_IO') THEN 'Network IO' + WHEN ws.[wait_type] IN ( 'CXPACKET', 'CXCONSUMER') + or ws.[wait_type] like 'HT%' or ws.[wait_type] like 'BMP%' + or ws.[wait_type] like 'BP%' THEN 'Parallelism' + WHEN ws.[wait_type] IN( + 'CMEMTHREAD','CMEMPARTITIONED','EE_PMOLOCK','EXCHANGE', + 'RESOURCE_SEMAPHORE','MEMORY_ALLOCATION_EXT', + 'RESERVED_MEMORY_ALLOCATION_EXT', 'MEMORY_GRANT_UPDATE') THEN 'Memory' + WHEN ws.[wait_type] IN ('WAITFOR','WAIT_FOR_RESULTS') THEN 'User Wait' + WHEN ws.[wait_type] LIKE 'HADR[_]%' or ws.[wait_type] LIKE 'PWAIT_HADR%' + or ws.[wait_type] LIKE 'REPLICA[_]%' or ws.[wait_type] LIKE 'REPL_%' + or ws.[wait_type] LIKE 'SE_REPL[_]%' + or ws.[wait_type] LIKE 'FCB_REPLICA%' THEN 'Replication' + WHEN ws.[wait_type] LIKE 'SQLTRACE[_]%' + or ws.[wait_type] IN ( + 'TRACEWRITE', 'SQLTRACE_LOCK', 'SQLTRACE_FILE_BUFFER', 'SQLTRACE_FILE_WRITE_IO_COMPLETION', + 'SQLTRACE_FILE_READ_IO_COMPLETION', 'SQLTRACE_PENDING_BUFFER_WRITERS', 'SQLTRACE_SHUTDOWN', + 'QUERY_TRACEOUT', 'TRACE_EVTNOTIF') THEN 'Tracing' + WHEN ws.[wait_type] IN ( + 'FT_RESTART_CRAWL', 'FULLTEXT GATHERER', 'MSSEARCH', 'FT_METADATA_MUTEX', + 'FT_IFTSHC_MUTEX', 'FT_IFTSISM_MUTEX', 'FT_IFTS_RWLOCK', 'FT_COMPROWSET_RWLOCK', + 'FT_MASTER_MERGE', 'FT_PROPERTYLIST_CACHE', 'FT_MASTER_MERGE_COORDINATOR', + 'PWAIT_RESOURCE_SEMAPHORE_FT_PARALLEL_QUERY_SYNC') THEN 'Full Text Search' + ELSE 'Other' + END as [wait_category] + FROM sys.dm_os_wait_stats AS ws WITH (NOLOCK) + WHERE + ws.[wait_type] NOT IN ( + N'BROKER_EVENTHANDLER', N'BROKER_RECEIVE_WAITFOR', N'BROKER_TASK_STOP', + N'BROKER_TO_FLUSH', N'BROKER_TRANSMITTER', N'CHECKPOINT_QUEUE', + N'CHKPT', N'CLR_AUTO_EVENT', N'CLR_MANUAL_EVENT', N'CLR_SEMAPHORE', + N'DBMIRROR_DBM_EVENT', N'DBMIRROR_EVENTS_QUEUE', N'DBMIRROR_QUEUE', + N'DBMIRRORING_CMD', N'DIRTY_PAGE_POLL', N'DISPATCHER_QUEUE_SEMAPHORE', + N'EXECSYNC', N'FSAGENT', N'FT_IFTS_SCHEDULER_IDLE_WAIT', N'FT_IFTSHC_MUTEX', + N'HADR_CLUSAPI_CALL', N'HADR_FILESTREAM_IOMGR_IOCOMPLETION', N'HADR_LOGCAPTURE_WAIT', + N'HADR_NOTIFICATION_DEQUEUE', N'HADR_TIMER_TASK', N'HADR_WORK_QUEUE', + N'KSOURCE_WAKEUP', N'LAZYWRITER_SLEEP', N'LOGMGR_QUEUE', + N'MEMORY_ALLOCATION_EXT', N'ONDEMAND_TASK_QUEUE', + N'PARALLEL_REDO_WORKER_WAIT_WORK', + N'PREEMPTIVE_HADR_LEASE_MECHANISM', N'PREEMPTIVE_SP_SERVER_DIAGNOSTICS', + N'PREEMPTIVE_OS_LIBRARYOPS', N'PREEMPTIVE_OS_COMOPS', N'PREEMPTIVE_OS_CRYPTOPS', + N'PREEMPTIVE_OS_PIPEOPS','PREEMPTIVE_OS_GENERICOPS', N'PREEMPTIVE_OS_VERIFYTRUST', + N'PREEMPTIVE_OS_DEVICEOPS', + N'PREEMPTIVE_XE_CALLBACKEXECUTE', N'PREEMPTIVE_XE_DISPATCHER', + N'PREEMPTIVE_XE_GETTARGETSTATE', N'PREEMPTIVE_XE_SESSIONCOMMIT', + N'PREEMPTIVE_XE_TARGETINIT', N'PREEMPTIVE_XE_TARGETFINALIZE', + N'PWAIT_ALL_COMPONENTS_INITIALIZED', N'PWAIT_DIRECTLOGCONSUMER_GETNEXT', + N'QDS_PERSIST_TASK_MAIN_LOOP_SLEEP', + N'QDS_ASYNC_QUEUE', + N'QDS_CLEANUP_STALE_QUERIES_TASK_MAIN_LOOP_SLEEP', N'REQUEST_FOR_DEADLOCK_SEARCH', + N'RESOURCE_QUEUE', N'SERVER_IDLE_CHECK', N'SLEEP_BPOOL_FLUSH', N'SLEEP_DBSTARTUP', + N'SLEEP_DCOMSTARTUP', N'SLEEP_MASTERDBREADY', N'SLEEP_MASTERMDREADY', + N'SLEEP_MASTERUPGRADED', N'SLEEP_MSDBSTARTUP', N'SLEEP_SYSTEMTASK', N'SLEEP_TASK', + N'SLEEP_TEMPDBSTARTUP', N'SNI_HTTP_ACCEPT', N'SP_SERVER_DIAGNOSTICS_SLEEP', + N'SQLTRACE_BUFFER_FLUSH', N'SQLTRACE_INCREMENTAL_FLUSH_SLEEP', + N'SQLTRACE_WAIT_ENTRIES', + N'WAIT_FOR_RESULTS', N'WAITFOR', N'WAITFOR_TASKSHUTDOWN', N'WAIT_XTP_HOST_WAIT', + N'WAIT_XTP_OFFLINE_CKPT_NEW_LOG', N'WAIT_XTP_CKPT_CLOSE', + N'XE_BUFFERMGR_ALLPROCESSED_EVENT', N'XE_DISPATCHER_JOIN', + N'XE_DISPATCHER_WAIT', N'XE_LIVE_TARGET_TVF', N'XE_TIMER_EVENT', + N'SOS_WORK_DISPATCHER','RESERVED_MEMORY_ALLOCATION_EXT','SQLTRACE_WAIT_ENTRIES', + N'RBIO_COMM_RETRY') + AND [waiting_tasks_count] > 10 + AND [wait_time_ms] > 100; diff --git a/examples/azure-sql-mi/sql_exporter.yml b/examples/azure-sql-mi/sql_exporter.yml new file mode 100644 index 00000000..eb9a5563 --- /dev/null +++ b/examples/azure-sql-mi/sql_exporter.yml @@ -0,0 +1,28 @@ +# Global defaults. +global: + # Subtracted from Prometheus' scrape_timeout to give us some headroom and prevent Prometheus from timing out first. + scrape_timeout_offset: 500ms + # Minimum interval between collector runs: by default (0s) collectors are executed on every scrape. + min_interval: 0s + # Maximum number of open connections to any one target. Metric queries will run concurrently on multiple connections, + # as will concurrent scrapes. + max_connections: 3 + # Maximum number of idle connections to any one target. Unless you use very long collection intervals, this should + # always be the same as max_connections. + max_idle_connections: 3 + # Maximum number of maximum amount of time a connection may be reused. Expired connections may be closed lazily before reuse. + # If 0, connections are not closed due to a connection's age. + max_connection_lifetime: 5m + +# The target to monitor and the collectors to execute on it. +target: + # Data source name always has a URI schema that matches the driver name. In some cases (e.g. MySQL) + # the schema gets dropped or replaced to match the driver expected DSN format. + data_source_name: 'sqlserver://USERNAME_HERE:PASSWORD_HERE@SQLMI_HERE_ENDPOINT.database.windows.net:1433?encrypt=true&hostNameInCertificate=%2A.SQL_MI_DOMAIN_HERE.database.windows.net&trustservercertificate=true' + + # Collectors (referenced by name) to execute on the target. + collectors: [mssqlmi_*] + +# Collector files specifies a list of globs. One collector definition is read from each matching file. +collector_files: + - "*.collector.yml" From 251213424ffe76ee976cdfde13746ff3b27a5468 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 7 Apr 2023 13:42:33 +0200 Subject: [PATCH 033/401] deps: bump github.com/prometheus/exporter-toolkit from 0.8.2 to 0.9.1 (#211) Bumps [github.com/prometheus/exporter-toolkit](https://github.com/prometheus/exporter-toolkit) from 0.8.2 to 0.9.1. - [Release notes](https://github.com/prometheus/exporter-toolkit/releases) - [Changelog](https://github.com/prometheus/exporter-toolkit/blob/master/CHANGELOG.md) - [Commits](https://github.com/prometheus/exporter-toolkit/compare/v0.8.2...v0.9.1) --- updated-dependencies: - dependency-name: github.com/prometheus/exporter-toolkit dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 19 ++++++++++--------- go.sum | 38 ++++++++++++++++++++++---------------- 2 files changed, 32 insertions(+), 25 deletions(-) diff --git a/go.mod b/go.mod index bdfa9392..9dd9f9a9 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/prometheus/client_golang v1.14.0 github.com/prometheus/client_model v0.3.0 github.com/prometheus/common v0.41.0 - github.com/prometheus/exporter-toolkit v0.8.2 + github.com/prometheus/exporter-toolkit v0.9.1 github.com/snowflakedb/gosnowflake v1.6.18 github.com/vertica/vertica-sql-go v1.3.1 github.com/xo/dburl v0.13.0 @@ -47,7 +47,7 @@ require ( github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.1.2 // indirect github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 // indirect - github.com/coreos/go-systemd/v22 v22.4.0 // indirect + github.com/coreos/go-systemd/v22 v22.5.0 // indirect github.com/danieljoos/wincred v1.1.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/dvsekhvalnov/jose2go v1.5.0 // indirect @@ -85,15 +85,16 @@ require ( github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/prometheus/procfs v0.8.0 // indirect + github.com/prometheus/procfs v0.9.0 // indirect + github.com/rogpeppe/go-internal v1.10.0 // indirect github.com/sirupsen/logrus v1.9.0 // indirect - golang.org/x/crypto v0.6.0 // indirect - golang.org/x/net v0.7.0 // indirect - golang.org/x/oauth2 v0.5.0 // indirect + golang.org/x/crypto v0.7.0 // indirect + golang.org/x/net v0.8.0 // indirect + golang.org/x/oauth2 v0.6.0 // indirect golang.org/x/sync v0.1.0 // indirect - golang.org/x/sys v0.5.0 // indirect - golang.org/x/term v0.5.0 // indirect - golang.org/x/text v0.7.0 // indirect + golang.org/x/sys v0.6.0 // indirect + golang.org/x/term v0.6.0 // indirect + golang.org/x/text v0.8.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect google.golang.org/appengine v1.6.7 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/go.sum b/go.sum index 58cf9d09..d492a571 100644 --- a/go.sum +++ b/go.sum @@ -96,8 +96,8 @@ github.com/cockroachdb/apd v1.1.0 h1:3LFP3629v+1aKXU5Q37mxmRxX/pIu1nijXydLShEq5I github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd/v22 v22.4.0 h1:y9YHcjnjynCd/DVbg5j9L/33jQM3MxJlbj/zWskzfGU= -github.com/coreos/go-systemd/v22 v22.4.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= +github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0= github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= @@ -189,8 +189,8 @@ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -278,8 +278,8 @@ github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrD github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= @@ -334,13 +334,15 @@ github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvq github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= github.com/prometheus/common v0.41.0 h1:npo01n6vUlRViIj5fgwiK8vlNIh8bnoxqh3gypKsyAw= github.com/prometheus/common v0.41.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc= -github.com/prometheus/exporter-toolkit v0.8.2 h1:sbJAfBXQFkG6sUkbwBun8MNdzW9+wd5YfPYofbmj0YM= -github.com/prometheus/exporter-toolkit v0.8.2/go.mod h1:00shzmJL7KxcsabLWcONwpyNEuWhREOnFqZW7vadFS0= +github.com/prometheus/exporter-toolkit v0.9.1 h1:cNkC01riqiOS+kh3zdnNwRsbe/Blh0WwK3ij5rPJ9Sw= +github.com/prometheus/exporter-toolkit v0.9.1/go.mod h1:iFlTmFISCix0vyuyBmm0UqOUCTao9+RsAsKJP3YM9ec= github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo= -github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= +github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI= +github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= +github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= @@ -407,8 +409,9 @@ golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220511200225-c6db032c6c88/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.6.0 h1:qfktjS5LUO+fFKeJXZ+ikTRijMmljikvG68fpMMruSc= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= +golang.org/x/crypto v0.7.0 h1:AvwMYaRytfdeVt3u6mLaxYtErKYjxA2OXjJ1HHq6t3A= +golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -458,12 +461,12 @@ golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= -golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= +golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.5.0 h1:HuArIo48skDwlrvM3sEdHXElYslAMsf3KwRkkW4MC4s= -golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= +golang.org/x/oauth2 v0.6.0 h1:Lh8GPgSKBfWSwFvtuWOfeI3aAAnbXTSutYxJiOJFgIw= +golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -502,13 +505,15 @@ golang.org/x/sys v0.0.0-20220224120231-95c6836cb0e7/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.5.0 h1:n2a8QNdAb0sZNpU9R1ALUXBbY+w51fCQDN+7EdxNBsY= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw= +golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -516,8 +521,9 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= +golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= From 166c396c673785b7ccf87f5e4744a1ff3af293f3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 7 Apr 2023 13:43:00 +0200 Subject: [PATCH 034/401] deps: bump github.com/vertica/vertica-sql-go from 1.3.1 to 1.3.2 (#212) Bumps [github.com/vertica/vertica-sql-go](https://github.com/vertica/vertica-sql-go) from 1.3.1 to 1.3.2. - [Release notes](https://github.com/vertica/vertica-sql-go/releases) - [Commits](https://github.com/vertica/vertica-sql-go/compare/v1.3.1...v1.3.2) --- updated-dependencies: - dependency-name: github.com/vertica/vertica-sql-go dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 9dd9f9a9..7591e085 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/prometheus/common v0.41.0 github.com/prometheus/exporter-toolkit v0.9.1 github.com/snowflakedb/gosnowflake v1.6.18 - github.com/vertica/vertica-sql-go v1.3.1 + github.com/vertica/vertica-sql-go v1.3.2 github.com/xo/dburl v0.13.0 google.golang.org/protobuf v1.28.1 gopkg.in/yaml.v3 v3.0.1 diff --git a/go.sum b/go.sum index d492a571..984cd91b 100644 --- a/go.sum +++ b/go.sum @@ -375,8 +375,8 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/vertica/vertica-sql-go v1.3.1 h1:qjkJzkFmLG+z2koRC6inT+yFr23TyBkNXUP4vf92rSQ= -github.com/vertica/vertica-sql-go v1.3.1/go.mod h1:jnn2GFuv+O2Jcjktb7zyc4Utlbu9YVqpHH/lx63+1M4= +github.com/vertica/vertica-sql-go v1.3.2 h1:QclPnkuozQyNl6lbrTdeuFSx2/lcSRZc1XL8zWNSjdA= +github.com/vertica/vertica-sql-go v1.3.2/go.mod h1:jnn2GFuv+O2Jcjktb7zyc4Utlbu9YVqpHH/lx63+1M4= github.com/xo/dburl v0.13.0 h1:kq+oD1j/m8DnJ/p6G/LQXRosVchs8q5/AszEUKkvYfo= github.com/xo/dburl v0.13.0/go.mod h1:K6rSPgbVqP3ZFT0RHkdg/M3M5KhLeV2MaS/ZqaLd1kA= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= From 3be37cb40cb6b19fb102860e0f0b65464edac3b0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 7 Apr 2023 13:47:19 +0200 Subject: [PATCH 035/401] deps: bump github.com/prometheus/common from 0.41.0 to 0.42.0 (#213) Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.41.0 to 0.42.0. - [Release notes](https://github.com/prometheus/common/releases) - [Commits](https://github.com/prometheus/common/compare/v0.41.0...v0.42.0) --- updated-dependencies: - dependency-name: github.com/prometheus/common dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 7591e085..d07fcbae 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/microsoft/go-mssqldb v0.20.0 github.com/prometheus/client_golang v1.14.0 github.com/prometheus/client_model v0.3.0 - github.com/prometheus/common v0.41.0 + github.com/prometheus/common v0.42.0 github.com/prometheus/exporter-toolkit v0.9.1 github.com/snowflakedb/gosnowflake v1.6.18 github.com/vertica/vertica-sql-go v1.3.2 diff --git a/go.sum b/go.sum index 984cd91b..061c5d04 100644 --- a/go.sum +++ b/go.sum @@ -332,8 +332,8 @@ github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQg github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= -github.com/prometheus/common v0.41.0 h1:npo01n6vUlRViIj5fgwiK8vlNIh8bnoxqh3gypKsyAw= -github.com/prometheus/common v0.41.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc= +github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM= +github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc= github.com/prometheus/exporter-toolkit v0.9.1 h1:cNkC01riqiOS+kh3zdnNwRsbe/Blh0WwK3ij5rPJ9Sw= github.com/prometheus/exporter-toolkit v0.9.1/go.mod h1:iFlTmFISCix0vyuyBmm0UqOUCTao9+RsAsKJP3YM9ec= github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= From 31ece73da1e66cf0967b1e6fe49afb31f6f70852 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 7 Apr 2023 13:49:02 +0200 Subject: [PATCH 036/401] deps: bump google.golang.org/protobuf from 1.28.1 to 1.30.0 (#214) Bumps google.golang.org/protobuf from 1.28.1 to 1.30.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index d07fcbae..a1044f15 100644 --- a/go.mod +++ b/go.mod @@ -16,7 +16,7 @@ require ( github.com/snowflakedb/gosnowflake v1.6.18 github.com/vertica/vertica-sql-go v1.3.2 github.com/xo/dburl v0.13.0 - google.golang.org/protobuf v1.28.1 + google.golang.org/protobuf v1.30.0 gopkg.in/yaml.v3 v3.0.1 k8s.io/klog/v2 v2.70.1 ) diff --git a/go.sum b/go.sum index 061c5d04..5f0e4ff7 100644 --- a/go.sum +++ b/go.sum @@ -586,8 +586,8 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= -google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= +google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From ea6d9abc68b4ef72421058e27e54ce19138f0180 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 7 Apr 2023 14:08:33 +0200 Subject: [PATCH 037/401] deps: bump github.com/microsoft/go-mssqldb from 0.20.0 to 0.21.0 (#215) Bumps [github.com/microsoft/go-mssqldb](https://github.com/microsoft/go-mssqldb) from 0.20.0 to 0.21.0. - [Release notes](https://github.com/microsoft/go-mssqldb/releases) - [Changelog](https://github.com/microsoft/go-mssqldb/blob/main/CHANGELOG.md) - [Commits](https://github.com/microsoft/go-mssqldb/compare/v0.20.0...v0.21.0) --- updated-dependencies: - dependency-name: github.com/microsoft/go-mssqldb dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 8 ++++---- go.sum | 19 ++++++++----------- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/go.mod b/go.mod index a1044f15..f1916021 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/jackc/pgx/v4 v4.18.1 github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.7 - github.com/microsoft/go-mssqldb v0.20.0 + github.com/microsoft/go-mssqldb v0.21.0 github.com/prometheus/client_golang v1.14.0 github.com/prometheus/client_model v0.3.0 github.com/prometheus/common v0.42.0 @@ -26,10 +26,10 @@ require ( github.com/99designs/keyring v1.2.1 // indirect github.com/Azure/azure-pipeline-go v0.2.3 // indirect github.com/Azure/azure-sdk-for-go/sdk/azcore v1.1.2 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.1.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.2.1 // indirect github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0 // indirect github.com/Azure/azure-storage-blob-go v0.15.0 // indirect - github.com/AzureAD/microsoft-authentication-library-for-go v0.5.1 // indirect + github.com/AzureAD/microsoft-authentication-library-for-go v0.8.1 // indirect github.com/apache/arrow/go/arrow v0.0.0-20211112161151-bc219186db40 // indirect github.com/aws/aws-sdk-go-v2 v1.16.16 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.8 // indirect @@ -58,7 +58,7 @@ require ( github.com/go-kit/log v0.2.1 // indirect github.com/go-logfmt/logfmt v0.5.1 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect - github.com/golang-jwt/jwt v3.2.2+incompatible // indirect + github.com/golang-jwt/jwt/v4 v4.4.2 // indirect github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe // indirect github.com/golang-sql/sqlexp v0.1.0 // indirect github.com/golang/protobuf v1.5.2 // indirect diff --git a/go.sum b/go.sum index 5f0e4ff7..e547769c 100644 --- a/go.sum +++ b/go.sum @@ -11,8 +11,8 @@ github.com/Azure/azure-pipeline-go v0.2.3/go.mod h1:x841ezTBIMG6O3lAcl8ATHnsOPVl github.com/Azure/azure-sdk-for-go/sdk/azcore v1.0.0/go.mod h1:uGG2W01BaETf0Ozp+QxxKJdMBNRWPdstHG0Fmdwn1/U= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.1.2 h1:lneMk5qtUMulXa/eVxjVd+/bDYMEDIqYpLzLa2/EsNI= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.1.2/go.mod h1:uGG2W01BaETf0Ozp+QxxKJdMBNRWPdstHG0Fmdwn1/U= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.1.0 h1:QkAcEIAKbNL4KoFr4SathZPhDhF4mVwpBMFlYjyAqy8= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.1.0/go.mod h1:bhXu1AjYL+wutSL/kpSq6s7733q2Rb0yuot9Zgfqa/0= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.2.1 h1:T8quHYlUGyb/oqtSTwqlCr1ilJHrDv+ZtpSfo+hm1BU= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.2.1/go.mod h1:gLa1CL2RNE4s7M3yopJ/p0iq5DdY6Yv5ZUt9MTRZOQM= github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0 h1:jp0dGvZ7ZK0mgqnTSClMxa5xuRL7NZgHameVYF6BurY= github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0/go.mod h1:eWRD7oawr1Mu1sLCawqVc0CUiF43ia3qQMxLscsKQ9w= github.com/Azure/azure-storage-blob-go v0.15.0 h1:rXtgp8tN1p29GvpGgfJetavIG0V7OgcSXPpwp3tx6qk= @@ -28,8 +28,8 @@ github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+Z github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo= github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= -github.com/AzureAD/microsoft-authentication-library-for-go v0.5.1 h1:BWe8a+f/t+7KY7zH2mqygeUD0t8hNFXe08p1Pb3/jKE= -github.com/AzureAD/microsoft-authentication-library-for-go v0.5.1/go.mod h1:Vt9sXTKwMyGcOxSmLDMnGPgqsUg7m8pe215qMLrDXw4= +github.com/AzureAD/microsoft-authentication-library-for-go v0.8.1 h1:oPdPEZFSbl7oSPEAIPMPBMUmiL+mqgzBJwM/9qYcwNg= +github.com/AzureAD/microsoft-authentication-library-for-go v0.8.1/go.mod h1:4qFor3D/HDsvBME35Xy9rwW9DecL+M2sNw1ybjPtwA0= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/ClickHouse/clickhouse-go v1.5.4 h1:cKjXeYLNWVJIx2J1K6H2CqyRmfwVJVY1OV1coaaFcI0= @@ -150,11 +150,8 @@ github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6 github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofrs/uuid v4.0.0+incompatible h1:1SD/1F5pU8p29ybwgQSwpQk+mwdRrXCYuPhW6m+TnJw= github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= -github.com/golang-jwt/jwt v3.2.1+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= -github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY= -github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= -github.com/golang-jwt/jwt/v4 v4.2.0 h1:besgBTC8w8HjP6NzQdxwKH9Z5oQMZ24ThTrHp3cZ8eU= -github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= +github.com/golang-jwt/jwt/v4 v4.4.2 h1:rcc4lwaZgFMCZ5jxF9ABolDcIHdBytAFgqFPbSJQAYs= +github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe h1:lXe2qZdvpiX5WZkZR4hgp4KJVfY3nMkvmwbVkpv1rVY= github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A= @@ -302,8 +299,8 @@ github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Ky github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/microsoft/go-mssqldb v0.20.0 h1:jAfvs5TIR311fEuNgohFzMtUO0IcCHyI1kWAVws4ES8= -github.com/microsoft/go-mssqldb v0.20.0/go.mod h1:ukJCBnnzLzpVF0qYRT+eg1e+eSwjeQ7IvenUv8QPook= +github.com/microsoft/go-mssqldb v0.21.0 h1:p2rpHIL7TlSv1QrbXJUAcbyRKnIT0C9rRkH2E4OjLn8= +github.com/microsoft/go-mssqldb v0.21.0/go.mod h1:+4wZTUnz/SV6nffv+RRRB/ss8jPng5Sho2SmM1l2ts4= github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8= github.com/montanaflynn/stats v0.6.6/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs= From d53aeef4b22b737d6b1e4f516f5c2128bf663bf6 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Thu, 13 Apr 2023 15:30:32 +0200 Subject: [PATCH 038/401] build: push arm64 container images (#219) build: push arm64 container images --- .github/workflows/release.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4b01641a..3a1720b3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -79,10 +79,11 @@ jobs: type=semver,pattern={{major}}.{{minor}} - name: Build and push Docker image - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v4 with: context: . push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} + platforms: linux/amd64,linux/arm64 provenance: false From 2c796217b9ccf8ec8a75b5f71616617272abade1 Mon Sep 17 00:00:00 2001 From: Hugo Hromic Date: Sun, 16 Apr 2023 08:35:59 +0100 Subject: [PATCH 039/401] fix: add unit tests and minor fixes for `resolveCollectorRefs()` (#220) * tests: add unit tests for `resolveCollectorRefs()` function * fix: align `resolveCollectorRefs()` with previous behaviour * return non-globbed resolved collectors in the order they are found * do not error when no collectors are resolved --- config/config.go | 19 +++++---- config/config_test.go | 90 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 99 insertions(+), 10 deletions(-) create mode 100644 config/config_test.go diff --git a/config/config.go b/config/config.go index 4b1d28da..92ce3295 100644 --- a/config/config.go +++ b/config/config.go @@ -558,25 +558,24 @@ func checkCollectorRefs(collectorRefs []string, ctx string) error { func resolveCollectorRefs( collectorRefs []string, collectors map[string]*CollectorConfig, ctx string, ) ([]*CollectorConfig, error) { + resolved := make([]*CollectorConfig, 0, len(collectorRefs)) found := make(map[*CollectorConfig]bool) for _, cref := range collectorRefs { + cref_resolved := false for k, c := range collectors { matched, err := filepath.Match(cref, k) if err != nil { return nil, fmt.Errorf("bad collector %q referenced in %s: %w", cref, ctx, err) } - if !matched { - continue + if matched && !found[c] { + resolved = append(resolved, c) + found[c] = true + cref_resolved = true } - found[c] = true } - } - resolved := make([]*CollectorConfig, 0, len(found)) - for k := range found { - resolved = append(resolved, k) - } - if len(resolved) == 0 { - return nil, fmt.Errorf("no matching collectors referenced in %s", ctx) + if !cref_resolved { + return nil, fmt.Errorf("unknown collector %q referenced in %s", cref, ctx) + } } return resolved, nil } diff --git a/config/config_test.go b/config/config_test.go new file mode 100644 index 00000000..efef5ac4 --- /dev/null +++ b/config/config_test.go @@ -0,0 +1,90 @@ +package config + +import ( + "reflect" + "testing" +) + +func TestResolveCollectorRefs(t *testing.T) { + colls := map[string]*CollectorConfig{ + "a": &CollectorConfig{Name: "a"}, + "b": &CollectorConfig{Name: "b"}, + "c": &CollectorConfig{Name: "b"}, + "aa": &CollectorConfig{Name: "aa"}, + } + + t.Run("NoGlobbing", func(t *testing.T) { + crefs := []string{ + "a", + "b", + } + cs, err := resolveCollectorRefs(crefs, colls, "target") + if err != nil { + t.Fatalf("expected no error but got: %v", err) + } + if len(cs) != 2 { + t.Fatalf("expected len(cs)=2 but got len(cs)=%d", len(cs)) + } + expected := []*CollectorConfig{ + colls["a"], + colls["b"], + } + if !reflect.DeepEqual(cs, expected) { + t.Fatalf("expected cs=%v but got cs=%v", expected, cs) + } + }) + + t.Run("Globbing", func(t *testing.T) { + crefs := []string{ + "a*", + "b", + } + cs, err := resolveCollectorRefs(crefs, colls, "target") + if err != nil { + t.Fatalf("expected no error but got: %v", err) + } + if len(cs) != 3 { + t.Fatalf("expected len(cs)=3 but got len(cs)=%d", len(cs)) + } + expected1 := []*CollectorConfig{ + colls["a"], + colls["aa"], + colls["b"], + } + expected2 := []*CollectorConfig{ // filepath.Match() is non-deterministic + colls["aa"], + colls["a"], + colls["b"], + } + if !reflect.DeepEqual(cs, expected1) && !reflect.DeepEqual(cs, expected2) { + t.Fatalf("expected cs=%v or cs=%v but got cs=%v", expected1, expected2, cs) + } + }) + + t.Run("NoCollectorRefs", func(t *testing.T) { + crefs := []string{} + cs, err := resolveCollectorRefs(crefs, colls, "target") + if err != nil { + t.Fatalf("expected no error but got: %v", err) + } + if len(cs) != 0 { + t.Fatalf("expected len(cs)=0 but got len(cs)=%d", len(cs)) + } + }) + + t.Run("UnknownCollector", func(t *testing.T) { + crefs := []string{ + "a", + "x", + } + _, err := resolveCollectorRefs(crefs, colls, "target") + if err == nil { + t.Fatalf("expected error but got none") + } + // TODO: Code should use error types and check with 'errors.Is(err1, err2)'. + expected := "unknown collector \"x\" referenced in target" + if err.Error() != expected { + t.Fatalf("expected err=%q but got err=%q", expected, err.Error()) + } + }) +} From 0e19a2f819e5bda0d59d0dce75aa8ec8cc90dd75 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 16 Apr 2023 14:05:37 +0200 Subject: [PATCH 040/401] deps: bump github.com/lib/pq from 1.10.7 to 1.10.8 (#224) Bumps [github.com/lib/pq](https://github.com/lib/pq) from 1.10.7 to 1.10.8. - [Release notes](https://github.com/lib/pq/releases) - [Commits](https://github.com/lib/pq/compare/v1.10.7...v1.10.8) --- updated-dependencies: - dependency-name: github.com/lib/pq dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index f1916021..f73c64c9 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( github.com/go-sql-driver/mysql v1.7.0 github.com/jackc/pgx/v4 v4.18.1 github.com/kardianos/minwinsvc v1.0.2 - github.com/lib/pq v1.10.7 + github.com/lib/pq v1.10.8 github.com/microsoft/go-mssqldb v0.21.0 github.com/prometheus/client_golang v1.14.0 github.com/prometheus/client_model v0.3.0 diff --git a/go.sum b/go.sum index e547769c..da583f01 100644 --- a/go.sum +++ b/go.sum @@ -287,8 +287,8 @@ github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.1.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.10.2/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw= -github.com/lib/pq v1.10.7/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +github.com/lib/pq v1.10.8 h1:3fdt97i/cwSU83+E0hZTC/Xpc9mTZxc6UWSCRcSbxiE= +github.com/lib/pq v1.10.8/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-ieproxy v0.0.1 h1:qiyop7gCflfhwCzGyeT0gro3sF9AIg9HU98JORTkqfI= From 1beab4aec0f7e3618aa1b5fbac33be099b6403b5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 16 Apr 2023 14:10:30 +0200 Subject: [PATCH 041/401] deps: bump github.com/snowflakedb/gosnowflake from 1.6.18 to 1.6.19 (#222) Bumps [github.com/snowflakedb/gosnowflake](https://github.com/snowflakedb/gosnowflake) from 1.6.18 to 1.6.19. - [Release notes](https://github.com/snowflakedb/gosnowflake/releases) - [Changelog](https://github.com/snowflakedb/gosnowflake/blob/master/release.go) - [Commits](https://github.com/snowflakedb/gosnowflake/compare/v1.6.18...v1.6.19) --- updated-dependencies: - dependency-name: github.com/snowflakedb/gosnowflake dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 23 ++++-- go.sum | 220 ++++++++++----------------------------------------------- 2 files changed, 54 insertions(+), 189 deletions(-) diff --git a/go.mod b/go.mod index f73c64c9..15318eeb 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,7 @@ require ( github.com/prometheus/client_model v0.3.0 github.com/prometheus/common v0.42.0 github.com/prometheus/exporter-toolkit v0.9.1 - github.com/snowflakedb/gosnowflake v1.6.18 + github.com/snowflakedb/gosnowflake v1.6.19 github.com/vertica/vertica-sql-go v1.3.2 github.com/xo/dburl v0.13.0 google.golang.org/protobuf v1.30.0 @@ -24,13 +24,14 @@ require ( require ( github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.1 // indirect - github.com/Azure/azure-pipeline-go v0.2.3 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.1.2 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azcore v1.4.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.2.1 // indirect - github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0 // indirect - github.com/Azure/azure-storage-blob-go v0.15.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/internal v1.1.2 // indirect + github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0 // indirect github.com/AzureAD/microsoft-authentication-library-for-go v0.8.1 // indirect - github.com/apache/arrow/go/arrow v0.0.0-20211112161151-bc219186db40 // indirect + github.com/andybalholm/brotli v1.0.4 // indirect + github.com/apache/arrow/go/v10 v10.0.1 // indirect + github.com/apache/thrift v0.16.0 // indirect github.com/aws/aws-sdk-go-v2 v1.16.16 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.8 // indirect github.com/aws/aws-sdk-go-v2/credentials v1.12.20 // indirect @@ -57,11 +58,13 @@ require ( github.com/gabriel-vasile/mimetype v1.4.1 // indirect github.com/go-kit/log v0.2.1 // indirect github.com/go-logfmt/logfmt v0.5.1 // indirect + github.com/goccy/go-json v0.9.11 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/golang-jwt/jwt/v4 v4.4.2 // indirect github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe // indirect github.com/golang-sql/sqlexp v0.1.0 // indirect github.com/golang/protobuf v1.5.2 // indirect + github.com/golang/snappy v0.0.4 // indirect github.com/google/flatbuffers v2.0.8+incompatible // indirect github.com/google/uuid v1.3.0 // indirect github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect @@ -75,10 +78,13 @@ require ( github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 // indirect github.com/jpillora/backoff v1.0.0 // indirect + github.com/klauspost/asmfmt v1.3.2 // indirect github.com/klauspost/compress v1.15.11 // indirect + github.com/klauspost/cpuid/v2 v2.0.9 // indirect github.com/kylelemons/godebug v1.1.0 // indirect - github.com/mattn/go-ieproxy v0.0.1 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect + github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8 // indirect + github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3 // indirect github.com/mtibben/percent v0.2.1 // indirect github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect github.com/pierrec/lz4/v4 v4.1.16 // indirect @@ -88,13 +94,16 @@ require ( github.com/prometheus/procfs v0.9.0 // indirect github.com/rogpeppe/go-internal v1.10.0 // indirect github.com/sirupsen/logrus v1.9.0 // indirect + github.com/zeebo/xxh3 v1.0.2 // indirect golang.org/x/crypto v0.7.0 // indirect + golang.org/x/mod v0.8.0 // indirect golang.org/x/net v0.8.0 // indirect golang.org/x/oauth2 v0.6.0 // indirect golang.org/x/sync v0.1.0 // indirect golang.org/x/sys v0.6.0 // indirect golang.org/x/term v0.6.0 // indirect golang.org/x/text v0.8.0 // indirect + golang.org/x/tools v0.6.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect google.golang.org/appengine v1.6.7 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/go.sum b/go.sum index da583f01..a36c977f 100644 --- a/go.sum +++ b/go.sum @@ -1,45 +1,32 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8= github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 h1:/vQbFIOMbk2FiG/kXiLl8BRyzTWDw7gX/Hz7Dd5eDMs= github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4/go.mod h1:hN7oaIRCjzsZ2dE+yG5k+rsdt3qcwykqK6HVGcKwsw4= github.com/99designs/keyring v1.2.1 h1:tYLp1ULvO7i3fI5vE21ReQuj99QFSs7lGm0xWyJo87o= github.com/99designs/keyring v1.2.1/go.mod h1:fc+wB5KTk9wQ9sDx0kFXB3A0MaeGHM9AwRStKOQ5vOA= -github.com/Azure/azure-pipeline-go v0.2.3 h1:7U9HBg1JFK3jHl5qmo4CTZKFTVgMwdFHMVtCdfBE21U= -github.com/Azure/azure-pipeline-go v0.2.3/go.mod h1:x841ezTBIMG6O3lAcl8ATHnsOPVl2bqk7S3ta6S6u4k= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.0.0/go.mod h1:uGG2W01BaETf0Ozp+QxxKJdMBNRWPdstHG0Fmdwn1/U= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.1.2 h1:lneMk5qtUMulXa/eVxjVd+/bDYMEDIqYpLzLa2/EsNI= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.1.2/go.mod h1:uGG2W01BaETf0Ozp+QxxKJdMBNRWPdstHG0Fmdwn1/U= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.4.0 h1:rTnT/Jrcm+figWlYz4Ixzt0SJVR2cMC8lvZcimipiEY= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.4.0/go.mod h1:ON4tFdPTwRcgWEaVDrN3584Ef+b7GgSJaXxe5fW9t4M= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.2.1 h1:T8quHYlUGyb/oqtSTwqlCr1ilJHrDv+ZtpSfo+hm1BU= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.2.1/go.mod h1:gLa1CL2RNE4s7M3yopJ/p0iq5DdY6Yv5ZUt9MTRZOQM= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0 h1:jp0dGvZ7ZK0mgqnTSClMxa5xuRL7NZgHameVYF6BurY= github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0/go.mod h1:eWRD7oawr1Mu1sLCawqVc0CUiF43ia3qQMxLscsKQ9w= -github.com/Azure/azure-storage-blob-go v0.15.0 h1:rXtgp8tN1p29GvpGgfJetavIG0V7OgcSXPpwp3tx6qk= -github.com/Azure/azure-storage-blob-go v0.15.0/go.mod h1:vbjsVbX0dlxnRc4FFMPsS9BsJWPcne7GB7onqlPvz58= -github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs= -github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= -github.com/Azure/go-autorest/autorest/adal v0.9.13 h1:Mp5hbtOePIzM8pJVRa3YLrWWmZtoxRXqUEzCfJt3+/Q= -github.com/Azure/go-autorest/autorest/adal v0.9.13/go.mod h1:W/MM4U6nLxnIskrw4UwWzlHfGjwUS50aOsc/I3yuU8M= -github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw= -github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= -github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= -github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+ZtXWSmf4Tg= -github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= -github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo= -github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.1.2 h1:+5VZ72z0Qan5Bog5C+ZkgSqUbeVUd9wgtHOrIKuc5b8= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.1.2/go.mod h1:eWRD7oawr1Mu1sLCawqVc0CUiF43ia3qQMxLscsKQ9w= +github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0 h1:u/LLAOFgsMv7HmNL4Qufg58y+qElGOt5qv0z1mURkRY= +github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0/go.mod h1:2e8rMJtl2+2j+HXbTBwnyGpm5Nou7KhvSfxOq8JpTag= github.com/AzureAD/microsoft-authentication-library-for-go v0.8.1 h1:oPdPEZFSbl7oSPEAIPMPBMUmiL+mqgzBJwM/9qYcwNg= github.com/AzureAD/microsoft-authentication-library-for-go v0.8.1/go.mod h1:4qFor3D/HDsvBME35Xy9rwW9DecL+M2sNw1ybjPtwA0= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/ClickHouse/clickhouse-go v1.5.4 h1:cKjXeYLNWVJIx2J1K6H2CqyRmfwVJVY1OV1coaaFcI0= github.com/ClickHouse/clickhouse-go v1.5.4/go.mod h1:EaI/sW7Azgz9UATzd5ZdZHRUhHgv5+JMS9NSr2smCJI= +github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c h1:RGWPOewvKIROun94nF7v2cua9qP+thov/7M50KEoeSU= github.com/Masterminds/semver/v3 v3.1.1 h1:hLg3sBzpNErnxhQtUy/mmLR2I9foDujNK030IGemrRc= github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= -github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= -github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -github.com/apache/arrow/go/arrow v0.0.0-20211112161151-bc219186db40 h1:q4dksr6ICHXqG5hm0ZW5IHyeEJXoIJSOZeBLmWPNeIQ= -github.com/apache/arrow/go/arrow v0.0.0-20211112161151-bc219186db40/go.mod h1:Q7yQnSMnLvcXlZ8RV+jwz/6y1rQTqbX6C82SndT52Zs= +github.com/andybalholm/brotli v1.0.4 h1:V7DdXeJtZscaqfNuAdSRuRFzuiKlHSC/Zh3zl9qY3JY= +github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= +github.com/apache/arrow/go/v10 v10.0.1 h1:n9dERvixoC/1JjDmBcs9FPaEryoANa2sCgVFo6ez9cI= +github.com/apache/arrow/go/v10 v10.0.1/go.mod h1:YvhnlEePVnBS4+0z3fhPfUy7W1Ikj0Ih0vcRo/gZ1M0= +github.com/apache/thrift v0.16.0 h1:qEy6UW60iVOlUy+b9ZR0d5WzUWYGOo4HfopoyBaNmoY= +github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= github.com/aws/aws-sdk-go-v2 v1.16.16 h1:M1fj4FE2lB4NzRb9Y0xdWsn2P0+2UHVxwKyOa4YJNjk= github.com/aws/aws-sdk-go-v2 v1.16.16/go.mod h1:SwiyXi/1zTUZ6KIAmLK5V5ll8SiURNUYOqTerZPaF9k= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.8 h1:tcFliCWne+zOuUfKNRn8JdFBuWPDuISDH08wD2ULkhk= @@ -82,16 +69,10 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bkaradzic/go-lz4 v1.0.0 h1:RXc4wYsyz985CkXXeX04y4VnZFGG8Rd43pRaHsOXAKk= github.com/bkaradzic/go-lz4 v1.0.0/go.mod h1:0YdlkowM3VswSROI7qDxhRvJ3sLhlFrRRwjwegp5jy4= -github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE= github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 h1:F1EaeKL/ta07PY/k9Os/UFtwERei2/XzGemhpGnBKNg= github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58/go.mod h1:EOBUe0h4xcZ5GoxqC5SDxFQ8gwyZPKQoEzownBlhI80= -github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cockroachdb/apd v1.1.0 h1:3LFP3629v+1aKXU5Q37mxmRxX/pIu1nijXydLShEq5I= github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= @@ -114,30 +95,13 @@ github.com/elastic/go-sysinfo v1.8.1 h1:4Yhj+HdV6WjbCRgGdZpPJ8lZQlXZLKDAeIkmQ/VR github.com/elastic/go-sysinfo v1.8.1/go.mod h1:JfllUnzoQV/JRYymbH3dO1yggI3mV2oTKSXsDHM+uIM= github.com/elastic/go-windows v1.0.0 h1:qLURgZFkkrYyTTkvYpsZIgf83AUsdIHfvlJaqaZ7aSY= github.com/elastic/go-windows v1.0.0/go.mod h1:TsU0Nrp7/y3+VwE82FoZF8gC/XFg/Elz6CcloAxnPgU= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= -github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= -github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/form3tech-oss/jwt-go v3.2.5+incompatible h1:/l4kBbb4/vGSsdtB5nUe8L7B9mImVMaBPw9L/0TBHU8= github.com/form3tech-oss/jwt-go v3.2.5+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/gabriel-vasile/mimetype v1.4.1 h1:TRWk7se+TOjCYgRth7+1/OYLNiRNIotknkFtf/dnN7Q= github.com/gabriel-vasile/mimetype v1.4.1/go.mod h1:05Vi0w3Y9c/lNvJOdmIwvrrAhX3rYhfQQCaf9VJcv7M= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/go-fonts/dejavu v0.1.0/go.mod h1:4Wt4I4OU2Nq9asgDCteaAaWZOV24E+0/Pwo0gppep4g= -github.com/go-fonts/latin-modern v0.2.0/go.mod h1:rQVLdDMK+mK1xscDwsqM5J8U2jrRa3T0ecnM9pNujks= -github.com/go-fonts/liberation v0.1.1/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY= -github.com/go-fonts/stix v0.1.0/go.mod h1:w/c1f0ldAUlJmLBvlbkvVXLAD+tAMqobIIQpmnUIzUY= -github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= -github.com/go-latex/latex v0.0.0-20210118124228-b3d85cf34e07/go.mod h1:CO1AlKB2CSIqUrmQPqA0gdRIlnLEY0gK5JGjh37zN5U= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA= github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= @@ -145,6 +109,8 @@ github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc= github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/goccy/go-json v0.9.11 h1:/pAaQDLHEoCq/5FFmSKBswWmK6H0e8g4159Kc/X/nqk= +github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+Hoeu/iUR3ruzNvZ+yQfO03a0= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= @@ -156,47 +122,26 @@ github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe h1:lXe2qZdvpiX5WZ github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A= github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI= -github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/flatbuffers v2.0.0+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= +github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= +github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/flatbuffers v2.0.8+incompatible h1:ivUb1cGomAB101ZM1T0nOiWz9pSrTMoa9+EiY7igmkM= github.com/google/flatbuffers v2.0.8+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= -github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c h1:6rhixN/i8ZofjG1Y75iExal34USq5p+wiN1tpie8IrU= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c/go.mod h1:NMPJylDgVpX0MLRlPy15sqSwOFv/U1GZ2m21JhFfek0= github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= @@ -264,18 +209,18 @@ github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 h1:rp+c0RAYOWj8 github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901/go.mod h1:Z86h9688Y0wesXCyonoVr47MasHilkuLMqGhRZ4Hpak= github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= -github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= -github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= github.com/kardianos/minwinsvc v1.0.2 h1:JmZKFJQrmTGa/WiW+vkJXKmfzdjabuEW4Tirj5lLdR0= github.com/kardianos/minwinsvc v1.0.2/go.mod h1:LUZNYhNmxujx2tR7FbdxqYJ9XDDoCd3MQcl1o//FWl4= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.13.1/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= +github.com/klauspost/asmfmt v1.3.2 h1:4Ri7ox3EwapiOjCki+hw14RyKk201CN4rzyCJRFLpK4= +github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= github.com/klauspost/compress v1.15.11 h1:Lcadnb3RKGin4FYM/orgq0qde+nc15E5Cbqg4B9Sx9c= github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= +github.com/klauspost/cpuid/v2 v2.0.9 h1:lgaqFMSdTdQYdZ04uHyN2d/eKdOMyi2YLSvlQIBFYa4= +github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= @@ -291,8 +236,6 @@ github.com/lib/pq v1.10.8 h1:3fdt97i/cwSU83+E0hZTC/Xpc9mTZxc6UWSCRcSbxiE= github.com/lib/pq v1.10.8/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-ieproxy v0.0.1 h1:qiyop7gCflfhwCzGyeT0gro3sF9AIg9HU98JORTkqfI= -github.com/mattn/go-ieproxy v0.0.1/go.mod h1:pYabZ6IHcRpFh7vIaLfK7rdcWgFEb3SFJ6/gNWuh88E= github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= @@ -301,6 +244,10 @@ github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zk github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/microsoft/go-mssqldb v0.21.0 h1:p2rpHIL7TlSv1QrbXJUAcbyRKnIT0C9rRkH2E4OjLn8= github.com/microsoft/go-mssqldb v0.21.0/go.mod h1:+4wZTUnz/SV6nffv+RRRB/ss8jPng5Sho2SmM1l2ts4= +github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8 h1:AMFGa4R4MiIpspGNG7Z948v4n35fFGB3RR3G/ry4FWs= +github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY= +github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3 h1:+n/aFZefKZp7spd8DFdX7uMikMLXX4oubIzJF4kv/wI= +github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3/go.mod h1:RagcQ7I8IeTMnF8JTXieKnO4Z6JCsikNEzj0DwauVzE= github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8= github.com/montanaflynn/stats v0.6.6/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs= @@ -308,11 +255,8 @@ github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ib github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/phpdave11/gofpdf v1.4.2/go.mod h1:zpO6xFn9yxo3YLyMvW8HcKWVdbNqgIfOOp2dXMnm1mY= -github.com/phpdave11/gofpdi v1.0.12/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= github.com/pierrec/lz4 v2.0.5+incompatible h1:2xWsjqPFWcplujydGg4WmhC/6fZqK42wMM8aXeqhl0I= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= -github.com/pierrec/lz4/v4 v4.1.8/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pierrec/lz4/v4 v4.1.16 h1:kQPfno+wyx6C5572ABwV+Uo3pDFzQ7yhyGchSyRda0c= github.com/pierrec/lz4/v4 v4.1.16/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4/go.mod h1:N6UoU20jOqggOuDwUaBQpluzLNDqif3kq9z2wpdYEfQ= @@ -326,7 +270,6 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRI github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw= github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM= @@ -336,14 +279,12 @@ github.com/prometheus/exporter-toolkit v0.9.1/go.mod h1:iFlTmFISCix0vyuyBmm0UqOU github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI= github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY= -github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= -github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= github.com/shopspring/decimal v1.2.0 h1:abSATXmQEYyShuxI4/vyW3tV1MrKAJzCZ/0zLUXYbsQ= @@ -354,8 +295,8 @@ github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMB github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/snowflakedb/gosnowflake v1.6.18 h1:mm4KYvp3LWGHIuACwX/tHv9qDs2NdLDXuK0Rep+vfJc= -github.com/snowflakedb/gosnowflake v1.6.18/go.mod h1:BhNDWNSUY+t4T8GBuOg3ckWC4v5hhGlLovqGcF8Rkac= +github.com/snowflakedb/gosnowflake v1.6.19 h1:KSHXrQ5o7uso25hNIzi/RObXtnSGkFgie91X82KcvMY= +github.com/snowflakedb/gosnowflake v1.6.19/go.mod h1:FM1+PWUdwB9udFDsXdfD58NONC0m+MlOSmQRvimobSM= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= @@ -376,10 +317,11 @@ github.com/vertica/vertica-sql-go v1.3.2 h1:QclPnkuozQyNl6lbrTdeuFSx2/lcSRZc1XL8 github.com/vertica/vertica-sql-go v1.3.2/go.mod h1:jnn2GFuv+O2Jcjktb7zyc4Utlbu9YVqpHH/lx63+1M4= github.com/xo/dburl v0.13.0 h1:kq+oD1j/m8DnJ/p6G/LQXRosVchs8q5/AszEUKkvYfo= github.com/xo/dburl v0.13.0/go.mod h1:K6rSPgbVqP3ZFT0RHkdg/M3M5KhLeV2MaS/ZqaLd1kA= -github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= +github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= +github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= -go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= @@ -397,8 +339,6 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201112155050-0c6587e931a9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201203163018-be400aefbc4c/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= @@ -409,50 +349,22 @@ golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= golang.org/x/crypto v0.7.0 h1:AvwMYaRytfdeVt3u6mLaxYtErKYjxA2OXjJ1HHq6t3A= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20191002040644-a1355ae1e2c3 h1:n9HxLrNxWWtEb1cA950nuEEj3QnKbtsCJ6KjcgisNUs= -golang.org/x/exp v0.0.0-20191002040644-a1355ae1e2c3/go.mod h1:NOZ3BPKG0ec/BKJQgnvsSFpcKLM5xXVWnvZS97DWHgE= -golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= -golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20190910094157-69e4b8554b2a/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20200119044424-58c23975cae1/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20200430140353-33d19683fad8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20200618115811-c13761719519/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20201208152932-35266b937fa6/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20210216034530-4410531fe030/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/exp v0.0.0-20220827204233-334a2380cb91 h1:tnebWN09GYg9OLPss1KXj8txwZc6X6uMr6VFdcGNbHw= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -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/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -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= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191112182307-2180aed22343/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210610132358-84b48f89b13b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= @@ -460,42 +372,29 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.6.0 h1:Lh8GPgSKBfWSwFvtuWOfeI3aAAnbXTSutYxJiOJFgIw= golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191112214154-59a1497f0cea/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210304124612-50617c2ba197/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220224120231-95c6836cb0e7/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -515,30 +414,23 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425163242-31fd60d6bfdc/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190823170909-c4a336ef6a2f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190927191325-030b2cf1153e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/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.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -547,56 +439,23 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= -gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0= -gonum.org/v1/gonum v0.9.3 h1:DnoIG+QAMaF5NvxnGe/oKsgKcAc6PcUyl8q0VetfQ8s= -gonum.org/v1/gonum v0.9.3/go.mod h1:TZumC3NeyVQskjXqmyWt4S3bINhy7B4eYwW69EbyX+0= -gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= -gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= -gonum.org/v1/plot v0.9.0/go.mod h1:3Pcqqmp6RHvJI72kgb8fThyUnav364FOsdDo2aGW5lY= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +gonum.org/v1/gonum v0.11.0 h1:f1IJhK4Km5tBJmaiJXtk/PkL4cdVX6J+tGiM187uT5E= google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20210630183607-d20f26d13c79/go.mod h1:yiaVoXHpRzHGyxV3o4DktVWY4mSUErTKaeEOq6C3t3U= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= -google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s= gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce h1:+JknDZhAj8YMt7GC73Ei8pv4MzjDUNPHgQWJdtMAaDU= gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce/go.mod h1:5AcXVHNjg+BDxry382+8OKon8SEWiKktQR07RKPsv1c= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= @@ -604,9 +463,6 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/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= howett.net/plist v0.0.0-20181124034731-591f970eefbb h1:jhnBjNi9UFpfpl8YZhA9CrOqpnJdvzuiHsl/dnxl11M= howett.net/plist v0.0.0-20181124034731-591f970eefbb/go.mod h1:vMygbs4qMhSZSc4lCUl2OEE+rDiIIJAIdR4m7MiMcm0= -rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= From b769e7b1e7b4d3828c1ebf03c117a66938959934 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 16 Apr 2023 14:30:01 +0200 Subject: [PATCH 042/401] deps: bump github.com/prometheus/client_golang from 1.14.0 to 1.15.0 (#225) Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.14.0 to 1.15.0. - [Release notes](https://github.com/prometheus/client_golang/releases) - [Changelog](https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md) - [Commits](https://github.com/prometheus/client_golang/compare/v1.14.0...v1.15.0) --- updated-dependencies: - dependency-name: github.com/prometheus/client_golang dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index 15318eeb..9208fb27 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.8 github.com/microsoft/go-mssqldb v0.21.0 - github.com/prometheus/client_golang v1.14.0 + github.com/prometheus/client_golang v1.15.0 github.com/prometheus/client_model v0.3.0 github.com/prometheus/common v0.42.0 github.com/prometheus/exporter-toolkit v0.9.1 @@ -46,7 +46,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/s3 v1.27.11 // indirect github.com/aws/smithy-go v1.13.3 // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/cespare/xxhash/v2 v2.1.2 // indirect + github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect github.com/danieljoos/wincred v1.1.2 // indirect @@ -63,7 +63,7 @@ require ( github.com/golang-jwt/jwt/v4 v4.4.2 // indirect github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe // indirect github.com/golang-sql/sqlexp v0.1.0 // indirect - github.com/golang/protobuf v1.5.2 // indirect + github.com/golang/protobuf v1.5.3 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/flatbuffers v2.0.8+incompatible // indirect github.com/google/uuid v1.3.0 // indirect diff --git a/go.sum b/go.sum index a36c977f..9b223602 100644 --- a/go.sum +++ b/go.sum @@ -69,8 +69,8 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bkaradzic/go-lz4 v1.0.0 h1:RXc4wYsyz985CkXXeX04y4VnZFGG8Rd43pRaHsOXAKk= github.com/bkaradzic/go-lz4 v1.0.0/go.mod h1:0YdlkowM3VswSROI7qDxhRvJ3sLhlFrRRwjwegp5jy4= -github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE= -github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= +github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 h1:F1EaeKL/ta07PY/k9Os/UFtwERei2/XzGemhpGnBKNg= github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58/go.mod h1:EOBUe0h4xcZ5GoxqC5SDxFQ8gwyZPKQoEzownBlhI80= github.com/cockroachdb/apd v1.1.0 h1:3LFP3629v+1aKXU5Q37mxmRxX/pIu1nijXydLShEq5I= @@ -127,8 +127,8 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/flatbuffers v2.0.8+incompatible h1:ivUb1cGomAB101ZM1T0nOiWz9pSrTMoa9+EiY7igmkM= @@ -268,8 +268,8 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw= -github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= +github.com/prometheus/client_golang v1.15.0 h1:5fCgGYogn0hFdhyhLbw7hEsWxufKtY9klyvdNfFlFhM= +github.com/prometheus/client_golang v1.15.0/go.mod h1:e9yaBhRPU2pPNsZwE+JdQl0KEt1N9XgF6zxWmaC0xOk= github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM= From 41d23778d7fd1735ddd78171b77d3c773dd3f014 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 16 Apr 2023 14:30:25 +0200 Subject: [PATCH 043/401] deps: bump github.com/xo/dburl from 0.13.0 to 0.14.2 (#223) Bumps [github.com/xo/dburl](https://github.com/xo/dburl) from 0.13.0 to 0.14.2. - [Release notes](https://github.com/xo/dburl/releases) - [Commits](https://github.com/xo/dburl/compare/v0.13.0...v0.14.2) --- updated-dependencies: - dependency-name: github.com/xo/dburl dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 9208fb27..8e284da4 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( github.com/prometheus/exporter-toolkit v0.9.1 github.com/snowflakedb/gosnowflake v1.6.19 github.com/vertica/vertica-sql-go v1.3.2 - github.com/xo/dburl v0.13.0 + github.com/xo/dburl v0.14.2 google.golang.org/protobuf v1.30.0 gopkg.in/yaml.v3 v3.0.1 k8s.io/klog/v2 v2.70.1 diff --git a/go.sum b/go.sum index 9b223602..a86083eb 100644 --- a/go.sum +++ b/go.sum @@ -315,8 +315,8 @@ github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKs github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/vertica/vertica-sql-go v1.3.2 h1:QclPnkuozQyNl6lbrTdeuFSx2/lcSRZc1XL8zWNSjdA= github.com/vertica/vertica-sql-go v1.3.2/go.mod h1:jnn2GFuv+O2Jcjktb7zyc4Utlbu9YVqpHH/lx63+1M4= -github.com/xo/dburl v0.13.0 h1:kq+oD1j/m8DnJ/p6G/LQXRosVchs8q5/AszEUKkvYfo= -github.com/xo/dburl v0.13.0/go.mod h1:K6rSPgbVqP3ZFT0RHkdg/M3M5KhLeV2MaS/ZqaLd1kA= +github.com/xo/dburl v0.14.2 h1:tqiXv1glyxFph3LA39RXE4TYidr/yp7kG2YDrgJVjiA= +github.com/xo/dburl v0.14.2/go.mod h1:B7/G9FGungw6ighV8xJNwWYQPMfn3gsi2sn5SE8Bzco= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= From 177498790c2b3f17c321c5072ad34f20c5182ba7 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Sun, 16 Apr 2023 14:37:27 +0200 Subject: [PATCH 044/401] fix: handling is fixed in the upstream dburl (#226) --- sql.go | 8 -------- 1 file changed, 8 deletions(-) diff --git a/sql.go b/sql.go index be7a9b51..9f511738 100644 --- a/sql.go +++ b/sql.go @@ -27,14 +27,6 @@ func OpenConnection(ctx context.Context, logContext, dsn string, maxConns, maxId return nil, err } - // FIXME: currently `dburl` handles `azuresql` scheme as `sqlserver` alias and assigns it as a driver name. - // To use Azure AD the upstream driver expects strictly `azuresql` as a driver name. We detect `fedauth` - // in a query string, and set the expected driver name. - // This might be fixed later in the upstream dependency and removed here. - if url.Driver == "sqlserver" && url.Query().Has("fedauth") { - url.Driver = "azuresql" - } - // Open the DB handle in a separate goroutine so we can terminate early if the context closes. go func() { conn, err = sql.Open(url.Driver, url.DSN) From 5c5cf37843f862495f637a7937893d363f070b9a Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Sun, 16 Apr 2023 15:01:10 +0200 Subject: [PATCH 045/401] build: update promu to 0.14.0 (#228) --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 1200287e..8fe7834c 100644 --- a/Makefile +++ b/Makefile @@ -76,7 +76,7 @@ docker: promu: @GOOS=$(shell uname -s | tr A-Z a-z) \ GOARCH=$(subst x86_64,amd64,$(patsubst i%86,386,$(shell uname -m))) \ - $(GO) install github.com/prometheus/promu@v0.13.0 + $(GO) install github.com/prometheus/promu@v0.14.0 .PHONY: all style format build test vet tarball docker promu From 4874efbc30a2684d4fab459ad8aa8c3dd51fe6a3 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Sun, 16 Apr 2023 15:01:43 +0200 Subject: [PATCH 046/401] deps: update golang.org/x/* indirect dependencies (#227) --- go.mod | 17 +++++++++-------- go.sum | 35 ++++++++++++++++++----------------- 2 files changed, 27 insertions(+), 25 deletions(-) diff --git a/go.mod b/go.mod index 8e284da4..401019fb 100644 --- a/go.mod +++ b/go.mod @@ -95,15 +95,16 @@ require ( github.com/rogpeppe/go-internal v1.10.0 // indirect github.com/sirupsen/logrus v1.9.0 // indirect github.com/zeebo/xxh3 v1.0.2 // indirect - golang.org/x/crypto v0.7.0 // indirect - golang.org/x/mod v0.8.0 // indirect - golang.org/x/net v0.8.0 // indirect - golang.org/x/oauth2 v0.6.0 // indirect + golang.org/x/crypto v0.8.0 // indirect + golang.org/x/exp v0.0.0-20230321023759-10a507213a29 // indirect + golang.org/x/mod v0.10.0 // indirect + golang.org/x/net v0.9.0 // indirect + golang.org/x/oauth2 v0.7.0 // indirect golang.org/x/sync v0.1.0 // indirect - golang.org/x/sys v0.6.0 // indirect - golang.org/x/term v0.6.0 // indirect - golang.org/x/text v0.8.0 // indirect - golang.org/x/tools v0.6.0 // indirect + golang.org/x/sys v0.7.0 // indirect + golang.org/x/term v0.7.0 // indirect + golang.org/x/text v0.9.0 // indirect + golang.org/x/tools v0.8.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect google.golang.org/appengine v1.6.7 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/go.sum b/go.sum index a86083eb..71d8c61a 100644 --- a/go.sum +++ b/go.sum @@ -347,16 +347,17 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20220511200225-c6db032c6c88/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= -golang.org/x/crypto v0.7.0 h1:AvwMYaRytfdeVt3u6mLaxYtErKYjxA2OXjJ1HHq6t3A= -golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/exp v0.0.0-20220827204233-334a2380cb91 h1:tnebWN09GYg9OLPss1KXj8txwZc6X6uMr6VFdcGNbHw= +golang.org/x/crypto v0.8.0 h1:pd9TJtTueMTVQXzk8E2XESSMQDj/U7OUu0PqJqPXQjQ= +golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= +golang.org/x/exp v0.0.0-20230321023759-10a507213a29 h1:ooxPy7fPvB4kwsA2h+iBNHkAbp/4JxTSwCmvdjEYmug= +golang.org/x/exp v0.0.0-20230321023759-10a507213a29/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= -golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk= +golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= @@ -370,10 +371,10 @@ golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= -golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/oauth2 v0.6.0 h1:Lh8GPgSKBfWSwFvtuWOfeI3aAAnbXTSutYxJiOJFgIw= -golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw= +golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM= +golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= +golang.org/x/oauth2 v0.7.0 h1:qe6s0zUXlPX80/dITx3440hWZ7GwMwgDDyrSGTPJG/g= +golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -402,14 +403,14 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= -golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU= +golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw= -golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= +golang.org/x/term v0.7.0 h1:BEvjmm5fURWqcfbSKTdpkDXYBrUS1c0m8agp14W48vQ= +golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -417,8 +418,8 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= -golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425163242-31fd60d6bfdc/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= @@ -429,8 +430,8 @@ golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/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.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= -golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/tools v0.8.0 h1:vSDcovVPld282ceKgDimkRSC8kpaH1dgyc9UMzlt84Y= +golang.org/x/tools v0.8.0/go.mod h1:JxBZ99ISMI5ViVkT1tr6tdNmXeTrcpVSD3vZ1RsRdN4= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= From 20b353b57bbf8d49bb481f50e0b0597b8f210677 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Sun, 16 Apr 2023 19:33:59 +0200 Subject: [PATCH 047/401] build: containers via multi-platform Dockerfile (#229) --- .github/workflows/release.yml | 9 ++++----- Dockerfile.multi-arch | 20 ++++++++++++++++++++ Makefile | 2 +- 3 files changed, 25 insertions(+), 6 deletions(-) create mode 100644 Dockerfile.multi-arch diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3a1720b3..2acfaa88 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -52,14 +52,12 @@ jobs: runs-on: ubuntu-latest needs: build steps: - - name: Set up Go 1.x - uses: actions/setup-go@v3 - with: - go-version: ^1.18 - - name: Check out the repo uses: actions/checkout@v3 + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 @@ -82,6 +80,7 @@ jobs: uses: docker/build-push-action@v4 with: context: . + file: Dockerfile.multi-arch push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} diff --git a/Dockerfile.multi-arch b/Dockerfile.multi-arch new file mode 100644 index 00000000..77997b4e --- /dev/null +++ b/Dockerfile.multi-arch @@ -0,0 +1,20 @@ +FROM --platform=$BUILDPLATFORM quay.io/prometheus/golang-builder AS builder + +# Get sql_exporter +ADD . /go/src/github.com/burningalchemist/sql_exporter +WORKDIR /go/src/github.com/burningalchemist/sql_exporter + +# Do makefile +ARG TARGETOS +ARG TARGETARCH + +RUN GOOS=$TARGETOS GOARCH=$TARGETARCH make + +# Make image and copy build sql_exporter +FROM --platform=$TARGETPLATFORM quay.io/prometheus/busybox:latest +LABEL maintainer="The Prometheus Authors " +COPY --from=builder /go/src/github.com/burningalchemist/sql_exporter/sql_exporter /bin/sql_exporter + +EXPOSE 9399 +USER nobody +ENTRYPOINT [ "/bin/sql_exporter" ] diff --git a/Makefile b/Makefile index 8fe7834c..0ff6f626 100644 --- a/Makefile +++ b/Makefile @@ -30,7 +30,7 @@ style: test: @echo ">> running tests" - @$(GO) test -short -race $(pkgs) + @$(GO) test -short $(pkgs) format: @echo ">> formatting code" From f7e991cab0f24cb1dad47c427e2de3707e705305 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Sun, 16 Apr 2023 20:28:17 +0200 Subject: [PATCH 048/401] revert: gosnowflake driver v1.6.19 -> v1.6.18 (#231) --- go.mod | 20 ++---- go.sum | 212 ++++++++++++++++++++++++++++++++++++++++++++++++--------- 2 files changed, 186 insertions(+), 46 deletions(-) diff --git a/go.mod b/go.mod index 401019fb..6f760f6f 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,7 @@ require ( github.com/prometheus/client_model v0.3.0 github.com/prometheus/common v0.42.0 github.com/prometheus/exporter-toolkit v0.9.1 - github.com/snowflakedb/gosnowflake v1.6.19 + github.com/snowflakedb/gosnowflake v1.6.18 github.com/vertica/vertica-sql-go v1.3.2 github.com/xo/dburl v0.14.2 google.golang.org/protobuf v1.30.0 @@ -24,14 +24,13 @@ require ( require ( github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.1 // indirect + github.com/Azure/azure-pipeline-go v0.2.3 // indirect github.com/Azure/azure-sdk-for-go/sdk/azcore v1.4.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.2.1 // indirect github.com/Azure/azure-sdk-for-go/sdk/internal v1.1.2 // indirect - github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0 // indirect + github.com/Azure/azure-storage-blob-go v0.15.0 // indirect github.com/AzureAD/microsoft-authentication-library-for-go v0.8.1 // indirect - github.com/andybalholm/brotli v1.0.4 // indirect - github.com/apache/arrow/go/v10 v10.0.1 // indirect - github.com/apache/thrift v0.16.0 // indirect + github.com/apache/arrow/go/arrow v0.0.0-20211112161151-bc219186db40 // indirect github.com/aws/aws-sdk-go-v2 v1.16.16 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.8 // indirect github.com/aws/aws-sdk-go-v2/credentials v1.12.20 // indirect @@ -58,13 +57,11 @@ require ( github.com/gabriel-vasile/mimetype v1.4.1 // indirect github.com/go-kit/log v0.2.1 // indirect github.com/go-logfmt/logfmt v0.5.1 // indirect - github.com/goccy/go-json v0.9.11 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/golang-jwt/jwt/v4 v4.4.2 // indirect github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe // indirect github.com/golang-sql/sqlexp v0.1.0 // indirect github.com/golang/protobuf v1.5.3 // indirect - github.com/golang/snappy v0.0.4 // indirect github.com/google/flatbuffers v2.0.8+incompatible // indirect github.com/google/uuid v1.3.0 // indirect github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect @@ -78,13 +75,10 @@ require ( github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 // indirect github.com/jpillora/backoff v1.0.0 // indirect - github.com/klauspost/asmfmt v1.3.2 // indirect github.com/klauspost/compress v1.15.11 // indirect - github.com/klauspost/cpuid/v2 v2.0.9 // indirect github.com/kylelemons/godebug v1.1.0 // indirect + github.com/mattn/go-ieproxy v0.0.1 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect - github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8 // indirect - github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3 // indirect github.com/mtibben/percent v0.2.1 // indirect github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect github.com/pierrec/lz4/v4 v4.1.16 // indirect @@ -94,18 +88,16 @@ require ( github.com/prometheus/procfs v0.9.0 // indirect github.com/rogpeppe/go-internal v1.10.0 // indirect github.com/sirupsen/logrus v1.9.0 // indirect - github.com/zeebo/xxh3 v1.0.2 // indirect golang.org/x/crypto v0.8.0 // indirect golang.org/x/exp v0.0.0-20230321023759-10a507213a29 // indirect - golang.org/x/mod v0.10.0 // indirect golang.org/x/net v0.9.0 // indirect golang.org/x/oauth2 v0.7.0 // indirect golang.org/x/sync v0.1.0 // indirect golang.org/x/sys v0.7.0 // indirect golang.org/x/term v0.7.0 // indirect golang.org/x/text v0.9.0 // indirect - golang.org/x/tools v0.8.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect + gonum.org/v1/gonum v0.11.0 // indirect google.golang.org/appengine v1.6.7 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect howett.net/plist v0.0.0-20181124034731-591f970eefbb // indirect diff --git a/go.sum b/go.sum index 71d8c61a..73403924 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,13 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8= github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 h1:/vQbFIOMbk2FiG/kXiLl8BRyzTWDw7gX/Hz7Dd5eDMs= github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4/go.mod h1:hN7oaIRCjzsZ2dE+yG5k+rsdt3qcwykqK6HVGcKwsw4= github.com/99designs/keyring v1.2.1 h1:tYLp1ULvO7i3fI5vE21ReQuj99QFSs7lGm0xWyJo87o= github.com/99designs/keyring v1.2.1/go.mod h1:fc+wB5KTk9wQ9sDx0kFXB3A0MaeGHM9AwRStKOQ5vOA= +github.com/Azure/azure-pipeline-go v0.2.3 h1:7U9HBg1JFK3jHl5qmo4CTZKFTVgMwdFHMVtCdfBE21U= +github.com/Azure/azure-pipeline-go v0.2.3/go.mod h1:x841ezTBIMG6O3lAcl8ATHnsOPVl2bqk7S3ta6S6u4k= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.0.0/go.mod h1:uGG2W01BaETf0Ozp+QxxKJdMBNRWPdstHG0Fmdwn1/U= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.1.2/go.mod h1:uGG2W01BaETf0Ozp+QxxKJdMBNRWPdstHG0Fmdwn1/U= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.4.0 h1:rTnT/Jrcm+figWlYz4Ixzt0SJVR2cMC8lvZcimipiEY= @@ -11,22 +17,31 @@ github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.2.1/go.mod h1:gLa1CL2RNE4s7M github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0/go.mod h1:eWRD7oawr1Mu1sLCawqVc0CUiF43ia3qQMxLscsKQ9w= github.com/Azure/azure-sdk-for-go/sdk/internal v1.1.2 h1:+5VZ72z0Qan5Bog5C+ZkgSqUbeVUd9wgtHOrIKuc5b8= github.com/Azure/azure-sdk-for-go/sdk/internal v1.1.2/go.mod h1:eWRD7oawr1Mu1sLCawqVc0CUiF43ia3qQMxLscsKQ9w= -github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0 h1:u/LLAOFgsMv7HmNL4Qufg58y+qElGOt5qv0z1mURkRY= -github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0/go.mod h1:2e8rMJtl2+2j+HXbTBwnyGpm5Nou7KhvSfxOq8JpTag= +github.com/Azure/azure-storage-blob-go v0.15.0 h1:rXtgp8tN1p29GvpGgfJetavIG0V7OgcSXPpwp3tx6qk= +github.com/Azure/azure-storage-blob-go v0.15.0/go.mod h1:vbjsVbX0dlxnRc4FFMPsS9BsJWPcne7GB7onqlPvz58= +github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs= +github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= +github.com/Azure/go-autorest/autorest/adal v0.9.13 h1:Mp5hbtOePIzM8pJVRa3YLrWWmZtoxRXqUEzCfJt3+/Q= +github.com/Azure/go-autorest/autorest/adal v0.9.13/go.mod h1:W/MM4U6nLxnIskrw4UwWzlHfGjwUS50aOsc/I3yuU8M= +github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw= +github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= +github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= +github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+ZtXWSmf4Tg= +github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= +github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo= +github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= github.com/AzureAD/microsoft-authentication-library-for-go v0.8.1 h1:oPdPEZFSbl7oSPEAIPMPBMUmiL+mqgzBJwM/9qYcwNg= github.com/AzureAD/microsoft-authentication-library-for-go v0.8.1/go.mod h1:4qFor3D/HDsvBME35Xy9rwW9DecL+M2sNw1ybjPtwA0= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/ClickHouse/clickhouse-go v1.5.4 h1:cKjXeYLNWVJIx2J1K6H2CqyRmfwVJVY1OV1coaaFcI0= github.com/ClickHouse/clickhouse-go v1.5.4/go.mod h1:EaI/sW7Azgz9UATzd5ZdZHRUhHgv5+JMS9NSr2smCJI= -github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c h1:RGWPOewvKIROun94nF7v2cua9qP+thov/7M50KEoeSU= github.com/Masterminds/semver/v3 v3.1.1 h1:hLg3sBzpNErnxhQtUy/mmLR2I9foDujNK030IGemrRc= github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= -github.com/andybalholm/brotli v1.0.4 h1:V7DdXeJtZscaqfNuAdSRuRFzuiKlHSC/Zh3zl9qY3JY= -github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= -github.com/apache/arrow/go/v10 v10.0.1 h1:n9dERvixoC/1JjDmBcs9FPaEryoANa2sCgVFo6ez9cI= -github.com/apache/arrow/go/v10 v10.0.1/go.mod h1:YvhnlEePVnBS4+0z3fhPfUy7W1Ikj0Ih0vcRo/gZ1M0= -github.com/apache/thrift v0.16.0 h1:qEy6UW60iVOlUy+b9ZR0d5WzUWYGOo4HfopoyBaNmoY= -github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= +github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/apache/arrow/go/arrow v0.0.0-20211112161151-bc219186db40 h1:q4dksr6ICHXqG5hm0ZW5IHyeEJXoIJSOZeBLmWPNeIQ= +github.com/apache/arrow/go/arrow v0.0.0-20211112161151-bc219186db40/go.mod h1:Q7yQnSMnLvcXlZ8RV+jwz/6y1rQTqbX6C82SndT52Zs= github.com/aws/aws-sdk-go-v2 v1.16.16 h1:M1fj4FE2lB4NzRb9Y0xdWsn2P0+2UHVxwKyOa4YJNjk= github.com/aws/aws-sdk-go-v2 v1.16.16/go.mod h1:SwiyXi/1zTUZ6KIAmLK5V5ll8SiURNUYOqTerZPaF9k= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.8 h1:tcFliCWne+zOuUfKNRn8JdFBuWPDuISDH08wD2ULkhk= @@ -69,10 +84,16 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bkaradzic/go-lz4 v1.0.0 h1:RXc4wYsyz985CkXXeX04y4VnZFGG8Rd43pRaHsOXAKk= github.com/bkaradzic/go-lz4 v1.0.0/go.mod h1:0YdlkowM3VswSROI7qDxhRvJ3sLhlFrRRwjwegp5jy4= +github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 h1:F1EaeKL/ta07PY/k9Os/UFtwERei2/XzGemhpGnBKNg= github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58/go.mod h1:EOBUe0h4xcZ5GoxqC5SDxFQ8gwyZPKQoEzownBlhI80= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cockroachdb/apd v1.1.0 h1:3LFP3629v+1aKXU5Q37mxmRxX/pIu1nijXydLShEq5I= github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= @@ -95,13 +116,30 @@ github.com/elastic/go-sysinfo v1.8.1 h1:4Yhj+HdV6WjbCRgGdZpPJ8lZQlXZLKDAeIkmQ/VR github.com/elastic/go-sysinfo v1.8.1/go.mod h1:JfllUnzoQV/JRYymbH3dO1yggI3mV2oTKSXsDHM+uIM= github.com/elastic/go-windows v1.0.0 h1:qLURgZFkkrYyTTkvYpsZIgf83AUsdIHfvlJaqaZ7aSY= github.com/elastic/go-windows v1.0.0/go.mod h1:TsU0Nrp7/y3+VwE82FoZF8gC/XFg/Elz6CcloAxnPgU= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= +github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= +github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/form3tech-oss/jwt-go v3.2.5+incompatible h1:/l4kBbb4/vGSsdtB5nUe8L7B9mImVMaBPw9L/0TBHU8= github.com/form3tech-oss/jwt-go v3.2.5+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/gabriel-vasile/mimetype v1.4.1 h1:TRWk7se+TOjCYgRth7+1/OYLNiRNIotknkFtf/dnN7Q= github.com/gabriel-vasile/mimetype v1.4.1/go.mod h1:05Vi0w3Y9c/lNvJOdmIwvrrAhX3rYhfQQCaf9VJcv7M= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/go-fonts/dejavu v0.1.0/go.mod h1:4Wt4I4OU2Nq9asgDCteaAaWZOV24E+0/Pwo0gppep4g= +github.com/go-fonts/latin-modern v0.2.0/go.mod h1:rQVLdDMK+mK1xscDwsqM5J8U2jrRa3T0ecnM9pNujks= +github.com/go-fonts/liberation v0.1.1/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY= +github.com/go-fonts/stix v0.1.0/go.mod h1:w/c1f0ldAUlJmLBvlbkvVXLAD+tAMqobIIQpmnUIzUY= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= +github.com/go-latex/latex v0.0.0-20210118124228-b3d85cf34e07/go.mod h1:CO1AlKB2CSIqUrmQPqA0gdRIlnLEY0gK5JGjh37zN5U= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA= github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= @@ -109,8 +147,6 @@ github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc= github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/goccy/go-json v0.9.11 h1:/pAaQDLHEoCq/5FFmSKBswWmK6H0e8g4159Kc/X/nqk= -github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+Hoeu/iUR3ruzNvZ+yQfO03a0= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= @@ -122,26 +158,48 @@ github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe h1:lXe2qZdvpiX5WZ github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A= github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI= -github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= +github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= -github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/flatbuffers v2.0.0+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/flatbuffers v2.0.8+incompatible h1:ivUb1cGomAB101ZM1T0nOiWz9pSrTMoa9+EiY7igmkM= github.com/google/flatbuffers v2.0.8+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= +github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c h1:6rhixN/i8ZofjG1Y75iExal34USq5p+wiN1tpie8IrU= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c/go.mod h1:NMPJylDgVpX0MLRlPy15sqSwOFv/U1GZ2m21JhFfek0= github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= @@ -209,18 +267,18 @@ github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 h1:rp+c0RAYOWj8 github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901/go.mod h1:Z86h9688Y0wesXCyonoVr47MasHilkuLMqGhRZ4Hpak= github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= +github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= +github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= github.com/kardianos/minwinsvc v1.0.2 h1:JmZKFJQrmTGa/WiW+vkJXKmfzdjabuEW4Tirj5lLdR0= github.com/kardianos/minwinsvc v1.0.2/go.mod h1:LUZNYhNmxujx2tR7FbdxqYJ9XDDoCd3MQcl1o//FWl4= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/asmfmt v1.3.2 h1:4Ri7ox3EwapiOjCki+hw14RyKk201CN4rzyCJRFLpK4= -github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= +github.com/klauspost/compress v1.13.1/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= github.com/klauspost/compress v1.15.11 h1:Lcadnb3RKGin4FYM/orgq0qde+nc15E5Cbqg4B9Sx9c= github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= -github.com/klauspost/cpuid/v2 v2.0.9 h1:lgaqFMSdTdQYdZ04uHyN2d/eKdOMyi2YLSvlQIBFYa4= -github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= @@ -236,6 +294,8 @@ github.com/lib/pq v1.10.8 h1:3fdt97i/cwSU83+E0hZTC/Xpc9mTZxc6UWSCRcSbxiE= github.com/lib/pq v1.10.8/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-ieproxy v0.0.1 h1:qiyop7gCflfhwCzGyeT0gro3sF9AIg9HU98JORTkqfI= +github.com/mattn/go-ieproxy v0.0.1/go.mod h1:pYabZ6IHcRpFh7vIaLfK7rdcWgFEb3SFJ6/gNWuh88E= github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= @@ -244,10 +304,6 @@ github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zk github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/microsoft/go-mssqldb v0.21.0 h1:p2rpHIL7TlSv1QrbXJUAcbyRKnIT0C9rRkH2E4OjLn8= github.com/microsoft/go-mssqldb v0.21.0/go.mod h1:+4wZTUnz/SV6nffv+RRRB/ss8jPng5Sho2SmM1l2ts4= -github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8 h1:AMFGa4R4MiIpspGNG7Z948v4n35fFGB3RR3G/ry4FWs= -github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY= -github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3 h1:+n/aFZefKZp7spd8DFdX7uMikMLXX4oubIzJF4kv/wI= -github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3/go.mod h1:RagcQ7I8IeTMnF8JTXieKnO4Z6JCsikNEzj0DwauVzE= github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8= github.com/montanaflynn/stats v0.6.6/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs= @@ -255,8 +311,11 @@ github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ib github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= +github.com/phpdave11/gofpdf v1.4.2/go.mod h1:zpO6xFn9yxo3YLyMvW8HcKWVdbNqgIfOOp2dXMnm1mY= +github.com/phpdave11/gofpdi v1.0.12/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= github.com/pierrec/lz4 v2.0.5+incompatible h1:2xWsjqPFWcplujydGg4WmhC/6fZqK42wMM8aXeqhl0I= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pierrec/lz4/v4 v4.1.8/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pierrec/lz4/v4 v4.1.16 h1:kQPfno+wyx6C5572ABwV+Uo3pDFzQ7yhyGchSyRda0c= github.com/pierrec/lz4/v4 v4.1.16/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4/go.mod h1:N6UoU20jOqggOuDwUaBQpluzLNDqif3kq9z2wpdYEfQ= @@ -270,6 +329,7 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRI github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_golang v1.15.0 h1:5fCgGYogn0hFdhyhLbw7hEsWxufKtY9klyvdNfFlFhM= github.com/prometheus/client_golang v1.15.0/go.mod h1:e9yaBhRPU2pPNsZwE+JdQl0KEt1N9XgF6zxWmaC0xOk= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM= @@ -279,12 +339,14 @@ github.com/prometheus/exporter-toolkit v0.9.1/go.mod h1:iFlTmFISCix0vyuyBmm0UqOU github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI= github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY= +github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= +github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= github.com/shopspring/decimal v1.2.0 h1:abSATXmQEYyShuxI4/vyW3tV1MrKAJzCZ/0zLUXYbsQ= @@ -295,8 +357,8 @@ github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMB github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/snowflakedb/gosnowflake v1.6.19 h1:KSHXrQ5o7uso25hNIzi/RObXtnSGkFgie91X82KcvMY= -github.com/snowflakedb/gosnowflake v1.6.19/go.mod h1:FM1+PWUdwB9udFDsXdfD58NONC0m+MlOSmQRvimobSM= +github.com/snowflakedb/gosnowflake v1.6.18 h1:mm4KYvp3LWGHIuACwX/tHv9qDs2NdLDXuK0Rep+vfJc= +github.com/snowflakedb/gosnowflake v1.6.18/go.mod h1:BhNDWNSUY+t4T8GBuOg3ckWC4v5hhGlLovqGcF8Rkac= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= @@ -317,11 +379,10 @@ github.com/vertica/vertica-sql-go v1.3.2 h1:QclPnkuozQyNl6lbrTdeuFSx2/lcSRZc1XL8 github.com/vertica/vertica-sql-go v1.3.2/go.mod h1:jnn2GFuv+O2Jcjktb7zyc4Utlbu9YVqpHH/lx63+1M4= github.com/xo/dburl v0.14.2 h1:tqiXv1glyxFph3LA39RXE4TYidr/yp7kG2YDrgJVjiA= github.com/xo/dburl v0.14.2/go.mod h1:B7/G9FGungw6ighV8xJNwWYQPMfn3gsi2sn5SE8Bzco= +github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= -github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= -github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= +go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= @@ -339,6 +400,8 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201112155050-0c6587e931a9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201203163018-be400aefbc4c/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= @@ -349,23 +412,51 @@ golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= golang.org/x/crypto v0.8.0 h1:pd9TJtTueMTVQXzk8E2XESSMQDj/U7OUu0PqJqPXQjQ= golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= +golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20191002040644-a1355ae1e2c3/go.mod h1:NOZ3BPKG0ec/BKJQgnvsSFpcKLM5xXVWnvZS97DWHgE= golang.org/x/exp v0.0.0-20230321023759-10a507213a29 h1:ooxPy7fPvB4kwsA2h+iBNHkAbp/4JxTSwCmvdjEYmug= golang.org/x/exp v0.0.0-20230321023759-10a507213a29/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= +golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20190910094157-69e4b8554b2a/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20200119044424-58c23975cae1/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20200430140353-33d19683fad8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20200618115811-c13761719519/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20201208152932-35266b937fa6/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20210216034530-4410531fe030/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/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/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +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.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk= -golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +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= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191112182307-2180aed22343/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-20210610132358-84b48f89b13b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= @@ -373,29 +464,42 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM= golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.7.0 h1:qe6s0zUXlPX80/dITx3440hWZ7GwMwgDDyrSGTPJG/g= golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191112214154-59a1497f0cea/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210304124612-50617c2ba197/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220224120231-95c6836cb0e7/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -415,23 +519,30 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425163242-31fd60d6bfdc/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190823170909-c4a336ef6a2f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190927191325-030b2cf1153e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/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.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.8.0 h1:vSDcovVPld282ceKgDimkRSC8kpaH1dgyc9UMzlt84Y= -golang.org/x/tools v0.8.0/go.mod h1:JxBZ99ISMI5ViVkT1tr6tdNmXeTrcpVSD3vZ1RsRdN4= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -440,23 +551,57 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= +gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0= +gonum.org/v1/gonum v0.9.3/go.mod h1:TZumC3NeyVQskjXqmyWt4S3bINhy7B4eYwW69EbyX+0= gonum.org/v1/gonum v0.11.0 h1:f1IJhK4Km5tBJmaiJXtk/PkL4cdVX6J+tGiM187uT5E= +gonum.org/v1/gonum v0.11.0/go.mod h1:fSG4YDCxxUZQJ7rKsQrj0gMOg00Il0Z96/qMA4bVQhA= +gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= +gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= +gonum.org/v1/plot v0.9.0/go.mod h1:3Pcqqmp6RHvJI72kgb8fThyUnav364FOsdDo2aGW5lY= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20210630183607-d20f26d13c79/go.mod h1:yiaVoXHpRzHGyxV3o4DktVWY4mSUErTKaeEOq6C3t3U= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= +google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s= gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce h1:+JknDZhAj8YMt7GC73Ei8pv4MzjDUNPHgQWJdtMAaDU= gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce/go.mod h1:5AcXVHNjg+BDxry382+8OKon8SEWiKktQR07RKPsv1c= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= @@ -464,6 +609,9 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/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= howett.net/plist v0.0.0-20181124034731-591f970eefbb h1:jhnBjNi9UFpfpl8YZhA9CrOqpnJdvzuiHsl/dnxl11M= howett.net/plist v0.0.0-20181124034731-591f970eefbb/go.mod h1:vMygbs4qMhSZSc4lCUl2OEE+rDiIIJAIdR4m7MiMcm0= +rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= From 28624dbbb6e1abf278684db530f8532e26806987 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Sun, 16 Apr 2023 20:29:49 +0200 Subject: [PATCH 049/401] Bump up version to 0.10.1 --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 78bc1abd..57121573 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.10.0 +0.10.1 From dd3d23727b86d92a3a71df59e270011809537ef8 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Tue, 18 Apr 2023 11:12:15 +0200 Subject: [PATCH 050/401] fix: set clampLevel to 3 for debug logs (#233) --- cmd/sql_exporter/main.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cmd/sql_exporter/main.go b/cmd/sql_exporter/main.go index 3820a91b..78b85688 100644 --- a/cmd/sql_exporter/main.go +++ b/cmd/sql_exporter/main.go @@ -22,6 +22,7 @@ const ( envConfigFile = "SQLEXPORTER_CONFIG" envDebug = "SQLEXPORTER_DEBUG" httpReadHeaderTimeout = time.Duration(time.Second * 60) + debugMaxLevel = 3 ) var ( @@ -59,6 +60,7 @@ func main() { // Thus we need to pass it our go-kit logger object. logger := promlog.New(promlogConfig) klog.SetLogger(logger) + klog.ClampLevel(debugMaxLevel) // Override --alsologtostderr default value. if alsoLogToStderr := flag.Lookup("alsologtostderr"); alsoLogToStderr != nil { From e47d0b80ccf9435f7f9265bb3dd7a46d332a67e2 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Tue, 18 Apr 2023 11:23:31 +0200 Subject: [PATCH 051/401] fix: type constants (#234) --- cmd/sql_exporter/main.go | 8 ++++---- cmd/sql_exporter/promhttp.go | 8 ++++---- drivers_gen.go | 4 ++-- query.go | 4 ++-- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/cmd/sql_exporter/main.go b/cmd/sql_exporter/main.go index 78b85688..12ee2de7 100644 --- a/cmd/sql_exporter/main.go +++ b/cmd/sql_exporter/main.go @@ -19,10 +19,10 @@ import ( ) const ( - envConfigFile = "SQLEXPORTER_CONFIG" - envDebug = "SQLEXPORTER_DEBUG" - httpReadHeaderTimeout = time.Duration(time.Second * 60) - debugMaxLevel = 3 + envConfigFile string = "SQLEXPORTER_CONFIG" + envDebug string = "SQLEXPORTER_DEBUG" + httpReadHeaderTimeout time.Duration = time.Duration(time.Second * 60) + debugMaxLevel klog.Level = 3 ) var ( diff --git a/cmd/sql_exporter/promhttp.go b/cmd/sql_exporter/promhttp.go index 98c0cc66..e48d370c 100644 --- a/cmd/sql_exporter/promhttp.go +++ b/cmd/sql_exporter/promhttp.go @@ -20,10 +20,10 @@ import ( ) const ( - contentTypeHeader = "Content-Type" - contentLengthHeader = "Content-Length" - contentEncodingHeader = "Content-Encoding" - acceptEncodingHeader = "Accept-Encoding" + contentTypeHeader string = "Content-Type" + contentLengthHeader string = "Content-Length" + contentEncodingHeader string = "Content-Encoding" + acceptEncodingHeader string = "Accept-Encoding" ) // ExporterHandlerFor returns an http.Handler for the provided Exporter. diff --git a/drivers_gen.go b/drivers_gen.go index 4614bf43..cc6586f8 100644 --- a/drivers_gen.go +++ b/drivers_gen.go @@ -10,8 +10,8 @@ import ( ) const ( - packageName = "sql_exporter" - filename = "drivers.go" + packageName string = "sql_exporter" + filename string = "drivers.go" ) var driverList = map[string][]string{ diff --git a/query.go b/query.go index 64dde889..ab54fbd4 100644 --- a/query.go +++ b/query.go @@ -28,8 +28,8 @@ type ( ) const ( - columnTypeKey = 1 - columnTypeValue = 2 + columnTypeKey columnType = 1 + columnTypeValue columnType = 2 ) // NewQuery returns a new Query that will populate the given metric families. From 3386c9304176189f45a50f1c5fc0c8a7668db98c Mon Sep 17 00:00:00 2001 From: Matt Finkel Date: Thu, 20 Apr 2023 19:01:49 +0100 Subject: [PATCH 052/401] feat: add ability to not prepare statements (#217) Add ability to not prepare statements for cases when the backend does not support it Co-authored-by: Ripta Pasay --- config/config.go | 9 +++++++-- query.go | 5 +++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/config/config.go b/config/config.go index 92ce3295..d8867efa 100644 --- a/config/config.go +++ b/config/config.go @@ -391,8 +391,9 @@ func (c *CollectorConfig) UnmarshalYAML(unmarshal func(interface{}) error) error } else { // For literal queries generate a QueryConfig with a name based off collector and metric name. metric.query = &QueryConfig{ - Name: metric.Name, - Query: metric.QueryLiteral, + Name: metric.Name, + Query: metric.QueryLiteral, + NoPreparedStatement: metric.NoPreparedStatement, } } } @@ -413,6 +414,8 @@ type MetricConfig struct { QueryLiteral string `yaml:"query,omitempty"` // a literal query QueryRef string `yaml:"query_ref,omitempty"` // references a query in the query map + NoPreparedStatement bool `yaml:"no_prepared_statement,omitempty"` // do not prepare statement + valueType prometheus.ValueType // TypeString converted to prometheus.ValueType query *QueryConfig // QueryConfig resolved from QueryRef or generated from Query @@ -497,6 +500,8 @@ type QueryConfig struct { Name string `yaml:"query_name"` // the query name, to be referenced via `query_ref` Query string `yaml:"query"` // the named query + NoPreparedStatement bool `yaml:"no_prepared_statement,omitempty"` // do not prepare statement + metrics []*MetricConfig // metrics referencing this query // Catches all undefined fields and must be empty after parsing. diff --git a/query.go b/query.go index ab54fbd4..43538092 100644 --- a/query.go +++ b/query.go @@ -112,6 +112,11 @@ func (q *Query) run(ctx context.Context, conn *sql.DB) (*sql.Rows, errors.WithCo panic(fmt.Sprintf("[%s] Expecting to always run on the same database handle", q.logContext)) } + if q.config.NoPreparedStatement { + rows, err := conn.QueryContext(ctx, q.config.Query) + return rows, errors.Wrap(q.logContext, err) + } + if q.stmt == nil { stmt, err := conn.PrepareContext(ctx, q.config.Query) if err != nil { From 6bc4bb04d94ac27fcfd8f09237e7825922f64a05 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 May 2023 18:09:22 +0200 Subject: [PATCH 053/401] deps: bump github.com/lib/pq from 1.10.8 to 1.10.9 (#240) Bumps [github.com/lib/pq](https://github.com/lib/pq) from 1.10.8 to 1.10.9. - [Release notes](https://github.com/lib/pq/releases) - [Commits](https://github.com/lib/pq/compare/v1.10.8...v1.10.9) --- updated-dependencies: - dependency-name: github.com/lib/pq dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 6f760f6f..846a1a2b 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( github.com/go-sql-driver/mysql v1.7.0 github.com/jackc/pgx/v4 v4.18.1 github.com/kardianos/minwinsvc v1.0.2 - github.com/lib/pq v1.10.8 + github.com/lib/pq v1.10.9 github.com/microsoft/go-mssqldb v0.21.0 github.com/prometheus/client_golang v1.15.0 github.com/prometheus/client_model v0.3.0 diff --git a/go.sum b/go.sum index 73403924..f3b3ee96 100644 --- a/go.sum +++ b/go.sum @@ -290,8 +290,8 @@ github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.1.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.10.2/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/lib/pq v1.10.8 h1:3fdt97i/cwSU83+E0hZTC/Xpc9mTZxc6UWSCRcSbxiE= -github.com/lib/pq v1.10.8/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= +github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-ieproxy v0.0.1 h1:qiyop7gCflfhwCzGyeT0gro3sF9AIg9HU98JORTkqfI= From c66ab35f5f230e96240ecfffc688825228d64e25 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 May 2023 18:19:47 +0200 Subject: [PATCH 054/401] deps: bump github.com/go-sql-driver/mysql from 1.7.0 to 1.7.1 (#239) Bumps [github.com/go-sql-driver/mysql](https://github.com/go-sql-driver/mysql) from 1.7.0 to 1.7.1. - [Release notes](https://github.com/go-sql-driver/mysql/releases) - [Changelog](https://github.com/go-sql-driver/mysql/blob/master/CHANGELOG.md) - [Commits](https://github.com/go-sql-driver/mysql/compare/v1.7.0...v1.7.1) --- updated-dependencies: - dependency-name: github.com/go-sql-driver/mysql dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 846a1a2b..f40e3e93 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.18 require ( github.com/ClickHouse/clickhouse-go v1.5.4 - github.com/go-sql-driver/mysql v1.7.0 + github.com/go-sql-driver/mysql v1.7.1 github.com/jackc/pgx/v4 v4.18.1 github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.9 diff --git a/go.sum b/go.sum index f3b3ee96..9d922aa9 100644 --- a/go.sum +++ b/go.sum @@ -144,8 +144,8 @@ github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA= github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= -github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc= -github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= +github.com/go-sql-driver/mysql v1.7.1 h1:lUIinVbN1DY0xBg0eMOzmmtGoHwWBbvnWubQUrtU8EI= +github.com/go-sql-driver/mysql v1.7.1/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+Hoeu/iUR3ruzNvZ+yQfO03a0= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= From a8cf79d052368296ba8afc5a5cd700121ab3bc45 Mon Sep 17 00:00:00 2001 From: dupondje Date: Sat, 13 May 2023 09:06:24 +0200 Subject: [PATCH 055/401] fix: Create /etc/sql_exporter in postinstall properly (#236) This fixes install error: cp: cannot create regular file '/etc/sql_exporter/sql_exporter.yml': No such file or directory --- packaging/deb/postinstall | 49 ++++++++++++++++++++------------------- packaging/rpm/postinstall | 49 ++++++++++++++++++++------------------- 2 files changed, 50 insertions(+), 48 deletions(-) diff --git a/packaging/deb/postinstall b/packaging/deb/postinstall index c60768d6..2a9360bd 100644 --- a/packaging/deb/postinstall +++ b/packaging/deb/postinstall @@ -7,30 +7,31 @@ set -e IS_UPGRADE=false case "$1" in - configure) - [ -z "$SQL_EXPORTER_USER" ] && SQL_EXPORTER_USER="sql_exporter" - [ -z "$SQL_EXPORTER_GROUP" ] && SQL_EXPORTER_GROUP="sql_exporter" - if ! getent group "$SQL_EXPORTER_GROUP" > /dev/null 2>&1 ; then - addgroup --system "$SQL_EXPORTER_GROUP" --quiet - fi - if ! id $SQL_EXPORTER_USER > /dev/null 2>&1 ; then - adduser --system --home /usr/share/sql_exporter \ - --ingroup "$SQL_EXPORTER_GROUP" --disabled-password --shell /bin/false \ - "$SQL_EXPORTER_USER" - fi +configure) + [ -z "$SQL_EXPORTER_USER" ] && SQL_EXPORTER_USER="sql_exporter" + [ -z "$SQL_EXPORTER_GROUP" ] && SQL_EXPORTER_GROUP="sql_exporter" + if ! getent group "$SQL_EXPORTER_GROUP" >/dev/null 2>&1; then + addgroup --system "$SQL_EXPORTER_GROUP" --quiet + fi + if ! id $SQL_EXPORTER_USER >/dev/null 2>&1; then + adduser --system --home /usr/share/sql_exporter \ + --ingroup "$SQL_EXPORTER_GROUP" --disabled-password --shell /bin/false \ + "$SQL_EXPORTER_USER" + fi # copy user config files - if [ ! -f $CONF_FILE ]; then - CONF_PATH=$(dirname "$CONF_FILE") - cp /usr/share/sql_exporter/sql_exporter.yml $CONF_FILE - cp /usr/share/sql_exporter/mssql_example.collector.yml $CONF_PATH - fi - - # configuration files should not be modifiable by sql_exporter user, as this can be a security issue - chown -Rh root:$SQL_EXPORTER_GROUP /etc/sql_exporter/ - chmod 755 /etc/sql_exporter - find /etc/sql_exporter -type f -exec chmod 640 {} ';' - find /etc/sql_exporter -type d -exec chmod 755 {} ';' + if [ ! -f $CONF_FILE ]; then + CONF_PATH=$(dirname "$CONF_FILE") + mkdir -p $CONF_PATH + cp /usr/share/sql_exporter/sql_exporter.yml $CONF_FILE + cp /usr/share/sql_exporter/mssql_example.collector.yml $CONF_PATH + fi + + # configuration files should not be modifiable by sql_exporter user, as this can be a security issue + chown -Rh root:$SQL_EXPORTER_GROUP /etc/sql_exporter/ + chmod 755 /etc/sql_exporter + find /etc/sql_exporter -type f -exec chmod 640 {} ';' + find /etc/sql_exporter -type d -exec chmod 755 {} ';' # If $1=configure and $2 is set, this is an upgrade if [ "$2" != "" ]; then @@ -55,6 +56,6 @@ case "$1" in fi echo " OK" - fi - ;; + fi + ;; esac diff --git a/packaging/rpm/postinstall b/packaging/rpm/postinstall index 0bdfd1f4..a26d1103 100644 --- a/packaging/rpm/postinstall +++ b/packaging/rpm/postinstall @@ -7,30 +7,31 @@ set -e IS_UPGRADE=false case "$1" in - configure) - [ -z "$SQL_EXPORTER_USER" ] && SQL_EXPORTER_USER="sql_exporter" - [ -z "$SQL_EXPORTER_GROUP" ] && SQL_EXPORTER_GROUP="sql_exporter" - if ! getent group "$SQL_EXPORTER_GROUP" > /dev/null 2>&1 ; then - groupadd -r "$SQL_EXPORTER_GROUP" - fi - if ! getent passwd $SQL_EXPORTER_USER > /dev/null 2>&1 ; then - useradd -r -d /usr/share/sql_exporter \ - -g "$SQL_EXPORTER_GROUP" -s /sbin/nologin \ - "$SQL_EXPORTER_USER" - fi +configure) + [ -z "$SQL_EXPORTER_USER" ] && SQL_EXPORTER_USER="sql_exporter" + [ -z "$SQL_EXPORTER_GROUP" ] && SQL_EXPORTER_GROUP="sql_exporter" + if ! getent group "$SQL_EXPORTER_GROUP" >/dev/null 2>&1; then + groupadd -r "$SQL_EXPORTER_GROUP" + fi + if ! getent passwd $SQL_EXPORTER_USER >/dev/null 2>&1; then + useradd -r -d /usr/share/sql_exporter \ + -g "$SQL_EXPORTER_GROUP" -s /sbin/nologin \ + "$SQL_EXPORTER_USER" + fi # copy user config files - if [ ! -f $CONF_FILE ]; then - CONF_PATH=$(dirname "$CONF_FILE") - cp /usr/share/sql_exporter/sql_exporter.yml "$CONF_FILE" - cp /usr/share/sql_exporter/mssql_example.collector.yml "$CONF_PATH" - fi - - # configuration files should not be modifiable by sql_exporter user, as this can be a security issue - chown -Rh root:$SQL_EXPORTER_GROUP /etc/sql_exporter/ - chmod 755 /etc/sql_exporter - find /etc/sql_exporter -type f -exec chmod 640 {} ';' - find /etc/sql_exporter -type d -exec chmod 755 {} ';' + if [ ! -f $CONF_FILE ]; then + CONF_PATH=$(dirname "$CONF_FILE") + mkdir -p $CONF_PATH + cp /usr/share/sql_exporter/sql_exporter.yml "$CONF_FILE" + cp /usr/share/sql_exporter/mssql_example.collector.yml "$CONF_PATH" + fi + + # configuration files should not be modifiable by sql_exporter user, as this can be a security issue + chown -Rh root:$SQL_EXPORTER_GROUP /etc/sql_exporter/ + chmod 755 /etc/sql_exporter + find /etc/sql_exporter -type f -exec chmod 640 {} ';' + find /etc/sql_exporter -type d -exec chmod 755 {} ';' # If $1=configure and $2 is set, this is an upgrade if [ "$2" != "" ]; then @@ -55,6 +56,6 @@ case "$1" in fi echo " OK" - fi - ;; + fi + ;; esac From 3329c37a245cd9da4847f4756a684582f0472f54 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 13 May 2023 09:51:54 +0200 Subject: [PATCH 056/401] deps: bump github.com/prometheus/exporter-toolkit from 0.9.1 to 0.10.0 (#237) Bumps [github.com/prometheus/exporter-toolkit](https://github.com/prometheus/exporter-toolkit) from 0.9.1 to 0.10.0. - [Release notes](https://github.com/prometheus/exporter-toolkit/releases) - [Changelog](https://github.com/prometheus/exporter-toolkit/blob/master/CHANGELOG.md) - [Commits](https://github.com/prometheus/exporter-toolkit/compare/v0.9.1...v0.10.0) --- updated-dependencies: - dependency-name: github.com/prometheus/exporter-toolkit dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index f40e3e93..9e07923d 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/prometheus/client_golang v1.15.0 github.com/prometheus/client_model v0.3.0 github.com/prometheus/common v0.42.0 - github.com/prometheus/exporter-toolkit v0.9.1 + github.com/prometheus/exporter-toolkit v0.10.0 github.com/snowflakedb/gosnowflake v1.6.18 github.com/vertica/vertica-sql-go v1.3.2 github.com/xo/dburl v0.14.2 diff --git a/go.sum b/go.sum index 9d922aa9..bc1a55f7 100644 --- a/go.sum +++ b/go.sum @@ -334,8 +334,8 @@ github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvq github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM= github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc= -github.com/prometheus/exporter-toolkit v0.9.1 h1:cNkC01riqiOS+kh3zdnNwRsbe/Blh0WwK3ij5rPJ9Sw= -github.com/prometheus/exporter-toolkit v0.9.1/go.mod h1:iFlTmFISCix0vyuyBmm0UqOUCTao9+RsAsKJP3YM9ec= +github.com/prometheus/exporter-toolkit v0.10.0 h1:yOAzZTi4M22ZzVxD+fhy1URTuNRj/36uQJJ5S8IPza8= +github.com/prometheus/exporter-toolkit v0.10.0/go.mod h1:+sVFzuvV5JDyw+Ih6p3zFxZNVnKQa3x5qPmDSiPu4ZY= github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI= github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY= From a361fe694cd9f63a252013eda28b7daf74683b5e Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Thu, 18 May 2023 18:39:06 +0200 Subject: [PATCH 057/401] fix: typo and wrong file reference for rpm package (#243) --- packaging/rpm/sql_exporter.service | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packaging/rpm/sql_exporter.service b/packaging/rpm/sql_exporter.service index ce6280f4..5956ac06 100644 --- a/packaging/rpm/sql_exporter.service +++ b/packaging/rpm/sql_exporter.service @@ -5,7 +5,7 @@ Wants=network-online.target After=network-online.target [Service] -EnvironmentFile=/etc/default/prometheus-sql-exporter +EnvironmentFile=/etc/sysconfig/sql_exporter User=sql_exporter Group=sql_exporter Type=simple @@ -13,7 +13,7 @@ Restart=on-failure WorkingDirectory=/usr/share/sql_exporter RuntimeDirectory=sql_exporter RuntimeDirectoryMode=0750 -ExecStart=/usr/bin/sql_exporter -config.file=${CONF_FILE} -web.listen-address=${LISTEN_ADDRESS} -log.json=${LOG_JSON} -log-level=${LOG_LEVEL} -web.enable-reload=${ENABLE_RELOAD} -web.metrics-path=${METRICS_PATH} -web.config.file=${WEB_CONFIG_FILE} +ExecStart=/usr/bin/sql_exporter -config.file=${CONF_FILE} -web.listen-address=${LISTEN_ADDRESS} -log.json=${LOG_JSON} -log.level=${LOG_LEVEL} -web.enable-reload=${ENABLE_RELOAD} -web.metrics-path=${METRICS_PATH} -web.config.file=${WEB_CONFIG_FILE} LimitNOFILE=10000 TimeoutStopSec=20 CapabilityBoundingSet= From cac53d42a8904377b9ff5527fc87b11631445190 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Mon, 22 May 2023 18:38:27 +0200 Subject: [PATCH 058/401] docs: Update README.md on the special characters (#244) docs: Update README.md --- README.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 74e58346..7dd40351 100644 --- a/README.md +++ b/README.md @@ -185,9 +185,7 @@ metrics: To keep things simple and yet allow fully configurable database connections, SQL Exporter uses DSNs (like `sqlserver://prom_user:prom_password@dbserver1.example.com:1433`) to refer to database instances. ---- - -**UPDATE:** Since v0.9.0 `sql_exporter` relies on `github.com/xo/dburl` package for parsing Data Source Names (DSN). +Since v0.9.0 `sql_exporter` relies on `github.com/xo/dburl` package for parsing Data Source Names (DSN). This can potentially affect your connection to certain databases like MySQL, so you might want to adjust your connection string accordingly: @@ -196,9 +194,13 @@ mysql://user:pass@localhost/dbname - for TCP connection mysql:/var/run/mysqld/mysqld.sock - for Unix socket connection ``` +If your DSN contains special characters in any part of your connection string (including passwords), you might need to apply +[URL encoding](https://en.wikipedia.org/wiki/URL_encoding#Reserved_characters) (percent-encoding) to them. +For example, `p@$$w0rd#abc` then becomes `p%40%24%24w0rd%23abc`. + For additional details please refer to [xo/dburl](https://github.com/xo/dburl) documentation. -## TLS and Basic Authentication +### TLS and Basic Authentication SQL Exporter supports TLS and Basic Authentication. This enables better control of the various HTTP endpoints. From 5db140b706b9ec6b4741d1f77a4772a1b87f17c5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 25 May 2023 23:02:34 +0200 Subject: [PATCH 059/401] deps: bump github.com/prometheus/common from 0.42.0 to 0.44.0 (#247) Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.42.0 to 0.44.0. - [Release notes](https://github.com/prometheus/common/releases) - [Commits](https://github.com/prometheus/common/compare/v0.42.0...v0.44.0) --- updated-dependencies: - dependency-name: github.com/prometheus/common dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 15 +++++++-------- go.sum | 30 ++++++++++++++---------------- 2 files changed, 21 insertions(+), 24 deletions(-) diff --git a/go.mod b/go.mod index 9e07923d..261988d0 100644 --- a/go.mod +++ b/go.mod @@ -9,9 +9,9 @@ require ( github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.9 github.com/microsoft/go-mssqldb v0.21.0 - github.com/prometheus/client_golang v1.15.0 - github.com/prometheus/client_model v0.3.0 - github.com/prometheus/common v0.42.0 + github.com/prometheus/client_golang v1.15.1 + github.com/prometheus/client_model v0.4.0 + github.com/prometheus/common v0.44.0 github.com/prometheus/exporter-toolkit v0.10.0 github.com/snowflakedb/gosnowflake v1.6.18 github.com/vertica/vertica-sql-go v1.3.2 @@ -86,15 +86,14 @@ require ( github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/procfs v0.9.0 // indirect - github.com/rogpeppe/go-internal v1.10.0 // indirect github.com/sirupsen/logrus v1.9.0 // indirect golang.org/x/crypto v0.8.0 // indirect golang.org/x/exp v0.0.0-20230321023759-10a507213a29 // indirect - golang.org/x/net v0.9.0 // indirect - golang.org/x/oauth2 v0.7.0 // indirect + golang.org/x/net v0.10.0 // indirect + golang.org/x/oauth2 v0.8.0 // indirect golang.org/x/sync v0.1.0 // indirect - golang.org/x/sys v0.7.0 // indirect - golang.org/x/term v0.7.0 // indirect + golang.org/x/sys v0.8.0 // indirect + golang.org/x/term v0.8.0 // indirect golang.org/x/text v0.9.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect gonum.org/v1/gonum v0.11.0 // indirect diff --git a/go.sum b/go.sum index bc1a55f7..3b9bfdf1 100644 --- a/go.sum +++ b/go.sum @@ -165,7 +165,6 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= @@ -327,13 +326,13 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.15.0 h1:5fCgGYogn0hFdhyhLbw7hEsWxufKtY9klyvdNfFlFhM= -github.com/prometheus/client_golang v1.15.0/go.mod h1:e9yaBhRPU2pPNsZwE+JdQl0KEt1N9XgF6zxWmaC0xOk= +github.com/prometheus/client_golang v1.15.1 h1:8tXpTmJbyH5lydzFPoxSIJ0J46jdh3tylbvM1xCv0LI= +github.com/prometheus/client_golang v1.15.1/go.mod h1:e9yaBhRPU2pPNsZwE+JdQl0KEt1N9XgF6zxWmaC0xOk= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= -github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= -github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM= -github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc= +github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY= +github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= +github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= +github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= github.com/prometheus/exporter-toolkit v0.10.0 h1:yOAzZTi4M22ZzVxD+fhy1URTuNRj/36uQJJ5S8IPza8= github.com/prometheus/exporter-toolkit v0.10.0/go.mod h1:+sVFzuvV5JDyw+Ih6p3zFxZNVnKQa3x5qPmDSiPu4ZY= github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= @@ -342,7 +341,6 @@ github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= -github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= @@ -462,12 +460,12 @@ golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM= -golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= +golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.7.0 h1:qe6s0zUXlPX80/dITx3440hWZ7GwMwgDDyrSGTPJG/g= -golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4= +golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8= +golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -507,14 +505,14 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU= -golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.7.0 h1:BEvjmm5fURWqcfbSKTdpkDXYBrUS1c0m8agp14W48vQ= -golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= +golang.org/x/term v0.8.0 h1:n5xxQn2i3PC0yLAbjTpNT85q/Kgzcr2gIoX9OrJUols= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= From b1de99bf1e248f6ca0cb595c0220b9026ae781da Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Fri, 26 May 2023 01:04:17 +0200 Subject: [PATCH 060/401] chore: update Go to 1.20 as the main version (#249) * chore: promu - update go version to 1.20 * chore: github actions - update go version to 1.20 --- .github/workflows/build.yml | 2 +- .github/workflows/release.yml | 2 +- .promu.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ddf42997..b5488d67 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -16,7 +16,7 @@ jobs: - name: Set up Go 1.x uses: actions/setup-go@v3 with: - go-version: ^1.18 + go-version: ^1.20 id: go - name: Check out code into the Go module directory uses: actions/checkout@v3 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2acfaa88..5809db1d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -16,7 +16,7 @@ jobs: - name: Set up Go 1.x uses: actions/setup-go@v3 with: - go-version: ^1.18 + go-version: ^1.20 - name: Check out code into the Go module directory uses: actions/checkout@v3 diff --git a/.promu.yml b/.promu.yml index a486350b..68834848 100644 --- a/.promu.yml +++ b/.promu.yml @@ -1,6 +1,6 @@ go: cgo: false - version: 1.19 + version: 1.20 repository: path: github.com/burningalchemist/sql_exporter build: From 94b825f108b187a8c7c6e01e5b87368e560b9a81 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Fri, 26 May 2023 01:04:37 +0200 Subject: [PATCH 061/401] Bump up version to 0.11.0 (#250) --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 57121573..d9df1bbc 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.10.1 +0.11.0 From cb34a7aa745dc803e24302edad4d8b194f10c83f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 31 May 2023 08:48:41 +0100 Subject: [PATCH 062/401] deps: bump github.com/microsoft/go-mssqldb from 0.21.0 to 1.0.0 (#253) Bumps [github.com/microsoft/go-mssqldb](https://github.com/microsoft/go-mssqldb) from 0.21.0 to 1.0.0. - [Release notes](https://github.com/microsoft/go-mssqldb/releases) - [Changelog](https://github.com/microsoft/go-mssqldb/blob/main/CHANGELOG.md) - [Commits](https://github.com/microsoft/go-mssqldb/compare/v0.21.0...v1.0.0) --- updated-dependencies: - dependency-name: github.com/microsoft/go-mssqldb dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 261988d0..0990f5d9 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/jackc/pgx/v4 v4.18.1 github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.9 - github.com/microsoft/go-mssqldb v0.21.0 + github.com/microsoft/go-mssqldb v1.0.0 github.com/prometheus/client_golang v1.15.1 github.com/prometheus/client_model v0.4.0 github.com/prometheus/common v0.44.0 diff --git a/go.sum b/go.sum index 3b9bfdf1..d436bad0 100644 --- a/go.sum +++ b/go.sum @@ -301,8 +301,8 @@ github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Ky github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/microsoft/go-mssqldb v0.21.0 h1:p2rpHIL7TlSv1QrbXJUAcbyRKnIT0C9rRkH2E4OjLn8= -github.com/microsoft/go-mssqldb v0.21.0/go.mod h1:+4wZTUnz/SV6nffv+RRRB/ss8jPng5Sho2SmM1l2ts4= +github.com/microsoft/go-mssqldb v1.0.0 h1:k2p2uuG8T5T/7Hp7/e3vMGTnnR0sU4h8d1CcC71iLHU= +github.com/microsoft/go-mssqldb v1.0.0/go.mod h1:+4wZTUnz/SV6nffv+RRRB/ss8jPng5Sho2SmM1l2ts4= github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8= github.com/montanaflynn/stats v0.6.6/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs= From f3ac473b37e490be89100e57f8c9c2ddd41b3553 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Jun 2023 15:41:51 +0100 Subject: [PATCH 063/401] deps: bump github.com/microsoft/go-mssqldb from 1.0.0 to 1.1.0 (#254) --- go.mod | 16 +++++++-------- go.sum | 65 ++++++++++++++++++++++++++-------------------------------- 2 files changed, 37 insertions(+), 44 deletions(-) diff --git a/go.mod b/go.mod index 0990f5d9..101d38dd 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/jackc/pgx/v4 v4.18.1 github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.9 - github.com/microsoft/go-mssqldb v1.0.0 + github.com/microsoft/go-mssqldb v1.1.0 github.com/prometheus/client_golang v1.15.1 github.com/prometheus/client_model v0.4.0 github.com/prometheus/common v0.44.0 @@ -25,11 +25,11 @@ require ( github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.1 // indirect github.com/Azure/azure-pipeline-go v0.2.3 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.4.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.2.1 // indirect - github.com/Azure/azure-sdk-for-go/sdk/internal v1.1.2 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azcore v1.6.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 // indirect github.com/Azure/azure-storage-blob-go v0.15.0 // indirect - github.com/AzureAD/microsoft-authentication-library-for-go v0.8.1 // indirect + github.com/AzureAD/microsoft-authentication-library-for-go v1.0.0 // indirect github.com/apache/arrow/go/arrow v0.0.0-20211112161151-bc219186db40 // indirect github.com/aws/aws-sdk-go-v2 v1.16.16 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.8 // indirect @@ -58,8 +58,8 @@ require ( github.com/go-kit/log v0.2.1 // indirect github.com/go-logfmt/logfmt v0.5.1 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect - github.com/golang-jwt/jwt/v4 v4.4.2 // indirect - github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe // indirect + github.com/golang-jwt/jwt/v4 v4.5.0 // indirect + github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 // indirect github.com/golang-sql/sqlexp v0.1.0 // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/google/flatbuffers v2.0.8+incompatible // indirect @@ -87,7 +87,7 @@ require ( github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/procfs v0.9.0 // indirect github.com/sirupsen/logrus v1.9.0 // indirect - golang.org/x/crypto v0.8.0 // indirect + golang.org/x/crypto v0.9.0 // indirect golang.org/x/exp v0.0.0-20230321023759-10a507213a29 // indirect golang.org/x/net v0.10.0 // indirect golang.org/x/oauth2 v0.8.0 // indirect diff --git a/go.sum b/go.sum index d436bad0..f25fd4fa 100644 --- a/go.sum +++ b/go.sum @@ -8,15 +8,12 @@ github.com/99designs/keyring v1.2.1 h1:tYLp1ULvO7i3fI5vE21ReQuj99QFSs7lGm0xWyJo8 github.com/99designs/keyring v1.2.1/go.mod h1:fc+wB5KTk9wQ9sDx0kFXB3A0MaeGHM9AwRStKOQ5vOA= github.com/Azure/azure-pipeline-go v0.2.3 h1:7U9HBg1JFK3jHl5qmo4CTZKFTVgMwdFHMVtCdfBE21U= github.com/Azure/azure-pipeline-go v0.2.3/go.mod h1:x841ezTBIMG6O3lAcl8ATHnsOPVl2bqk7S3ta6S6u4k= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.0.0/go.mod h1:uGG2W01BaETf0Ozp+QxxKJdMBNRWPdstHG0Fmdwn1/U= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.1.2/go.mod h1:uGG2W01BaETf0Ozp+QxxKJdMBNRWPdstHG0Fmdwn1/U= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.4.0 h1:rTnT/Jrcm+figWlYz4Ixzt0SJVR2cMC8lvZcimipiEY= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.4.0/go.mod h1:ON4tFdPTwRcgWEaVDrN3584Ef+b7GgSJaXxe5fW9t4M= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.2.1 h1:T8quHYlUGyb/oqtSTwqlCr1ilJHrDv+ZtpSfo+hm1BU= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.2.1/go.mod h1:gLa1CL2RNE4s7M3yopJ/p0iq5DdY6Yv5ZUt9MTRZOQM= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0/go.mod h1:eWRD7oawr1Mu1sLCawqVc0CUiF43ia3qQMxLscsKQ9w= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.1.2 h1:+5VZ72z0Qan5Bog5C+ZkgSqUbeVUd9wgtHOrIKuc5b8= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.1.2/go.mod h1:eWRD7oawr1Mu1sLCawqVc0CUiF43ia3qQMxLscsKQ9w= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.6.0 h1:8kDqDngH+DmVBiCtIjCFTGa7MBnsIOkF9IccInFEbjk= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.6.0/go.mod h1:bjGvMhVMb+EEm3VRNQawDMUyMMjo+S5ewNjflkep/0Q= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.0 h1:vcYCAze6p19qBW7MhZybIsqD8sMV8js0NyQM8JDnVtg= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.0/go.mod h1:OQeznEEkTZ9OrhHJoDD8ZDq51FHgXjqtP9z6bEwBq9U= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 h1:sXr+ck84g/ZlZUOZiNELInmMgOsuGwdjjVkEIde0OtY= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0/go.mod h1:okt5dMMTOFjX/aovMlrjvvXoPMBVSPzk9185BT0+eZM= github.com/Azure/azure-storage-blob-go v0.15.0 h1:rXtgp8tN1p29GvpGgfJetavIG0V7OgcSXPpwp3tx6qk= github.com/Azure/azure-storage-blob-go v0.15.0/go.mod h1:vbjsVbX0dlxnRc4FFMPsS9BsJWPcne7GB7onqlPvz58= github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs= @@ -30,8 +27,8 @@ github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+Z github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo= github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= -github.com/AzureAD/microsoft-authentication-library-for-go v0.8.1 h1:oPdPEZFSbl7oSPEAIPMPBMUmiL+mqgzBJwM/9qYcwNg= -github.com/AzureAD/microsoft-authentication-library-for-go v0.8.1/go.mod h1:4qFor3D/HDsvBME35Xy9rwW9DecL+M2sNw1ybjPtwA0= +github.com/AzureAD/microsoft-authentication-library-for-go v1.0.0 h1:OBhqkivkhkMqLPymWEppkm7vgPQY2XsHoEkaMQ0AdZY= +github.com/AzureAD/microsoft-authentication-library-for-go v1.0.0/go.mod h1:kgDmCTgBzIEPFElEF+FK0SdjAor06dRq2Go927dnQ6o= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/ClickHouse/clickhouse-go v1.5.4 h1:cKjXeYLNWVJIx2J1K6H2CqyRmfwVJVY1OV1coaaFcI0= @@ -152,10 +149,11 @@ github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6 github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofrs/uuid v4.0.0+incompatible h1:1SD/1F5pU8p29ybwgQSwpQk+mwdRrXCYuPhW6m+TnJw= github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= -github.com/golang-jwt/jwt/v4 v4.4.2 h1:rcc4lwaZgFMCZ5jxF9ABolDcIHdBytAFgqFPbSJQAYs= -github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= -github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe h1:lXe2qZdvpiX5WZkZR4hgp4KJVfY3nMkvmwbVkpv1rVY= -github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= +github.com/golang-jwt/jwt/v4 v4.4.3/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= +github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA= +github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A= github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= @@ -191,7 +189,6 @@ github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= @@ -202,6 +199,7 @@ github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFb github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c h1:6rhixN/i8ZofjG1Y75iExal34USq5p+wiN1tpie8IrU= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c/go.mod h1:NMPJylDgVpX0MLRlPy15sqSwOFv/U1GZ2m21JhFfek0= github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/jackc/chunkreader v1.0.0/go.mod h1:RT6O25fNZIuasFJRyZ4R/Y2BbhasbmZXF9QQ7T3kePo= github.com/jackc/chunkreader/v2 v2.0.0/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk= github.com/jackc/chunkreader/v2 v2.0.1 h1:i+RDz65UE+mmpjTfyz0MoVTnzeYxroil2G82ki7MGG8= @@ -252,9 +250,9 @@ github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dv github.com/jackc/puddle v1.3.0/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jcmturner/aescts/v2 v2.0.0/go.mod h1:AiaICIRyfYg35RUkr8yESTqvSy7csK90qZ5xfvvsoNs= github.com/jcmturner/dnsutils/v2 v2.0.0/go.mod h1:b0TnjGOvI/n42bZa+hmXL+kFJZsFT7G4t3HTlQ184QM= -github.com/jcmturner/gofork v1.0.0/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/UM3ncEo0o= +github.com/jcmturner/gofork v1.7.6/go.mod h1:1622LH6i/EZqLloHfE7IeZ0uEJwMSUyQ/nDd82IeqRo= github.com/jcmturner/goidentity/v6 v6.0.1/go.mod h1:X1YW3bgtvwAXju7V3LCIMpY0Gbxyjn/mY9zx4tFonSg= -github.com/jcmturner/gokrb5/v8 v8.4.2/go.mod h1:sb+Xq/fTY5yktf/VxLsE3wlfPqQjp0aWNYyvBVK62bc= +github.com/jcmturner/gokrb5/v8 v8.4.4/go.mod h1:1btQEpgT6k+unzCwX1KdWMEwPPkkgBtP+F6aCACiMrs= github.com/jcmturner/rpc/v2 v2.0.3/go.mod h1:VUJYCIDm3PVOEHw8sgt091/20OJjskO/YJki3ELg/Hc= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= @@ -301,10 +299,10 @@ github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Ky github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/microsoft/go-mssqldb v1.0.0 h1:k2p2uuG8T5T/7Hp7/e3vMGTnnR0sU4h8d1CcC71iLHU= -github.com/microsoft/go-mssqldb v1.0.0/go.mod h1:+4wZTUnz/SV6nffv+RRRB/ss8jPng5Sho2SmM1l2ts4= +github.com/microsoft/go-mssqldb v1.1.0 h1:jsV+tpvcPTbNNKW0o3kiCD69kOHICsfjZ2VcVu2lKYc= +github.com/microsoft/go-mssqldb v1.1.0/go.mod h1:LzkFdl4z2Ck+Hi+ycGOTbL56VEfgoyA2DvYejrNGbRk= github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8= -github.com/montanaflynn/stats v0.6.6/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= +github.com/montanaflynn/stats v0.7.0/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs= github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ibNBTZrns= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= @@ -317,7 +315,6 @@ github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi github.com/pierrec/lz4/v4 v4.1.8/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pierrec/lz4/v4 v4.1.16 h1:kQPfno+wyx6C5572ABwV+Uo3pDFzQ7yhyGchSyRda0c= github.com/pierrec/lz4/v4 v4.1.16/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= -github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4/go.mod h1:N6UoU20jOqggOuDwUaBQpluzLNDqif3kq9z2wpdYEfQ= github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU= github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -367,7 +364,6 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= @@ -400,16 +396,14 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201112155050-0c6587e931a9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201203163018-be400aefbc4c/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20220511200225-c6db032c6c88/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= -golang.org/x/crypto v0.8.0 h1:pd9TJtTueMTVQXzk8E2XESSMQDj/U7OUu0PqJqPXQjQ= -golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= +golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= +golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g= +golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -438,6 +432,7 @@ 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/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= 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= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -450,16 +445,15 @@ golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20191112182307-2180aed22343/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210610132358-84b48f89b13b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -488,9 +482,7 @@ golang.org/x/sys v0.0.0-20191112214154-59a1497f0cea/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210304124612-50617c2ba197/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -499,18 +491,18 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220224120231-95c6836cb0e7/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/term v0.8.0 h1:n5xxQn2i3PC0yLAbjTpNT85q/Kgzcr2gIoX9OrJUols= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -521,6 +513,7 @@ golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -541,6 +534,7 @@ golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapK golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -604,7 +598,6 @@ gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= From 6293d4bc7ffe9531c06779c49d9003b8c92082aa Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Thu, 1 Jun 2023 21:42:21 +0100 Subject: [PATCH 064/401] Bump up version to 0.11.1 (#255) --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index d9df1bbc..af88ba82 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.11.0 +0.11.1 From e2a6b4a673701e52b2236ba1487d2ce5618b8f15 Mon Sep 17 00:00:00 2001 From: Matt Black Date: Thu, 8 Jun 2023 19:17:02 +1000 Subject: [PATCH 065/401] docs: include scrape_timeout in the example sql_exporter.yml (#258) --- examples/sql_exporter.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/examples/sql_exporter.yml b/examples/sql_exporter.yml index 9fc34f99..e7d6664f 100644 --- a/examples/sql_exporter.yml +++ b/examples/sql_exporter.yml @@ -1,5 +1,7 @@ # Global defaults. global: + # If scrape_timeout <= 0, no timeout is set unless Prometheus provides one. The default is 10s. + scrape_timeout: 10s # Subtracted from Prometheus' scrape_timeout to give us some headroom and prevent Prometheus from timing out first. scrape_timeout_offset: 500ms # Minimum interval between collector runs: by default (0s) collectors are executed on every scrape. From aa7f8fa312ee3e0bf62bc37fec163ba232e522dc Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Thu, 8 Jun 2023 18:07:02 +0200 Subject: [PATCH 066/401] docs: update Windows service snippet (#260) --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 7dd40351..785993aa 100644 --- a/README.md +++ b/README.md @@ -75,14 +75,14 @@ Feel free to revisit and add more drivers as required. There's also the `custom` ## Run as a Windows service If you run SQL Exporter from Windows, it might come in handy to register it as a service to avoid interactive sessions. -It is **important** to define `-config.file` parameter to load the configuration file. The other settings can be added -as well. The registration itself is performed with Powershell or CMD (make sure you run them as Administrator): +It is **important** to define `--config.file` parameter to load the configuration file. The other settings can be added +as well. The registration itself is performed with Powershell or CMD (make sure you run it as Administrator): Powershell: ```powershell New-Service -name "SqlExporterSvc" ` --BinaryPathName "%SQL_EXPORTER_PATH%\sql_exporter.exe -config.file %SQL_EXPORTER_PATH%\sql_exporter.yml" ` +-BinaryPathName "%SQL_EXPORTER_PATH%\sql_exporter.exe --config.file %SQL_EXPORTER_PATH%\sql_exporter.yml" ` -StartupType Automatic ` -DisplayName "Prometheus SQL Exporter" ``` @@ -90,7 +90,7 @@ New-Service -name "SqlExporterSvc" ` CMD: ```shell -sc.exe create SqlExporterSvc binPath= "%SQL_EXPORTER_PATH%\sql_exporter.exe -config.file %SQL_EXPORTER_PATH%\sql_exporter.yml" start= auto +sc.exe create SqlExporterSvc binPath= "%SQL_EXPORTER_PATH%\sql_exporter.exe --config.file %SQL_EXPORTER_PATH%\sql_exporter.yml" start= auto ``` `%SQL_EXPORTER_PATH%` is a path to the SQL Exporter binary executable. This document assumes that configuration files From 3fbf4d97f79913c66fbc2fa4878d6fa39fb2e72c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 26 Jul 2023 10:01:33 +0200 Subject: [PATCH 067/401] deps: bump github.com/snowflakedb/gosnowflake from 1.6.18 to 1.6.23 (#276) Bumps [github.com/snowflakedb/gosnowflake](https://github.com/snowflakedb/gosnowflake) from 1.6.18 to 1.6.23. - [Release notes](https://github.com/snowflakedb/gosnowflake/releases) - [Changelog](https://github.com/snowflakedb/gosnowflake/blob/master/release.go) - [Commits](https://github.com/snowflakedb/gosnowflake/compare/v1.6.18...v1.6.23) --- updated-dependencies: - dependency-name: github.com/snowflakedb/gosnowflake dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 57 ++++++----- go.sum | 310 +++++++++++++++------------------------------------------ 2 files changed, 113 insertions(+), 254 deletions(-) diff --git a/go.mod b/go.mod index 101d38dd..85e08e0b 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,7 @@ require ( github.com/prometheus/client_model v0.4.0 github.com/prometheus/common v0.44.0 github.com/prometheus/exporter-toolkit v0.10.0 - github.com/snowflakedb/gosnowflake v1.6.18 + github.com/snowflakedb/gosnowflake v1.6.23 github.com/vertica/vertica-sql-go v1.3.2 github.com/xo/dburl v0.14.2 google.golang.org/protobuf v1.30.0 @@ -23,27 +23,29 @@ require ( require ( github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect - github.com/99designs/keyring v1.2.1 // indirect - github.com/Azure/azure-pipeline-go v0.2.3 // indirect + github.com/99designs/keyring v1.2.2 // indirect github.com/Azure/azure-sdk-for-go/sdk/azcore v1.6.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 // indirect - github.com/Azure/azure-storage-blob-go v0.15.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0 // indirect github.com/AzureAD/microsoft-authentication-library-for-go v1.0.0 // indirect - github.com/apache/arrow/go/arrow v0.0.0-20211112161151-bc219186db40 // indirect - github.com/aws/aws-sdk-go-v2 v1.16.16 // indirect - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.8 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.12.20 // indirect - github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.33 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.23 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.17 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.14 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.9 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.18 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.17 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.17 // indirect - github.com/aws/aws-sdk-go-v2/service/s3 v1.27.11 // indirect - github.com/aws/smithy-go v1.13.3 // indirect + github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c // indirect + github.com/andybalholm/brotli v1.0.4 // indirect + github.com/apache/arrow/go/v12 v12.0.1 // indirect + github.com/apache/thrift v0.16.0 // indirect + github.com/aws/aws-sdk-go-v2 v1.17.7 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.13.18 // indirect + github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.31 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.25 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.25 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 // indirect + github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 // indirect + github.com/aws/smithy-go v1.13.5 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 // indirect @@ -54,15 +56,17 @@ require ( github.com/elastic/go-sysinfo v1.8.1 // indirect github.com/elastic/go-windows v1.0.0 // indirect github.com/form3tech-oss/jwt-go v3.2.5+incompatible // indirect - github.com/gabriel-vasile/mimetype v1.4.1 // indirect + github.com/gabriel-vasile/mimetype v1.4.2 // indirect github.com/go-kit/log v0.2.1 // indirect github.com/go-logfmt/logfmt v0.5.1 // indirect + github.com/goccy/go-json v0.10.0 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/golang-jwt/jwt/v4 v4.5.0 // indirect github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 // indirect github.com/golang-sql/sqlexp v0.1.0 // indirect github.com/golang/protobuf v1.5.3 // indirect - github.com/google/flatbuffers v2.0.8+incompatible // indirect + github.com/golang/snappy v0.0.4 // indirect + github.com/google/flatbuffers v23.1.21+incompatible // indirect github.com/google/uuid v1.3.0 // indirect github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect github.com/jackc/chunkreader/v2 v2.0.1 // indirect @@ -75,28 +79,33 @@ require ( github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 // indirect github.com/jpillora/backoff v1.0.0 // indirect - github.com/klauspost/compress v1.15.11 // indirect + github.com/klauspost/asmfmt v1.3.2 // indirect + github.com/klauspost/compress v1.15.15 // indirect + github.com/klauspost/cpuid/v2 v2.2.3 // indirect github.com/kylelemons/godebug v1.1.0 // indirect - github.com/mattn/go-ieproxy v0.0.1 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect + github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8 // indirect + github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3 // indirect github.com/mtibben/percent v0.2.1 // indirect github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect - github.com/pierrec/lz4/v4 v4.1.16 // indirect + github.com/pierrec/lz4/v4 v4.1.17 // indirect github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/procfs v0.9.0 // indirect github.com/sirupsen/logrus v1.9.0 // indirect + github.com/zeebo/xxh3 v1.0.2 // indirect golang.org/x/crypto v0.9.0 // indirect golang.org/x/exp v0.0.0-20230321023759-10a507213a29 // indirect + golang.org/x/mod v0.8.0 // indirect golang.org/x/net v0.10.0 // indirect golang.org/x/oauth2 v0.8.0 // indirect golang.org/x/sync v0.1.0 // indirect golang.org/x/sys v0.8.0 // indirect golang.org/x/term v0.8.0 // indirect golang.org/x/text v0.9.0 // indirect + golang.org/x/tools v0.6.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect - gonum.org/v1/gonum v0.11.0 // indirect google.golang.org/appengine v1.6.7 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect howett.net/plist v0.0.0-20181124034731-591f970eefbb // indirect diff --git a/go.sum b/go.sum index f25fd4fa..a303a916 100644 --- a/go.sum +++ b/go.sum @@ -1,96 +1,76 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8= github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 h1:/vQbFIOMbk2FiG/kXiLl8BRyzTWDw7gX/Hz7Dd5eDMs= github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4/go.mod h1:hN7oaIRCjzsZ2dE+yG5k+rsdt3qcwykqK6HVGcKwsw4= -github.com/99designs/keyring v1.2.1 h1:tYLp1ULvO7i3fI5vE21ReQuj99QFSs7lGm0xWyJo87o= -github.com/99designs/keyring v1.2.1/go.mod h1:fc+wB5KTk9wQ9sDx0kFXB3A0MaeGHM9AwRStKOQ5vOA= -github.com/Azure/azure-pipeline-go v0.2.3 h1:7U9HBg1JFK3jHl5qmo4CTZKFTVgMwdFHMVtCdfBE21U= -github.com/Azure/azure-pipeline-go v0.2.3/go.mod h1:x841ezTBIMG6O3lAcl8ATHnsOPVl2bqk7S3ta6S6u4k= +github.com/99designs/keyring v1.2.2 h1:pZd3neh/EmUzWONb35LxQfvuY7kiSXAq3HQd97+XBn0= +github.com/99designs/keyring v1.2.2/go.mod h1:wes/FrByc8j7lFOAGLGSNEg8f/PaI3cgTBqhFkHUrPk= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.6.0 h1:8kDqDngH+DmVBiCtIjCFTGa7MBnsIOkF9IccInFEbjk= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.6.0/go.mod h1:bjGvMhVMb+EEm3VRNQawDMUyMMjo+S5ewNjflkep/0Q= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.0 h1:vcYCAze6p19qBW7MhZybIsqD8sMV8js0NyQM8JDnVtg= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.0/go.mod h1:OQeznEEkTZ9OrhHJoDD8ZDq51FHgXjqtP9z6bEwBq9U= github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 h1:sXr+ck84g/ZlZUOZiNELInmMgOsuGwdjjVkEIde0OtY= github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0/go.mod h1:okt5dMMTOFjX/aovMlrjvvXoPMBVSPzk9185BT0+eZM= -github.com/Azure/azure-storage-blob-go v0.15.0 h1:rXtgp8tN1p29GvpGgfJetavIG0V7OgcSXPpwp3tx6qk= -github.com/Azure/azure-storage-blob-go v0.15.0/go.mod h1:vbjsVbX0dlxnRc4FFMPsS9BsJWPcne7GB7onqlPvz58= -github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs= -github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= -github.com/Azure/go-autorest/autorest/adal v0.9.13 h1:Mp5hbtOePIzM8pJVRa3YLrWWmZtoxRXqUEzCfJt3+/Q= -github.com/Azure/go-autorest/autorest/adal v0.9.13/go.mod h1:W/MM4U6nLxnIskrw4UwWzlHfGjwUS50aOsc/I3yuU8M= -github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw= -github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= -github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= -github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+ZtXWSmf4Tg= -github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= -github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo= -github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= +github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0 h1:u/LLAOFgsMv7HmNL4Qufg58y+qElGOt5qv0z1mURkRY= +github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0/go.mod h1:2e8rMJtl2+2j+HXbTBwnyGpm5Nou7KhvSfxOq8JpTag= github.com/AzureAD/microsoft-authentication-library-for-go v1.0.0 h1:OBhqkivkhkMqLPymWEppkm7vgPQY2XsHoEkaMQ0AdZY= github.com/AzureAD/microsoft-authentication-library-for-go v1.0.0/go.mod h1:kgDmCTgBzIEPFElEF+FK0SdjAor06dRq2Go927dnQ6o= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/ClickHouse/clickhouse-go v1.5.4 h1:cKjXeYLNWVJIx2J1K6H2CqyRmfwVJVY1OV1coaaFcI0= github.com/ClickHouse/clickhouse-go v1.5.4/go.mod h1:EaI/sW7Azgz9UATzd5ZdZHRUhHgv5+JMS9NSr2smCJI= +github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c h1:RGWPOewvKIROun94nF7v2cua9qP+thov/7M50KEoeSU= +github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= github.com/Masterminds/semver/v3 v3.1.1 h1:hLg3sBzpNErnxhQtUy/mmLR2I9foDujNK030IGemrRc= github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= -github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= -github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -github.com/apache/arrow/go/arrow v0.0.0-20211112161151-bc219186db40 h1:q4dksr6ICHXqG5hm0ZW5IHyeEJXoIJSOZeBLmWPNeIQ= -github.com/apache/arrow/go/arrow v0.0.0-20211112161151-bc219186db40/go.mod h1:Q7yQnSMnLvcXlZ8RV+jwz/6y1rQTqbX6C82SndT52Zs= -github.com/aws/aws-sdk-go-v2 v1.16.16 h1:M1fj4FE2lB4NzRb9Y0xdWsn2P0+2UHVxwKyOa4YJNjk= -github.com/aws/aws-sdk-go-v2 v1.16.16/go.mod h1:SwiyXi/1zTUZ6KIAmLK5V5ll8SiURNUYOqTerZPaF9k= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.8 h1:tcFliCWne+zOuUfKNRn8JdFBuWPDuISDH08wD2ULkhk= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.8/go.mod h1:JTnlBSot91steJeti4ryyu/tLd4Sk84O5W22L7O2EQU= -github.com/aws/aws-sdk-go-v2/config v1.17.7 h1:odVM52tFHhpqZBKNjVW5h+Zt1tKHbhdTQRb+0WHrNtw= -github.com/aws/aws-sdk-go-v2/config v1.17.7/go.mod h1:dN2gja/QXxFF15hQreyrqYhLBaQo1d9ZKe/v/uplQoI= -github.com/aws/aws-sdk-go-v2/credentials v1.12.20 h1:9+ZhlDY7N9dPnUmf7CDfW9In4sW5Ff3bh7oy4DzS1IE= -github.com/aws/aws-sdk-go-v2/credentials v1.12.20/go.mod h1:UKY5HyIux08bbNA7Blv4PcXQ8cTkGh7ghHMFklaviR4= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.17 h1:r08j4sbZu/RVi+BNxkBJwPMUYY3P8mgSDuKkZ/ZN1lE= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.17/go.mod h1:yIkQcCDYNsZfXpd5UX2Cy+sWA1jPgIhGTw9cOBzfVnQ= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.33 h1:fAoVmNGhir6BR+RU0/EI+6+D7abM+MCwWf8v4ip5jNI= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.33/go.mod h1:84XgODVR8uRhmOnUkKGUZKqIMxmjmLOR8Uyp7G/TPwc= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.23 h1:s4g/wnzMf+qepSNgTvaQQHNxyMLKSawNhKCPNy++2xY= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.23/go.mod h1:2DFxAQ9pfIRy0imBCJv+vZ2X6RKxves6fbnEuSry6b4= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.17 h1:/K482T5A3623WJgWT8w1yRAFK4RzGzEl7y39yhtn9eA= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.17/go.mod h1:pRwaTYCJemADaqCbUAxltMoHKata7hmB5PjEXeu0kfg= -github.com/aws/aws-sdk-go-v2/internal/ini v1.3.24 h1:wj5Rwc05hvUSvKuOF29IYb9QrCLjU+rHAy/x/o0DK2c= -github.com/aws/aws-sdk-go-v2/internal/ini v1.3.24/go.mod h1:jULHjqqjDlbyTa7pfM7WICATnOv+iOhjletM3N0Xbu8= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.14 h1:ZSIPAkAsCCjYrhqfw2+lNzWDzxzHXEckFkTePL5RSWQ= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.14/go.mod h1:AyGgqiKv9ECM6IZeNQtdT8NnMvUb3/2wokeq2Fgryto= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.9 h1:Lh1AShsuIJTwMkoxVCAYPJgNG5H+eN6SmoUn8nOZ5wE= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.9/go.mod h1:a9j48l6yL5XINLHLcOKInjdvknN+vWqPBxqeIDw7ktw= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.18 h1:BBYoNQt2kUZUUK4bIPsKrCcjVPUMNsgQpNAwhznK/zo= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.18/go.mod h1:NS55eQ4YixUJPTC+INxi2/jCqe1y2Uw3rnh9wEOVJxY= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.17 h1:Jrd/oMh0PKQc6+BowB+pLEwLIgaQF29eYbe7E1Av9Ug= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.17/go.mod h1:4nYOrY41Lrbk2170/BGkcJKBhws9Pfn8MG3aGqjjeFI= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.17 h1:HfVVR1vItaG6le+Bpw6P4midjBDMKnjMyZnw9MXYUcE= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.17/go.mod h1:YqMdV+gEKCQ59NrB7rzrJdALeBIsYiVi8Inj3+KcqHI= -github.com/aws/aws-sdk-go-v2/service/s3 v1.27.11 h1:3/gm/JTX9bX8CpzTgIlrtYpB3EVBDxyg/GY/QdcIEZw= -github.com/aws/aws-sdk-go-v2/service/s3 v1.27.11/go.mod h1:fmgDANqTUCxciViKl9hb/zD5LFbvPINFRgWhDbR+vZo= -github.com/aws/aws-sdk-go-v2/service/sso v1.11.23 h1:pwvCchFUEnlceKIgPUouBJwK81aCkQ8UDMORfeFtW10= -github.com/aws/aws-sdk-go-v2/service/sso v1.11.23/go.mod h1:/w0eg9IhFGjGyyncHIQrXtU8wvNsTJOP0R6PPj0wf80= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.13.5 h1:GUnZ62TevLqIoDyHeiWj2P7EqaosgakBKVvWriIdLQY= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.13.5/go.mod h1:csZuQY65DAdFBt1oIjO5hhBR49kQqop4+lcuCjf2arA= -github.com/aws/aws-sdk-go-v2/service/sts v1.16.19 h1:9pPi0PsFNAGILFfPCk8Y0iyEBGc6lu6OQ97U7hmdesg= -github.com/aws/aws-sdk-go-v2/service/sts v1.16.19/go.mod h1:h4J3oPZQbxLhzGnk+j9dfYHi5qIOVJ5kczZd658/ydM= -github.com/aws/smithy-go v1.13.3 h1:l7LYxGuzK6/K+NzJ2mC+VvLUbae0sL3bXU//04MkmnA= -github.com/aws/smithy-go v1.13.3/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= +github.com/andybalholm/brotli v1.0.4 h1:V7DdXeJtZscaqfNuAdSRuRFzuiKlHSC/Zh3zl9qY3JY= +github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= +github.com/apache/arrow/go/v12 v12.0.1 h1:JsR2+hzYYjgSUkBSaahpqCetqZMr76djX80fF/DiJbg= +github.com/apache/arrow/go/v12 v12.0.1/go.mod h1:weuTY7JvTG/HDPtMQxEUp7pU73vkLWMLpY67QwZ/WWw= +github.com/apache/thrift v0.16.0 h1:qEy6UW60iVOlUy+b9ZR0d5WzUWYGOo4HfopoyBaNmoY= +github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= +github.com/aws/aws-sdk-go-v2 v1.17.7 h1:CLSjnhJSTSogvqUGhIC6LqFKATMRexcxLZ0i/Nzk9Eg= +github.com/aws/aws-sdk-go-v2 v1.17.7/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10/go.mod h1:VeTZetY5KRJLuD/7fkQXMU6Mw7H5m/KP2J5Iy9osMno= +github.com/aws/aws-sdk-go-v2/config v1.18.19 h1:AqFK6zFNtq4i1EYu+eC7lcKHYnZagMn6SW171la0bGw= +github.com/aws/aws-sdk-go-v2/config v1.18.19/go.mod h1:XvTmGMY8d52ougvakOv1RpiTLPz9dlG/OQHsKU/cMmY= +github.com/aws/aws-sdk-go-v2/credentials v1.13.18 h1:EQMdtHwz0ILTW1hoP+EwuWhwCG1hD6l3+RWFQABET4c= +github.com/aws/aws-sdk-go-v2/credentials v1.13.18/go.mod h1:vnwlwjIe+3XJPBYKu1et30ZPABG3VaXJYr8ryohpIyM= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.1 h1:gt57MN3liKiyGopcqgNzJb2+d9MJaKT/q1OksHNXVE4= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.1/go.mod h1:lfUx8puBRdM5lVVMQlwt2v+ofiG/X6Ms+dy0UkG/kXw= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 h1:E3Y+OfzOK1+rmRo/K2G0ml8Vs+Xqk0kOnf4nS0kUtBc= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59/go.mod h1:1M4PLSBUVfBI0aP+C9XI7SM6kZPCGYyI6izWz0TGprE= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.31 h1:sJLYcS+eZn5EeNINGHSCRAwUJMFVqklwkH36Vbyai7M= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.31/go.mod h1:QT0BqUvX1Bh2ABdTGnjqEjvjzrCfIniM9Sc8zn9Yndo= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.25 h1:1mnRASEKnkqsntcxHaysxwgVoUUp5dkiB+l3llKnqyg= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.25/go.mod h1:zBHOPwhBc3FlQjQJE/D3IfPWiWaQmT06Vq9aNukDo0k= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.32 h1:p5luUImdIqywn6JpQsW3tq5GNOxKmOnEpybzPx+d1lk= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.32/go.mod h1:XGhIBZDEgfqmFIugclZ6FU7v75nHhBDtzuB4xB/tEi4= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 h1:DWYZIsyqagnWL00f8M/SOr9fN063OEQWn9LLTbdYXsk= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23/go.mod h1:uIiFgURZbACBEQJfqTZPb/jxO7R+9LeoHUFudtIdeQI= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 h1:y2+VQzC6Zh2ojtV2LoC0MNwHWc6qXv/j2vrQtlftkdA= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11/go.mod h1:iV4q2hsqtNECrfmlXyord9u4zyuFEJX9eLgLpSPzWA8= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26 h1:CeuSeq/8FnYpPtnuIeLQEEvDv9zUjneuYi8EghMBdwQ= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26/go.mod h1:2UqAAwMUXKeRkAHIlDJqvMVgOWkUi/AUXPk/YIe+Dg4= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.25 h1:5LHn8JQ0qvjD9L9JhMtylnkcw7j05GDZqM9Oin6hpr0= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.25/go.mod h1:/95IA+0lMnzW6XzqYJRpjjsAbKEORVeO0anQqjd2CNU= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 h1:e2ooMhpYGhDnBfSvIyusvAwX7KexuZaHbQY2Dyei7VU= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0/go.mod h1:bh2E0CXKZsQN+faiKVqC40vfNMAWheoULBCnEgO9K+8= +github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 h1:B1G2pSPvbAtQjilPq+Y7jLIzCOwKzuVEl+aBBaNG0AQ= +github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0/go.mod h1:ncltU6n4Nof5uJttDtcNQ537uNuwYqsZZQcpkd2/GUQ= +github.com/aws/aws-sdk-go-v2/service/sso v1.12.6 h1:5V7DWLBd7wTELVz5bPpwzYy/sikk0gsgZfj40X+l5OI= +github.com/aws/aws-sdk-go-v2/service/sso v1.12.6/go.mod h1:Y1VOmit/Fn6Tz1uFAeCO6Q7M2fmfXSCLeL5INVYsLuY= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.6 h1:B8cauxOH1W1v7rd8RdI/MWnoR4Ze0wIHWrb90qczxj4= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.6/go.mod h1:Lh/bc9XUf8CfOY6Jp5aIkQtN+j1mc+nExc+KXj9jx2s= +github.com/aws/aws-sdk-go-v2/service/sts v1.18.7 h1:bWNgNdRko2x6gqa0blfATqAZKZokPIeM1vfmQt2pnvM= +github.com/aws/aws-sdk-go-v2/service/sts v1.18.7/go.mod h1:JuTnSoeePXmMVe9G8NcjjwgOKEfZ4cOjMuT2IBT/2eI= +github.com/aws/smithy-go v1.13.5 h1:hgz0X/DX0dGqTYpGALqXJoRKRj5oQ7150i5FdTePzO8= +github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bkaradzic/go-lz4 v1.0.0 h1:RXc4wYsyz985CkXXeX04y4VnZFGG8Rd43pRaHsOXAKk= github.com/bkaradzic/go-lz4 v1.0.0/go.mod h1:0YdlkowM3VswSROI7qDxhRvJ3sLhlFrRRwjwegp5jy4= -github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 h1:F1EaeKL/ta07PY/k9Os/UFtwERei2/XzGemhpGnBKNg= github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58/go.mod h1:EOBUe0h4xcZ5GoxqC5SDxFQ8gwyZPKQoEzownBlhI80= -github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cockroachdb/apd v1.1.0 h1:3LFP3629v+1aKXU5Q37mxmRxX/pIu1nijXydLShEq5I= github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= @@ -113,30 +93,13 @@ github.com/elastic/go-sysinfo v1.8.1 h1:4Yhj+HdV6WjbCRgGdZpPJ8lZQlXZLKDAeIkmQ/VR github.com/elastic/go-sysinfo v1.8.1/go.mod h1:JfllUnzoQV/JRYymbH3dO1yggI3mV2oTKSXsDHM+uIM= github.com/elastic/go-windows v1.0.0 h1:qLURgZFkkrYyTTkvYpsZIgf83AUsdIHfvlJaqaZ7aSY= github.com/elastic/go-windows v1.0.0/go.mod h1:TsU0Nrp7/y3+VwE82FoZF8gC/XFg/Elz6CcloAxnPgU= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= -github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= -github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/form3tech-oss/jwt-go v3.2.5+incompatible h1:/l4kBbb4/vGSsdtB5nUe8L7B9mImVMaBPw9L/0TBHU8= github.com/form3tech-oss/jwt-go v3.2.5+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= -github.com/gabriel-vasile/mimetype v1.4.1 h1:TRWk7se+TOjCYgRth7+1/OYLNiRNIotknkFtf/dnN7Q= -github.com/gabriel-vasile/mimetype v1.4.1/go.mod h1:05Vi0w3Y9c/lNvJOdmIwvrrAhX3rYhfQQCaf9VJcv7M= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/go-fonts/dejavu v0.1.0/go.mod h1:4Wt4I4OU2Nq9asgDCteaAaWZOV24E+0/Pwo0gppep4g= -github.com/go-fonts/latin-modern v0.2.0/go.mod h1:rQVLdDMK+mK1xscDwsqM5J8U2jrRa3T0ecnM9pNujks= -github.com/go-fonts/liberation v0.1.1/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY= -github.com/go-fonts/stix v0.1.0/go.mod h1:w/c1f0ldAUlJmLBvlbkvVXLAD+tAMqobIIQpmnUIzUY= -github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= +github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU= +github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= -github.com/go-latex/latex v0.0.0-20210118124228-b3d85cf34e07/go.mod h1:CO1AlKB2CSIqUrmQPqA0gdRIlnLEY0gK5JGjh37zN5U= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA= github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= @@ -144,6 +107,8 @@ github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG github.com/go-sql-driver/mysql v1.7.1 h1:lUIinVbN1DY0xBg0eMOzmmtGoHwWBbvnWubQUrtU8EI= github.com/go-sql-driver/mysql v1.7.1/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/goccy/go-json v0.10.0 h1:mXKd9Qw4NuzShiRlOXKews24ufknHO7gx30lsDyokKA= +github.com/goccy/go-json v0.10.0/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+Hoeu/iUR3ruzNvZ+yQfO03a0= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= @@ -156,46 +121,24 @@ github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0kt github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A= github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI= -github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/flatbuffers v2.0.0+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= -github.com/google/flatbuffers v2.0.8+incompatible h1:ivUb1cGomAB101ZM1T0nOiWz9pSrTMoa9+EiY7igmkM= -github.com/google/flatbuffers v2.0.8+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= +github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/flatbuffers v23.1.21+incompatible h1:bUqzx/MXCDxuS0hRJL2EfjyZL3uQrPbMocUa8zGqsTA= +github.com/google/flatbuffers v23.1.21+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= -github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c h1:6rhixN/i8ZofjG1Y75iExal34USq5p+wiN1tpie8IrU= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c/go.mod h1:NMPJylDgVpX0MLRlPy15sqSwOFv/U1GZ2m21JhFfek0= github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= @@ -264,18 +207,18 @@ github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 h1:rp+c0RAYOWj8 github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901/go.mod h1:Z86h9688Y0wesXCyonoVr47MasHilkuLMqGhRZ4Hpak= github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= -github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= -github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= github.com/kardianos/minwinsvc v1.0.2 h1:JmZKFJQrmTGa/WiW+vkJXKmfzdjabuEW4Tirj5lLdR0= github.com/kardianos/minwinsvc v1.0.2/go.mod h1:LUZNYhNmxujx2tR7FbdxqYJ9XDDoCd3MQcl1o//FWl4= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.13.1/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= -github.com/klauspost/compress v1.15.11 h1:Lcadnb3RKGin4FYM/orgq0qde+nc15E5Cbqg4B9Sx9c= -github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= +github.com/klauspost/asmfmt v1.3.2 h1:4Ri7ox3EwapiOjCki+hw14RyKk201CN4rzyCJRFLpK4= +github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= +github.com/klauspost/compress v1.15.15 h1:EF27CXIuDsYJ6mmvtBRlEuB2UVOqHG1tAXgZ7yIO+lw= +github.com/klauspost/compress v1.15.15/go.mod h1:ZcK2JAFqKOpnBlxcLsJzYfrS9X1akm9fHZNnD9+Vo/4= +github.com/klauspost/cpuid/v2 v2.2.3 h1:sxCkb+qR91z4vsqw4vGGZlDgPz3G7gjaLyK3V8y70BU= +github.com/klauspost/cpuid/v2 v2.2.3/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= @@ -291,8 +234,6 @@ github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-ieproxy v0.0.1 h1:qiyop7gCflfhwCzGyeT0gro3sF9AIg9HU98JORTkqfI= -github.com/mattn/go-ieproxy v0.0.1/go.mod h1:pYabZ6IHcRpFh7vIaLfK7rdcWgFEb3SFJ6/gNWuh88E= github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= @@ -301,6 +242,10 @@ github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zk github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/microsoft/go-mssqldb v1.1.0 h1:jsV+tpvcPTbNNKW0o3kiCD69kOHICsfjZ2VcVu2lKYc= github.com/microsoft/go-mssqldb v1.1.0/go.mod h1:LzkFdl4z2Ck+Hi+ycGOTbL56VEfgoyA2DvYejrNGbRk= +github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8 h1:AMFGa4R4MiIpspGNG7Z948v4n35fFGB3RR3G/ry4FWs= +github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY= +github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3 h1:+n/aFZefKZp7spd8DFdX7uMikMLXX4oubIzJF4kv/wI= +github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3/go.mod h1:RagcQ7I8IeTMnF8JTXieKnO4Z6JCsikNEzj0DwauVzE= github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8= github.com/montanaflynn/stats v0.7.0/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs= @@ -308,13 +253,10 @@ github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ib github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/phpdave11/gofpdf v1.4.2/go.mod h1:zpO6xFn9yxo3YLyMvW8HcKWVdbNqgIfOOp2dXMnm1mY= -github.com/phpdave11/gofpdi v1.0.12/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= github.com/pierrec/lz4 v2.0.5+incompatible h1:2xWsjqPFWcplujydGg4WmhC/6fZqK42wMM8aXeqhl0I= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= -github.com/pierrec/lz4/v4 v4.1.8/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= -github.com/pierrec/lz4/v4 v4.1.16 h1:kQPfno+wyx6C5572ABwV+Uo3pDFzQ7yhyGchSyRda0c= -github.com/pierrec/lz4/v4 v4.1.16/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= +github.com/pierrec/lz4/v4 v4.1.17 h1:kV4Ip+/hUBC+8T6+2EgburRtkE9ef4nbY3f4dFhGjMc= +github.com/pierrec/lz4/v4 v4.1.17/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU= github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -325,7 +267,6 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRI github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_golang v1.15.1 h1:8tXpTmJbyH5lydzFPoxSIJ0J46jdh3tylbvM1xCv0LI= github.com/prometheus/client_golang v1.15.1/go.mod h1:e9yaBhRPU2pPNsZwE+JdQl0KEt1N9XgF6zxWmaC0xOk= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY= github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= @@ -335,13 +276,11 @@ github.com/prometheus/exporter-toolkit v0.10.0/go.mod h1:+sVFzuvV5JDyw+Ih6p3zFxZ github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI= github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY= -github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= -github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= github.com/shopspring/decimal v1.2.0 h1:abSATXmQEYyShuxI4/vyW3tV1MrKAJzCZ/0zLUXYbsQ= @@ -352,8 +291,8 @@ github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMB github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/snowflakedb/gosnowflake v1.6.18 h1:mm4KYvp3LWGHIuACwX/tHv9qDs2NdLDXuK0Rep+vfJc= -github.com/snowflakedb/gosnowflake v1.6.18/go.mod h1:BhNDWNSUY+t4T8GBuOg3ckWC4v5hhGlLovqGcF8Rkac= +github.com/snowflakedb/gosnowflake v1.6.23 h1:uO+zMTXJcSHzOm6ks5To8ergNjt5Dy6cr5QtStpRFT8= +github.com/snowflakedb/gosnowflake v1.6.23/go.mod h1:KfO4F7bk+aXPUIvBqYxvPhxLlu2/w4TtSC8Rw/yr5Mg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= @@ -373,10 +312,11 @@ github.com/vertica/vertica-sql-go v1.3.2 h1:QclPnkuozQyNl6lbrTdeuFSx2/lcSRZc1XL8 github.com/vertica/vertica-sql-go v1.3.2/go.mod h1:jnn2GFuv+O2Jcjktb7zyc4Utlbu9YVqpHH/lx63+1M4= github.com/xo/dburl v0.14.2 h1:tqiXv1glyxFph3LA39RXE4TYidr/yp7kG2YDrgJVjiA= github.com/xo/dburl v0.14.2/go.mod h1:B7/G9FGungw6ighV8xJNwWYQPMfn3gsi2sn5SE8Bzco= -github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= +github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= +github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= -go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= @@ -394,8 +334,6 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201203163018-be400aefbc4c/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= @@ -404,94 +342,51 @@ golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58 golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g= golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= -golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20191002040644-a1355ae1e2c3/go.mod h1:NOZ3BPKG0ec/BKJQgnvsSFpcKLM5xXVWnvZS97DWHgE= golang.org/x/exp v0.0.0-20230321023759-10a507213a29 h1:ooxPy7fPvB4kwsA2h+iBNHkAbp/4JxTSwCmvdjEYmug= golang.org/x/exp v0.0.0-20230321023759-10a507213a29/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= -golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= -golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20190910094157-69e4b8554b2a/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20200119044424-58c23975cae1/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20200430140353-33d19683fad8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20200618115811-c13761719519/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20201208152932-35266b937fa6/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20210216034530-4410531fe030/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/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/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -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/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -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= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191112182307-2180aed22343/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210610132358-84b48f89b13b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8= golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191112214154-59a1497f0cea/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210304124612-50617c2ba197/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -509,31 +404,23 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425163242-31fd60d6bfdc/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190823170909-c4a336ef6a2f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190927191325-030b2cf1153e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/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.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -543,66 +430,29 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= -gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0= -gonum.org/v1/gonum v0.9.3/go.mod h1:TZumC3NeyVQskjXqmyWt4S3bINhy7B4eYwW69EbyX+0= gonum.org/v1/gonum v0.11.0 h1:f1IJhK4Km5tBJmaiJXtk/PkL4cdVX6J+tGiM187uT5E= -gonum.org/v1/gonum v0.11.0/go.mod h1:fSG4YDCxxUZQJ7rKsQrj0gMOg00Il0Z96/qMA4bVQhA= -gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= -gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= -gonum.org/v1/plot v0.9.0/go.mod h1:3Pcqqmp6RHvJI72kgb8fThyUnav364FOsdDo2aGW5lY= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20210630183607-d20f26d13c79/go.mod h1:yiaVoXHpRzHGyxV3o4DktVWY4mSUErTKaeEOq6C3t3U= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= -google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s= gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce h1:+JknDZhAj8YMt7GC73Ei8pv4MzjDUNPHgQWJdtMAaDU= gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce/go.mod h1:5AcXVHNjg+BDxry382+8OKon8SEWiKktQR07RKPsv1c= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/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= howett.net/plist v0.0.0-20181124034731-591f970eefbb h1:jhnBjNi9UFpfpl8YZhA9CrOqpnJdvzuiHsl/dnxl11M= howett.net/plist v0.0.0-20181124034731-591f970eefbb/go.mod h1:vMygbs4qMhSZSc4lCUl2OEE+rDiIIJAIdR4m7MiMcm0= -rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= From cbcb2c61e1b2a6616de4bb4522cfbb17936d55da Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 26 Jul 2023 10:10:56 +0200 Subject: [PATCH 068/401] deps: bump github.com/microsoft/go-mssqldb from 1.1.0 to 1.4.0 (#277) Bumps [github.com/microsoft/go-mssqldb](https://github.com/microsoft/go-mssqldb) from 1.1.0 to 1.4.0. - [Release notes](https://github.com/microsoft/go-mssqldb/releases) - [Changelog](https://github.com/microsoft/go-mssqldb/blob/main/CHANGELOG.md) - [Commits](https://github.com/microsoft/go-mssqldb/compare/v1.1.0...v1.4.0) --- updated-dependencies: - dependency-name: github.com/microsoft/go-mssqldb dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 85e08e0b..e462d1a5 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/jackc/pgx/v4 v4.18.1 github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.9 - github.com/microsoft/go-mssqldb v1.1.0 + github.com/microsoft/go-mssqldb v1.4.0 github.com/prometheus/client_golang v1.15.1 github.com/prometheus/client_model v0.4.0 github.com/prometheus/common v0.44.0 diff --git a/go.sum b/go.sum index a303a916..fcd5fbde 100644 --- a/go.sum +++ b/go.sum @@ -240,8 +240,8 @@ github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Ky github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/microsoft/go-mssqldb v1.1.0 h1:jsV+tpvcPTbNNKW0o3kiCD69kOHICsfjZ2VcVu2lKYc= -github.com/microsoft/go-mssqldb v1.1.0/go.mod h1:LzkFdl4z2Ck+Hi+ycGOTbL56VEfgoyA2DvYejrNGbRk= +github.com/microsoft/go-mssqldb v1.4.0 h1:fhRa6Ftf78dtv1Kj4i1YQoK3VUoce4phkBLoaE0NIaQ= +github.com/microsoft/go-mssqldb v1.4.0/go.mod h1:lmWsjHD8XX/Txr0f8ZqgbEZSC+BZjmEQy/Ms+rLrvho= github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8 h1:AMFGa4R4MiIpspGNG7Z948v4n35fFGB3RR3G/ry4FWs= github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY= github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3 h1:+n/aFZefKZp7spd8DFdX7uMikMLXX4oubIzJF4kv/wI= @@ -443,8 +443,6 @@ gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s= -gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce h1:+JknDZhAj8YMt7GC73Ei8pv4MzjDUNPHgQWJdtMAaDU= -gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce/go.mod h1:5AcXVHNjg+BDxry382+8OKon8SEWiKktQR07RKPsv1c= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= From 6d72e8c917250325e29a26d223d379e0355cdecd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 26 Jul 2023 10:16:19 +0200 Subject: [PATCH 069/401] deps: bump google.golang.org/protobuf from 1.30.0 to 1.31.0 (#265) Bumps google.golang.org/protobuf from 1.30.0 to 1.31.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index e462d1a5..ecd9f4ff 100644 --- a/go.mod +++ b/go.mod @@ -16,7 +16,7 @@ require ( github.com/snowflakedb/gosnowflake v1.6.23 github.com/vertica/vertica-sql-go v1.3.2 github.com/xo/dburl v0.14.2 - google.golang.org/protobuf v1.30.0 + google.golang.org/protobuf v1.31.0 gopkg.in/yaml.v3 v3.0.1 k8s.io/klog/v2 v2.70.1 ) diff --git a/go.sum b/go.sum index fcd5fbde..40606612 100644 --- a/go.sum +++ b/go.sum @@ -435,8 +435,8 @@ google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6 google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= -google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From 062d51eb9c9f324a6a4c8129cebe4d52a93340e8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 26 Jul 2023 10:21:21 +0200 Subject: [PATCH 070/401] deps: bump github.com/prometheus/client_golang from 1.15.1 to 1.16.0 (#268) Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.15.1 to 1.16.0. - [Release notes](https://github.com/prometheus/client_golang/releases) - [Changelog](https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md) - [Commits](https://github.com/prometheus/client_golang/compare/v1.15.1...v1.16.0) --- updated-dependencies: - dependency-name: github.com/prometheus/client_golang dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 11 ++++++----- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/go.mod b/go.mod index ecd9f4ff..93c4cd24 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.9 github.com/microsoft/go-mssqldb v1.4.0 - github.com/prometheus/client_golang v1.15.1 + github.com/prometheus/client_golang v1.16.0 github.com/prometheus/client_model v0.4.0 github.com/prometheus/common v0.44.0 github.com/prometheus/exporter-toolkit v0.10.0 @@ -92,7 +92,7 @@ require ( github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/prometheus/procfs v0.9.0 // indirect + github.com/prometheus/procfs v0.10.1 // indirect github.com/sirupsen/logrus v1.9.0 // indirect github.com/zeebo/xxh3 v1.0.2 // indirect golang.org/x/crypto v0.9.0 // indirect @@ -100,7 +100,7 @@ require ( golang.org/x/mod v0.8.0 // indirect golang.org/x/net v0.10.0 // indirect golang.org/x/oauth2 v0.8.0 // indirect - golang.org/x/sync v0.1.0 // indirect + golang.org/x/sync v0.2.0 // indirect golang.org/x/sys v0.8.0 // indirect golang.org/x/term v0.8.0 // indirect golang.org/x/text v0.9.0 // indirect diff --git a/go.sum b/go.sum index 40606612..0ebb78ad 100644 --- a/go.sum +++ b/go.sum @@ -265,8 +265,8 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.15.1 h1:8tXpTmJbyH5lydzFPoxSIJ0J46jdh3tylbvM1xCv0LI= -github.com/prometheus/client_golang v1.15.1/go.mod h1:e9yaBhRPU2pPNsZwE+JdQl0KEt1N9XgF6zxWmaC0xOk= +github.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8= +github.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc= github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY= github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= @@ -274,8 +274,8 @@ github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO github.com/prometheus/exporter-toolkit v0.10.0 h1:yOAzZTi4M22ZzVxD+fhy1URTuNRj/36uQJJ5S8IPza8= github.com/prometheus/exporter-toolkit v0.10.0/go.mod h1:+sVFzuvV5JDyw+Ih6p3zFxZNVnKQa3x5qPmDSiPu4ZY= github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI= -github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY= +github.com/prometheus/procfs v0.10.1 h1:kYK1Va/YMlutzCGazswoHKo//tZVlFpKYh+PymziUAg= +github.com/prometheus/procfs v0.10.1/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= @@ -369,8 +369,9 @@ golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI= +golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= From f7fb730054319093faef754495a2fc39012b3c0b Mon Sep 17 00:00:00 2001 From: Mohamed Elturky Date: Fri, 4 Aug 2023 16:09:49 -0700 Subject: [PATCH 071/401] feat: add AWS Secret Manager feature to store DSN (#273) --- README.md | 34 ++++++++++++++++++++++++++++++++ config/config.go | 50 ++++++++++++++++++++++++++++++++++++++++++++++++ go.mod | 13 ++++++++++--- go.sum | 11 ++++++++--- 4 files changed, 102 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 785993aa..99e2ff6e 100644 --- a/README.md +++ b/README.md @@ -199,6 +199,40 @@ If your DSN contains special characters in any part of your connection string (i For example, `p@$$w0rd#abc` then becomes `p%40%24%24w0rd%23abc`. For additional details please refer to [xo/dburl](https://github.com/xo/dburl) documentation. +#### Using AWS Secrets Manager + +If the database runs on AWS EC2 instance, this is a secure option to store the `Data source name` without having it in the configuration file. +To use this option: +- Create a [secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html) in key/value pairs format, specify Key `data_source_name` and then for Value enter the DSN value. + For the secret name, enter a name for your secret, and pass that name in the configuration file as a value for `aws_secret_name` item under `target`. Secret json example: + +``` +{ + "data_source_name": "sqlserver://prom_user:prom_password@dbserver1.example.com:1433" +} +``` + +- Configuration file Example +``` +... +target: + aws_secret_name: '' +... +``` +- Allow read-only access from EC2 IAM role to the secret by attaching a [resource-based policy](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_resource-based-policies.html) to the secret. Policy Example: +``` +{ + "Version" : "2012-10-17", + "Statement" : [ + { + "Effect": "Allow", + "Principal": {"AWS": "arn:aws:iam::123456789012:role/EC2RoleToAccessSecrets"}, + "Action": "secretsmanager:GetSecretValue", + "Resource": "*", + } + ] +} +``` ### TLS and Basic Authentication diff --git a/config/config.go b/config/config.go index d8867efa..6ba8ed0a 100644 --- a/config/config.go +++ b/config/config.go @@ -1,12 +1,18 @@ package config import ( + "encoding/json" "fmt" "os" "path/filepath" "strings" "time" + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + awsConfig "github.com/aws/aws-sdk-go-v2/config" + "github.com/aws/aws-sdk-go-v2/service/secretsmanager" "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/common/model" "gopkg.in/yaml.v3" @@ -208,6 +214,7 @@ func (g *GlobalConfig) UnmarshalYAML(unmarshal func(interface{}) error) error { // TargetConfig defines a DSN and a set of collectors to be executed on it. type TargetConfig struct { DSN Secret `yaml:"data_source_name"` // data source name to connect to + AwsSecretName string `yaml:"aws_secret_name"` // AWS secret name CollectorRefs []string `yaml:"collectors"` // names of collectors to execute on the target collectors []*CollectorConfig // resolved collector references @@ -228,6 +235,10 @@ func (t *TargetConfig) UnmarshalYAML(unmarshal func(interface{}) error) error { return err } + if t.AwsSecretName != "" { + t.DSN = readDSNFromAwsSecretManager(t.AwsSecretName) + } + // Check required fields if t.DSN == "" { return fmt.Errorf("missing data_source_name for target %+v", t) @@ -239,6 +250,45 @@ func (t *TargetConfig) UnmarshalYAML(unmarshal func(interface{}) error) error { return checkOverflow(t.XXX, "target") } +// AWS Secret +type AwsSecret struct { + DSN Secret `json:"data_source_name"` +} + +func readDSNFromAwsSecretManager(secretName string) Secret { + config, err := awsConfig.LoadDefaultConfig(context.TODO(), awsConfig.WithEC2IMDSRegion()) + if err != nil { + klog.Fatal(err) + } + + // Create Secrets Manager client + svc := secretsmanager.NewFromConfig(config) + + input := &secretsmanager.GetSecretValueInput{ + SecretId: aws.String(secretName), + VersionStage: aws.String("AWSCURRENT"), // VersionStage defaults to AWSCURRENT if unspecified + } + + klog.Infof("reading AWS Secret: %s", secretName) + result, err := svc.GetSecretValue(context.TODO(), input) + if err != nil { + // For a list of exceptions thrown, see + // https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html + klog.Fatal(err.Error()) + } + + // Decrypts secret using the associated KMS key. + var secretString string = *result.SecretString + + var awsSecret AwsSecret + jsonErr := json.Unmarshal([]byte(secretString), &awsSecret) + + if jsonErr != nil { + klog.Fatal(jsonErr) + } + return Secret(awsSecret.DSN) +} + // // Jobs // diff --git a/go.mod b/go.mod index 93c4cd24..7f8ea424 100644 --- a/go.mod +++ b/go.mod @@ -4,6 +4,9 @@ go 1.18 require ( github.com/ClickHouse/clickhouse-go v1.5.4 + github.com/aws/aws-sdk-go-v2 v1.18.1 + github.com/aws/aws-sdk-go-v2/config v1.18.19 + github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.19.10 github.com/go-sql-driver/mysql v1.7.1 github.com/jackc/pgx/v4 v4.18.1 github.com/kardianos/minwinsvc v1.0.2 @@ -33,18 +36,22 @@ require ( github.com/andybalholm/brotli v1.0.4 // indirect github.com/apache/arrow/go/v12 v12.0.1 // indirect github.com/apache/thrift v0.16.0 // indirect - github.com/aws/aws-sdk-go-v2 v1.17.7 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 // indirect github.com/aws/aws-sdk-go-v2/credentials v1.13.18 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.1 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.31 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.25 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.34 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.28 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.3.32 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 // indirect github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26 // indirect github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.25 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 // indirect github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.12.6 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.6 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.18.7 // indirect github.com/aws/smithy-go v1.13.5 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect diff --git a/go.sum b/go.sum index 0ebb78ad..841e54ff 100644 --- a/go.sum +++ b/go.sum @@ -25,8 +25,9 @@ github.com/apache/arrow/go/v12 v12.0.1 h1:JsR2+hzYYjgSUkBSaahpqCetqZMr76djX80fF/ github.com/apache/arrow/go/v12 v12.0.1/go.mod h1:weuTY7JvTG/HDPtMQxEUp7pU73vkLWMLpY67QwZ/WWw= github.com/apache/thrift v0.16.0 h1:qEy6UW60iVOlUy+b9ZR0d5WzUWYGOo4HfopoyBaNmoY= github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= -github.com/aws/aws-sdk-go-v2 v1.17.7 h1:CLSjnhJSTSogvqUGhIC6LqFKATMRexcxLZ0i/Nzk9Eg= github.com/aws/aws-sdk-go-v2 v1.17.7/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= +github.com/aws/aws-sdk-go-v2 v1.18.1 h1:+tefE750oAb7ZQGzla6bLkOwfcQCEtC5y2RqoqCeqKo= +github.com/aws/aws-sdk-go-v2 v1.18.1/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10/go.mod h1:VeTZetY5KRJLuD/7fkQXMU6Mw7H5m/KP2J5Iy9osMno= github.com/aws/aws-sdk-go-v2/config v1.18.19 h1:AqFK6zFNtq4i1EYu+eC7lcKHYnZagMn6SW171la0bGw= @@ -37,10 +38,12 @@ github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.1 h1:gt57MN3liKiyGopcqgNzJb2 github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.1/go.mod h1:lfUx8puBRdM5lVVMQlwt2v+ofiG/X6Ms+dy0UkG/kXw= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 h1:E3Y+OfzOK1+rmRo/K2G0ml8Vs+Xqk0kOnf4nS0kUtBc= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59/go.mod h1:1M4PLSBUVfBI0aP+C9XI7SM6kZPCGYyI6izWz0TGprE= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.31 h1:sJLYcS+eZn5EeNINGHSCRAwUJMFVqklwkH36Vbyai7M= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.31/go.mod h1:QT0BqUvX1Bh2ABdTGnjqEjvjzrCfIniM9Sc8zn9Yndo= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.25 h1:1mnRASEKnkqsntcxHaysxwgVoUUp5dkiB+l3llKnqyg= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.34 h1:A5UqQEmPaCFpedKouS4v+dHCTUo2sKqhoKO9U5kxyWo= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.34/go.mod h1:wZpTEecJe0Btj3IYnDx/VlUzor9wm3fJHyvLpQF0VwY= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.25/go.mod h1:zBHOPwhBc3FlQjQJE/D3IfPWiWaQmT06Vq9aNukDo0k= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.28 h1:srIVS45eQuewqz6fKKu6ZGXaq6FuFg5NzgQBAM6g8Y4= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.28/go.mod h1:7VRpKQQedkfIEXb4k52I7swUnZP0wohVajJMRn3vsUw= github.com/aws/aws-sdk-go-v2/internal/ini v1.3.32 h1:p5luUImdIqywn6JpQsW3tq5GNOxKmOnEpybzPx+d1lk= github.com/aws/aws-sdk-go-v2/internal/ini v1.3.32/go.mod h1:XGhIBZDEgfqmFIugclZ6FU7v75nHhBDtzuB4xB/tEi4= github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 h1:DWYZIsyqagnWL00f8M/SOr9fN063OEQWn9LLTbdYXsk= @@ -55,6 +58,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 h1:e2ooMhpYGhDnBf github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0/go.mod h1:bh2E0CXKZsQN+faiKVqC40vfNMAWheoULBCnEgO9K+8= github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 h1:B1G2pSPvbAtQjilPq+Y7jLIzCOwKzuVEl+aBBaNG0AQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0/go.mod h1:ncltU6n4Nof5uJttDtcNQ537uNuwYqsZZQcpkd2/GUQ= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.19.10 h1:eW8zPSh7ZLzb7029xCsIEFbnxLvNHPTt7aWwdKjNJc8= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.19.10/go.mod h1:ezn6mzIRqTPdAbDpm03dx4y9g6rvGRb2q33wS76dCxw= github.com/aws/aws-sdk-go-v2/service/sso v1.12.6 h1:5V7DWLBd7wTELVz5bPpwzYy/sikk0gsgZfj40X+l5OI= github.com/aws/aws-sdk-go-v2/service/sso v1.12.6/go.mod h1:Y1VOmit/Fn6Tz1uFAeCO6Q7M2fmfXSCLeL5INVYsLuY= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.6 h1:B8cauxOH1W1v7rd8RdI/MWnoR4Ze0wIHWrb90qczxj4= From c6fe48bd8ab0df2b31a2f0ec1fb3da7e9e48c1b8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Aug 2023 15:28:35 +0200 Subject: [PATCH 072/401] deps: bump github.com/aws/aws-sdk-go-v2 from 1.18.1 to 1.20.0 (#283) Bumps [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) from 1.18.1 to 1.20.0. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.18.1...v1.20.0) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 7f8ea424..43fcec1c 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.18 require ( github.com/ClickHouse/clickhouse-go v1.5.4 - github.com/aws/aws-sdk-go-v2 v1.18.1 + github.com/aws/aws-sdk-go-v2 v1.20.0 github.com/aws/aws-sdk-go-v2/config v1.18.19 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.19.10 github.com/go-sql-driver/mysql v1.7.1 @@ -52,7 +52,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/sso v1.12.6 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.6 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.18.7 // indirect - github.com/aws/smithy-go v1.13.5 // indirect + github.com/aws/smithy-go v1.14.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 // indirect diff --git a/go.sum b/go.sum index 841e54ff..c62f4834 100644 --- a/go.sum +++ b/go.sum @@ -26,8 +26,9 @@ github.com/apache/arrow/go/v12 v12.0.1/go.mod h1:weuTY7JvTG/HDPtMQxEUp7pU73vkLWM github.com/apache/thrift v0.16.0 h1:qEy6UW60iVOlUy+b9ZR0d5WzUWYGOo4HfopoyBaNmoY= github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= github.com/aws/aws-sdk-go-v2 v1.17.7/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= -github.com/aws/aws-sdk-go-v2 v1.18.1 h1:+tefE750oAb7ZQGzla6bLkOwfcQCEtC5y2RqoqCeqKo= github.com/aws/aws-sdk-go-v2 v1.18.1/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= +github.com/aws/aws-sdk-go-v2 v1.20.0 h1:INUDpYLt4oiPOJl0XwZDK2OVAVf0Rzo+MGVTv9f+gy8= +github.com/aws/aws-sdk-go-v2 v1.20.0/go.mod h1:uWOr0m0jDsiWw8nnXiqZ+YG6LdvAlGYDLLf2NmHZoy4= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10/go.mod h1:VeTZetY5KRJLuD/7fkQXMU6Mw7H5m/KP2J5Iy9osMno= github.com/aws/aws-sdk-go-v2/config v1.18.19 h1:AqFK6zFNtq4i1EYu+eC7lcKHYnZagMn6SW171la0bGw= @@ -66,8 +67,9 @@ github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.6 h1:B8cauxOH1W1v7rd8RdI/MWno github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.6/go.mod h1:Lh/bc9XUf8CfOY6Jp5aIkQtN+j1mc+nExc+KXj9jx2s= github.com/aws/aws-sdk-go-v2/service/sts v1.18.7 h1:bWNgNdRko2x6gqa0blfATqAZKZokPIeM1vfmQt2pnvM= github.com/aws/aws-sdk-go-v2/service/sts v1.18.7/go.mod h1:JuTnSoeePXmMVe9G8NcjjwgOKEfZ4cOjMuT2IBT/2eI= -github.com/aws/smithy-go v1.13.5 h1:hgz0X/DX0dGqTYpGALqXJoRKRj5oQ7150i5FdTePzO8= github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= +github.com/aws/smithy-go v1.14.0 h1:+X90sB94fizKjDmwb4vyl2cTTPXTE5E2G/1mjByb0io= +github.com/aws/smithy-go v1.14.0/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bkaradzic/go-lz4 v1.0.0 h1:RXc4wYsyz985CkXXeX04y4VnZFGG8Rd43pRaHsOXAKk= From 1a4ebcdd435eac0e87dde59d7fb94dc8c621cb2f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Aug 2023 17:39:54 +0200 Subject: [PATCH 073/401] deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager from 1.19.10 to 1.20.2 (#285) deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager Bumps [github.com/aws/aws-sdk-go-v2/service/secretsmanager](https://github.com/aws/aws-sdk-go-v2) from 1.19.10 to 1.20.2. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/service/efs/v1.20.2/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/efs/v1.19.10...service/efs/v1.20.2) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/service/secretsmanager dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 10 +++++----- go.sum | 21 ++++++++++----------- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/go.mod b/go.mod index 43fcec1c..51ed8776 100644 --- a/go.mod +++ b/go.mod @@ -4,9 +4,9 @@ go 1.18 require ( github.com/ClickHouse/clickhouse-go v1.5.4 - github.com/aws/aws-sdk-go-v2 v1.20.0 + github.com/aws/aws-sdk-go-v2 v1.20.1 github.com/aws/aws-sdk-go-v2/config v1.18.19 - github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.19.10 + github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.20.2 github.com/go-sql-driver/mysql v1.7.1 github.com/jackc/pgx/v4 v4.18.1 github.com/kardianos/minwinsvc v1.0.2 @@ -40,8 +40,8 @@ require ( github.com/aws/aws-sdk-go-v2/credentials v1.13.18 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.1 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.34 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.28 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.38 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.32 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.3.32 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 // indirect @@ -52,7 +52,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/sso v1.12.6 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.6 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.18.7 // indirect - github.com/aws/smithy-go v1.14.0 // indirect + github.com/aws/smithy-go v1.14.1 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 // indirect diff --git a/go.sum b/go.sum index c62f4834..d456ceac 100644 --- a/go.sum +++ b/go.sum @@ -26,9 +26,8 @@ github.com/apache/arrow/go/v12 v12.0.1/go.mod h1:weuTY7JvTG/HDPtMQxEUp7pU73vkLWM github.com/apache/thrift v0.16.0 h1:qEy6UW60iVOlUy+b9ZR0d5WzUWYGOo4HfopoyBaNmoY= github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= github.com/aws/aws-sdk-go-v2 v1.17.7/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= -github.com/aws/aws-sdk-go-v2 v1.18.1/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= -github.com/aws/aws-sdk-go-v2 v1.20.0 h1:INUDpYLt4oiPOJl0XwZDK2OVAVf0Rzo+MGVTv9f+gy8= -github.com/aws/aws-sdk-go-v2 v1.20.0/go.mod h1:uWOr0m0jDsiWw8nnXiqZ+YG6LdvAlGYDLLf2NmHZoy4= +github.com/aws/aws-sdk-go-v2 v1.20.1 h1:rZBf5DWr7YGrnlTK4kgDQGn1ltqOg5orCYb/UhOFZkg= +github.com/aws/aws-sdk-go-v2 v1.20.1/go.mod h1:NU06lETsFm8fUC6ZjhgDpVBcGZTFQ6XM+LZWZxMI4ac= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10/go.mod h1:VeTZetY5KRJLuD/7fkQXMU6Mw7H5m/KP2J5Iy9osMno= github.com/aws/aws-sdk-go-v2/config v1.18.19 h1:AqFK6zFNtq4i1EYu+eC7lcKHYnZagMn6SW171la0bGw= @@ -40,11 +39,11 @@ github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.1/go.mod h1:lfUx8puBRdM5lVVM github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 h1:E3Y+OfzOK1+rmRo/K2G0ml8Vs+Xqk0kOnf4nS0kUtBc= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59/go.mod h1:1M4PLSBUVfBI0aP+C9XI7SM6kZPCGYyI6izWz0TGprE= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.31/go.mod h1:QT0BqUvX1Bh2ABdTGnjqEjvjzrCfIniM9Sc8zn9Yndo= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.34 h1:A5UqQEmPaCFpedKouS4v+dHCTUo2sKqhoKO9U5kxyWo= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.34/go.mod h1:wZpTEecJe0Btj3IYnDx/VlUzor9wm3fJHyvLpQF0VwY= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.38 h1:c8ed/T9T2K5I+h/JzmF5tpI46+OODQ74dzmdo+QnaMg= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.38/go.mod h1:qggunOChCMu9ZF/UkAfhTz25+U2rLVb3ya0Ua6TTfCA= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.25/go.mod h1:zBHOPwhBc3FlQjQJE/D3IfPWiWaQmT06Vq9aNukDo0k= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.28 h1:srIVS45eQuewqz6fKKu6ZGXaq6FuFg5NzgQBAM6g8Y4= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.28/go.mod h1:7VRpKQQedkfIEXb4k52I7swUnZP0wohVajJMRn3vsUw= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.32 h1:hNeAAymUY5gu11WrrmFb3CVIp9Dar9hbo44yzzcQpzA= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.32/go.mod h1:0ZXSqrty4FtQ7p8TEuRde/SZm9X05KT18LAUlR40Ln0= github.com/aws/aws-sdk-go-v2/internal/ini v1.3.32 h1:p5luUImdIqywn6JpQsW3tq5GNOxKmOnEpybzPx+d1lk= github.com/aws/aws-sdk-go-v2/internal/ini v1.3.32/go.mod h1:XGhIBZDEgfqmFIugclZ6FU7v75nHhBDtzuB4xB/tEi4= github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 h1:DWYZIsyqagnWL00f8M/SOr9fN063OEQWn9LLTbdYXsk= @@ -59,8 +58,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 h1:e2ooMhpYGhDnBf github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0/go.mod h1:bh2E0CXKZsQN+faiKVqC40vfNMAWheoULBCnEgO9K+8= github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 h1:B1G2pSPvbAtQjilPq+Y7jLIzCOwKzuVEl+aBBaNG0AQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0/go.mod h1:ncltU6n4Nof5uJttDtcNQ537uNuwYqsZZQcpkd2/GUQ= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.19.10 h1:eW8zPSh7ZLzb7029xCsIEFbnxLvNHPTt7aWwdKjNJc8= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.19.10/go.mod h1:ezn6mzIRqTPdAbDpm03dx4y9g6rvGRb2q33wS76dCxw= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.20.2 h1:vlkGQk8JiUo1KmZF4wsZP3qclbyQHSUvLMf8aPOS79g= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.20.2/go.mod h1:Z6Oq1mXqvgwmUxvMrV/jMkQhwm06A9XO015dzGnS8TM= github.com/aws/aws-sdk-go-v2/service/sso v1.12.6 h1:5V7DWLBd7wTELVz5bPpwzYy/sikk0gsgZfj40X+l5OI= github.com/aws/aws-sdk-go-v2/service/sso v1.12.6/go.mod h1:Y1VOmit/Fn6Tz1uFAeCO6Q7M2fmfXSCLeL5INVYsLuY= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.6 h1:B8cauxOH1W1v7rd8RdI/MWnoR4Ze0wIHWrb90qczxj4= @@ -68,8 +67,8 @@ github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.6/go.mod h1:Lh/bc9XUf8CfOY6Jp github.com/aws/aws-sdk-go-v2/service/sts v1.18.7 h1:bWNgNdRko2x6gqa0blfATqAZKZokPIeM1vfmQt2pnvM= github.com/aws/aws-sdk-go-v2/service/sts v1.18.7/go.mod h1:JuTnSoeePXmMVe9G8NcjjwgOKEfZ4cOjMuT2IBT/2eI= github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= -github.com/aws/smithy-go v1.14.0 h1:+X90sB94fizKjDmwb4vyl2cTTPXTE5E2G/1mjByb0io= -github.com/aws/smithy-go v1.14.0/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= +github.com/aws/smithy-go v1.14.1 h1:EFKMUmH/iHMqLiwoEDx2rRjRQpI1YCn5jTysoaDujFs= +github.com/aws/smithy-go v1.14.1/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bkaradzic/go-lz4 v1.0.0 h1:RXc4wYsyz985CkXXeX04y4VnZFGG8Rd43pRaHsOXAKk= From 3e9e1b4a52b87c1b96c561f674b6dc540583b1c5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Aug 2023 17:58:00 +0200 Subject: [PATCH 074/401] deps: bump github.com/aws/aws-sdk-go-v2/config from 1.18.19 to 1.18.33 (#284) Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.19 to 1.18.33. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.19...config/v1.18.33) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/config dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 16 ++++++++-------- go.sum | 24 ++++++++++++++++-------- 2 files changed, 24 insertions(+), 16 deletions(-) diff --git a/go.mod b/go.mod index 51ed8776..6dc3739c 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.18 require ( github.com/ClickHouse/clickhouse-go v1.5.4 github.com/aws/aws-sdk-go-v2 v1.20.1 - github.com/aws/aws-sdk-go-v2/config v1.18.19 + github.com/aws/aws-sdk-go-v2/config v1.18.33 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.20.2 github.com/go-sql-driver/mysql v1.7.1 github.com/jackc/pgx/v4 v4.18.1 @@ -37,21 +37,21 @@ require ( github.com/apache/arrow/go/v12 v12.0.1 // indirect github.com/apache/thrift v0.16.0 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.13.18 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.1 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.13.32 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.8 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.38 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.32 // indirect - github.com/aws/aws-sdk-go-v2/internal/ini v1.3.32 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.3.39 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 // indirect github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.25 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.32 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 // indirect github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.12.6 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.6 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.18.7 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.13.2 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.15.2 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.21.2 // indirect github.com/aws/smithy-go v1.14.1 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect diff --git a/go.sum b/go.sum index d456ceac..e8af0bfd 100644 --- a/go.sum +++ b/go.sum @@ -30,12 +30,15 @@ github.com/aws/aws-sdk-go-v2 v1.20.1 h1:rZBf5DWr7YGrnlTK4kgDQGn1ltqOg5orCYb/UhOF github.com/aws/aws-sdk-go-v2 v1.20.1/go.mod h1:NU06lETsFm8fUC6ZjhgDpVBcGZTFQ6XM+LZWZxMI4ac= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10/go.mod h1:VeTZetY5KRJLuD/7fkQXMU6Mw7H5m/KP2J5Iy9osMno= -github.com/aws/aws-sdk-go-v2/config v1.18.19 h1:AqFK6zFNtq4i1EYu+eC7lcKHYnZagMn6SW171la0bGw= github.com/aws/aws-sdk-go-v2/config v1.18.19/go.mod h1:XvTmGMY8d52ougvakOv1RpiTLPz9dlG/OQHsKU/cMmY= -github.com/aws/aws-sdk-go-v2/credentials v1.13.18 h1:EQMdtHwz0ILTW1hoP+EwuWhwCG1hD6l3+RWFQABET4c= +github.com/aws/aws-sdk-go-v2/config v1.18.33 h1:JKcw5SFxFW/rpM4mOPjv0VQ11E2kxW13F3exWOy7VZU= +github.com/aws/aws-sdk-go-v2/config v1.18.33/go.mod h1:hXO/l9pgY3K5oZJldamP0pbZHdPqqk+4/maa7DSD3cA= github.com/aws/aws-sdk-go-v2/credentials v1.13.18/go.mod h1:vnwlwjIe+3XJPBYKu1et30ZPABG3VaXJYr8ryohpIyM= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.1 h1:gt57MN3liKiyGopcqgNzJb2+d9MJaKT/q1OksHNXVE4= +github.com/aws/aws-sdk-go-v2/credentials v1.13.32 h1:lIH1eKPcCY1ylR4B6PkBGRWMHO3aVenOKJHWiS4/G2w= +github.com/aws/aws-sdk-go-v2/credentials v1.13.32/go.mod h1:lL8U3v/Y79YRG69WlAho0OHIKUXCyFvSXaIvfo81sls= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.1/go.mod h1:lfUx8puBRdM5lVVMQlwt2v+ofiG/X6Ms+dy0UkG/kXw= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.8 h1:DK/9C+UN/X+1+Wm8pqaDksQr2tSLzq+8X1/rI/ZxKEQ= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.8/go.mod h1:ce7BgLQfYr5hQFdy67oX2svto3ufGtm6oBvmsHScI1Q= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 h1:E3Y+OfzOK1+rmRo/K2G0ml8Vs+Xqk0kOnf4nS0kUtBc= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59/go.mod h1:1M4PLSBUVfBI0aP+C9XI7SM6kZPCGYyI6izWz0TGprE= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.31/go.mod h1:QT0BqUvX1Bh2ABdTGnjqEjvjzrCfIniM9Sc8zn9Yndo= @@ -44,28 +47,33 @@ github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.38/go.mod h1:qggunOChCM github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.25/go.mod h1:zBHOPwhBc3FlQjQJE/D3IfPWiWaQmT06Vq9aNukDo0k= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.32 h1:hNeAAymUY5gu11WrrmFb3CVIp9Dar9hbo44yzzcQpzA= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.32/go.mod h1:0ZXSqrty4FtQ7p8TEuRde/SZm9X05KT18LAUlR40Ln0= -github.com/aws/aws-sdk-go-v2/internal/ini v1.3.32 h1:p5luUImdIqywn6JpQsW3tq5GNOxKmOnEpybzPx+d1lk= github.com/aws/aws-sdk-go-v2/internal/ini v1.3.32/go.mod h1:XGhIBZDEgfqmFIugclZ6FU7v75nHhBDtzuB4xB/tEi4= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.39 h1:fc0ukRAiP1syoSGZYu+DaE+FulSYhTiJ8WpVu5jElU4= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.39/go.mod h1:WLAW8PT7+JhjZfLSWe7WEJaJu0GNo0cKc2Zyo003RBs= github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 h1:DWYZIsyqagnWL00f8M/SOr9fN063OEQWn9LLTbdYXsk= github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23/go.mod h1:uIiFgURZbACBEQJfqTZPb/jxO7R+9LeoHUFudtIdeQI= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 h1:y2+VQzC6Zh2ojtV2LoC0MNwHWc6qXv/j2vrQtlftkdA= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11/go.mod h1:iV4q2hsqtNECrfmlXyord9u4zyuFEJX9eLgLpSPzWA8= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26 h1:CeuSeq/8FnYpPtnuIeLQEEvDv9zUjneuYi8EghMBdwQ= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26/go.mod h1:2UqAAwMUXKeRkAHIlDJqvMVgOWkUi/AUXPk/YIe+Dg4= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.25 h1:5LHn8JQ0qvjD9L9JhMtylnkcw7j05GDZqM9Oin6hpr0= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.25/go.mod h1:/95IA+0lMnzW6XzqYJRpjjsAbKEORVeO0anQqjd2CNU= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.32 h1:dGAseBFEYxth10V23b5e2mAS+tX7oVbfYHD6dnDdAsg= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.32/go.mod h1:4jwAWKEkCR0anWk5+1RbfSg1R5Gzld7NLiuaq5bTR/Y= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 h1:e2ooMhpYGhDnBfSvIyusvAwX7KexuZaHbQY2Dyei7VU= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0/go.mod h1:bh2E0CXKZsQN+faiKVqC40vfNMAWheoULBCnEgO9K+8= github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 h1:B1G2pSPvbAtQjilPq+Y7jLIzCOwKzuVEl+aBBaNG0AQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0/go.mod h1:ncltU6n4Nof5uJttDtcNQ537uNuwYqsZZQcpkd2/GUQ= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.20.2 h1:vlkGQk8JiUo1KmZF4wsZP3qclbyQHSUvLMf8aPOS79g= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.20.2/go.mod h1:Z6Oq1mXqvgwmUxvMrV/jMkQhwm06A9XO015dzGnS8TM= -github.com/aws/aws-sdk-go-v2/service/sso v1.12.6 h1:5V7DWLBd7wTELVz5bPpwzYy/sikk0gsgZfj40X+l5OI= github.com/aws/aws-sdk-go-v2/service/sso v1.12.6/go.mod h1:Y1VOmit/Fn6Tz1uFAeCO6Q7M2fmfXSCLeL5INVYsLuY= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.6 h1:B8cauxOH1W1v7rd8RdI/MWnoR4Ze0wIHWrb90qczxj4= +github.com/aws/aws-sdk-go-v2/service/sso v1.13.2 h1:A2RlEMo4SJSwbNoUUgkxTAEMduAy/8wG3eB2b2lP4gY= +github.com/aws/aws-sdk-go-v2/service/sso v1.13.2/go.mod h1:ju+nNXUunfIFamXUIZQiICjnO/TPlOmWcYhZcSy7xaE= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.6/go.mod h1:Lh/bc9XUf8CfOY6Jp5aIkQtN+j1mc+nExc+KXj9jx2s= -github.com/aws/aws-sdk-go-v2/service/sts v1.18.7 h1:bWNgNdRko2x6gqa0blfATqAZKZokPIeM1vfmQt2pnvM= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.15.2 h1:OJELEgyaT2kmaBGZ+myyZbTTLobfe3ox3FSh5eYK9Qs= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.15.2/go.mod h1:ubDBBaDFs1GHijSOTi8ljppML15GLG0HxhILtbjNNYQ= github.com/aws/aws-sdk-go-v2/service/sts v1.18.7/go.mod h1:JuTnSoeePXmMVe9G8NcjjwgOKEfZ4cOjMuT2IBT/2eI= +github.com/aws/aws-sdk-go-v2/service/sts v1.21.2 h1:ympg1+Lnq33XLhcK/xTG4yZHPs1Oyxu+6DEWbl7qOzA= +github.com/aws/aws-sdk-go-v2/service/sts v1.21.2/go.mod h1:FQ/DQcOfESELfJi5ED+IPPAjI5xC6nxtSolVVB773jM= github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= github.com/aws/smithy-go v1.14.1 h1:EFKMUmH/iHMqLiwoEDx2rRjRQpI1YCn5jTysoaDujFs= github.com/aws/smithy-go v1.14.1/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= From 099ef29775947c4e0e3b97265e1763c5118b1121 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Aug 2023 18:09:14 +0200 Subject: [PATCH 075/401] deps: bump github.com/vertica/vertica-sql-go from 1.3.2 to 1.3.3 (#282) Bumps [github.com/vertica/vertica-sql-go](https://github.com/vertica/vertica-sql-go) from 1.3.2 to 1.3.3. - [Release notes](https://github.com/vertica/vertica-sql-go/releases) - [Commits](https://github.com/vertica/vertica-sql-go/compare/v1.3.2...v1.3.3) --- updated-dependencies: - dependency-name: github.com/vertica/vertica-sql-go dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 6dc3739c..359a5fde 100644 --- a/go.mod +++ b/go.mod @@ -17,7 +17,7 @@ require ( github.com/prometheus/common v0.44.0 github.com/prometheus/exporter-toolkit v0.10.0 github.com/snowflakedb/gosnowflake v1.6.23 - github.com/vertica/vertica-sql-go v1.3.2 + github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.14.2 google.golang.org/protobuf v1.31.0 gopkg.in/yaml.v3 v3.0.1 diff --git a/go.sum b/go.sum index e8af0bfd..43446785 100644 --- a/go.sum +++ b/go.sum @@ -322,8 +322,8 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/vertica/vertica-sql-go v1.3.2 h1:QclPnkuozQyNl6lbrTdeuFSx2/lcSRZc1XL8zWNSjdA= -github.com/vertica/vertica-sql-go v1.3.2/go.mod h1:jnn2GFuv+O2Jcjktb7zyc4Utlbu9YVqpHH/lx63+1M4= +github.com/vertica/vertica-sql-go v1.3.3 h1:fL+FKEAEy5ONmsvya2WH5T8bhkvY27y/Ik3ReR2T+Qw= +github.com/vertica/vertica-sql-go v1.3.3/go.mod h1:jnn2GFuv+O2Jcjktb7zyc4Utlbu9YVqpHH/lx63+1M4= github.com/xo/dburl v0.14.2 h1:tqiXv1glyxFph3LA39RXE4TYidr/yp7kG2YDrgJVjiA= github.com/xo/dburl v0.14.2/go.mod h1:B7/G9FGungw6ighV8xJNwWYQPMfn3gsi2sn5SE8Bzco= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= From 776e2cdc6057c9f2af7122e13109676a3a860194 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Aug 2023 18:09:33 +0200 Subject: [PATCH 076/401] deps: bump github.com/microsoft/go-mssqldb from 1.4.0 to 1.5.0 (#279) Bumps [github.com/microsoft/go-mssqldb](https://github.com/microsoft/go-mssqldb) from 1.4.0 to 1.5.0. - [Release notes](https://github.com/microsoft/go-mssqldb/releases) - [Changelog](https://github.com/microsoft/go-mssqldb/blob/main/CHANGELOG.md) - [Commits](https://github.com/microsoft/go-mssqldb/compare/v1.4.0...v1.5.0) --- updated-dependencies: - dependency-name: github.com/microsoft/go-mssqldb dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 359a5fde..84f9130b 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/jackc/pgx/v4 v4.18.1 github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.9 - github.com/microsoft/go-mssqldb v1.4.0 + github.com/microsoft/go-mssqldb v1.5.0 github.com/prometheus/client_golang v1.16.0 github.com/prometheus/client_model v0.4.0 github.com/prometheus/common v0.44.0 diff --git a/go.sum b/go.sum index 43446785..d6c1c405 100644 --- a/go.sum +++ b/go.sum @@ -254,8 +254,8 @@ github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Ky github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/microsoft/go-mssqldb v1.4.0 h1:fhRa6Ftf78dtv1Kj4i1YQoK3VUoce4phkBLoaE0NIaQ= -github.com/microsoft/go-mssqldb v1.4.0/go.mod h1:lmWsjHD8XX/Txr0f8ZqgbEZSC+BZjmEQy/Ms+rLrvho= +github.com/microsoft/go-mssqldb v1.5.0 h1:CgENxkwtOBNj3Jg6T1X209y2blCfTTcwuOlznd2k9fk= +github.com/microsoft/go-mssqldb v1.5.0/go.mod h1:lmWsjHD8XX/Txr0f8ZqgbEZSC+BZjmEQy/Ms+rLrvho= github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8 h1:AMFGa4R4MiIpspGNG7Z948v4n35fFGB3RR3G/ry4FWs= github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY= github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3 h1:+n/aFZefKZp7spd8DFdX7uMikMLXX4oubIzJF4kv/wI= From f7ad22c78cdc50bad899fd88680a2ef4e0ee0049 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Thu, 17 Aug 2023 18:22:49 +0200 Subject: [PATCH 077/401] deps: update dburl to v0.16.0 (#288) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 84f9130b..5750b466 100644 --- a/go.mod +++ b/go.mod @@ -18,7 +18,7 @@ require ( github.com/prometheus/exporter-toolkit v0.10.0 github.com/snowflakedb/gosnowflake v1.6.23 github.com/vertica/vertica-sql-go v1.3.3 - github.com/xo/dburl v0.14.2 + github.com/xo/dburl v0.16.0 google.golang.org/protobuf v1.31.0 gopkg.in/yaml.v3 v3.0.1 k8s.io/klog/v2 v2.70.1 diff --git a/go.sum b/go.sum index d6c1c405..bc16d9a5 100644 --- a/go.sum +++ b/go.sum @@ -324,8 +324,8 @@ github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKs github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/vertica/vertica-sql-go v1.3.3 h1:fL+FKEAEy5ONmsvya2WH5T8bhkvY27y/Ik3ReR2T+Qw= github.com/vertica/vertica-sql-go v1.3.3/go.mod h1:jnn2GFuv+O2Jcjktb7zyc4Utlbu9YVqpHH/lx63+1M4= -github.com/xo/dburl v0.14.2 h1:tqiXv1glyxFph3LA39RXE4TYidr/yp7kG2YDrgJVjiA= -github.com/xo/dburl v0.14.2/go.mod h1:B7/G9FGungw6ighV8xJNwWYQPMfn3gsi2sn5SE8Bzco= +github.com/xo/dburl v0.16.0 h1:jlBeGe8fnsW+vBYemte903WHQbJnZx7OpJZy2ofq+5g= +github.com/xo/dburl v0.16.0/go.mod h1:B7/G9FGungw6ighV8xJNwWYQPMfn3gsi2sn5SE8Bzco= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= From e934efa67f5702a96f6b6a1632b7e78fc678d66b Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Thu, 17 Aug 2023 18:26:26 +0200 Subject: [PATCH 078/401] Bump up version to 0.12.0 (#289) --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index af88ba82..ac454c6a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.11.1 +0.12.0 From f27aad9d9c75421a844242345dd10ccc14594a8a Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Thu, 17 Aug 2023 20:08:42 +0200 Subject: [PATCH 079/401] docs: add multiple connections section, formatting (#290) * docs: formatting * docs: add multiple connections section * docs: fix header --- README.md | 64 ++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 49 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 99e2ff6e..329e24d7 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # Prometheus SQL Exporter [![Go](https://github.com/burningalchemist/sql_exporter/workflows/Go/badge.svg)](https://github.com/burningalchemist/sql_exporter/actions?query=workflow%3AGo) [![Go Report Card](https://goreportcard.com/badge/github.com/burningalchemist/sql_exporter)](https://goreportcard.com/report/github.com/burningalchemist/sql_exporter) [![Docker Pulls](https://img.shields.io/docker/pulls/burningalchemist/sql_exporter)](https://hub.docker.com/r/burningalchemist/sql_exporter) ![Downloads](https://img.shields.io/github/downloads/burningalchemist/sql_exporter/total) -This is a permanent fork of Database agnostic SQL exporter for [Prometheus](https://prometheus.io) created by [@free](https://github.com/free/sql_exporter). +This is a permanent fork of Database agnostic SQL exporter for [Prometheus](https://prometheus.io) created by +[@free](https://github.com/free/sql_exporter). ## Overview @@ -59,7 +60,9 @@ By default we produce a binary with all the supported drivers with the following make build ``` -It's also possible to reduce the size of the binary by only including specific set of drivers like Postgres, MySQL and MSSQL. In this case we need to update `drivers.go`. To avoid manual manipulation there is a helper code generator available, so we can run the following commands: +It's also possible to reduce the size of the binary by only including specific set of drivers like Postgres, MySQL and +MSSQL. In this case we need to update `drivers.go`. To avoid manual manipulation there is a helper code generator +available, so we can run the following commands: ```shell make drivers-minimal @@ -70,7 +73,8 @@ The first command will regenerate `drivers.go` file with a minimal set of import Running `make drivers-all` will regenerate driver set back to the current defaults. -Feel free to revisit and add more drivers as required. There's also the `custom` list that allows managing a separate list of drivers for special needs. +Feel free to revisit and add more drivers as required. There's also the `custom` list that allows managing a separate +list of drivers for special needs. ## Run as a Windows service @@ -180,7 +184,7 @@ metrics: GROUP BY Market ``` -### Data Source Names +### Data Source Names (DSN) To keep things simple and yet allow fully configurable database connections, SQL Exporter uses DSNs (like `sqlserver://prom_user:prom_password@dbserver1.example.com:1433`) to refer to database instances. @@ -194,33 +198,42 @@ mysql://user:pass@localhost/dbname - for TCP connection mysql:/var/run/mysqld/mysqld.sock - for Unix socket connection ``` -If your DSN contains special characters in any part of your connection string (including passwords), you might need to apply -[URL encoding](https://en.wikipedia.org/wiki/URL_encoding#Reserved_characters) (percent-encoding) to them. +If your DSN contains special characters in any part of your connection string (including passwords), you might need to +apply [URL encoding](https://en.wikipedia.org/wiki/URL_encoding#Reserved_characters) (percent-encoding) to them. For example, `p@$$w0rd#abc` then becomes `p%40%24%24w0rd%23abc`. For additional details please refer to [xo/dburl](https://github.com/xo/dburl) documentation. + #### Using AWS Secrets Manager -If the database runs on AWS EC2 instance, this is a secure option to store the `Data source name` without having it in the configuration file. -To use this option: -- Create a [secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html) in key/value pairs format, specify Key `data_source_name` and then for Value enter the DSN value. - For the secret name, enter a name for your secret, and pass that name in the configuration file as a value for `aws_secret_name` item under `target`. Secret json example: +If the database runs on AWS EC2 instance, this is a secure option to store the DSN without having it in +the configuration file. To use this option: -``` +- Create a [secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html) in + key/value pairs format, specify Key `data_source_name` and then for Value enter the DSN value. + For the secret name, enter a name for your secret, and pass that name in the configuration file as a value for + `aws_secret_name` item under `target`. Secret json example: + +```json { "data_source_name": "sqlserver://prom_user:prom_password@dbserver1.example.com:1433" } ``` -- Configuration file Example -``` +- Configuration file example: + +```yaml ... target: aws_secret_name: '' ... ``` -- Allow read-only access from EC2 IAM role to the secret by attaching a [resource-based policy](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_resource-based-policies.html) to the secret. Policy Example: -``` + +- Allow read-only access from EC2 IAM role to the secret by attaching a [resource-based +policy](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_resource-based-policies.html) to +the secret. Policy example: + +```json { "Version" : "2012-10-17", "Statement" : [ @@ -234,6 +247,27 @@ target: } ``` +Currently, AWS Secret Manager integration is only available for a single target configuration. + +### Multiple database connections + +It is possible to run a single exporter instance against multiple database connections. In this case we need to +configure `jobs` list instead of the `target` section as in the following example: + +```yaml +jobs: + - job_name: db_targets + collectors: [pricing_data_freshness, pricing_*] + static_configs: + - targets: + pg1: 'pg://db1@127.0.0.1:25432/postgres?sslmode=disable' + pg2: 'pg://db2@127.0.0.1:25432/testdb?sslmode=disable' +``` + +, where DSN strings are assigned to the arbitrary instance names (i.e. pg1 and pg2). + +We can also define multiple jobs to run different collectors against different target sets. + ### TLS and Basic Authentication SQL Exporter supports TLS and Basic Authentication. This enables better control of the various HTTP endpoints. From 1d1243712fb638db11431e3d5228bd443eb29154 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Mon, 21 Aug 2023 11:56:56 +0200 Subject: [PATCH 080/401] fix: adopt driver-picking logic from dburl 0.16 (#291) --- sql.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/sql.go b/sql.go index 9f511738..95976d58 100644 --- a/sql.go +++ b/sql.go @@ -27,9 +27,14 @@ func OpenConnection(ctx context.Context, logContext, dsn string, maxConns, maxId return nil, err } + driver := url.Driver + if url.GoDriver != "" { + driver = url.GoDriver + } + // Open the DB handle in a separate goroutine so we can terminate early if the context closes. go func() { - conn, err = sql.Open(url.Driver, url.DSN) + conn, err = sql.Open(driver, url.DSN) close(ch) }() @@ -50,7 +55,7 @@ func OpenConnection(ctx context.Context, logContext, dsn string, maxConns, maxId if len(logContext) > 0 { logContext = fmt.Sprintf("[%s] ", logContext) } - klog.Infof("%sDatabase handle successfully opened with '%s' driver", logContext, url.Driver) + klog.Infof("%sDatabase handle successfully opened with '%s' driver", logContext, driver) } return conn, nil } From 1cfbd6095ac7303621a73aef74841721dc2e22c2 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Mon, 21 Aug 2023 11:57:11 +0200 Subject: [PATCH 081/401] Bump up version to 0.12.1 (#292) --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index ac454c6a..34a83616 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.12.0 +0.12.1 From dd0d2102d45ed08b865e7faaf1c7e4e6bc92e42c Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Wed, 23 Aug 2023 11:01:46 +0200 Subject: [PATCH 082/401] build: skip building for documentation commits (#294) --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b5488d67..f098ddf2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,6 +10,7 @@ on: jobs: build: + if: ${{ !startsWith(github.event.head_commit.message, 'docs:') }} name: Build runs-on: ubuntu-latest steps: From db21f3580fc433836e4c8d719fb60da09e62c013 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Wed, 23 Aug 2023 11:25:46 +0200 Subject: [PATCH 083/401] build: skip building for documentation commits - codeql (#295) build: skip building for documentation commits --- .github/workflows/codeql-analysis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 2787ffe2..ec83ff81 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -11,6 +11,9 @@ on: jobs: analyze: + if: | + ${{ !startsWith(github.event.head_commit.message, 'docs:') }} || + ${{ !startsWith(github.event.head_commit.message, 'build:') }} name: Analyze runs-on: ubuntu-latest From 173bc81feb630b92799d2cb58614da9b071bce2e Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Sun, 27 Aug 2023 21:07:08 +0200 Subject: [PATCH 084/401] chore: add .vscode to .gitignore (#300) --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index da62d065..d805f1cf 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ /.project /.settings +/.vscode /sql_exporter /sql_exporter.yml From 2e0aa4394003888a3fa73a36095a64db7bd61e0e Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Fri, 1 Sep 2023 16:31:58 +0200 Subject: [PATCH 085/401] fix: wrap remaining errors in klog.Errorf() (#304) --- cmd/sql_exporter/promhttp.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/sql_exporter/promhttp.go b/cmd/sql_exporter/promhttp.go index e48d370c..94571747 100644 --- a/cmd/sql_exporter/promhttp.go +++ b/cmd/sql_exporter/promhttp.go @@ -36,7 +36,7 @@ func ExporterHandlerFor(exporter sql_exporter.Exporter) http.Handler { gatherer := prometheus.Gatherers{exporter.WithContext(ctx)} mfs, err := gatherer.Gather() if err != nil { - klog.Infof("Error gathering metrics: %s", err) + klog.Errorf("Error gathering metrics: %s", err) if len(mfs) == 0 { http.Error(w, "No metrics gathered, "+err.Error(), http.StatusInternalServerError) return @@ -52,7 +52,7 @@ func ExporterHandlerFor(exporter sql_exporter.Exporter) http.Handler { for _, mf := range mfs { if err := enc.Encode(mf); err != nil { errs = append(errs, err) - klog.Infof("Error encoding metric family %q: %s", mf.GetName(), err) + klog.Errorf("Error encoding metric family %q: %s", mf.GetName(), err) } } if closer, ok := writer.(io.Closer); ok { From 4ebfcae0b0bb3d4b6a5e8694ec209173ccb3c166 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 2 Sep 2023 12:05:38 +0200 Subject: [PATCH 086/401] deps: bump github.com/microsoft/go-mssqldb from 1.5.0 to 1.6.0 (#305) Bumps [github.com/microsoft/go-mssqldb](https://github.com/microsoft/go-mssqldb) from 1.5.0 to 1.6.0. - [Release notes](https://github.com/microsoft/go-mssqldb/releases) - [Changelog](https://github.com/microsoft/go-mssqldb/blob/main/CHANGELOG.md) - [Commits](https://github.com/microsoft/go-mssqldb/compare/v1.5.0...v1.6.0) --- updated-dependencies: - dependency-name: github.com/microsoft/go-mssqldb dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 18 ++++++++--------- go.sum | 63 ++++++++++++++++++++-------------------------------------- 2 files changed, 31 insertions(+), 50 deletions(-) diff --git a/go.mod b/go.mod index 5750b466..78170296 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/jackc/pgx/v4 v4.18.1 github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.9 - github.com/microsoft/go-mssqldb v1.5.0 + github.com/microsoft/go-mssqldb v1.6.0 github.com/prometheus/client_golang v1.16.0 github.com/prometheus/client_model v0.4.0 github.com/prometheus/common v0.44.0 @@ -27,11 +27,11 @@ require ( require ( github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.2 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.6.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.1 // indirect github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0 // indirect - github.com/AzureAD/microsoft-authentication-library-for-go v1.0.0 // indirect + github.com/AzureAD/microsoft-authentication-library-for-go v1.1.0 // indirect github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c // indirect github.com/andybalholm/brotli v1.0.4 // indirect github.com/apache/arrow/go/v12 v12.0.1 // indirect @@ -68,7 +68,7 @@ require ( github.com/go-logfmt/logfmt v0.5.1 // indirect github.com/goccy/go-json v0.10.0 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect - github.com/golang-jwt/jwt/v4 v4.5.0 // indirect + github.com/golang-jwt/jwt/v5 v5.0.0 // indirect github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 // indirect github.com/golang-sql/sqlexp v0.1.0 // indirect github.com/golang/protobuf v1.5.3 // indirect @@ -102,15 +102,15 @@ require ( github.com/prometheus/procfs v0.10.1 // indirect github.com/sirupsen/logrus v1.9.0 // indirect github.com/zeebo/xxh3 v1.0.2 // indirect - golang.org/x/crypto v0.9.0 // indirect + golang.org/x/crypto v0.12.0 // indirect golang.org/x/exp v0.0.0-20230321023759-10a507213a29 // indirect golang.org/x/mod v0.8.0 // indirect - golang.org/x/net v0.10.0 // indirect + golang.org/x/net v0.14.0 // indirect golang.org/x/oauth2 v0.8.0 // indirect golang.org/x/sync v0.2.0 // indirect - golang.org/x/sys v0.8.0 // indirect - golang.org/x/term v0.8.0 // indirect - golang.org/x/text v0.9.0 // indirect + golang.org/x/sys v0.11.0 // indirect + golang.org/x/term v0.11.0 // indirect + golang.org/x/text v0.12.0 // indirect golang.org/x/tools v0.6.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect google.golang.org/appengine v1.6.7 // indirect diff --git a/go.sum b/go.sum index bc16d9a5..143d4463 100644 --- a/go.sum +++ b/go.sum @@ -2,16 +2,18 @@ github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 h1:/vQbFIOMb github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4/go.mod h1:hN7oaIRCjzsZ2dE+yG5k+rsdt3qcwykqK6HVGcKwsw4= github.com/99designs/keyring v1.2.2 h1:pZd3neh/EmUzWONb35LxQfvuY7kiSXAq3HQd97+XBn0= github.com/99designs/keyring v1.2.2/go.mod h1:wes/FrByc8j7lFOAGLGSNEg8f/PaI3cgTBqhFkHUrPk= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.6.0 h1:8kDqDngH+DmVBiCtIjCFTGa7MBnsIOkF9IccInFEbjk= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.6.0/go.mod h1:bjGvMhVMb+EEm3VRNQawDMUyMMjo+S5ewNjflkep/0Q= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.1 h1:/iHxaJhsFr0+xVFfbMr5vxz848jyiWuIEDhYq3y5odY= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.1/go.mod h1:bjGvMhVMb+EEm3VRNQawDMUyMMjo+S5ewNjflkep/0Q= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.0 h1:vcYCAze6p19qBW7MhZybIsqD8sMV8js0NyQM8JDnVtg= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.0/go.mod h1:OQeznEEkTZ9OrhHJoDD8ZDq51FHgXjqtP9z6bEwBq9U= github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 h1:sXr+ck84g/ZlZUOZiNELInmMgOsuGwdjjVkEIde0OtY= github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0/go.mod h1:okt5dMMTOFjX/aovMlrjvvXoPMBVSPzk9185BT0+eZM= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.0.0 h1:yfJe15aSwEQ6Oo6J+gdfdulPNoZ3TEhmbhLIoxZcA+U= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v0.8.0 h1:T028gtTPiYt/RMUfs8nVsAL7FDQrfLlrm/NnRG/zcC4= github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0 h1:u/LLAOFgsMv7HmNL4Qufg58y+qElGOt5qv0z1mURkRY= github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0/go.mod h1:2e8rMJtl2+2j+HXbTBwnyGpm5Nou7KhvSfxOq8JpTag= -github.com/AzureAD/microsoft-authentication-library-for-go v1.0.0 h1:OBhqkivkhkMqLPymWEppkm7vgPQY2XsHoEkaMQ0AdZY= -github.com/AzureAD/microsoft-authentication-library-for-go v1.0.0/go.mod h1:kgDmCTgBzIEPFElEF+FK0SdjAor06dRq2Go927dnQ6o= +github.com/AzureAD/microsoft-authentication-library-for-go v1.1.0 h1:HCc0+LpPfpCKs6LGGLAhwBARt9632unrVcI6i8s/8os= +github.com/AzureAD/microsoft-authentication-library-for-go v1.1.0/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/ClickHouse/clickhouse-go v1.5.4 h1:cKjXeYLNWVJIx2J1K6H2CqyRmfwVJVY1OV1coaaFcI0= github.com/ClickHouse/clickhouse-go v1.5.4/go.mod h1:EaI/sW7Azgz9UATzd5ZdZHRUhHgv5+JMS9NSr2smCJI= @@ -98,9 +100,7 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dnaeon/go-vcr v1.1.0/go.mod h1:M7tiix8f0r6mKKJ3Yq/kqU1OYf3MnfmBWVbPx/yU9ko= github.com/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI= -github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= github.com/dvsekhvalnov/jose2go v1.5.0 h1:3j8ya4Z4kMCwT5nXIKFSV84YS+HdqSSO0VsTQxaLAeM= github.com/dvsekhvalnov/jose2go v1.5.0/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB/mPZadG+mhXU= github.com/elastic/go-sysinfo v1.8.1 h1:4Yhj+HdV6WjbCRgGdZpPJ8lZQlXZLKDAeIkmQ/VRvi4= @@ -128,9 +128,10 @@ github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6 github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofrs/uuid v4.0.0+incompatible h1:1SD/1F5pU8p29ybwgQSwpQk+mwdRrXCYuPhW6m+TnJw= github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= -github.com/golang-jwt/jwt/v4 v4.4.3/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang-jwt/jwt v3.2.1+incompatible h1:73Z+4BJcrTC+KczS6WvTPvRGOp1WmfEP4Q1lOd9Z/+c= github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= -github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang-jwt/jwt/v5 v5.0.0 h1:1n1XNM9hk7O9mnQoNBGolZvzebBQ7p93ULHRc28XJUE= +github.com/golang-jwt/jwt/v5 v5.0.0/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA= github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A= @@ -151,12 +152,8 @@ github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= -github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c h1:6rhixN/i8ZofjG1Y75iExal34USq5p+wiN1tpie8IrU= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c/go.mod h1:NMPJylDgVpX0MLRlPy15sqSwOFv/U1GZ2m21JhFfek0= -github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/jackc/chunkreader v1.0.0/go.mod h1:RT6O25fNZIuasFJRyZ4R/Y2BbhasbmZXF9QQ7T3kePo= github.com/jackc/chunkreader/v2 v2.0.0/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk= github.com/jackc/chunkreader/v2 v2.0.1 h1:i+RDz65UE+mmpjTfyz0MoVTnzeYxroil2G82ki7MGG8= @@ -205,12 +202,6 @@ github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0f github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v1.3.0/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= -github.com/jcmturner/aescts/v2 v2.0.0/go.mod h1:AiaICIRyfYg35RUkr8yESTqvSy7csK90qZ5xfvvsoNs= -github.com/jcmturner/dnsutils/v2 v2.0.0/go.mod h1:b0TnjGOvI/n42bZa+hmXL+kFJZsFT7G4t3HTlQ184QM= -github.com/jcmturner/gofork v1.7.6/go.mod h1:1622LH6i/EZqLloHfE7IeZ0uEJwMSUyQ/nDd82IeqRo= -github.com/jcmturner/goidentity/v6 v6.0.1/go.mod h1:X1YW3bgtvwAXju7V3LCIMpY0Gbxyjn/mY9zx4tFonSg= -github.com/jcmturner/gokrb5/v8 v8.4.4/go.mod h1:1btQEpgT6k+unzCwX1KdWMEwPPkkgBtP+F6aCACiMrs= -github.com/jcmturner/rpc/v2 v2.0.3/go.mod h1:VUJYCIDm3PVOEHw8sgt091/20OJjskO/YJki3ELg/Hc= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= @@ -254,14 +245,12 @@ github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Ky github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/microsoft/go-mssqldb v1.5.0 h1:CgENxkwtOBNj3Jg6T1X209y2blCfTTcwuOlznd2k9fk= -github.com/microsoft/go-mssqldb v1.5.0/go.mod h1:lmWsjHD8XX/Txr0f8ZqgbEZSC+BZjmEQy/Ms+rLrvho= +github.com/microsoft/go-mssqldb v1.6.0 h1:mM3gYdVwEPFrlg/Dvr2DNVEgYFG7L42l+dGc67NNNpc= +github.com/microsoft/go-mssqldb v1.6.0/go.mod h1:00mDtPbeQCRGC1HwOOR5K/gr30P1NcEG0vx6Kbv2aJU= github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8 h1:AMFGa4R4MiIpspGNG7Z948v4n35fFGB3RR3G/ry4FWs= github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY= github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3 h1:+n/aFZefKZp7spd8DFdX7uMikMLXX4oubIzJF4kv/wI= github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3/go.mod h1:RagcQ7I8IeTMnF8JTXieKnO4Z6JCsikNEzj0DwauVzE= -github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8= -github.com/montanaflynn/stats v0.7.0/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs= github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ibNBTZrns= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= @@ -320,8 +309,8 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5 github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/vertica/vertica-sql-go v1.3.3 h1:fL+FKEAEy5ONmsvya2WH5T8bhkvY27y/Ik3ReR2T+Qw= github.com/vertica/vertica-sql-go v1.3.3/go.mod h1:jnn2GFuv+O2Jcjktb7zyc4Utlbu9YVqpHH/lx63+1M4= github.com/xo/dburl v0.16.0 h1:jlBeGe8fnsW+vBYemte903WHQbJnZx7OpJZy2ofq+5g= @@ -353,9 +342,8 @@ golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= -golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g= -golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= +golang.org/x/crypto v0.12.0 h1:tFM/ta59kqch6LlvYnPa0yx5a83cL2nHflFhYKvv9Yk= +golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= golang.org/x/exp v0.0.0-20230321023759-10a507213a29 h1:ooxPy7fPvB4kwsA2h+iBNHkAbp/4JxTSwCmvdjEYmug= golang.org/x/exp v0.0.0-20230321023759-10a507213a29/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -370,20 +358,16 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= -golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.14.0 h1:BONx9s002vGdD9umnlX1Po8vOZmrgH34qlHcD1MfK14= +golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8= golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI= golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -405,16 +389,14 @@ golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM= +golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= -golang.org/x/term v0.8.0 h1:n5xxQn2i3PC0yLAbjTpNT85q/Kgzcr2gIoX9OrJUols= -golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.11.0 h1:F9tnn/DA/Im8nCwm+fX+1/eBwi4qFjRT++MhtVC4ZX0= +golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -422,9 +404,8 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= -golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc= +golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425163242-31fd60d6bfdc/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= From 14767058619fc3b84c47e7063272a64b14525cc0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 2 Sep 2023 19:07:04 +0200 Subject: [PATCH 087/401] deps: bump github.com/aws/aws-sdk-go-v2 from 1.20.1 to 1.21.0 (#308) Bumps [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) from 1.20.1 to 1.21.0. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.20.1...v1.21.0) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 78170296..d9518917 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.18 require ( github.com/ClickHouse/clickhouse-go v1.5.4 - github.com/aws/aws-sdk-go-v2 v1.20.1 + github.com/aws/aws-sdk-go-v2 v1.21.0 github.com/aws/aws-sdk-go-v2/config v1.18.33 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.20.2 github.com/go-sql-driver/mysql v1.7.1 @@ -52,7 +52,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/sso v1.13.2 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.15.2 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.21.2 // indirect - github.com/aws/smithy-go v1.14.1 // indirect + github.com/aws/smithy-go v1.14.2 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 // indirect diff --git a/go.sum b/go.sum index 143d4463..5630315b 100644 --- a/go.sum +++ b/go.sum @@ -28,8 +28,9 @@ github.com/apache/arrow/go/v12 v12.0.1/go.mod h1:weuTY7JvTG/HDPtMQxEUp7pU73vkLWM github.com/apache/thrift v0.16.0 h1:qEy6UW60iVOlUy+b9ZR0d5WzUWYGOo4HfopoyBaNmoY= github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= github.com/aws/aws-sdk-go-v2 v1.17.7/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= -github.com/aws/aws-sdk-go-v2 v1.20.1 h1:rZBf5DWr7YGrnlTK4kgDQGn1ltqOg5orCYb/UhOFZkg= github.com/aws/aws-sdk-go-v2 v1.20.1/go.mod h1:NU06lETsFm8fUC6ZjhgDpVBcGZTFQ6XM+LZWZxMI4ac= +github.com/aws/aws-sdk-go-v2 v1.21.0 h1:gMT0IW+03wtYJhRqTVYn0wLzwdnK9sRMcxmtfGzRdJc= +github.com/aws/aws-sdk-go-v2 v1.21.0/go.mod h1:/RfNgGmRxI+iFOB1OeJUyxiU+9s88k3pfHvDagGEp0M= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10/go.mod h1:VeTZetY5KRJLuD/7fkQXMU6Mw7H5m/KP2J5Iy9osMno= github.com/aws/aws-sdk-go-v2/config v1.18.19/go.mod h1:XvTmGMY8d52ougvakOv1RpiTLPz9dlG/OQHsKU/cMmY= @@ -77,8 +78,9 @@ github.com/aws/aws-sdk-go-v2/service/sts v1.18.7/go.mod h1:JuTnSoeePXmMVe9G8Ncjj github.com/aws/aws-sdk-go-v2/service/sts v1.21.2 h1:ympg1+Lnq33XLhcK/xTG4yZHPs1Oyxu+6DEWbl7qOzA= github.com/aws/aws-sdk-go-v2/service/sts v1.21.2/go.mod h1:FQ/DQcOfESELfJi5ED+IPPAjI5xC6nxtSolVVB773jM= github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= -github.com/aws/smithy-go v1.14.1 h1:EFKMUmH/iHMqLiwoEDx2rRjRQpI1YCn5jTysoaDujFs= github.com/aws/smithy-go v1.14.1/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= +github.com/aws/smithy-go v1.14.2 h1:MJU9hqBGbvWZdApzpvoF2WAIJDbtjK2NDJSiJP7HblQ= +github.com/aws/smithy-go v1.14.2/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bkaradzic/go-lz4 v1.0.0 h1:RXc4wYsyz985CkXXeX04y4VnZFGG8Rd43pRaHsOXAKk= From 7ab118348a3d4267865712daa9843a4b06ddc9c0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 2 Sep 2023 19:23:14 +0200 Subject: [PATCH 088/401] deps: bump github.com/aws/aws-sdk-go-v2/config from 1.18.33 to 1.18.38 (#306) --- go.mod | 20 ++++++++++---------- go.sum | 38 ++++++++++++++++++++------------------ 2 files changed, 30 insertions(+), 28 deletions(-) diff --git a/go.mod b/go.mod index d9518917..f9fa0cb8 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.18 require ( github.com/ClickHouse/clickhouse-go v1.5.4 github.com/aws/aws-sdk-go-v2 v1.21.0 - github.com/aws/aws-sdk-go-v2/config v1.18.33 + github.com/aws/aws-sdk-go-v2/config v1.18.38 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.20.2 github.com/go-sql-driver/mysql v1.7.1 github.com/jackc/pgx/v4 v4.18.1 @@ -37,21 +37,21 @@ require ( github.com/apache/arrow/go/v12 v12.0.1 // indirect github.com/apache/thrift v0.16.0 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.13.32 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.8 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.13.36 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.11 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.38 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.32 // indirect - github.com/aws/aws-sdk-go-v2/internal/ini v1.3.39 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.41 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.35 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.3.42 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 // indirect github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.32 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.35 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 // indirect github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.13.2 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.15.2 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.21.2 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.13.6 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.15.5 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.21.5 // indirect github.com/aws/smithy-go v1.14.2 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect diff --git a/go.sum b/go.sum index 5630315b..bf2c9d21 100644 --- a/go.sum +++ b/go.sum @@ -34,25 +34,27 @@ github.com/aws/aws-sdk-go-v2 v1.21.0/go.mod h1:/RfNgGmRxI+iFOB1OeJUyxiU+9s88k3pf github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10/go.mod h1:VeTZetY5KRJLuD/7fkQXMU6Mw7H5m/KP2J5Iy9osMno= github.com/aws/aws-sdk-go-v2/config v1.18.19/go.mod h1:XvTmGMY8d52ougvakOv1RpiTLPz9dlG/OQHsKU/cMmY= -github.com/aws/aws-sdk-go-v2/config v1.18.33 h1:JKcw5SFxFW/rpM4mOPjv0VQ11E2kxW13F3exWOy7VZU= -github.com/aws/aws-sdk-go-v2/config v1.18.33/go.mod h1:hXO/l9pgY3K5oZJldamP0pbZHdPqqk+4/maa7DSD3cA= +github.com/aws/aws-sdk-go-v2/config v1.18.38 h1:CByQCELMgm2tM1lAehx3XNg0R/pfeXsYzqn0Aq2chJQ= +github.com/aws/aws-sdk-go-v2/config v1.18.38/go.mod h1:vNm9Hf5VgG2fSUWhT3zFrqN/RosGcabFMYgiSoxKFU8= github.com/aws/aws-sdk-go-v2/credentials v1.13.18/go.mod h1:vnwlwjIe+3XJPBYKu1et30ZPABG3VaXJYr8ryohpIyM= -github.com/aws/aws-sdk-go-v2/credentials v1.13.32 h1:lIH1eKPcCY1ylR4B6PkBGRWMHO3aVenOKJHWiS4/G2w= -github.com/aws/aws-sdk-go-v2/credentials v1.13.32/go.mod h1:lL8U3v/Y79YRG69WlAho0OHIKUXCyFvSXaIvfo81sls= +github.com/aws/aws-sdk-go-v2/credentials v1.13.36 h1:ps0cPswZjpsOk6sLwG6fdXTzrYjCplgPEyG3OUbbdqE= +github.com/aws/aws-sdk-go-v2/credentials v1.13.36/go.mod h1:sY2phUzxbygoyDtTXhqi7GjGjCQ1S5a5Rj8u3ksBxCg= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.1/go.mod h1:lfUx8puBRdM5lVVMQlwt2v+ofiG/X6Ms+dy0UkG/kXw= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.8 h1:DK/9C+UN/X+1+Wm8pqaDksQr2tSLzq+8X1/rI/ZxKEQ= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.8/go.mod h1:ce7BgLQfYr5hQFdy67oX2svto3ufGtm6oBvmsHScI1Q= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.11 h1:uDZJF1hu0EVT/4bogChk8DyjSF6fof6uL/0Y26Ma7Fg= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.11/go.mod h1:TEPP4tENqBGO99KwVpV9MlOX4NSrSLP8u3KRy2CDwA8= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 h1:E3Y+OfzOK1+rmRo/K2G0ml8Vs+Xqk0kOnf4nS0kUtBc= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59/go.mod h1:1M4PLSBUVfBI0aP+C9XI7SM6kZPCGYyI6izWz0TGprE= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.31/go.mod h1:QT0BqUvX1Bh2ABdTGnjqEjvjzrCfIniM9Sc8zn9Yndo= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.38 h1:c8ed/T9T2K5I+h/JzmF5tpI46+OODQ74dzmdo+QnaMg= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.38/go.mod h1:qggunOChCMu9ZF/UkAfhTz25+U2rLVb3ya0Ua6TTfCA= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.41 h1:22dGT7PneFMx4+b3pz7lMTRyN8ZKH7M2cW4GP9yUS2g= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.41/go.mod h1:CrObHAuPneJBlfEJ5T3szXOUkLEThaGfvnhTf33buas= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.25/go.mod h1:zBHOPwhBc3FlQjQJE/D3IfPWiWaQmT06Vq9aNukDo0k= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.32 h1:hNeAAymUY5gu11WrrmFb3CVIp9Dar9hbo44yzzcQpzA= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.32/go.mod h1:0ZXSqrty4FtQ7p8TEuRde/SZm9X05KT18LAUlR40Ln0= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.35 h1:SijA0mgjV8E+8G45ltVHs0fvKpTj8xmZJ3VwhGKtUSI= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.35/go.mod h1:SJC1nEVVva1g3pHAIdCp7QsRIkMmLAgoDquQ9Rr8kYw= github.com/aws/aws-sdk-go-v2/internal/ini v1.3.32/go.mod h1:XGhIBZDEgfqmFIugclZ6FU7v75nHhBDtzuB4xB/tEi4= -github.com/aws/aws-sdk-go-v2/internal/ini v1.3.39 h1:fc0ukRAiP1syoSGZYu+DaE+FulSYhTiJ8WpVu5jElU4= -github.com/aws/aws-sdk-go-v2/internal/ini v1.3.39/go.mod h1:WLAW8PT7+JhjZfLSWe7WEJaJu0GNo0cKc2Zyo003RBs= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.42 h1:GPUcE/Yq7Ur8YSUk6lVkoIMWnJNO0HT18GUzCWCgCI0= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.42/go.mod h1:rzfdUlfA+jdgLDmPKjd3Chq9V7LVLYo1Nz++Wb91aRo= github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 h1:DWYZIsyqagnWL00f8M/SOr9fN063OEQWn9LLTbdYXsk= github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23/go.mod h1:uIiFgURZbACBEQJfqTZPb/jxO7R+9LeoHUFudtIdeQI= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 h1:y2+VQzC6Zh2ojtV2LoC0MNwHWc6qXv/j2vrQtlftkdA= @@ -60,8 +62,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11/go.mod h1: github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26 h1:CeuSeq/8FnYpPtnuIeLQEEvDv9zUjneuYi8EghMBdwQ= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26/go.mod h1:2UqAAwMUXKeRkAHIlDJqvMVgOWkUi/AUXPk/YIe+Dg4= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.25/go.mod h1:/95IA+0lMnzW6XzqYJRpjjsAbKEORVeO0anQqjd2CNU= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.32 h1:dGAseBFEYxth10V23b5e2mAS+tX7oVbfYHD6dnDdAsg= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.32/go.mod h1:4jwAWKEkCR0anWk5+1RbfSg1R5Gzld7NLiuaq5bTR/Y= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.35 h1:CdzPW9kKitgIiLV1+MHobfR5Xg25iYnyzWZhyQuSlDI= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.35/go.mod h1:QGF2Rs33W5MaN9gYdEQOBBFPLwTZkEhRwI33f7KIG0o= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 h1:e2ooMhpYGhDnBfSvIyusvAwX7KexuZaHbQY2Dyei7VU= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0/go.mod h1:bh2E0CXKZsQN+faiKVqC40vfNMAWheoULBCnEgO9K+8= github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 h1:B1G2pSPvbAtQjilPq+Y7jLIzCOwKzuVEl+aBBaNG0AQ= @@ -69,14 +71,14 @@ github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0/go.mod h1:ncltU6n4Nof5uJttDtcNQ5 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.20.2 h1:vlkGQk8JiUo1KmZF4wsZP3qclbyQHSUvLMf8aPOS79g= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.20.2/go.mod h1:Z6Oq1mXqvgwmUxvMrV/jMkQhwm06A9XO015dzGnS8TM= github.com/aws/aws-sdk-go-v2/service/sso v1.12.6/go.mod h1:Y1VOmit/Fn6Tz1uFAeCO6Q7M2fmfXSCLeL5INVYsLuY= -github.com/aws/aws-sdk-go-v2/service/sso v1.13.2 h1:A2RlEMo4SJSwbNoUUgkxTAEMduAy/8wG3eB2b2lP4gY= -github.com/aws/aws-sdk-go-v2/service/sso v1.13.2/go.mod h1:ju+nNXUunfIFamXUIZQiICjnO/TPlOmWcYhZcSy7xaE= +github.com/aws/aws-sdk-go-v2/service/sso v1.13.6 h1:2PylFCfKCEDv6PeSN09pC/VUiRd10wi1VfHG5FrW0/g= +github.com/aws/aws-sdk-go-v2/service/sso v1.13.6/go.mod h1:fIAwKQKBFu90pBxx07BFOMJLpRUGu8VOzLJakeY+0K4= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.6/go.mod h1:Lh/bc9XUf8CfOY6Jp5aIkQtN+j1mc+nExc+KXj9jx2s= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.15.2 h1:OJELEgyaT2kmaBGZ+myyZbTTLobfe3ox3FSh5eYK9Qs= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.15.2/go.mod h1:ubDBBaDFs1GHijSOTi8ljppML15GLG0HxhILtbjNNYQ= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.15.5 h1:dnInJb4S0oy8aQuri1mV6ipLlnZPfnsDNB9BGO9PDNY= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.15.5/go.mod h1:yygr8ACQRY2PrEcy3xsUI357stq2AxnFM6DIsR9lij4= github.com/aws/aws-sdk-go-v2/service/sts v1.18.7/go.mod h1:JuTnSoeePXmMVe9G8NcjjwgOKEfZ4cOjMuT2IBT/2eI= -github.com/aws/aws-sdk-go-v2/service/sts v1.21.2 h1:ympg1+Lnq33XLhcK/xTG4yZHPs1Oyxu+6DEWbl7qOzA= -github.com/aws/aws-sdk-go-v2/service/sts v1.21.2/go.mod h1:FQ/DQcOfESELfJi5ED+IPPAjI5xC6nxtSolVVB773jM= +github.com/aws/aws-sdk-go-v2/service/sts v1.21.5 h1:CQBFElb0LS8RojMJlxRSo/HXipvTZW2S44Lt9Mk2aYQ= +github.com/aws/aws-sdk-go-v2/service/sts v1.21.5/go.mod h1:VC7JDqsqiwXukYEDjoHh9U0fOJtNWh04FPQz4ct4GGU= github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= github.com/aws/smithy-go v1.14.1/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= github.com/aws/smithy-go v1.14.2 h1:MJU9hqBGbvWZdApzpvoF2WAIJDbtjK2NDJSiJP7HblQ= From 9c9413ad663b671a6e0f084c85caef543ea0465f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 2 Sep 2023 20:38:19 +0200 Subject: [PATCH 089/401] deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager from 1.20.2 to 1.21.3 (#307) --- go.mod | 2 +- go.sum | 8 ++------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index f9fa0cb8..6b101d87 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/ClickHouse/clickhouse-go v1.5.4 github.com/aws/aws-sdk-go-v2 v1.21.0 github.com/aws/aws-sdk-go-v2/config v1.18.38 - github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.20.2 + github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.21.3 github.com/go-sql-driver/mysql v1.7.1 github.com/jackc/pgx/v4 v4.18.1 github.com/kardianos/minwinsvc v1.0.2 diff --git a/go.sum b/go.sum index bf2c9d21..116cf422 100644 --- a/go.sum +++ b/go.sum @@ -28,7 +28,6 @@ github.com/apache/arrow/go/v12 v12.0.1/go.mod h1:weuTY7JvTG/HDPtMQxEUp7pU73vkLWM github.com/apache/thrift v0.16.0 h1:qEy6UW60iVOlUy+b9ZR0d5WzUWYGOo4HfopoyBaNmoY= github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= github.com/aws/aws-sdk-go-v2 v1.17.7/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= -github.com/aws/aws-sdk-go-v2 v1.20.1/go.mod h1:NU06lETsFm8fUC6ZjhgDpVBcGZTFQ6XM+LZWZxMI4ac= github.com/aws/aws-sdk-go-v2 v1.21.0 h1:gMT0IW+03wtYJhRqTVYn0wLzwdnK9sRMcxmtfGzRdJc= github.com/aws/aws-sdk-go-v2 v1.21.0/go.mod h1:/RfNgGmRxI+iFOB1OeJUyxiU+9s88k3pfHvDagGEp0M= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs= @@ -45,11 +44,9 @@ github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.11/go.mod h1:TEPP4tENqBGO99K github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 h1:E3Y+OfzOK1+rmRo/K2G0ml8Vs+Xqk0kOnf4nS0kUtBc= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59/go.mod h1:1M4PLSBUVfBI0aP+C9XI7SM6kZPCGYyI6izWz0TGprE= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.31/go.mod h1:QT0BqUvX1Bh2ABdTGnjqEjvjzrCfIniM9Sc8zn9Yndo= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.38/go.mod h1:qggunOChCMu9ZF/UkAfhTz25+U2rLVb3ya0Ua6TTfCA= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.41 h1:22dGT7PneFMx4+b3pz7lMTRyN8ZKH7M2cW4GP9yUS2g= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.41/go.mod h1:CrObHAuPneJBlfEJ5T3szXOUkLEThaGfvnhTf33buas= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.25/go.mod h1:zBHOPwhBc3FlQjQJE/D3IfPWiWaQmT06Vq9aNukDo0k= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.32/go.mod h1:0ZXSqrty4FtQ7p8TEuRde/SZm9X05KT18LAUlR40Ln0= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.35 h1:SijA0mgjV8E+8G45ltVHs0fvKpTj8xmZJ3VwhGKtUSI= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.35/go.mod h1:SJC1nEVVva1g3pHAIdCp7QsRIkMmLAgoDquQ9Rr8kYw= github.com/aws/aws-sdk-go-v2/internal/ini v1.3.32/go.mod h1:XGhIBZDEgfqmFIugclZ6FU7v75nHhBDtzuB4xB/tEi4= @@ -68,8 +65,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 h1:e2ooMhpYGhDnBf github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0/go.mod h1:bh2E0CXKZsQN+faiKVqC40vfNMAWheoULBCnEgO9K+8= github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 h1:B1G2pSPvbAtQjilPq+Y7jLIzCOwKzuVEl+aBBaNG0AQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0/go.mod h1:ncltU6n4Nof5uJttDtcNQ537uNuwYqsZZQcpkd2/GUQ= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.20.2 h1:vlkGQk8JiUo1KmZF4wsZP3qclbyQHSUvLMf8aPOS79g= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.20.2/go.mod h1:Z6Oq1mXqvgwmUxvMrV/jMkQhwm06A9XO015dzGnS8TM= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.21.3 h1:H6ZipEknzu7RkJW3w2PP75zd8XOdR35AEY5D57YrJtA= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.21.3/go.mod h1:5W2cYXDPabUmwULErlC92ffLhtTuyv4ai+5HhdbhfNo= github.com/aws/aws-sdk-go-v2/service/sso v1.12.6/go.mod h1:Y1VOmit/Fn6Tz1uFAeCO6Q7M2fmfXSCLeL5INVYsLuY= github.com/aws/aws-sdk-go-v2/service/sso v1.13.6 h1:2PylFCfKCEDv6PeSN09pC/VUiRd10wi1VfHG5FrW0/g= github.com/aws/aws-sdk-go-v2/service/sso v1.13.6/go.mod h1:fIAwKQKBFu90pBxx07BFOMJLpRUGu8VOzLJakeY+0K4= @@ -80,7 +77,6 @@ github.com/aws/aws-sdk-go-v2/service/sts v1.18.7/go.mod h1:JuTnSoeePXmMVe9G8Ncjj github.com/aws/aws-sdk-go-v2/service/sts v1.21.5 h1:CQBFElb0LS8RojMJlxRSo/HXipvTZW2S44Lt9Mk2aYQ= github.com/aws/aws-sdk-go-v2/service/sts v1.21.5/go.mod h1:VC7JDqsqiwXukYEDjoHh9U0fOJtNWh04FPQz4ct4GGU= github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= -github.com/aws/smithy-go v1.14.1/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= github.com/aws/smithy-go v1.14.2 h1:MJU9hqBGbvWZdApzpvoF2WAIJDbtjK2NDJSiJP7HblQ= github.com/aws/smithy-go v1.14.2/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= From b1fa581f439d5a40b7abdf738b2502a73d601c53 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 2 Sep 2023 20:46:40 +0200 Subject: [PATCH 090/401] deps: bump github.com/snowflakedb/gosnowflake from 1.6.23 to 1.6.24 (#309) Bumps [github.com/snowflakedb/gosnowflake](https://github.com/snowflakedb/gosnowflake) from 1.6.23 to 1.6.24. - [Release notes](https://github.com/snowflakedb/gosnowflake/releases) - [Changelog](https://github.com/snowflakedb/gosnowflake/blob/master/release.go) - [Commits](https://github.com/snowflakedb/gosnowflake/compare/v1.6.23...v1.6.24) --- updated-dependencies: - dependency-name: github.com/snowflakedb/gosnowflake dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 6b101d87..cc856193 100644 --- a/go.mod +++ b/go.mod @@ -16,7 +16,7 @@ require ( github.com/prometheus/client_model v0.4.0 github.com/prometheus/common v0.44.0 github.com/prometheus/exporter-toolkit v0.10.0 - github.com/snowflakedb/gosnowflake v1.6.23 + github.com/snowflakedb/gosnowflake v1.6.24 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.16.0 google.golang.org/protobuf v1.31.0 diff --git a/go.sum b/go.sum index 116cf422..d9c77126 100644 --- a/go.sum +++ b/go.sum @@ -294,8 +294,8 @@ github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMB github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/snowflakedb/gosnowflake v1.6.23 h1:uO+zMTXJcSHzOm6ks5To8ergNjt5Dy6cr5QtStpRFT8= -github.com/snowflakedb/gosnowflake v1.6.23/go.mod h1:KfO4F7bk+aXPUIvBqYxvPhxLlu2/w4TtSC8Rw/yr5Mg= +github.com/snowflakedb/gosnowflake v1.6.24 h1:NiBh1WSstNtr12qywmdFMS1XHaYdF5iWWGnjIQb1cEY= +github.com/snowflakedb/gosnowflake v1.6.24/go.mod h1:KfO4F7bk+aXPUIvBqYxvPhxLlu2/w4TtSC8Rw/yr5Mg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= From 338cc5e59902247b886344a391a552db13437e55 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Sun, 10 Sep 2023 18:18:23 +0200 Subject: [PATCH 091/401] fix: revisit reloadCollectors function, support jobs reloading (#298) * fix: revisit reloadCollectors func, reload jobs * chore: replace `interface` with `any` * docs: fix func comments * fix: repopulate target list correctly * fix: attach resolved collectors only * docs: add additional log messages --- cmd/sql_exporter/main.go | 90 +++++++++++++++++++++++++++++++++------- config/config.go | 62 ++++++++++++--------------- errors/errors.go | 4 +- metric.go | 2 +- query.go | 10 ++--- 5 files changed, 108 insertions(+), 60 deletions(-) diff --git a/cmd/sql_exporter/main.go b/cmd/sql_exporter/main.go index 12ee2de7..5586e458 100644 --- a/cmd/sql_exporter/main.go +++ b/cmd/sql_exporter/main.go @@ -9,6 +9,7 @@ import ( "time" "github.com/burningalchemist/sql_exporter" + cfg "github.com/burningalchemist/sql_exporter/config" _ "github.com/kardianos/minwinsvc" "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promhttp" @@ -97,10 +98,9 @@ func main() { http.HandleFunc("/reload", reloadCollectors(exporter)) } - klog.Warning("Listening on ", *listenAddress) - server := &http.Server{Addr: *listenAddress, ReadHeaderTimeout: httpReadHeaderTimeout} - if err := web.ListenAndServe(server, &web.FlagConfig{WebListenAddresses: &([]string{*listenAddress}), WebConfigFile: webConfigFile, WebSystemdSocket: OfBool(false)}, logger); err != nil { + if err := web.ListenAndServe(server, &web.FlagConfig{WebListenAddresses: &([]string{*listenAddress}), + WebConfigFile: webConfigFile, WebSystemdSocket: OfBool(false)}, logger); err != nil { klog.Fatal(err) } } @@ -112,30 +112,88 @@ func OfBool(i bool) *bool { func reloadCollectors(e sql_exporter.Exporter) func(http.ResponseWriter, *http.Request) { return func(w http.ResponseWriter, r *http.Request) { - klog.Infof("Reloading the collectors...") - config := e.Config() - if err := config.ReloadCollectorFiles(); err != nil { - klog.Errorf("Error reloading collector configs - %v", err) + klog.Warning("Reloading collectors has started...") + klog.Warning("Connections will not be changed upon the restart of the exporter") + exporterNewConfig, err := cfg.Load(*configFile) + if err != nil { + klog.Errorf("Error reading config file - %v", err) http.Error(w, err.Error(), http.StatusInternalServerError) + return } + currentConfig := e.Config() + klog.Infof("Total collector size change: %v -> %v", len(currentConfig.Collectors), + len(exporterNewConfig.Collectors)) - // FIXME: Should be t.Collectors() instead of config.Collectors - target, err := sql_exporter.NewTarget("", "", string(config.Target.DSN), config.Collectors, nil, config.Globals) - if err != nil { - klog.Errorf("Error creating a new target - %v", err) + if len(currentConfig.Collectors) > 0 { + currentConfig.Collectors = currentConfig.Collectors[:0] + } + currentConfig.Collectors = exporterNewConfig.Collectors + + // Reload Collectors for a single target if there is one + if currentConfig.Target != nil { + klog.Warning("Reloading target collectors...") + // FIXME: Should be t.Collectors() instead of config.Collectors + target, err := sql_exporter.NewTarget("", "", string(currentConfig.Target.DSN), + exporterNewConfig.Target.Collectors(), nil, currentConfig.Globals) + if err != nil { + klog.Errorf("Error recreating a target - %v", err) + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + e.UpdateTarget([]sql_exporter.Target{target}) + klog.Warning("Collectors have been successfully reloaded for target") + w.WriteHeader(http.StatusOK) + return } - e.UpdateTarget([]sql_exporter.Target{target}) - klog.Infof("Query collectors have been successfully reloaded") - w.WriteHeader(http.StatusNoContent) + // Reload Collectors for Jobs if there are any + if len(currentConfig.Jobs) > 0 { + klog.Warning("Recreating jobs...") + + // We want to preserve `static_configs`` from the previous config revision to avoid any connection changes + for _, currentJob := range currentConfig.Jobs { + for _, newJob := range exporterNewConfig.Jobs { + if newJob.Name == currentJob.Name { + newJob.StaticConfigs = currentJob.StaticConfigs + } + } + } + currentConfig.Jobs = exporterNewConfig.Jobs + + var updateErr error + targets := make([]sql_exporter.Target, 0, len(currentConfig.Jobs)) + + for _, jobConfigItem := range currentConfig.Jobs { + job, err := sql_exporter.NewJob(jobConfigItem, currentConfig.Globals) + if err != nil { + updateErr = err + break + } + targets = append(targets, job.Targets()...) + klog.Infof("Recreated Job: %s", jobConfigItem.Name) + } + + if updateErr != nil { + klog.Errorf("Error recreating jobs - %v", err) + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + + e.UpdateTarget(targets) + klog.Warning("Query collectors have been successfully reloaded for jobs") + w.WriteHeader(http.StatusOK) + return + } + klog.Warning("No target or jobs have been found - nothing to reload") + http.Error(w, "", http.StatusInternalServerError) } } // LogFunc is an adapter to allow the use of any function as a promhttp.Logger. If f is a function, LogFunc(f) is a // promhttp.Logger that calls f. -type LogFunc func(args ...interface{}) +type LogFunc func(args ...any) // Println implements promhttp.Logger. -func (log LogFunc) Println(args ...interface{}) { +func (log LogFunc) Println(args ...any) { log(args) } diff --git a/config/config.go b/config/config.go index 6ba8ed0a..cf095158 100644 --- a/config/config.go +++ b/config/config.go @@ -59,11 +59,11 @@ type Config struct { configFile string // Catches all undefined fields and must be empty after parsing. - XXX map[string]interface{} `yaml:",inline" json:"-"` + XXX map[string]any `yaml:",inline" json:"-"` } // UnmarshalYAML implements the yaml.Unmarshaler interface for Config. -func (c *Config) UnmarshalYAML(unmarshal func(interface{}) error) error { +func (c *Config) UnmarshalYAML(unmarshal func(any) error) error { type plain Config if err := unmarshal((*plain)(c)); err != nil { return err @@ -72,7 +72,7 @@ func (c *Config) UnmarshalYAML(unmarshal func(interface{}) error) error { if c.Globals == nil { c.Globals = &GlobalConfig{} // Force a dummy unmarshall to populate global defaults - if err := c.Globals.UnmarshalYAML(func(interface{}) error { return nil }); err != nil { + if err := c.Globals.UnmarshalYAML(func(any) error { return nil }); err != nil { return err } } @@ -121,19 +121,7 @@ func (c *Config) YAML() ([]byte, error) { return yaml.Marshal(c) } -// ReloadCollectorFiles reloads previously loaded collector files -func (c *Config) ReloadCollectorFiles() error { - if len(c.Collectors) > 0 { - c.Collectors = c.Collectors[:0] - } - err := c.loadCollectorFiles() - if err != nil { - return err - } - return nil -} - -// LoadCollectorFiles resolves all collector file globs to files and loads the collectors they define. +// loadCollectorFiles resolves all collector file globs to files and loads the collectors they define. func (c *Config) loadCollectorFiles() error { baseDir := filepath.Dir(c.configFile) for _, cfglob := range c.CollectorFiles { @@ -144,6 +132,7 @@ func (c *Config) loadCollectorFiles() error { // Resolve the glob to actual filenames. cfs, err := filepath.Glob(cfglob) + klog.Infof("Collector files found: %v", cfs) if err != nil { // The only error can be a bad pattern. return fmt.Errorf("error resolving collector files for %s: %w", cfglob, err) @@ -180,11 +169,11 @@ type GlobalConfig struct { MaxIdleConns int `yaml:"max_idle_connections"` // maximum number of idle connections to any one target // Catches all undefined fields and must be empty after parsing. - XXX map[string]interface{} `yaml:",inline" json:"-"` + XXX map[string]any `yaml:",inline" json:"-"` } // UnmarshalYAML implements the yaml.Unmarshaler interface for GlobalConfig. -func (g *GlobalConfig) UnmarshalYAML(unmarshal func(interface{}) error) error { +func (g *GlobalConfig) UnmarshalYAML(unmarshal func(any) error) error { // Default to running the queries on every scrape. g.MinInterval = model.Duration(0) // Default to 10 seconds, since Prometheus has a 10 second scrape timeout default. @@ -220,7 +209,7 @@ type TargetConfig struct { collectors []*CollectorConfig // resolved collector references // Catches all undefined fields and must be empty after parsing. - XXX map[string]interface{} `yaml:",inline" json:"-"` + XXX map[string]any `yaml:",inline" json:"-"` } // Collectors returns the collectors referenced by the target, resolved. @@ -229,7 +218,7 @@ func (t *TargetConfig) Collectors() []*CollectorConfig { } // UnmarshalYAML implements the yaml.Unmarshaler interface for TargetConfig. -func (t *TargetConfig) UnmarshalYAML(unmarshal func(interface{}) error) error { +func (t *TargetConfig) UnmarshalYAML(unmarshal func(any) error) error { type plain TargetConfig if err := unmarshal((*plain)(t)); err != nil { return err @@ -302,7 +291,7 @@ type JobConfig struct { collectors []*CollectorConfig // resolved collector references // Catches all undefined fields and must be empty after parsing. - XXX map[string]interface{} `yaml:",inline" json:"-"` + XXX map[string]any `yaml:",inline" json:"-"` } // Collectors returns the collectors referenced by the job, resolved. @@ -311,7 +300,7 @@ func (j *JobConfig) Collectors() []*CollectorConfig { } // UnmarshalYAML implements the yaml.Unmarshaler interface for JobConfig. -func (j *JobConfig) UnmarshalYAML(unmarshal func(interface{}) error) error { +func (j *JobConfig) UnmarshalYAML(unmarshal func(any) error) error { type plain JobConfig if err := unmarshal((*plain)(j)); err != nil { return err @@ -336,7 +325,7 @@ func (j *JobConfig) UnmarshalYAML(unmarshal func(interface{}) error) error { // //lint:ignore U1000 - it's unused so far func (j *JobConfig) checkLabelCollisions() error { - sclabels := make(map[string]interface{}) + sclabels := make(map[string]any) for _, s := range j.StaticConfigs { for _, l := range s.Labels { sclabels[l] = nil @@ -363,19 +352,19 @@ type StaticConfig struct { Labels map[string]string `yaml:"labels,omitempty"` // labels to apply to all metrics collected from the targets // Catches all undefined fields and must be empty after parsing. - XXX map[string]interface{} `yaml:",inline" json:"-"` + XXX map[string]any `yaml:",inline" json:"-"` } // UnmarshalYAML implements the yaml.Unmarshaler interface for StaticConfig. -func (s *StaticConfig) UnmarshalYAML(unmarshal func(interface{}) error) error { +func (s *StaticConfig) UnmarshalYAML(unmarshal func(any) error) error { type plain StaticConfig if err := unmarshal((*plain)(s)); err != nil { return err } // Check for empty/duplicate target names/data source names - tnames := make(map[string]interface{}) - dsns := make(map[string]interface{}) + tnames := make(map[string]any) + dsns := make(map[string]any) for tname, dsn := range s.Targets { if tname == "" { return fmt.Errorf("empty target name in static config %+v", s) @@ -408,11 +397,11 @@ type CollectorConfig struct { Queries []*QueryConfig `yaml:"queries,omitempty"` // named queries defined by this collector // Catches all undefined fields and must be empty after parsing. - XXX map[string]interface{} `yaml:",inline" json:"-"` + XXX map[string]any `yaml:",inline" json:"-"` } // UnmarshalYAML implements the yaml.Unmarshaler interface for CollectorConfig. -func (c *CollectorConfig) UnmarshalYAML(unmarshal func(interface{}) error) error { +func (c *CollectorConfig) UnmarshalYAML(unmarshal func(any) error) error { // Default to undefined (a negative value) so it can be overridden by the global default when not explicitly set. c.MinInterval = -1 @@ -470,7 +459,7 @@ type MetricConfig struct { query *QueryConfig // QueryConfig resolved from QueryRef or generated from Query // Catches all undefined fields and must be empty after parsing. - XXX map[string]interface{} `yaml:",inline" json:"-"` + XXX map[string]any `yaml:",inline" json:"-"` } // ValueType returns the metric type, converted to a prometheus.ValueType. @@ -484,7 +473,7 @@ func (m *MetricConfig) Query() *QueryConfig { } // UnmarshalYAML implements the yaml.Unmarshaler interface for MetricConfig. -func (m *MetricConfig) UnmarshalYAML(unmarshal func(interface{}) error) error { +func (m *MetricConfig) UnmarshalYAML(unmarshal func(any) error) error { type plain MetricConfig if err := unmarshal((*plain)(m)); err != nil { return err @@ -555,11 +544,11 @@ type QueryConfig struct { metrics []*MetricConfig // metrics referencing this query // Catches all undefined fields and must be empty after parsing. - XXX map[string]interface{} `yaml:",inline" json:"-"` + XXX map[string]any `yaml:",inline" json:"-"` } // UnmarshalYAML implements the yaml.Unmarshaler interface for QueryConfig. -func (q *QueryConfig) UnmarshalYAML(unmarshal func(interface{}) error) error { +func (q *QueryConfig) UnmarshalYAML(unmarshal func(any) error) error { type plain QueryConfig if err := unmarshal((*plain)(q)); err != nil { return err @@ -582,13 +571,13 @@ func (q *QueryConfig) UnmarshalYAML(unmarshal func(interface{}) error) error { type Secret string // UnmarshalYAML implements the yaml.Unmarshaler interface for Secrets. -func (s *Secret) UnmarshalYAML(unmarshal func(interface{}) error) error { +func (s *Secret) UnmarshalYAML(unmarshal func(any) error) error { type plain Secret return unmarshal((*plain)(s)) } // MarshalYAML implements the yaml.Marshaler interface for Secrets. -func (s Secret) MarshalYAML() (interface{}, error) { +func (s Secret) MarshalYAML() (any, error) { if s != "" { return "", nil } @@ -632,6 +621,7 @@ func resolveCollectorRefs( return nil, fmt.Errorf("unknown collector %q referenced in %s", cref, ctx) } } + klog.Infof("Resolved collectors for %s: %v", ctx, len(resolved)) return resolved, nil } @@ -645,7 +635,7 @@ func checkLabel(label string, ctx ...string) error { return nil } -func checkOverflow(m map[string]interface{}, ctx string) error { +func checkOverflow(m map[string]any, ctx string) error { if len(m) > 0 { var keys []string for k := range m { diff --git a/errors/errors.go b/errors/errors.go index 2284a7ea..0c8e4357 100644 --- a/errors/errors.go +++ b/errors/errors.go @@ -27,7 +27,7 @@ func New(context, err string) WithContext { } // Errorf formats according to a format specifier and returns a new WithContext. -func Errorf(context, format string, a ...interface{}) WithContext { +func Errorf(context, format string, a ...any) WithContext { return &withContext{context, fmt.Sprintf(format, a...)} } @@ -46,7 +46,7 @@ func Wrap(context string, err error) WithContext { // Wrapf returns a WithContext that prepends a formatted message to err.Error(). If err is nil, it returns nil. If err // is a WithContext, the returned WithContext will have the message prepended but the same context as err (presumed to // be more specific). -func Wrapf(context string, err error, format string, a ...interface{}) WithContext { +func Wrapf(context string, err error, format string, a ...any) WithContext { if err == nil { return nil } diff --git a/metric.go b/metric.go index 07cf3d9f..bb560c72 100644 --- a/metric.go +++ b/metric.go @@ -73,7 +73,7 @@ func NewMetricFamily(logContext string, mc *config.MetricConfig, constLabels []* } // Collect is the equivalent of prometheus.Collector.Collect() but takes a Query output map to populate values from. -func (mf MetricFamily) Collect(row map[string]interface{}, ch chan<- Metric) { +func (mf MetricFamily) Collect(row map[string]any, ch chan<- Metric) { labelValues := make([]string, len(mf.labels)) for i, label := range mf.config.KeyLabels { labelValues[i] = row[label].(string) diff --git a/query.go b/query.go index 43538092..d44b2cf5 100644 --- a/query.go +++ b/query.go @@ -131,14 +131,14 @@ func (q *Query) run(ctx context.Context, conn *sql.DB) (*sql.Rows, errors.WithCo // scanDest creates a slice to scan the provided rows into, with strings for keys, float64s for values and interface{} // for any extra columns. -func (q *Query) scanDest(rows *sql.Rows) ([]interface{}, errors.WithContext) { +func (q *Query) scanDest(rows *sql.Rows) ([]any, errors.WithContext) { columns, err := rows.Columns() if err != nil { return nil, errors.Wrap(q.logContext, err) } klog.V(3).Infof(`returned_columns="%v"%v`, columns, q.logContext) // Create the slice to scan the row into, with strings for keys and float64s for values. - dest := make([]interface{}, 0, len(columns)) + dest := make([]any, 0, len(columns)) have := make(map[string]bool, len(q.columnTypes)) for i, column := range columns { switch q.columnTypes[column] { @@ -154,7 +154,7 @@ func (q *Query) scanDest(rows *sql.Rows) ([]interface{}, errors.WithContext) { } else { klog.Warningf("[%s] Extra column %q returned by query", q.logContext, column) } - dest = append(dest, new(interface{})) + dest = append(dest, new(any)) } } @@ -174,7 +174,7 @@ func (q *Query) scanDest(rows *sql.Rows) ([]interface{}, errors.WithContext) { // scanRow scans the current row into a map of column name to value, with string values for key columns and float64 // values for value columns, using dest as a buffer. -func (q *Query) scanRow(rows *sql.Rows, dest []interface{}) (map[string]interface{}, errors.WithContext) { +func (q *Query) scanRow(rows *sql.Rows, dest []any) (map[string]any, errors.WithContext) { columns, err := rows.Columns() if err != nil { return nil, errors.Wrap(q.logContext, err) @@ -186,7 +186,7 @@ func (q *Query) scanRow(rows *sql.Rows, dest []interface{}) (map[string]interfac } // Pick all values we're interested in into a map. - result := make(map[string]interface{}, len(q.columnTypes)) + result := make(map[string]any, len(q.columnTypes)) for i, column := range columns { switch q.columnTypes[column] { case columnTypeKey: From 7864f223465fc1086ecf1673277cbecad8d3a6a2 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Sun, 10 Sep 2023 19:52:23 +0200 Subject: [PATCH 092/401] fix: return better error msg on context deadline exceeded (#314) fix: return more informative error msg on context deadline exceeded --- cmd/sql_exporter/promhttp.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/cmd/sql_exporter/promhttp.go b/cmd/sql_exporter/promhttp.go index 94571747..8fc8e453 100644 --- a/cmd/sql_exporter/promhttp.go +++ b/cmd/sql_exporter/promhttp.go @@ -36,11 +36,19 @@ func ExporterHandlerFor(exporter sql_exporter.Exporter) http.Handler { gatherer := prometheus.Gatherers{exporter.WithContext(ctx)} mfs, err := gatherer.Gather() if err != nil { - klog.Errorf("Error gathering metrics: %s", err) + if errors.Is(err, context.DeadlineExceeded) { + klog.Errorf("Timeout collecting metrics from target: %s", err) + http.Error(w, "Timeout collecting metrics from target, "+err.Error(), http.StatusInternalServerError) + return + } if len(mfs) == 0 { + klog.Errorf("No metrics gathered: %s", err) http.Error(w, "No metrics gathered, "+err.Error(), http.StatusInternalServerError) return } + klog.Errorf("Error gathering metrics: %s", err) + http.Error(w, "Error gathering metrics, "+err.Error(), http.StatusInternalServerError) + return } contentType := expfmt.Negotiate(req.Header) From 0a094b9a20ca5bb205f8f9773606e074b22705e8 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Sun, 10 Sep 2023 20:04:47 +0200 Subject: [PATCH 093/401] fix: enable `up` and `scrape_duration` for a target if named (#315) --- cmd/sql_exporter/main.go | 2 +- config/config.go | 1 + exporter.go | 2 +- target.go | 1 + 4 files changed, 4 insertions(+), 2 deletions(-) diff --git a/cmd/sql_exporter/main.go b/cmd/sql_exporter/main.go index 5586e458..72b94398 100644 --- a/cmd/sql_exporter/main.go +++ b/cmd/sql_exporter/main.go @@ -133,7 +133,7 @@ func reloadCollectors(e sql_exporter.Exporter) func(http.ResponseWriter, *http.R if currentConfig.Target != nil { klog.Warning("Reloading target collectors...") // FIXME: Should be t.Collectors() instead of config.Collectors - target, err := sql_exporter.NewTarget("", "", string(currentConfig.Target.DSN), + target, err := sql_exporter.NewTarget("", currentConfig.Target.Name, string(currentConfig.Target.DSN), exporterNewConfig.Target.Collectors(), nil, currentConfig.Globals) if err != nil { klog.Errorf("Error recreating a target - %v", err) diff --git a/config/config.go b/config/config.go index cf095158..1fc636e7 100644 --- a/config/config.go +++ b/config/config.go @@ -202,6 +202,7 @@ func (g *GlobalConfig) UnmarshalYAML(unmarshal func(any) error) error { // TargetConfig defines a DSN and a set of collectors to be executed on it. type TargetConfig struct { + Name string `yaml:"name,omitempty"` // name of the target DSN Secret `yaml:"data_source_name"` // data source name to connect to AwsSecretName string `yaml:"aws_secret_name"` // AWS secret name CollectorRefs []string `yaml:"collectors"` // names of collectors to execute on the target diff --git a/exporter.go b/exporter.go index 5cfa85aa..492ca897 100644 --- a/exporter.go +++ b/exporter.go @@ -56,7 +56,7 @@ func NewExporter(configFile string) (Exporter, error) { var targets []Target if c.Target != nil { - target, err := NewTarget("", "", string(c.Target.DSN), c.Target.Collectors(), nil, c.Globals) + target, err := NewTarget("", c.Target.Name, string(c.Target.DSN), c.Target.Collectors(), nil, c.Globals) if err != nil { return nil, err } diff --git a/target.go b/target.go index 69631e31..7c598f4b 100644 --- a/target.go +++ b/target.go @@ -58,6 +58,7 @@ func NewTarget( ) { if name != "" { logContext = fmt.Sprintf("%s, target=%q", logContext, name) + constLabels = prometheus.Labels{"instance": name} } constLabelPairs := make([]*dto.LabelPair, 0, len(constLabels)) From cedb53ff87d6b889b00cfe75e3dc65d62561c560 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 10 Sep 2023 20:06:01 +0200 Subject: [PATCH 094/401] deps: bump github.com/aws/aws-sdk-go-v2/config from 1.18.38 to 1.18.39 (#312) Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.38 to 1.18.39. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.38...config/v1.18.39) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/config dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index cc856193..9362d26b 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.18 require ( github.com/ClickHouse/clickhouse-go v1.5.4 github.com/aws/aws-sdk-go-v2 v1.21.0 - github.com/aws/aws-sdk-go-v2/config v1.18.38 + github.com/aws/aws-sdk-go-v2/config v1.18.39 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.21.3 github.com/go-sql-driver/mysql v1.7.1 github.com/jackc/pgx/v4 v4.18.1 @@ -37,7 +37,7 @@ require ( github.com/apache/arrow/go/v12 v12.0.1 // indirect github.com/apache/thrift v0.16.0 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.13.36 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.13.37 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.11 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.41 // indirect @@ -50,7 +50,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 // indirect github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 // indirect github.com/aws/aws-sdk-go-v2/service/sso v1.13.6 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.15.5 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.15.6 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.21.5 // indirect github.com/aws/smithy-go v1.14.2 // indirect github.com/beorn7/perks v1.0.1 // indirect diff --git a/go.sum b/go.sum index d9c77126..d760acc5 100644 --- a/go.sum +++ b/go.sum @@ -33,11 +33,11 @@ github.com/aws/aws-sdk-go-v2 v1.21.0/go.mod h1:/RfNgGmRxI+iFOB1OeJUyxiU+9s88k3pf github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10/go.mod h1:VeTZetY5KRJLuD/7fkQXMU6Mw7H5m/KP2J5Iy9osMno= github.com/aws/aws-sdk-go-v2/config v1.18.19/go.mod h1:XvTmGMY8d52ougvakOv1RpiTLPz9dlG/OQHsKU/cMmY= -github.com/aws/aws-sdk-go-v2/config v1.18.38 h1:CByQCELMgm2tM1lAehx3XNg0R/pfeXsYzqn0Aq2chJQ= -github.com/aws/aws-sdk-go-v2/config v1.18.38/go.mod h1:vNm9Hf5VgG2fSUWhT3zFrqN/RosGcabFMYgiSoxKFU8= +github.com/aws/aws-sdk-go-v2/config v1.18.39 h1:oPVyh6fuu/u4OiW4qcuQyEtk7U7uuNBmHmJSLg1AJsQ= +github.com/aws/aws-sdk-go-v2/config v1.18.39/go.mod h1:+NH/ZigdPckFpgB1TRcRuWCB/Kbbvkxc/iNAKTq5RhE= github.com/aws/aws-sdk-go-v2/credentials v1.13.18/go.mod h1:vnwlwjIe+3XJPBYKu1et30ZPABG3VaXJYr8ryohpIyM= -github.com/aws/aws-sdk-go-v2/credentials v1.13.36 h1:ps0cPswZjpsOk6sLwG6fdXTzrYjCplgPEyG3OUbbdqE= -github.com/aws/aws-sdk-go-v2/credentials v1.13.36/go.mod h1:sY2phUzxbygoyDtTXhqi7GjGjCQ1S5a5Rj8u3ksBxCg= +github.com/aws/aws-sdk-go-v2/credentials v1.13.37 h1:BvEdm09+ZEh2XtN+PVHPcYwKY3wIeB6pw7vPRM4M9/U= +github.com/aws/aws-sdk-go-v2/credentials v1.13.37/go.mod h1:ACLrdkd4CLZyXOghZ8IYumQbcooAcp2jo/s2xsFH8IM= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.1/go.mod h1:lfUx8puBRdM5lVVMQlwt2v+ofiG/X6Ms+dy0UkG/kXw= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.11 h1:uDZJF1hu0EVT/4bogChk8DyjSF6fof6uL/0Y26Ma7Fg= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.11/go.mod h1:TEPP4tENqBGO99KwVpV9MlOX4NSrSLP8u3KRy2CDwA8= @@ -71,8 +71,8 @@ github.com/aws/aws-sdk-go-v2/service/sso v1.12.6/go.mod h1:Y1VOmit/Fn6Tz1uFAeCO6 github.com/aws/aws-sdk-go-v2/service/sso v1.13.6 h1:2PylFCfKCEDv6PeSN09pC/VUiRd10wi1VfHG5FrW0/g= github.com/aws/aws-sdk-go-v2/service/sso v1.13.6/go.mod h1:fIAwKQKBFu90pBxx07BFOMJLpRUGu8VOzLJakeY+0K4= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.6/go.mod h1:Lh/bc9XUf8CfOY6Jp5aIkQtN+j1mc+nExc+KXj9jx2s= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.15.5 h1:dnInJb4S0oy8aQuri1mV6ipLlnZPfnsDNB9BGO9PDNY= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.15.5/go.mod h1:yygr8ACQRY2PrEcy3xsUI357stq2AxnFM6DIsR9lij4= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.15.6 h1:pSB560BbVj9ZlJZF4WYj5zsytWHWKxg+NgyGV4B2L58= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.15.6/go.mod h1:yygr8ACQRY2PrEcy3xsUI357stq2AxnFM6DIsR9lij4= github.com/aws/aws-sdk-go-v2/service/sts v1.18.7/go.mod h1:JuTnSoeePXmMVe9G8NcjjwgOKEfZ4cOjMuT2IBT/2eI= github.com/aws/aws-sdk-go-v2/service/sts v1.21.5 h1:CQBFElb0LS8RojMJlxRSo/HXipvTZW2S44Lt9Mk2aYQ= github.com/aws/aws-sdk-go-v2/service/sts v1.21.5/go.mod h1:VC7JDqsqiwXukYEDjoHh9U0fOJtNWh04FPQz4ct4GGU= From 588b42d329deb17d86b50de94c52bc3dca264b0c Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Fri, 15 Sep 2023 12:20:13 +0200 Subject: [PATCH 095/401] Bump up version to 0.12.2 (#318) --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 34a83616..26acbf08 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.12.1 +0.12.2 From 105d9f9133e9a4c37b2db43e21d2776d101a65d3 Mon Sep 17 00:00:00 2001 From: Corporte Gadfly Date: Sat, 16 Sep 2023 16:28:47 -0400 Subject: [PATCH 096/401] docs: example - avoid duplicate metrics with same name and labels (#320) avoid duplicate metrics with same name and label values --- examples/azure-sql-mi/mssql_mi_size.collector.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/azure-sql-mi/mssql_mi_size.collector.yml b/examples/azure-sql-mi/mssql_mi_size.collector.yml index 4814c976..31061d72 100644 --- a/examples/azure-sql-mi/mssql_mi_size.collector.yml +++ b/examples/azure-sql-mi/mssql_mi_size.collector.yml @@ -46,4 +46,5 @@ queries: ON mf.database_id = divfs.database_id AND mf.file_id = divfs.file_id WHERE DB_NAME(mf.database_id) NOT IN ('master', 'model','tempdb', 'msdb') + AND name in ('data_0', 'log') -- ORDER BY size_on_disk_bytes DESC From 4f9d1b5da753331812f539b11bbe8289e33895ba Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Sun, 17 Sep 2023 15:16:35 +0200 Subject: [PATCH 097/401] fix: log message for collector files (#322) --- config/config.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.go b/config/config.go index 1fc636e7..96081416 100644 --- a/config/config.go +++ b/config/config.go @@ -132,7 +132,7 @@ func (c *Config) loadCollectorFiles() error { // Resolve the glob to actual filenames. cfs, err := filepath.Glob(cfglob) - klog.Infof("Collector files found: %v", cfs) + klog.Infof("External collector files found: %v", len(cfs)) if err != nil { // The only error can be a bad pattern. return fmt.Errorf("error resolving collector files for %s: %w", cfglob, err) From 1eedd191ae6eab9a5b20a75f3deddb2b8e183dd3 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Tue, 19 Sep 2023 10:45:24 +0200 Subject: [PATCH 098/401] fix: support NULL values for key labels (#321) --- metric.go | 3 ++- query.go | 13 ++++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/metric.go b/metric.go index bb560c72..e02c57bd 100644 --- a/metric.go +++ b/metric.go @@ -1,6 +1,7 @@ package sql_exporter import ( + "database/sql" "fmt" "sort" @@ -76,7 +77,7 @@ func NewMetricFamily(logContext string, mc *config.MetricConfig, constLabels []* func (mf MetricFamily) Collect(row map[string]any, ch chan<- Metric) { labelValues := make([]string, len(mf.labels)) for i, label := range mf.config.KeyLabels { - labelValues[i] = row[label].(string) + labelValues[i] = row[label].(sql.NullString).String } for _, v := range mf.config.Values { if mf.config.ValueLabel != "" { diff --git a/query.go b/query.go index d44b2cf5..473cca31 100644 --- a/query.go +++ b/query.go @@ -136,23 +136,23 @@ func (q *Query) scanDest(rows *sql.Rows) ([]any, errors.WithContext) { if err != nil { return nil, errors.Wrap(q.logContext, err) } - klog.V(3).Infof(`returned_columns="%v"%v`, columns, q.logContext) + klog.V(3).Infof("[%s] Returned columns: %q", q.logContext, columns) // Create the slice to scan the row into, with strings for keys and float64s for values. dest := make([]any, 0, len(columns)) have := make(map[string]bool, len(q.columnTypes)) for i, column := range columns { switch q.columnTypes[column] { case columnTypeKey: - dest = append(dest, new(string)) + dest = append(dest, new(sql.NullString)) have[column] = true case columnTypeValue: dest = append(dest, new(float64)) have[column] = true default: if column == "" { - klog.Warningf("[%s] Unnamed column %d returned by query", q.logContext, i) + klog.Infof("[%s] Unnamed column %d returned by query", q.logContext, i) } else { - klog.Warningf("[%s] Extra column %q returned by query", q.logContext, column) + klog.Infof("[%s] Extra column %q returned by query", q.logContext, column) } dest = append(dest, new(any)) } @@ -190,7 +190,10 @@ func (q *Query) scanRow(rows *sql.Rows, dest []any) (map[string]any, errors.With for i, column := range columns { switch q.columnTypes[column] { case columnTypeKey: - result[column] = *dest[i].(*string) + if !dest[i].(*sql.NullString).Valid { + klog.V(3).Infof("[%s] Key column %q is NULL, return empty string", q.logContext, column) + } + result[column] = *dest[i].(*sql.NullString) case columnTypeValue: result[column] = *dest[i].(*float64) } From 2f6e229994c64690eba0f2872570c7e30b8efa34 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Wed, 20 Sep 2023 17:47:28 +0200 Subject: [PATCH 099/401] fix: regression, don't overwrite constLabels (#330) --- target.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/target.go b/target.go index 7c598f4b..d7ed20bb 100644 --- a/target.go +++ b/target.go @@ -58,7 +58,9 @@ func NewTarget( ) { if name != "" { logContext = fmt.Sprintf("%s, target=%q", logContext, name) - constLabels = prometheus.Labels{"instance": name} + if constLabels == nil { + constLabels = prometheus.Labels{"instance": name} + } } constLabelPairs := make([]*dto.LabelPair, 0, len(constLabels)) From 5e5096e1089c05aa115cc7c130c1a95962810679 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Wed, 20 Sep 2023 18:09:55 +0200 Subject: [PATCH 100/401] fix: return partial results for multiple targets (#331) --- cmd/sql_exporter/promhttp.go | 4 ---- 1 file changed, 4 deletions(-) diff --git a/cmd/sql_exporter/promhttp.go b/cmd/sql_exporter/promhttp.go index 8fc8e453..3615a5f8 100644 --- a/cmd/sql_exporter/promhttp.go +++ b/cmd/sql_exporter/promhttp.go @@ -38,8 +38,6 @@ func ExporterHandlerFor(exporter sql_exporter.Exporter) http.Handler { if err != nil { if errors.Is(err, context.DeadlineExceeded) { klog.Errorf("Timeout collecting metrics from target: %s", err) - http.Error(w, "Timeout collecting metrics from target, "+err.Error(), http.StatusInternalServerError) - return } if len(mfs) == 0 { klog.Errorf("No metrics gathered: %s", err) @@ -47,8 +45,6 @@ func ExporterHandlerFor(exporter sql_exporter.Exporter) http.Handler { return } klog.Errorf("Error gathering metrics: %s", err) - http.Error(w, "Error gathering metrics, "+err.Error(), http.StatusInternalServerError) - return } contentType := expfmt.Negotiate(req.Header) From d25cd797ff6b4daa53a5b9cc29c4aee3c998cb9f Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Wed, 20 Sep 2023 18:11:26 +0200 Subject: [PATCH 101/401] Bump up version to 0.12.3 (#332) --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 26acbf08..aa22d3ce 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.12.2 +0.12.3 From 53330782ae23c54bb45c4fdb9053b7a83785aed0 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Thu, 21 Sep 2023 11:31:46 +0200 Subject: [PATCH 102/401] refactor!: 'instance' label is configurable, 'target' by default (#333) * refactor: 'instance' label is configurable, 'target' by default * fix: merge conflict shenanigans --- cmd/sql_exporter/main.go | 1 + config/config.go | 4 +++- job.go | 4 ++-- target.go | 13 +++++++------ 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/cmd/sql_exporter/main.go b/cmd/sql_exporter/main.go index 72b94398..025f5cb9 100644 --- a/cmd/sql_exporter/main.go +++ b/cmd/sql_exporter/main.go @@ -39,6 +39,7 @@ var ( func init() { prometheus.MustRegister(version.NewCollector("sql_exporter")) + flag.StringVar(&cfg.TargetLabel, "config.target-label", "target", "Target label name") } func main() { diff --git a/config/config.go b/config/config.go index 96081416..e6901296 100644 --- a/config/config.go +++ b/config/config.go @@ -23,6 +23,8 @@ import ( // and serves to help us avoid overflow/wraparound issues. const MaxInt32 int = 1<<31 - 1 +var TargetLabel string + // Load attempts to parse the given config file and return a Config object. func Load(configFile string) (*Config, error) { klog.Infof("Loading configuration from %s", configFile) @@ -630,7 +632,7 @@ func checkLabel(label string, ctx ...string) error { if label == "" { return fmt.Errorf("empty label defined in %s", strings.Join(ctx, " ")) } - if label == "job" || label == "instance" { + if label == "job" || label == TargetLabel { return fmt.Errorf("reserved label %q redefined in %s", label, strings.Join(ctx, " ")) } return nil diff --git a/job.go b/job.go index 0d5b672e..cc9430d9 100644 --- a/job.go +++ b/job.go @@ -31,8 +31,8 @@ func NewJob(jc *config.JobConfig, gc *config.GlobalConfig) (Job, errors.WithCont for _, sc := range jc.StaticConfigs { for tname, dsn := range sc.Targets { constLabels := prometheus.Labels{ - "job": jc.Name, - "instance": tname, + "job": jc.Name, + config.TargetLabel: tname, } for name, value := range sc.Labels { // Shouldn't happen as there are sanity checks in config, but check nonetheless. diff --git a/target.go b/target.go index d7ed20bb..dbd70e5d 100644 --- a/target.go +++ b/target.go @@ -50,16 +50,17 @@ type target struct { conn *sql.DB } -// NewTarget returns a new Target with the given instance name, data source name, collectors and constant labels. +// NewTarget returns a new Target with the given target name, data source name, collectors and constant labels. // An empty target name means the exporter is running in single target mode: no synthetic metrics will be exported. func NewTarget( - logContext, name, dsn string, ccs []*config.CollectorConfig, constLabels prometheus.Labels, gc *config.GlobalConfig) ( + logContext, tname, dsn string, ccs []*config.CollectorConfig, constLabels prometheus.Labels, gc *config.GlobalConfig) ( Target, errors.WithContext, ) { - if name != "" { - logContext = fmt.Sprintf("%s, target=%q", logContext, name) + + if tname != "" { + logContext = fmt.Sprintf("%s, target=%q", logContext, tname) if constLabels == nil { - constLabels = prometheus.Labels{"instance": name} + constLabels = prometheus.Labels{config.TargetLabel: tname} } } @@ -84,7 +85,7 @@ func NewTarget( upDesc := NewAutomaticMetricDesc(logContext, upMetricName, upMetricHelp, prometheus.GaugeValue, constLabelPairs) scrapeDurationDesc := NewAutomaticMetricDesc(logContext, scrapeDurationName, scrapeDurationHelp, prometheus.GaugeValue, constLabelPairs) t := target{ - name: name, + name: tname, dsn: dsn, collectors: collectors, constLabels: constLabels, From 6947fce488d4b4f06df3b986b602c522894ed6d0 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Wed, 27 Sep 2023 20:55:59 +0200 Subject: [PATCH 103/401] refactor: configure ping for a target or per job (#323) --- cmd/sql_exporter/main.go | 5 +++-- config/config.go | 19 +++++++++++++------ exporter.go | 17 +++++++++-------- job.go | 6 +++++- target.go | 14 +++++++++----- 5 files changed, 39 insertions(+), 22 deletions(-) diff --git a/cmd/sql_exporter/main.go b/cmd/sql_exporter/main.go index 025f5cb9..89e6b4c2 100644 --- a/cmd/sql_exporter/main.go +++ b/cmd/sql_exporter/main.go @@ -39,6 +39,8 @@ var ( func init() { prometheus.MustRegister(version.NewCollector("sql_exporter")) + flag.BoolVar(&cfg.EnablePing, "config.enable-ping", true, "Enable ping for targets") + flag.StringVar(&cfg.DsnOverride, "config.data-source-name", "", "Data source name to override the value in the configuration file with") flag.StringVar(&cfg.TargetLabel, "config.target-label", "target", "Target label name") } @@ -47,7 +49,6 @@ func main() { runtime.SetBlockProfileRate(1) runtime.SetMutexProfileFraction(1) } - flag.Parse() promlogConfig := &promlog.Config{} @@ -135,7 +136,7 @@ func reloadCollectors(e sql_exporter.Exporter) func(http.ResponseWriter, *http.R klog.Warning("Reloading target collectors...") // FIXME: Should be t.Collectors() instead of config.Collectors target, err := sql_exporter.NewTarget("", currentConfig.Target.Name, string(currentConfig.Target.DSN), - exporterNewConfig.Target.Collectors(), nil, currentConfig.Globals) + exporterNewConfig.Target.Collectors(), nil, currentConfig.Globals, currentConfig.Target.EnablePing) if err != nil { klog.Errorf("Error recreating a target - %v", err) http.Error(w, err.Error(), http.StatusInternalServerError) diff --git a/config/config.go b/config/config.go index e6901296..f1057b07 100644 --- a/config/config.go +++ b/config/config.go @@ -19,12 +19,16 @@ import ( "k8s.io/klog/v2" ) +var ( + EnablePing bool + DsnOverride string + TargetLabel string +) + // MaxInt32 defines the maximum value of allowed integers // and serves to help us avoid overflow/wraparound issues. const MaxInt32 int = 1<<31 - 1 -var TargetLabel string - // Load attempts to parse the given config file and return a Config object. func Load(configFile string) (*Config, error) { klog.Infof("Loading configuration from %s", configFile) @@ -204,10 +208,11 @@ func (g *GlobalConfig) UnmarshalYAML(unmarshal func(any) error) error { // TargetConfig defines a DSN and a set of collectors to be executed on it. type TargetConfig struct { - Name string `yaml:"name,omitempty"` // name of the target - DSN Secret `yaml:"data_source_name"` // data source name to connect to - AwsSecretName string `yaml:"aws_secret_name"` // AWS secret name - CollectorRefs []string `yaml:"collectors"` // names of collectors to execute on the target + Name string `yaml:"name,omitempty"` // name of the target + DSN Secret `yaml:"data_source_name"` // data source name to connect to + AwsSecretName string `yaml:"aws_secret_name"` // AWS secret name + CollectorRefs []string `yaml:"collectors"` // names of collectors to execute on the target + EnablePing *bool `yaml:"enable_ping,omitempty"` // ping the target before executing the collectors collectors []*CollectorConfig // resolved collector references @@ -293,6 +298,8 @@ type JobConfig struct { collectors []*CollectorConfig // resolved collector references + EnablePing *bool `yaml:"enable_ping,omitempty"` // ping the target before executing the collectors + // Catches all undefined fields and must be empty after parsing. XXX map[string]any `yaml:",inline" json:"-"` } diff --git a/exporter.go b/exporter.go index 492ca897..24f5a7b1 100644 --- a/exporter.go +++ b/exporter.go @@ -3,7 +3,6 @@ package sql_exporter import ( "context" "errors" - "flag" "fmt" "os" "sync" @@ -16,8 +15,6 @@ import ( const envDsnOverride = "SQLEXPORTER_TARGET_DSN" -var dsnOverride = flag.String("config.data-source-name", "", "Data source name to override the value in the configuration file with.") - // Exporter is a prometheus.Gatherer that gathers SQL metrics from targets and merges them with the default registry. type Exporter interface { prometheus.Gatherer @@ -44,19 +41,23 @@ func NewExporter(configFile string) (Exporter, error) { } if val, ok := os.LookupEnv(envDsnOverride); ok { - *dsnOverride = val + config.DsnOverride = val } // Override the DSN if requested (and in single target mode). - if *dsnOverride != "" { + if config.DsnOverride != "" { if len(c.Jobs) > 0 { - return nil, fmt.Errorf("the config.data-source-name flag (value %q) only applies in single target mode", *dsnOverride) + return nil, fmt.Errorf("the config.data-source-name flag (value %q) only applies in single target mode", config.DsnOverride) } - c.Target.DSN = config.Secret(*dsnOverride) + c.Target.DSN = config.Secret(config.DsnOverride) + } + + if c.Target.EnablePing == nil { + c.Target.EnablePing = &config.EnablePing } var targets []Target if c.Target != nil { - target, err := NewTarget("", c.Target.Name, string(c.Target.DSN), c.Target.Collectors(), nil, c.Globals) + target, err := NewTarget("", c.Target.Name, string(c.Target.DSN), c.Target.Collectors(), nil, c.Globals, c.Target.EnablePing) if err != nil { return nil, err } diff --git a/job.go b/job.go index cc9430d9..2b063ccb 100644 --- a/job.go +++ b/job.go @@ -28,6 +28,10 @@ func NewJob(jc *config.JobConfig, gc *config.GlobalConfig) (Job, errors.WithCont logContext: fmt.Sprintf("job=%q", jc.Name), } + if jc.EnablePing == nil { + jc.EnablePing = &config.EnablePing + } + for _, sc := range jc.StaticConfigs { for tname, dsn := range sc.Targets { constLabels := prometheus.Labels{ @@ -41,7 +45,7 @@ func NewJob(jc *config.JobConfig, gc *config.GlobalConfig) (Job, errors.WithCont } constLabels[name] = value } - t, err := NewTarget(j.logContext, tname, string(dsn), jc.Collectors(), constLabels, gc) + t, err := NewTarget(j.logContext, tname, string(dsn), jc.Collectors(), constLabels, gc, jc.EnablePing) if err != nil { return nil, err } diff --git a/target.go b/target.go index dbd70e5d..3c2f3afc 100644 --- a/target.go +++ b/target.go @@ -4,7 +4,6 @@ import ( "context" "database/sql" "database/sql/driver" - "flag" "fmt" "sort" "sync" @@ -17,8 +16,6 @@ import ( "google.golang.org/protobuf/proto" ) -var enablePing = flag.Bool("config.enable-ping", true, "Enable ping for targets") - const ( // Capacity for the channel to collect metrics. capMetricChan = 1000 @@ -46,6 +43,7 @@ type target struct { upDesc MetricDesc scrapeDurationDesc MetricDesc logContext string + enablePing *bool conn *sql.DB } @@ -53,7 +51,7 @@ type target struct { // NewTarget returns a new Target with the given target name, data source name, collectors and constant labels. // An empty target name means the exporter is running in single target mode: no synthetic metrics will be exported. func NewTarget( - logContext, tname, dsn string, ccs []*config.CollectorConfig, constLabels prometheus.Labels, gc *config.GlobalConfig) ( + logContext, tname, dsn string, ccs []*config.CollectorConfig, constLabels prometheus.Labels, gc *config.GlobalConfig, ep *bool) ( Target, errors.WithContext, ) { @@ -93,6 +91,7 @@ func NewTarget( upDesc: upDesc, scrapeDurationDesc: scrapeDurationDesc, logContext: logContext, + enablePing: ep, } return &t, nil } @@ -154,7 +153,7 @@ func (t *target) ping(ctx context.Context) errors.WithContext { // If we have a handle and the context is not closed, test whether the database is up. // FIXME: we ping the database during each request even with cacheCollector. It leads // to additional charges for paid database services. - if t.conn != nil && ctx.Err() == nil && *enablePing { + if t.conn != nil && ctx.Err() == nil && *t.enablePing { var err error // Ping up to max_connections + 1 times as long as the returned error is driver.ErrBadConn, to purge the connection // pool of bad connections. This might happen if the previous scrape timed out and in-flight queries got canceled. @@ -181,3 +180,8 @@ func boolToFloat64(value bool) float64 { } return 0.0 } + +// OfBool returns bool address. +func OfBool(i bool) *bool { + return &i +} From f815668daa8e9bbebb63f4c4c966b0f96f7d987e Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Wed, 27 Sep 2023 21:03:54 +0200 Subject: [PATCH 104/401] feat: set 'static_value' per metric config (#335) --- config/config.go | 9 +++++++-- metric.go | 6 +++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/config/config.go b/config/config.go index f1057b07..006e4f54 100644 --- a/config/config.go +++ b/config/config.go @@ -463,7 +463,8 @@ type MetricConfig struct { QueryLiteral string `yaml:"query,omitempty"` // a literal query QueryRef string `yaml:"query_ref,omitempty"` // references a query in the query map - NoPreparedStatement bool `yaml:"no_prepared_statement,omitempty"` // do not prepare statement + NoPreparedStatement bool `yaml:"no_prepared_statement,omitempty"` // do not prepare statement + StaticValue *float64 `yaml:"static_value,omitempty"` valueType prometheus.ValueType // TypeString converted to prometheus.ValueType query *QueryConfig // QueryConfig resolved from QueryRef or generated from Query @@ -527,10 +528,14 @@ func (m *MetricConfig) UnmarshalYAML(unmarshal func(any) error) error { } } - if len(m.Values) == 0 { + if len(m.Values) == 0 && m.StaticValue == nil { return fmt.Errorf("no values defined for metric %q", m.Name) } + if len(m.Values) > 0 && m.StaticValue != nil { + return fmt.Errorf("metric %q cannot have both static_value and values defined", m.Name) + } + if len(m.Values) > 1 { // Multiple value columns but no value label to identify them if m.ValueLabel == "" { diff --git a/metric.go b/metric.go index e02c57bd..3ab558e7 100644 --- a/metric.go +++ b/metric.go @@ -38,7 +38,7 @@ type MetricFamily struct { func NewMetricFamily(logContext string, mc *config.MetricConfig, constLabels []*dto.LabelPair) (*MetricFamily, errors.WithContext) { logContext = fmt.Sprintf("%s, metric=%q", logContext, mc.Name) - if len(mc.Values) == 0 { + if len(mc.Values) == 0 && mc.StaticValue == nil { return nil, errors.New(logContext, "no value column defined") } if len(mc.Values) > 1 && mc.ValueLabel == "" { @@ -86,6 +86,10 @@ func (mf MetricFamily) Collect(row map[string]any, ch chan<- Metric) { value := row[v].(float64) ch <- NewMetric(&mf, value, labelValues...) } + if mf.config.StaticValue != nil { + value := *mf.config.StaticValue + ch <- NewMetric(&mf, value, labelValues...) + } } // Name implements MetricDesc. From fd241da4fcb68a4e8cddf3a851d8ed59dfe8c12f Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Sun, 1 Oct 2023 00:48:11 +0200 Subject: [PATCH 105/401] fix: enable-ping flag nil dereference (#340) --- exporter.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/exporter.go b/exporter.go index 24f5a7b1..48344a8b 100644 --- a/exporter.go +++ b/exporter.go @@ -51,12 +51,11 @@ func NewExporter(configFile string) (Exporter, error) { c.Target.DSN = config.Secret(config.DsnOverride) } - if c.Target.EnablePing == nil { - c.Target.EnablePing = &config.EnablePing - } - var targets []Target if c.Target != nil { + if c.Target.EnablePing == nil { + c.Target.EnablePing = &config.EnablePing + } target, err := NewTarget("", c.Target.Name, string(c.Target.DSN), c.Target.Collectors(), nil, c.Globals, c.Target.EnablePing) if err != nil { return nil, err From 7affb99b59945c994faca1fd4dc58024c6fc4232 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Sun, 1 Oct 2023 00:51:17 +0200 Subject: [PATCH 106/401] chore: update Go to 1.21 as the main version (#341) --- .promu.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.promu.yml b/.promu.yml index 68834848..30f7e19c 100644 --- a/.promu.yml +++ b/.promu.yml @@ -1,6 +1,6 @@ go: cgo: false - version: 1.20 + version: 1.21 repository: path: github.com/burningalchemist/sql_exporter build: From 88dba3190966ede5b6a9680a415a2439c8308756 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Oct 2023 11:57:21 +0200 Subject: [PATCH 107/401] deps: bump github.com/prometheus/client_golang from 1.16.0 to 1.17.0 (#344) Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.16.0 to 1.17.0. - [Release notes](https://github.com/prometheus/client_golang/releases) - [Changelog](https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md) - [Commits](https://github.com/prometheus/client_golang/compare/v1.16.0...v1.17.0) --- updated-dependencies: - dependency-name: github.com/prometheus/client_golang dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 8 ++++---- go.sum | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index 9362d26b..3dedd7a6 100644 --- a/go.mod +++ b/go.mod @@ -12,8 +12,8 @@ require ( github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.9 github.com/microsoft/go-mssqldb v1.6.0 - github.com/prometheus/client_golang v1.16.0 - github.com/prometheus/client_model v0.4.0 + github.com/prometheus/client_golang v1.17.0 + github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16 github.com/prometheus/common v0.44.0 github.com/prometheus/exporter-toolkit v0.10.0 github.com/snowflakedb/gosnowflake v1.6.24 @@ -99,7 +99,7 @@ require ( github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/prometheus/procfs v0.10.1 // indirect + github.com/prometheus/procfs v0.11.1 // indirect github.com/sirupsen/logrus v1.9.0 // indirect github.com/zeebo/xxh3 v1.0.2 // indirect golang.org/x/crypto v0.12.0 // indirect @@ -107,7 +107,7 @@ require ( golang.org/x/mod v0.8.0 // indirect golang.org/x/net v0.14.0 // indirect golang.org/x/oauth2 v0.8.0 // indirect - golang.org/x/sync v0.2.0 // indirect + golang.org/x/sync v0.3.0 // indirect golang.org/x/sys v0.11.0 // indirect golang.org/x/term v0.11.0 // indirect golang.org/x/text v0.12.0 // indirect diff --git a/go.sum b/go.sum index d760acc5..e01e80c7 100644 --- a/go.sum +++ b/go.sum @@ -268,17 +268,17 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8= -github.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc= -github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY= -github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= +github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= +github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16 h1:v7DLqVdK4VrYkVD5diGdl4sxJurKJEMnODWRJlxV9oM= +github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= github.com/prometheus/exporter-toolkit v0.10.0 h1:yOAzZTi4M22ZzVxD+fhy1URTuNRj/36uQJJ5S8IPza8= github.com/prometheus/exporter-toolkit v0.10.0/go.mod h1:+sVFzuvV5JDyw+Ih6p3zFxZNVnKQa3x5qPmDSiPu4ZY= github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.10.1 h1:kYK1Va/YMlutzCGazswoHKo//tZVlFpKYh+PymziUAg= -github.com/prometheus/procfs v0.10.1/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM= +github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= +github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= @@ -368,8 +368,8 @@ golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI= -golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= From 51333ca12c961b9b84e8cc4f996dfdfa64da1f0f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Oct 2023 13:16:21 +0200 Subject: [PATCH 108/401] deps: bump github.com/snowflakedb/gosnowflake from 1.6.24 to 1.6.25 (#342) Bumps [github.com/snowflakedb/gosnowflake](https://github.com/snowflakedb/gosnowflake) from 1.6.24 to 1.6.25. - [Release notes](https://github.com/snowflakedb/gosnowflake/releases) - [Changelog](https://github.com/snowflakedb/gosnowflake/blob/master/release.go) - [Commits](https://github.com/snowflakedb/gosnowflake/compare/v1.6.24...v1.6.25) --- updated-dependencies: - dependency-name: github.com/snowflakedb/gosnowflake dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 3dedd7a6..386d7d18 100644 --- a/go.mod +++ b/go.mod @@ -16,7 +16,7 @@ require ( github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16 github.com/prometheus/common v0.44.0 github.com/prometheus/exporter-toolkit v0.10.0 - github.com/snowflakedb/gosnowflake v1.6.24 + github.com/snowflakedb/gosnowflake v1.6.25 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.16.0 google.golang.org/protobuf v1.31.0 diff --git a/go.sum b/go.sum index e01e80c7..d6241bc7 100644 --- a/go.sum +++ b/go.sum @@ -294,8 +294,8 @@ github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMB github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/snowflakedb/gosnowflake v1.6.24 h1:NiBh1WSstNtr12qywmdFMS1XHaYdF5iWWGnjIQb1cEY= -github.com/snowflakedb/gosnowflake v1.6.24/go.mod h1:KfO4F7bk+aXPUIvBqYxvPhxLlu2/w4TtSC8Rw/yr5Mg= +github.com/snowflakedb/gosnowflake v1.6.25 h1:o5zUmxTOo0Eo9AdkEj8blCeiMuILrQJ+rjUMAeZhcRE= +github.com/snowflakedb/gosnowflake v1.6.25/go.mod h1:KfO4F7bk+aXPUIvBqYxvPhxLlu2/w4TtSC8Rw/yr5Mg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= From 6c7c3289b5708cfded952eb92790ede9b2551100 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 5 Oct 2023 17:32:04 +0200 Subject: [PATCH 109/401] deps: bump github.com/aws/aws-sdk-go-v2/config from 1.18.39 to 1.18.42 (#343) Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.39 to 1.18.42. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.39...config/v1.18.42) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/config dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 12 ++++++------ go.sum | 24 ++++++++++++------------ 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/go.mod b/go.mod index 386d7d18..9ffcf7e1 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.18 require ( github.com/ClickHouse/clickhouse-go v1.5.4 github.com/aws/aws-sdk-go-v2 v1.21.0 - github.com/aws/aws-sdk-go-v2/config v1.18.39 + github.com/aws/aws-sdk-go-v2/config v1.18.42 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.21.3 github.com/go-sql-driver/mysql v1.7.1 github.com/jackc/pgx/v4 v4.18.1 @@ -37,21 +37,21 @@ require ( github.com/apache/arrow/go/v12 v12.0.1 // indirect github.com/apache/thrift v0.16.0 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.13.37 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.13.40 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.11 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.41 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.35 // indirect - github.com/aws/aws-sdk-go-v2/internal/ini v1.3.42 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.3.43 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 // indirect github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26 // indirect github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.35 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 // indirect github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.13.6 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.15.6 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.21.5 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.14.1 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.1 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.22.0 // indirect github.com/aws/smithy-go v1.14.2 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect diff --git a/go.sum b/go.sum index d6241bc7..3dfa25b5 100644 --- a/go.sum +++ b/go.sum @@ -33,11 +33,11 @@ github.com/aws/aws-sdk-go-v2 v1.21.0/go.mod h1:/RfNgGmRxI+iFOB1OeJUyxiU+9s88k3pf github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10/go.mod h1:VeTZetY5KRJLuD/7fkQXMU6Mw7H5m/KP2J5Iy9osMno= github.com/aws/aws-sdk-go-v2/config v1.18.19/go.mod h1:XvTmGMY8d52ougvakOv1RpiTLPz9dlG/OQHsKU/cMmY= -github.com/aws/aws-sdk-go-v2/config v1.18.39 h1:oPVyh6fuu/u4OiW4qcuQyEtk7U7uuNBmHmJSLg1AJsQ= -github.com/aws/aws-sdk-go-v2/config v1.18.39/go.mod h1:+NH/ZigdPckFpgB1TRcRuWCB/Kbbvkxc/iNAKTq5RhE= +github.com/aws/aws-sdk-go-v2/config v1.18.42 h1:28jHROB27xZwU0CB88giDSjz7M1Sba3olb5JBGwina8= +github.com/aws/aws-sdk-go-v2/config v1.18.42/go.mod h1:4AZM3nMMxwlG+eZlxvBKqwVbkDLlnN2a4UGTL6HjaZI= github.com/aws/aws-sdk-go-v2/credentials v1.13.18/go.mod h1:vnwlwjIe+3XJPBYKu1et30ZPABG3VaXJYr8ryohpIyM= -github.com/aws/aws-sdk-go-v2/credentials v1.13.37 h1:BvEdm09+ZEh2XtN+PVHPcYwKY3wIeB6pw7vPRM4M9/U= -github.com/aws/aws-sdk-go-v2/credentials v1.13.37/go.mod h1:ACLrdkd4CLZyXOghZ8IYumQbcooAcp2jo/s2xsFH8IM= +github.com/aws/aws-sdk-go-v2/credentials v1.13.40 h1:s8yOkDh+5b1jUDhMBtngF6zKWLDs84chUk2Vk0c38Og= +github.com/aws/aws-sdk-go-v2/credentials v1.13.40/go.mod h1:VtEHVAAqDWASwdOqj/1huyT6uHbs5s8FUHfDQdky/Rs= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.1/go.mod h1:lfUx8puBRdM5lVVMQlwt2v+ofiG/X6Ms+dy0UkG/kXw= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.11 h1:uDZJF1hu0EVT/4bogChk8DyjSF6fof6uL/0Y26Ma7Fg= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.11/go.mod h1:TEPP4tENqBGO99KwVpV9MlOX4NSrSLP8u3KRy2CDwA8= @@ -50,8 +50,8 @@ github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.25/go.mod h1:zBHOPwhBc3F github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.35 h1:SijA0mgjV8E+8G45ltVHs0fvKpTj8xmZJ3VwhGKtUSI= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.35/go.mod h1:SJC1nEVVva1g3pHAIdCp7QsRIkMmLAgoDquQ9Rr8kYw= github.com/aws/aws-sdk-go-v2/internal/ini v1.3.32/go.mod h1:XGhIBZDEgfqmFIugclZ6FU7v75nHhBDtzuB4xB/tEi4= -github.com/aws/aws-sdk-go-v2/internal/ini v1.3.42 h1:GPUcE/Yq7Ur8YSUk6lVkoIMWnJNO0HT18GUzCWCgCI0= -github.com/aws/aws-sdk-go-v2/internal/ini v1.3.42/go.mod h1:rzfdUlfA+jdgLDmPKjd3Chq9V7LVLYo1Nz++Wb91aRo= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.43 h1:g+qlObJH4Kn4n21g69DjspU0hKTjWtq7naZ9OLCv0ew= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.43/go.mod h1:rzfdUlfA+jdgLDmPKjd3Chq9V7LVLYo1Nz++Wb91aRo= github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 h1:DWYZIsyqagnWL00f8M/SOr9fN063OEQWn9LLTbdYXsk= github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23/go.mod h1:uIiFgURZbACBEQJfqTZPb/jxO7R+9LeoHUFudtIdeQI= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 h1:y2+VQzC6Zh2ojtV2LoC0MNwHWc6qXv/j2vrQtlftkdA= @@ -68,14 +68,14 @@ github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0/go.mod h1:ncltU6n4Nof5uJttDtcNQ5 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.21.3 h1:H6ZipEknzu7RkJW3w2PP75zd8XOdR35AEY5D57YrJtA= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.21.3/go.mod h1:5W2cYXDPabUmwULErlC92ffLhtTuyv4ai+5HhdbhfNo= github.com/aws/aws-sdk-go-v2/service/sso v1.12.6/go.mod h1:Y1VOmit/Fn6Tz1uFAeCO6Q7M2fmfXSCLeL5INVYsLuY= -github.com/aws/aws-sdk-go-v2/service/sso v1.13.6 h1:2PylFCfKCEDv6PeSN09pC/VUiRd10wi1VfHG5FrW0/g= -github.com/aws/aws-sdk-go-v2/service/sso v1.13.6/go.mod h1:fIAwKQKBFu90pBxx07BFOMJLpRUGu8VOzLJakeY+0K4= +github.com/aws/aws-sdk-go-v2/service/sso v1.14.1 h1:YkNzx1RLS0F5qdf9v1Q8Cuv9NXCL2TkosOxhzlUPV64= +github.com/aws/aws-sdk-go-v2/service/sso v1.14.1/go.mod h1:fIAwKQKBFu90pBxx07BFOMJLpRUGu8VOzLJakeY+0K4= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.6/go.mod h1:Lh/bc9XUf8CfOY6Jp5aIkQtN+j1mc+nExc+KXj9jx2s= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.15.6 h1:pSB560BbVj9ZlJZF4WYj5zsytWHWKxg+NgyGV4B2L58= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.15.6/go.mod h1:yygr8ACQRY2PrEcy3xsUI357stq2AxnFM6DIsR9lij4= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.1 h1:8lKOidPkmSmfUtiTgtdXWgaKItCZ/g75/jEk6Ql6GsA= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.1/go.mod h1:yygr8ACQRY2PrEcy3xsUI357stq2AxnFM6DIsR9lij4= github.com/aws/aws-sdk-go-v2/service/sts v1.18.7/go.mod h1:JuTnSoeePXmMVe9G8NcjjwgOKEfZ4cOjMuT2IBT/2eI= -github.com/aws/aws-sdk-go-v2/service/sts v1.21.5 h1:CQBFElb0LS8RojMJlxRSo/HXipvTZW2S44Lt9Mk2aYQ= -github.com/aws/aws-sdk-go-v2/service/sts v1.21.5/go.mod h1:VC7JDqsqiwXukYEDjoHh9U0fOJtNWh04FPQz4ct4GGU= +github.com/aws/aws-sdk-go-v2/service/sts v1.22.0 h1:s4bioTgjSFRwOoyEFzAVCmFmoowBgjTR8gkrF/sQ4wk= +github.com/aws/aws-sdk-go-v2/service/sts v1.22.0/go.mod h1:VC7JDqsqiwXukYEDjoHh9U0fOJtNWh04FPQz4ct4GGU= github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= github.com/aws/smithy-go v1.14.2 h1:MJU9hqBGbvWZdApzpvoF2WAIJDbtjK2NDJSiJP7HblQ= github.com/aws/smithy-go v1.14.2/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= From 0875aeabfb2859a2e6d6f37a22cb6e257975d282 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Sun, 8 Oct 2023 14:31:13 +0200 Subject: [PATCH 110/401] fix: revisit errors package, match the errors (#350) --- cmd/sql_exporter/promhttp.go | 44 ++++++++++++++++++++---------------- errors/errors.go | 28 ++++++++++++++--------- go.mod | 2 +- go.sum | 4 ++-- 4 files changed, 45 insertions(+), 33 deletions(-) diff --git a/cmd/sql_exporter/promhttp.go b/cmd/sql_exporter/promhttp.go index 3615a5f8..c589f2f3 100644 --- a/cmd/sql_exporter/promhttp.go +++ b/cmd/sql_exporter/promhttp.go @@ -5,7 +5,6 @@ import ( "compress/gzip" "context" "errors" - "fmt" "io" "net/http" "strconv" @@ -24,6 +23,13 @@ const ( contentLengthHeader string = "Content-Length" contentEncodingHeader string = "Content-Encoding" acceptEncodingHeader string = "Accept-Encoding" + scrapeTimeoutHeader string = "X-Prometheus-Scrape-Timeout-Seconds" +) + +const ( + prometheusHeaderErr = "Failed to parse timeout from Prometheus header" + noMetricsGathered = "No metrics gathered" + noMetricsEncoded = "No metrics encoded" ) // ExporterHandlerFor returns an http.Handler for the provided Exporter. @@ -36,15 +42,19 @@ func ExporterHandlerFor(exporter sql_exporter.Exporter) http.Handler { gatherer := prometheus.Gatherers{exporter.WithContext(ctx)} mfs, err := gatherer.Gather() if err != nil { - if errors.Is(err, context.DeadlineExceeded) { - klog.Errorf("Timeout collecting metrics from target: %s", err) - } if len(mfs) == 0 { - klog.Errorf("No metrics gathered: %s", err) - http.Error(w, "No metrics gathered, "+err.Error(), http.StatusInternalServerError) + klog.Errorf("%s: %s", noMetricsGathered, err) + http.Error(w, noMetricsGathered+", "+err.Error(), http.StatusInternalServerError) return } - klog.Errorf("Error gathering metrics: %s", err) + multierr := err.(prometheus.MultiError) + for _, err := range multierr { + if errors.Is(err, context.DeadlineExceeded) { + klog.Errorf("%s: timeout collecting metrics", err) + } else { + klog.Errorf("Error gathering metrics: %s", err) + } + } } contentType := expfmt.Negotiate(req.Header) @@ -63,12 +73,13 @@ func ExporterHandlerFor(exporter sql_exporter.Exporter) http.Handler { closer.Close() } if errs.MaybeUnwrap() != nil && buf.Len() == 0 { - http.Error(w, "No metrics encoded, "+errs.Error(), http.StatusInternalServerError) + klog.Errorf("%s: %s", noMetricsEncoded, errs) + http.Error(w, noMetricsEncoded+", "+errs.Error(), http.StatusInternalServerError) return } header := w.Header() header.Set(contentTypeHeader, string(contentType)) - header.Set(contentLengthHeader, fmt.Sprint(buf.Len())) + header.Set(contentLengthHeader, strconv.Itoa(buf.Len())) if encoding != "" { header.Set(contentEncodingHeader, encoding) } @@ -80,19 +91,14 @@ func contextFor(req *http.Request, exporter sql_exporter.Exporter) (context.Cont timeout := time.Duration(0) configTimeout := time.Duration(exporter.Config().Globals.ScrapeTimeout) // If a timeout is provided in the Prometheus header, use it. - if v := req.Header.Get("X-Prometheus-Scrape-Timeout-Seconds"); v != "" { + if v := req.Header.Get(scrapeTimeoutHeader); v != "" { timeoutSeconds, err := strconv.ParseFloat(v, 64) if err != nil { - parseError := errors.Unwrap(err) switch { - case errors.Is(parseError, strconv.ErrSyntax): - { - klog.Errorf("Failed to parse timeout from Prometheus header: unsupported value") - } - case errors.Is(parseError, strconv.ErrRange): - { - klog.Errorf("Failed to parse timeout from Prometheus header: value is out of range") - } + case errors.Is(err, strconv.ErrSyntax): + klog.Errorf("%s: unsupported value", prometheusHeaderErr) + case errors.Is(err, strconv.ErrRange): + klog.Errorf("%s: value out of range", prometheusHeaderErr) } } else { timeout = time.Duration(timeoutSeconds * float64(time.Second)) diff --git a/errors/errors.go b/errors/errors.go index 0c8e4357..2673a34e 100644 --- a/errors/errors.go +++ b/errors/errors.go @@ -12,23 +12,24 @@ type WithContext interface { error Context() string - RawError() string + RawError() error + Unwrap() error } // withContext implements WithContext. type withContext struct { context string - err string + err error } // New creates a new WithContext. -func New(context, err string) WithContext { - return &withContext{context, err} +func New(context string, err string) WithContext { + return &withContext{context, fmt.Errorf(err)} } // Errorf formats according to a format specifier and returns a new WithContext. func Errorf(context, format string, a ...any) WithContext { - return &withContext{context, fmt.Sprintf(format, a...)} + return &withContext{context, fmt.Errorf(format, a...)} } // Wrap returns a WithContext wrapping err. If err is nil, it returns nil. If err is a WithContext, it is returned @@ -40,7 +41,7 @@ func Wrap(context string, err error) WithContext { if w, ok := err.(WithContext); ok { return w } - return &withContext{context, err.Error()} + return &withContext{context, err} } // Wrapf returns a WithContext that prepends a formatted message to err.Error(). If err is nil, it returns nil. If err @@ -55,17 +56,17 @@ func Wrapf(context string, err error, format string, a ...any) WithContext { prefix = fmt.Sprintf(format, a...) } if w, ok := err.(WithContext); ok { - return &withContext{w.Context(), prefix + ": " + w.RawError()} + return &withContext{w.Context(), fmt.Errorf("%s: %w", prefix, w.RawError())} } - return &withContext{context, prefix + ": " + err.Error()} + return &withContext{context, err} } // Error implements error. func (w *withContext) Error() string { if len(w.context) == 0 { - return w.err + return w.err.Error() } - return "[" + w.context + "] " + w.err + return "[" + w.context + "] " + w.err.Error() } // Context implements WithContext. @@ -74,6 +75,11 @@ func (w *withContext) Context() string { } // RawError implements WithContext. -func (w *withContext) RawError() string { +func (w *withContext) RawError() error { return w.err } + +// Unwrap implements WithContext. +func (w *withContext) Unwrap() error { + return fmt.Errorf("[%s] %w", w.context, w.err) +} diff --git a/go.mod b/go.mod index 9ffcf7e1..236c6930 100644 --- a/go.mod +++ b/go.mod @@ -118,4 +118,4 @@ require ( howett.net/plist v0.0.0-20181124034731-591f970eefbb // indirect ) -replace k8s.io/klog/v2 => github.com/simonpasquier/klog-gokit/v3 v3.1.0 +replace k8s.io/klog/v2 => github.com/simonpasquier/klog-gokit/v3 v3.3.0 diff --git a/go.sum b/go.sum index 3dfa25b5..fb282831 100644 --- a/go.sum +++ b/go.sum @@ -288,8 +288,8 @@ github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdh github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= github.com/shopspring/decimal v1.2.0 h1:abSATXmQEYyShuxI4/vyW3tV1MrKAJzCZ/0zLUXYbsQ= github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= -github.com/simonpasquier/klog-gokit/v3 v3.1.0 h1:xQGqjZdgo1lFA4eZ9PcGnKKXgIPz9t+jc25q/fXooIE= -github.com/simonpasquier/klog-gokit/v3 v3.1.0/go.mod h1:+WRhGy707Lp2Q4r727m9Oc7FxazOHgW76FIyCr23nus= +github.com/simonpasquier/klog-gokit/v3 v3.3.0 h1:HMzH999kO5gEgJTaWWO+xjncW5oycspcsBnjn9b853Q= +github.com/simonpasquier/klog-gokit/v3 v3.3.0/go.mod h1:uSbnWC3T7kt1dQyY9sjv0Ao1SehMAJdVnUNSKhjaDsg= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= From 7f9f26b1208fbab4846a4043bdc0f297e0cc4761 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Sun, 8 Oct 2023 15:27:47 +0200 Subject: [PATCH 111/401] fix: error type conversion (#353) --- cmd/sql_exporter/promhttp.go | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/cmd/sql_exporter/promhttp.go b/cmd/sql_exporter/promhttp.go index c589f2f3..4d121f4d 100644 --- a/cmd/sql_exporter/promhttp.go +++ b/cmd/sql_exporter/promhttp.go @@ -42,19 +42,23 @@ func ExporterHandlerFor(exporter sql_exporter.Exporter) http.Handler { gatherer := prometheus.Gatherers{exporter.WithContext(ctx)} mfs, err := gatherer.Gather() if err != nil { + switch t := err.(type) { + case prometheus.MultiError: + for _, err := range t { + if errors.Is(err, context.DeadlineExceeded) { + klog.Errorf("%s: timeout collecting metrics", err) + } else { + klog.Errorf("Error gathering metrics: %s", err) + } + } + default: + klog.Errorf("Error gathering metrics: %s", err) + } if len(mfs) == 0 { klog.Errorf("%s: %s", noMetricsGathered, err) http.Error(w, noMetricsGathered+", "+err.Error(), http.StatusInternalServerError) return } - multierr := err.(prometheus.MultiError) - for _, err := range multierr { - if errors.Is(err, context.DeadlineExceeded) { - klog.Errorf("%s: timeout collecting metrics", err) - } else { - klog.Errorf("Error gathering metrics: %s", err) - } - } } contentType := expfmt.Negotiate(req.Header) From 361a44efa7b2cf09d512f50240ce8e844f45bfa1 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Sun, 8 Oct 2023 15:33:17 +0200 Subject: [PATCH 112/401] feat: scrape_errors_total metric (#339) * feat: watch for scrape errors * fix: avoid parsing empty error context * fix: target context log format * fix: target log format * refactor: simplify functions, cleanup * refactor: extract scrapeErrors out of exporter struct, naming --- cmd/sql_exporter/main.go | 17 ++---------- cmd/sql_exporter/promhttp.go | 36 +----------------------- cmd/sql_exporter/util.go | 54 ++++++++++++++++++++++++++++++++++++ collector.go | 4 +-- config/config.go | 10 ++++--- exporter.go | 39 ++++++++++++++++++++++++-- job.go | 2 +- metric.go | 2 +- query.go | 3 +- target.go | 6 +++- 10 files changed, 111 insertions(+), 62 deletions(-) create mode 100644 cmd/sql_exporter/util.go diff --git a/cmd/sql_exporter/main.go b/cmd/sql_exporter/main.go index 89e6b4c2..187cf23f 100644 --- a/cmd/sql_exporter/main.go +++ b/cmd/sql_exporter/main.go @@ -20,6 +20,7 @@ import ( ) const ( + appName string = "sql_exporter" envConfigFile string = "SQLEXPORTER_CONFIG" envDebug string = "SQLEXPORTER_DEBUG" httpReadHeaderTimeout time.Duration = time.Duration(time.Second * 60) @@ -76,7 +77,7 @@ func main() { } if *showVersion { - fmt.Println(version.Print("sql_exporter")) + fmt.Println(version.Print(appName)) os.Exit(0) } @@ -107,11 +108,6 @@ func main() { } } -// OfBool returns bool address. -func OfBool(i bool) *bool { - return &i -} - func reloadCollectors(e sql_exporter.Exporter) func(http.ResponseWriter, *http.Request) { return func(w http.ResponseWriter, r *http.Request) { klog.Warning("Reloading collectors has started...") @@ -190,12 +186,3 @@ func reloadCollectors(e sql_exporter.Exporter) func(http.ResponseWriter, *http.R http.Error(w, "", http.StatusInternalServerError) } } - -// LogFunc is an adapter to allow the use of any function as a promhttp.Logger. If f is a function, LogFunc(f) is a -// promhttp.Logger that calls f. -type LogFunc func(args ...any) - -// Println implements promhttp.Logger. -func (log LogFunc) Println(args ...any) { - log(args) -} diff --git a/cmd/sql_exporter/promhttp.go b/cmd/sql_exporter/promhttp.go index 4d121f4d..1f68d3ea 100644 --- a/cmd/sql_exporter/promhttp.go +++ b/cmd/sql_exporter/promhttp.go @@ -1,15 +1,11 @@ package main import ( - "bytes" - "compress/gzip" "context" "errors" "io" "net/http" "strconv" - "strings" - "sync" "time" "github.com/burningalchemist/sql_exporter" @@ -39,7 +35,7 @@ func ExporterHandlerFor(exporter sql_exporter.Exporter) http.Handler { defer cancel() // Go through prometheus.Gatherers to sanitize and sort metrics. - gatherer := prometheus.Gatherers{exporter.WithContext(ctx)} + gatherer := prometheus.Gatherers{exporter.WithContext(ctx), sql_exporter.SvcRegistry} mfs, err := gatherer.Gather() if err != nil { switch t := err.(type) { @@ -128,33 +124,3 @@ func contextFor(req *http.Request, exporter sql_exporter.Exporter) (context.Cont } return context.WithTimeout(context.Background(), timeout) } - -var bufPool sync.Pool - -func getBuf() *bytes.Buffer { - buf := bufPool.Get() - if buf == nil { - return &bytes.Buffer{} - } - return buf.(*bytes.Buffer) -} - -func giveBuf(buf *bytes.Buffer) { - buf.Reset() - bufPool.Put(buf) -} - -// decorateWriter wraps a writer to handle gzip compression if requested. It -// returns the decorated writer and the appropriate "Content-Encoding" header -// (which is empty if no compression is enabled). -func decorateWriter(request *http.Request, writer io.Writer) (w io.Writer, encoding string) { - header := request.Header.Get(acceptEncodingHeader) - parts := strings.Split(header, ",") - for _, part := range parts { - part := strings.TrimSpace(part) - if part == "gzip" || strings.HasPrefix(part, "gzip;") { - return gzip.NewWriter(writer), "gzip" - } - } - return writer, "" -} diff --git a/cmd/sql_exporter/util.go b/cmd/sql_exporter/util.go new file mode 100644 index 00000000..bc83dfa6 --- /dev/null +++ b/cmd/sql_exporter/util.go @@ -0,0 +1,54 @@ +package main + +import ( + "bytes" + "compress/gzip" + "io" + "net/http" + "strings" + "sync" +) + +var bufPool sync.Pool + +func getBuf() *bytes.Buffer { + buf := bufPool.Get() + if buf == nil { + return &bytes.Buffer{} + } + return buf.(*bytes.Buffer) +} + +func giveBuf(buf *bytes.Buffer) { + buf.Reset() + bufPool.Put(buf) +} + +// decorateWriter wraps a writer to handle gzip compression if requested. It +// returns the decorated writer and the appropriate "Content-Encoding" header +// (which is empty if no compression is enabled). +func decorateWriter(request *http.Request, writer io.Writer) (w io.Writer, encoding string) { + header := request.Header.Get(acceptEncodingHeader) + parts := strings.Split(header, ",") + for _, part := range parts { + part := strings.TrimSpace(part) + if part == "gzip" || strings.HasPrefix(part, "gzip;") { + return gzip.NewWriter(writer), "gzip" + } + } + return writer, "" +} + +// LogFunc is an adapter to allow the use of any function as a promhttp.Logger. If f is a function, LogFunc(f) is a +// promhttp.Logger that calls f. +type LogFunc func(args ...interface{}) + +// Println implements promhttp.Logger. +func (log LogFunc) Println(args ...interface{}) { + log(args) +} + +// OfBool returns bool address. +func OfBool(i bool) *bool { + return &i +} diff --git a/collector.go b/collector.go index edd90edf..7a58b87d 100644 --- a/collector.go +++ b/collector.go @@ -31,9 +31,9 @@ type collector struct { // NewCollector returns a new Collector with the given configuration and database. The metrics it creates will all have // the provided const labels applied. func NewCollector(logContext string, cc *config.CollectorConfig, constLabels []*dto.LabelPair) (Collector, errors.WithContext) { - logContext = fmt.Sprintf("%s, collector=%q", logContext, cc.Name) + logContext = fmt.Sprintf(`%s,collector=%s`, logContext, cc.Name) - // Leading comma appears when target name is undefined, which is a side-effect of running in single target mode. + // Leading comma appears when previous parameter is undefined, which is a side-effect of running in single target mode. // Let's trim to avoid confusions. if strings.HasPrefix(logContext, ",") { logContext = strings.TrimLeft(logContext, ", ") diff --git a/config/config.go b/config/config.go index 006e4f54..aa8381e1 100644 --- a/config/config.go +++ b/config/config.go @@ -19,16 +19,18 @@ import ( "k8s.io/klog/v2" ) +const EnvDsnOverride = "SQLEXPORTER_TARGET_DSN" + +// MaxInt32 defines the maximum value of allowed integers +// and serves to help us avoid overflow/wraparound issues. +const MaxInt32 int = 1<<31 - 1 + var ( EnablePing bool DsnOverride string TargetLabel string ) -// MaxInt32 defines the maximum value of allowed integers -// and serves to help us avoid overflow/wraparound issues. -const MaxInt32 int = 1<<31 - 1 - // Load attempts to parse the given config file and return a Config object. func Load(configFile string) (*Config, error) { klog.Infof("Loading configuration from %s", configFile) diff --git a/exporter.go b/exporter.go index 48344a8b..bcca4267 100644 --- a/exporter.go +++ b/exporter.go @@ -5,6 +5,7 @@ import ( "errors" "fmt" "os" + "strings" "sync" "github.com/burningalchemist/sql_exporter/config" @@ -13,7 +14,11 @@ import ( "google.golang.org/protobuf/proto" ) -const envDsnOverride = "SQLEXPORTER_TARGET_DSN" +var ( + SvcRegistry = prometheus.NewRegistry() + svcMetricLabels = []string{"job", "target", "collector", "query"} + scrapeErrorsMetric *prometheus.CounterVec +) // Exporter is a prometheus.Gatherer that gathers SQL metrics from targets and merges them with the default registry. type Exporter interface { @@ -40,7 +45,7 @@ func NewExporter(configFile string) (Exporter, error) { return nil, err } - if val, ok := os.LookupEnv(envDsnOverride); ok { + if val, ok := os.LookupEnv(config.EnvDsnOverride); ok { config.DsnOverride = val } // Override the DSN if requested (and in single target mode). @@ -75,6 +80,8 @@ func NewExporter(configFile string) (Exporter, error) { } } + scrapeErrorsMetric = registerScrapeErrorMetric() + return &exporter{ config: c, targets: targets, @@ -124,6 +131,14 @@ func (e *exporter) Gather() ([]*dto.MetricFamily, error) { dtoMetric := &dto.Metric{} if err := metric.Write(dtoMetric); err != nil { errs = append(errs, err) + if err.Context() != "" { + ctxLabels := parseContextLog(err.Context()) + values := make([]string, len(svcMetricLabels)) + for i, label := range svcMetricLabels { + values[i] = ctxLabels[label] + } + scrapeErrorsMetric.WithLabelValues(values...).Inc() + } continue } metricDesc := metric.Desc() @@ -162,3 +177,23 @@ func (e *exporter) Config() *config.Config { func (e *exporter) UpdateTarget(target []Target) { e.targets = target } + +// registerScrapeErrorMetric registers the metrics for the exporter itself. +func registerScrapeErrorMetric() *prometheus.CounterVec { + scrapeErrors := prometheus.NewCounterVec(prometheus.CounterOpts{ + Name: "scrape_errors_total", + Help: "Total number of scrape errors per job, target, collector and query", + }, svcMetricLabels) + SvcRegistry.MustRegister(scrapeErrors) + return scrapeErrors +} + +// split comma separated list of key=value pairs and return a map of key value pairs +func parseContextLog(list string) map[string]string { + m := make(map[string]string) + for _, item := range strings.Split(list, ",") { + parts := strings.SplitN(item, "=", 2) + m[parts[0]] = parts[1] + } + return m +} diff --git a/job.go b/job.go index 2b063ccb..51191819 100644 --- a/job.go +++ b/job.go @@ -25,7 +25,7 @@ func NewJob(jc *config.JobConfig, gc *config.GlobalConfig) (Job, errors.WithCont j := job{ config: jc, targets: make([]Target, 0, 10), - logContext: fmt.Sprintf("job=%q", jc.Name), + logContext: fmt.Sprintf(`job=%s`, jc.Name), } if jc.EnablePing == nil { diff --git a/metric.go b/metric.go index 3ab558e7..892a8d7b 100644 --- a/metric.go +++ b/metric.go @@ -36,7 +36,7 @@ type MetricFamily struct { // NewMetricFamily creates a new MetricFamily with the given metric config and const labels (e.g. job and instance). func NewMetricFamily(logContext string, mc *config.MetricConfig, constLabels []*dto.LabelPair) (*MetricFamily, errors.WithContext) { - logContext = fmt.Sprintf("%s, metric=%q", logContext, mc.Name) + logContext = fmt.Sprintf(`%s,metric=%s`, logContext, mc.Name) if len(mc.Values) == 0 && mc.StaticValue == nil { return nil, errors.New(logContext, "no value column defined") diff --git a/query.go b/query.go index 473cca31..519c887a 100644 --- a/query.go +++ b/query.go @@ -34,7 +34,7 @@ const ( // NewQuery returns a new Query that will populate the given metric families. func NewQuery(logContext string, qc *config.QueryConfig, metricFamilies ...*MetricFamily) (*Query, errors.WithContext) { - logContext = fmt.Sprintf("%s, query=%q", logContext, qc.Name) + logContext = fmt.Sprintf(`%s,query=%s`, logContext, qc.Name) columnTypes := make(columnTypeMap) @@ -77,6 +77,7 @@ func setColumnType(logContext, columnName string, ctype columnType, columnTypes func (q *Query) Collect(ctx context.Context, conn *sql.DB, ch chan<- Metric) { if ctx.Err() != nil { ch <- NewInvalidMetric(errors.Wrap(q.logContext, ctx.Err())) + return } rows, err := q.run(ctx, conn) diff --git a/target.go b/target.go index 3c2f3afc..3c03361d 100644 --- a/target.go +++ b/target.go @@ -14,6 +14,7 @@ import ( "github.com/prometheus/client_golang/prometheus" dto "github.com/prometheus/client_model/go" "google.golang.org/protobuf/proto" + "k8s.io/klog/v2" ) const ( @@ -56,12 +57,15 @@ func NewTarget( ) { if tname != "" { - logContext = fmt.Sprintf("%s, target=%q", logContext, tname) + logContext = fmt.Sprintf(`%s,target=%s`, logContext, tname) if constLabels == nil { constLabels = prometheus.Labels{config.TargetLabel: tname} } } + klog.Infof("[%s] Target ping enabled: %v", logContext, *ep) + + // Sort const labels by name to ensure consistent ordering. constLabelPairs := make([]*dto.LabelPair, 0, len(constLabels)) for n, v := range constLabels { constLabelPairs = append(constLabelPairs, &dto.LabelPair{ From eaccecee77e59156d7f19196f760e8cd83f18e91 Mon Sep 17 00:00:00 2001 From: Nikolai Rodionov Date: Mon, 9 Oct 2023 10:10:53 +0200 Subject: [PATCH 113/401] feat: add a helm chart with the releaser action (#349) * feat: Create an initial version of a helm chart Currently, Helm is the only package manager for Kubernetes, and it's very widely used across many Kubernetes users. So I've thought that it could make sense to start distributing sql_exporter with helm * build: Add a Github Workflow to manage helm chart This action will lint the chart on every change. If chart was updated, but its version was not, the action will be failed, that should make the delivery more smooth. If commit was pushed to the main branch, the action will release a new chart version. It will create a new GitHub release and push to the gh-pages branch. This branch has to be configured as the one for serving GitHub Pages. Then it will start action as a Helm repository. * refactor: Apply some formatting and update values --- .github/workflows/helm-workflow.yaml | 71 ++++++++++++ helm/.helmignore | 23 ++++ helm/Chart.yaml | 18 +++ helm/ci/helmfile.yaml | 37 ++++++ helm/ci/postgresql-values.yaml | 56 +++++++++ helm/templates/NOTES.txt | 33 ++++++ helm/templates/_helpers.tpl | 62 ++++++++++ helm/templates/configmap.collectors.yaml | 13 +++ helm/templates/deployment.yaml | 76 +++++++++++++ helm/templates/secret.configuration.yaml | 13 +++ helm/templates/service.yaml | 15 +++ helm/templates/servicemonitor.yaml | 34 ++++++ helm/templates/tests/test-connection.yaml | 50 +++++++++ helm/templates/tests/test-servicemonitor.yaml | 64 +++++++++++ helm/values.yaml | 106 ++++++++++++++++++ 15 files changed, 671 insertions(+) create mode 100644 .github/workflows/helm-workflow.yaml create mode 100644 helm/.helmignore create mode 100644 helm/Chart.yaml create mode 100644 helm/ci/helmfile.yaml create mode 100644 helm/ci/postgresql-values.yaml create mode 100644 helm/templates/NOTES.txt create mode 100644 helm/templates/_helpers.tpl create mode 100644 helm/templates/configmap.collectors.yaml create mode 100644 helm/templates/deployment.yaml create mode 100644 helm/templates/secret.configuration.yaml create mode 100644 helm/templates/service.yaml create mode 100644 helm/templates/servicemonitor.yaml create mode 100644 helm/templates/tests/test-connection.yaml create mode 100644 helm/templates/tests/test-servicemonitor.yaml create mode 100644 helm/values.yaml diff --git a/.github/workflows/helm-workflow.yaml b/.github/workflows/helm-workflow.yaml new file mode 100644 index 00000000..9986b8a2 --- /dev/null +++ b/.github/workflows/helm-workflow.yaml @@ -0,0 +1,71 @@ +--- +name: Helm +on: push + +jobs: + helm-jobs: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Set up Helm + uses: azure/setup-helm@v3 + with: + version: v3.12.1 + + - uses: actions/setup-python@v4 + with: + python-version: '3.9' + check-latest: true + + - name: Set up chart-testing + uses: helm/chart-testing-action@v2.4.0 + + - name: Run chart-testing (list-changed) + id: list-changed + run: | + changed=$(ct list-changed --chart-dirs . --target-branch ${{ github.event.repository.default_branch }}) + if [[ -n "$changed" ]]; then + echo "changed=true" >> "$GITHUB_OUTPUT" + fi + + - name: Run chart-testing (lint) + if: steps.list-changed.outputs.changed == 'true' + run: ct lint --target-branch ${{ github.event.repository.default_branch }} --validate-maintainers=false --chart-dirs . + + - name: Setup helmfile + if: steps.list-changed.outputs.changed == 'true' + uses: mamezou-tech/setup-helmfile@v1.2.0 + + - name: Create kind cluster + if: steps.list-changed.outputs.changed == 'true' + uses: helm/kind-action@v1.7.0 + + - name: Init postgres server + if: steps.list-changed.outputs.changed == 'true' + run: | + helmfile -f helm/ci/helmfile.yaml sync + + - name: Run chart-testing (install) + if: steps.list-changed.outputs.changed == 'true' + run: ct install --target-branch ${{ github.event.repository.default_branch }} --chart-dirs . + + - name: Run chart-testing (upgrade) + if: steps.list-changed.outputs.changed == 'true' + run: ct install --target-branch ${{ github.event.repository.default_branch }} --chart-dirs . --upgrade + + - name: Configure Git + run: | + git config user.name "$GITHUB_ACTOR" + git config user.email "$GITHUB_ACTOR@users.noreply.github.com" + + - name: Release charts + if: ${{ github.ref == github.event.repository.default_branch }} + uses: helm/chart-releaser-action@v1.5.0 + with: + charts_dir: . + env: + CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" diff --git a/helm/.helmignore b/helm/.helmignore new file mode 100644 index 00000000..0e8a0eb3 --- /dev/null +++ b/helm/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/helm/Chart.yaml b/helm/Chart.yaml new file mode 100644 index 00000000..260f0613 --- /dev/null +++ b/helm/Chart.yaml @@ -0,0 +1,18 @@ +apiVersion: v2 +name: sql-exporter +description: Database agnostic SQL exporter for Prometheus +type: application +version: 0.1.0 +appVersion: 0.12.3 +keywords: + - exporter + - servicemonitor + - sql + - metrics +home: https://github.com/burningalchemist/sql_exporter +sources: + - https://github.com/burningalchemist/sql_exporter +maintainers: + - name: Nikolai Rodionov + email: allanger@zohomail.com + url: https://badhouseplants.net diff --git a/helm/ci/helmfile.yaml b/helm/ci/helmfile.yaml new file mode 100644 index 00000000..ca5942dd --- /dev/null +++ b/helm/ci/helmfile.yaml @@ -0,0 +1,37 @@ +repositories: + - name: bitnami + url: https://charts.bitnami.com/bitnami + - name: prometheus-community + url: https://prometheus-community.github.io/helm-charts + +releases: + - name: postgres-instance + installed: true + namespace: postgres + createNamespace: true + chart: bitnami/postgresql + values: + - global: + postgresql: + auth: + postgresPassword: 123123!! + - name: prometheus-stack + namespace: monitoring + createNamespace: true + chart: prometheus-community/kube-prometheus-stack + values: + - prometheus: + prometheusSpec: + enableAdminAPI: true + podMonitorNamespaceSelector: + any: true + podMonitorSelector: {} + podMonitorSelectorNilUsesHelmValues: false + ruleNamespaceSelector: + any: true + ruleSelector: {} + ruleSelectorNilUsesHelmValues: false + serviceMonitorNamespaceSelector: + any: true + serviceMonitorSelector: {} + serviceMonitorSelectorNilUsesHelmValues: false diff --git a/helm/ci/postgresql-values.yaml b/helm/ci/postgresql-values.yaml new file mode 100644 index 00000000..5650ce41 --- /dev/null +++ b/helm/ci/postgresql-values.yaml @@ -0,0 +1,56 @@ +tests: + serviceMonitor: + enabled: true + prom: + service: prometheus-operated + namespace: monitoring + metricsEndpoint: + enabled: true + +config: + target: + data_source_name: 'postgresql://postgres:123123!!@postgres-instance-postgresql.postgres.svc.cluster.local:5432?sslmode=disable' + collectors: [active_connections] + collectors: + - collector_name: active_connections + metrics: + - metric_name: active_connections + type: gauge + help: 'Active connections' + key_labels: + - "datname" + - "usename" + - "state" + values: + - "count" + query_ref: active_connections + queries: + - query_name: active_connections + query: | + SELECT + datname::text, + usename::text, + state::text, + COUNT(state)::float AS count + FROM pg_stat_activity + GROUP BY datname, usename, state; + collector_files: + - "*.collector.yml" +collectorFiles: + pricing_data_freshness.collector.yml: + collector_name: pricing_data_freshness + metrics: + - metric_name: pricing_update_time + type: gauge + help: 'Time when prices for a market were last updated.' + key_labels: + # Populated from the `market` column of each row. + - Market + static_labels: + # Arbitrary key/value pair + portfolio: income + values: [LastUpdateTime] + query: | + SELECT Market, max(UpdateTime) AS LastUpdateTime + FROM MarketPrices + GROUP BY Market diff --git a/helm/templates/NOTES.txt b/helm/templates/NOTES.txt new file mode 100644 index 00000000..4a9da1ca --- /dev/null +++ b/helm/templates/NOTES.txt @@ -0,0 +1,33 @@ +------------------------------ +Hello there! + +{{- if and (not .Values.config.target ) (not .Values.config.jobs)}} +------------------------------ + +It seems like you haven't configured the target, please check the example here: + + https://github.com/burningalchemist/sql_exporter/blob/master/documentation/sql_exporter.yml#L30 + +In case you need to have multiple targets, you can confiure jobs instead, have a look here + + https://github.com/burningalchemist/sql_exporter#multiple-database-connections + +{{- end}} + +{{- if and (not .Values.config.collectors) (not .Values.config.collectorFiles)}} + +------------------------------ +You need to configure either collectors or collectorFiles (or both), please have a look at the example here: + + https://github.com/burningalchemist/sql_exporter#multiple-database-connections + +{{- end }} + +------------------------------ +If you want to test if the helm release is configured correctly, you can execute + + $ helm test {{ .Release.Name }} + +This test will check that sql_exported metrics endpoint returns status 200 + + diff --git a/helm/templates/_helpers.tpl b/helm/templates/_helpers.tpl new file mode 100644 index 00000000..5251b7c0 --- /dev/null +++ b/helm/templates/_helpers.tpl @@ -0,0 +1,62 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "sql-exporter.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "sql-exporter.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "sql-exporter.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "sql-exporter.labels" -}} +helm.sh/chart: {{ include "sql-exporter.chart" . }} +{{ include "sql-exporter.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{/* +Selector labels +*/}} +{{- define "sql-exporter.selectorLabels" -}} +app.kubernetes.io/name: {{ include "sql-exporter.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{/* +Create the name of the service account to use +*/}} +{{- define "sql-exporter.serviceAccountName" -}} +{{- if .Values.serviceAccount.create }} +{{- default (include "sql-exporter.fullname" .) .Values.serviceAccount.name }} +{{- else }} +{{- default "default" .Values.serviceAccount.name }} +{{- end }} +{{- end }} diff --git a/helm/templates/configmap.collectors.yaml b/helm/templates/configmap.collectors.yaml new file mode 100644 index 00000000..30cff052 --- /dev/null +++ b/helm/templates/configmap.collectors.yaml @@ -0,0 +1,13 @@ +{{- if .Values.collectorFiles }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "sql-exporter.fullname" . }} + labels: + {{- include "sql-exporter.labels" . | nindent 4 }} +data: + {{- range $k, $v := .Values.collectorFiles }} + {{ $k }}: |- + {{- toYaml $v | nindent 4}} + {{- end}} +{{- end }} diff --git a/helm/templates/deployment.yaml b/helm/templates/deployment.yaml new file mode 100644 index 00000000..56cef77b --- /dev/null +++ b/helm/templates/deployment.yaml @@ -0,0 +1,76 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "sql-exporter.fullname" . }} + labels: + {{- include "sql-exporter.labels" . | nindent 4 }} +spec: + replicas: {{ .Values.replicaCount }} + selector: + matchLabels: + {{- include "sql-exporter.selectorLabels" . | nindent 6 }} + template: + metadata: + annotations: + checksum/config: {{ include (print $.Template.BasePath "/secret.configuration.yaml") . | sha256sum }} + checksum/collectors: {{ include (print $.Template.BasePath "/configmap.collectors.yaml") . | sha256sum }} + labels: + {{- include "sql-exporter.selectorLabels" . | nindent 8 }} + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + securityContext: + {{- toYaml .Values.podSecurityContext | nindent 8 }} + volumes: + - name: sql-exporter + secret: + secretName: {{ include "sql-exporter.fullname" . }} + {{- if .Values.collectorFiles }} + - name: sql-collector + configMap: + name: {{ include "sql-exporter.fullname" . }} + {{- end }} + containers: + - name: {{ .Chart.Name }} + securityContext: + {{- toYaml .Values.securityContext | nindent 12 }} + image: "{{ .Values.image.repository }}:{{ default .Chart.AppVersion .Values.image.tag }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + args: ["-config.file=/etc/sql_exporter/sql_exporter.yml"] + volumeMounts: + - name: sql-exporter + readOnly: true + mountPath: /etc/sql_exporter/ + {{- if .Values.collectorFiles }} + - name: sql-collector + readOnly: true + mountPath: /etc/sql_exporter/collectors/ + {{- end }} + livenessProbe: + httpGet: + path: /healthz + port: 9399 + readinessProbe: + httpGet: + path: /healthz + port: 9399 + ports: + - name: http + containerPort: 9399 + protocol: TCP + resources: + {{- toYaml .Values.resources | nindent 12 }} + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} diff --git a/helm/templates/secret.configuration.yaml b/helm/templates/secret.configuration.yaml new file mode 100644 index 00000000..6a83e995 --- /dev/null +++ b/helm/templates/secret.configuration.yaml @@ -0,0 +1,13 @@ +# --------------------------------------------------------------------- +# -- This secret holds the config file of sql_exporter +# --------------------------------------------------------------------- +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "sql-exporter.fullname" . }} + labels: + {{- include "sql-exporter.labels" . | nindent 4 }} +type: Opaque +stringData: + sql_exporter.yml: |- + {{- toYaml .Values.config | nindent 4 }} diff --git a/helm/templates/service.yaml b/helm/templates/service.yaml new file mode 100644 index 00000000..353b5cf6 --- /dev/null +++ b/helm/templates/service.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "sql-exporter.fullname" . }} + labels: + {{- include "sql-exporter.labels" . | nindent 4 }} +spec: + type: {{ .Values.service.type }} + ports: + - port: {{ .Values.service.port }} + targetPort: http + protocol: TCP + name: http + selector: + {{- include "sql-exporter.selectorLabels" . | nindent 4 }} diff --git a/helm/templates/servicemonitor.yaml b/helm/templates/servicemonitor.yaml new file mode 100644 index 00000000..208e520a --- /dev/null +++ b/helm/templates/servicemonitor.yaml @@ -0,0 +1,34 @@ +{{- if .Values.serviceMonitor.enabled }} +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + name: {{ template "sql-exporter.fullname" . }} + {{- if .Values.serviceMonitor.namespace }} + namespace: {{ .Values.serviceMonitor.namespace }} + {{- else }} + namespace: {{ .Release.Namespace }} + {{- end }} + labels: + {{- include "sql-exporter.labels" . | nindent 4 }} + {{- range $key, $value := .Values.serviceMonitor.selector }} + {{ $key }}: {{ $value | quote }} + {{- end }} +spec: + selector: + matchLabels: + {{- include "sql-exporter.selectorLabels" . | nindent 6 }} + endpoints: + - port: http + {{- if .Values.serviceMonitor.path }} + path: {{ .Values.serviceMonitor.path }} + {{- end }} + {{- if .Values.serviceMonitor.interval }} + interval: {{ .Values.serviceMonitor.interval }} + {{- end }} + {{- if .Values.serviceMonitor.scrapeTimeout }} + scrapeTimeout: {{ .Values.serviceMonitor.scrapeTimeout }} + {{- end }} + namespaceSelector: + matchNames: + - {{ .Release.Namespace }} +{{- end }} diff --git a/helm/templates/tests/test-connection.yaml b/helm/templates/tests/test-connection.yaml new file mode 100644 index 00000000..f77d13c6 --- /dev/null +++ b/helm/templates/tests/test-connection.yaml @@ -0,0 +1,50 @@ +{{- if (((.Values.tests).metricsEndpoint).enabled) }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "sql-exporter.fullname" . }}-test-script + labels: + {{- include "sql-exporter.labels" . | nindent 4 }} + annotations: + "helm.sh/hook": test + "helm.sh/hook-weight": "1" + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded +data: + test.sh: |- + #! /bin/sh + STATUS=$(curl {{ include "sql-exporter.fullname" . }}:80/metrics --head -s | awk '/^HTTP/{print $2}') + if [ "$STATUS" != 200 ]; then + echo "sql-exporter didn't return code 200, probably something is broken" + exit 1; + fi + echo "metrics endpoint returned 200" +--- +apiVersion: v1 +kind: Pod +metadata: + name: "{{ include "sql-exporter.fullname" . }}-test-connection" + labels: + {{- include "sql-exporter.labels" . | nindent 4 }} + annotations: + "helm.sh/hook": test + "helm.sh/hook-weight": "2" + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded +spec: + volumes: + - name: test-script + configMap: + name: "{{ include "sql-exporter.fullname" . }}-test-script" + containers: + - name: check-metrics-endpoint + image: alpine/curl + command: ['sh'] + volumeMounts: + - name: test-script + readOnly: true + mountPath: /test.sh + subPath: test.sh + args: + - /test.sh + restartPolicy: Never +{{- end }} diff --git a/helm/templates/tests/test-servicemonitor.yaml b/helm/templates/tests/test-servicemonitor.yaml new file mode 100644 index 00000000..7789f543 --- /dev/null +++ b/helm/templates/tests/test-servicemonitor.yaml @@ -0,0 +1,64 @@ +{{- if (((.Values.tests).serviceMonitor).enabled) }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "sql-exporter.fullname" . }}-test-prom-script + labels: + {{- include "sql-exporter.labels" . | nindent 4 }} + annotations: + "helm.sh/hook": test + "helm.sh/hook-weight": "1" + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded +data: + test.sh: |- + #! /bin/sh + # ----------------------------------------------------------------- + # -- JQ is required for this test, but since the jq image doesn't + # -- have curl installed, it's not an option to use it. + # -- Also, it doesn't have any shell installed, so we can't use + # -- it to copy the binary to an emptydir. + # -- That's why I'm using apk add here + # ----------------------------------------------------------------- + apk update && apk add jq + sleep {{ .Values.serviceMonitor.interval }} + URL="{{.Values.tests.serviceMonitor.prom.service}}.{{.Values.tests.serviceMonitor.prom.namespace}}.svc.cluster.local" + CURL_RES=$(curl -q "http://${URL}:9090/api/v1/query?query=active_connections") + STATUS=$(echo "$CURL_RES" | jq -r '.status') + if [ "$STATUS" != "success" ]; then + echo "metric doesn't have a status 'success' in the prometheus" + echo "curl output is: $CURL_RES" + exit 1; + fi + echo "Prometheus rerturns success for the sql-exporter metric" + +--- +apiVersion: v1 +kind: Pod +metadata: + name: "{{ include "sql-exporter.fullname" . }}-test-prom" + labels: + {{- include "sql-exporter.labels" . | nindent 4 }} + annotations: + "helm.sh/hook": test + "helm.sh/hook-weight": "2" + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded +spec: + volumes: + - name: test-script + configMap: + name: "{{ include "sql-exporter.fullname" . }}-test-prom-script" + containers: + - name: check-metrics-endpoint + image: alpine/curl + command: + - sh + volumeMounts: + - name: test-script + readOnly: true + mountPath: /test.sh + subPath: test.sh + args: + - /test.sh + restartPolicy: Never +{{- end}} diff --git a/helm/values.yaml b/helm/values.yaml new file mode 100644 index 00000000..b43b84bf --- /dev/null +++ b/helm/values.yaml @@ -0,0 +1,106 @@ +# --------------------------------------------------------------------- +# -- Global values +# --------------------------------------------------------------------- +image: + repository: burningalchemist/sql_exporter + pullPolicy: IfNotPresent + # tag: $IMAGE_TAG +imagePullSecrets: [] +nameOverride: "" +fullnameOverride: "" +service: + type: ClusterIP + port: 80 +resources: + {} + # limits: + # cpu: 100m + # memory: 128Mi + # requests: + # cpu: 100m + # memory: 128Mi +podSecurityContext: {} +securityContext: + {} + # capabilities: + # drop: + # - ALL + # readOnlyRootFilesystem: true + # runAsNonRoot: true + # runAsUser: 1000 + +# --------------------------------------------------------------------- +# -- Prometheus operator values +# --------------------------------------------------------------------- +serviceMonitor: + enabled: true + interval: 15s + # --------------------------------------------------------------------- + # -- SQL exporter configuration + # -- For a comprehensive and comprehensively documented configuration + # -- file check out: https://github.com/burningalchemist/sql_exporter/blob/master/documentation/sql_exporter.yml + # --------------------------------------------------------------------- + +config: + global: + scrape_timeout: 10s + scrape_timeout_offset: 500ms + min_interval: 0s + max_connections: 3 + max_idle_connections: 3 + # --------------------------------------------------------------------- + # -- Target and collectors are not set so the chart is more flexible + # -- Please configure it yourself + # --------------------------------------------------------------------- + # target: + # data_source_name: 'sqlserver://prom_user:prom_password@dbserver1.example.com:1433' + # collectors: [active_connections] + # collectors: + # - collector_name: active_connections + # metrics: + # - metric_name: active_connections + # type: gauge + # help: 'Active connections' + # key_labels: + # - "datname" + # - "usename" + # - "state" + # values: + # - "count" + # query_ref: active_connections + # queries: + # - query_name: active_connections + # query: | + # SELECT + # datname::text, + # usename::text, + # state::text, + # COUNT(state)::float AS count + # FROM pg_stat_activity + # GROUP BY datname, usename, state; + # collector_files: + # - "*.collector.yml" + +# --------------------------------------------------------------------- +# -- Collector Files +# --------------------------------------------------------------------- +# -- Collector files are mounted to /etc/sql_exporter/collectors dir +# --------------------------------------------------------------------- +# collectorFiles: +# pricing_data_freshness.collector.yml: +# collector_name: pricing_data_freshness +# metrics: +# - metric_name: pricing_update_time +# type: gauge +# help: 'Time when prices for a market were last updated.' +# key_labels: +# # Populated from the `market` column of each row. +# - Market +# static_labels: +# # Arbitrary key/value pair +# portfolio: income +# values: [LastUpdateTime] +# query: | +# SELECT Market, max(UpdateTime) AS LastUpdateTime +# FROM MarketPrices +# GROUP BY Market From 966f886c27b7e4f7dd983afd177d80559227fded Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Wed, 11 Oct 2023 13:42:35 +0200 Subject: [PATCH 114/401] fix: don't cache invalid metrics (#355) * fix: don't cache invalid metrics * fix: trim logContext orphaned commas --- collector.go | 20 ++++++++++---------- exporter.go | 9 +++++++++ metric.go | 2 +- query.go | 2 +- target.go | 2 +- 5 files changed, 22 insertions(+), 13 deletions(-) diff --git a/collector.go b/collector.go index 7a58b87d..d73ffb5f 100644 --- a/collector.go +++ b/collector.go @@ -4,7 +4,6 @@ import ( "context" "database/sql" "fmt" - "strings" "sync" "time" @@ -31,13 +30,7 @@ type collector struct { // NewCollector returns a new Collector with the given configuration and database. The metrics it creates will all have // the provided const labels applied. func NewCollector(logContext string, cc *config.CollectorConfig, constLabels []*dto.LabelPair) (Collector, errors.WithContext) { - logContext = fmt.Sprintf(`%s,collector=%s`, logContext, cc.Name) - - // Leading comma appears when previous parameter is undefined, which is a side-effect of running in single target mode. - // Let's trim to avoid confusions. - if strings.HasPrefix(logContext, ",") { - logContext = strings.TrimLeft(logContext, ", ") - } + logContext = TrimMissingCtx(fmt.Sprintf(`%s,collector=%s`, logContext, cc.Name)) // Maps each query to the list of metric families it populates. queryMFs := make(map[*config.QueryConfig][]*MetricFamily, len(cc.Metrics)) @@ -121,12 +114,12 @@ func (cc *cachingCollector) Collect(ctx context.Context, conn *sql.DB, ch chan<- ch <- NewInvalidMetric(errors.Wrap(cc.rawColl.logContext, ctx.Err())) return } - + klog.Infof("Cache size: %d", len(cc.cache)) collTime := time.Now() select { case cacheTime := <-cc.cacheSem: // Have the lock. - if age := collTime.Sub(cacheTime); age > cc.minInterval { + if age := collTime.Sub(cacheTime); age > cc.minInterval || len(cc.cache) == 0 { // Cache contents are older than minInterval, collect fresh metrics, cache them and pipe them through. klog.V(2).Infof("[%s] Collecting fresh metrics: min_interval=%.3fs cache_age=%.3fs", cc.rawColl.logContext, cc.minInterval.Seconds(), age.Seconds()) @@ -137,6 +130,13 @@ func (cc *cachingCollector) Collect(ctx context.Context, conn *sql.DB, ch chan<- close(cacheChan) }() for metric := range cacheChan { + // catch invalid metrics and return them immediately, don't cache them + if ctx.Err() != nil { + klog.V(2).Infof("[%s] Context closed, returning invalid metric", cc.rawColl.logContext) + ch <- NewInvalidMetric(errors.Wrap(cc.rawColl.logContext, ctx.Err())) + continue + } + cc.cache = append(cc.cache, metric) ch <- metric } diff --git a/exporter.go b/exporter.go index bcca4267..36f51b6e 100644 --- a/exporter.go +++ b/exporter.go @@ -197,3 +197,12 @@ func parseContextLog(list string) map[string]string { } return m } + +// Leading comma appears when previous parameter is undefined, which is a side-effect of running in single target mode. +// Let's trim to avoid confusions. +func TrimMissingCtx(logContext string) string { + if strings.HasPrefix(logContext, ",") { + logContext = strings.TrimLeft(logContext, ", ") + } + return logContext +} diff --git a/metric.go b/metric.go index 892a8d7b..98dda3e9 100644 --- a/metric.go +++ b/metric.go @@ -36,7 +36,7 @@ type MetricFamily struct { // NewMetricFamily creates a new MetricFamily with the given metric config and const labels (e.g. job and instance). func NewMetricFamily(logContext string, mc *config.MetricConfig, constLabels []*dto.LabelPair) (*MetricFamily, errors.WithContext) { - logContext = fmt.Sprintf(`%s,metric=%s`, logContext, mc.Name) + logContext = TrimMissingCtx(fmt.Sprintf(`%s,metric=%s`, logContext, mc.Name)) if len(mc.Values) == 0 && mc.StaticValue == nil { return nil, errors.New(logContext, "no value column defined") diff --git a/query.go b/query.go index 519c887a..bea352dd 100644 --- a/query.go +++ b/query.go @@ -34,7 +34,7 @@ const ( // NewQuery returns a new Query that will populate the given metric families. func NewQuery(logContext string, qc *config.QueryConfig, metricFamilies ...*MetricFamily) (*Query, errors.WithContext) { - logContext = fmt.Sprintf(`%s,query=%s`, logContext, qc.Name) + logContext = TrimMissingCtx(fmt.Sprintf(`%s,query=%s`, logContext, qc.Name)) columnTypes := make(columnTypeMap) diff --git a/target.go b/target.go index 3c03361d..0e1efe51 100644 --- a/target.go +++ b/target.go @@ -57,7 +57,7 @@ func NewTarget( ) { if tname != "" { - logContext = fmt.Sprintf(`%s,target=%s`, logContext, tname) + logContext = TrimMissingCtx(fmt.Sprintf(`%s,target=%s`, logContext, tname)) if constLabels == nil { constLabels = prometheus.Labels{config.TargetLabel: tname} } From 6a8f91ddc5e9ac5c11c75c1084cf0403406107eb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 12 Oct 2023 09:57:30 +0200 Subject: [PATCH 115/401] deps: bump golang.org/x/net from 0.14.0 to 0.17.0 (#357) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.14.0 to 0.17.0. - [Commits](https://github.com/golang/net/compare/v0.14.0...v0.17.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 10 +++++----- go.sum | 20 ++++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/go.mod b/go.mod index 236c6930..5e28c5af 100644 --- a/go.mod +++ b/go.mod @@ -102,15 +102,15 @@ require ( github.com/prometheus/procfs v0.11.1 // indirect github.com/sirupsen/logrus v1.9.0 // indirect github.com/zeebo/xxh3 v1.0.2 // indirect - golang.org/x/crypto v0.12.0 // indirect + golang.org/x/crypto v0.14.0 // indirect golang.org/x/exp v0.0.0-20230321023759-10a507213a29 // indirect golang.org/x/mod v0.8.0 // indirect - golang.org/x/net v0.14.0 // indirect + golang.org/x/net v0.17.0 // indirect golang.org/x/oauth2 v0.8.0 // indirect golang.org/x/sync v0.3.0 // indirect - golang.org/x/sys v0.11.0 // indirect - golang.org/x/term v0.11.0 // indirect - golang.org/x/text v0.12.0 // indirect + golang.org/x/sys v0.13.0 // indirect + golang.org/x/term v0.13.0 // indirect + golang.org/x/text v0.13.0 // indirect golang.org/x/tools v0.6.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect google.golang.org/appengine v1.6.7 // indirect diff --git a/go.sum b/go.sum index fb282831..52eb1543 100644 --- a/go.sum +++ b/go.sum @@ -342,8 +342,8 @@ golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= -golang.org/x/crypto v0.12.0 h1:tFM/ta59kqch6LlvYnPa0yx5a83cL2nHflFhYKvv9Yk= -golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= +golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= +golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= golang.org/x/exp v0.0.0-20230321023759-10a507213a29 h1:ooxPy7fPvB4kwsA2h+iBNHkAbp/4JxTSwCmvdjEYmug= golang.org/x/exp v0.0.0-20230321023759-10a507213a29/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -361,8 +361,8 @@ golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.14.0 h1:BONx9s002vGdD9umnlX1Po8vOZmrgH34qlHcD1MfK14= -golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= +golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8= golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -389,14 +389,14 @@ golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= +golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.11.0 h1:F9tnn/DA/Im8nCwm+fX+1/eBwi4qFjRT++MhtVC4ZX0= -golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= +golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek= +golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -404,8 +404,8 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc= -golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425163242-31fd60d6bfdc/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= From 5bac548dfde17953fb6945d18e1b39364fb2b800 Mon Sep 17 00:00:00 2001 From: Nikolai Rodionov Date: Fri, 13 Oct 2023 12:05:36 +0200 Subject: [PATCH 116/401] chore: Update the helm chart version for the first release (#358) chore: Update the chart version for releasing It's required now without any actual changes to the chart to trigger the first release. The releaser tool will compare the state to previous master and trigger a release. It will be uploaded to GitHub releases of the project and also it should create a file index.yaml that should be pushed to the gh-pages branch. This branch should also be the one that is used for the GitHub Pages feature. And it should be done before merging this PR to the master. The easiest way to create it would be $ git checkout --orphan gh-pages $ git rm --cached -r . $ git clean -f -d . $ git commit --allow-empty -m "Init GitHub pages branch" $ git push --set-upstream origin gh-pages Then go to GitHub project settings -> Pages -> Choose the branch to deploy from. After it's done, this commit should be merged to the master, and the chart will be accessible for users --- helm/Chart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 260f0613..359da755 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: sql-exporter description: Database agnostic SQL exporter for Prometheus type: application -version: 0.1.0 +version: 0.1.1 appVersion: 0.12.3 keywords: - exporter From 5c2a68f8c13485b22112c6dce65a5056904e3fe8 Mon Sep 17 00:00:00 2001 From: Nikolai Rodionov Date: Mon, 16 Oct 2023 11:45:09 +0200 Subject: [PATCH 117/401] build: update helm-chart workflow (#360) * chore: Update chart again to trigger release * build: Trigger chart releaser on PRs --- .github/workflows/helm-workflow.yaml | 8 +++++++- helm/Chart.yaml | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/helm-workflow.yaml b/.github/workflows/helm-workflow.yaml index 9986b8a2..07e0f013 100644 --- a/.github/workflows/helm-workflow.yaml +++ b/.github/workflows/helm-workflow.yaml @@ -1,6 +1,12 @@ --- name: Helm -on: push +on: + push: + branches: + - master + pull_request: + branches: + - master jobs: helm-jobs: diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 359da755..ed9bc565 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: sql-exporter description: Database agnostic SQL exporter for Prometheus type: application -version: 0.1.1 +version: 0.1.2 appVersion: 0.12.3 keywords: - exporter From 4e41effd6ffe615d9c56527a57843f39cf158275 Mon Sep 17 00:00:00 2001 From: Nikolai Rodionov Date: Wed, 18 Oct 2023 11:56:54 +0200 Subject: [PATCH 118/401] build: Compare current chart to latest released (#362) I've added a step to the helm-workflow, that is adding an annotation to the helm chart manifests. This annotations contains a SHA of a current commit. If the action is triggered by puhsing to the master, this annotations will be preserved and will make it to the upstream manifests, though it's not visible in the git repo. I'm adding to identify the the commit to which we should compare the current version of the chart. If it's not accessible, the chart will be compared to the previous commit, that basically means that there is no released version yet. I've also added a repo URL to chart annotations, so we can get the chart from the upstream repo to retrieve the SHA annotations from the upstream chart. It should make it possible to use the same workflow in forked repos, if an intention behind forking is merging something to the upstream repo. --- .github/workflows/helm-workflow.yaml | 78 ++++++++++++++++++++-------- helm/Chart.yaml | 2 +- 2 files changed, 58 insertions(+), 22 deletions(-) diff --git a/.github/workflows/helm-workflow.yaml b/.github/workflows/helm-workflow.yaml index 07e0f013..7914c2df 100644 --- a/.github/workflows/helm-workflow.yaml +++ b/.github/workflows/helm-workflow.yaml @@ -1,4 +1,3 @@ ---- name: Helm on: push: @@ -7,7 +6,11 @@ on: pull_request: branches: - master - +env: + HELM_VERSION: 3.12.1 + PYTHON_VERSION: 3.9 + TARGET_BRANCH: chart-testing-target-branch + TARGET_REMOTE: test jobs: helm-jobs: runs-on: ubuntu-latest @@ -16,62 +19,95 @@ jobs: uses: actions/checkout@v3 with: fetch-depth: 0 - - name: Set up Helm uses: azure/setup-helm@v3 with: - version: v3.12.1 - + version: "v${{ env.HELM_VERSION }}" - uses: actions/setup-python@v4 with: - python-version: '3.9' + python-version: ${{ env.PYTHON_VERSION }} check-latest: true - + # --------------------------------------------------------------- + # -- Instead of comparing to the master branch, I'm getting + # -- the commit hash set in the previous step from a + # -- currently released chart. If it doesn't exists, then + # -- I assume that chart is not released and compare to the + # -- previous commit + # -- + # -- Also, I'm setting the RepoURL here. Since we plan to support + # -- the official chart in this git repository, the helm + # -- repository is expected to belong to this repo as well. + # --------------------------------------------------------------- + - name: Retrieve the latest commit sha from the helm chart + run: | + HELM_REPO_URL="https://${GITHUB_REPOSITORY_OWNER}.github.io/${GITHUB_REPOSITORY#*/}" + if helm repo add sql-exporter $HELM_REPO_URL + then + helm repo update + echo "TARGET_COMMIT=$(helm show chart sql-exporter/sql-exporter | yq '.annotations.git/commit-sha')" >> "${GITHUB_ENV}" + else + echo "TARGET_COMMIT=$(git show HEAD^1 --pretty=format:%H --no-patch)" >> "${GITHUB_ENV}" + fi + # --------------------------------------------------------------- + # -- As I could find CT doesn't support testing against commits + # -- directly, so I'm creating a new fake remote from a commit + # -- and testing the chart against it. This workaround doesn't + # -- support maintainers validation, but we have it disabled + # -- anyway + # --------------------------------------------------------------- + - name: Prepare a dummy remote to test the chart + run: | + DUMMY_REMOTE=$(mktemp -d) + git init "${DUMMY_REMOTE}" + git remote add "${TARGET_REMOTE}" "${DUMMY_REMOTE}" + git checkout -b "${TARGET_BRANCH}" "${TARGET_COMMIT}" + git push --set-upstream "${TARGET_REMOTE}" "${TARGET_BRANCH}" + git checkout "${GITHUB_SHA}" - name: Set up chart-testing uses: helm/chart-testing-action@v2.4.0 - - name: Run chart-testing (list-changed) id: list-changed run: | - changed=$(ct list-changed --chart-dirs . --target-branch ${{ github.event.repository.default_branch }}) + changed=$(ct list-changed --chart-dirs . --target-branch "${TARGET_BRANCH}" --remote "${TARGET_REMOTE}") if [[ -n "$changed" ]]; then echo "changed=true" >> "$GITHUB_OUTPUT" fi - - name: Run chart-testing (lint) if: steps.list-changed.outputs.changed == 'true' - run: ct lint --target-branch ${{ github.event.repository.default_branch }} --validate-maintainers=false --chart-dirs . - + run: ct lint --target-branch "${TARGET_BRANCH}" --remote "${TARGET_REMOTE}" --validate-maintainers=false --chart-dirs . - name: Setup helmfile if: steps.list-changed.outputs.changed == 'true' - uses: mamezou-tech/setup-helmfile@v1.2.0 - + uses: mamezou-tech/setup-helmfile@v1.2.0 - name: Create kind cluster if: steps.list-changed.outputs.changed == 'true' uses: helm/kind-action@v1.7.0 - - name: Init postgres server if: steps.list-changed.outputs.changed == 'true' run: | helmfile -f helm/ci/helmfile.yaml sync - - name: Run chart-testing (install) if: steps.list-changed.outputs.changed == 'true' - run: ct install --target-branch ${{ github.event.repository.default_branch }} --chart-dirs . - + run: ct install --target-branch "${TARGET_BRANCH}" --remote "${TARGET_REMOTE}" --chart-dirs . - name: Run chart-testing (upgrade) if: steps.list-changed.outputs.changed == 'true' - run: ct install --target-branch ${{ github.event.repository.default_branch }} --chart-dirs . --upgrade - + run: ct install --target-branch "${TARGET_BRANCH}" --remote "${TARGET_REMOTE}" --chart-dirs . --upgrade - name: Configure Git run: | git config user.name "$GITHUB_ACTOR" git config user.email "$GITHUB_ACTOR@users.noreply.github.com" + # --------------------------------------------------------------- + # -- On each run we're setting an annotation with the current + # -- commit hash, so in case it's released, we will see it + # -- running `$ helm show sql-exporter/sql-exporter` + # --------------------------------------------------------------- + - name: Set the git sha annotations in the helm chart + run: yq -i ".annotations.git/commit-sha = \"${GITHUB_SHA}\"" ./helm/Chart.yaml - name: Release charts - if: ${{ github.ref == github.event.repository.default_branch }} + if: ${{ github.event.repository.default_branch && github.event_name == 'push' }} uses: helm/chart-releaser-action@v1.5.0 with: charts_dir: . + mark_as_latest: false env: CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" diff --git a/helm/Chart.yaml b/helm/Chart.yaml index ed9bc565..27a353f2 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: sql-exporter description: Database agnostic SQL exporter for Prometheus type: application -version: 0.1.2 +version: 0.1.3 appVersion: 0.12.3 keywords: - exporter From f10545933b1389d27352552e27a4f3aab3496584 Mon Sep 17 00:00:00 2001 From: Nikolai Rodionov Date: Wed, 18 Oct 2023 15:39:08 +0200 Subject: [PATCH 119/401] build: Switch helm-releaser to the main branch (#363) We need to use some features that are available only in the main branch at the moment. So until the next version is released, I'd suggest switching to the main revision. Also, I've removed a notice about helm tests from NOTES.TXT, because we are not rendering tests anymore by default, and hence this note might be confusing --- .github/workflows/helm-workflow.yaml | 3 ++- helm/Chart.yaml | 2 +- helm/templates/NOTES.txt | 8 -------- 3 files changed, 3 insertions(+), 10 deletions(-) diff --git a/.github/workflows/helm-workflow.yaml b/.github/workflows/helm-workflow.yaml index 7914c2df..d40d051e 100644 --- a/.github/workflows/helm-workflow.yaml +++ b/.github/workflows/helm-workflow.yaml @@ -105,9 +105,10 @@ jobs: - name: Release charts if: ${{ github.event.repository.default_branch && github.event_name == 'push' }} - uses: helm/chart-releaser-action@v1.5.0 + uses: helm/chart-releaser-action@main with: charts_dir: . mark_as_latest: false + packages_with_index: true env: CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 27a353f2..e3fcc74c 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: sql-exporter description: Database agnostic SQL exporter for Prometheus type: application -version: 0.1.3 +version: 0.1.4 appVersion: 0.12.3 keywords: - exporter diff --git a/helm/templates/NOTES.txt b/helm/templates/NOTES.txt index 4a9da1ca..cda797f2 100644 --- a/helm/templates/NOTES.txt +++ b/helm/templates/NOTES.txt @@ -23,11 +23,3 @@ You need to configure either collectors or collectorFiles (or both), please have {{- end }} ------------------------------- -If you want to test if the helm release is configured correctly, you can execute - - $ helm test {{ .Release.Name }} - -This test will check that sql_exported metrics endpoint returns status 200 - - From 57060a99b1ad11b0401815adbda3d8829a4ac70f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 31 Oct 2023 10:28:43 +0100 Subject: [PATCH 120/401] deps: bump github.com/prometheus/common from 0.44.0 to 0.45.0 (#372) Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.44.0 to 0.45.0. - [Release notes](https://github.com/prometheus/common/releases) - [Commits](https://github.com/prometheus/common/compare/v0.44.0...v0.45.0) --- updated-dependencies: - dependency-name: github.com/prometheus/common dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 13 ++++++------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/go.mod b/go.mod index 5e28c5af..9ea8c755 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/microsoft/go-mssqldb v1.6.0 github.com/prometheus/client_golang v1.17.0 github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16 - github.com/prometheus/common v0.44.0 + github.com/prometheus/common v0.45.0 github.com/prometheus/exporter-toolkit v0.10.0 github.com/snowflakedb/gosnowflake v1.6.25 github.com/vertica/vertica-sql-go v1.3.3 @@ -90,7 +90,7 @@ require ( github.com/klauspost/compress v1.15.15 // indirect github.com/klauspost/cpuid/v2 v2.2.3 // indirect github.com/kylelemons/godebug v1.1.0 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect + github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 // indirect github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8 // indirect github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3 // indirect github.com/mtibben/percent v0.2.1 // indirect @@ -106,7 +106,7 @@ require ( golang.org/x/exp v0.0.0-20230321023759-10a507213a29 // indirect golang.org/x/mod v0.8.0 // indirect golang.org/x/net v0.17.0 // indirect - golang.org/x/oauth2 v0.8.0 // indirect + golang.org/x/oauth2 v0.12.0 // indirect golang.org/x/sync v0.3.0 // indirect golang.org/x/sys v0.13.0 // indirect golang.org/x/term v0.13.0 // indirect diff --git a/go.sum b/go.sum index 52eb1543..a3537d6d 100644 --- a/go.sum +++ b/go.sum @@ -137,7 +137,6 @@ github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2V github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A= github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI= github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= @@ -243,8 +242,8 @@ github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hd github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 h1:jWpvCLoY8Z/e3VKvlsiIGKtc+UG6U5vzxaoagmhXfyg= +github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0/go.mod h1:QUyp042oQthUoa9bqDv0ER0wrtXnBruoNd7aNjkbP+k= github.com/microsoft/go-mssqldb v1.6.0 h1:mM3gYdVwEPFrlg/Dvr2DNVEgYFG7L42l+dGc67NNNpc= github.com/microsoft/go-mssqldb v1.6.0/go.mod h1:00mDtPbeQCRGC1HwOOR5K/gr30P1NcEG0vx6Kbv2aJU= github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8 h1:AMFGa4R4MiIpspGNG7Z948v4n35fFGB3RR3G/ry4FWs= @@ -272,8 +271,8 @@ github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1 github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16 h1:v7DLqVdK4VrYkVD5diGdl4sxJurKJEMnODWRJlxV9oM= github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= +github.com/prometheus/common v0.45.0 h1:2BGz0eBc2hdMDLnO/8n0jeB3oPrt2D08CekT0lneoxM= +github.com/prometheus/common v0.45.0/go.mod h1:YJmSTw9BoKxJplESWWxlbyttQR4uaEcGyv9MZjVOJsY= github.com/prometheus/exporter-toolkit v0.10.0 h1:yOAzZTi4M22ZzVxD+fhy1URTuNRj/36uQJJ5S8IPza8= github.com/prometheus/exporter-toolkit v0.10.0/go.mod h1:+sVFzuvV5JDyw+Ih6p3zFxZNVnKQa3x5qPmDSiPu4ZY= github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= @@ -363,8 +362,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8= -golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= +golang.org/x/oauth2 v0.12.0 h1:smVPGxink+n1ZI5pkQa8y6fZT0RW0MgCO5bFpepy4B4= +golang.org/x/oauth2 v0.12.0/go.mod h1:A74bZ3aGXgCY0qaIC9Ahg6Lglin4AMAco8cIv9baba4= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= From 605b1c0d6f880a1cd4bdbbcb1160c8023becd9b4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 31 Oct 2023 10:38:11 +0100 Subject: [PATCH 121/401] deps: bump github.com/prometheus/client_model from 0.4.1-0.20230718164431-9a2bf3000d16 to 0.5.0 (#371) deps: bump github.com/prometheus/client_model Bumps [github.com/prometheus/client_model](https://github.com/prometheus/client_model) from 0.4.1-0.20230718164431-9a2bf3000d16 to 0.5.0. - [Release notes](https://github.com/prometheus/client_model/releases) - [Commits](https://github.com/prometheus/client_model/commits/v0.5.0) --- updated-dependencies: - dependency-name: github.com/prometheus/client_model dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 9ea8c755..b655b2fc 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,7 @@ require ( github.com/lib/pq v1.10.9 github.com/microsoft/go-mssqldb v1.6.0 github.com/prometheus/client_golang v1.17.0 - github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16 + github.com/prometheus/client_model v0.5.0 github.com/prometheus/common v0.45.0 github.com/prometheus/exporter-toolkit v0.10.0 github.com/snowflakedb/gosnowflake v1.6.25 diff --git a/go.sum b/go.sum index a3537d6d..11e89df9 100644 --- a/go.sum +++ b/go.sum @@ -269,8 +269,8 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRI github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= -github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16 h1:v7DLqVdK4VrYkVD5diGdl4sxJurKJEMnODWRJlxV9oM= -github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= +github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= +github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= github.com/prometheus/common v0.45.0 h1:2BGz0eBc2hdMDLnO/8n0jeB3oPrt2D08CekT0lneoxM= github.com/prometheus/common v0.45.0/go.mod h1:YJmSTw9BoKxJplESWWxlbyttQR4uaEcGyv9MZjVOJsY= github.com/prometheus/exporter-toolkit v0.10.0 h1:yOAzZTi4M22ZzVxD+fhy1URTuNRj/36uQJJ5S8IPza8= From 07c5c5e49f230c04278c5ffc00eb709d94632b59 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 31 Oct 2023 10:43:14 +0100 Subject: [PATCH 122/401] deps: bump github.com/aws/aws-sdk-go-v2 from 1.21.0 to 1.21.2 (#370) Bumps [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) from 1.21.0 to 1.21.2. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.21.0...v1.21.2) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index b655b2fc..eca7ab21 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.18 require ( github.com/ClickHouse/clickhouse-go v1.5.4 - github.com/aws/aws-sdk-go-v2 v1.21.0 + github.com/aws/aws-sdk-go-v2 v1.21.2 github.com/aws/aws-sdk-go-v2/config v1.18.42 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.21.3 github.com/go-sql-driver/mysql v1.7.1 @@ -52,7 +52,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/sso v1.14.1 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.1 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.22.0 // indirect - github.com/aws/smithy-go v1.14.2 // indirect + github.com/aws/smithy-go v1.15.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 // indirect diff --git a/go.sum b/go.sum index 11e89df9..22a073ff 100644 --- a/go.sum +++ b/go.sum @@ -28,8 +28,9 @@ github.com/apache/arrow/go/v12 v12.0.1/go.mod h1:weuTY7JvTG/HDPtMQxEUp7pU73vkLWM github.com/apache/thrift v0.16.0 h1:qEy6UW60iVOlUy+b9ZR0d5WzUWYGOo4HfopoyBaNmoY= github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= github.com/aws/aws-sdk-go-v2 v1.17.7/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= -github.com/aws/aws-sdk-go-v2 v1.21.0 h1:gMT0IW+03wtYJhRqTVYn0wLzwdnK9sRMcxmtfGzRdJc= github.com/aws/aws-sdk-go-v2 v1.21.0/go.mod h1:/RfNgGmRxI+iFOB1OeJUyxiU+9s88k3pfHvDagGEp0M= +github.com/aws/aws-sdk-go-v2 v1.21.2 h1:+LXZ0sgo8quN9UOKXXzAWRT3FWd4NxeXWOZom9pE7GA= +github.com/aws/aws-sdk-go-v2 v1.21.2/go.mod h1:ErQhvNuEMhJjweavOYhxVkn2RUx7kQXVATHrjKtxIpM= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10/go.mod h1:VeTZetY5KRJLuD/7fkQXMU6Mw7H5m/KP2J5Iy9osMno= github.com/aws/aws-sdk-go-v2/config v1.18.19/go.mod h1:XvTmGMY8d52ougvakOv1RpiTLPz9dlG/OQHsKU/cMmY= @@ -77,8 +78,9 @@ github.com/aws/aws-sdk-go-v2/service/sts v1.18.7/go.mod h1:JuTnSoeePXmMVe9G8Ncjj github.com/aws/aws-sdk-go-v2/service/sts v1.22.0 h1:s4bioTgjSFRwOoyEFzAVCmFmoowBgjTR8gkrF/sQ4wk= github.com/aws/aws-sdk-go-v2/service/sts v1.22.0/go.mod h1:VC7JDqsqiwXukYEDjoHh9U0fOJtNWh04FPQz4ct4GGU= github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= -github.com/aws/smithy-go v1.14.2 h1:MJU9hqBGbvWZdApzpvoF2WAIJDbtjK2NDJSiJP7HblQ= github.com/aws/smithy-go v1.14.2/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= +github.com/aws/smithy-go v1.15.0 h1:PS/durmlzvAFpQHDs4wi4sNNP9ExsqZh6IlfdHXgKK8= +github.com/aws/smithy-go v1.15.0/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bkaradzic/go-lz4 v1.0.0 h1:RXc4wYsyz985CkXXeX04y4VnZFGG8Rd43pRaHsOXAKk= From cccff3cc53f727c3bb49c3a78b027a0941efaba1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 31 Oct 2023 10:50:58 +0100 Subject: [PATCH 123/401] deps: bump github.com/aws/aws-sdk-go-v2/config from 1.18.42 to 1.19.1 (#369) Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.42 to 1.19.1. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/v1.19.1/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.42...v1.19.1) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/config dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 20 ++++++++++---------- go.sum | 38 ++++++++++++++++++++------------------ 2 files changed, 30 insertions(+), 28 deletions(-) diff --git a/go.mod b/go.mod index eca7ab21..07246238 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.18 require ( github.com/ClickHouse/clickhouse-go v1.5.4 github.com/aws/aws-sdk-go-v2 v1.21.2 - github.com/aws/aws-sdk-go-v2/config v1.18.42 + github.com/aws/aws-sdk-go-v2/config v1.19.1 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.21.3 github.com/go-sql-driver/mysql v1.7.1 github.com/jackc/pgx/v4 v4.18.1 @@ -37,21 +37,21 @@ require ( github.com/apache/arrow/go/v12 v12.0.1 // indirect github.com/apache/thrift v0.16.0 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.13.40 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.11 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.13.43 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.13 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.41 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.35 // indirect - github.com/aws/aws-sdk-go-v2/internal/ini v1.3.43 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.43 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.37 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.3.45 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 // indirect github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.35 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.37 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 // indirect github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.14.1 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.1 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.22.0 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.15.2 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.3 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.23.2 // indirect github.com/aws/smithy-go v1.15.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect diff --git a/go.sum b/go.sum index 22a073ff..fa27fcaf 100644 --- a/go.sum +++ b/go.sum @@ -34,25 +34,27 @@ github.com/aws/aws-sdk-go-v2 v1.21.2/go.mod h1:ErQhvNuEMhJjweavOYhxVkn2RUx7kQXVA github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10/go.mod h1:VeTZetY5KRJLuD/7fkQXMU6Mw7H5m/KP2J5Iy9osMno= github.com/aws/aws-sdk-go-v2/config v1.18.19/go.mod h1:XvTmGMY8d52ougvakOv1RpiTLPz9dlG/OQHsKU/cMmY= -github.com/aws/aws-sdk-go-v2/config v1.18.42 h1:28jHROB27xZwU0CB88giDSjz7M1Sba3olb5JBGwina8= -github.com/aws/aws-sdk-go-v2/config v1.18.42/go.mod h1:4AZM3nMMxwlG+eZlxvBKqwVbkDLlnN2a4UGTL6HjaZI= +github.com/aws/aws-sdk-go-v2/config v1.19.1 h1:oe3vqcGftyk40icfLymhhhNysAwk0NfiwkDi2GTPMXs= +github.com/aws/aws-sdk-go-v2/config v1.19.1/go.mod h1:ZwDUgFnQgsazQTnWfeLWk5GjeqTQTL8lMkoE1UXzxdE= github.com/aws/aws-sdk-go-v2/credentials v1.13.18/go.mod h1:vnwlwjIe+3XJPBYKu1et30ZPABG3VaXJYr8ryohpIyM= -github.com/aws/aws-sdk-go-v2/credentials v1.13.40 h1:s8yOkDh+5b1jUDhMBtngF6zKWLDs84chUk2Vk0c38Og= -github.com/aws/aws-sdk-go-v2/credentials v1.13.40/go.mod h1:VtEHVAAqDWASwdOqj/1huyT6uHbs5s8FUHfDQdky/Rs= +github.com/aws/aws-sdk-go-v2/credentials v1.13.43 h1:LU8vo40zBlo3R7bAvBVy/ku4nxGEyZe9N8MqAeFTzF8= +github.com/aws/aws-sdk-go-v2/credentials v1.13.43/go.mod h1:zWJBz1Yf1ZtX5NGax9ZdNjhhI4rgjfgsyk6vTY1yfVg= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.1/go.mod h1:lfUx8puBRdM5lVVMQlwt2v+ofiG/X6Ms+dy0UkG/kXw= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.11 h1:uDZJF1hu0EVT/4bogChk8DyjSF6fof6uL/0Y26Ma7Fg= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.11/go.mod h1:TEPP4tENqBGO99KwVpV9MlOX4NSrSLP8u3KRy2CDwA8= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.13 h1:PIktER+hwIG286DqXyvVENjgLTAwGgoeriLDD5C+YlQ= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.13/go.mod h1:f/Ib/qYjhV2/qdsf79H3QP/eRE4AkVyEf6sk7XfZ1tg= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 h1:E3Y+OfzOK1+rmRo/K2G0ml8Vs+Xqk0kOnf4nS0kUtBc= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59/go.mod h1:1M4PLSBUVfBI0aP+C9XI7SM6kZPCGYyI6izWz0TGprE= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.31/go.mod h1:QT0BqUvX1Bh2ABdTGnjqEjvjzrCfIniM9Sc8zn9Yndo= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.41 h1:22dGT7PneFMx4+b3pz7lMTRyN8ZKH7M2cW4GP9yUS2g= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.41/go.mod h1:CrObHAuPneJBlfEJ5T3szXOUkLEThaGfvnhTf33buas= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.43 h1:nFBQlGtkbPzp/NjZLuFxRqmT91rLJkgvsEQs68h962Y= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.43/go.mod h1:auo+PiyLl0n1l8A0e8RIeR8tOzYPfZZH/JNlrJ8igTQ= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.25/go.mod h1:zBHOPwhBc3FlQjQJE/D3IfPWiWaQmT06Vq9aNukDo0k= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.35 h1:SijA0mgjV8E+8G45ltVHs0fvKpTj8xmZJ3VwhGKtUSI= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.35/go.mod h1:SJC1nEVVva1g3pHAIdCp7QsRIkMmLAgoDquQ9Rr8kYw= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.37 h1:JRVhO25+r3ar2mKGP7E0LDl8K9/G36gjlqca5iQbaqc= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.37/go.mod h1:Qe+2KtKml+FEsQF/DHmDV+xjtche/hwoF75EG4UlHW8= github.com/aws/aws-sdk-go-v2/internal/ini v1.3.32/go.mod h1:XGhIBZDEgfqmFIugclZ6FU7v75nHhBDtzuB4xB/tEi4= -github.com/aws/aws-sdk-go-v2/internal/ini v1.3.43 h1:g+qlObJH4Kn4n21g69DjspU0hKTjWtq7naZ9OLCv0ew= -github.com/aws/aws-sdk-go-v2/internal/ini v1.3.43/go.mod h1:rzfdUlfA+jdgLDmPKjd3Chq9V7LVLYo1Nz++Wb91aRo= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.45 h1:hze8YsjSh8Wl1rYa1CJpRmXP21BvOBuc76YhW0HsuQ4= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.45/go.mod h1:lD5M20o09/LCuQ2mE62Mb/iSdSlCNuj6H5ci7tW7OsE= github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 h1:DWYZIsyqagnWL00f8M/SOr9fN063OEQWn9LLTbdYXsk= github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23/go.mod h1:uIiFgURZbACBEQJfqTZPb/jxO7R+9LeoHUFudtIdeQI= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 h1:y2+VQzC6Zh2ojtV2LoC0MNwHWc6qXv/j2vrQtlftkdA= @@ -60,8 +62,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11/go.mod h1: github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26 h1:CeuSeq/8FnYpPtnuIeLQEEvDv9zUjneuYi8EghMBdwQ= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26/go.mod h1:2UqAAwMUXKeRkAHIlDJqvMVgOWkUi/AUXPk/YIe+Dg4= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.25/go.mod h1:/95IA+0lMnzW6XzqYJRpjjsAbKEORVeO0anQqjd2CNU= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.35 h1:CdzPW9kKitgIiLV1+MHobfR5Xg25iYnyzWZhyQuSlDI= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.35/go.mod h1:QGF2Rs33W5MaN9gYdEQOBBFPLwTZkEhRwI33f7KIG0o= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.37 h1:WWZA/I2K4ptBS1kg0kV1JbBtG/umed0vwHRrmcr9z7k= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.37/go.mod h1:vBmDnwWXWxNPFRMmG2m/3MKOe+xEcMDo1tanpaWCcck= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 h1:e2ooMhpYGhDnBfSvIyusvAwX7KexuZaHbQY2Dyei7VU= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0/go.mod h1:bh2E0CXKZsQN+faiKVqC40vfNMAWheoULBCnEgO9K+8= github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 h1:B1G2pSPvbAtQjilPq+Y7jLIzCOwKzuVEl+aBBaNG0AQ= @@ -69,14 +71,14 @@ github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0/go.mod h1:ncltU6n4Nof5uJttDtcNQ5 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.21.3 h1:H6ZipEknzu7RkJW3w2PP75zd8XOdR35AEY5D57YrJtA= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.21.3/go.mod h1:5W2cYXDPabUmwULErlC92ffLhtTuyv4ai+5HhdbhfNo= github.com/aws/aws-sdk-go-v2/service/sso v1.12.6/go.mod h1:Y1VOmit/Fn6Tz1uFAeCO6Q7M2fmfXSCLeL5INVYsLuY= -github.com/aws/aws-sdk-go-v2/service/sso v1.14.1 h1:YkNzx1RLS0F5qdf9v1Q8Cuv9NXCL2TkosOxhzlUPV64= -github.com/aws/aws-sdk-go-v2/service/sso v1.14.1/go.mod h1:fIAwKQKBFu90pBxx07BFOMJLpRUGu8VOzLJakeY+0K4= +github.com/aws/aws-sdk-go-v2/service/sso v1.15.2 h1:JuPGc7IkOP4AaqcZSIcyqLpFSqBWK32rM9+a1g6u73k= +github.com/aws/aws-sdk-go-v2/service/sso v1.15.2/go.mod h1:gsL4keucRCgW+xA85ALBpRFfdSLH4kHOVSnLMSuBECo= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.6/go.mod h1:Lh/bc9XUf8CfOY6Jp5aIkQtN+j1mc+nExc+KXj9jx2s= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.1 h1:8lKOidPkmSmfUtiTgtdXWgaKItCZ/g75/jEk6Ql6GsA= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.1/go.mod h1:yygr8ACQRY2PrEcy3xsUI357stq2AxnFM6DIsR9lij4= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.3 h1:HFiiRkf1SdaAmV3/BHOFZ9DjFynPHj8G/UIO1lQS+fk= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.3/go.mod h1:a7bHA82fyUXOm+ZSWKU6PIoBxrjSprdLoM8xPYvzYVg= github.com/aws/aws-sdk-go-v2/service/sts v1.18.7/go.mod h1:JuTnSoeePXmMVe9G8NcjjwgOKEfZ4cOjMuT2IBT/2eI= -github.com/aws/aws-sdk-go-v2/service/sts v1.22.0 h1:s4bioTgjSFRwOoyEFzAVCmFmoowBgjTR8gkrF/sQ4wk= -github.com/aws/aws-sdk-go-v2/service/sts v1.22.0/go.mod h1:VC7JDqsqiwXukYEDjoHh9U0fOJtNWh04FPQz4ct4GGU= +github.com/aws/aws-sdk-go-v2/service/sts v1.23.2 h1:0BkLfgeDjfZnZ+MhB3ONb01u9pwFYTCZVhlsSSBvlbU= +github.com/aws/aws-sdk-go-v2/service/sts v1.23.2/go.mod h1:Eows6e1uQEsc4ZaHANmsPRzAKcVDrcmjjWiih2+HUUQ= github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= github.com/aws/smithy-go v1.14.2/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= github.com/aws/smithy-go v1.15.0 h1:PS/durmlzvAFpQHDs4wi4sNNP9ExsqZh6IlfdHXgKK8= From b3d0004dc55799085e5dc52811bc44e8d517a9f5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 31 Oct 2023 10:58:08 +0100 Subject: [PATCH 124/401] deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager from 1.21.3 to 1.21.6 (#368) deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager Bumps [github.com/aws/aws-sdk-go-v2/service/secretsmanager](https://github.com/aws/aws-sdk-go-v2) from 1.21.3 to 1.21.6. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/efs/v1.21.3...service/efs/v1.21.6) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/service/secretsmanager dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 8 ++------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index 07246238..a34802b9 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/ClickHouse/clickhouse-go v1.5.4 github.com/aws/aws-sdk-go-v2 v1.21.2 github.com/aws/aws-sdk-go-v2/config v1.19.1 - github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.21.3 + github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.21.6 github.com/go-sql-driver/mysql v1.7.1 github.com/jackc/pgx/v4 v4.18.1 github.com/kardianos/minwinsvc v1.0.2 diff --git a/go.sum b/go.sum index fa27fcaf..52349665 100644 --- a/go.sum +++ b/go.sum @@ -28,7 +28,6 @@ github.com/apache/arrow/go/v12 v12.0.1/go.mod h1:weuTY7JvTG/HDPtMQxEUp7pU73vkLWM github.com/apache/thrift v0.16.0 h1:qEy6UW60iVOlUy+b9ZR0d5WzUWYGOo4HfopoyBaNmoY= github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= github.com/aws/aws-sdk-go-v2 v1.17.7/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= -github.com/aws/aws-sdk-go-v2 v1.21.0/go.mod h1:/RfNgGmRxI+iFOB1OeJUyxiU+9s88k3pfHvDagGEp0M= github.com/aws/aws-sdk-go-v2 v1.21.2 h1:+LXZ0sgo8quN9UOKXXzAWRT3FWd4NxeXWOZom9pE7GA= github.com/aws/aws-sdk-go-v2 v1.21.2/go.mod h1:ErQhvNuEMhJjweavOYhxVkn2RUx7kQXVATHrjKtxIpM= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs= @@ -45,11 +44,9 @@ github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.13/go.mod h1:f/Ib/qYjhV2/qds github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 h1:E3Y+OfzOK1+rmRo/K2G0ml8Vs+Xqk0kOnf4nS0kUtBc= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59/go.mod h1:1M4PLSBUVfBI0aP+C9XI7SM6kZPCGYyI6izWz0TGprE= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.31/go.mod h1:QT0BqUvX1Bh2ABdTGnjqEjvjzrCfIniM9Sc8zn9Yndo= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.41/go.mod h1:CrObHAuPneJBlfEJ5T3szXOUkLEThaGfvnhTf33buas= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.43 h1:nFBQlGtkbPzp/NjZLuFxRqmT91rLJkgvsEQs68h962Y= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.43/go.mod h1:auo+PiyLl0n1l8A0e8RIeR8tOzYPfZZH/JNlrJ8igTQ= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.25/go.mod h1:zBHOPwhBc3FlQjQJE/D3IfPWiWaQmT06Vq9aNukDo0k= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.35/go.mod h1:SJC1nEVVva1g3pHAIdCp7QsRIkMmLAgoDquQ9Rr8kYw= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.37 h1:JRVhO25+r3ar2mKGP7E0LDl8K9/G36gjlqca5iQbaqc= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.37/go.mod h1:Qe+2KtKml+FEsQF/DHmDV+xjtche/hwoF75EG4UlHW8= github.com/aws/aws-sdk-go-v2/internal/ini v1.3.32/go.mod h1:XGhIBZDEgfqmFIugclZ6FU7v75nHhBDtzuB4xB/tEi4= @@ -68,8 +65,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 h1:e2ooMhpYGhDnBf github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0/go.mod h1:bh2E0CXKZsQN+faiKVqC40vfNMAWheoULBCnEgO9K+8= github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 h1:B1G2pSPvbAtQjilPq+Y7jLIzCOwKzuVEl+aBBaNG0AQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0/go.mod h1:ncltU6n4Nof5uJttDtcNQ537uNuwYqsZZQcpkd2/GUQ= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.21.3 h1:H6ZipEknzu7RkJW3w2PP75zd8XOdR35AEY5D57YrJtA= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.21.3/go.mod h1:5W2cYXDPabUmwULErlC92ffLhtTuyv4ai+5HhdbhfNo= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.21.6 h1:y3n83jEM6EuawrD5HZCh3eMj9RsfxniVLcXlyFMNITM= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.21.6/go.mod h1:A108ijf0IFtqhYApU+Gia80aPSAUfi9dItm+h5fWGJE= github.com/aws/aws-sdk-go-v2/service/sso v1.12.6/go.mod h1:Y1VOmit/Fn6Tz1uFAeCO6Q7M2fmfXSCLeL5INVYsLuY= github.com/aws/aws-sdk-go-v2/service/sso v1.15.2 h1:JuPGc7IkOP4AaqcZSIcyqLpFSqBWK32rM9+a1g6u73k= github.com/aws/aws-sdk-go-v2/service/sso v1.15.2/go.mod h1:gsL4keucRCgW+xA85ALBpRFfdSLH4kHOVSnLMSuBECo= @@ -80,7 +77,6 @@ github.com/aws/aws-sdk-go-v2/service/sts v1.18.7/go.mod h1:JuTnSoeePXmMVe9G8Ncjj github.com/aws/aws-sdk-go-v2/service/sts v1.23.2 h1:0BkLfgeDjfZnZ+MhB3ONb01u9pwFYTCZVhlsSSBvlbU= github.com/aws/aws-sdk-go-v2/service/sts v1.23.2/go.mod h1:Eows6e1uQEsc4ZaHANmsPRzAKcVDrcmjjWiih2+HUUQ= github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= -github.com/aws/smithy-go v1.14.2/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= github.com/aws/smithy-go v1.15.0 h1:PS/durmlzvAFpQHDs4wi4sNNP9ExsqZh6IlfdHXgKK8= github.com/aws/smithy-go v1.15.0/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= From 462bf29c0057772f9e7ebf659bbfd96f7db4506e Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Tue, 31 Oct 2023 17:54:14 +0100 Subject: [PATCH 125/401] build: bump helm/chart-testing-action to 2.6.0 (#374) fixes https://github.com/helm/chart-testing-action/issues/132 --- .github/workflows/helm-workflow.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/helm-workflow.yaml b/.github/workflows/helm-workflow.yaml index d40d051e..11799cd8 100644 --- a/.github/workflows/helm-workflow.yaml +++ b/.github/workflows/helm-workflow.yaml @@ -64,7 +64,7 @@ jobs: git push --set-upstream "${TARGET_REMOTE}" "${TARGET_BRANCH}" git checkout "${GITHUB_SHA}" - name: Set up chart-testing - uses: helm/chart-testing-action@v2.4.0 + uses: helm/chart-testing-action@v2.6.0 - name: Run chart-testing (list-changed) id: list-changed run: | From be947fba95afddd32902c8b1719a28bfcab08d86 Mon Sep 17 00:00:00 2001 From: Eugene Kainara Date: Tue, 31 Oct 2023 18:59:41 +0200 Subject: [PATCH 126/401] fix(helm): add annotations field to Service resource (#373) Adding possibility to add annotations to Service resource --- helm/ci/postgresql-values.yaml | 4 +++- helm/templates/service.yaml | 4 ++++ helm/values.yaml | 4 ++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/helm/ci/postgresql-values.yaml b/helm/ci/postgresql-values.yaml index 5650ce41..3780b934 100644 --- a/helm/ci/postgresql-values.yaml +++ b/helm/ci/postgresql-values.yaml @@ -6,7 +6,9 @@ tests: namespace: monitoring metricsEndpoint: enabled: true - +service: + annotations: + prometheus.io/scrape: "true" config: target: data_source_name: 'postgresql://postgres:123123!!@postgres-instance-postgresql.postgres.svc.cluster.local:5432?sslmode=disable' diff --git a/helm/templates/service.yaml b/helm/templates/service.yaml index 353b5cf6..587a10e2 100644 --- a/helm/templates/service.yaml +++ b/helm/templates/service.yaml @@ -4,6 +4,10 @@ metadata: name: {{ include "sql-exporter.fullname" . }} labels: {{- include "sql-exporter.labels" . | nindent 4 }} + {{- with .Values.service.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} spec: type: {{ .Values.service.type }} ports: diff --git a/helm/values.yaml b/helm/values.yaml index b43b84bf..39157e7d 100644 --- a/helm/values.yaml +++ b/helm/values.yaml @@ -11,6 +11,10 @@ fullnameOverride: "" service: type: ClusterIP port: 80 + annotations: {} + # example of prometheus usage + # prometheus.io/scrape: "true" + # prometheus.io/path: "/metrics" resources: {} # limits: From 908dc980aca606364b47e1b3e184781b3e674a06 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Tue, 31 Oct 2023 18:00:10 +0100 Subject: [PATCH 127/401] build: bump up helm chart to 0.1.5 (#375) --- helm/Chart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index e3fcc74c..606c584a 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: sql-exporter description: Database agnostic SQL exporter for Prometheus type: application -version: 0.1.4 +version: 0.1.5 appVersion: 0.12.3 keywords: - exporter From 25c6746f46853309ec7f0d5954b6ee67602ba20d Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Tue, 7 Nov 2023 13:48:28 +0100 Subject: [PATCH 128/401] chore: add issue_template config (#386) --- .github/ISSUE_TEMPLATE/config.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/config.yml diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..bdf172c0 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: Questions and Answers + url: https://github.com/burningalchemist/sql_exporter/discussions + about: Please ask your questions on installation and usage here. From e9874cd6e4882faf513d9330afe83560d5582488 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 Nov 2023 15:16:00 +0100 Subject: [PATCH 129/401] deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager from 1.21.6 to 1.23.0 (#378) deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager Bumps [github.com/aws/aws-sdk-go-v2/service/secretsmanager](https://github.com/aws/aws-sdk-go-v2) from 1.21.6 to 1.23.0. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/service/s3/v1.23.0/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/efs/v1.21.6...service/s3/v1.23.0) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/service/secretsmanager dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 10 +++++----- go.sum | 16 ++++++++++------ 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/go.mod b/go.mod index a34802b9..a9f53e81 100644 --- a/go.mod +++ b/go.mod @@ -4,9 +4,9 @@ go 1.18 require ( github.com/ClickHouse/clickhouse-go v1.5.4 - github.com/aws/aws-sdk-go-v2 v1.21.2 + github.com/aws/aws-sdk-go-v2 v1.22.1 github.com/aws/aws-sdk-go-v2/config v1.19.1 - github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.21.6 + github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.23.0 github.com/go-sql-driver/mysql v1.7.1 github.com/jackc/pgx/v4 v4.18.1 github.com/kardianos/minwinsvc v1.0.2 @@ -40,8 +40,8 @@ require ( github.com/aws/aws-sdk-go-v2/credentials v1.13.43 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.13 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.43 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.37 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.1 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.1 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.3.45 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 // indirect @@ -52,7 +52,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/sso v1.15.2 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.3 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.23.2 // indirect - github.com/aws/smithy-go v1.15.0 // indirect + github.com/aws/smithy-go v1.16.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 // indirect diff --git a/go.sum b/go.sum index 52349665..f10a1dfd 100644 --- a/go.sum +++ b/go.sum @@ -28,8 +28,9 @@ github.com/apache/arrow/go/v12 v12.0.1/go.mod h1:weuTY7JvTG/HDPtMQxEUp7pU73vkLWM github.com/apache/thrift v0.16.0 h1:qEy6UW60iVOlUy+b9ZR0d5WzUWYGOo4HfopoyBaNmoY= github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= github.com/aws/aws-sdk-go-v2 v1.17.7/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= -github.com/aws/aws-sdk-go-v2 v1.21.2 h1:+LXZ0sgo8quN9UOKXXzAWRT3FWd4NxeXWOZom9pE7GA= github.com/aws/aws-sdk-go-v2 v1.21.2/go.mod h1:ErQhvNuEMhJjweavOYhxVkn2RUx7kQXVATHrjKtxIpM= +github.com/aws/aws-sdk-go-v2 v1.22.1 h1:sjnni/AuoTXxHitsIdT0FwmqUuNUuHtufcVDErVFT9U= +github.com/aws/aws-sdk-go-v2 v1.22.1/go.mod h1:Kd0OJtkW3Q0M0lUWGszapWjEvrXDzRW+D21JNsroB+c= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10/go.mod h1:VeTZetY5KRJLuD/7fkQXMU6Mw7H5m/KP2J5Iy9osMno= github.com/aws/aws-sdk-go-v2/config v1.18.19/go.mod h1:XvTmGMY8d52ougvakOv1RpiTLPz9dlG/OQHsKU/cMmY= @@ -44,11 +45,13 @@ github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.13/go.mod h1:f/Ib/qYjhV2/qds github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 h1:E3Y+OfzOK1+rmRo/K2G0ml8Vs+Xqk0kOnf4nS0kUtBc= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59/go.mod h1:1M4PLSBUVfBI0aP+C9XI7SM6kZPCGYyI6izWz0TGprE= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.31/go.mod h1:QT0BqUvX1Bh2ABdTGnjqEjvjzrCfIniM9Sc8zn9Yndo= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.43 h1:nFBQlGtkbPzp/NjZLuFxRqmT91rLJkgvsEQs68h962Y= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.43/go.mod h1:auo+PiyLl0n1l8A0e8RIeR8tOzYPfZZH/JNlrJ8igTQ= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.1 h1:fi1ga6WysOyYb5PAf3Exd6B5GiSNpnZim4h1rhlBqx0= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.1/go.mod h1:V5CY8wNurvPUibTi9mwqUqpiFZ5LnioKWIFUDtIzdI8= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.25/go.mod h1:zBHOPwhBc3FlQjQJE/D3IfPWiWaQmT06Vq9aNukDo0k= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.37 h1:JRVhO25+r3ar2mKGP7E0LDl8K9/G36gjlqca5iQbaqc= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.37/go.mod h1:Qe+2KtKml+FEsQF/DHmDV+xjtche/hwoF75EG4UlHW8= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.1 h1:ZpaV/j48RlPc4AmOZuPv22pJliXjXq8/reL63YzyFnw= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.1/go.mod h1:R8aXraabD2e3qv1csxM14/X9WF4wFMIY0kH4YEtYD5M= github.com/aws/aws-sdk-go-v2/internal/ini v1.3.32/go.mod h1:XGhIBZDEgfqmFIugclZ6FU7v75nHhBDtzuB4xB/tEi4= github.com/aws/aws-sdk-go-v2/internal/ini v1.3.45 h1:hze8YsjSh8Wl1rYa1CJpRmXP21BvOBuc76YhW0HsuQ4= github.com/aws/aws-sdk-go-v2/internal/ini v1.3.45/go.mod h1:lD5M20o09/LCuQ2mE62Mb/iSdSlCNuj6H5ci7tW7OsE= @@ -65,8 +68,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 h1:e2ooMhpYGhDnBf github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0/go.mod h1:bh2E0CXKZsQN+faiKVqC40vfNMAWheoULBCnEgO9K+8= github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 h1:B1G2pSPvbAtQjilPq+Y7jLIzCOwKzuVEl+aBBaNG0AQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0/go.mod h1:ncltU6n4Nof5uJttDtcNQ537uNuwYqsZZQcpkd2/GUQ= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.21.6 h1:y3n83jEM6EuawrD5HZCh3eMj9RsfxniVLcXlyFMNITM= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.21.6/go.mod h1:A108ijf0IFtqhYApU+Gia80aPSAUfi9dItm+h5fWGJE= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.23.0 h1:PXSCgeF51ApT3k+fduqw7IaCxICt1nozWV1iPz7TyxU= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.23.0/go.mod h1:bpDXZjRbNT5gb9pa2jJlSUvBkfNwfG3OWgGqFYY73kA= github.com/aws/aws-sdk-go-v2/service/sso v1.12.6/go.mod h1:Y1VOmit/Fn6Tz1uFAeCO6Q7M2fmfXSCLeL5INVYsLuY= github.com/aws/aws-sdk-go-v2/service/sso v1.15.2 h1:JuPGc7IkOP4AaqcZSIcyqLpFSqBWK32rM9+a1g6u73k= github.com/aws/aws-sdk-go-v2/service/sso v1.15.2/go.mod h1:gsL4keucRCgW+xA85ALBpRFfdSLH4kHOVSnLMSuBECo= @@ -77,8 +80,9 @@ github.com/aws/aws-sdk-go-v2/service/sts v1.18.7/go.mod h1:JuTnSoeePXmMVe9G8Ncjj github.com/aws/aws-sdk-go-v2/service/sts v1.23.2 h1:0BkLfgeDjfZnZ+MhB3ONb01u9pwFYTCZVhlsSSBvlbU= github.com/aws/aws-sdk-go-v2/service/sts v1.23.2/go.mod h1:Eows6e1uQEsc4ZaHANmsPRzAKcVDrcmjjWiih2+HUUQ= github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= -github.com/aws/smithy-go v1.15.0 h1:PS/durmlzvAFpQHDs4wi4sNNP9ExsqZh6IlfdHXgKK8= github.com/aws/smithy-go v1.15.0/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= +github.com/aws/smithy-go v1.16.0 h1:gJZEH/Fqh+RsvlJ1Zt4tVAtV6bKkp3cC+R6FCZMNzik= +github.com/aws/smithy-go v1.16.0/go.mod h1:NukqUGpCZIILqqiV0NIjeFh24kd/FAa4beRb6nbIUPE= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bkaradzic/go-lz4 v1.0.0 h1:RXc4wYsyz985CkXXeX04y4VnZFGG8Rd43pRaHsOXAKk= From cfaee755c6f7c8514fbbc1cb43b20146f813ff95 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 Nov 2023 16:26:13 +0100 Subject: [PATCH 130/401] deps: bump github.com/aws/aws-sdk-go-v2/config from 1.19.1 to 1.22.1 (#387) Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.19.1 to 1.22.1. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.19.1...v1.22.1) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/config dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 16 ++++++++-------- go.sum | 36 ++++++++++++++++-------------------- 2 files changed, 24 insertions(+), 28 deletions(-) diff --git a/go.mod b/go.mod index a9f53e81..1a79e6d2 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.18 require ( github.com/ClickHouse/clickhouse-go v1.5.4 github.com/aws/aws-sdk-go-v2 v1.22.1 - github.com/aws/aws-sdk-go-v2/config v1.19.1 + github.com/aws/aws-sdk-go-v2/config v1.22.1 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.23.0 github.com/go-sql-driver/mysql v1.7.1 github.com/jackc/pgx/v4 v4.18.1 @@ -37,21 +37,21 @@ require ( github.com/apache/arrow/go/v12 v12.0.1 // indirect github.com/apache/thrift v0.16.0 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.13.43 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.13 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.15.1 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.2 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.1 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.1 // indirect - github.com/aws/aws-sdk-go-v2/internal/ini v1.3.45 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.5.0 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 // indirect github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.37 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.1 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 // indirect github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.15.2 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.3 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.23.2 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.17.0 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.19.0 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.25.0 // indirect github.com/aws/smithy-go v1.16.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect diff --git a/go.sum b/go.sum index f10a1dfd..1f70a236 100644 --- a/go.sum +++ b/go.sum @@ -28,33 +28,30 @@ github.com/apache/arrow/go/v12 v12.0.1/go.mod h1:weuTY7JvTG/HDPtMQxEUp7pU73vkLWM github.com/apache/thrift v0.16.0 h1:qEy6UW60iVOlUy+b9ZR0d5WzUWYGOo4HfopoyBaNmoY= github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= github.com/aws/aws-sdk-go-v2 v1.17.7/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= -github.com/aws/aws-sdk-go-v2 v1.21.2/go.mod h1:ErQhvNuEMhJjweavOYhxVkn2RUx7kQXVATHrjKtxIpM= github.com/aws/aws-sdk-go-v2 v1.22.1 h1:sjnni/AuoTXxHitsIdT0FwmqUuNUuHtufcVDErVFT9U= github.com/aws/aws-sdk-go-v2 v1.22.1/go.mod h1:Kd0OJtkW3Q0M0lUWGszapWjEvrXDzRW+D21JNsroB+c= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10/go.mod h1:VeTZetY5KRJLuD/7fkQXMU6Mw7H5m/KP2J5Iy9osMno= github.com/aws/aws-sdk-go-v2/config v1.18.19/go.mod h1:XvTmGMY8d52ougvakOv1RpiTLPz9dlG/OQHsKU/cMmY= -github.com/aws/aws-sdk-go-v2/config v1.19.1 h1:oe3vqcGftyk40icfLymhhhNysAwk0NfiwkDi2GTPMXs= -github.com/aws/aws-sdk-go-v2/config v1.19.1/go.mod h1:ZwDUgFnQgsazQTnWfeLWk5GjeqTQTL8lMkoE1UXzxdE= +github.com/aws/aws-sdk-go-v2/config v1.22.1 h1:UrRYnF7mXCGuKmZWlczOXeH0WUbQpi/gseQIPtrhme8= +github.com/aws/aws-sdk-go-v2/config v1.22.1/go.mod h1:2eWgw5lps8fKI7LZVTrRTYP6HE6k/uEFUuTSHfXwqP0= github.com/aws/aws-sdk-go-v2/credentials v1.13.18/go.mod h1:vnwlwjIe+3XJPBYKu1et30ZPABG3VaXJYr8ryohpIyM= -github.com/aws/aws-sdk-go-v2/credentials v1.13.43 h1:LU8vo40zBlo3R7bAvBVy/ku4nxGEyZe9N8MqAeFTzF8= -github.com/aws/aws-sdk-go-v2/credentials v1.13.43/go.mod h1:zWJBz1Yf1ZtX5NGax9ZdNjhhI4rgjfgsyk6vTY1yfVg= +github.com/aws/aws-sdk-go-v2/credentials v1.15.1 h1:hmf6lAm9hk7uLCfapZn/jL05lm6Uwdbn1B0fgjyuf4M= +github.com/aws/aws-sdk-go-v2/credentials v1.15.1/go.mod h1:QTcHga3ZbQOneJuxmGBOCxiClxmp+TlvmjFexAnJ790= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.1/go.mod h1:lfUx8puBRdM5lVVMQlwt2v+ofiG/X6Ms+dy0UkG/kXw= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.13 h1:PIktER+hwIG286DqXyvVENjgLTAwGgoeriLDD5C+YlQ= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.13/go.mod h1:f/Ib/qYjhV2/qdsf79H3QP/eRE4AkVyEf6sk7XfZ1tg= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.2 h1:gIeH4+o1MN/caGBWjoGQTUTIu94xD6fI5B2+TcwBf70= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.2/go.mod h1:wLyMIo/zPOhQhPXTddpfdkSleyigtFi8iMnC+2m/SK4= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 h1:E3Y+OfzOK1+rmRo/K2G0ml8Vs+Xqk0kOnf4nS0kUtBc= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59/go.mod h1:1M4PLSBUVfBI0aP+C9XI7SM6kZPCGYyI6izWz0TGprE= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.31/go.mod h1:QT0BqUvX1Bh2ABdTGnjqEjvjzrCfIniM9Sc8zn9Yndo= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.43/go.mod h1:auo+PiyLl0n1l8A0e8RIeR8tOzYPfZZH/JNlrJ8igTQ= github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.1 h1:fi1ga6WysOyYb5PAf3Exd6B5GiSNpnZim4h1rhlBqx0= github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.1/go.mod h1:V5CY8wNurvPUibTi9mwqUqpiFZ5LnioKWIFUDtIzdI8= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.25/go.mod h1:zBHOPwhBc3FlQjQJE/D3IfPWiWaQmT06Vq9aNukDo0k= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.37/go.mod h1:Qe+2KtKml+FEsQF/DHmDV+xjtche/hwoF75EG4UlHW8= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.1 h1:ZpaV/j48RlPc4AmOZuPv22pJliXjXq8/reL63YzyFnw= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.1/go.mod h1:R8aXraabD2e3qv1csxM14/X9WF4wFMIY0kH4YEtYD5M= github.com/aws/aws-sdk-go-v2/internal/ini v1.3.32/go.mod h1:XGhIBZDEgfqmFIugclZ6FU7v75nHhBDtzuB4xB/tEi4= -github.com/aws/aws-sdk-go-v2/internal/ini v1.3.45 h1:hze8YsjSh8Wl1rYa1CJpRmXP21BvOBuc76YhW0HsuQ4= -github.com/aws/aws-sdk-go-v2/internal/ini v1.3.45/go.mod h1:lD5M20o09/LCuQ2mE62Mb/iSdSlCNuj6H5ci7tW7OsE= +github.com/aws/aws-sdk-go-v2/internal/ini v1.5.0 h1:DqOQvIfmGkXZUVJnl9VRk0AnxyS59tCtX9k1Pyss4Ak= +github.com/aws/aws-sdk-go-v2/internal/ini v1.5.0/go.mod h1:VV/Kbw9Mg1GWJOT9WK+oTL3cWZiXtapnNvDSRqTZLsg= github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 h1:DWYZIsyqagnWL00f8M/SOr9fN063OEQWn9LLTbdYXsk= github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23/go.mod h1:uIiFgURZbACBEQJfqTZPb/jxO7R+9LeoHUFudtIdeQI= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 h1:y2+VQzC6Zh2ojtV2LoC0MNwHWc6qXv/j2vrQtlftkdA= @@ -62,8 +59,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11/go.mod h1: github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26 h1:CeuSeq/8FnYpPtnuIeLQEEvDv9zUjneuYi8EghMBdwQ= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26/go.mod h1:2UqAAwMUXKeRkAHIlDJqvMVgOWkUi/AUXPk/YIe+Dg4= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.25/go.mod h1:/95IA+0lMnzW6XzqYJRpjjsAbKEORVeO0anQqjd2CNU= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.37 h1:WWZA/I2K4ptBS1kg0kV1JbBtG/umed0vwHRrmcr9z7k= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.37/go.mod h1:vBmDnwWXWxNPFRMmG2m/3MKOe+xEcMDo1tanpaWCcck= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.1 h1:2OXw3ppu1XsB6rqKEMV4tnecTjIY3PRV2U6IP6KPJQo= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.1/go.mod h1:FZB4AdakIqW/yERVdGJA6Z9jraax1beXfhBBnK2wwR8= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 h1:e2ooMhpYGhDnBfSvIyusvAwX7KexuZaHbQY2Dyei7VU= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0/go.mod h1:bh2E0CXKZsQN+faiKVqC40vfNMAWheoULBCnEgO9K+8= github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 h1:B1G2pSPvbAtQjilPq+Y7jLIzCOwKzuVEl+aBBaNG0AQ= @@ -71,16 +68,15 @@ github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0/go.mod h1:ncltU6n4Nof5uJttDtcNQ5 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.23.0 h1:PXSCgeF51ApT3k+fduqw7IaCxICt1nozWV1iPz7TyxU= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.23.0/go.mod h1:bpDXZjRbNT5gb9pa2jJlSUvBkfNwfG3OWgGqFYY73kA= github.com/aws/aws-sdk-go-v2/service/sso v1.12.6/go.mod h1:Y1VOmit/Fn6Tz1uFAeCO6Q7M2fmfXSCLeL5INVYsLuY= -github.com/aws/aws-sdk-go-v2/service/sso v1.15.2 h1:JuPGc7IkOP4AaqcZSIcyqLpFSqBWK32rM9+a1g6u73k= -github.com/aws/aws-sdk-go-v2/service/sso v1.15.2/go.mod h1:gsL4keucRCgW+xA85ALBpRFfdSLH4kHOVSnLMSuBECo= +github.com/aws/aws-sdk-go-v2/service/sso v1.17.0 h1:I/Oh3IxGPfHXiGnwM54TD6hNr/8TlUrBXAtTyGhR+zw= +github.com/aws/aws-sdk-go-v2/service/sso v1.17.0/go.mod h1:H6NCMvDBqA+CvIaXzaSqM6LWtzv9BzZrqBOqz+PzRF8= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.6/go.mod h1:Lh/bc9XUf8CfOY6Jp5aIkQtN+j1mc+nExc+KXj9jx2s= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.3 h1:HFiiRkf1SdaAmV3/BHOFZ9DjFynPHj8G/UIO1lQS+fk= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.3/go.mod h1:a7bHA82fyUXOm+ZSWKU6PIoBxrjSprdLoM8xPYvzYVg= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.19.0 h1:irbXQkfVYIRaewYSXcu4yVk0m2T+JzZd0dkop7FjmO0= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.19.0/go.mod h1:4wPNCkM22+oRe71oydP66K50ojDUC33XutSMi2pEF/M= github.com/aws/aws-sdk-go-v2/service/sts v1.18.7/go.mod h1:JuTnSoeePXmMVe9G8NcjjwgOKEfZ4cOjMuT2IBT/2eI= -github.com/aws/aws-sdk-go-v2/service/sts v1.23.2 h1:0BkLfgeDjfZnZ+MhB3ONb01u9pwFYTCZVhlsSSBvlbU= -github.com/aws/aws-sdk-go-v2/service/sts v1.23.2/go.mod h1:Eows6e1uQEsc4ZaHANmsPRzAKcVDrcmjjWiih2+HUUQ= +github.com/aws/aws-sdk-go-v2/service/sts v1.25.0 h1:sYIFy8tm1xQwRvVQ4CRuBGXKIg9sHNuG6+3UAQuoujk= +github.com/aws/aws-sdk-go-v2/service/sts v1.25.0/go.mod h1:S/LOQUeYDfJeJpFCIJDMjy7dwL4aA33HUdVi+i7uH8k= github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= -github.com/aws/smithy-go v1.15.0/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= github.com/aws/smithy-go v1.16.0 h1:gJZEH/Fqh+RsvlJ1Zt4tVAtV6bKkp3cC+R6FCZMNzik= github.com/aws/smithy-go v1.16.0/go.mod h1:NukqUGpCZIILqqiV0NIjeFh24kd/FAa4beRb6nbIUPE= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= From 88b356a0b2f488fe51c879e0856f8a3f8853cd55 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Wed, 8 Nov 2023 21:34:16 +0100 Subject: [PATCH 131/401] docs: update README.md, sql_exporter.yml [skip ci] (#388) --- README.md | 11 +++++++++++ documentation/sql_exporter.yml | 24 ++++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/README.md b/README.md index 329e24d7..6323d8ff 100644 --- a/README.md +++ b/README.md @@ -136,6 +136,9 @@ global: # The target to monitor and the list of collectors to execute on it. target: + # Target name (optional). Setting this field enables extra metrics e.g. `up` and `scrape_duration` with + # the `target` label that are always returned on a scrape. + name: "prices_db" # Data source name always has a URI schema that matches the driver name. In some cases (e.g. MySQL) # the schema gets dropped or replaced to match the driver expected DSN format. data_source_name: 'sqlserver://prom_user:prom_password@dbserver1.example.com:1433' @@ -144,6 +147,10 @@ target: # Glob patterns are supported (see for syntax). collectors: [pricing_data_freshness, pricing_*] + # In case you need to connect to a backend that only responds to a limited set of commands (e.g. pgbouncer) or + # a data warehouse you don't want to keep online all the time (due to the extra cost), you might want to disable `ping` + # enable_ping: true + # Collector definition files. # Glob patterns are supported (see for syntax). collector_files: @@ -178,6 +185,9 @@ metrics: # Arbitrary key/value pair portfolio: income values: [LastUpdateTime] + # Static metric value (optional). Useful in case we are interested in string data (key_labels) only. It's mutually + # exclusive with `values` field. + # static_value: 1 query: | SELECT Market, max(UpdateTime) AS LastUpdateTime FROM MarketPrices @@ -258,6 +268,7 @@ configure `jobs` list instead of the `target` section as in the following exampl jobs: - job_name: db_targets collectors: [pricing_data_freshness, pricing_*] + enable_ping: true # Optional, true by default. Set to `false` in case you connect to pgbouncer or a data warehouse static_configs: - targets: pg1: 'pg://db1@127.0.0.1:25432/postgres?sslmode=disable' diff --git a/documentation/sql_exporter.yml b/documentation/sql_exporter.yml index 7b5802ab..2fab7834 100644 --- a/documentation/sql_exporter.yml +++ b/documentation/sql_exporter.yml @@ -28,6 +28,9 @@ global: # The target to monitor and the collectors to execute on it. target: + # Target name (optional). Setting this field enables extra metrics e.g. `up` and `scrape_duration` with the `target` + # label that are always returned on a scrape. If set, sql_exporter always returns HTTP 200 with these metrics populated + name: mssql_database # Data source name always has a URI schema that matches the driver name. In some cases (e.g. MySQL) # the schema gets dropped or replaced to match the driver expected DSN format. data_source_name: 'sqlserver://prom_user:prom_password@dbserver1.example.com:1433' @@ -35,6 +38,10 @@ target: # Collectors (referenced by name) to execute on the target. collectors: [mssql_standard] + # In case you need to connect to a backend that only responds to a limited set of commands (e.g. pgbouncer) or + # a data warehouse you don't want to keep online all the time (due to the extra cost), you might want to disable `ping` + enable_ping: true + # A collector is a named set of related metrics that are collected together. It can be referenced by name, possibly # along with other collectors. # @@ -65,6 +72,10 @@ collectors: key_labels: # Populated from the `db` column of each row. - db + static_labels: + # Arbitrary key/value pair + env: dev + region: europe # This query returns exactly one value per row, in the `counter` column. values: [counter] query: | @@ -102,6 +113,19 @@ collectors: - io_stall query_ref: io_stall + # Metric with a static value to retrieve string data. + - metric_name: mssql_hostname + type: gauge + help: 'Database server hostname' + key_labels: + # Populated from the `hostname` column of the result. + - hostname + # Static value, always set to `1`. + static_value: 1 + query: | + SELECT @@SERVERNAME AS hostname + + # Named queries, referenced by one or more metrics, through query_ref. queries: # Populates `mssql_io_stall` and `mssql_io_stall_total` From 12190b9f1c82311a8fef32152920227678e85c73 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Thu, 9 Nov 2023 10:21:05 +0100 Subject: [PATCH 132/401] Bump up version to 0.13.0 (#389) --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index aa22d3ce..54d1a4f2 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.12.3 +0.13.0 From 38609339b3ad4e15b39596be55f14680a06a0283 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Thu, 9 Nov 2023 10:57:57 +0100 Subject: [PATCH 133/401] build: bump up helm chart to 0.2.0 (#390) --- helm/Chart.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 606c584a..f8dd2535 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: sql-exporter description: Database agnostic SQL exporter for Prometheus type: application -version: 0.1.5 -appVersion: 0.12.3 +version: 0.2.0 +appVersion: 0.13.0 keywords: - exporter - servicemonitor From 5072ceb7bacbab4edeac965472146627ca7ddfc5 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Thu, 16 Nov 2023 21:59:16 +0100 Subject: [PATCH 134/401] fix(helm): add podLabels, podAnnotations, service.labels [skip-ci] (#393) fix(helm): add podLabels,podAnnotations,service.labels --- helm/ci/postgresql-values.yaml | 8 ++++++++ helm/templates/deployment.yaml | 6 ++++++ helm/templates/service.yaml | 3 +++ 3 files changed, 17 insertions(+) diff --git a/helm/ci/postgresql-values.yaml b/helm/ci/postgresql-values.yaml index 3780b934..00dba118 100644 --- a/helm/ci/postgresql-values.yaml +++ b/helm/ci/postgresql-values.yaml @@ -7,8 +7,16 @@ tests: metricsEndpoint: enabled: true service: + labels: + deployment: ci annotations: prometheus.io/scrape: "true" + +podLabels: + test-label: test-value +podAnnotations: + test/annotation: test-value + config: target: data_source_name: 'postgresql://postgres:123123!!@postgres-instance-postgresql.postgres.svc.cluster.local:5432?sslmode=disable' diff --git a/helm/templates/deployment.yaml b/helm/templates/deployment.yaml index 56cef77b..4636513c 100644 --- a/helm/templates/deployment.yaml +++ b/helm/templates/deployment.yaml @@ -14,8 +14,14 @@ spec: annotations: checksum/config: {{ include (print $.Template.BasePath "/secret.configuration.yaml") . | sha256sum }} checksum/collectors: {{ include (print $.Template.BasePath "/configmap.collectors.yaml") . | sha256sum }} + {{- with .Values.podAnnotations }} + {{- toYaml . | nindent 8 }} + {{- end }} labels: {{- include "sql-exporter.selectorLabels" . | nindent 8 }} + {{- with .Values.podLabels }} + {{- toYaml . | nindent 8 }} + {{- end }} spec: {{- with .Values.imagePullSecrets }} imagePullSecrets: diff --git a/helm/templates/service.yaml b/helm/templates/service.yaml index 587a10e2..c79e4f6f 100644 --- a/helm/templates/service.yaml +++ b/helm/templates/service.yaml @@ -4,6 +4,9 @@ metadata: name: {{ include "sql-exporter.fullname" . }} labels: {{- include "sql-exporter.labels" . | nindent 4 }} + {{- with .Values.service.labels }} + {{- toYaml . | nindent 4 }} + {{- end }} {{- with .Values.service.annotations }} annotations: {{- toYaml . | nindent 4 }} From 0e6c0414b1f53cb003e0257f03e7a906b9869d80 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Thu, 16 Nov 2023 22:06:51 +0100 Subject: [PATCH 135/401] chore(helm): add README.md, release 0.2.1 (#394) chore(helm): add README.md files for Helm chart --- helm/Chart.yaml | 2 +- helm/README.md | 71 ++++++++++++++++++++++++ helm/README.md.gotmpl | 61 +++++++++++++++++++++ helm/values.yaml | 122 +++++++++++++++++++++++++----------------- 4 files changed, 205 insertions(+), 51 deletions(-) create mode 100644 helm/README.md create mode 100644 helm/README.md.gotmpl diff --git a/helm/Chart.yaml b/helm/Chart.yaml index f8dd2535..82b672e6 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: sql-exporter description: Database agnostic SQL exporter for Prometheus type: application -version: 0.2.0 +version: 0.2.1 appVersion: 0.13.0 keywords: - exporter diff --git a/helm/README.md b/helm/README.md new file mode 100644 index 00000000..5b00c4fe --- /dev/null +++ b/helm/README.md @@ -0,0 +1,71 @@ +# sql-exporter + +![Version: 0.2.1](https://img.shields.io/badge/Version-0.2.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.13.0](https://img.shields.io/badge/AppVersion-0.13.0-informational?style=flat-square) + +Database agnostic SQL exporter for Prometheus + +## Source Code + +* + +## Maintainers + +| Name | Email | Url | +| ---- | ------ | --- | +| Nikolai Rodionov | | | + +## Installing the Chart + +To install the chart with the release name `sql-exporter`: + +```console +helm repo add sql_exporter https://burningalchemist.github.io/sql_exporter/ +helm install sql_exporter/sql-exporter +``` + +## Chart Values + +### General parameters + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| nameOverride | string | `""` | Provide a name in place of `sql-exporter` | +| fullnameOverride | string | `""` | String to fully override "sql-exporter.fullname" | +| image.repository | string | `"burningalchemist/sql_exporter"` | Image repository | +| image.pullPolicy | string | `"IfNotPresent"` | Image pull policy | +| image.tag | string | `appVersion` value from `Chart.yaml` | Image tag | +| imagePullSecrets | list | `[]` | Secrets with credentials to pull images from a private registry | +| service.type | string | `"ClusterIP"` | Service type | +| service.port | int | `80` | Service port | +| service.labels | object | `{}` | Service labels | +| service.annotations | object | `{}` | Service annotations | +| resources | object | `{}` | Resource limits and requests for the application controller pods | +| podLabels | object | `{}` | Pod labels | +| podAnnotations | object | `{}` | Pod annotations | +| podSecurityContext | object | `{}` | Pod security context | + +### Prometheus ServiceMonitor + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| serviceMonitor.enabled | bool | `true` | Enable ServiceMonitor | +| serviceMonitor.interval | string | `"15s"` | ServiceMonitor interval | +| serviceMonitor.path | string | `"/metrics"` | ServiceMonitor path | +| serviceMonitor.scrapeTimeout | string | `"60s"` | ServiceMonitor scrape timeout | + +### Configuration + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| config.global.scrape_timeout | string | `"10s"` | Scrape timeout | +| config.global.scrape_timeout_offset | string | `"500ms"` | Scrape timeout offset. Must be strictly positive. | +| config.global.min_interval | string | `"0s"` | Minimum interval between collector runs. | +| config.global.max_connections | int | `3` | Number of open connections. | +| config.global.max_idle_connections | int | `3` | Number of idle connections. | +| target | object | `nil` | Check documentation. Mutually exclusive with `jobs` | +| jobs | list | `nil` | Check documentation. Mutually exclusive with `target` | +| collector_files | list | `[]` | Check documentation | + +To configure `target`, `jobs`, `collector_files` please refer to the [documentation](https://github.com/burningalchemist/sql_exporter/blob/master/documentation/sql_exporter.yml) in the source repository. These values are not set by default. + +It's also possible to define collectors (i.e. metrics and queries) in separate files, and specify the filenames in the `collector_files` list. For that we can use `CollectorFiles` field (check `values.yaml` for the available example). diff --git a/helm/README.md.gotmpl b/helm/README.md.gotmpl new file mode 100644 index 00000000..8e768c85 --- /dev/null +++ b/helm/README.md.gotmpl @@ -0,0 +1,61 @@ +{{ template "chart.header" . }} +{{ template "chart.deprecationWarning" . }} + +{{ template "chart.badgesSection" . }} + +{{ template "chart.description" . }} + +{{ template "chart.sourcesSection" . }} + +{{ template "chart.maintainersSection" . }} + +{{ template "chart.requirementsSection" . }} + + +## Installing the Chart + +To install the chart with the release name `sql-exporter`: + +```console +helm repo add sql_exporter https://burningalchemist.github.io/sql_exporter/ +helm install sql_exporter/sql-exporter +``` + +## Chart Values + +### General parameters + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +{{- range .Values }} +{{- if not (or (hasPrefix "serviceMonitor" .Key) (hasPrefix "config" .Key) (hasPrefix "collectorFiles" .Key))}} +| {{ .Key }} | {{ .Type }} | {{ if .Default }}{{ .Default }}{{ else }}{{ .AutoDefault }}{{ end }} | {{ if .Description }}{{ .Description }}{{ else }}{{ .AutoDescription }}{{ end }} | + {{- end }} +{{- end }} + +### Prometheus ServiceMonitor + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +{{- range .Values }} + {{- if hasPrefix "serviceMonitor" .Key }} +| {{ .Key }} | {{ .Type }} | {{ if .Default }}{{ .Default }}{{ else }}{{ .AutoDefault }}{{ end }} | {{ if .Description }}{{ .Description }}{{ else }}{{ .AutoDescription }}{{ end }} | + {{- end }} +{{- end }} + +### Configuration + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +{{- range .Values }} + {{- if or (hasPrefix "config" .Key) }} +| {{ .Key }} | {{ .Type }} | {{ if .Default }}{{ .Default }}{{ else }}{{ .AutoDefault }}{{ end }} | {{ if .Description }}{{ .Description }}{{ else }}{{ .AutoDescription }}{{ end }} | + {{- end }} +{{- end }} +| target | object | `nil` | Check documentation. Mutually exclusive with `jobs` | +| jobs | list | `nil` | Check documentation. Mutually exclusive with `target` | +| collector_files | list | `[]` | Check documentation | + +To configure `target`, `jobs`, `collector_files` please refer to the [documentation](https://github.com/burningalchemist/sql_exporter/blob/master/documentation/sql_exporter.yml) in the source repository. These values are not set by default. + +It's also possible to define collectors (i.e. metrics and queries) in separate files, and specify the filenames in the `collector_files` list. For that we can use `CollectorFiles` field (check `values.yaml` for the available example). diff --git a/helm/values.yaml b/helm/values.yaml index 39157e7d..e4a89d60 100644 --- a/helm/values.yaml +++ b/helm/values.yaml @@ -1,89 +1,111 @@ -# --------------------------------------------------------------------- -# -- Global values -# --------------------------------------------------------------------- +# -- Provide a name in place of `sql-exporter` +nameOverride: "" +# -- String to fully override "sql-exporter.fullname" +fullnameOverride: "" + image: + # -- Image repository repository: burningalchemist/sql_exporter + # -- Image pull policy pullPolicy: IfNotPresent - # tag: $IMAGE_TAG + # -- Image tag + # @default -- `appVersion` value from `Chart.yaml` + tag: "" + +# -- Secrets with credentials to pull images from a private registry imagePullSecrets: [] -nameOverride: "" -fullnameOverride: "" + service: + # -- Service type type: ClusterIP + # -- Service port port: 80 + # -- Service labels + labels: {} + # -- Service annotations annotations: {} # example of prometheus usage # prometheus.io/scrape: "true" # prometheus.io/path: "/metrics" -resources: - {} + +# -- Resource limits and requests for the application controller pods +resources: {} # limits: # cpu: 100m # memory: 128Mi # requests: # cpu: 100m # memory: 128Mi + +# -- Pod labels +podLabels: {} +# -- Pod annotations +podAnnotations: {} + +# -- Pod security context podSecurityContext: {} -securityContext: - {} # capabilities: # drop: # - ALL # readOnlyRootFilesystem: true # runAsNonRoot: true # runAsUser: 1000 +# @ignored +securityContext: {} -# --------------------------------------------------------------------- -# -- Prometheus operator values -# --------------------------------------------------------------------- +# Prometheus Operator values serviceMonitor: + # -- Enable ServiceMonitor enabled: true + # -- ServiceMonitor interval interval: 15s - # --------------------------------------------------------------------- - # -- SQL exporter configuration - # -- For a comprehensive and comprehensively documented configuration - # -- file check out: https://github.com/burningalchemist/sql_exporter/blob/master/documentation/sql_exporter.yml - # --------------------------------------------------------------------- + # -- ServiceMonitor path + path: /metrics + # -- ServiceMonitor scrape timeout + scrapeTimeout: 60s config: global: + # -- Scrape timeout scrape_timeout: 10s + # -- Scrape timeout offset. Must be strictly positive. scrape_timeout_offset: 500ms + # -- Minimum interval between collector runs. min_interval: 0s + # -- Number of open connections. max_connections: 3 + # -- Number of idle connections. max_idle_connections: 3 - # --------------------------------------------------------------------- - # -- Target and collectors are not set so the chart is more flexible - # -- Please configure it yourself - # --------------------------------------------------------------------- - # target: - # data_source_name: 'sqlserver://prom_user:prom_password@dbserver1.example.com:1433' - # collectors: [active_connections] - # collectors: - # - collector_name: active_connections - # metrics: - # - metric_name: active_connections - # type: gauge - # help: 'Active connections' - # key_labels: - # - "datname" - # - "usename" - # - "state" - # values: - # - "count" - # query_ref: active_connections - # queries: - # - query_name: active_connections - # query: | - # SELECT - # datname::text, - # usename::text, - # state::text, - # COUNT(state)::float AS count - # FROM pg_stat_activity - # GROUP BY datname, usename, state; - # collector_files: - # - "*.collector.yml" + +# Target and collectors are not set so the chart is more flexible. Please configure it yourself. +# target: +# data_source_name: 'sqlserver://prom_user:prom_password@dbserver1.example.com:1433' +# collectors: [active_connections] +# collectors: +# - collector_name: active_connections +# metrics: +# - metric_name: active_connections +# type: gauge +# help: 'Active connections' +# key_labels: +# - "datname" +# - "usename" +# - "state" +# values: +# - "count" +# query_ref: active_connections +# queries: +# - query_name: active_connections +# query: | +# SELECT +# datname::text, +# usename::text, +# state::text, +# COUNT(state)::float AS count +# FROM pg_stat_activity +# GROUP BY datname, usename, state; +# collector_files: +# - "*.collector.yml" # --------------------------------------------------------------------- # -- Collector Files From 098edd55f15d72b2aac820fc202ff6f8bed5dbd9 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Fri, 17 Nov 2023 10:08:25 +0100 Subject: [PATCH 136/401] fix(helm): scrapeTimeout and interval clash, release v0.2.2 (#395) --- helm/Chart.yaml | 2 +- helm/README.md | 4 ++-- helm/README.md.gotmpl | 1 + helm/values.yaml | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 82b672e6..f1067ce8 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: sql-exporter description: Database agnostic SQL exporter for Prometheus type: application -version: 0.2.1 +version: 0.2.2 appVersion: 0.13.0 keywords: - exporter diff --git a/helm/README.md b/helm/README.md index 5b00c4fe..a2800aea 100644 --- a/helm/README.md +++ b/helm/README.md @@ -1,6 +1,6 @@ # sql-exporter -![Version: 0.2.1](https://img.shields.io/badge/Version-0.2.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.13.0](https://img.shields.io/badge/AppVersion-0.13.0-informational?style=flat-square) +![Version: 0.2.2](https://img.shields.io/badge/Version-0.2.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.13.0](https://img.shields.io/badge/AppVersion-0.13.0-informational?style=flat-square) Database agnostic SQL exporter for Prometheus @@ -51,7 +51,7 @@ helm install sql_exporter/sql-exporter | serviceMonitor.enabled | bool | `true` | Enable ServiceMonitor | | serviceMonitor.interval | string | `"15s"` | ServiceMonitor interval | | serviceMonitor.path | string | `"/metrics"` | ServiceMonitor path | -| serviceMonitor.scrapeTimeout | string | `"60s"` | ServiceMonitor scrape timeout | +| serviceMonitor.scrapeTimeout | string | `nil` | ServiceMonitor scrape timeout | ### Configuration diff --git a/helm/README.md.gotmpl b/helm/README.md.gotmpl index 8e768c85..4a5c03bf 100644 --- a/helm/README.md.gotmpl +++ b/helm/README.md.gotmpl @@ -42,6 +42,7 @@ helm install sql_exporter/sql-exporter | {{ .Key }} | {{ .Type }} | {{ if .Default }}{{ .Default }}{{ else }}{{ .AutoDefault }}{{ end }} | {{ if .Description }}{{ .Description }}{{ else }}{{ .AutoDescription }}{{ end }} | {{- end }} {{- end }} +| serviceMonitor.scrapeTimeout | string | `nil` | ServiceMonitor scrape timeout | ### Configuration diff --git a/helm/values.yaml b/helm/values.yaml index e4a89d60..72a942d9 100644 --- a/helm/values.yaml +++ b/helm/values.yaml @@ -62,7 +62,7 @@ serviceMonitor: # -- ServiceMonitor path path: /metrics # -- ServiceMonitor scrape timeout - scrapeTimeout: 60s + # scrapeTimeout: 10s config: global: From 885c365000e5f9623438aa23174953c32945a3cb Mon Sep 17 00:00:00 2001 From: Nikolai Rodionov Date: Sun, 19 Nov 2023 20:07:32 +0100 Subject: [PATCH 137/401] feat: Add a make rule to generate helm docs (#398) It's going to be easier for contributors, if they don't have to figure out the way to update README.md. So, I guess, it makes sense to have a Makefile with a corresponding rule. --- helm/.gitignore | 1 + helm/Chart.yaml | 2 +- helm/Makefile | 8 ++++++++ helm/README.md | 4 ++++ helm/README.md.gotmpl | 4 ++++ 5 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 helm/.gitignore create mode 100644 helm/Makefile diff --git a/helm/.gitignore b/helm/.gitignore new file mode 100644 index 00000000..ba077a40 --- /dev/null +++ b/helm/.gitignore @@ -0,0 +1 @@ +bin diff --git a/helm/Chart.yaml b/helm/Chart.yaml index f1067ce8..29fc5465 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: sql-exporter description: Database agnostic SQL exporter for Prometheus type: application -version: 0.2.2 +version: 0.2.3 appVersion: 0.13.0 keywords: - exporter diff --git a/helm/Makefile b/helm/Makefile new file mode 100644 index 00000000..6ea48ae8 --- /dev/null +++ b/helm/Makefile @@ -0,0 +1,8 @@ +LOCALBIN ?= $(shell pwd)/bin +$(LOCALBIN): + mkdir -p $(LOCALBIN) + +.PHONY: gen_docs +gen_docs: ## Generate helm documentation + test -s $(LOCALBIN)/setup-envtest || GOBIN=$(LOCALBIN) go install github.com/norwoodj/helm-docs/cmd/helm-docs@latest + ./bin/helm-docs --template-files=./README.md.gotmpl --sort-values-order file diff --git a/helm/README.md b/helm/README.md index a2800aea..8164b36a 100644 --- a/helm/README.md +++ b/helm/README.md @@ -69,3 +69,7 @@ helm install sql_exporter/sql-exporter To configure `target`, `jobs`, `collector_files` please refer to the [documentation](https://github.com/burningalchemist/sql_exporter/blob/master/documentation/sql_exporter.yml) in the source repository. These values are not set by default. It's also possible to define collectors (i.e. metrics and queries) in separate files, and specify the filenames in the `collector_files` list. For that we can use `CollectorFiles` field (check `values.yaml` for the available example). + +## Dev Notes + +After updating default `Values`, please execute `make gen_docs` to update the `README.md` file diff --git a/helm/README.md.gotmpl b/helm/README.md.gotmpl index 4a5c03bf..cd989813 100644 --- a/helm/README.md.gotmpl +++ b/helm/README.md.gotmpl @@ -60,3 +60,7 @@ helm install sql_exporter/sql-exporter To configure `target`, `jobs`, `collector_files` please refer to the [documentation](https://github.com/burningalchemist/sql_exporter/blob/master/documentation/sql_exporter.yml) in the source repository. These values are not set by default. It's also possible to define collectors (i.e. metrics and queries) in separate files, and specify the filenames in the `collector_files` list. For that we can use `CollectorFiles` field (check `values.yaml` for the available example). + +## Dev Notes + +After changing default `Values`, please execute `make gen_docs` to update the `README.md` file. Readme file is generated by the `helm-docs` tool, so make sure not to edit it manually. From bf66c18445f94585e6c872bb46837dddc51533ff Mon Sep 17 00:00:00 2001 From: Nikolai Rodionov Date: Tue, 21 Nov 2023 10:31:13 +0100 Subject: [PATCH 138/401] feat(helm): Add an ability to set addition env via helm (#399) * feat: Add local bin dir to helmignore In case somebody wants to test the chart locally, after generating docs, tests will fail, because helm will consider bin as a part of the chart, and the size of the binary is too big to be installed to k8s * feat: Add an ability to set addition env via helm Now it should be possible to set addition environment variables that are going to be used by sql_exporter deployment. User can either set a value of the variable, so it's taken directly from Values, or use a value from an already existing Secret or ConfigMap. --- helm/.helmignore | 2 ++ helm/Chart.yaml | 2 +- helm/README.md | 4 ++-- helm/templates/deployment.yaml | 20 ++++++++++++++++++++ helm/values.yaml | 20 ++++++++++++++++---- 5 files changed, 41 insertions(+), 7 deletions(-) diff --git a/helm/.helmignore b/helm/.helmignore index 0e8a0eb3..8150aec8 100644 --- a/helm/.helmignore +++ b/helm/.helmignore @@ -21,3 +21,5 @@ .idea/ *.tmproj .vscode/ +# Dir with local binaries +bin diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 29fc5465..a8d9c2e1 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: sql-exporter description: Database agnostic SQL exporter for Prometheus type: application -version: 0.2.3 +version: 0.2.4 appVersion: 0.13.0 keywords: - exporter diff --git a/helm/README.md b/helm/README.md index 8164b36a..2fb0f0fa 100644 --- a/helm/README.md +++ b/helm/README.md @@ -1,6 +1,6 @@ # sql-exporter -![Version: 0.2.2](https://img.shields.io/badge/Version-0.2.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.13.0](https://img.shields.io/badge/AppVersion-0.13.0-informational?style=flat-square) +![Version: 0.2.4](https://img.shields.io/badge/Version-0.2.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.13.0](https://img.shields.io/badge/AppVersion-0.13.0-informational?style=flat-square) Database agnostic SQL exporter for Prometheus @@ -72,4 +72,4 @@ It's also possible to define collectors (i.e. metrics and queries) in separate f ## Dev Notes -After updating default `Values`, please execute `make gen_docs` to update the `README.md` file +After changing default `Values`, please execute `make gen_docs` to update the `README.md` file. Readme file is generated by the `helm-docs` tool, so make sure not to edit it manually. diff --git a/helm/templates/deployment.yaml b/helm/templates/deployment.yaml index 4636513c..7de0a158 100644 --- a/helm/templates/deployment.yaml +++ b/helm/templates/deployment.yaml @@ -54,6 +54,26 @@ spec: readOnly: true mountPath: /etc/sql_exporter/collectors/ {{- end }} + {{- if .Values.env }} + env: + {{- range $key, $value := .Values.env }} + - name: {{ $key }} + {{- if $value.value }} + value: {{ $value.value }} + {{- else }} + valueFrom: + {{- if eq $value.from.kind "Secret" }} + secretKeyRef: + {{- else if eq $value.from.kind "ConfigMap" }} + configMapKeyRef: + {{- else }} + {{- fail "Values.env[].from.kind should be either Secret or ConfigMap" }} + {{- end }} + name: {{ $value.from.name }} + key: {{ $value.from.key }} + {{- end }} + {{- end }} + {{- end }} livenessProbe: httpGet: path: /healthz diff --git a/helm/values.yaml b/helm/values.yaml index 72a942d9..148d323b 100644 --- a/helm/values.yaml +++ b/helm/values.yaml @@ -23,13 +23,15 @@ service: # -- Service labels labels: {} # -- Service annotations - annotations: {} + annotations: + {} # example of prometheus usage # prometheus.io/scrape: "true" # prometheus.io/path: "/metrics" # -- Resource limits and requests for the application controller pods -resources: {} +resources: + {} # limits: # cpu: 100m # memory: 128Mi @@ -43,7 +45,8 @@ podLabels: {} podAnnotations: {} # -- Pod security context -podSecurityContext: {} +podSecurityContext: + {} # capabilities: # drop: # - ALL @@ -64,6 +67,16 @@ serviceMonitor: # -- ServiceMonitor scrape timeout # scrapeTimeout: 10s +# Additional env variables +# - kind should be either Secret or ConfigMap +# - name is the name of the Secret or ConfigMap that should be used +# - key is the key of the object inside of a Secret or ConfigMap +# env: +# SQLEXPORTER_TARGET_DSN: +# from: +# kind: Secret +# name: sql_exporter_secret +# key: CONNECTION_STRING config: global: # -- Scrape timeout @@ -76,7 +89,6 @@ config: max_connections: 3 # -- Number of idle connections. max_idle_connections: 3 - # Target and collectors are not set so the chart is more flexible. Please configure it yourself. # target: # data_source_name: 'sqlserver://prom_user:prom_password@dbserver1.example.com:1433' From b038c3484e557ee40fac5c2e95c27cdb8819e768 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 2 Dec 2023 09:10:10 +0100 Subject: [PATCH 139/401] deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager from 1.23.0 to 1.25.2 (#406) deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager Bumps [github.com/aws/aws-sdk-go-v2/service/secretsmanager](https://github.com/aws/aws-sdk-go-v2) from 1.23.0 to 1.25.2. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.23.0...config/v1.25.2) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/service/secretsmanager dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 10 +++++----- go.sum | 20 ++++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/go.mod b/go.mod index 1a79e6d2..f73ad8ed 100644 --- a/go.mod +++ b/go.mod @@ -4,9 +4,9 @@ go 1.18 require ( github.com/ClickHouse/clickhouse-go v1.5.4 - github.com/aws/aws-sdk-go-v2 v1.22.1 + github.com/aws/aws-sdk-go-v2 v1.23.5 github.com/aws/aws-sdk-go-v2/config v1.22.1 - github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.23.0 + github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.25.2 github.com/go-sql-driver/mysql v1.7.1 github.com/jackc/pgx/v4 v4.18.1 github.com/kardianos/minwinsvc v1.0.2 @@ -40,8 +40,8 @@ require ( github.com/aws/aws-sdk-go-v2/credentials v1.15.1 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.2 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.1 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.1 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.8 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.8 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.5.0 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 // indirect @@ -52,7 +52,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/sso v1.17.0 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.19.0 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.25.0 // indirect - github.com/aws/smithy-go v1.16.0 // indirect + github.com/aws/smithy-go v1.18.1 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 // indirect diff --git a/go.sum b/go.sum index 1f70a236..477e20b6 100644 --- a/go.sum +++ b/go.sum @@ -28,8 +28,8 @@ github.com/apache/arrow/go/v12 v12.0.1/go.mod h1:weuTY7JvTG/HDPtMQxEUp7pU73vkLWM github.com/apache/thrift v0.16.0 h1:qEy6UW60iVOlUy+b9ZR0d5WzUWYGOo4HfopoyBaNmoY= github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= github.com/aws/aws-sdk-go-v2 v1.17.7/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= -github.com/aws/aws-sdk-go-v2 v1.22.1 h1:sjnni/AuoTXxHitsIdT0FwmqUuNUuHtufcVDErVFT9U= -github.com/aws/aws-sdk-go-v2 v1.22.1/go.mod h1:Kd0OJtkW3Q0M0lUWGszapWjEvrXDzRW+D21JNsroB+c= +github.com/aws/aws-sdk-go-v2 v1.23.5 h1:xK6C4udTyDMd82RFvNkDQxtAd00xlzFUtX4fF2nMZyg= +github.com/aws/aws-sdk-go-v2 v1.23.5/go.mod h1:t3szzKfP0NeRU27uBFczDivYJjsmSnqI8kIvKyWb9ds= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10/go.mod h1:VeTZetY5KRJLuD/7fkQXMU6Mw7H5m/KP2J5Iy9osMno= github.com/aws/aws-sdk-go-v2/config v1.18.19/go.mod h1:XvTmGMY8d52ougvakOv1RpiTLPz9dlG/OQHsKU/cMmY= @@ -44,11 +44,11 @@ github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.2/go.mod h1:wLyMIo/zPOhQhPXT github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 h1:E3Y+OfzOK1+rmRo/K2G0ml8Vs+Xqk0kOnf4nS0kUtBc= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59/go.mod h1:1M4PLSBUVfBI0aP+C9XI7SM6kZPCGYyI6izWz0TGprE= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.31/go.mod h1:QT0BqUvX1Bh2ABdTGnjqEjvjzrCfIniM9Sc8zn9Yndo= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.1 h1:fi1ga6WysOyYb5PAf3Exd6B5GiSNpnZim4h1rhlBqx0= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.1/go.mod h1:V5CY8wNurvPUibTi9mwqUqpiFZ5LnioKWIFUDtIzdI8= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.8 h1:8GVZIR0y6JRIUNSYI1xAMF4HDfV8H/bOsZ/8AD/uY5Q= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.8/go.mod h1:rwBfu0SoUkBUZndVgPZKAD9Y2JigaZtRP68unRiYToQ= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.25/go.mod h1:zBHOPwhBc3FlQjQJE/D3IfPWiWaQmT06Vq9aNukDo0k= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.1 h1:ZpaV/j48RlPc4AmOZuPv22pJliXjXq8/reL63YzyFnw= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.1/go.mod h1:R8aXraabD2e3qv1csxM14/X9WF4wFMIY0kH4YEtYD5M= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.8 h1:ZE2ds/qeBkhk3yqYvS3CDCFNvd9ir5hMjlVStLZWrvM= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.8/go.mod h1:/lAPPymDYL023+TS6DJmjuL42nxix2AvEvfjqOBRODk= github.com/aws/aws-sdk-go-v2/internal/ini v1.3.32/go.mod h1:XGhIBZDEgfqmFIugclZ6FU7v75nHhBDtzuB4xB/tEi4= github.com/aws/aws-sdk-go-v2/internal/ini v1.5.0 h1:DqOQvIfmGkXZUVJnl9VRk0AnxyS59tCtX9k1Pyss4Ak= github.com/aws/aws-sdk-go-v2/internal/ini v1.5.0/go.mod h1:VV/Kbw9Mg1GWJOT9WK+oTL3cWZiXtapnNvDSRqTZLsg= @@ -65,8 +65,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 h1:e2ooMhpYGhDnBf github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0/go.mod h1:bh2E0CXKZsQN+faiKVqC40vfNMAWheoULBCnEgO9K+8= github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 h1:B1G2pSPvbAtQjilPq+Y7jLIzCOwKzuVEl+aBBaNG0AQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0/go.mod h1:ncltU6n4Nof5uJttDtcNQ537uNuwYqsZZQcpkd2/GUQ= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.23.0 h1:PXSCgeF51ApT3k+fduqw7IaCxICt1nozWV1iPz7TyxU= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.23.0/go.mod h1:bpDXZjRbNT5gb9pa2jJlSUvBkfNwfG3OWgGqFYY73kA= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.25.2 h1:JKbfiLwEqJp8zaOAOn6AVSMS96gdwP3TjBMvZYsbxqE= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.25.2/go.mod h1:pbBOMK8UicdDK11zsPSGbpFh9Xwbd1oD3t7pSxXgNxU= github.com/aws/aws-sdk-go-v2/service/sso v1.12.6/go.mod h1:Y1VOmit/Fn6Tz1uFAeCO6Q7M2fmfXSCLeL5INVYsLuY= github.com/aws/aws-sdk-go-v2/service/sso v1.17.0 h1:I/Oh3IxGPfHXiGnwM54TD6hNr/8TlUrBXAtTyGhR+zw= github.com/aws/aws-sdk-go-v2/service/sso v1.17.0/go.mod h1:H6NCMvDBqA+CvIaXzaSqM6LWtzv9BzZrqBOqz+PzRF8= @@ -77,8 +77,8 @@ github.com/aws/aws-sdk-go-v2/service/sts v1.18.7/go.mod h1:JuTnSoeePXmMVe9G8Ncjj github.com/aws/aws-sdk-go-v2/service/sts v1.25.0 h1:sYIFy8tm1xQwRvVQ4CRuBGXKIg9sHNuG6+3UAQuoujk= github.com/aws/aws-sdk-go-v2/service/sts v1.25.0/go.mod h1:S/LOQUeYDfJeJpFCIJDMjy7dwL4aA33HUdVi+i7uH8k= github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= -github.com/aws/smithy-go v1.16.0 h1:gJZEH/Fqh+RsvlJ1Zt4tVAtV6bKkp3cC+R6FCZMNzik= -github.com/aws/smithy-go v1.16.0/go.mod h1:NukqUGpCZIILqqiV0NIjeFh24kd/FAa4beRb6nbIUPE= +github.com/aws/smithy-go v1.18.1 h1:pOdBTUfXNazOlxLrgeYalVnuTpKreACHtc62xLwIB3c= +github.com/aws/smithy-go v1.18.1/go.mod h1:NukqUGpCZIILqqiV0NIjeFh24kd/FAa4beRb6nbIUPE= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bkaradzic/go-lz4 v1.0.0 h1:RXc4wYsyz985CkXXeX04y4VnZFGG8Rd43pRaHsOXAKk= From 26fe2b210eb7e163dad1c5626a15798fc8ee64f3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 2 Dec 2023 09:16:11 +0100 Subject: [PATCH 140/401] deps: bump github.com/aws/aws-sdk-go-v2/config from 1.22.1 to 1.25.11 (#402) Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.22.1 to 1.25.11. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.22.1...config/v1.25.11) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/config dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 18 +++++++++--------- go.sum | 35 ++++++++++++++++++----------------- 2 files changed, 27 insertions(+), 26 deletions(-) diff --git a/go.mod b/go.mod index f73ad8ed..c59a8033 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.18 require ( github.com/ClickHouse/clickhouse-go v1.5.4 github.com/aws/aws-sdk-go-v2 v1.23.5 - github.com/aws/aws-sdk-go-v2/config v1.22.1 + github.com/aws/aws-sdk-go-v2/config v1.25.11 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.25.2 github.com/go-sql-driver/mysql v1.7.1 github.com/jackc/pgx/v4 v4.18.1 @@ -37,21 +37,21 @@ require ( github.com/apache/arrow/go/v12 v12.0.1 // indirect github.com/apache/thrift v0.16.0 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.15.1 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.2 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.16.9 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.9 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.8 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.8 // indirect - github.com/aws/aws-sdk-go-v2/internal/ini v1.5.0 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.7.1 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.3 // indirect github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.8 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 // indirect github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.17.0 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.19.0 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.25.0 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.18.2 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.2 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.26.2 // indirect github.com/aws/smithy-go v1.18.1 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect diff --git a/go.sum b/go.sum index 477e20b6..57eb1b22 100644 --- a/go.sum +++ b/go.sum @@ -33,14 +33,14 @@ github.com/aws/aws-sdk-go-v2 v1.23.5/go.mod h1:t3szzKfP0NeRU27uBFczDivYJjsmSnqI8 github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10/go.mod h1:VeTZetY5KRJLuD/7fkQXMU6Mw7H5m/KP2J5Iy9osMno= github.com/aws/aws-sdk-go-v2/config v1.18.19/go.mod h1:XvTmGMY8d52ougvakOv1RpiTLPz9dlG/OQHsKU/cMmY= -github.com/aws/aws-sdk-go-v2/config v1.22.1 h1:UrRYnF7mXCGuKmZWlczOXeH0WUbQpi/gseQIPtrhme8= -github.com/aws/aws-sdk-go-v2/config v1.22.1/go.mod h1:2eWgw5lps8fKI7LZVTrRTYP6HE6k/uEFUuTSHfXwqP0= +github.com/aws/aws-sdk-go-v2/config v1.25.11 h1:RWzp7jhPRliIcACefGkKp03L0Yofmd2p8M25kbiyvno= +github.com/aws/aws-sdk-go-v2/config v1.25.11/go.mod h1:BVUs0chMdygHsQtvaMyEOpW2GIW+ubrxJLgIz/JU29s= github.com/aws/aws-sdk-go-v2/credentials v1.13.18/go.mod h1:vnwlwjIe+3XJPBYKu1et30ZPABG3VaXJYr8ryohpIyM= -github.com/aws/aws-sdk-go-v2/credentials v1.15.1 h1:hmf6lAm9hk7uLCfapZn/jL05lm6Uwdbn1B0fgjyuf4M= -github.com/aws/aws-sdk-go-v2/credentials v1.15.1/go.mod h1:QTcHga3ZbQOneJuxmGBOCxiClxmp+TlvmjFexAnJ790= +github.com/aws/aws-sdk-go-v2/credentials v1.16.9 h1:LQo3MUIOzod9JdUK+wxmSdgzLVYUbII3jXn3S/HJZU0= +github.com/aws/aws-sdk-go-v2/credentials v1.16.9/go.mod h1:R7mDuIJoCjH6TxGUc/cylE7Lp/o0bhKVoxdBThsjqCM= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.1/go.mod h1:lfUx8puBRdM5lVVMQlwt2v+ofiG/X6Ms+dy0UkG/kXw= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.2 h1:gIeH4+o1MN/caGBWjoGQTUTIu94xD6fI5B2+TcwBf70= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.2/go.mod h1:wLyMIo/zPOhQhPXTddpfdkSleyigtFi8iMnC+2m/SK4= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.9 h1:FZVFahMyZle6WcogZCOxo6D/lkDA2lqKIn4/ueUmVXw= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.9/go.mod h1:kjq7REMIkxdtcEC9/4BVXjOsNY5isz6jQbEgk6osRTU= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 h1:E3Y+OfzOK1+rmRo/K2G0ml8Vs+Xqk0kOnf4nS0kUtBc= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59/go.mod h1:1M4PLSBUVfBI0aP+C9XI7SM6kZPCGYyI6izWz0TGprE= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.31/go.mod h1:QT0BqUvX1Bh2ABdTGnjqEjvjzrCfIniM9Sc8zn9Yndo= @@ -50,17 +50,18 @@ github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.25/go.mod h1:zBHOPwhBc3F github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.8 h1:ZE2ds/qeBkhk3yqYvS3CDCFNvd9ir5hMjlVStLZWrvM= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.8/go.mod h1:/lAPPymDYL023+TS6DJmjuL42nxix2AvEvfjqOBRODk= github.com/aws/aws-sdk-go-v2/internal/ini v1.3.32/go.mod h1:XGhIBZDEgfqmFIugclZ6FU7v75nHhBDtzuB4xB/tEi4= -github.com/aws/aws-sdk-go-v2/internal/ini v1.5.0 h1:DqOQvIfmGkXZUVJnl9VRk0AnxyS59tCtX9k1Pyss4Ak= -github.com/aws/aws-sdk-go-v2/internal/ini v1.5.0/go.mod h1:VV/Kbw9Mg1GWJOT9WK+oTL3cWZiXtapnNvDSRqTZLsg= +github.com/aws/aws-sdk-go-v2/internal/ini v1.7.1 h1:uR9lXYjdPX0xY+NhvaJ4dD8rpSRz5VY81ccIIoNG+lw= +github.com/aws/aws-sdk-go-v2/internal/ini v1.7.1/go.mod h1:6fQQgfuGmw8Al/3M2IgIllycxV7ZW7WCdVSqfBeUiCY= github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 h1:DWYZIsyqagnWL00f8M/SOr9fN063OEQWn9LLTbdYXsk= github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23/go.mod h1:uIiFgURZbACBEQJfqTZPb/jxO7R+9LeoHUFudtIdeQI= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 h1:y2+VQzC6Zh2ojtV2LoC0MNwHWc6qXv/j2vrQtlftkdA= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11/go.mod h1:iV4q2hsqtNECrfmlXyord9u4zyuFEJX9eLgLpSPzWA8= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.3 h1:e3PCNeEaev/ZF01cQyNZgmYE9oYYePIMJs2mWSKG514= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.3/go.mod h1:gIeeNyaL8tIEqZrzAnTeyhHcE0yysCtcaP+N9kxLZ+E= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26 h1:CeuSeq/8FnYpPtnuIeLQEEvDv9zUjneuYi8EghMBdwQ= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26/go.mod h1:2UqAAwMUXKeRkAHIlDJqvMVgOWkUi/AUXPk/YIe+Dg4= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.25/go.mod h1:/95IA+0lMnzW6XzqYJRpjjsAbKEORVeO0anQqjd2CNU= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.1 h1:2OXw3ppu1XsB6rqKEMV4tnecTjIY3PRV2U6IP6KPJQo= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.1/go.mod h1:FZB4AdakIqW/yERVdGJA6Z9jraax1beXfhBBnK2wwR8= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.8 h1:EamsKe+ZjkOQjDdHd86/JCEucjFKQ9T0atWKO4s2Lgs= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.8/go.mod h1:Q0vV3/csTpbkfKLI5Sb56cJQTCTtJ0ixdb7P+Wedqiw= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 h1:e2ooMhpYGhDnBfSvIyusvAwX7KexuZaHbQY2Dyei7VU= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0/go.mod h1:bh2E0CXKZsQN+faiKVqC40vfNMAWheoULBCnEgO9K+8= github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 h1:B1G2pSPvbAtQjilPq+Y7jLIzCOwKzuVEl+aBBaNG0AQ= @@ -68,14 +69,14 @@ github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0/go.mod h1:ncltU6n4Nof5uJttDtcNQ5 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.25.2 h1:JKbfiLwEqJp8zaOAOn6AVSMS96gdwP3TjBMvZYsbxqE= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.25.2/go.mod h1:pbBOMK8UicdDK11zsPSGbpFh9Xwbd1oD3t7pSxXgNxU= github.com/aws/aws-sdk-go-v2/service/sso v1.12.6/go.mod h1:Y1VOmit/Fn6Tz1uFAeCO6Q7M2fmfXSCLeL5INVYsLuY= -github.com/aws/aws-sdk-go-v2/service/sso v1.17.0 h1:I/Oh3IxGPfHXiGnwM54TD6hNr/8TlUrBXAtTyGhR+zw= -github.com/aws/aws-sdk-go-v2/service/sso v1.17.0/go.mod h1:H6NCMvDBqA+CvIaXzaSqM6LWtzv9BzZrqBOqz+PzRF8= +github.com/aws/aws-sdk-go-v2/service/sso v1.18.2 h1:xJPydhNm0Hiqct5TVKEuHG7weC0+sOs4MUnd7A5n5F4= +github.com/aws/aws-sdk-go-v2/service/sso v1.18.2/go.mod h1:zxk6y1X2KXThESWMS5CrKRvISD8mbIMab6nZrCGxDG0= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.6/go.mod h1:Lh/bc9XUf8CfOY6Jp5aIkQtN+j1mc+nExc+KXj9jx2s= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.19.0 h1:irbXQkfVYIRaewYSXcu4yVk0m2T+JzZd0dkop7FjmO0= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.19.0/go.mod h1:4wPNCkM22+oRe71oydP66K50ojDUC33XutSMi2pEF/M= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.2 h1:8dU9zqA77C5egbU6yd4hFLaiIdPv3rU+6cp7sz5FjCU= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.2/go.mod h1:7Lt5mjQ8x5rVdKqg+sKKDeuwoszDJIIPmkd8BVsEdS0= github.com/aws/aws-sdk-go-v2/service/sts v1.18.7/go.mod h1:JuTnSoeePXmMVe9G8NcjjwgOKEfZ4cOjMuT2IBT/2eI= -github.com/aws/aws-sdk-go-v2/service/sts v1.25.0 h1:sYIFy8tm1xQwRvVQ4CRuBGXKIg9sHNuG6+3UAQuoujk= -github.com/aws/aws-sdk-go-v2/service/sts v1.25.0/go.mod h1:S/LOQUeYDfJeJpFCIJDMjy7dwL4aA33HUdVi+i7uH8k= +github.com/aws/aws-sdk-go-v2/service/sts v1.26.2 h1:fFrLsy08wEbAisqW3KDl/cPHrF43GmV79zXB9EwJiZw= +github.com/aws/aws-sdk-go-v2/service/sts v1.26.2/go.mod h1:7Ld9eTqocTvJqqJ5K/orbSDwmGcpRdlDiLjz2DO+SL8= github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= github.com/aws/smithy-go v1.18.1 h1:pOdBTUfXNazOlxLrgeYalVnuTpKreACHtc62xLwIB3c= github.com/aws/smithy-go v1.18.1/go.mod h1:NukqUGpCZIILqqiV0NIjeFh24kd/FAa4beRb6nbIUPE= From e0825f7d3384b323622bcee5b76024bd0145fc72 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 2 Dec 2023 09:17:59 +0100 Subject: [PATCH 141/401] deps: bump github.com/snowflakedb/gosnowflake from 1.6.25 to 1.7.0 (#403) Bumps [github.com/snowflakedb/gosnowflake](https://github.com/snowflakedb/gosnowflake) from 1.6.25 to 1.7.0. - [Release notes](https://github.com/snowflakedb/gosnowflake/releases) - [Changelog](https://github.com/snowflakedb/gosnowflake/blob/master/release.go) - [Commits](https://github.com/snowflakedb/gosnowflake/compare/v1.6.25...v1.7.0) --- updated-dependencies: - dependency-name: github.com/snowflakedb/gosnowflake dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index c59a8033..5296de84 100644 --- a/go.mod +++ b/go.mod @@ -16,7 +16,7 @@ require ( github.com/prometheus/client_model v0.5.0 github.com/prometheus/common v0.45.0 github.com/prometheus/exporter-toolkit v0.10.0 - github.com/snowflakedb/gosnowflake v1.6.25 + github.com/snowflakedb/gosnowflake v1.7.0 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.16.0 google.golang.org/protobuf v1.31.0 diff --git a/go.sum b/go.sum index 57eb1b22..8ef72773 100644 --- a/go.sum +++ b/go.sum @@ -294,8 +294,8 @@ github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMB github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/snowflakedb/gosnowflake v1.6.25 h1:o5zUmxTOo0Eo9AdkEj8blCeiMuILrQJ+rjUMAeZhcRE= -github.com/snowflakedb/gosnowflake v1.6.25/go.mod h1:KfO4F7bk+aXPUIvBqYxvPhxLlu2/w4TtSC8Rw/yr5Mg= +github.com/snowflakedb/gosnowflake v1.7.0 h1:tB6SRddD5Tzihb8eCKo1Un9QxqMNq1WLNlYOJ/4uPCQ= +github.com/snowflakedb/gosnowflake v1.7.0/go.mod h1:KfO4F7bk+aXPUIvBqYxvPhxLlu2/w4TtSC8Rw/yr5Mg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= From a3b599fb61535e555d79402cfa1ce8300fd49623 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 2 Dec 2023 09:26:53 +0100 Subject: [PATCH 142/401] deps: bump github.com/xo/dburl from 0.16.0 to 0.18.3 (#404) Bumps [github.com/xo/dburl](https://github.com/xo/dburl) from 0.16.0 to 0.18.3. - [Release notes](https://github.com/xo/dburl/releases) - [Commits](https://github.com/xo/dburl/compare/v0.16.0...v0.18.3) --- updated-dependencies: - dependency-name: github.com/xo/dburl dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 5296de84..42bf0007 100644 --- a/go.mod +++ b/go.mod @@ -18,7 +18,7 @@ require ( github.com/prometheus/exporter-toolkit v0.10.0 github.com/snowflakedb/gosnowflake v1.7.0 github.com/vertica/vertica-sql-go v1.3.3 - github.com/xo/dburl v0.16.0 + github.com/xo/dburl v0.18.3 google.golang.org/protobuf v1.31.0 gopkg.in/yaml.v3 v3.0.1 k8s.io/klog/v2 v2.70.1 diff --git a/go.sum b/go.sum index 8ef72773..472dfa2a 100644 --- a/go.sum +++ b/go.sum @@ -313,8 +313,8 @@ github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/vertica/vertica-sql-go v1.3.3 h1:fL+FKEAEy5ONmsvya2WH5T8bhkvY27y/Ik3ReR2T+Qw= github.com/vertica/vertica-sql-go v1.3.3/go.mod h1:jnn2GFuv+O2Jcjktb7zyc4Utlbu9YVqpHH/lx63+1M4= -github.com/xo/dburl v0.16.0 h1:jlBeGe8fnsW+vBYemte903WHQbJnZx7OpJZy2ofq+5g= -github.com/xo/dburl v0.16.0/go.mod h1:B7/G9FGungw6ighV8xJNwWYQPMfn3gsi2sn5SE8Bzco= +github.com/xo/dburl v0.18.3 h1:z271VmL/pk00rAF+0JrwrsOLyQcEBqqjyH3qX7eeJIE= +github.com/xo/dburl v0.18.3/go.mod h1:B7/G9FGungw6ighV8xJNwWYQPMfn3gsi2sn5SE8Bzco= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= From 8840acd8920220ee1e6ca4353688306042a8b1ae Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Dec 2023 11:51:28 +0100 Subject: [PATCH 143/401] deps: bump golang.org/x/crypto from 0.14.0 to 0.17.0 (#409) Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.14.0 to 0.17.0. - [Commits](https://github.com/golang/crypto/compare/v0.14.0...v0.17.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 8 ++++---- go.sum | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index 42bf0007..b6d48780 100644 --- a/go.mod +++ b/go.mod @@ -102,15 +102,15 @@ require ( github.com/prometheus/procfs v0.11.1 // indirect github.com/sirupsen/logrus v1.9.0 // indirect github.com/zeebo/xxh3 v1.0.2 // indirect - golang.org/x/crypto v0.14.0 // indirect + golang.org/x/crypto v0.17.0 // indirect golang.org/x/exp v0.0.0-20230321023759-10a507213a29 // indirect golang.org/x/mod v0.8.0 // indirect golang.org/x/net v0.17.0 // indirect golang.org/x/oauth2 v0.12.0 // indirect golang.org/x/sync v0.3.0 // indirect - golang.org/x/sys v0.13.0 // indirect - golang.org/x/term v0.13.0 // indirect - golang.org/x/text v0.13.0 // indirect + golang.org/x/sys v0.15.0 // indirect + golang.org/x/term v0.15.0 // indirect + golang.org/x/text v0.14.0 // indirect golang.org/x/tools v0.6.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect google.golang.org/appengine v1.6.7 // indirect diff --git a/go.sum b/go.sum index 472dfa2a..3db7725c 100644 --- a/go.sum +++ b/go.sum @@ -342,8 +342,8 @@ golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= -golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= -golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= +golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= +golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/exp v0.0.0-20230321023759-10a507213a29 h1:ooxPy7fPvB4kwsA2h+iBNHkAbp/4JxTSwCmvdjEYmug= golang.org/x/exp v0.0.0-20230321023759-10a507213a29/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -389,14 +389,14 @@ golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= -golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek= -golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= +golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4= +golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -404,8 +404,8 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425163242-31fd60d6bfdc/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= From e9f45aaf2d35037fc785e7ea355aff9562a10ee7 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Wed, 20 Dec 2023 12:56:45 +0100 Subject: [PATCH 144/401] fix: support NULL metrics, don't collect them (#408) fix: support NULL metrics, don't collect them --- metric.go | 6 ++++-- query.go | 9 ++++++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/metric.go b/metric.go index 98dda3e9..691eeacd 100644 --- a/metric.go +++ b/metric.go @@ -83,8 +83,10 @@ func (mf MetricFamily) Collect(row map[string]any, ch chan<- Metric) { if mf.config.ValueLabel != "" { labelValues[len(labelValues)-1] = v } - value := row[v].(float64) - ch <- NewMetric(&mf, value, labelValues...) + value := row[v].(sql.NullFloat64) + if value.Valid { + ch <- NewMetric(&mf, value.Float64, labelValues...) + } } if mf.config.StaticValue != nil { value := *mf.config.StaticValue diff --git a/query.go b/query.go index bea352dd..931305d8 100644 --- a/query.go +++ b/query.go @@ -147,7 +147,7 @@ func (q *Query) scanDest(rows *sql.Rows) ([]any, errors.WithContext) { dest = append(dest, new(sql.NullString)) have[column] = true case columnTypeValue: - dest = append(dest, new(float64)) + dest = append(dest, new(sql.NullFloat64)) have[column] = true default: if column == "" { @@ -192,11 +192,14 @@ func (q *Query) scanRow(rows *sql.Rows, dest []any) (map[string]any, errors.With switch q.columnTypes[column] { case columnTypeKey: if !dest[i].(*sql.NullString).Valid { - klog.V(3).Infof("[%s] Key column %q is NULL, return empty string", q.logContext, column) + klog.V(3).Infof("[%s] Key column %q is NULL", q.logContext, column) } result[column] = *dest[i].(*sql.NullString) case columnTypeValue: - result[column] = *dest[i].(*float64) + if !dest[i].(*sql.NullFloat64).Valid { + klog.V(3).Infof("[%s] Value column %q is NULL", q.logContext, column) + } + result[column] = *dest[i].(*sql.NullFloat64) } } return result, nil From 373035dba73d312c07e6a1914f6112399e484506 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Dec 2023 16:56:42 +0100 Subject: [PATCH 145/401] deps: bump github.com/aws/aws-sdk-go-v2 from 1.23.5 to 1.24.0 (#410) Bumps [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) from 1.23.5 to 1.24.0. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.23.5...v1.24.0) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index b6d48780..88a64926 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.18 require ( github.com/ClickHouse/clickhouse-go v1.5.4 - github.com/aws/aws-sdk-go-v2 v1.23.5 + github.com/aws/aws-sdk-go-v2 v1.24.0 github.com/aws/aws-sdk-go-v2/config v1.25.11 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.25.2 github.com/go-sql-driver/mysql v1.7.1 @@ -52,7 +52,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/sso v1.18.2 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.2 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.26.2 // indirect - github.com/aws/smithy-go v1.18.1 // indirect + github.com/aws/smithy-go v1.19.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 // indirect diff --git a/go.sum b/go.sum index 3db7725c..ae3dddad 100644 --- a/go.sum +++ b/go.sum @@ -28,8 +28,8 @@ github.com/apache/arrow/go/v12 v12.0.1/go.mod h1:weuTY7JvTG/HDPtMQxEUp7pU73vkLWM github.com/apache/thrift v0.16.0 h1:qEy6UW60iVOlUy+b9ZR0d5WzUWYGOo4HfopoyBaNmoY= github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= github.com/aws/aws-sdk-go-v2 v1.17.7/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= -github.com/aws/aws-sdk-go-v2 v1.23.5 h1:xK6C4udTyDMd82RFvNkDQxtAd00xlzFUtX4fF2nMZyg= -github.com/aws/aws-sdk-go-v2 v1.23.5/go.mod h1:t3szzKfP0NeRU27uBFczDivYJjsmSnqI8kIvKyWb9ds= +github.com/aws/aws-sdk-go-v2 v1.24.0 h1:890+mqQ+hTpNuw0gGP6/4akolQkSToDJgHfQE7AwGuk= +github.com/aws/aws-sdk-go-v2 v1.24.0/go.mod h1:LNh45Br1YAkEKaAqvmE1m8FUx6a5b/V0oAKV7of29b4= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10/go.mod h1:VeTZetY5KRJLuD/7fkQXMU6Mw7H5m/KP2J5Iy9osMno= github.com/aws/aws-sdk-go-v2/config v1.18.19/go.mod h1:XvTmGMY8d52ougvakOv1RpiTLPz9dlG/OQHsKU/cMmY= @@ -78,8 +78,8 @@ github.com/aws/aws-sdk-go-v2/service/sts v1.18.7/go.mod h1:JuTnSoeePXmMVe9G8Ncjj github.com/aws/aws-sdk-go-v2/service/sts v1.26.2 h1:fFrLsy08wEbAisqW3KDl/cPHrF43GmV79zXB9EwJiZw= github.com/aws/aws-sdk-go-v2/service/sts v1.26.2/go.mod h1:7Ld9eTqocTvJqqJ5K/orbSDwmGcpRdlDiLjz2DO+SL8= github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= -github.com/aws/smithy-go v1.18.1 h1:pOdBTUfXNazOlxLrgeYalVnuTpKreACHtc62xLwIB3c= -github.com/aws/smithy-go v1.18.1/go.mod h1:NukqUGpCZIILqqiV0NIjeFh24kd/FAa4beRb6nbIUPE= +github.com/aws/smithy-go v1.19.0 h1:KWFKQV80DpP3vJrrA9sVAHQ5gc2z8i4EzrLhLlWXcBM= +github.com/aws/smithy-go v1.19.0/go.mod h1:NukqUGpCZIILqqiV0NIjeFh24kd/FAa4beRb6nbIUPE= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bkaradzic/go-lz4 v1.0.0 h1:RXc4wYsyz985CkXXeX04y4VnZFGG8Rd43pRaHsOXAKk= From 47247f123877b704cc802568eecf732b1f1d60d8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Dec 2023 17:07:40 +0100 Subject: [PATCH 146/401] deps: bump github.com/aws/aws-sdk-go-v2/config from 1.25.11 to 1.26.1 (#411) Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.25.11 to 1.26.1. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.25.11...config/v1.26.1) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/config dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 22 +++++++++++----------- go.sum | 44 ++++++++++++++++++++++---------------------- 2 files changed, 33 insertions(+), 33 deletions(-) diff --git a/go.mod b/go.mod index 88a64926..2519a6d5 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.18 require ( github.com/ClickHouse/clickhouse-go v1.5.4 github.com/aws/aws-sdk-go-v2 v1.24.0 - github.com/aws/aws-sdk-go-v2/config v1.25.11 + github.com/aws/aws-sdk-go-v2/config v1.26.1 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.25.2 github.com/go-sql-driver/mysql v1.7.1 github.com/jackc/pgx/v4 v4.18.1 @@ -37,21 +37,21 @@ require ( github.com/apache/arrow/go/v12 v12.0.1 // indirect github.com/apache/thrift v0.16.0 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.16.9 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.9 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.16.12 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.10 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.8 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.8 // indirect - github.com/aws/aws-sdk-go-v2/internal/ini v1.7.1 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.9 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.9 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.7.2 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.3 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4 // indirect github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.8 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.9 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 // indirect github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.18.2 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.2 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.26.2 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.18.5 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.5 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.26.5 // indirect github.com/aws/smithy-go v1.19.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect diff --git a/go.sum b/go.sum index ae3dddad..0f240b1c 100644 --- a/go.sum +++ b/go.sum @@ -33,35 +33,35 @@ github.com/aws/aws-sdk-go-v2 v1.24.0/go.mod h1:LNh45Br1YAkEKaAqvmE1m8FUx6a5b/V0o github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10/go.mod h1:VeTZetY5KRJLuD/7fkQXMU6Mw7H5m/KP2J5Iy9osMno= github.com/aws/aws-sdk-go-v2/config v1.18.19/go.mod h1:XvTmGMY8d52ougvakOv1RpiTLPz9dlG/OQHsKU/cMmY= -github.com/aws/aws-sdk-go-v2/config v1.25.11 h1:RWzp7jhPRliIcACefGkKp03L0Yofmd2p8M25kbiyvno= -github.com/aws/aws-sdk-go-v2/config v1.25.11/go.mod h1:BVUs0chMdygHsQtvaMyEOpW2GIW+ubrxJLgIz/JU29s= +github.com/aws/aws-sdk-go-v2/config v1.26.1 h1:z6DqMxclFGL3Zfo+4Q0rLnAZ6yVkzCRxhRMsiRQnD1o= +github.com/aws/aws-sdk-go-v2/config v1.26.1/go.mod h1:ZB+CuKHRbb5v5F0oJtGdhFTelmrxd4iWO1lf0rQwSAg= github.com/aws/aws-sdk-go-v2/credentials v1.13.18/go.mod h1:vnwlwjIe+3XJPBYKu1et30ZPABG3VaXJYr8ryohpIyM= -github.com/aws/aws-sdk-go-v2/credentials v1.16.9 h1:LQo3MUIOzod9JdUK+wxmSdgzLVYUbII3jXn3S/HJZU0= -github.com/aws/aws-sdk-go-v2/credentials v1.16.9/go.mod h1:R7mDuIJoCjH6TxGUc/cylE7Lp/o0bhKVoxdBThsjqCM= +github.com/aws/aws-sdk-go-v2/credentials v1.16.12 h1:v/WgB8NxprNvr5inKIiVVrXPuuTegM+K8nncFkr1usU= +github.com/aws/aws-sdk-go-v2/credentials v1.16.12/go.mod h1:X21k0FjEJe+/pauud82HYiQbEr9jRKY3kXEIQ4hXeTQ= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.1/go.mod h1:lfUx8puBRdM5lVVMQlwt2v+ofiG/X6Ms+dy0UkG/kXw= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.9 h1:FZVFahMyZle6WcogZCOxo6D/lkDA2lqKIn4/ueUmVXw= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.9/go.mod h1:kjq7REMIkxdtcEC9/4BVXjOsNY5isz6jQbEgk6osRTU= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.10 h1:w98BT5w+ao1/r5sUuiH6JkVzjowOKeOJRHERyy1vh58= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.10/go.mod h1:K2WGI7vUvkIv1HoNbfBA1bvIZ+9kL3YVmWxeKuLQsiw= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 h1:E3Y+OfzOK1+rmRo/K2G0ml8Vs+Xqk0kOnf4nS0kUtBc= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59/go.mod h1:1M4PLSBUVfBI0aP+C9XI7SM6kZPCGYyI6izWz0TGprE= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.31/go.mod h1:QT0BqUvX1Bh2ABdTGnjqEjvjzrCfIniM9Sc8zn9Yndo= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.8 h1:8GVZIR0y6JRIUNSYI1xAMF4HDfV8H/bOsZ/8AD/uY5Q= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.8/go.mod h1:rwBfu0SoUkBUZndVgPZKAD9Y2JigaZtRP68unRiYToQ= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.9 h1:v+HbZaCGmOwnTTVS86Fleq0vPzOd7tnJGbFhP0stNLs= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.9/go.mod h1:Xjqy+Nyj7VDLBtCMkQYOw1QYfAEZCVLrfI0ezve8wd4= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.25/go.mod h1:zBHOPwhBc3FlQjQJE/D3IfPWiWaQmT06Vq9aNukDo0k= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.8 h1:ZE2ds/qeBkhk3yqYvS3CDCFNvd9ir5hMjlVStLZWrvM= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.8/go.mod h1:/lAPPymDYL023+TS6DJmjuL42nxix2AvEvfjqOBRODk= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.9 h1:N94sVhRACtXyVcjXxrwK1SKFIJrA9pOJ5yu2eSHnmls= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.9/go.mod h1:hqamLz7g1/4EJP+GH5NBhcUMLjW+gKLQabgyz6/7WAU= github.com/aws/aws-sdk-go-v2/internal/ini v1.3.32/go.mod h1:XGhIBZDEgfqmFIugclZ6FU7v75nHhBDtzuB4xB/tEi4= -github.com/aws/aws-sdk-go-v2/internal/ini v1.7.1 h1:uR9lXYjdPX0xY+NhvaJ4dD8rpSRz5VY81ccIIoNG+lw= -github.com/aws/aws-sdk-go-v2/internal/ini v1.7.1/go.mod h1:6fQQgfuGmw8Al/3M2IgIllycxV7ZW7WCdVSqfBeUiCY= +github.com/aws/aws-sdk-go-v2/internal/ini v1.7.2 h1:GrSw8s0Gs/5zZ0SX+gX4zQjRnRsMJDJ2sLur1gRBhEM= +github.com/aws/aws-sdk-go-v2/internal/ini v1.7.2/go.mod h1:6fQQgfuGmw8Al/3M2IgIllycxV7ZW7WCdVSqfBeUiCY= github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 h1:DWYZIsyqagnWL00f8M/SOr9fN063OEQWn9LLTbdYXsk= github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23/go.mod h1:uIiFgURZbACBEQJfqTZPb/jxO7R+9LeoHUFudtIdeQI= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11/go.mod h1:iV4q2hsqtNECrfmlXyord9u4zyuFEJX9eLgLpSPzWA8= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.3 h1:e3PCNeEaev/ZF01cQyNZgmYE9oYYePIMJs2mWSKG514= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.3/go.mod h1:gIeeNyaL8tIEqZrzAnTeyhHcE0yysCtcaP+N9kxLZ+E= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4 h1:/b31bi3YVNlkzkBrm9LfpaKoaYZUxIAj4sHfOTmLfqw= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4/go.mod h1:2aGXHFmbInwgP9ZfpmdIfOELL79zhdNYNmReK8qDfdQ= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26 h1:CeuSeq/8FnYpPtnuIeLQEEvDv9zUjneuYi8EghMBdwQ= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26/go.mod h1:2UqAAwMUXKeRkAHIlDJqvMVgOWkUi/AUXPk/YIe+Dg4= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.25/go.mod h1:/95IA+0lMnzW6XzqYJRpjjsAbKEORVeO0anQqjd2CNU= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.8 h1:EamsKe+ZjkOQjDdHd86/JCEucjFKQ9T0atWKO4s2Lgs= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.8/go.mod h1:Q0vV3/csTpbkfKLI5Sb56cJQTCTtJ0ixdb7P+Wedqiw= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.9 h1:Nf2sHxjMJR8CSImIVCONRi4g0Su3J+TSTbS7G0pUeMU= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.9/go.mod h1:idky4TER38YIjr2cADF1/ugFMKvZV7p//pVeV5LZbF0= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 h1:e2ooMhpYGhDnBfSvIyusvAwX7KexuZaHbQY2Dyei7VU= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0/go.mod h1:bh2E0CXKZsQN+faiKVqC40vfNMAWheoULBCnEgO9K+8= github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 h1:B1G2pSPvbAtQjilPq+Y7jLIzCOwKzuVEl+aBBaNG0AQ= @@ -69,14 +69,14 @@ github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0/go.mod h1:ncltU6n4Nof5uJttDtcNQ5 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.25.2 h1:JKbfiLwEqJp8zaOAOn6AVSMS96gdwP3TjBMvZYsbxqE= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.25.2/go.mod h1:pbBOMK8UicdDK11zsPSGbpFh9Xwbd1oD3t7pSxXgNxU= github.com/aws/aws-sdk-go-v2/service/sso v1.12.6/go.mod h1:Y1VOmit/Fn6Tz1uFAeCO6Q7M2fmfXSCLeL5INVYsLuY= -github.com/aws/aws-sdk-go-v2/service/sso v1.18.2 h1:xJPydhNm0Hiqct5TVKEuHG7weC0+sOs4MUnd7A5n5F4= -github.com/aws/aws-sdk-go-v2/service/sso v1.18.2/go.mod h1:zxk6y1X2KXThESWMS5CrKRvISD8mbIMab6nZrCGxDG0= +github.com/aws/aws-sdk-go-v2/service/sso v1.18.5 h1:ldSFWz9tEHAwHNmjx2Cvy1MjP5/L9kNoR0skc6wyOOM= +github.com/aws/aws-sdk-go-v2/service/sso v1.18.5/go.mod h1:CaFfXLYL376jgbP7VKC96uFcU8Rlavak0UlAwk1Dlhc= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.6/go.mod h1:Lh/bc9XUf8CfOY6Jp5aIkQtN+j1mc+nExc+KXj9jx2s= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.2 h1:8dU9zqA77C5egbU6yd4hFLaiIdPv3rU+6cp7sz5FjCU= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.2/go.mod h1:7Lt5mjQ8x5rVdKqg+sKKDeuwoszDJIIPmkd8BVsEdS0= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.5 h1:2k9KmFawS63euAkY4/ixVNsYYwrwnd5fIvgEKkfZFNM= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.5/go.mod h1:W+nd4wWDVkSUIox9bacmkBP5NMFQeTJ/xqNabpzSR38= github.com/aws/aws-sdk-go-v2/service/sts v1.18.7/go.mod h1:JuTnSoeePXmMVe9G8NcjjwgOKEfZ4cOjMuT2IBT/2eI= -github.com/aws/aws-sdk-go-v2/service/sts v1.26.2 h1:fFrLsy08wEbAisqW3KDl/cPHrF43GmV79zXB9EwJiZw= -github.com/aws/aws-sdk-go-v2/service/sts v1.26.2/go.mod h1:7Ld9eTqocTvJqqJ5K/orbSDwmGcpRdlDiLjz2DO+SL8= +github.com/aws/aws-sdk-go-v2/service/sts v1.26.5 h1:5UYvv8JUvllZsRnfrcMQ+hJ9jNICmcgKPAO1CER25Wg= +github.com/aws/aws-sdk-go-v2/service/sts v1.26.5/go.mod h1:XX5gh4CB7wAs4KhcF46G6C8a2i7eupU19dcAAE+EydU= github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= github.com/aws/smithy-go v1.19.0 h1:KWFKQV80DpP3vJrrA9sVAHQ5gc2z8i4EzrLhLlWXcBM= github.com/aws/smithy-go v1.19.0/go.mod h1:NukqUGpCZIILqqiV0NIjeFh24kd/FAa4beRb6nbIUPE= From 25438d760dac51cff9264fd5dead50e9c0ea87a6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Dec 2023 17:08:01 +0100 Subject: [PATCH 147/401] deps: bump github.com/prometheus/exporter-toolkit from 0.10.0 to 0.11.0 (#413) Bumps [github.com/prometheus/exporter-toolkit](https://github.com/prometheus/exporter-toolkit) from 0.10.0 to 0.11.0. - [Release notes](https://github.com/prometheus/exporter-toolkit/releases) - [Changelog](https://github.com/prometheus/exporter-toolkit/blob/master/CHANGELOG.md) - [Commits](https://github.com/prometheus/exporter-toolkit/compare/v0.10.0...v0.11.0) --- updated-dependencies: - dependency-name: github.com/prometheus/exporter-toolkit dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index 2519a6d5..78a183b6 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( github.com/prometheus/client_golang v1.17.0 github.com/prometheus/client_model v0.5.0 github.com/prometheus/common v0.45.0 - github.com/prometheus/exporter-toolkit v0.10.0 + github.com/prometheus/exporter-toolkit v0.11.0 github.com/snowflakedb/gosnowflake v1.7.0 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.18.3 @@ -107,7 +107,7 @@ require ( golang.org/x/mod v0.8.0 // indirect golang.org/x/net v0.17.0 // indirect golang.org/x/oauth2 v0.12.0 // indirect - golang.org/x/sync v0.3.0 // indirect + golang.org/x/sync v0.5.0 // indirect golang.org/x/sys v0.15.0 // indirect golang.org/x/term v0.15.0 // indirect golang.org/x/text v0.14.0 // indirect diff --git a/go.sum b/go.sum index 0f240b1c..015fc6c5 100644 --- a/go.sum +++ b/go.sum @@ -227,8 +227,8 @@ github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORN github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= @@ -274,8 +274,8 @@ github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cY github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= github.com/prometheus/common v0.45.0 h1:2BGz0eBc2hdMDLnO/8n0jeB3oPrt2D08CekT0lneoxM= github.com/prometheus/common v0.45.0/go.mod h1:YJmSTw9BoKxJplESWWxlbyttQR4uaEcGyv9MZjVOJsY= -github.com/prometheus/exporter-toolkit v0.10.0 h1:yOAzZTi4M22ZzVxD+fhy1URTuNRj/36uQJJ5S8IPza8= -github.com/prometheus/exporter-toolkit v0.10.0/go.mod h1:+sVFzuvV5JDyw+Ih6p3zFxZNVnKQa3x5qPmDSiPu4ZY= +github.com/prometheus/exporter-toolkit v0.11.0 h1:yNTsuZ0aNCNFQ3aFTD2uhPOvr4iD7fdBvKPAEGkNf+g= +github.com/prometheus/exporter-toolkit v0.11.0/go.mod h1:BVnENhnNecpwoTLiABx7mrPB/OLRIgN74qlQbV+FK1Q= github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= @@ -368,8 +368,8 @@ golang.org/x/oauth2 v0.12.0/go.mod h1:A74bZ3aGXgCY0qaIC9Ahg6Lglin4AMAco8cIv9baba golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= -golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= +golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= From 12a25a068a8beebb30b5186d852259c9e8022d98 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Dec 2023 22:02:14 +0100 Subject: [PATCH 148/401] deps: bump github.com/snowflakedb/gosnowflake from 1.7.0 to 1.7.1 (#414) Bumps [github.com/snowflakedb/gosnowflake](https://github.com/snowflakedb/gosnowflake) from 1.7.0 to 1.7.1. - [Release notes](https://github.com/snowflakedb/gosnowflake/releases) - [Changelog](https://github.com/snowflakedb/gosnowflake/blob/master/release.go) - [Commits](https://github.com/snowflakedb/gosnowflake/compare/v1.7.0...v1.7.1) --- updated-dependencies: - dependency-name: github.com/snowflakedb/gosnowflake dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 78a183b6..f068a4a3 100644 --- a/go.mod +++ b/go.mod @@ -16,7 +16,7 @@ require ( github.com/prometheus/client_model v0.5.0 github.com/prometheus/common v0.45.0 github.com/prometheus/exporter-toolkit v0.11.0 - github.com/snowflakedb/gosnowflake v1.7.0 + github.com/snowflakedb/gosnowflake v1.7.1 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.18.3 google.golang.org/protobuf v1.31.0 @@ -105,7 +105,7 @@ require ( golang.org/x/crypto v0.17.0 // indirect golang.org/x/exp v0.0.0-20230321023759-10a507213a29 // indirect golang.org/x/mod v0.8.0 // indirect - golang.org/x/net v0.17.0 // indirect + golang.org/x/net v0.18.0 // indirect golang.org/x/oauth2 v0.12.0 // indirect golang.org/x/sync v0.5.0 // indirect golang.org/x/sys v0.15.0 // indirect diff --git a/go.sum b/go.sum index 015fc6c5..6c7db234 100644 --- a/go.sum +++ b/go.sum @@ -294,8 +294,8 @@ github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMB github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/snowflakedb/gosnowflake v1.7.0 h1:tB6SRddD5Tzihb8eCKo1Un9QxqMNq1WLNlYOJ/4uPCQ= -github.com/snowflakedb/gosnowflake v1.7.0/go.mod h1:KfO4F7bk+aXPUIvBqYxvPhxLlu2/w4TtSC8Rw/yr5Mg= +github.com/snowflakedb/gosnowflake v1.7.1 h1:c9JjyjjDlvxex9ud71TwKL+Wu54Vfx+39h4DAwbIdqU= +github.com/snowflakedb/gosnowflake v1.7.1/go.mod h1:JI3eRZL8CpimPek6CJO0aTbDQjDGOt7Rxv9A/ti4f5c= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= @@ -361,8 +361,8 @@ golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.18.0 h1:mIYleuAkSbHh0tCv7RvjL3F6ZVbLjq4+R7zbOn3Kokg= +golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= golang.org/x/oauth2 v0.12.0 h1:smVPGxink+n1ZI5pkQa8y6fZT0RW0MgCO5bFpepy4B4= golang.org/x/oauth2 v0.12.0/go.mod h1:A74bZ3aGXgCY0qaIC9Ahg6Lglin4AMAco8cIv9baba4= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= From 659ca22e890c88d7b647dcb87b19ef8edfbb0d8a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Dec 2023 22:08:37 +0100 Subject: [PATCH 149/401] deps: bump github.com/xo/dburl from 0.18.3 to 0.20.0 (#412) Bumps [github.com/xo/dburl](https://github.com/xo/dburl) from 0.18.3 to 0.20.0. - [Release notes](https://github.com/xo/dburl/releases) - [Commits](https://github.com/xo/dburl/compare/v0.18.3...v0.20.0) --- updated-dependencies: - dependency-name: github.com/xo/dburl dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index f068a4a3..c94ed1d7 100644 --- a/go.mod +++ b/go.mod @@ -18,7 +18,7 @@ require ( github.com/prometheus/exporter-toolkit v0.11.0 github.com/snowflakedb/gosnowflake v1.7.1 github.com/vertica/vertica-sql-go v1.3.3 - github.com/xo/dburl v0.18.3 + github.com/xo/dburl v0.20.0 google.golang.org/protobuf v1.31.0 gopkg.in/yaml.v3 v3.0.1 k8s.io/klog/v2 v2.70.1 diff --git a/go.sum b/go.sum index 6c7db234..6dd10ae8 100644 --- a/go.sum +++ b/go.sum @@ -313,8 +313,8 @@ github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/vertica/vertica-sql-go v1.3.3 h1:fL+FKEAEy5ONmsvya2WH5T8bhkvY27y/Ik3ReR2T+Qw= github.com/vertica/vertica-sql-go v1.3.3/go.mod h1:jnn2GFuv+O2Jcjktb7zyc4Utlbu9YVqpHH/lx63+1M4= -github.com/xo/dburl v0.18.3 h1:z271VmL/pk00rAF+0JrwrsOLyQcEBqqjyH3qX7eeJIE= -github.com/xo/dburl v0.18.3/go.mod h1:B7/G9FGungw6ighV8xJNwWYQPMfn3gsi2sn5SE8Bzco= +github.com/xo/dburl v0.20.0 h1:v601OhM9J4Zh56R270ncM9HRgoxp39tf9+nt5ft9UD0= +github.com/xo/dburl v0.20.0/go.mod h1:B7/G9FGungw6ighV8xJNwWYQPMfn3gsi2sn5SE8Bzco= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= From 3cf438fcb366e94669e9fb5f5d032abe1b7a545d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Dec 2023 22:21:06 +0100 Subject: [PATCH 150/401] deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager from 1.25.2 to 1.25.6 (#416) deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager Bumps [github.com/aws/aws-sdk-go-v2/service/secretsmanager](https://github.com/aws/aws-sdk-go-v2) from 1.25.2 to 1.25.6. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.25.2...config/v1.25.6) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/service/secretsmanager dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index c94ed1d7..261a4360 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/ClickHouse/clickhouse-go v1.5.4 github.com/aws/aws-sdk-go-v2 v1.24.0 github.com/aws/aws-sdk-go-v2/config v1.26.1 - github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.25.2 + github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.25.6 github.com/go-sql-driver/mysql v1.7.1 github.com/jackc/pgx/v4 v4.18.1 github.com/kardianos/minwinsvc v1.0.2 diff --git a/go.sum b/go.sum index 6dd10ae8..b7122f67 100644 --- a/go.sum +++ b/go.sum @@ -66,8 +66,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 h1:e2ooMhpYGhDnBf github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0/go.mod h1:bh2E0CXKZsQN+faiKVqC40vfNMAWheoULBCnEgO9K+8= github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 h1:B1G2pSPvbAtQjilPq+Y7jLIzCOwKzuVEl+aBBaNG0AQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0/go.mod h1:ncltU6n4Nof5uJttDtcNQ537uNuwYqsZZQcpkd2/GUQ= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.25.2 h1:JKbfiLwEqJp8zaOAOn6AVSMS96gdwP3TjBMvZYsbxqE= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.25.2/go.mod h1:pbBOMK8UicdDK11zsPSGbpFh9Xwbd1oD3t7pSxXgNxU= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.25.6 h1:L9Cu6ejuozkr5ipYnaXuRBZoyaFIIXZiurN4gUrQL+U= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.25.6/go.mod h1:4Ae1NCLK6ghmjzd45Tc33GgCKhUWD2ORAlULtMO1Cbs= github.com/aws/aws-sdk-go-v2/service/sso v1.12.6/go.mod h1:Y1VOmit/Fn6Tz1uFAeCO6Q7M2fmfXSCLeL5INVYsLuY= github.com/aws/aws-sdk-go-v2/service/sso v1.18.5 h1:ldSFWz9tEHAwHNmjx2Cvy1MjP5/L9kNoR0skc6wyOOM= github.com/aws/aws-sdk-go-v2/service/sso v1.18.5/go.mod h1:CaFfXLYL376jgbP7VKC96uFcU8Rlavak0UlAwk1Dlhc= From 1a8ae500958e13b66a9663bdfc552fe3cc0076a7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Dec 2023 22:26:20 +0100 Subject: [PATCH 151/401] deps: bump github.com/aws/aws-sdk-go-v2/config from 1.26.1 to 1.26.2 (#415) Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.26.1 to 1.26.2. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.26.1...config/v1.26.2) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/config dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index 261a4360..21adddf3 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.18 require ( github.com/ClickHouse/clickhouse-go v1.5.4 github.com/aws/aws-sdk-go-v2 v1.24.0 - github.com/aws/aws-sdk-go-v2/config v1.26.1 + github.com/aws/aws-sdk-go-v2/config v1.26.2 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.25.6 github.com/go-sql-driver/mysql v1.7.1 github.com/jackc/pgx/v4 v4.18.1 @@ -37,7 +37,7 @@ require ( github.com/apache/arrow/go/v12 v12.0.1 // indirect github.com/apache/thrift v0.16.0 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.16.12 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.16.13 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.10 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.9 // indirect @@ -51,7 +51,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 // indirect github.com/aws/aws-sdk-go-v2/service/sso v1.18.5 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.5 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.26.5 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.26.6 // indirect github.com/aws/smithy-go v1.19.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect diff --git a/go.sum b/go.sum index b7122f67..c3965b8d 100644 --- a/go.sum +++ b/go.sum @@ -33,11 +33,11 @@ github.com/aws/aws-sdk-go-v2 v1.24.0/go.mod h1:LNh45Br1YAkEKaAqvmE1m8FUx6a5b/V0o github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10/go.mod h1:VeTZetY5KRJLuD/7fkQXMU6Mw7H5m/KP2J5Iy9osMno= github.com/aws/aws-sdk-go-v2/config v1.18.19/go.mod h1:XvTmGMY8d52ougvakOv1RpiTLPz9dlG/OQHsKU/cMmY= -github.com/aws/aws-sdk-go-v2/config v1.26.1 h1:z6DqMxclFGL3Zfo+4Q0rLnAZ6yVkzCRxhRMsiRQnD1o= -github.com/aws/aws-sdk-go-v2/config v1.26.1/go.mod h1:ZB+CuKHRbb5v5F0oJtGdhFTelmrxd4iWO1lf0rQwSAg= +github.com/aws/aws-sdk-go-v2/config v1.26.2 h1:+RWLEIWQIGgrz2pBPAUoGgNGs1TOyF4Hml7hCnYj2jc= +github.com/aws/aws-sdk-go-v2/config v1.26.2/go.mod h1:l6xqvUxt0Oj7PI/SUXYLNyZ9T/yBPn3YTQcJLLOdtR8= github.com/aws/aws-sdk-go-v2/credentials v1.13.18/go.mod h1:vnwlwjIe+3XJPBYKu1et30ZPABG3VaXJYr8ryohpIyM= -github.com/aws/aws-sdk-go-v2/credentials v1.16.12 h1:v/WgB8NxprNvr5inKIiVVrXPuuTegM+K8nncFkr1usU= -github.com/aws/aws-sdk-go-v2/credentials v1.16.12/go.mod h1:X21k0FjEJe+/pauud82HYiQbEr9jRKY3kXEIQ4hXeTQ= +github.com/aws/aws-sdk-go-v2/credentials v1.16.13 h1:WLABQ4Cp4vXtXfOWOS3MEZKr6AAYUpMczLhgKtAjQ/8= +github.com/aws/aws-sdk-go-v2/credentials v1.16.13/go.mod h1:Qg6x82FXwW0sJHzYruxGiuApNo31UEtJvXVSZAXeWiw= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.1/go.mod h1:lfUx8puBRdM5lVVMQlwt2v+ofiG/X6Ms+dy0UkG/kXw= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.10 h1:w98BT5w+ao1/r5sUuiH6JkVzjowOKeOJRHERyy1vh58= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.10/go.mod h1:K2WGI7vUvkIv1HoNbfBA1bvIZ+9kL3YVmWxeKuLQsiw= @@ -75,8 +75,8 @@ github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.6/go.mod h1:Lh/bc9XUf8CfOY6Jp github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.5 h1:2k9KmFawS63euAkY4/ixVNsYYwrwnd5fIvgEKkfZFNM= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.5/go.mod h1:W+nd4wWDVkSUIox9bacmkBP5NMFQeTJ/xqNabpzSR38= github.com/aws/aws-sdk-go-v2/service/sts v1.18.7/go.mod h1:JuTnSoeePXmMVe9G8NcjjwgOKEfZ4cOjMuT2IBT/2eI= -github.com/aws/aws-sdk-go-v2/service/sts v1.26.5 h1:5UYvv8JUvllZsRnfrcMQ+hJ9jNICmcgKPAO1CER25Wg= -github.com/aws/aws-sdk-go-v2/service/sts v1.26.5/go.mod h1:XX5gh4CB7wAs4KhcF46G6C8a2i7eupU19dcAAE+EydU= +github.com/aws/aws-sdk-go-v2/service/sts v1.26.6 h1:HJeiuZ2fldpd0WqngyMR6KW7ofkXNLyOaHwEIGm39Cs= +github.com/aws/aws-sdk-go-v2/service/sts v1.26.6/go.mod h1:XX5gh4CB7wAs4KhcF46G6C8a2i7eupU19dcAAE+EydU= github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= github.com/aws/smithy-go v1.19.0 h1:KWFKQV80DpP3vJrrA9sVAHQ5gc2z8i4EzrLhLlWXcBM= github.com/aws/smithy-go v1.19.0/go.mod h1:NukqUGpCZIILqqiV0NIjeFh24kd/FAa4beRb6nbIUPE= From 8fdf8674fe2e05ccccc141eec6f25352189c6285 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 22 Dec 2023 15:58:46 +0100 Subject: [PATCH 152/401] deps: bump github.com/dvsekhvalnov/jose2go from 1.5.0 to 1.6.0 (#417) Bumps [github.com/dvsekhvalnov/jose2go](https://github.com/dvsekhvalnov/jose2go) from 1.5.0 to 1.6.0. - [Commits](https://github.com/dvsekhvalnov/jose2go/compare/v1.5...v1.6.0) --- updated-dependencies: - dependency-name: github.com/dvsekhvalnov/jose2go dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 21adddf3..053ec0f4 100644 --- a/go.mod +++ b/go.mod @@ -59,7 +59,7 @@ require ( github.com/coreos/go-systemd/v22 v22.5.0 // indirect github.com/danieljoos/wincred v1.1.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/dvsekhvalnov/jose2go v1.5.0 // indirect + github.com/dvsekhvalnov/jose2go v1.6.0 // indirect github.com/elastic/go-sysinfo v1.8.1 // indirect github.com/elastic/go-windows v1.0.0 // indirect github.com/form3tech-oss/jwt-go v3.2.5+incompatible // indirect diff --git a/go.sum b/go.sum index c3965b8d..85daf9a7 100644 --- a/go.sum +++ b/go.sum @@ -102,8 +102,8 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI= -github.com/dvsekhvalnov/jose2go v1.5.0 h1:3j8ya4Z4kMCwT5nXIKFSV84YS+HdqSSO0VsTQxaLAeM= -github.com/dvsekhvalnov/jose2go v1.5.0/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB/mPZadG+mhXU= +github.com/dvsekhvalnov/jose2go v1.6.0 h1:Y9gnSnP4qEI0+/uQkHvFXeD2PLPJeXEL+ySMEA2EjTY= +github.com/dvsekhvalnov/jose2go v1.6.0/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB/mPZadG+mhXU= github.com/elastic/go-sysinfo v1.8.1 h1:4Yhj+HdV6WjbCRgGdZpPJ8lZQlXZLKDAeIkmQ/VRvi4= github.com/elastic/go-sysinfo v1.8.1/go.mod h1:JfllUnzoQV/JRYymbH3dO1yggI3mV2oTKSXsDHM+uIM= github.com/elastic/go-windows v1.0.0 h1:qLURgZFkkrYyTTkvYpsZIgf83AUsdIHfvlJaqaZ7aSY= From 938fd8ebf851c91c2d880f6a97a0f3bb60ff48f1 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Sun, 24 Dec 2023 22:31:09 +0100 Subject: [PATCH 153/401] Bump up version to 0.13.1 (#418) --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 54d1a4f2..c317a918 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.13.0 +0.13.1 From b3153baa55c7538db17f50c3840ca7a714463899 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Sun, 24 Dec 2023 23:48:52 +0100 Subject: [PATCH 154/401] Bump up helm chart to 0.2.5 (#419) --- helm/Chart.yaml | 4 ++-- helm/README.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index a8d9c2e1..3d75ec7a 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: sql-exporter description: Database agnostic SQL exporter for Prometheus type: application -version: 0.2.4 -appVersion: 0.13.0 +version: 0.2.5 +appVersion: 0.13.1 keywords: - exporter - servicemonitor diff --git a/helm/README.md b/helm/README.md index 2fb0f0fa..60115c81 100644 --- a/helm/README.md +++ b/helm/README.md @@ -1,6 +1,6 @@ # sql-exporter -![Version: 0.2.4](https://img.shields.io/badge/Version-0.2.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.13.0](https://img.shields.io/badge/AppVersion-0.13.0-informational?style=flat-square) +![Version: 0.2.5](https://img.shields.io/badge/Version-0.2.5-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.13.1](https://img.shields.io/badge/AppVersion-0.13.1-informational?style=flat-square) Database agnostic SQL exporter for Prometheus From adb6364e23df4e71c983a01678cc34d781ba2047 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Tue, 26 Dec 2023 14:45:34 +0100 Subject: [PATCH 155/401] docs: Update copyright details [skip ci] --- LICENSE | 1 + 1 file changed, 1 insertion(+) diff --git a/LICENSE b/LICENSE index 89ad7d92..97f45ee8 100644 --- a/LICENSE +++ b/LICENSE @@ -1,5 +1,6 @@ MIT License +Copyright (c) 2020 Sergei Zyubin Copyright (c) 2017 Alin Sinpalean Permission is hereby granted, free of charge, to any person obtaining a copy From a641f1907d0a9161f9cf129b4d81b3a98413a5c0 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Fri, 29 Dec 2023 15:11:59 +0100 Subject: [PATCH 156/401] deps: update klog-gokit to v3.4.0 (#420) --- go.mod | 3 ++- go.sum | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 053ec0f4..cce1963c 100644 --- a/go.mod +++ b/go.mod @@ -66,6 +66,7 @@ require ( github.com/gabriel-vasile/mimetype v1.4.2 // indirect github.com/go-kit/log v0.2.1 // indirect github.com/go-logfmt/logfmt v0.5.1 // indirect + github.com/go-logr/logr v1.4.1 // indirect github.com/goccy/go-json v0.10.0 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/golang-jwt/jwt/v5 v5.0.0 // indirect @@ -118,4 +119,4 @@ require ( howett.net/plist v0.0.0-20181124034731-591f970eefbb // indirect ) -replace k8s.io/klog/v2 => github.com/simonpasquier/klog-gokit/v3 v3.3.0 +replace k8s.io/klog/v2 => github.com/simonpasquier/klog-gokit/v3 v3.4.0 diff --git a/go.sum b/go.sum index 85daf9a7..ccf615f4 100644 --- a/go.sum +++ b/go.sum @@ -118,6 +118,8 @@ github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBj github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA= github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= +github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= +github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.7.1 h1:lUIinVbN1DY0xBg0eMOzmmtGoHwWBbvnWubQUrtU8EI= github.com/go-sql-driver/mysql v1.7.1/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= @@ -288,8 +290,8 @@ github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdh github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= github.com/shopspring/decimal v1.2.0 h1:abSATXmQEYyShuxI4/vyW3tV1MrKAJzCZ/0zLUXYbsQ= github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= -github.com/simonpasquier/klog-gokit/v3 v3.3.0 h1:HMzH999kO5gEgJTaWWO+xjncW5oycspcsBnjn9b853Q= -github.com/simonpasquier/klog-gokit/v3 v3.3.0/go.mod h1:uSbnWC3T7kt1dQyY9sjv0Ao1SehMAJdVnUNSKhjaDsg= +github.com/simonpasquier/klog-gokit/v3 v3.4.0 h1:2eD2INbzUHuGNynPP86BCB8H6Lwfp6wlkOcuyTr3VWM= +github.com/simonpasquier/klog-gokit/v3 v3.4.0/go.mod h1:RREVB5Cc6yYHsweRfhUyM1ZP+Odb8ehxLfY8jaiqvjg= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= From 1577f806154a1a0165a8793d2738bea7d1c6646b Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Fri, 29 Dec 2023 15:25:52 +0100 Subject: [PATCH 157/401] fix: nil dereference on wrong log level values, cleanup (#421) --- cmd/sql_exporter/main.go | 23 ++++++++++++----------- config/config_test.go | 8 ++++---- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/cmd/sql_exporter/main.go b/cmd/sql_exporter/main.go index 187cf23f..ce05fc67 100644 --- a/cmd/sql_exporter/main.go +++ b/cmd/sql_exporter/main.go @@ -52,9 +52,20 @@ func main() { } flag.Parse() + // Show version and exit. + if *showVersion { + fmt.Println(version.Print(appName)) + os.Exit(0) + } + + // Setup logging. promlogConfig := &promlog.Config{} promlogConfig.Level = &promlog.AllowedLevel{} - _ = promlogConfig.Level.Set(*logLevel) + err := promlogConfig.Level.Set(*logLevel) + if err != nil { + fmt.Printf("Error initializing exporter: %s\n", err) + os.Exit(1) + } if *logFormatJSON { promlogConfig.Format = &promlog.AllowedFormat{} _ = promlogConfig.Format.Set("json") @@ -66,21 +77,11 @@ func main() { klog.SetLogger(logger) klog.ClampLevel(debugMaxLevel) - // Override --alsologtostderr default value. - if alsoLogToStderr := flag.Lookup("alsologtostderr"); alsoLogToStderr != nil { - alsoLogToStderr.DefValue = "true" - _ = alsoLogToStderr.Value.Set("true") - } // Override the config.file default with the SQLEXPORTER_CONFIG environment variable if set. if val, ok := os.LookupEnv(envConfigFile); ok { *configFile = val } - if *showVersion { - fmt.Println(version.Print(appName)) - os.Exit(0) - } - klog.Warningf("Starting SQL exporter %s %s", version.Info(), version.BuildContext()) exporter, err := sql_exporter.NewExporter(*configFile) diff --git a/config/config_test.go b/config/config_test.go index efef5ac4..864ae66e 100644 --- a/config/config_test.go +++ b/config/config_test.go @@ -7,10 +7,10 @@ import ( func TestResolveCollectorRefs(t *testing.T) { colls := map[string]*CollectorConfig{ - "a": &CollectorConfig{Name: "a"}, - "b": &CollectorConfig{Name: "b"}, - "c": &CollectorConfig{Name: "b"}, - "aa": &CollectorConfig{Name: "aa"}, + "a": {Name: "a"}, + "b": {Name: "b"}, + "c": {Name: "b"}, + "aa": {Name: "aa"}, } t.Run("NoGlobbing", func(t *testing.T) { From 6b059b1f101a574fd4b13a3c39b5764fcfe493bf Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Fri, 29 Dec 2023 15:42:13 +0100 Subject: [PATCH 158/401] fix: add flag to ignore results with missing values (#422) --- cmd/sql_exporter/main.go | 1 + config/config.go | 7 ++++--- query.go | 4 ++++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/cmd/sql_exporter/main.go b/cmd/sql_exporter/main.go index ce05fc67..ca3512cc 100644 --- a/cmd/sql_exporter/main.go +++ b/cmd/sql_exporter/main.go @@ -41,6 +41,7 @@ var ( func init() { prometheus.MustRegister(version.NewCollector("sql_exporter")) flag.BoolVar(&cfg.EnablePing, "config.enable-ping", true, "Enable ping for targets") + flag.BoolVar(&cfg.IgnoreMissingVals, "config.ignore-missing-values", false, "[EXPERIMENTAL] Ignore results with missing values for the requested columns") flag.StringVar(&cfg.DsnOverride, "config.data-source-name", "", "Data source name to override the value in the configuration file with") flag.StringVar(&cfg.TargetLabel, "config.target-label", "target", "Target label name") } diff --git a/config/config.go b/config/config.go index aa8381e1..5bec7f5c 100644 --- a/config/config.go +++ b/config/config.go @@ -26,9 +26,10 @@ const EnvDsnOverride = "SQLEXPORTER_TARGET_DSN" const MaxInt32 int = 1<<31 - 1 var ( - EnablePing bool - DsnOverride string - TargetLabel string + EnablePing bool + IgnoreMissingVals bool + DsnOverride string + TargetLabel string ) // Load attempts to parse the given config file and return a Config object. diff --git a/query.go b/query.go index 931305d8..67d56f5b 100644 --- a/query.go +++ b/query.go @@ -89,6 +89,10 @@ func (q *Query) Collect(ctx context.Context, conn *sql.DB, ch chan<- Metric) { dest, err := q.scanDest(rows) if err != nil { + if config.IgnoreMissingVals { + klog.V(3).Info(err) + return + } ch <- NewInvalidMetric(err) return } From 7bccfb30fe0f84140f04514384cfeb241ff89397 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Fri, 29 Dec 2023 17:46:53 +0100 Subject: [PATCH 159/401] refactor: split config.go, break down long functions (#423) --- config/collector_config.go | 62 +++++ config/config.go | 506 ------------------------------------- config/global_config.go | 45 ++++ config/job_config.go | 112 ++++++++ config/metric_config.go | 138 ++++++++++ config/query_config.go | 36 +++ config/secret_config.go | 18 ++ config/target_config.go | 96 +++++++ config/util.go | 71 ++++++ 9 files changed, 578 insertions(+), 506 deletions(-) create mode 100644 config/collector_config.go create mode 100644 config/global_config.go create mode 100644 config/job_config.go create mode 100644 config/metric_config.go create mode 100644 config/query_config.go create mode 100644 config/secret_config.go create mode 100644 config/target_config.go create mode 100644 config/util.go diff --git a/config/collector_config.go b/config/collector_config.go new file mode 100644 index 00000000..4385ad22 --- /dev/null +++ b/config/collector_config.go @@ -0,0 +1,62 @@ +package config + +import ( + "fmt" + + "github.com/prometheus/common/model" +) + +// +// Collectors +// + +// CollectorConfig defines a set of metrics and how they are collected. +type CollectorConfig struct { + Name string `yaml:"collector_name"` // name of this collector + MinInterval model.Duration `yaml:"min_interval,omitempty"` // minimum interval between query executions + Metrics []*MetricConfig `yaml:"metrics"` // metrics/queries defined by this collector + Queries []*QueryConfig `yaml:"queries,omitempty"` // named queries defined by this collector + + // Catches all undefined fields and must be empty after parsing. + XXX map[string]any `yaml:",inline" json:"-"` +} + +// UnmarshalYAML implements the yaml.Unmarshaler interface for CollectorConfig. +func (c *CollectorConfig) UnmarshalYAML(unmarshal func(any) error) error { + // Default to undefined (a negative value) so it can be overridden by the global default when not explicitly set. + c.MinInterval = -1 + + type plain CollectorConfig + if err := unmarshal((*plain)(c)); err != nil { + return err + } + + if len(c.Metrics) == 0 { + return fmt.Errorf("no metrics defined for collector %q", c.Name) + } + + // Set metric.query for all metrics: resolve query references (if any) and generate QueryConfigs for literal queries. + queries := make(map[string]*QueryConfig, len(c.Queries)) + for _, query := range c.Queries { + queries[query.Name] = query + } + for _, metric := range c.Metrics { + if metric.QueryRef != "" { + query, found := queries[metric.QueryRef] + if !found { + return fmt.Errorf("unresolved query_ref %q in metric %q of collector %q", metric.QueryRef, metric.Name, c.Name) + } + metric.query = query + query.metrics = append(query.metrics, metric) + } else { + // For literal queries generate a QueryConfig with a name based off collector and metric name. + metric.query = &QueryConfig{ + Name: metric.Name, + Query: metric.QueryLiteral, + NoPreparedStatement: metric.NoPreparedStatement, + } + } + } + + return checkOverflow(c.XXX, "collector") +} diff --git a/config/config.go b/config/config.go index 5bec7f5c..a166469b 100644 --- a/config/config.go +++ b/config/config.go @@ -1,20 +1,10 @@ package config import ( - "encoding/json" "fmt" "os" "path/filepath" - "strings" - "time" - "context" - - "github.com/aws/aws-sdk-go-v2/aws" - awsConfig "github.com/aws/aws-sdk-go-v2/config" - "github.com/aws/aws-sdk-go-v2/service/secretsmanager" - "github.com/prometheus/client_golang/prometheus" - "github.com/prometheus/common/model" "gopkg.in/yaml.v3" "k8s.io/klog/v2" ) @@ -167,499 +157,3 @@ func (c *Config) loadCollectorFiles() error { return nil } - -// GlobalConfig contains globally applicable defaults. -type GlobalConfig struct { - MinInterval model.Duration `yaml:"min_interval"` // minimum interval between query executions, default is 0 - ScrapeTimeout model.Duration `yaml:"scrape_timeout"` // per-scrape timeout, global - TimeoutOffset model.Duration `yaml:"scrape_timeout_offset"` // offset to subtract from timeout in seconds - MaxConnLifetime time.Duration `yaml:"max_connection_lifetime"` // maximum amount of time a connection may be reused to any one target - MaxConns int `yaml:"max_connections"` // maximum number of open connections to any one target - MaxIdleConns int `yaml:"max_idle_connections"` // maximum number of idle connections to any one target - - // Catches all undefined fields and must be empty after parsing. - XXX map[string]any `yaml:",inline" json:"-"` -} - -// UnmarshalYAML implements the yaml.Unmarshaler interface for GlobalConfig. -func (g *GlobalConfig) UnmarshalYAML(unmarshal func(any) error) error { - // Default to running the queries on every scrape. - g.MinInterval = model.Duration(0) - // Default to 10 seconds, since Prometheus has a 10 second scrape timeout default. - g.ScrapeTimeout = model.Duration(10 * time.Second) - // Default to .5 seconds. - g.TimeoutOffset = model.Duration(500 * time.Millisecond) - g.MaxConns = 3 - g.MaxIdleConns = 3 - g.MaxConnLifetime = time.Duration(0) - - type plain GlobalConfig - if err := unmarshal((*plain)(g)); err != nil { - return err - } - - if g.TimeoutOffset <= 0 { - return fmt.Errorf("global.scrape_timeout_offset must be strictly positive, have %s", g.TimeoutOffset) - } - - return checkOverflow(g.XXX, "global") -} - -// -// Target -// - -// TargetConfig defines a DSN and a set of collectors to be executed on it. -type TargetConfig struct { - Name string `yaml:"name,omitempty"` // name of the target - DSN Secret `yaml:"data_source_name"` // data source name to connect to - AwsSecretName string `yaml:"aws_secret_name"` // AWS secret name - CollectorRefs []string `yaml:"collectors"` // names of collectors to execute on the target - EnablePing *bool `yaml:"enable_ping,omitempty"` // ping the target before executing the collectors - - collectors []*CollectorConfig // resolved collector references - - // Catches all undefined fields and must be empty after parsing. - XXX map[string]any `yaml:",inline" json:"-"` -} - -// Collectors returns the collectors referenced by the target, resolved. -func (t *TargetConfig) Collectors() []*CollectorConfig { - return t.collectors -} - -// UnmarshalYAML implements the yaml.Unmarshaler interface for TargetConfig. -func (t *TargetConfig) UnmarshalYAML(unmarshal func(any) error) error { - type plain TargetConfig - if err := unmarshal((*plain)(t)); err != nil { - return err - } - - if t.AwsSecretName != "" { - t.DSN = readDSNFromAwsSecretManager(t.AwsSecretName) - } - - // Check required fields - if t.DSN == "" { - return fmt.Errorf("missing data_source_name for target %+v", t) - } - if err := checkCollectorRefs(t.CollectorRefs, "target"); err != nil { - return err - } - - return checkOverflow(t.XXX, "target") -} - -// AWS Secret -type AwsSecret struct { - DSN Secret `json:"data_source_name"` -} - -func readDSNFromAwsSecretManager(secretName string) Secret { - config, err := awsConfig.LoadDefaultConfig(context.TODO(), awsConfig.WithEC2IMDSRegion()) - if err != nil { - klog.Fatal(err) - } - - // Create Secrets Manager client - svc := secretsmanager.NewFromConfig(config) - - input := &secretsmanager.GetSecretValueInput{ - SecretId: aws.String(secretName), - VersionStage: aws.String("AWSCURRENT"), // VersionStage defaults to AWSCURRENT if unspecified - } - - klog.Infof("reading AWS Secret: %s", secretName) - result, err := svc.GetSecretValue(context.TODO(), input) - if err != nil { - // For a list of exceptions thrown, see - // https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html - klog.Fatal(err.Error()) - } - - // Decrypts secret using the associated KMS key. - var secretString string = *result.SecretString - - var awsSecret AwsSecret - jsonErr := json.Unmarshal([]byte(secretString), &awsSecret) - - if jsonErr != nil { - klog.Fatal(jsonErr) - } - return Secret(awsSecret.DSN) -} - -// -// Jobs -// - -// JobConfig defines a set of collectors to be executed on a set of targets. -type JobConfig struct { - Name string `yaml:"job_name"` // name of this job - CollectorRefs []string `yaml:"collectors"` // names of collectors to apply to all targets in this job - StaticConfigs []*StaticConfig `yaml:"static_configs"` // collections of statically defined targets - - collectors []*CollectorConfig // resolved collector references - - EnablePing *bool `yaml:"enable_ping,omitempty"` // ping the target before executing the collectors - - // Catches all undefined fields and must be empty after parsing. - XXX map[string]any `yaml:",inline" json:"-"` -} - -// Collectors returns the collectors referenced by the job, resolved. -func (j *JobConfig) Collectors() []*CollectorConfig { - return j.collectors -} - -// UnmarshalYAML implements the yaml.Unmarshaler interface for JobConfig. -func (j *JobConfig) UnmarshalYAML(unmarshal func(any) error) error { - type plain JobConfig - if err := unmarshal((*plain)(j)); err != nil { - return err - } - - // Check required fields - if j.Name == "" { - return fmt.Errorf("missing name for job %+v", j) - } - if err := checkCollectorRefs(j.CollectorRefs, fmt.Sprintf("job %q", j.Name)); err != nil { - return err - } - - if len(j.StaticConfigs) == 0 { - return fmt.Errorf("no targets defined for job %q", j.Name) - } - - return checkOverflow(j.XXX, "job") -} - -// checkLabelCollisions checks for label collisions between StaticConfig labels and Metric labels. -// -//lint:ignore U1000 - it's unused so far -func (j *JobConfig) checkLabelCollisions() error { - sclabels := make(map[string]any) - for _, s := range j.StaticConfigs { - for _, l := range s.Labels { - sclabels[l] = nil - } - } - - for _, c := range j.collectors { - for _, m := range c.Metrics { - for _, l := range m.KeyLabels { - if _, ok := sclabels[l]; ok { - return fmt.Errorf( - "label collision in job %q: label %q is defined both by a static_config and by metric %q of collector %q", - j.Name, l, m.Name, c.Name) - } - } - } - } - return nil -} - -// StaticConfig defines a set of targets and optional labels to apply to the metrics collected from them. -type StaticConfig struct { - Targets map[string]Secret `yaml:"targets"` // map of target names to data source names - Labels map[string]string `yaml:"labels,omitempty"` // labels to apply to all metrics collected from the targets - - // Catches all undefined fields and must be empty after parsing. - XXX map[string]any `yaml:",inline" json:"-"` -} - -// UnmarshalYAML implements the yaml.Unmarshaler interface for StaticConfig. -func (s *StaticConfig) UnmarshalYAML(unmarshal func(any) error) error { - type plain StaticConfig - if err := unmarshal((*plain)(s)); err != nil { - return err - } - - // Check for empty/duplicate target names/data source names - tnames := make(map[string]any) - dsns := make(map[string]any) - for tname, dsn := range s.Targets { - if tname == "" { - return fmt.Errorf("empty target name in static config %+v", s) - } - if _, ok := tnames[tname]; ok { - return fmt.Errorf("duplicate target name %q in static_config %+v", tname, s) - } - tnames[tname] = nil - if dsn == "" { - return fmt.Errorf("empty data source name in static config %+v", s) - } - if _, ok := dsns[string(dsn)]; ok { - return fmt.Errorf("duplicate data source name %q in static_config %+v", tname, s) - } - dsns[string(dsn)] = nil - } - - return checkOverflow(s.XXX, "static_config") -} - -// -// Collectors -// - -// CollectorConfig defines a set of metrics and how they are collected. -type CollectorConfig struct { - Name string `yaml:"collector_name"` // name of this collector - MinInterval model.Duration `yaml:"min_interval,omitempty"` // minimum interval between query executions - Metrics []*MetricConfig `yaml:"metrics"` // metrics/queries defined by this collector - Queries []*QueryConfig `yaml:"queries,omitempty"` // named queries defined by this collector - - // Catches all undefined fields and must be empty after parsing. - XXX map[string]any `yaml:",inline" json:"-"` -} - -// UnmarshalYAML implements the yaml.Unmarshaler interface for CollectorConfig. -func (c *CollectorConfig) UnmarshalYAML(unmarshal func(any) error) error { - // Default to undefined (a negative value) so it can be overridden by the global default when not explicitly set. - c.MinInterval = -1 - - type plain CollectorConfig - if err := unmarshal((*plain)(c)); err != nil { - return err - } - - if len(c.Metrics) == 0 { - return fmt.Errorf("no metrics defined for collector %q", c.Name) - } - - // Set metric.query for all metrics: resolve query references (if any) and generate QueryConfigs for literal queries. - queries := make(map[string]*QueryConfig, len(c.Queries)) - for _, query := range c.Queries { - queries[query.Name] = query - } - for _, metric := range c.Metrics { - if metric.QueryRef != "" { - query, found := queries[metric.QueryRef] - if !found { - return fmt.Errorf("unresolved query_ref %q in metric %q of collector %q", metric.QueryRef, metric.Name, c.Name) - } - metric.query = query - query.metrics = append(query.metrics, metric) - } else { - // For literal queries generate a QueryConfig with a name based off collector and metric name. - metric.query = &QueryConfig{ - Name: metric.Name, - Query: metric.QueryLiteral, - NoPreparedStatement: metric.NoPreparedStatement, - } - } - } - - return checkOverflow(c.XXX, "collector") -} - -// MetricConfig defines a Prometheus metric, the SQL query to populate it and the mapping of columns to metric -// keys/values. -type MetricConfig struct { - Name string `yaml:"metric_name"` // the Prometheus metric name - TypeString string `yaml:"type"` // the Prometheus metric type - Help string `yaml:"help"` // the Prometheus metric help text - KeyLabels []string `yaml:"key_labels,omitempty"` // expose these columns as labels from SQL - StaticLabels map[string]string `yaml:"static_labels,omitempty"` // fixed key/value pairs as static labels - ValueLabel string `yaml:"value_label,omitempty"` // with multiple value columns, map their names under this label - Values []string `yaml:"values"` // expose each of these columns as a value, keyed by column name - QueryLiteral string `yaml:"query,omitempty"` // a literal query - QueryRef string `yaml:"query_ref,omitempty"` // references a query in the query map - - NoPreparedStatement bool `yaml:"no_prepared_statement,omitempty"` // do not prepare statement - StaticValue *float64 `yaml:"static_value,omitempty"` - - valueType prometheus.ValueType // TypeString converted to prometheus.ValueType - query *QueryConfig // QueryConfig resolved from QueryRef or generated from Query - - // Catches all undefined fields and must be empty after parsing. - XXX map[string]any `yaml:",inline" json:"-"` -} - -// ValueType returns the metric type, converted to a prometheus.ValueType. -func (m *MetricConfig) ValueType() prometheus.ValueType { - return m.valueType -} - -// Query returns the query defined (as a literal) or referenced by the metric. -func (m *MetricConfig) Query() *QueryConfig { - return m.query -} - -// UnmarshalYAML implements the yaml.Unmarshaler interface for MetricConfig. -func (m *MetricConfig) UnmarshalYAML(unmarshal func(any) error) error { - type plain MetricConfig - if err := unmarshal((*plain)(m)); err != nil { - return err - } - - // Check required fields - if m.Name == "" { - return fmt.Errorf("missing name for metric %+v", m) - } - if m.TypeString == "" { - return fmt.Errorf("missing type for metric %q", m.Name) - } - if m.Help == "" { - return fmt.Errorf("missing help for metric %q", m.Name) - } - if (m.QueryLiteral == "") == (m.QueryRef == "") { - return fmt.Errorf("exactly one of query and query_ref must be specified for metric %q", m.Name) - } - - switch strings.ToLower(m.TypeString) { - case "counter": - m.valueType = prometheus.CounterValue - case "gauge": - m.valueType = prometheus.GaugeValue - default: - return fmt.Errorf("unsupported metric type: %s", m.TypeString) - } - - // Check for duplicate key labels - for i, li := range m.KeyLabels { - if err := checkLabel(li, "metric", m.Name); err != nil { - return err - } - for _, lj := range m.KeyLabels[i+1:] { - if li == lj { - return fmt.Errorf("duplicate key label %q for metric %q", li, m.Name) - } - } - if m.ValueLabel == li { - return fmt.Errorf("duplicate label %q (defined in both key_labels and value_label) for metric %q", li, m.Name) - } - } - - if len(m.Values) == 0 && m.StaticValue == nil { - return fmt.Errorf("no values defined for metric %q", m.Name) - } - - if len(m.Values) > 0 && m.StaticValue != nil { - return fmt.Errorf("metric %q cannot have both static_value and values defined", m.Name) - } - - if len(m.Values) > 1 { - // Multiple value columns but no value label to identify them - if m.ValueLabel == "" { - return fmt.Errorf("value_label must be defined for metric with multiple values %q", m.Name) - } - if err := checkLabel(m.ValueLabel, "value_label for metric", m.Name); err != nil { - return err - } - } - - return checkOverflow(m.XXX, "metric") -} - -// QueryConfig defines a named query, to be referenced by one or multiple metrics. -type QueryConfig struct { - Name string `yaml:"query_name"` // the query name, to be referenced via `query_ref` - Query string `yaml:"query"` // the named query - - NoPreparedStatement bool `yaml:"no_prepared_statement,omitempty"` // do not prepare statement - - metrics []*MetricConfig // metrics referencing this query - - // Catches all undefined fields and must be empty after parsing. - XXX map[string]any `yaml:",inline" json:"-"` -} - -// UnmarshalYAML implements the yaml.Unmarshaler interface for QueryConfig. -func (q *QueryConfig) UnmarshalYAML(unmarshal func(any) error) error { - type plain QueryConfig - if err := unmarshal((*plain)(q)); err != nil { - return err - } - - // Check required fields - if q.Name == "" { - return fmt.Errorf("missing name for query %+v", *q) - } - if q.Query == "" { - return fmt.Errorf("missing query literal for query %q", q.Name) - } - - q.metrics = make([]*MetricConfig, 0, 2) - - return checkOverflow(q.XXX, "metric") -} - -// Secret special type for storing secrets. -type Secret string - -// UnmarshalYAML implements the yaml.Unmarshaler interface for Secrets. -func (s *Secret) UnmarshalYAML(unmarshal func(any) error) error { - type plain Secret - return unmarshal((*plain)(s)) -} - -// MarshalYAML implements the yaml.Marshaler interface for Secrets. -func (s Secret) MarshalYAML() (any, error) { - if s != "" { - return "", nil - } - return nil, nil -} - -func checkCollectorRefs(collectorRefs []string, ctx string) error { - // At least one collector, no duplicates - if len(collectorRefs) == 0 { - return fmt.Errorf("no collectors defined for %s", ctx) - } - for i, ci := range collectorRefs { - for _, cj := range collectorRefs[i+1:] { - if ci == cj { - return fmt.Errorf("duplicate collector reference %q in %s", ci, ctx) - } - } - } - return nil -} - -func resolveCollectorRefs( - collectorRefs []string, collectors map[string]*CollectorConfig, ctx string, -) ([]*CollectorConfig, error) { - resolved := make([]*CollectorConfig, 0, len(collectorRefs)) - found := make(map[*CollectorConfig]bool) - for _, cref := range collectorRefs { - cref_resolved := false - for k, c := range collectors { - matched, err := filepath.Match(cref, k) - if err != nil { - return nil, fmt.Errorf("bad collector %q referenced in %s: %w", cref, ctx, err) - } - if matched && !found[c] { - resolved = append(resolved, c) - found[c] = true - cref_resolved = true - } - } - if !cref_resolved { - return nil, fmt.Errorf("unknown collector %q referenced in %s", cref, ctx) - } - } - klog.Infof("Resolved collectors for %s: %v", ctx, len(resolved)) - return resolved, nil -} - -func checkLabel(label string, ctx ...string) error { - if label == "" { - return fmt.Errorf("empty label defined in %s", strings.Join(ctx, " ")) - } - if label == "job" || label == TargetLabel { - return fmt.Errorf("reserved label %q redefined in %s", label, strings.Join(ctx, " ")) - } - return nil -} - -func checkOverflow(m map[string]any, ctx string) error { - if len(m) > 0 { - var keys []string - for k := range m { - keys = append(keys, k) - } - return fmt.Errorf("unknown fields in %s: %s", ctx, strings.Join(keys, ", ")) - } - return nil -} diff --git a/config/global_config.go b/config/global_config.go new file mode 100644 index 00000000..7edfebad --- /dev/null +++ b/config/global_config.go @@ -0,0 +1,45 @@ +package config + +import ( + "fmt" + "time" + + "github.com/prometheus/common/model" +) + +// GlobalConfig contains globally applicable defaults. +type GlobalConfig struct { + MinInterval model.Duration `yaml:"min_interval"` // minimum interval between query executions, default is 0 + ScrapeTimeout model.Duration `yaml:"scrape_timeout"` // per-scrape timeout, global + TimeoutOffset model.Duration `yaml:"scrape_timeout_offset"` // offset to subtract from timeout in seconds + MaxConnLifetime time.Duration `yaml:"max_connection_lifetime"` // maximum amount of time a connection may be reused to any one target + MaxConns int `yaml:"max_connections"` // maximum number of open connections to any one target + MaxIdleConns int `yaml:"max_idle_connections"` // maximum number of idle connections to any one target + + // Catches all undefined fields and must be empty after parsing. + XXX map[string]any `yaml:",inline" json:"-"` +} + +// UnmarshalYAML implements the yaml.Unmarshaler interface for GlobalConfig. +func (g *GlobalConfig) UnmarshalYAML(unmarshal func(any) error) error { + // Default to running the queries on every scrape. + g.MinInterval = model.Duration(0) + // Default to 10 seconds, since Prometheus has a 10 second scrape timeout default. + g.ScrapeTimeout = model.Duration(10 * time.Second) + // Default to .5 seconds. + g.TimeoutOffset = model.Duration(500 * time.Millisecond) + g.MaxConns = 3 + g.MaxIdleConns = 3 + g.MaxConnLifetime = time.Duration(0) + + type plain GlobalConfig + if err := unmarshal((*plain)(g)); err != nil { + return err + } + + if g.TimeoutOffset <= 0 { + return fmt.Errorf("global.scrape_timeout_offset must be strictly positive, have %s", g.TimeoutOffset) + } + + return checkOverflow(g.XXX, "global") +} diff --git a/config/job_config.go b/config/job_config.go new file mode 100644 index 00000000..1bd1a25d --- /dev/null +++ b/config/job_config.go @@ -0,0 +1,112 @@ +package config + +import "fmt" + +// +// Jobs +// + +// JobConfig defines a set of collectors to be executed on a set of targets. +type JobConfig struct { + Name string `yaml:"job_name"` // name of this job + CollectorRefs []string `yaml:"collectors"` // names of collectors to apply to all targets in this job + StaticConfigs []*StaticConfig `yaml:"static_configs"` // collections of statically defined targets + + collectors []*CollectorConfig // resolved collector references + + EnablePing *bool `yaml:"enable_ping,omitempty"` // ping the target before executing the collectors + + // Catches all undefined fields and must be empty after parsing. + XXX map[string]any `yaml:",inline" json:"-"` +} + +// Collectors returns the collectors referenced by the job, resolved. +func (j *JobConfig) Collectors() []*CollectorConfig { + return j.collectors +} + +// UnmarshalYAML implements the yaml.Unmarshaler interface for JobConfig. +func (j *JobConfig) UnmarshalYAML(unmarshal func(any) error) error { + type plain JobConfig + if err := unmarshal((*plain)(j)); err != nil { + return err + } + + // Check required fields + if j.Name == "" { + return fmt.Errorf("missing name for job %+v", j) + } + if err := checkCollectorRefs(j.CollectorRefs, fmt.Sprintf("job %q", j.Name)); err != nil { + return err + } + + if len(j.StaticConfigs) == 0 { + return fmt.Errorf("no targets defined for job %q", j.Name) + } + + return checkOverflow(j.XXX, "job") +} + +// checkLabelCollisions checks for label collisions between StaticConfig labels and Metric labels. +// +//lint:ignore U1000 - it's unused so far +func (j *JobConfig) checkLabelCollisions() error { + sclabels := make(map[string]any) + for _, s := range j.StaticConfigs { + for _, l := range s.Labels { + sclabels[l] = nil + } + } + + for _, c := range j.collectors { + for _, m := range c.Metrics { + for _, l := range m.KeyLabels { + if _, ok := sclabels[l]; ok { + return fmt.Errorf( + "label collision in job %q: label %q is defined both by a static_config and by metric %q of collector %q", + j.Name, l, m.Name, c.Name) + } + } + } + } + return nil +} + +// StaticConfig defines a set of targets and optional labels to apply to the metrics collected from them. +type StaticConfig struct { + Targets map[string]Secret `yaml:"targets"` // map of target names to data source names + Labels map[string]string `yaml:"labels,omitempty"` // labels to apply to all metrics collected from the targets + + // Catches all undefined fields and must be empty after parsing. + XXX map[string]any `yaml:",inline" json:"-"` +} + +// UnmarshalYAML implements the yaml.Unmarshaler interface for StaticConfig. +func (s *StaticConfig) UnmarshalYAML(unmarshal func(any) error) error { + type plain StaticConfig + if err := unmarshal((*plain)(s)); err != nil { + return err + } + + // Check for empty/duplicate target names/data source names + tnames := make(map[string]any) + dsns := make(map[string]any) + for tname, dsn := range s.Targets { + if tname == "" { + return fmt.Errorf("empty target name in static config %+v", s) + } + if _, ok := tnames[tname]; ok { + return fmt.Errorf("duplicate target name %q in static_config %+v", tname, s) + } + tnames[tname] = nil + if dsn == "" { + return fmt.Errorf("empty data source name in static config %+v", s) + } + if _, ok := dsns[string(dsn)]; ok { + return fmt.Errorf("duplicate data source name %q in static_config %+v", tname, s) + } + dsns[string(dsn)] = nil + } + + return checkOverflow(s.XXX, "static_config") +} diff --git a/config/metric_config.go b/config/metric_config.go new file mode 100644 index 00000000..95798242 --- /dev/null +++ b/config/metric_config.go @@ -0,0 +1,138 @@ +package config + +import ( + "fmt" + "strings" + + "github.com/prometheus/client_golang/prometheus" +) + +// MetricConfig defines a Prometheus metric, the SQL query to populate it and the mapping of columns to metric +// keys/values. +type MetricConfig struct { + Name string `yaml:"metric_name"` // the Prometheus metric name + TypeString string `yaml:"type"` // the Prometheus metric type + Help string `yaml:"help"` // the Prometheus metric help text + KeyLabels []string `yaml:"key_labels,omitempty"` // expose these columns as labels from SQL + StaticLabels map[string]string `yaml:"static_labels,omitempty"` // fixed key/value pairs as static labels + ValueLabel string `yaml:"value_label,omitempty"` // with multiple value columns, map their names under this label + Values []string `yaml:"values"` // expose each of these columns as a value, keyed by column name + QueryLiteral string `yaml:"query,omitempty"` // a literal query + QueryRef string `yaml:"query_ref,omitempty"` // references a query in the query map + + NoPreparedStatement bool `yaml:"no_prepared_statement,omitempty"` // do not prepare statement + StaticValue *float64 `yaml:"static_value,omitempty"` + + valueType prometheus.ValueType // TypeString converted to prometheus.ValueType + query *QueryConfig // QueryConfig resolved from QueryRef or generated from Query + + // Catches all undefined fields and must be empty after parsing. + XXX map[string]any `yaml:",inline" json:"-"` +} + +// ValueType returns the metric type, converted to a prometheus.ValueType. +func (m *MetricConfig) ValueType() prometheus.ValueType { + return m.valueType +} + +// Query returns the query defined (as a literal) or referenced by the metric. +func (m *MetricConfig) Query() *QueryConfig { + return m.query +} + +// UnmarshalYAML implements the yaml.Unmarshaler interface for MetricConfig. +func (m *MetricConfig) UnmarshalYAML(unmarshal func(any) error) error { + type plain MetricConfig + if err := unmarshal((*plain)(m)); err != nil { + return err + } + + if err := m.validateRequiredFields(); err != nil { + return err + } + if err := m.setValueType(); err != nil { + return err + } + if err := m.validateKeyLabels(); err != nil { + return err + } + if err := m.validateValues(); err != nil { + return err + } + + return checkOverflow(m.XXX, "metric") +} + +// Check required fields +func (m *MetricConfig) validateRequiredFields() error { + if m.Name == "" { + return fmt.Errorf("missing name for metric %+v", m) + } + if m.TypeString == "" { + return fmt.Errorf("missing type for metric %q", m.Name) + } + if m.Help == "" { + return fmt.Errorf("missing help for metric %q", m.Name) + } + if (m.QueryLiteral == "") == (m.QueryRef == "") { + return fmt.Errorf("exactly one of query and query_ref must be specified for metric %q", m.Name) + } + + return nil +} + +// Set the metric type +func (m *MetricConfig) setValueType() error { + switch strings.ToLower(m.TypeString) { + case "counter": + m.valueType = prometheus.CounterValue + case "gauge": + m.valueType = prometheus.GaugeValue + default: + return fmt.Errorf("unsupported metric type: %s", m.TypeString) + } + + return nil +} + +// Check for duplicate key labels +func (m *MetricConfig) validateKeyLabels() error { + for i, li := range m.KeyLabels { + if err := checkLabel(li, "metric", m.Name); err != nil { + return err + } + for _, lj := range m.KeyLabels[i+1:] { + if li == lj { + return fmt.Errorf("duplicate key label %q for metric %q", li, m.Name) + } + } + if m.ValueLabel == li { + return fmt.Errorf("duplicate label %q (defined in both key_labels and value_label) for metric %q", li, m.Name) + } + } + + return nil +} + +// Check for duplicate values +func (m *MetricConfig) validateValues() error { + if len(m.Values) == 0 && m.StaticValue == nil { + return fmt.Errorf("no values defined for metric %q", m.Name) + } + + if len(m.Values) > 0 && m.StaticValue != nil { + return fmt.Errorf("metric %q cannot have both static_value and values defined", m.Name) + } + + if len(m.Values) > 1 { + // Multiple value columns but no value label to identify them + if m.ValueLabel == "" { + return fmt.Errorf("value_label must be defined for metric with multiple values %q", m.Name) + } + if err := checkLabel(m.ValueLabel, "value_label for metric", m.Name); err != nil { + return err + } + } + + return nil +} diff --git a/config/query_config.go b/config/query_config.go new file mode 100644 index 00000000..983556e9 --- /dev/null +++ b/config/query_config.go @@ -0,0 +1,36 @@ +package config + +import "fmt" + +// QueryConfig defines a named query, to be referenced by one or multiple metrics. +type QueryConfig struct { + Name string `yaml:"query_name"` // the query name, to be referenced via `query_ref` + Query string `yaml:"query"` // the named query + + NoPreparedStatement bool `yaml:"no_prepared_statement,omitempty"` // do not prepare statement + + metrics []*MetricConfig // metrics referencing this query + + // Catches all undefined fields and must be empty after parsing. + XXX map[string]any `yaml:",inline" json:"-"` +} + +// UnmarshalYAML implements the yaml.Unmarshaler interface for QueryConfig. +func (q *QueryConfig) UnmarshalYAML(unmarshal func(any) error) error { + type plain QueryConfig + if err := unmarshal((*plain)(q)); err != nil { + return err + } + + // Check required fields + if q.Name == "" { + return fmt.Errorf("missing name for query %+v", *q) + } + if q.Query == "" { + return fmt.Errorf("missing query literal for query %q", q.Name) + } + + q.metrics = make([]*MetricConfig, 0, 2) + + return checkOverflow(q.XXX, "metric") +} diff --git a/config/secret_config.go b/config/secret_config.go new file mode 100644 index 00000000..570024c6 --- /dev/null +++ b/config/secret_config.go @@ -0,0 +1,18 @@ +package config + +// Secret special type for storing secrets. +type Secret string + +// UnmarshalYAML implements the yaml.Unmarshaler interface for Secrets. +func (s *Secret) UnmarshalYAML(unmarshal func(any) error) error { + type plain Secret + return unmarshal((*plain)(s)) +} + +// MarshalYAML implements the yaml.Marshaler interface for Secrets. +func (s Secret) MarshalYAML() (any, error) { + if s != "" { + return "", nil + } + return nil, nil +} diff --git a/config/target_config.go b/config/target_config.go new file mode 100644 index 00000000..84cee6cc --- /dev/null +++ b/config/target_config.go @@ -0,0 +1,96 @@ +package config + +import ( + "context" + "encoding/json" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + awsConfig "github.com/aws/aws-sdk-go-v2/config" + "github.com/aws/aws-sdk-go-v2/service/secretsmanager" + "k8s.io/klog/v2" +) + +// +// Target +// + +// TargetConfig defines a DSN and a set of collectors to be executed on it. +type TargetConfig struct { + Name string `yaml:"name,omitempty"` // name of the target + DSN Secret `yaml:"data_source_name"` // data source name to connect to + AwsSecretName string `yaml:"aws_secret_name"` // AWS secret name + CollectorRefs []string `yaml:"collectors"` // names of collectors to execute on the target + EnablePing *bool `yaml:"enable_ping,omitempty"` // ping the target before executing the collectors + + collectors []*CollectorConfig // resolved collector references + + // Catches all undefined fields and must be empty after parsing. + XXX map[string]any `yaml:",inline" json:"-"` +} + +// Collectors returns the collectors referenced by the target, resolved. +func (t *TargetConfig) Collectors() []*CollectorConfig { + return t.collectors +} + +// UnmarshalYAML implements the yaml.Unmarshaler interface for TargetConfig. +func (t *TargetConfig) UnmarshalYAML(unmarshal func(any) error) error { + type plain TargetConfig + if err := unmarshal((*plain)(t)); err != nil { + return err + } + + if t.AwsSecretName != "" { + t.DSN = readDSNFromAwsSecretManager(t.AwsSecretName) + } + + // Check required fields + if t.DSN == "" { + return fmt.Errorf("missing data_source_name for target %+v", t) + } + if err := checkCollectorRefs(t.CollectorRefs, "target"); err != nil { + return err + } + + return checkOverflow(t.XXX, "target") +} + +// AWS Secret +type AwsSecret struct { + DSN Secret `json:"data_source_name"` +} + +func readDSNFromAwsSecretManager(secretName string) Secret { + config, err := awsConfig.LoadDefaultConfig(context.TODO(), awsConfig.WithEC2IMDSRegion()) + if err != nil { + klog.Fatal(err) + } + + // Create Secrets Manager client + svc := secretsmanager.NewFromConfig(config) + + input := &secretsmanager.GetSecretValueInput{ + SecretId: aws.String(secretName), + VersionStage: aws.String("AWSCURRENT"), // VersionStage defaults to AWSCURRENT if unspecified + } + + klog.Infof("reading AWS Secret: %s", secretName) + result, err := svc.GetSecretValue(context.TODO(), input) + if err != nil { + // For a list of exceptions thrown, see + // https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html + klog.Fatal(err.Error()) + } + + // Decrypts secret using the associated KMS key. + var secretString string = *result.SecretString + + var awsSecret AwsSecret + jsonErr := json.Unmarshal([]byte(secretString), &awsSecret) + + if jsonErr != nil { + klog.Fatal(jsonErr) + } + return Secret(awsSecret.DSN) +} diff --git a/config/util.go b/config/util.go new file mode 100644 index 00000000..009630c3 --- /dev/null +++ b/config/util.go @@ -0,0 +1,71 @@ +package config + +import ( + "fmt" + "path/filepath" + "strings" + + "k8s.io/klog/v2" +) + +func checkCollectorRefs(collectorRefs []string, ctx string) error { + // At least one collector, no duplicates + if len(collectorRefs) == 0 { + return fmt.Errorf("no collectors defined for %s", ctx) + } + for i, ci := range collectorRefs { + for _, cj := range collectorRefs[i+1:] { + if ci == cj { + return fmt.Errorf("duplicate collector reference %q in %s", ci, ctx) + } + } + } + return nil +} + +func resolveCollectorRefs( + collectorRefs []string, collectors map[string]*CollectorConfig, ctx string, +) ([]*CollectorConfig, error) { + resolved := make([]*CollectorConfig, 0, len(collectorRefs)) + found := make(map[*CollectorConfig]bool) + for _, cref := range collectorRefs { + cref_resolved := false + for k, c := range collectors { + matched, err := filepath.Match(cref, k) + if err != nil { + return nil, fmt.Errorf("bad collector %q referenced in %s: %w", cref, ctx, err) + } + if matched && !found[c] { + resolved = append(resolved, c) + found[c] = true + cref_resolved = true + } + } + if !cref_resolved { + return nil, fmt.Errorf("unknown collector %q referenced in %s", cref, ctx) + } + } + klog.Infof("Resolved collectors for %s: %v", ctx, len(resolved)) + return resolved, nil +} + +func checkLabel(label string, ctx ...string) error { + if label == "" { + return fmt.Errorf("empty label defined in %s", strings.Join(ctx, " ")) + } + if label == "job" || label == TargetLabel { + return fmt.Errorf("reserved label %q redefined in %s", label, strings.Join(ctx, " ")) + } + return nil +} + +func checkOverflow(m map[string]any, ctx string) error { + if len(m) > 0 { + var keys []string + for k := range m { + keys = append(keys, k) + } + return fmt.Errorf("unknown fields in %s: %s", ctx, strings.Join(keys, ", ")) + } + return nil +} From 23756717bc1dc20b785d1070d6b750e041fc455a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Jan 2024 10:19:27 +0100 Subject: [PATCH 160/401] deps: bump google.golang.org/protobuf from 1.31.0 to 1.32.0 (#426) Bumps google.golang.org/protobuf from 1.31.0 to 1.32.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index cce1963c..4a9ddbf4 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/snowflakedb/gosnowflake v1.7.1 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.20.0 - google.golang.org/protobuf v1.31.0 + google.golang.org/protobuf v1.32.0 gopkg.in/yaml.v3 v3.0.1 k8s.io/klog/v2 v2.70.1 ) diff --git a/go.sum b/go.sum index ccf615f4..9dd67c92 100644 --- a/go.sum +++ b/go.sum @@ -433,8 +433,8 @@ google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6 google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= +google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From c5f110267aad3733850430b7ab152d64c3da3cb5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Jan 2024 10:19:43 +0100 Subject: [PATCH 161/401] deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager from 1.25.6 to 1.26.0 (#425) deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager Bumps [github.com/aws/aws-sdk-go-v2/service/secretsmanager](https://github.com/aws/aws-sdk-go-v2) from 1.25.6 to 1.26.0. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.25.6...config/v1.26.0) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/service/secretsmanager dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 4a9ddbf4..81b4de3d 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/ClickHouse/clickhouse-go v1.5.4 github.com/aws/aws-sdk-go-v2 v1.24.0 github.com/aws/aws-sdk-go-v2/config v1.26.2 - github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.25.6 + github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.26.0 github.com/go-sql-driver/mysql v1.7.1 github.com/jackc/pgx/v4 v4.18.1 github.com/kardianos/minwinsvc v1.0.2 diff --git a/go.sum b/go.sum index 9dd67c92..c081ae30 100644 --- a/go.sum +++ b/go.sum @@ -66,8 +66,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 h1:e2ooMhpYGhDnBf github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0/go.mod h1:bh2E0CXKZsQN+faiKVqC40vfNMAWheoULBCnEgO9K+8= github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 h1:B1G2pSPvbAtQjilPq+Y7jLIzCOwKzuVEl+aBBaNG0AQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0/go.mod h1:ncltU6n4Nof5uJttDtcNQ537uNuwYqsZZQcpkd2/GUQ= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.25.6 h1:L9Cu6ejuozkr5ipYnaXuRBZoyaFIIXZiurN4gUrQL+U= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.25.6/go.mod h1:4Ae1NCLK6ghmjzd45Tc33GgCKhUWD2ORAlULtMO1Cbs= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.26.0 h1:dPCRgAL4WD9tSMaDglRNGOiAtSTjkwNiUW5GDpWFfHA= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.26.0/go.mod h1:4Ae1NCLK6ghmjzd45Tc33GgCKhUWD2ORAlULtMO1Cbs= github.com/aws/aws-sdk-go-v2/service/sso v1.12.6/go.mod h1:Y1VOmit/Fn6Tz1uFAeCO6Q7M2fmfXSCLeL5INVYsLuY= github.com/aws/aws-sdk-go-v2/service/sso v1.18.5 h1:ldSFWz9tEHAwHNmjx2Cvy1MjP5/L9kNoR0skc6wyOOM= github.com/aws/aws-sdk-go-v2/service/sso v1.18.5/go.mod h1:CaFfXLYL376jgbP7VKC96uFcU8Rlavak0UlAwk1Dlhc= From 466b38b6abc44911a2077ce2b03351cce6935e43 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Jan 2024 10:20:44 +0100 Subject: [PATCH 162/401] deps: bump github.com/prometheus/client_golang from 1.17.0 to 1.18.0 (#424) Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.17.0 to 1.18.0. - [Release notes](https://github.com/prometheus/client_golang/releases) - [Changelog](https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md) - [Commits](https://github.com/prometheus/client_golang/compare/v1.17.0...v1.18.0) --- updated-dependencies: - dependency-name: github.com/prometheus/client_golang dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 81b4de3d..dcc4d76c 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.9 github.com/microsoft/go-mssqldb v1.6.0 - github.com/prometheus/client_golang v1.17.0 + github.com/prometheus/client_golang v1.18.0 github.com/prometheus/client_model v0.5.0 github.com/prometheus/common v0.45.0 github.com/prometheus/exporter-toolkit v0.11.0 @@ -100,7 +100,7 @@ require ( github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/prometheus/procfs v0.11.1 // indirect + github.com/prometheus/procfs v0.12.0 // indirect github.com/sirupsen/logrus v1.9.0 // indirect github.com/zeebo/xxh3 v1.0.2 // indirect golang.org/x/crypto v0.17.0 // indirect diff --git a/go.sum b/go.sum index c081ae30..f5447cda 100644 --- a/go.sum +++ b/go.sum @@ -270,8 +270,8 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk= +github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA= github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= github.com/prometheus/common v0.45.0 h1:2BGz0eBc2hdMDLnO/8n0jeB3oPrt2D08CekT0lneoxM= @@ -279,8 +279,8 @@ github.com/prometheus/common v0.45.0/go.mod h1:YJmSTw9BoKxJplESWWxlbyttQR4uaEcGy github.com/prometheus/exporter-toolkit v0.11.0 h1:yNTsuZ0aNCNFQ3aFTD2uhPOvr4iD7fdBvKPAEGkNf+g= github.com/prometheus/exporter-toolkit v0.11.0/go.mod h1:BVnENhnNecpwoTLiABx7mrPB/OLRIgN74qlQbV+FK1Q= github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= +github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= +github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= From 711f5f189364985379c7d5be43edd51d4635cc42 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Mon, 8 Jan 2024 15:51:54 +0100 Subject: [PATCH 163/401] fix: expand env vars while parsing DB URL (#428) --- sql.go | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/sql.go b/sql.go index 95976d58..aa0fd96f 100644 --- a/sql.go +++ b/sql.go @@ -6,6 +6,7 @@ import ( "errors" "fmt" "net/url" + "os" "time" "github.com/xo/dburl" @@ -85,7 +86,8 @@ func PingDB(ctx context.Context, conn *sql.DB) error { // if underlying url parse failed. By default it returns a raw url string in error message, // which most likely contains a password. It's undesired here. func safeParse(rawURL string) (*dburl.URL, error) { - parsed, err := dburl.Parse(rawURL) + + parsed, err := dburl.Parse(expandEnv(rawURL)) if err != nil { if uerr := new(url.Error); errors.As(err, &uerr) { return nil, uerr.Err @@ -94,3 +96,15 @@ func safeParse(rawURL string) (*dburl.URL, error) { } return parsed, nil } + +// expandEnv falls back to the original env variable if not found for better readability +func expandEnv(env string) string { + lookupFunc := func(env string) string { + if value, ok := os.LookupEnv(env); ok { + return value + } + klog.Errorf("Environment variable '$%s' is not found, cannot expand", env) + return fmt.Sprintf("$%s", env) + } + return os.Expand(env, lookupFunc) +} From d0b1974769c66e2df0c8c52110dfb2584c0dad80 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Thu, 11 Jan 2024 17:02:25 +0100 Subject: [PATCH 164/401] feat: return metric with an explicit timestamp from the configured column (#429) * feat: collect timestamp from the column * docs: add info on the new field --- README.md | 3 +++ config/metric_config.go | 1 + documentation/sql_exporter.yml | 3 +++ metric.go | 26 +++++++++++++++++++++++++- query.go | 12 ++++++++++++ 5 files changed, 44 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 6323d8ff..4bd75aac 100644 --- a/README.md +++ b/README.md @@ -188,6 +188,9 @@ metrics: # Static metric value (optional). Useful in case we are interested in string data (key_labels) only. It's mutually # exclusive with `values` field. # static_value: 1 + # Timestamp value (optional). Should point at the existing column containing valid timestamps to return a metric + # with an explicit timestamp. + # timestamp_value: CreatedAt query: | SELECT Market, max(UpdateTime) AS LastUpdateTime FROM MarketPrices diff --git a/config/metric_config.go b/config/metric_config.go index 95798242..67a9b2ec 100644 --- a/config/metric_config.go +++ b/config/metric_config.go @@ -22,6 +22,7 @@ type MetricConfig struct { NoPreparedStatement bool `yaml:"no_prepared_statement,omitempty"` // do not prepare statement StaticValue *float64 `yaml:"static_value,omitempty"` + TimestampValue string `yaml:"timestamp_value,omitempty"` // optional column name containing a valid timestamp value valueType prometheus.ValueType // TypeString converted to prometheus.ValueType query *QueryConfig // QueryConfig resolved from QueryRef or generated from Query diff --git a/documentation/sql_exporter.yml b/documentation/sql_exporter.yml index 2fab7834..5c9d191d 100644 --- a/documentation/sql_exporter.yml +++ b/documentation/sql_exporter.yml @@ -76,6 +76,9 @@ collectors: # Arbitrary key/value pair env: dev region: europe + # Optional timestamp_value to point at the existing timestamp column to return a metric with an explicit + # timestamp. + # timestamp_value: CreatedAt # This query returns exactly one value per row, in the `counter` column. values: [counter] query: | diff --git a/metric.go b/metric.go index 691eeacd..a498003d 100644 --- a/metric.go +++ b/metric.go @@ -4,6 +4,7 @@ import ( "database/sql" "fmt" "sort" + "time" "github.com/burningalchemist/sql_exporter/config" "github.com/burningalchemist/sql_exporter/errors" @@ -85,7 +86,15 @@ func (mf MetricFamily) Collect(row map[string]any, ch chan<- Metric) { } value := row[v].(sql.NullFloat64) if value.Valid { - ch <- NewMetric(&mf, value.Float64, labelValues...) + metric := NewMetric(&mf, value.Float64, labelValues...) + if mf.config.TimestampValue == "" { + ch <- metric + } else { + ts := row[mf.config.TimestampValue].(sql.NullTime) + if ts.Valid { + ch <- NewMetricWithTimestamp(ts.Time, metric) + } + } } } if mf.config.StaticValue != nil { @@ -286,3 +295,18 @@ func NewInvalidMetric(err errors.WithContext) Metric { func (m invalidMetric) Desc() MetricDesc { return nil } func (m invalidMetric) Write(*dto.Metric) errors.WithContext { return m.err } + +type timestampedMetric struct { + Metric + t time.Time +} + +func (m timestampedMetric) Write(pb *dto.Metric) errors.WithContext { + e := m.Metric.Write(pb) + pb.TimestampMs = proto.Int64(m.t.Unix()*1000 + int64(m.t.Nanosecond()/1000000)) + return e +} + +func NewMetricWithTimestamp(t time.Time, m Metric) Metric { + return timestampedMetric{Metric: m, t: t} +} diff --git a/query.go b/query.go index 67d56f5b..eaa268ce 100644 --- a/query.go +++ b/query.go @@ -30,6 +30,7 @@ type ( const ( columnTypeKey columnType = 1 columnTypeValue columnType = 2 + columnTypeTime columnType = 3 ) // NewQuery returns a new Query that will populate the given metric families. @@ -49,6 +50,9 @@ func NewQuery(logContext string, qc *config.QueryConfig, metricFamilies ...*Metr return nil, err } } + if err := setColumnType(logContext, mf.config.TimestampValue, columnTypeTime, columnTypes); err != nil { + return nil, err + } } q := Query{ @@ -153,6 +157,9 @@ func (q *Query) scanDest(rows *sql.Rows) ([]any, errors.WithContext) { case columnTypeValue: dest = append(dest, new(sql.NullFloat64)) have[column] = true + case columnTypeTime: + dest = append(dest, new(sql.NullTime)) + have[column] = true default: if column == "" { klog.Infof("[%s] Unnamed column %d returned by query", q.logContext, i) @@ -199,6 +206,11 @@ func (q *Query) scanRow(rows *sql.Rows, dest []any) (map[string]any, errors.With klog.V(3).Infof("[%s] Key column %q is NULL", q.logContext, column) } result[column] = *dest[i].(*sql.NullString) + case columnTypeTime: + if !dest[i].(*sql.NullTime).Valid { + klog.V(3).Infof("[%s] Time column %q is invalid or NULL", q.logContext, column) + } + result[column] = *dest[i].(*sql.NullTime) case columnTypeValue: if !dest[i].(*sql.NullFloat64).Valid { klog.V(3).Infof("[%s] Value column %q is NULL", q.logContext, column) From 2ba29a190e3111066adf04fe9d899c8df904e60e Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Mon, 15 Jan 2024 23:21:21 +0100 Subject: [PATCH 165/401] fix: if timestamp_value is empty, no need to reserve a column (#431) --- query.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/query.go b/query.go index eaa268ce..d40616ec 100644 --- a/query.go +++ b/query.go @@ -50,8 +50,10 @@ func NewQuery(logContext string, qc *config.QueryConfig, metricFamilies ...*Metr return nil, err } } - if err := setColumnType(logContext, mf.config.TimestampValue, columnTypeTime, columnTypes); err != nil { - return nil, err + if mf.config.TimestampValue != "" { + if err := setColumnType(logContext, mf.config.TimestampValue, columnTypeTime, columnTypes); err != nil { + return nil, err + } } } From 4c157972a69dc0bc2e461175efb3c71141bc8505 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Tue, 16 Jan 2024 00:09:32 +0100 Subject: [PATCH 166/401] feat: provide configuration subset via env variables (#430) --- cmd/sql_exporter/main.go | 10 ++--- config/config.go | 92 +++++++++++++++++++++++++++++++--------- config/global_config.go | 12 +++--- config/target_config.go | 10 ++--- exporter.go | 7 +-- go.mod | 5 ++- go.sum | 2 + 7 files changed, 97 insertions(+), 41 deletions(-) diff --git a/cmd/sql_exporter/main.go b/cmd/sql_exporter/main.go index ca3512cc..00cc9ab3 100644 --- a/cmd/sql_exporter/main.go +++ b/cmd/sql_exporter/main.go @@ -20,9 +20,8 @@ import ( ) const ( - appName string = "sql_exporter" - envConfigFile string = "SQLEXPORTER_CONFIG" - envDebug string = "SQLEXPORTER_DEBUG" + appName string = "sql_exporter" + httpReadHeaderTimeout time.Duration = time.Duration(time.Second * 60) debugMaxLevel klog.Level = 3 ) @@ -47,10 +46,11 @@ func init() { } func main() { - if os.Getenv(envDebug) != "" { + if os.Getenv(cfg.EnvDebug) != "" { runtime.SetBlockProfileRate(1) runtime.SetMutexProfileFraction(1) } + flag.Parse() // Show version and exit. @@ -79,7 +79,7 @@ func main() { klog.ClampLevel(debugMaxLevel) // Override the config.file default with the SQLEXPORTER_CONFIG environment variable if set. - if val, ok := os.LookupEnv(envConfigFile); ok { + if val, ok := os.LookupEnv(cfg.EnvConfigFile); ok { *configFile = val } diff --git a/config/config.go b/config/config.go index a166469b..987ab5f6 100644 --- a/config/config.go +++ b/config/config.go @@ -1,20 +1,28 @@ package config import ( + "context" "fmt" "os" "path/filepath" + "github.com/sethvargo/go-envconfig" "gopkg.in/yaml.v3" "k8s.io/klog/v2" ) -const EnvDsnOverride = "SQLEXPORTER_TARGET_DSN" - // MaxInt32 defines the maximum value of allowed integers // and serves to help us avoid overflow/wraparound issues. const MaxInt32 int = 1<<31 - 1 +// EnvPrefix is the prefix for environment variables. +const ( + EnvPrefix string = "SQLEXPORTER_" + + EnvConfigFile string = EnvPrefix + "CONFIG" + EnvDebug string = EnvPrefix + "DEBUG" +) + var ( EnablePing bool IgnoreMissingVals bool @@ -49,9 +57,9 @@ func Load(configFile string) (*Config, error) { // Config is a collection of jobs and collectors. type Config struct { - Globals *GlobalConfig `yaml:"global,omitempty"` - CollectorFiles []string `yaml:"collector_files,omitempty"` - Target *TargetConfig `yaml:"target,omitempty"` + Globals *GlobalConfig `yaml:"global,omitempty" env:", prefix=GLOBAL_"` + CollectorFiles []string `yaml:"collector_files,omitempty" env:"COLLECTOR_FILES"` + Target *TargetConfig `yaml:"target,omitempty" env:", prefix=TARGET_"` Jobs []*JobConfig `yaml:"jobs,omitempty"` Collectors []*CollectorConfig `yaml:"collectors,omitempty"` @@ -63,32 +71,77 @@ type Config struct { // UnmarshalYAML implements the yaml.Unmarshaler interface for Config. func (c *Config) UnmarshalYAML(unmarshal func(any) error) error { - type plain Config - if err := unmarshal((*plain)(c)); err != nil { + // unmarshalConfig does the actual unmarshalling + if err := c.unmarshalConfig(unmarshal); err != nil { + return err + } + // Populate global defaults. + if err := c.populateGlobalDefaults(); err != nil { + return err + } + + // Load any externally defined collectors. + if err := c.loadCollectorFiles(); err != nil { return err } + // Process environment variables. + if err := c.processEnvConfig(); err != nil { + return err + } + + // Check required fields + if err := c.checkRequiredFields(); err != nil { + return err + } + + // Populate collector references for the target/jobs. + if err := c.populateCollectorReferences(); err != nil { + return err + } + + return checkOverflow(c.XXX, "config") +} + +// unmarshalConfig unmarshals the config, but does not populate global defaults, process environment variables, or check required fields. +func (c *Config) unmarshalConfig(unmarshal func(any) error) error { + type plain Config + return unmarshal((*plain)(c)) +} + +// populateGlobalDefaults populates any unset global defaults. +func (c *Config) populateGlobalDefaults() error { if c.Globals == nil { c.Globals = &GlobalConfig{} // Force a dummy unmarshall to populate global defaults - if err := c.Globals.UnmarshalYAML(func(any) error { return nil }); err != nil { - return err - } + return c.Globals.UnmarshalYAML(func(any) error { return nil }) } + return nil +} + +// processEnvConfig processes environment variables. +func (c *Config) processEnvConfig() error { + return envconfig.ProcessWith(context.Background(), &envconfig.Config{ + Target: c, + Lookuper: envconfig.PrefixLookuper(EnvPrefix, envconfig.OsLookuper()), + DefaultNoInit: true, + DefaultOverwrite: true, + DefaultDelimiter: ";", + }) +} +// checkRequiredFields checks that all required fields are present. +func (c *Config) checkRequiredFields() error { if (len(c.Jobs) == 0) == (c.Target == nil) { return fmt.Errorf("exactly one of `jobs` and `target` must be defined") } + return nil +} - // Load any externally defined collectors. - if err := c.loadCollectorFiles(); err != nil { - return err - } - - // Populate collector references for the target/jobs. +// populateCollectorReferences populates collector references for the target/jobs. +func (c *Config) populateCollectorReferences() error { colls := make(map[string]*CollectorConfig) for _, coll := range c.Collectors { - // Set the min interval to the global default if not explicitly set. if coll.MinInterval < 0 { coll.MinInterval = c.Globals.MinInterval } @@ -97,6 +150,7 @@ func (c *Config) UnmarshalYAML(unmarshal func(any) error) error { } colls[coll.Name] = coll } + if c.Target != nil { cs, err := resolveCollectorRefs(c.Target.CollectorRefs, colls, "target") if err != nil { @@ -104,6 +158,7 @@ func (c *Config) UnmarshalYAML(unmarshal func(any) error) error { } c.Target.collectors = cs } + for _, j := range c.Jobs { cs, err := resolveCollectorRefs(j.CollectorRefs, colls, fmt.Sprintf("job %q", j.Name)) if err != nil { @@ -111,8 +166,7 @@ func (c *Config) UnmarshalYAML(unmarshal func(any) error) error { } j.collectors = cs } - - return checkOverflow(c.XXX, "config") + return nil } // YAML marshals the config into YAML format. diff --git a/config/global_config.go b/config/global_config.go index 7edfebad..f1dad28f 100644 --- a/config/global_config.go +++ b/config/global_config.go @@ -9,12 +9,12 @@ import ( // GlobalConfig contains globally applicable defaults. type GlobalConfig struct { - MinInterval model.Duration `yaml:"min_interval"` // minimum interval between query executions, default is 0 - ScrapeTimeout model.Duration `yaml:"scrape_timeout"` // per-scrape timeout, global - TimeoutOffset model.Duration `yaml:"scrape_timeout_offset"` // offset to subtract from timeout in seconds - MaxConnLifetime time.Duration `yaml:"max_connection_lifetime"` // maximum amount of time a connection may be reused to any one target - MaxConns int `yaml:"max_connections"` // maximum number of open connections to any one target - MaxIdleConns int `yaml:"max_idle_connections"` // maximum number of idle connections to any one target + MinInterval model.Duration `yaml:"min_interval" env:"MIN_INTERVAL"` // minimum interval between query executions, default is 0 + ScrapeTimeout model.Duration `yaml:"scrape_timeout" env:"SCRAPE_TIMEOUT"` // per-scrape timeout, global + TimeoutOffset model.Duration `yaml:"scrape_timeout_offset" env:"SCRAPE_TIMEOUT_OFFSET"` // offset to subtract from timeout in seconds + MaxConnLifetime time.Duration `yaml:"max_connection_lifetime" env:"MAX_CONNECTION_LIFETIME"` // maximum amount of time a connection may be reused to any one target + MaxConns int `yaml:"max_connections" env:"MAX_CONNECTIONS"` // maximum number of open connections to any one target + MaxIdleConns int `yaml:"max_idle_connections" env:"MAX_IDLE_CONNECTIONS"` // maximum number of idle connections to any one target // Catches all undefined fields and must be empty after parsing. XXX map[string]any `yaml:",inline" json:"-"` diff --git a/config/target_config.go b/config/target_config.go index 84cee6cc..488105a7 100644 --- a/config/target_config.go +++ b/config/target_config.go @@ -17,11 +17,11 @@ import ( // TargetConfig defines a DSN and a set of collectors to be executed on it. type TargetConfig struct { - Name string `yaml:"name,omitempty"` // name of the target - DSN Secret `yaml:"data_source_name"` // data source name to connect to - AwsSecretName string `yaml:"aws_secret_name"` // AWS secret name - CollectorRefs []string `yaml:"collectors"` // names of collectors to execute on the target - EnablePing *bool `yaml:"enable_ping,omitempty"` // ping the target before executing the collectors + Name string `yaml:"name,omitempty" env:"NAME"` // name of the target + DSN Secret `yaml:"data_source_name" env:"DSN"` // data source name to connect to + AwsSecretName string `yaml:"aws_secret_name" env:"AWS_SECRET_NAME"` // AWS secret name + CollectorRefs []string `yaml:"collectors" env:"COLLECTORS"` // names of collectors to execute on the target + EnablePing *bool `yaml:"enable_ping,omitempty" env:"ENABLE_PING"` // ping the target before executing the collectors collectors []*CollectorConfig // resolved collector references diff --git a/exporter.go b/exporter.go index 36f51b6e..8b56eb35 100644 --- a/exporter.go +++ b/exporter.go @@ -4,13 +4,13 @@ import ( "context" "errors" "fmt" - "os" "strings" "sync" "github.com/burningalchemist/sql_exporter/config" "github.com/prometheus/client_golang/prometheus" dto "github.com/prometheus/client_model/go" + "google.golang.org/protobuf/proto" ) @@ -45,13 +45,10 @@ func NewExporter(configFile string) (Exporter, error) { return nil, err } - if val, ok := os.LookupEnv(config.EnvDsnOverride); ok { - config.DsnOverride = val - } // Override the DSN if requested (and in single target mode). if config.DsnOverride != "" { if len(c.Jobs) > 0 { - return nil, fmt.Errorf("the config.data-source-name flag (value %q) only applies in single target mode", config.DsnOverride) + return nil, errors.New("the config.data-source-name flag only applies in single target mode") } c.Target.DSN = config.Secret(config.DsnOverride) } diff --git a/go.mod b/go.mod index dcc4d76c..c78bb9b7 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,8 @@ module github.com/burningalchemist/sql_exporter -go 1.18 +go 1.21 + +toolchain go1.21.5 require ( github.com/ClickHouse/clickhouse-go v1.5.4 @@ -16,6 +18,7 @@ require ( github.com/prometheus/client_model v0.5.0 github.com/prometheus/common v0.45.0 github.com/prometheus/exporter-toolkit v0.11.0 + github.com/sethvargo/go-envconfig v1.0.0 github.com/snowflakedb/gosnowflake v1.7.1 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.20.0 diff --git a/go.sum b/go.sum index f5447cda..07b50af7 100644 --- a/go.sum +++ b/go.sum @@ -287,6 +287,8 @@ github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= +github.com/sethvargo/go-envconfig v1.0.0 h1:1C66wzy4QrROf5ew4KdVw942CQDa55qmlYmw9FZxZdU= +github.com/sethvargo/go-envconfig v1.0.0/go.mod h1:Lzc75ghUn5ucmcRGIdGQ33DKJrcjk4kihFYgSTBmjIc= github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= github.com/shopspring/decimal v1.2.0 h1:abSATXmQEYyShuxI4/vyW3tV1MrKAJzCZ/0zLUXYbsQ= github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= From 79575c8fb74fdf148de2a408c10ff7ed973dedc9 Mon Sep 17 00:00:00 2001 From: Antonio K Date: Mon, 29 Jan 2024 17:29:40 +0400 Subject: [PATCH 167/401] docs: Fix PostgreSQL DSN example [skip ci] (#434) --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 4bd75aac..cd2b08a7 100644 --- a/README.md +++ b/README.md @@ -273,9 +273,9 @@ jobs: collectors: [pricing_data_freshness, pricing_*] enable_ping: true # Optional, true by default. Set to `false` in case you connect to pgbouncer or a data warehouse static_configs: - - targets: - pg1: 'pg://db1@127.0.0.1:25432/postgres?sslmode=disable' - pg2: 'pg://db2@127.0.0.1:25432/testdb?sslmode=disable' + - targets: + pg1: 'pg://db1@127.0.0.1:25432/postgres?sslmode=disable' + pg2: 'postgresql://username:password@pg-host.example.com:5432/dbname?sslmode=disable' ``` , where DSN strings are assigned to the arbitrary instance names (i.e. pg1 and pg2). From b1830fef9c6f3f53c7f8e0dc3ca80128a98b63cd Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Mon, 29 Jan 2024 14:35:21 +0100 Subject: [PATCH 168/401] Revert "docs: Fix PostgreSQL DSN example [skip ci]" (#435) --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index cd2b08a7..4bd75aac 100644 --- a/README.md +++ b/README.md @@ -273,9 +273,9 @@ jobs: collectors: [pricing_data_freshness, pricing_*] enable_ping: true # Optional, true by default. Set to `false` in case you connect to pgbouncer or a data warehouse static_configs: - - targets: - pg1: 'pg://db1@127.0.0.1:25432/postgres?sslmode=disable' - pg2: 'postgresql://username:password@pg-host.example.com:5432/dbname?sslmode=disable' + - targets: + pg1: 'pg://db1@127.0.0.1:25432/postgres?sslmode=disable' + pg2: 'pg://db2@127.0.0.1:25432/testdb?sslmode=disable' ``` , where DSN strings are assigned to the arbitrary instance names (i.e. pg1 and pg2). From 01818f1a57831c41a3913ae3062392bdd723e752 Mon Sep 17 00:00:00 2001 From: Antonio K Date: Mon, 29 Jan 2024 18:22:04 +0400 Subject: [PATCH 169/401] docs: fix PostgreSQL DSN example [skip ci] (#436) * Fix PostgreSQL DSN example * fix for fix: yaml indentation --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 4bd75aac..20d3e49a 100644 --- a/README.md +++ b/README.md @@ -273,9 +273,9 @@ jobs: collectors: [pricing_data_freshness, pricing_*] enable_ping: true # Optional, true by default. Set to `false` in case you connect to pgbouncer or a data warehouse static_configs: - - targets: - pg1: 'pg://db1@127.0.0.1:25432/postgres?sslmode=disable' - pg2: 'pg://db2@127.0.0.1:25432/testdb?sslmode=disable' + - targets: + pg1: 'pg://db1@127.0.0.1:25432/postgres?sslmode=disable' + pg2: 'postgresql://username:password@pg-host.example.com:5432/dbname?sslmode=disable' ``` , where DSN strings are assigned to the arbitrary instance names (i.e. pg1 and pg2). From f353a133fa33f0854ffb819276050b091546c81e Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Mon, 29 Jan 2024 18:38:39 +0100 Subject: [PATCH 170/401] feat: scrape selected jobs via query params (#433) * feat: scrape selected jobs via query params * docs: add jobs[] query parameter description --- README.md | 14 +++++++++ cmd/sql_exporter/main.go | 2 +- cmd/sql_exporter/promhttp.go | 4 +++ exporter.go | 56 ++++++++++++++++++++++++++++++------ job.go | 2 +- target.go | 9 +++++- 6 files changed, 75 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 20d3e49a..952c2103 100644 --- a/README.md +++ b/README.md @@ -282,6 +282,20 @@ jobs: We can also define multiple jobs to run different collectors against different target sets. +Since v0.14, sql_exporter can be passed an optional list of job names to filter out metrics. The `jobs[]` query +parameter may be used multiple times. In Prometheus configuration we can use this syntax under the [scrape +config](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#%3Cscrape_config%3E): + +```yaml + params: + jobs[]: + - db_targets1 + - db_targets2 +``` + +This might be useful for scraping targets with different intervals or any other advanced use cases, when calling all +jobs at once is undesired. + ### TLS and Basic Authentication SQL Exporter supports TLS and Basic Authentication. This enables better control of the various HTTP endpoints. diff --git a/cmd/sql_exporter/main.go b/cmd/sql_exporter/main.go index 00cc9ab3..c173a47c 100644 --- a/cmd/sql_exporter/main.go +++ b/cmd/sql_exporter/main.go @@ -133,7 +133,7 @@ func reloadCollectors(e sql_exporter.Exporter) func(http.ResponseWriter, *http.R if currentConfig.Target != nil { klog.Warning("Reloading target collectors...") // FIXME: Should be t.Collectors() instead of config.Collectors - target, err := sql_exporter.NewTarget("", currentConfig.Target.Name, string(currentConfig.Target.DSN), + target, err := sql_exporter.NewTarget("", currentConfig.Target.Name, "", string(currentConfig.Target.DSN), exporterNewConfig.Target.Collectors(), nil, currentConfig.Globals, currentConfig.Target.EnablePing) if err != nil { klog.Errorf("Error recreating a target - %v", err) diff --git a/cmd/sql_exporter/promhttp.go b/cmd/sql_exporter/promhttp.go index 1f68d3ea..5bb88006 100644 --- a/cmd/sql_exporter/promhttp.go +++ b/cmd/sql_exporter/promhttp.go @@ -34,6 +34,10 @@ func ExporterHandlerFor(exporter sql_exporter.Exporter) http.Handler { ctx, cancel := contextFor(req, exporter) defer cancel() + // Parse the query params and set the job filters if any + jobFilters := req.URL.Query()["jobs[]"] + exporter.SetJobFilters(jobFilters) + // Go through prometheus.Gatherers to sanitize and sort metrics. gatherer := prometheus.Gatherers{exporter.WithContext(ctx), sql_exporter.SvcRegistry} mfs, err := gatherer.Gather() diff --git a/exporter.go b/exporter.go index 8b56eb35..865d05ae 100644 --- a/exporter.go +++ b/exporter.go @@ -12,6 +12,7 @@ import ( dto "github.com/prometheus/client_model/go" "google.golang.org/protobuf/proto" + "k8s.io/klog/v2" ) var ( @@ -28,12 +29,16 @@ type Exporter interface { WithContext(context.Context) Exporter // Config returns the Exporter's underlying Config object. Config() *config.Config + // UpdateTarget updates the targets field UpdateTarget([]Target) + // SetJobFilters sets the jobFilters field + SetJobFilters([]string) } type exporter struct { - config *config.Config - targets []Target + config *config.Config + targets []Target + jobFilters []string ctx context.Context } @@ -58,7 +63,7 @@ func NewExporter(configFile string) (Exporter, error) { if c.Target.EnablePing == nil { c.Target.EnablePing = &config.EnablePing } - target, err := NewTarget("", c.Target.Name, string(c.Target.DSN), c.Target.Collectors(), nil, c.Globals, c.Target.EnablePing) + target, err := NewTarget("", c.Target.Name, "", string(c.Target.DSN), c.Target.Collectors(), nil, c.Globals, c.Target.EnablePing) if err != nil { return nil, err } @@ -80,17 +85,19 @@ func NewExporter(configFile string) (Exporter, error) { scrapeErrorsMetric = registerScrapeErrorMetric() return &exporter{ - config: c, - targets: targets, - ctx: context.Background(), + config: c, + targets: targets, + jobFilters: []string{}, + ctx: context.Background(), }, nil } func (e *exporter) WithContext(ctx context.Context) Exporter { return &exporter{ - config: e.config, - targets: e.targets, - ctx: ctx, + config: e.config, + targets: e.targets, + jobFilters: e.jobFilters, + ctx: ctx, } } @@ -101,6 +108,13 @@ func (e *exporter) Gather() ([]*dto.MetricFamily, error) { errs prometheus.MultiError ) + // Filter out jobs that are not in the jobFilters list + e.filterTargets(e.jobFilters) + + if len(e.targets) == 0 { + return nil, errors.New("no targets found") + } + var wg sync.WaitGroup wg.Add(len(e.targets)) for _, t := range e.targets { @@ -166,15 +180,39 @@ func (e *exporter) Gather() ([]*dto.MetricFamily, error) { return result, errs } +func (e *exporter) filterTargets(jf []string) { + if len(e.jobFilters) > 0 { + var filteredTargets []Target + for _, target := range e.targets { + for _, jobFilter := range e.jobFilters { + if jobFilter == target.JobGroup() { + filteredTargets = append(filteredTargets, target) + break + } + } + } + if len(filteredTargets) == 0 { + klog.Errorf("No targets found for job filters. Nothing to scrape.") + } + e.targets = filteredTargets + } +} + // Config implements Exporter. func (e *exporter) Config() *config.Config { return e.config } +// UpdateTarget implements Exporter. func (e *exporter) UpdateTarget(target []Target) { e.targets = target } +// SetJobFilters implements Exporter. +func (e *exporter) SetJobFilters(filters []string) { + e.jobFilters = filters +} + // registerScrapeErrorMetric registers the metrics for the exporter itself. func registerScrapeErrorMetric() *prometheus.CounterVec { scrapeErrors := prometheus.NewCounterVec(prometheus.CounterOpts{ diff --git a/job.go b/job.go index 51191819..e2963b6c 100644 --- a/job.go +++ b/job.go @@ -45,7 +45,7 @@ func NewJob(jc *config.JobConfig, gc *config.GlobalConfig) (Job, errors.WithCont } constLabels[name] = value } - t, err := NewTarget(j.logContext, tname, string(dsn), jc.Collectors(), constLabels, gc, jc.EnablePing) + t, err := NewTarget(j.logContext, tname, jc.Name, string(dsn), jc.Collectors(), constLabels, gc, jc.EnablePing) if err != nil { return nil, err } diff --git a/target.go b/target.go index 0e1efe51..fb02f67b 100644 --- a/target.go +++ b/target.go @@ -32,11 +32,13 @@ const ( type Target interface { // Collect is the equivalent of prometheus.Collector.Collect(), but takes a context to run in. Collect(ctx context.Context, ch chan<- Metric) + JobGroup() string } // target implements Target. It wraps a sql.DB, which is initially nil but never changes once instantianted. type target struct { name string + jobGroup string dsn string collectors []Collector constLabels prometheus.Labels @@ -52,7 +54,7 @@ type target struct { // NewTarget returns a new Target with the given target name, data source name, collectors and constant labels. // An empty target name means the exporter is running in single target mode: no synthetic metrics will be exported. func NewTarget( - logContext, tname, dsn string, ccs []*config.CollectorConfig, constLabels prometheus.Labels, gc *config.GlobalConfig, ep *bool) ( + logContext, tname, jg, dsn string, ccs []*config.CollectorConfig, constLabels prometheus.Labels, gc *config.GlobalConfig, ep *bool) ( Target, errors.WithContext, ) { @@ -88,6 +90,7 @@ func NewTarget( scrapeDurationDesc := NewAutomaticMetricDesc(logContext, scrapeDurationName, scrapeDurationHelp, prometheus.GaugeValue, constLabelPairs) t := target{ name: tname, + jobGroup: jg, dsn: dsn, collectors: collectors, constLabels: constLabels, @@ -189,3 +192,7 @@ func boolToFloat64(value bool) float64 { func OfBool(i bool) *bool { return &i } + +func (t *target) JobGroup() string { + return t.jobGroup +} From bb05557cdda07b7d3816363f30e20c10abc9cf7c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Feb 2024 23:34:38 +0100 Subject: [PATCH 171/401] deps: bump github.com/snowflakedb/gosnowflake from 1.7.1 to 1.7.2 (#441) Bumps [github.com/snowflakedb/gosnowflake](https://github.com/snowflakedb/gosnowflake) from 1.7.1 to 1.7.2. - [Release notes](https://github.com/snowflakedb/gosnowflake/releases) - [Changelog](https://github.com/snowflakedb/gosnowflake/blob/master/release.go) - [Commits](https://github.com/snowflakedb/gosnowflake/compare/v1.7.1...v1.7.2) --- updated-dependencies: - dependency-name: github.com/snowflakedb/gosnowflake dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 28 +++++++++------------- go.sum | 75 ++++++++++++++++++++++++++++------------------------------ 2 files changed, 47 insertions(+), 56 deletions(-) diff --git a/go.mod b/go.mod index c78bb9b7..b10fd62b 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/prometheus/common v0.45.0 github.com/prometheus/exporter-toolkit v0.11.0 github.com/sethvargo/go-envconfig v1.0.0 - github.com/snowflakedb/gosnowflake v1.7.1 + github.com/snowflakedb/gosnowflake v1.7.2 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.20.0 google.golang.org/protobuf v1.32.0 @@ -36,9 +36,7 @@ require ( github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0 // indirect github.com/AzureAD/microsoft-authentication-library-for-go v1.1.0 // indirect github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c // indirect - github.com/andybalholm/brotli v1.0.4 // indirect - github.com/apache/arrow/go/v12 v12.0.1 // indirect - github.com/apache/thrift v0.16.0 // indirect + github.com/apache/arrow/go/v14 v14.0.2 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 // indirect github.com/aws/aws-sdk-go-v2/credentials v1.16.13 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.10 // indirect @@ -70,15 +68,14 @@ require ( github.com/go-kit/log v0.2.1 // indirect github.com/go-logfmt/logfmt v0.5.1 // indirect github.com/go-logr/logr v1.4.1 // indirect - github.com/goccy/go-json v0.10.0 // indirect + github.com/goccy/go-json v0.10.2 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/golang-jwt/jwt/v5 v5.0.0 // indirect github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 // indirect github.com/golang-sql/sqlexp v0.1.0 // indirect github.com/golang/protobuf v1.5.3 // indirect - github.com/golang/snappy v0.0.4 // indirect - github.com/google/flatbuffers v23.1.21+incompatible // indirect - github.com/google/uuid v1.3.0 // indirect + github.com/google/flatbuffers v23.5.26+incompatible // indirect + github.com/google/uuid v1.3.1 // indirect github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect github.com/jackc/chunkreader/v2 v2.0.1 // indirect github.com/jackc/pgconn v1.14.0 // indirect @@ -90,16 +87,13 @@ require ( github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 // indirect github.com/jpillora/backoff v1.0.0 // indirect - github.com/klauspost/asmfmt v1.3.2 // indirect - github.com/klauspost/compress v1.15.15 // indirect - github.com/klauspost/cpuid/v2 v2.2.3 // indirect + github.com/klauspost/compress v1.16.7 // indirect + github.com/klauspost/cpuid/v2 v2.2.5 // indirect github.com/kylelemons/godebug v1.1.0 // indirect github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 // indirect - github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8 // indirect - github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3 // indirect github.com/mtibben/percent v0.2.1 // indirect github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect - github.com/pierrec/lz4/v4 v4.1.17 // indirect + github.com/pierrec/lz4/v4 v4.1.18 // indirect github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect @@ -107,15 +101,15 @@ require ( github.com/sirupsen/logrus v1.9.0 // indirect github.com/zeebo/xxh3 v1.0.2 // indirect golang.org/x/crypto v0.17.0 // indirect - golang.org/x/exp v0.0.0-20230321023759-10a507213a29 // indirect - golang.org/x/mod v0.8.0 // indirect + golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect + golang.org/x/mod v0.13.0 // indirect golang.org/x/net v0.18.0 // indirect golang.org/x/oauth2 v0.12.0 // indirect golang.org/x/sync v0.5.0 // indirect golang.org/x/sys v0.15.0 // indirect golang.org/x/term v0.15.0 // indirect golang.org/x/text v0.14.0 // indirect - golang.org/x/tools v0.6.0 // indirect + golang.org/x/tools v0.14.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect google.golang.org/appengine v1.6.7 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/go.sum b/go.sum index 07b50af7..7859948a 100644 --- a/go.sum +++ b/go.sum @@ -9,7 +9,9 @@ github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.0/go.mod h1:OQeznEEkTZ9Orh github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 h1:sXr+ck84g/ZlZUOZiNELInmMgOsuGwdjjVkEIde0OtY= github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0/go.mod h1:okt5dMMTOFjX/aovMlrjvvXoPMBVSPzk9185BT0+eZM= github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.0.0 h1:yfJe15aSwEQ6Oo6J+gdfdulPNoZ3TEhmbhLIoxZcA+U= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.0.0/go.mod h1:Q28U+75mpCaSCDowNEmhIo/rmgdkqmkmzI7N6TGR4UY= github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v0.8.0 h1:T028gtTPiYt/RMUfs8nVsAL7FDQrfLlrm/NnRG/zcC4= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v0.8.0/go.mod h1:cw4zVQgBby0Z5f2v0itn6se2dDP17nTjbZFXW5uPyHA= github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0 h1:u/LLAOFgsMv7HmNL4Qufg58y+qElGOt5qv0z1mURkRY= github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0/go.mod h1:2e8rMJtl2+2j+HXbTBwnyGpm5Nou7KhvSfxOq8JpTag= github.com/AzureAD/microsoft-authentication-library-for-go v1.1.0 h1:HCc0+LpPfpCKs6LGGLAhwBARt9632unrVcI6i8s/8os= @@ -21,12 +23,8 @@ github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c h1:RGWPOewvK github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= github.com/Masterminds/semver/v3 v3.1.1 h1:hLg3sBzpNErnxhQtUy/mmLR2I9foDujNK030IGemrRc= github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= -github.com/andybalholm/brotli v1.0.4 h1:V7DdXeJtZscaqfNuAdSRuRFzuiKlHSC/Zh3zl9qY3JY= -github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= -github.com/apache/arrow/go/v12 v12.0.1 h1:JsR2+hzYYjgSUkBSaahpqCetqZMr76djX80fF/DiJbg= -github.com/apache/arrow/go/v12 v12.0.1/go.mod h1:weuTY7JvTG/HDPtMQxEUp7pU73vkLWMLpY67QwZ/WWw= -github.com/apache/thrift v0.16.0 h1:qEy6UW60iVOlUy+b9ZR0d5WzUWYGOo4HfopoyBaNmoY= -github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= +github.com/apache/arrow/go/v14 v14.0.2 h1:N8OkaJEOfI3mEZt07BIkvo4sC6XDbL+48MBPWO5IONw= +github.com/apache/arrow/go/v14 v14.0.2/go.mod h1:u3fgh3EdgN/YQ8cVQRguVW3R+seMybFg8QBQ5LU+eBY= github.com/aws/aws-sdk-go-v2 v1.17.7/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= github.com/aws/aws-sdk-go-v2 v1.24.0 h1:890+mqQ+hTpNuw0gGP6/4akolQkSToDJgHfQE7AwGuk= github.com/aws/aws-sdk-go-v2 v1.24.0/go.mod h1:LNh45Br1YAkEKaAqvmE1m8FUx6a5b/V0oAKV7of29b4= @@ -102,6 +100,7 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI= +github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= github.com/dvsekhvalnov/jose2go v1.6.0 h1:Y9gnSnP4qEI0+/uQkHvFXeD2PLPJeXEL+ySMEA2EjTY= github.com/dvsekhvalnov/jose2go v1.6.0/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB/mPZadG+mhXU= github.com/elastic/go-sysinfo v1.8.1 h1:4Yhj+HdV6WjbCRgGdZpPJ8lZQlXZLKDAeIkmQ/VRvi4= @@ -124,8 +123,8 @@ github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG github.com/go-sql-driver/mysql v1.7.1 h1:lUIinVbN1DY0xBg0eMOzmmtGoHwWBbvnWubQUrtU8EI= github.com/go-sql-driver/mysql v1.7.1/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/goccy/go-json v0.10.0 h1:mXKd9Qw4NuzShiRlOXKews24ufknHO7gx30lsDyokKA= -github.com/goccy/go-json v0.10.0/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= +github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+Hoeu/iUR3ruzNvZ+yQfO03a0= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= @@ -133,27 +132,26 @@ github.com/gofrs/uuid v4.0.0+incompatible h1:1SD/1F5pU8p29ybwgQSwpQk+mwdRrXCYuPh github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/golang-jwt/jwt v3.2.1+incompatible h1:73Z+4BJcrTC+KczS6WvTPvRGOp1WmfEP4Q1lOd9Z/+c= github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= +github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v5 v5.0.0 h1:1n1XNM9hk7O9mnQoNBGolZvzebBQ7p93ULHRc28XJUE= github.com/golang-jwt/jwt/v5 v5.0.0/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA= github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A= github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI= -github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= -github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/flatbuffers v23.1.21+incompatible h1:bUqzx/MXCDxuS0hRJL2EfjyZL3uQrPbMocUa8zGqsTA= -github.com/google/flatbuffers v23.1.21+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= +github.com/google/flatbuffers v23.5.26+incompatible h1:M9dgRyhJemaM4Sw8+66GHBu8ioaQmyPLg1b8VwK5WJg= +github.com/google/flatbuffers v23.5.26+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= -github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4= +github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c h1:6rhixN/i8ZofjG1Y75iExal34USq5p+wiN1tpie8IrU= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c/go.mod h1:NMPJylDgVpX0MLRlPy15sqSwOFv/U1GZ2m21JhFfek0= github.com/jackc/chunkreader v1.0.0/go.mod h1:RT6O25fNZIuasFJRyZ4R/Y2BbhasbmZXF9QQ7T3kePo= @@ -217,20 +215,20 @@ github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX github.com/kardianos/minwinsvc v1.0.2 h1:JmZKFJQrmTGa/WiW+vkJXKmfzdjabuEW4Tirj5lLdR0= github.com/kardianos/minwinsvc v1.0.2/go.mod h1:LUZNYhNmxujx2tR7FbdxqYJ9XDDoCd3MQcl1o//FWl4= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/asmfmt v1.3.2 h1:4Ri7ox3EwapiOjCki+hw14RyKk201CN4rzyCJRFLpK4= -github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= -github.com/klauspost/compress v1.15.15 h1:EF27CXIuDsYJ6mmvtBRlEuB2UVOqHG1tAXgZ7yIO+lw= -github.com/klauspost/compress v1.15.15/go.mod h1:ZcK2JAFqKOpnBlxcLsJzYfrS9X1akm9fHZNnD9+Vo/4= -github.com/klauspost/cpuid/v2 v2.2.3 h1:sxCkb+qR91z4vsqw4vGGZlDgPz3G7gjaLyK3V8y70BU= -github.com/klauspost/cpuid/v2 v2.2.3/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= +github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I= +github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/cpuid/v2 v2.2.5 h1:0E5MSMDEoAulmXNFquVs//DdoomxaoTY1kUhbc/qbZg= +github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= @@ -249,10 +247,6 @@ github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 h1:jWpvCLoY8Z/e3VKvls github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0/go.mod h1:QUyp042oQthUoa9bqDv0ER0wrtXnBruoNd7aNjkbP+k= github.com/microsoft/go-mssqldb v1.6.0 h1:mM3gYdVwEPFrlg/Dvr2DNVEgYFG7L42l+dGc67NNNpc= github.com/microsoft/go-mssqldb v1.6.0/go.mod h1:00mDtPbeQCRGC1HwOOR5K/gr30P1NcEG0vx6Kbv2aJU= -github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8 h1:AMFGa4R4MiIpspGNG7Z948v4n35fFGB3RR3G/ry4FWs= -github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY= -github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3 h1:+n/aFZefKZp7spd8DFdX7uMikMLXX4oubIzJF4kv/wI= -github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3/go.mod h1:RagcQ7I8IeTMnF8JTXieKnO4Z6JCsikNEzj0DwauVzE= github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs= github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ibNBTZrns= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= @@ -260,8 +254,8 @@ github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRW github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/pierrec/lz4 v2.0.5+incompatible h1:2xWsjqPFWcplujydGg4WmhC/6fZqK42wMM8aXeqhl0I= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= -github.com/pierrec/lz4/v4 v4.1.17 h1:kV4Ip+/hUBC+8T6+2EgburRtkE9ef4nbY3f4dFhGjMc= -github.com/pierrec/lz4/v4 v4.1.17/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= +github.com/pierrec/lz4/v4 v4.1.18 h1:xaKrnTkyoqfh1YItXl56+6KJNVYWlEEPuAQW9xsplYQ= +github.com/pierrec/lz4/v4 v4.1.18/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU= github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -283,6 +277,7 @@ github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= +github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= @@ -298,8 +293,8 @@ github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMB github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/snowflakedb/gosnowflake v1.7.1 h1:c9JjyjjDlvxex9ud71TwKL+Wu54Vfx+39h4DAwbIdqU= -github.com/snowflakedb/gosnowflake v1.7.1/go.mod h1:JI3eRZL8CpimPek6CJO0aTbDQjDGOt7Rxv9A/ti4f5c= +github.com/snowflakedb/gosnowflake v1.7.2 h1:HRSwva8YXC64WUppfmHcMNVVzSE1+EwXXaJxgS0EkTo= +github.com/snowflakedb/gosnowflake v1.7.2/go.mod h1:03tW856vc3ceM4rJuj7KO4dzqN7qoezTm+xw7aPIIFo= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= @@ -315,12 +310,14 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/vertica/vertica-sql-go v1.3.3 h1:fL+FKEAEy5ONmsvya2WH5T8bhkvY27y/Ik3ReR2T+Qw= github.com/vertica/vertica-sql-go v1.3.3/go.mod h1:jnn2GFuv+O2Jcjktb7zyc4Utlbu9YVqpHH/lx63+1M4= github.com/xo/dburl v0.20.0 h1:v601OhM9J4Zh56R270ncM9HRgoxp39tf9+nt5ft9UD0= github.com/xo/dburl v0.20.0/go.mod h1:B7/G9FGungw6ighV8xJNwWYQPMfn3gsi2sn5SE8Bzco= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= +github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= @@ -348,15 +345,14 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= -golang.org/x/exp v0.0.0-20230321023759-10a507213a29 h1:ooxPy7fPvB4kwsA2h+iBNHkAbp/4JxTSwCmvdjEYmug= -golang.org/x/exp v0.0.0-20230321023759-10a507213a29/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= +golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI= +golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= -golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.13.0 h1:I/DsJXRlw/8l/0c24sM9yb0T4z9liZTduXvdAWYiysY= +golang.org/x/mod v0.13.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= @@ -389,7 +385,6 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -420,8 +415,8 @@ golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/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.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= -golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/tools v0.14.0 h1:jvNa2pY0M4r62jkRQ6RwEZZyPcymeL9XZMLBbV7U2nc= +golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -430,7 +425,8 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -gonum.org/v1/gonum v0.11.0 h1:f1IJhK4Km5tBJmaiJXtk/PkL4cdVX6J+tGiM187uT5E= +gonum.org/v1/gonum v0.12.0 h1:xKuo6hzt+gMav00meVPUlXwSdoEJP46BR+wdxQEFK2o= +gonum.org/v1/gonum v0.12.0/go.mod h1:73TDxJfAAHeA8Mk9mf8NlIppyhQNo5GLTcYeqgo2lvY= google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= @@ -441,6 +437,7 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= From b7159e4a4550ad241f08cea0471613ff22c434e4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Feb 2024 23:42:59 +0100 Subject: [PATCH 172/401] deps: bump github.com/prometheus/common from 0.45.0 to 0.46.0 (#438) Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.45.0 to 0.46.0. - [Release notes](https://github.com/prometheus/common/releases) - [Commits](https://github.com/prometheus/common/compare/v0.45.0...v0.46.0) --- updated-dependencies: - dependency-name: github.com/prometheus/common dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 13 ++++++------- go.sum | 26 ++++++++++++-------------- 2 files changed, 18 insertions(+), 21 deletions(-) diff --git a/go.mod b/go.mod index b10fd62b..51d7b508 100644 --- a/go.mod +++ b/go.mod @@ -16,7 +16,7 @@ require ( github.com/microsoft/go-mssqldb v1.6.0 github.com/prometheus/client_golang v1.18.0 github.com/prometheus/client_model v0.5.0 - github.com/prometheus/common v0.45.0 + github.com/prometheus/common v0.46.0 github.com/prometheus/exporter-toolkit v0.11.0 github.com/sethvargo/go-envconfig v1.0.0 github.com/snowflakedb/gosnowflake v1.7.2 @@ -90,7 +90,6 @@ require ( github.com/klauspost/compress v1.16.7 // indirect github.com/klauspost/cpuid/v2 v2.2.5 // indirect github.com/kylelemons/godebug v1.1.0 // indirect - github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 // indirect github.com/mtibben/percent v0.2.1 // indirect github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect github.com/pierrec/lz4/v4 v4.1.18 // indirect @@ -100,14 +99,14 @@ require ( github.com/prometheus/procfs v0.12.0 // indirect github.com/sirupsen/logrus v1.9.0 // indirect github.com/zeebo/xxh3 v1.0.2 // indirect - golang.org/x/crypto v0.17.0 // indirect + golang.org/x/crypto v0.18.0 // indirect golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect golang.org/x/mod v0.13.0 // indirect - golang.org/x/net v0.18.0 // indirect - golang.org/x/oauth2 v0.12.0 // indirect + golang.org/x/net v0.20.0 // indirect + golang.org/x/oauth2 v0.16.0 // indirect golang.org/x/sync v0.5.0 // indirect - golang.org/x/sys v0.15.0 // indirect - golang.org/x/term v0.15.0 // indirect + golang.org/x/sys v0.16.0 // indirect + golang.org/x/term v0.16.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/tools v0.14.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect diff --git a/go.sum b/go.sum index 7859948a..6a9e2d2c 100644 --- a/go.sum +++ b/go.sum @@ -243,8 +243,6 @@ github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hd github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= -github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 h1:jWpvCLoY8Z/e3VKvlsiIGKtc+UG6U5vzxaoagmhXfyg= -github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0/go.mod h1:QUyp042oQthUoa9bqDv0ER0wrtXnBruoNd7aNjkbP+k= github.com/microsoft/go-mssqldb v1.6.0 h1:mM3gYdVwEPFrlg/Dvr2DNVEgYFG7L42l+dGc67NNNpc= github.com/microsoft/go-mssqldb v1.6.0/go.mod h1:00mDtPbeQCRGC1HwOOR5K/gr30P1NcEG0vx6Kbv2aJU= github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs= @@ -268,8 +266,8 @@ github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+ github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA= github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= -github.com/prometheus/common v0.45.0 h1:2BGz0eBc2hdMDLnO/8n0jeB3oPrt2D08CekT0lneoxM= -github.com/prometheus/common v0.45.0/go.mod h1:YJmSTw9BoKxJplESWWxlbyttQR4uaEcGyv9MZjVOJsY= +github.com/prometheus/common v0.46.0 h1:doXzt5ybi1HBKpsZOL0sSkaNHJJqkyfEWZGGqqScV0Y= +github.com/prometheus/common v0.46.0/go.mod h1:Tp0qkxpb9Jsg54QMe+EAmqXkSV7Evdy1BTn+g2pa/hQ= github.com/prometheus/exporter-toolkit v0.11.0 h1:yNTsuZ0aNCNFQ3aFTD2uhPOvr4iD7fdBvKPAEGkNf+g= github.com/prometheus/exporter-toolkit v0.11.0/go.mod h1:BVnENhnNecpwoTLiABx7mrPB/OLRIgN74qlQbV+FK1Q= github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= @@ -343,8 +341,8 @@ golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= -golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= -golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= +golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI= golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -361,10 +359,10 @@ golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.18.0 h1:mIYleuAkSbHh0tCv7RvjL3F6ZVbLjq4+R7zbOn3Kokg= -golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= -golang.org/x/oauth2 v0.12.0 h1:smVPGxink+n1ZI5pkQa8y6fZT0RW0MgCO5bFpepy4B4= -golang.org/x/oauth2 v0.12.0/go.mod h1:A74bZ3aGXgCY0qaIC9Ahg6Lglin4AMAco8cIv9baba4= +golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= +golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= +golang.org/x/oauth2 v0.16.0 h1:aDkGMBSYxElaoP81NpoUoz2oo2R2wHdZpGToUxfyQrQ= +golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -388,14 +386,14 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4= -golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= +golang.org/x/term v0.16.0 h1:m+B6fahuftsE9qjo0VWp2FW0mB3MTJvR0BaMQrq0pmE= +golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= From be8c03a73f688f383429343f960b25dd9a1f67f3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Feb 2024 23:43:18 +0100 Subject: [PATCH 173/401] deps: bump github.com/xo/dburl from 0.20.0 to 0.21.1 (#437) Bumps [github.com/xo/dburl](https://github.com/xo/dburl) from 0.20.0 to 0.21.1. - [Release notes](https://github.com/xo/dburl/releases) - [Commits](https://github.com/xo/dburl/compare/v0.20.0...v0.21.1) --- updated-dependencies: - dependency-name: github.com/xo/dburl dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 51d7b508..1f62b570 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/sethvargo/go-envconfig v1.0.0 github.com/snowflakedb/gosnowflake v1.7.2 github.com/vertica/vertica-sql-go v1.3.3 - github.com/xo/dburl v0.20.0 + github.com/xo/dburl v0.21.1 google.golang.org/protobuf v1.32.0 gopkg.in/yaml.v3 v3.0.1 k8s.io/klog/v2 v2.70.1 diff --git a/go.sum b/go.sum index 6a9e2d2c..da862f37 100644 --- a/go.sum +++ b/go.sum @@ -311,8 +311,8 @@ github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcU github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/vertica/vertica-sql-go v1.3.3 h1:fL+FKEAEy5ONmsvya2WH5T8bhkvY27y/Ik3ReR2T+Qw= github.com/vertica/vertica-sql-go v1.3.3/go.mod h1:jnn2GFuv+O2Jcjktb7zyc4Utlbu9YVqpHH/lx63+1M4= -github.com/xo/dburl v0.20.0 h1:v601OhM9J4Zh56R270ncM9HRgoxp39tf9+nt5ft9UD0= -github.com/xo/dburl v0.20.0/go.mod h1:B7/G9FGungw6ighV8xJNwWYQPMfn3gsi2sn5SE8Bzco= +github.com/xo/dburl v0.21.1 h1:n5mfH1fh51RQbvuaKKykGslodt8pZqyZJMNohVo2zK0= +github.com/xo/dburl v0.21.1/go.mod h1:B7/G9FGungw6ighV8xJNwWYQPMfn3gsi2sn5SE8Bzco= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= From 8bf39a277fd1a586002577c3814f2f0ad8d8377b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Feb 2024 23:46:22 +0100 Subject: [PATCH 174/401] deps: bump github.com/aws/aws-sdk-go-v2 from 1.24.0 to 1.24.1 (#439) Bumps [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) from 1.24.0 to 1.24.1. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.24.0...v1.24.1) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 1f62b570..37681444 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ toolchain go1.21.5 require ( github.com/ClickHouse/clickhouse-go v1.5.4 - github.com/aws/aws-sdk-go-v2 v1.24.0 + github.com/aws/aws-sdk-go-v2 v1.24.1 github.com/aws/aws-sdk-go-v2/config v1.26.2 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.26.0 github.com/go-sql-driver/mysql v1.7.1 diff --git a/go.sum b/go.sum index da862f37..6f366ccb 100644 --- a/go.sum +++ b/go.sum @@ -26,8 +26,8 @@ github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0 github.com/apache/arrow/go/v14 v14.0.2 h1:N8OkaJEOfI3mEZt07BIkvo4sC6XDbL+48MBPWO5IONw= github.com/apache/arrow/go/v14 v14.0.2/go.mod h1:u3fgh3EdgN/YQ8cVQRguVW3R+seMybFg8QBQ5LU+eBY= github.com/aws/aws-sdk-go-v2 v1.17.7/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= -github.com/aws/aws-sdk-go-v2 v1.24.0 h1:890+mqQ+hTpNuw0gGP6/4akolQkSToDJgHfQE7AwGuk= -github.com/aws/aws-sdk-go-v2 v1.24.0/go.mod h1:LNh45Br1YAkEKaAqvmE1m8FUx6a5b/V0oAKV7of29b4= +github.com/aws/aws-sdk-go-v2 v1.24.1 h1:xAojnj+ktS95YZlDf0zxWBkbFtymPeDP+rvUQIH3uAU= +github.com/aws/aws-sdk-go-v2 v1.24.1/go.mod h1:LNh45Br1YAkEKaAqvmE1m8FUx6a5b/V0oAKV7of29b4= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10/go.mod h1:VeTZetY5KRJLuD/7fkQXMU6Mw7H5m/KP2J5Iy9osMno= github.com/aws/aws-sdk-go-v2/config v1.18.19/go.mod h1:XvTmGMY8d52ougvakOv1RpiTLPz9dlG/OQHsKU/cMmY= From 8b4e939b82b14c0b944bbda5724529ef652f2b25 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Feb 2024 23:50:52 +0100 Subject: [PATCH 175/401] deps: bump github.com/aws/aws-sdk-go-v2/config from 1.26.2 to 1.26.6 (#440) Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.26.2 to 1.26.6. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.26.2...config/v1.26.6) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/config dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 20 ++++++++++---------- go.sum | 40 ++++++++++++++++++++-------------------- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/go.mod b/go.mod index 37681444..580155d8 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ toolchain go1.21.5 require ( github.com/ClickHouse/clickhouse-go v1.5.4 github.com/aws/aws-sdk-go-v2 v1.24.1 - github.com/aws/aws-sdk-go-v2/config v1.26.2 + github.com/aws/aws-sdk-go-v2/config v1.26.6 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.26.0 github.com/go-sql-driver/mysql v1.7.1 github.com/jackc/pgx/v4 v4.18.1 @@ -38,21 +38,21 @@ require ( github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c // indirect github.com/apache/arrow/go/v14 v14.0.2 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.16.13 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.10 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.16.16 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.11 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.9 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.9 // indirect - github.com/aws/aws-sdk-go-v2/internal/ini v1.7.2 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.10 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.10 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.7.3 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4 // indirect github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.9 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.10 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 // indirect github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.18.5 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.5 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.26.6 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.18.7 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.7 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.26.7 // indirect github.com/aws/smithy-go v1.19.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect diff --git a/go.sum b/go.sum index 6f366ccb..810f207a 100644 --- a/go.sum +++ b/go.sum @@ -31,25 +31,25 @@ github.com/aws/aws-sdk-go-v2 v1.24.1/go.mod h1:LNh45Br1YAkEKaAqvmE1m8FUx6a5b/V0o github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10/go.mod h1:VeTZetY5KRJLuD/7fkQXMU6Mw7H5m/KP2J5Iy9osMno= github.com/aws/aws-sdk-go-v2/config v1.18.19/go.mod h1:XvTmGMY8d52ougvakOv1RpiTLPz9dlG/OQHsKU/cMmY= -github.com/aws/aws-sdk-go-v2/config v1.26.2 h1:+RWLEIWQIGgrz2pBPAUoGgNGs1TOyF4Hml7hCnYj2jc= -github.com/aws/aws-sdk-go-v2/config v1.26.2/go.mod h1:l6xqvUxt0Oj7PI/SUXYLNyZ9T/yBPn3YTQcJLLOdtR8= +github.com/aws/aws-sdk-go-v2/config v1.26.6 h1:Z/7w9bUqlRI0FFQpetVuFYEsjzE3h7fpU6HuGmfPL/o= +github.com/aws/aws-sdk-go-v2/config v1.26.6/go.mod h1:uKU6cnDmYCvJ+pxO9S4cWDb2yWWIH5hra+32hVh1MI4= github.com/aws/aws-sdk-go-v2/credentials v1.13.18/go.mod h1:vnwlwjIe+3XJPBYKu1et30ZPABG3VaXJYr8ryohpIyM= -github.com/aws/aws-sdk-go-v2/credentials v1.16.13 h1:WLABQ4Cp4vXtXfOWOS3MEZKr6AAYUpMczLhgKtAjQ/8= -github.com/aws/aws-sdk-go-v2/credentials v1.16.13/go.mod h1:Qg6x82FXwW0sJHzYruxGiuApNo31UEtJvXVSZAXeWiw= +github.com/aws/aws-sdk-go-v2/credentials v1.16.16 h1:8q6Rliyv0aUFAVtzaldUEcS+T5gbadPbWdV1WcAddK8= +github.com/aws/aws-sdk-go-v2/credentials v1.16.16/go.mod h1:UHVZrdUsv63hPXFo1H7c5fEneoVo9UXiz36QG1GEPi0= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.1/go.mod h1:lfUx8puBRdM5lVVMQlwt2v+ofiG/X6Ms+dy0UkG/kXw= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.10 h1:w98BT5w+ao1/r5sUuiH6JkVzjowOKeOJRHERyy1vh58= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.10/go.mod h1:K2WGI7vUvkIv1HoNbfBA1bvIZ+9kL3YVmWxeKuLQsiw= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.11 h1:c5I5iH+DZcH3xOIMlz3/tCKJDaHFwYEmxvlh2fAcFo8= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.11/go.mod h1:cRrYDYAMUohBJUtUnOhydaMHtiK/1NZ0Otc9lIb6O0Y= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 h1:E3Y+OfzOK1+rmRo/K2G0ml8Vs+Xqk0kOnf4nS0kUtBc= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59/go.mod h1:1M4PLSBUVfBI0aP+C9XI7SM6kZPCGYyI6izWz0TGprE= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.31/go.mod h1:QT0BqUvX1Bh2ABdTGnjqEjvjzrCfIniM9Sc8zn9Yndo= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.9 h1:v+HbZaCGmOwnTTVS86Fleq0vPzOd7tnJGbFhP0stNLs= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.9/go.mod h1:Xjqy+Nyj7VDLBtCMkQYOw1QYfAEZCVLrfI0ezve8wd4= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.10 h1:vF+Zgd9s+H4vOXd5BMaPWykta2a6Ih0AKLq/X6NYKn4= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.10/go.mod h1:6BkRjejp/GR4411UGqkX8+wFMbFbqsUIimfK4XjOKR4= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.25/go.mod h1:zBHOPwhBc3FlQjQJE/D3IfPWiWaQmT06Vq9aNukDo0k= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.9 h1:N94sVhRACtXyVcjXxrwK1SKFIJrA9pOJ5yu2eSHnmls= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.9/go.mod h1:hqamLz7g1/4EJP+GH5NBhcUMLjW+gKLQabgyz6/7WAU= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.10 h1:nYPe006ktcqUji8S2mqXf9c/7NdiKriOwMvWQHgYztw= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.10/go.mod h1:6UV4SZkVvmODfXKql4LCbaZUpF7HO2BX38FgBf9ZOLw= github.com/aws/aws-sdk-go-v2/internal/ini v1.3.32/go.mod h1:XGhIBZDEgfqmFIugclZ6FU7v75nHhBDtzuB4xB/tEi4= -github.com/aws/aws-sdk-go-v2/internal/ini v1.7.2 h1:GrSw8s0Gs/5zZ0SX+gX4zQjRnRsMJDJ2sLur1gRBhEM= -github.com/aws/aws-sdk-go-v2/internal/ini v1.7.2/go.mod h1:6fQQgfuGmw8Al/3M2IgIllycxV7ZW7WCdVSqfBeUiCY= +github.com/aws/aws-sdk-go-v2/internal/ini v1.7.3 h1:n3GDfwqF2tzEkXlv5cuy4iy7LpKDtqDMcNLfZDu9rls= +github.com/aws/aws-sdk-go-v2/internal/ini v1.7.3/go.mod h1:6fQQgfuGmw8Al/3M2IgIllycxV7ZW7WCdVSqfBeUiCY= github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 h1:DWYZIsyqagnWL00f8M/SOr9fN063OEQWn9LLTbdYXsk= github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23/go.mod h1:uIiFgURZbACBEQJfqTZPb/jxO7R+9LeoHUFudtIdeQI= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11/go.mod h1:iV4q2hsqtNECrfmlXyord9u4zyuFEJX9eLgLpSPzWA8= @@ -58,8 +58,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4/go.mod h1: github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26 h1:CeuSeq/8FnYpPtnuIeLQEEvDv9zUjneuYi8EghMBdwQ= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26/go.mod h1:2UqAAwMUXKeRkAHIlDJqvMVgOWkUi/AUXPk/YIe+Dg4= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.25/go.mod h1:/95IA+0lMnzW6XzqYJRpjjsAbKEORVeO0anQqjd2CNU= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.9 h1:Nf2sHxjMJR8CSImIVCONRi4g0Su3J+TSTbS7G0pUeMU= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.9/go.mod h1:idky4TER38YIjr2cADF1/ugFMKvZV7p//pVeV5LZbF0= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.10 h1:DBYTXwIGQSGs9w4jKm60F5dmCQ3EEruxdc0MFh+3EY4= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.10/go.mod h1:wohMUQiFdzo0NtxbBg0mSRGZ4vL3n0dKjLTINdcIino= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 h1:e2ooMhpYGhDnBfSvIyusvAwX7KexuZaHbQY2Dyei7VU= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0/go.mod h1:bh2E0CXKZsQN+faiKVqC40vfNMAWheoULBCnEgO9K+8= github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 h1:B1G2pSPvbAtQjilPq+Y7jLIzCOwKzuVEl+aBBaNG0AQ= @@ -67,14 +67,14 @@ github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0/go.mod h1:ncltU6n4Nof5uJttDtcNQ5 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.26.0 h1:dPCRgAL4WD9tSMaDglRNGOiAtSTjkwNiUW5GDpWFfHA= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.26.0/go.mod h1:4Ae1NCLK6ghmjzd45Tc33GgCKhUWD2ORAlULtMO1Cbs= github.com/aws/aws-sdk-go-v2/service/sso v1.12.6/go.mod h1:Y1VOmit/Fn6Tz1uFAeCO6Q7M2fmfXSCLeL5INVYsLuY= -github.com/aws/aws-sdk-go-v2/service/sso v1.18.5 h1:ldSFWz9tEHAwHNmjx2Cvy1MjP5/L9kNoR0skc6wyOOM= -github.com/aws/aws-sdk-go-v2/service/sso v1.18.5/go.mod h1:CaFfXLYL376jgbP7VKC96uFcU8Rlavak0UlAwk1Dlhc= +github.com/aws/aws-sdk-go-v2/service/sso v1.18.7 h1:eajuO3nykDPdYicLlP3AGgOyVN3MOlFmZv7WGTuJPow= +github.com/aws/aws-sdk-go-v2/service/sso v1.18.7/go.mod h1:+mJNDdF+qiUlNKNC3fxn74WWNN+sOiGOEImje+3ScPM= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.6/go.mod h1:Lh/bc9XUf8CfOY6Jp5aIkQtN+j1mc+nExc+KXj9jx2s= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.5 h1:2k9KmFawS63euAkY4/ixVNsYYwrwnd5fIvgEKkfZFNM= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.5/go.mod h1:W+nd4wWDVkSUIox9bacmkBP5NMFQeTJ/xqNabpzSR38= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.7 h1:QPMJf+Jw8E1l7zqhZmMlFw6w1NmfkfiSK8mS4zOx3BA= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.7/go.mod h1:ykf3COxYI0UJmxcfcxcVuz7b6uADi1FkiUz6Eb7AgM8= github.com/aws/aws-sdk-go-v2/service/sts v1.18.7/go.mod h1:JuTnSoeePXmMVe9G8NcjjwgOKEfZ4cOjMuT2IBT/2eI= -github.com/aws/aws-sdk-go-v2/service/sts v1.26.6 h1:HJeiuZ2fldpd0WqngyMR6KW7ofkXNLyOaHwEIGm39Cs= -github.com/aws/aws-sdk-go-v2/service/sts v1.26.6/go.mod h1:XX5gh4CB7wAs4KhcF46G6C8a2i7eupU19dcAAE+EydU= +github.com/aws/aws-sdk-go-v2/service/sts v1.26.7 h1:NzO4Vrau795RkUdSHKEwiR01FaGzGOH1EETJ+5QHnm0= +github.com/aws/aws-sdk-go-v2/service/sts v1.26.7/go.mod h1:6h2YuIoxaMSCFf5fi1EgZAwdfkGMgDY+DVfa61uLe4U= github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= github.com/aws/smithy-go v1.19.0 h1:KWFKQV80DpP3vJrrA9sVAHQ5gc2z8i4EzrLhLlWXcBM= github.com/aws/smithy-go v1.19.0/go.mod h1:NukqUGpCZIILqqiV0NIjeFh24kd/FAa4beRb6nbIUPE= From 42eb5b33996c943a99b11c88ed3d2611ba428f35 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Feb 2024 23:56:20 +0100 Subject: [PATCH 176/401] deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager from 1.26.0 to 1.26.2 (#442) deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager Bumps [github.com/aws/aws-sdk-go-v2/service/secretsmanager](https://github.com/aws/aws-sdk-go-v2) from 1.26.0 to 1.26.2. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.26.0...config/v1.26.2) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/service/secretsmanager dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 580155d8..60c73927 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/ClickHouse/clickhouse-go v1.5.4 github.com/aws/aws-sdk-go-v2 v1.24.1 github.com/aws/aws-sdk-go-v2/config v1.26.6 - github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.26.0 + github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.26.2 github.com/go-sql-driver/mysql v1.7.1 github.com/jackc/pgx/v4 v4.18.1 github.com/kardianos/minwinsvc v1.0.2 diff --git a/go.sum b/go.sum index 810f207a..af417f4f 100644 --- a/go.sum +++ b/go.sum @@ -64,8 +64,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 h1:e2ooMhpYGhDnBf github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0/go.mod h1:bh2E0CXKZsQN+faiKVqC40vfNMAWheoULBCnEgO9K+8= github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 h1:B1G2pSPvbAtQjilPq+Y7jLIzCOwKzuVEl+aBBaNG0AQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0/go.mod h1:ncltU6n4Nof5uJttDtcNQ537uNuwYqsZZQcpkd2/GUQ= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.26.0 h1:dPCRgAL4WD9tSMaDglRNGOiAtSTjkwNiUW5GDpWFfHA= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.26.0/go.mod h1:4Ae1NCLK6ghmjzd45Tc33GgCKhUWD2ORAlULtMO1Cbs= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.26.2 h1:A5sGOT/mukuU+4At1vkSIWAN8tPwPCoYZBp7aruR540= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.26.2/go.mod h1:qutL00aW8GSo2D0I6UEOqMvRS3ZyuBrOC1BLe5D2jPc= github.com/aws/aws-sdk-go-v2/service/sso v1.12.6/go.mod h1:Y1VOmit/Fn6Tz1uFAeCO6Q7M2fmfXSCLeL5INVYsLuY= github.com/aws/aws-sdk-go-v2/service/sso v1.18.7 h1:eajuO3nykDPdYicLlP3AGgOyVN3MOlFmZv7WGTuJPow= github.com/aws/aws-sdk-go-v2/service/sso v1.18.7/go.mod h1:+mJNDdF+qiUlNKNC3fxn74WWNN+sOiGOEImje+3ScPM= From b62d4d17a7cc017c7072e026d6bd7921909b9b09 Mon Sep 17 00:00:00 2001 From: Nikolai Rodionov Date: Sat, 24 Feb 2024 20:37:34 +0100 Subject: [PATCH 177/401] feat(helm): add an ability to mount extra volumes (#446) * Add an ability to mount extra volumes * Bump the chart version * Create a config by default * Update the README --- helm/Chart.yaml | 2 +- helm/README.md | 5 ++++- helm/README.md.gotmpl | 2 ++ helm/templates/_helpers.tpl | 10 ++++++++++ helm/templates/deployment.yaml | 20 ++++++++++++++++++++ helm/templates/secret.configuration.yaml | 2 ++ helm/values.yaml | 19 ++++++++++++++++++- 7 files changed, 57 insertions(+), 3 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 3d75ec7a..d3b6ce87 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: sql-exporter description: Database agnostic SQL exporter for Prometheus type: application -version: 0.2.5 +version: 0.3.0 appVersion: 0.13.1 keywords: - exporter diff --git a/helm/README.md b/helm/README.md index 60115c81..eee27ed9 100644 --- a/helm/README.md +++ b/helm/README.md @@ -1,6 +1,6 @@ # sql-exporter -![Version: 0.2.5](https://img.shields.io/badge/Version-0.2.5-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.13.1](https://img.shields.io/badge/AppVersion-0.13.1-informational?style=flat-square) +![Version: 0.3.0](https://img.shields.io/badge/Version-0.3.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.13.1](https://img.shields.io/badge/AppVersion-0.13.1-informational?style=flat-square) Database agnostic SQL exporter for Prometheus @@ -43,6 +43,7 @@ helm install sql_exporter/sql-exporter | podLabels | object | `{}` | Pod labels | | podAnnotations | object | `{}` | Pod annotations | | podSecurityContext | object | `{}` | Pod security context | +| createConfig | bool | `true` | | ### Prometheus ServiceMonitor @@ -66,6 +67,8 @@ helm install sql_exporter/sql-exporter | jobs | list | `nil` | Check documentation. Mutually exclusive with `target` | | collector_files | list | `[]` | Check documentation | +To generate the config as a part of a helm release, please set the `.Values.createConfig` to true, and define a config under the `.Values.config` property. + To configure `target`, `jobs`, `collector_files` please refer to the [documentation](https://github.com/burningalchemist/sql_exporter/blob/master/documentation/sql_exporter.yml) in the source repository. These values are not set by default. It's also possible to define collectors (i.e. metrics and queries) in separate files, and specify the filenames in the `collector_files` list. For that we can use `CollectorFiles` field (check `values.yaml` for the available example). diff --git a/helm/README.md.gotmpl b/helm/README.md.gotmpl index cd989813..03092e0d 100644 --- a/helm/README.md.gotmpl +++ b/helm/README.md.gotmpl @@ -57,6 +57,8 @@ helm install sql_exporter/sql-exporter | jobs | list | `nil` | Check documentation. Mutually exclusive with `target` | | collector_files | list | `[]` | Check documentation | +To generate the config as a part of a helm release, please set the `.Values.createConfig` to true, and define a config under the `.Values.config` property. + To configure `target`, `jobs`, `collector_files` please refer to the [documentation](https://github.com/burningalchemist/sql_exporter/blob/master/documentation/sql_exporter.yml) in the source repository. These values are not set by default. It's also possible to define collectors (i.e. metrics and queries) in separate files, and specify the filenames in the `collector_files` list. For that we can use `CollectorFiles` field (check `values.yaml` for the available example). diff --git a/helm/templates/_helpers.tpl b/helm/templates/_helpers.tpl index 5251b7c0..ad6d3501 100644 --- a/helm/templates/_helpers.tpl +++ b/helm/templates/_helpers.tpl @@ -60,3 +60,13 @@ Create the name of the service account to use {{- default "default" .Values.serviceAccount.name }} {{- end }} {{- end }} + +{{- define "sql-exporter.volumes" -}} +{{- if or .Values.createConfig .Values.collectorFiles -}} +{{- true | quote -}} +{{- else if .Values.extraVolumes -}} +{{- true | quote -}} +{{- else -}} +{{- false | quote -}} +{{- end -}} +{{- end -}} diff --git a/helm/templates/deployment.yaml b/helm/templates/deployment.yaml index 7de0a158..2e4a9fbf 100644 --- a/helm/templates/deployment.yaml +++ b/helm/templates/deployment.yaml @@ -29,15 +29,23 @@ spec: {{- end }} securityContext: {{- toYaml .Values.podSecurityContext | nindent 8 }} + {{- if eq (include "sql-exporter.volumes" .) "\"true\"" }} volumes: + {{- if .Values.createConfig }} - name: sql-exporter secret: secretName: {{ include "sql-exporter.fullname" . }} + {{- end }} {{- if .Values.collectorFiles }} - name: sql-collector configMap: name: {{ include "sql-exporter.fullname" . }} {{- end }} + {{- end }} + {{- range $v := .Values.extraVolumes }} + - name: {{ $v.name }} + {{- toYaml $v.volume | nindent 10 }} + {{- end }} containers: - name: {{ .Chart.Name }} securityContext: @@ -45,15 +53,27 @@ spec: image: "{{ .Values.image.repository }}:{{ default .Chart.AppVersion .Values.image.tag }}" imagePullPolicy: {{ .Values.image.pullPolicy }} args: ["-config.file=/etc/sql_exporter/sql_exporter.yml"] + {{- if eq (include "sql-exporter.volumes" .) "\"true\"" }} volumeMounts: + {{- if .Values.createConfig }} - name: sql-exporter readOnly: true mountPath: /etc/sql_exporter/ + {{- end }} {{- if .Values.collectorFiles }} - name: sql-collector readOnly: true mountPath: /etc/sql_exporter/collectors/ {{- end }} + {{- range $v := .Values.extraVolumes }} + - name: {{ $v.name }} + {{- toYaml $v.mount | nindent 14 }} + {{- end }} + {{- end }} + {{- with .Values.envFrom }} + envFrom: + {{- toYaml . | nindent 12 }} + {{- end }} {{- if .Values.env }} env: {{- range $key, $value := .Values.env }} diff --git a/helm/templates/secret.configuration.yaml b/helm/templates/secret.configuration.yaml index 6a83e995..8501957c 100644 --- a/helm/templates/secret.configuration.yaml +++ b/helm/templates/secret.configuration.yaml @@ -1,6 +1,7 @@ # --------------------------------------------------------------------- # -- This secret holds the config file of sql_exporter # --------------------------------------------------------------------- +{{- if .Values.createConfig }} apiVersion: v1 kind: Secret metadata: @@ -11,3 +12,4 @@ type: Opaque stringData: sql_exporter.yml: |- {{- toYaml .Values.config | nindent 4 }} +{{- end }} diff --git a/helm/values.yaml b/helm/values.yaml index 148d323b..01329a5c 100644 --- a/helm/values.yaml +++ b/helm/values.yaml @@ -77,6 +77,24 @@ serviceMonitor: # kind: Secret # name: sql_exporter_secret # key: CONNECTION_STRING +# envFrom: +# - configMapRef: +# name: env-configmap +# - secretRef: +# name: env-secrets +# extraVolumes: +# - name: configmap-mount +# volume: +# configMap: +# name: log-config +# items: +# - key: log_level +# path: log_level +# mount: +# readOnly: true +# mountPath: /etc/config +# Set to true to create a config as a part of the helm chart +createConfig: true config: global: # -- Scrape timeout @@ -118,7 +136,6 @@ config: # GROUP BY datname, usename, state; # collector_files: # - "*.collector.yml" - # --------------------------------------------------------------------- # -- Collector Files # --------------------------------------------------------------------- From 56add58901366da9547abf3e321210359c4f1eae Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 24 Feb 2024 22:10:04 +0100 Subject: [PATCH 178/401] deps: bump github.com/microsoft/go-mssqldb from 1.6.0 to 1.7.0 (#448) Bumps [github.com/microsoft/go-mssqldb](https://github.com/microsoft/go-mssqldb) from 1.6.0 to 1.7.0. - [Release notes](https://github.com/microsoft/go-mssqldb/releases) - [Changelog](https://github.com/microsoft/go-mssqldb/blob/main/CHANGELOG.md) - [Commits](https://github.com/microsoft/go-mssqldb/compare/v1.6.0...v1.7.0) --- updated-dependencies: - dependency-name: github.com/microsoft/go-mssqldb dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 16 ++++++++-------- go.sum | 45 +++++++++++++++++++++------------------------ 2 files changed, 29 insertions(+), 32 deletions(-) diff --git a/go.mod b/go.mod index 60c73927..0b0c92bc 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,7 @@ require ( github.com/jackc/pgx/v4 v4.18.1 github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.9 - github.com/microsoft/go-mssqldb v1.6.0 + github.com/microsoft/go-mssqldb v1.7.0 github.com/prometheus/client_golang v1.18.0 github.com/prometheus/client_model v0.5.0 github.com/prometheus/common v0.46.0 @@ -30,11 +30,11 @@ require ( require ( github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.2 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.1 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.1 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.1 // indirect + github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.1 // indirect github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0 // indirect - github.com/AzureAD/microsoft-authentication-library-for-go v1.1.0 // indirect + github.com/AzureAD/microsoft-authentication-library-for-go v1.2.1 // indirect github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c // indirect github.com/apache/arrow/go/v14 v14.0.2 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 // indirect @@ -70,12 +70,12 @@ require ( github.com/go-logr/logr v1.4.1 // indirect github.com/goccy/go-json v0.10.2 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect - github.com/golang-jwt/jwt/v5 v5.0.0 // indirect + github.com/golang-jwt/jwt/v5 v5.2.0 // indirect github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 // indirect github.com/golang-sql/sqlexp v0.1.0 // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/google/flatbuffers v23.5.26+incompatible // indirect - github.com/google/uuid v1.3.1 // indirect + github.com/google/uuid v1.6.0 // indirect github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect github.com/jackc/chunkreader/v2 v2.0.1 // indirect github.com/jackc/pgconn v1.14.0 // indirect @@ -93,7 +93,7 @@ require ( github.com/mtibben/percent v0.2.1 // indirect github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect github.com/pierrec/lz4/v4 v4.1.18 // indirect - github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect + github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/procfs v0.12.0 // indirect diff --git a/go.sum b/go.sum index af417f4f..cb8d6acd 100644 --- a/go.sum +++ b/go.sum @@ -2,20 +2,20 @@ github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 h1:/vQbFIOMb github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4/go.mod h1:hN7oaIRCjzsZ2dE+yG5k+rsdt3qcwykqK6HVGcKwsw4= github.com/99designs/keyring v1.2.2 h1:pZd3neh/EmUzWONb35LxQfvuY7kiSXAq3HQd97+XBn0= github.com/99designs/keyring v1.2.2/go.mod h1:wes/FrByc8j7lFOAGLGSNEg8f/PaI3cgTBqhFkHUrPk= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.1 h1:/iHxaJhsFr0+xVFfbMr5vxz848jyiWuIEDhYq3y5odY= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.1/go.mod h1:bjGvMhVMb+EEm3VRNQawDMUyMMjo+S5ewNjflkep/0Q= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.0 h1:vcYCAze6p19qBW7MhZybIsqD8sMV8js0NyQM8JDnVtg= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.0/go.mod h1:OQeznEEkTZ9OrhHJoDD8ZDq51FHgXjqtP9z6bEwBq9U= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 h1:sXr+ck84g/ZlZUOZiNELInmMgOsuGwdjjVkEIde0OtY= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0/go.mod h1:okt5dMMTOFjX/aovMlrjvvXoPMBVSPzk9185BT0+eZM= -github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.0.0 h1:yfJe15aSwEQ6Oo6J+gdfdulPNoZ3TEhmbhLIoxZcA+U= -github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.0.0/go.mod h1:Q28U+75mpCaSCDowNEmhIo/rmgdkqmkmzI7N6TGR4UY= -github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v0.8.0 h1:T028gtTPiYt/RMUfs8nVsAL7FDQrfLlrm/NnRG/zcC4= -github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v0.8.0/go.mod h1:cw4zVQgBby0Z5f2v0itn6se2dDP17nTjbZFXW5uPyHA= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.1 h1:lGlwhPtrX6EVml1hO0ivjkUxsSyl4dsiw9qcA1k/3IQ= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.1/go.mod h1:RKUqNu35KJYcVG/fqTRqmuXJZYNhYkBrnC/hX7yGbTA= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.1 h1:sO0/P7g68FrryJzljemN+6GTssUXdANk6aJ7T1ZxnsQ= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.1/go.mod h1:h8hyGFDsU5HMivxiS2iYFZsgDbU9OnnJ163x5UGVKYo= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.1 h1:6oNBlSdi1QqM1PNW7FPA6xOGA5UNsXnkaYZz9vdPGhA= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.1/go.mod h1:s4kgfzA0covAXNicZHDMN58jExvcng2mC/DepXiF1EI= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.0.1 h1:MyVTgWR8qd/Jw1Le0NZebGBUCLbtak3bJ3z1OlqZBpw= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.0.1/go.mod h1:GpPjLhVR9dnUoJMyHWSPy71xY9/lcmpzIPZXmF0FCVY= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.0.0 h1:D3occbWoio4EBLkbkevetNMAVX197GkzbUMtqjGWn80= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.0.0/go.mod h1:bTSOgj05NGRuHHhQwAdPnYr9TOdNmKlZTgGLL6nyAdI= github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0 h1:u/LLAOFgsMv7HmNL4Qufg58y+qElGOt5qv0z1mURkRY= github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0/go.mod h1:2e8rMJtl2+2j+HXbTBwnyGpm5Nou7KhvSfxOq8JpTag= -github.com/AzureAD/microsoft-authentication-library-for-go v1.1.0 h1:HCc0+LpPfpCKs6LGGLAhwBARt9632unrVcI6i8s/8os= -github.com/AzureAD/microsoft-authentication-library-for-go v1.1.0/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= +github.com/AzureAD/microsoft-authentication-library-for-go v1.2.1 h1:DzHpqpoJVaCgOUdVHxE8QB52S6NiVdDQvGlny1qvPqA= +github.com/AzureAD/microsoft-authentication-library-for-go v1.2.1/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/ClickHouse/clickhouse-go v1.5.4 h1:cKjXeYLNWVJIx2J1K6H2CqyRmfwVJVY1OV1coaaFcI0= github.com/ClickHouse/clickhouse-go v1.5.4/go.mod h1:EaI/sW7Azgz9UATzd5ZdZHRUhHgv5+JMS9NSr2smCJI= @@ -130,11 +130,8 @@ github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6 github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofrs/uuid v4.0.0+incompatible h1:1SD/1F5pU8p29ybwgQSwpQk+mwdRrXCYuPhW6m+TnJw= github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= -github.com/golang-jwt/jwt v3.2.1+incompatible h1:73Z+4BJcrTC+KczS6WvTPvRGOp1WmfEP4Q1lOd9Z/+c= -github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= -github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= -github.com/golang-jwt/jwt/v5 v5.0.0 h1:1n1XNM9hk7O9mnQoNBGolZvzebBQ7p93ULHRc28XJUE= -github.com/golang-jwt/jwt/v5 v5.0.0/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= +github.com/golang-jwt/jwt/v5 v5.2.0 h1:d/ix8ftRUorsN+5eMIlF4T6J8CAt9rch3My2winC1Jw= +github.com/golang-jwt/jwt/v5 v5.2.0/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA= github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A= @@ -150,8 +147,8 @@ github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4= -github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c h1:6rhixN/i8ZofjG1Y75iExal34USq5p+wiN1tpie8IrU= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c/go.mod h1:NMPJylDgVpX0MLRlPy15sqSwOFv/U1GZ2m21JhFfek0= github.com/jackc/chunkreader v1.0.0/go.mod h1:RT6O25fNZIuasFJRyZ4R/Y2BbhasbmZXF9QQ7T3kePo= @@ -243,8 +240,8 @@ github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hd github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= -github.com/microsoft/go-mssqldb v1.6.0 h1:mM3gYdVwEPFrlg/Dvr2DNVEgYFG7L42l+dGc67NNNpc= -github.com/microsoft/go-mssqldb v1.6.0/go.mod h1:00mDtPbeQCRGC1HwOOR5K/gr30P1NcEG0vx6Kbv2aJU= +github.com/microsoft/go-mssqldb v1.7.0 h1:sgMPW0HA6Ihd37Yx0MzHyKD726C2kY/8KJsQtXHNaAs= +github.com/microsoft/go-mssqldb v1.7.0/go.mod h1:kOvZKUdrhhFQmxLZqbwUV0rHkNkZpthMITIb2Ko1IoA= github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs= github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ibNBTZrns= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= @@ -254,8 +251,8 @@ github.com/pierrec/lz4 v2.0.5+incompatible h1:2xWsjqPFWcplujydGg4WmhC/6fZqK42wMM github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pierrec/lz4/v4 v4.1.18 h1:xaKrnTkyoqfh1YItXl56+6KJNVYWlEEPuAQW9xsplYQ= github.com/pierrec/lz4/v4 v4.1.18/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= -github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU= -github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI= +github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= +github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -380,11 +377,11 @@ golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= From 2ef339dbd96fb390b4c53826a325c417fd35bc0e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 24 Feb 2024 22:10:41 +0100 Subject: [PATCH 179/401] deps: bump github.com/prometheus/client_model from 0.5.0 to 0.6.0 (#449) Bumps [github.com/prometheus/client_model](https://github.com/prometheus/client_model) from 0.5.0 to 0.6.0. - [Release notes](https://github.com/prometheus/client_model/releases) - [Commits](https://github.com/prometheus/client_model/compare/v0.5.0...v0.6.0) --- updated-dependencies: - dependency-name: github.com/prometheus/client_model dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 0b0c92bc..ce38ead8 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( github.com/lib/pq v1.10.9 github.com/microsoft/go-mssqldb v1.7.0 github.com/prometheus/client_golang v1.18.0 - github.com/prometheus/client_model v0.5.0 + github.com/prometheus/client_model v0.6.0 github.com/prometheus/common v0.46.0 github.com/prometheus/exporter-toolkit v0.11.0 github.com/sethvargo/go-envconfig v1.0.0 diff --git a/go.sum b/go.sum index cb8d6acd..9913dde7 100644 --- a/go.sum +++ b/go.sum @@ -261,8 +261,8 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRI github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk= github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.0 h1:k1v3CzpSRUTrKMppY35TLwPvxHqBu0bYgxZzqGIgaos= +github.com/prometheus/client_model v0.6.0/go.mod h1:NTQHnmxFpouOD0DpvP4XujX3CdOAGQPoaGhyTchlyt8= github.com/prometheus/common v0.46.0 h1:doXzt5ybi1HBKpsZOL0sSkaNHJJqkyfEWZGGqqScV0Y= github.com/prometheus/common v0.46.0/go.mod h1:Tp0qkxpb9Jsg54QMe+EAmqXkSV7Evdy1BTn+g2pa/hQ= github.com/prometheus/exporter-toolkit v0.11.0 h1:yNTsuZ0aNCNFQ3aFTD2uhPOvr4iD7fdBvKPAEGkNf+g= From d441afcb5105c3245396aafbae9504072a42f87d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 24 Feb 2024 22:22:19 +0100 Subject: [PATCH 180/401] deps: bump github.com/aws/aws-sdk-go-v2 from 1.24.1 to 1.25.2 (#451) Bumps [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) from 1.24.1 to 1.25.2. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.24.1...v1.25.2) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index ce38ead8..f0bfa881 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ toolchain go1.21.5 require ( github.com/ClickHouse/clickhouse-go v1.5.4 - github.com/aws/aws-sdk-go-v2 v1.24.1 + github.com/aws/aws-sdk-go-v2 v1.25.2 github.com/aws/aws-sdk-go-v2/config v1.26.6 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.26.2 github.com/go-sql-driver/mysql v1.7.1 @@ -53,7 +53,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/sso v1.18.7 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.7 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.26.7 // indirect - github.com/aws/smithy-go v1.19.0 // indirect + github.com/aws/smithy-go v1.20.1 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 // indirect diff --git a/go.sum b/go.sum index 9913dde7..2f45e348 100644 --- a/go.sum +++ b/go.sum @@ -26,8 +26,8 @@ github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0 github.com/apache/arrow/go/v14 v14.0.2 h1:N8OkaJEOfI3mEZt07BIkvo4sC6XDbL+48MBPWO5IONw= github.com/apache/arrow/go/v14 v14.0.2/go.mod h1:u3fgh3EdgN/YQ8cVQRguVW3R+seMybFg8QBQ5LU+eBY= github.com/aws/aws-sdk-go-v2 v1.17.7/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= -github.com/aws/aws-sdk-go-v2 v1.24.1 h1:xAojnj+ktS95YZlDf0zxWBkbFtymPeDP+rvUQIH3uAU= -github.com/aws/aws-sdk-go-v2 v1.24.1/go.mod h1:LNh45Br1YAkEKaAqvmE1m8FUx6a5b/V0oAKV7of29b4= +github.com/aws/aws-sdk-go-v2 v1.25.2 h1:/uiG1avJRgLGiQM9X3qJM8+Qa6KRGK5rRPuXE0HUM+w= +github.com/aws/aws-sdk-go-v2 v1.25.2/go.mod h1:Evoc5AsmtveRt1komDwIsjHFyrP5tDuF1D1U+6z6pNo= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10/go.mod h1:VeTZetY5KRJLuD/7fkQXMU6Mw7H5m/KP2J5Iy9osMno= github.com/aws/aws-sdk-go-v2/config v1.18.19/go.mod h1:XvTmGMY8d52ougvakOv1RpiTLPz9dlG/OQHsKU/cMmY= @@ -76,8 +76,8 @@ github.com/aws/aws-sdk-go-v2/service/sts v1.18.7/go.mod h1:JuTnSoeePXmMVe9G8Ncjj github.com/aws/aws-sdk-go-v2/service/sts v1.26.7 h1:NzO4Vrau795RkUdSHKEwiR01FaGzGOH1EETJ+5QHnm0= github.com/aws/aws-sdk-go-v2/service/sts v1.26.7/go.mod h1:6h2YuIoxaMSCFf5fi1EgZAwdfkGMgDY+DVfa61uLe4U= github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= -github.com/aws/smithy-go v1.19.0 h1:KWFKQV80DpP3vJrrA9sVAHQ5gc2z8i4EzrLhLlWXcBM= -github.com/aws/smithy-go v1.19.0/go.mod h1:NukqUGpCZIILqqiV0NIjeFh24kd/FAa4beRb6nbIUPE= +github.com/aws/smithy-go v1.20.1 h1:4SZlSlMr36UEqC7XOyRVb27XMeZubNcBNN+9IgEPIQw= +github.com/aws/smithy-go v1.20.1/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bkaradzic/go-lz4 v1.0.0 h1:RXc4wYsyz985CkXXeX04y4VnZFGG8Rd43pRaHsOXAKk= From 6c84c9601a54774d29182c94bfb67bcb60affa02 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 24 Feb 2024 22:22:38 +0100 Subject: [PATCH 181/401] deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager from 1.26.2 to 1.28.1 (#450) deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager Bumps [github.com/aws/aws-sdk-go-v2/service/secretsmanager](https://github.com/aws/aws-sdk-go-v2) from 1.26.2 to 1.28.1. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/service/ecs/v1.28.1/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.26.2...service/ecs/v1.28.1) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/service/secretsmanager dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index f0bfa881..31e66d64 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/ClickHouse/clickhouse-go v1.5.4 github.com/aws/aws-sdk-go-v2 v1.25.2 github.com/aws/aws-sdk-go-v2/config v1.26.6 - github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.26.2 + github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.1 github.com/go-sql-driver/mysql v1.7.1 github.com/jackc/pgx/v4 v4.18.1 github.com/kardianos/minwinsvc v1.0.2 @@ -41,8 +41,8 @@ require ( github.com/aws/aws-sdk-go-v2/credentials v1.16.16 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.11 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.10 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.10 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.2 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.2 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.7.3 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4 // indirect diff --git a/go.sum b/go.sum index 2f45e348..47ccdc83 100644 --- a/go.sum +++ b/go.sum @@ -42,11 +42,11 @@ github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.11/go.mod h1:cRrYDYAMUohBJUt github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 h1:E3Y+OfzOK1+rmRo/K2G0ml8Vs+Xqk0kOnf4nS0kUtBc= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59/go.mod h1:1M4PLSBUVfBI0aP+C9XI7SM6kZPCGYyI6izWz0TGprE= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.31/go.mod h1:QT0BqUvX1Bh2ABdTGnjqEjvjzrCfIniM9Sc8zn9Yndo= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.10 h1:vF+Zgd9s+H4vOXd5BMaPWykta2a6Ih0AKLq/X6NYKn4= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.10/go.mod h1:6BkRjejp/GR4411UGqkX8+wFMbFbqsUIimfK4XjOKR4= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.2 h1:bNo4LagzUKbjdxE0tIcR9pMzLR2U/Tgie1Hq1HQ3iH8= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.2/go.mod h1:wRQv0nN6v9wDXuWThpovGQjqF1HFdcgWjporw14lS8k= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.25/go.mod h1:zBHOPwhBc3FlQjQJE/D3IfPWiWaQmT06Vq9aNukDo0k= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.10 h1:nYPe006ktcqUji8S2mqXf9c/7NdiKriOwMvWQHgYztw= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.10/go.mod h1:6UV4SZkVvmODfXKql4LCbaZUpF7HO2BX38FgBf9ZOLw= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.2 h1:EtOU5jsPdIQNP+6Q2C5e3d65NKT1PeCiQk+9OdzO12Q= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.2/go.mod h1:tyF5sKccmDz0Bv4NrstEr+/9YkSPJHrcO7UsUKf7pWM= github.com/aws/aws-sdk-go-v2/internal/ini v1.3.32/go.mod h1:XGhIBZDEgfqmFIugclZ6FU7v75nHhBDtzuB4xB/tEi4= github.com/aws/aws-sdk-go-v2/internal/ini v1.7.3 h1:n3GDfwqF2tzEkXlv5cuy4iy7LpKDtqDMcNLfZDu9rls= github.com/aws/aws-sdk-go-v2/internal/ini v1.7.3/go.mod h1:6fQQgfuGmw8Al/3M2IgIllycxV7ZW7WCdVSqfBeUiCY= @@ -64,8 +64,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 h1:e2ooMhpYGhDnBf github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0/go.mod h1:bh2E0CXKZsQN+faiKVqC40vfNMAWheoULBCnEgO9K+8= github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 h1:B1G2pSPvbAtQjilPq+Y7jLIzCOwKzuVEl+aBBaNG0AQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0/go.mod h1:ncltU6n4Nof5uJttDtcNQ537uNuwYqsZZQcpkd2/GUQ= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.26.2 h1:A5sGOT/mukuU+4At1vkSIWAN8tPwPCoYZBp7aruR540= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.26.2/go.mod h1:qutL00aW8GSo2D0I6UEOqMvRS3ZyuBrOC1BLe5D2jPc= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.1 h1:DtKw4TxZT3VrzYupXQJPBqT9ImyobZZE+JIQPPAVxqs= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.1/go.mod h1:bit9G2ORpSjUTr4PA4usvbBfbOyvMj0LbE1dXF14Sug= github.com/aws/aws-sdk-go-v2/service/sso v1.12.6/go.mod h1:Y1VOmit/Fn6Tz1uFAeCO6Q7M2fmfXSCLeL5INVYsLuY= github.com/aws/aws-sdk-go-v2/service/sso v1.18.7 h1:eajuO3nykDPdYicLlP3AGgOyVN3MOlFmZv7WGTuJPow= github.com/aws/aws-sdk-go-v2/service/sso v1.18.7/go.mod h1:+mJNDdF+qiUlNKNC3fxn74WWNN+sOiGOEImje+3ScPM= From ab0a5df89af92736b01027fee8268a89da440f8f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 24 Feb 2024 22:23:43 +0100 Subject: [PATCH 182/401] deps: bump github.com/snowflakedb/gosnowflake from 1.7.2 to 1.8.0 (#454) Bumps [github.com/snowflakedb/gosnowflake](https://github.com/snowflakedb/gosnowflake) from 1.7.2 to 1.8.0. - [Release notes](https://github.com/snowflakedb/gosnowflake/releases) - [Changelog](https://github.com/snowflakedb/gosnowflake/blob/master/release.go) - [Commits](https://github.com/snowflakedb/gosnowflake/compare/v1.7.2...v1.8.0) --- updated-dependencies: - dependency-name: github.com/snowflakedb/gosnowflake dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 31e66d64..47960c32 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/prometheus/common v0.46.0 github.com/prometheus/exporter-toolkit v0.11.0 github.com/sethvargo/go-envconfig v1.0.0 - github.com/snowflakedb/gosnowflake v1.7.2 + github.com/snowflakedb/gosnowflake v1.8.0 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.21.1 google.golang.org/protobuf v1.32.0 diff --git a/go.sum b/go.sum index 47ccdc83..83f44caa 100644 --- a/go.sum +++ b/go.sum @@ -288,8 +288,8 @@ github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMB github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/snowflakedb/gosnowflake v1.7.2 h1:HRSwva8YXC64WUppfmHcMNVVzSE1+EwXXaJxgS0EkTo= -github.com/snowflakedb/gosnowflake v1.7.2/go.mod h1:03tW856vc3ceM4rJuj7KO4dzqN7qoezTm+xw7aPIIFo= +github.com/snowflakedb/gosnowflake v1.8.0 h1:4bQj8eAYGMkou/nICiIEb9jSbBLDDp5cB6JaKx9WwiA= +github.com/snowflakedb/gosnowflake v1.8.0/go.mod h1:7yyY2MxtDti2eXgtvlZ8QxzCN6KV2B4qb1HuygMI+0U= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= From aae143d6b1d781d02b0c26accb32b31339a347f9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 24 Feb 2024 22:26:19 +0100 Subject: [PATCH 183/401] deps: bump github.com/aws/aws-sdk-go-v2/config from 1.26.6 to 1.27.4 (#453) Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.26.6 to 1.27.4. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.26.6...config/v1.27.4) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/config dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 18 +++++++++--------- go.sum | 36 ++++++++++++++++++------------------ 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/go.mod b/go.mod index 47960c32..782f6a2a 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ toolchain go1.21.5 require ( github.com/ClickHouse/clickhouse-go v1.5.4 github.com/aws/aws-sdk-go-v2 v1.25.2 - github.com/aws/aws-sdk-go-v2/config v1.26.6 + github.com/aws/aws-sdk-go-v2/config v1.27.4 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.1 github.com/go-sql-driver/mysql v1.7.1 github.com/jackc/pgx/v4 v4.18.1 @@ -38,21 +38,21 @@ require ( github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c // indirect github.com/apache/arrow/go/v14 v14.0.2 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.16.16 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.11 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.4 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.15.2 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.2 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.2 // indirect - github.com/aws/aws-sdk-go-v2/internal/ini v1.7.3 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.1 // indirect github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.10 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.2 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 // indirect github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.18.7 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.7 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.26.7 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.20.1 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.1 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.28.1 // indirect github.com/aws/smithy-go v1.20.1 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect diff --git a/go.sum b/go.sum index 83f44caa..8f209691 100644 --- a/go.sum +++ b/go.sum @@ -31,14 +31,14 @@ github.com/aws/aws-sdk-go-v2 v1.25.2/go.mod h1:Evoc5AsmtveRt1komDwIsjHFyrP5tDuF1 github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10/go.mod h1:VeTZetY5KRJLuD/7fkQXMU6Mw7H5m/KP2J5Iy9osMno= github.com/aws/aws-sdk-go-v2/config v1.18.19/go.mod h1:XvTmGMY8d52ougvakOv1RpiTLPz9dlG/OQHsKU/cMmY= -github.com/aws/aws-sdk-go-v2/config v1.26.6 h1:Z/7w9bUqlRI0FFQpetVuFYEsjzE3h7fpU6HuGmfPL/o= -github.com/aws/aws-sdk-go-v2/config v1.26.6/go.mod h1:uKU6cnDmYCvJ+pxO9S4cWDb2yWWIH5hra+32hVh1MI4= +github.com/aws/aws-sdk-go-v2/config v1.27.4 h1:AhfWb5ZwimdsYTgP7Od8E9L1u4sKmDW2ZVeLcf2O42M= +github.com/aws/aws-sdk-go-v2/config v1.27.4/go.mod h1:zq2FFXK3A416kiukwpsd+rD4ny6JC7QSkp4QdN1Mp2g= github.com/aws/aws-sdk-go-v2/credentials v1.13.18/go.mod h1:vnwlwjIe+3XJPBYKu1et30ZPABG3VaXJYr8ryohpIyM= -github.com/aws/aws-sdk-go-v2/credentials v1.16.16 h1:8q6Rliyv0aUFAVtzaldUEcS+T5gbadPbWdV1WcAddK8= -github.com/aws/aws-sdk-go-v2/credentials v1.16.16/go.mod h1:UHVZrdUsv63hPXFo1H7c5fEneoVo9UXiz36QG1GEPi0= +github.com/aws/aws-sdk-go-v2/credentials v1.17.4 h1:h5Vztbd8qLppiPwX+y0Q6WiwMZgpd9keKe2EAENgAuI= +github.com/aws/aws-sdk-go-v2/credentials v1.17.4/go.mod h1:+30tpwrkOgvkJL1rUZuRLoxcJwtI/OkeBLYnHxJtVe0= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.1/go.mod h1:lfUx8puBRdM5lVVMQlwt2v+ofiG/X6Ms+dy0UkG/kXw= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.11 h1:c5I5iH+DZcH3xOIMlz3/tCKJDaHFwYEmxvlh2fAcFo8= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.11/go.mod h1:cRrYDYAMUohBJUtUnOhydaMHtiK/1NZ0Otc9lIb6O0Y= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.15.2 h1:AK0J8iYBFeUk2Ax7O8YpLtFsfhdOByh2QIkHmigpRYk= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.15.2/go.mod h1:iRlGzMix0SExQEviAyptRWRGdYNo3+ufW/lCzvKVTUc= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 h1:E3Y+OfzOK1+rmRo/K2G0ml8Vs+Xqk0kOnf4nS0kUtBc= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59/go.mod h1:1M4PLSBUVfBI0aP+C9XI7SM6kZPCGYyI6izWz0TGprE= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.31/go.mod h1:QT0BqUvX1Bh2ABdTGnjqEjvjzrCfIniM9Sc8zn9Yndo= @@ -48,18 +48,18 @@ github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.25/go.mod h1:zBHOPwhBc3F github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.2 h1:EtOU5jsPdIQNP+6Q2C5e3d65NKT1PeCiQk+9OdzO12Q= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.2/go.mod h1:tyF5sKccmDz0Bv4NrstEr+/9YkSPJHrcO7UsUKf7pWM= github.com/aws/aws-sdk-go-v2/internal/ini v1.3.32/go.mod h1:XGhIBZDEgfqmFIugclZ6FU7v75nHhBDtzuB4xB/tEi4= -github.com/aws/aws-sdk-go-v2/internal/ini v1.7.3 h1:n3GDfwqF2tzEkXlv5cuy4iy7LpKDtqDMcNLfZDu9rls= -github.com/aws/aws-sdk-go-v2/internal/ini v1.7.3/go.mod h1:6fQQgfuGmw8Al/3M2IgIllycxV7ZW7WCdVSqfBeUiCY= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY= github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 h1:DWYZIsyqagnWL00f8M/SOr9fN063OEQWn9LLTbdYXsk= github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23/go.mod h1:uIiFgURZbACBEQJfqTZPb/jxO7R+9LeoHUFudtIdeQI= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11/go.mod h1:iV4q2hsqtNECrfmlXyord9u4zyuFEJX9eLgLpSPzWA8= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4 h1:/b31bi3YVNlkzkBrm9LfpaKoaYZUxIAj4sHfOTmLfqw= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4/go.mod h1:2aGXHFmbInwgP9ZfpmdIfOELL79zhdNYNmReK8qDfdQ= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.1 h1:EyBZibRTVAs6ECHZOw5/wlylS9OcTzwyjeQMudmREjE= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.1/go.mod h1:JKpmtYhhPs7D97NL/ltqz7yCkERFW5dOlHyVl66ZYF8= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26 h1:CeuSeq/8FnYpPtnuIeLQEEvDv9zUjneuYi8EghMBdwQ= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26/go.mod h1:2UqAAwMUXKeRkAHIlDJqvMVgOWkUi/AUXPk/YIe+Dg4= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.25/go.mod h1:/95IA+0lMnzW6XzqYJRpjjsAbKEORVeO0anQqjd2CNU= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.10 h1:DBYTXwIGQSGs9w4jKm60F5dmCQ3EEruxdc0MFh+3EY4= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.10/go.mod h1:wohMUQiFdzo0NtxbBg0mSRGZ4vL3n0dKjLTINdcIino= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.2 h1:5ffmXjPtwRExp1zc7gENLgCPyHFbhEPwVTkTiH9niSk= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.2/go.mod h1:Ru7vg1iQ7cR4i7SZ/JTLYN9kaXtbL69UdgG0OQWQxW0= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 h1:e2ooMhpYGhDnBfSvIyusvAwX7KexuZaHbQY2Dyei7VU= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0/go.mod h1:bh2E0CXKZsQN+faiKVqC40vfNMAWheoULBCnEgO9K+8= github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 h1:B1G2pSPvbAtQjilPq+Y7jLIzCOwKzuVEl+aBBaNG0AQ= @@ -67,14 +67,14 @@ github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0/go.mod h1:ncltU6n4Nof5uJttDtcNQ5 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.1 h1:DtKw4TxZT3VrzYupXQJPBqT9ImyobZZE+JIQPPAVxqs= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.1/go.mod h1:bit9G2ORpSjUTr4PA4usvbBfbOyvMj0LbE1dXF14Sug= github.com/aws/aws-sdk-go-v2/service/sso v1.12.6/go.mod h1:Y1VOmit/Fn6Tz1uFAeCO6Q7M2fmfXSCLeL5INVYsLuY= -github.com/aws/aws-sdk-go-v2/service/sso v1.18.7 h1:eajuO3nykDPdYicLlP3AGgOyVN3MOlFmZv7WGTuJPow= -github.com/aws/aws-sdk-go-v2/service/sso v1.18.7/go.mod h1:+mJNDdF+qiUlNKNC3fxn74WWNN+sOiGOEImje+3ScPM= +github.com/aws/aws-sdk-go-v2/service/sso v1.20.1 h1:utEGkfdQ4L6YW/ietH7111ZYglLJvS+sLriHJ1NBJEQ= +github.com/aws/aws-sdk-go-v2/service/sso v1.20.1/go.mod h1:RsYqzYr2F2oPDdpy+PdhephuZxTfjHQe7SOBcZGoAU8= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.6/go.mod h1:Lh/bc9XUf8CfOY6Jp5aIkQtN+j1mc+nExc+KXj9jx2s= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.7 h1:QPMJf+Jw8E1l7zqhZmMlFw6w1NmfkfiSK8mS4zOx3BA= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.7/go.mod h1:ykf3COxYI0UJmxcfcxcVuz7b6uADi1FkiUz6Eb7AgM8= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.1 h1:9/GylMS45hGGFCcMrUZDVayQE1jYSIN6da9jo7RAYIw= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.1/go.mod h1:YjAPFn4kGFqKC54VsHs5fn5B6d+PCY2tziEa3U/GB5Y= github.com/aws/aws-sdk-go-v2/service/sts v1.18.7/go.mod h1:JuTnSoeePXmMVe9G8NcjjwgOKEfZ4cOjMuT2IBT/2eI= -github.com/aws/aws-sdk-go-v2/service/sts v1.26.7 h1:NzO4Vrau795RkUdSHKEwiR01FaGzGOH1EETJ+5QHnm0= -github.com/aws/aws-sdk-go-v2/service/sts v1.26.7/go.mod h1:6h2YuIoxaMSCFf5fi1EgZAwdfkGMgDY+DVfa61uLe4U= +github.com/aws/aws-sdk-go-v2/service/sts v1.28.1 h1:3I2cBEYgKhrWlwyZgfpSO2BpaMY1LHPqXYk/QGlu2ew= +github.com/aws/aws-sdk-go-v2/service/sts v1.28.1/go.mod h1:uQ7YYKZt3adCRrdCBREm1CD3efFLOUNH77MrUCvx5oA= github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= github.com/aws/smithy-go v1.20.1 h1:4SZlSlMr36UEqC7XOyRVb27XMeZubNcBNN+9IgEPIQw= github.com/aws/smithy-go v1.20.1/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E= From 62a4a9967ed6e77ee21fc0561f13456c1d5f960b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 24 Feb 2024 22:28:58 +0100 Subject: [PATCH 184/401] deps: bump github.com/prometheus/common from 0.46.0 to 0.48.0 (#452) Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.46.0 to 0.48.0. - [Release notes](https://github.com/prometheus/common/releases) - [Commits](https://github.com/prometheus/common/compare/v0.46.0...v0.48.0) --- updated-dependencies: - dependency-name: github.com/prometheus/common dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 782f6a2a..d154a039 100644 --- a/go.mod +++ b/go.mod @@ -16,7 +16,7 @@ require ( github.com/microsoft/go-mssqldb v1.7.0 github.com/prometheus/client_golang v1.18.0 github.com/prometheus/client_model v0.6.0 - github.com/prometheus/common v0.46.0 + github.com/prometheus/common v0.48.0 github.com/prometheus/exporter-toolkit v0.11.0 github.com/sethvargo/go-envconfig v1.0.0 github.com/snowflakedb/gosnowflake v1.8.0 diff --git a/go.sum b/go.sum index 8f209691..1792df67 100644 --- a/go.sum +++ b/go.sum @@ -263,8 +263,8 @@ github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+ github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA= github.com/prometheus/client_model v0.6.0 h1:k1v3CzpSRUTrKMppY35TLwPvxHqBu0bYgxZzqGIgaos= github.com/prometheus/client_model v0.6.0/go.mod h1:NTQHnmxFpouOD0DpvP4XujX3CdOAGQPoaGhyTchlyt8= -github.com/prometheus/common v0.46.0 h1:doXzt5ybi1HBKpsZOL0sSkaNHJJqkyfEWZGGqqScV0Y= -github.com/prometheus/common v0.46.0/go.mod h1:Tp0qkxpb9Jsg54QMe+EAmqXkSV7Evdy1BTn+g2pa/hQ= +github.com/prometheus/common v0.48.0 h1:QO8U2CdOzSn1BBsmXJXduaaW+dY/5QLjfB8svtSzKKE= +github.com/prometheus/common v0.48.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc= github.com/prometheus/exporter-toolkit v0.11.0 h1:yNTsuZ0aNCNFQ3aFTD2uhPOvr4iD7fdBvKPAEGkNf+g= github.com/prometheus/exporter-toolkit v0.11.0/go.mod h1:BVnENhnNecpwoTLiABx7mrPB/OLRIgN74qlQbV+FK1Q= github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= From 0cbca8b518ea78ed314f2596da06c2d12da518e9 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Sat, 24 Feb 2024 22:42:22 +0100 Subject: [PATCH 185/401] Bump up version to 0.14.0 (#455) --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index c317a918..a803cc22 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.13.1 +0.14.0 From 0ecf82827364a3da8f134f00afd797f4dc89f2e6 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Sun, 25 Feb 2024 13:15:08 +0100 Subject: [PATCH 186/401] Bump up helm chart to 0.4.0 (#456) --- helm/Chart.yaml | 4 ++-- helm/README.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index d3b6ce87..a4ef399b 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: sql-exporter description: Database agnostic SQL exporter for Prometheus type: application -version: 0.3.0 -appVersion: 0.13.1 +version: 0.4.0 +appVersion: 0.14.0 keywords: - exporter - servicemonitor diff --git a/helm/README.md b/helm/README.md index eee27ed9..a9d5e97a 100644 --- a/helm/README.md +++ b/helm/README.md @@ -1,6 +1,6 @@ # sql-exporter -![Version: 0.3.0](https://img.shields.io/badge/Version-0.3.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.13.1](https://img.shields.io/badge/AppVersion-0.13.1-informational?style=flat-square) +![Version: 0.4.0](https://img.shields.io/badge/Version-0.4.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.14.0](https://img.shields.io/badge/AppVersion-0.14.0-informational?style=flat-square) Database agnostic SQL exporter for Prometheus From 5e67ef3f08d32df4a9e61b2beaa11d7fb5279a5f Mon Sep 17 00:00:00 2001 From: Mark Rada Date: Mon, 26 Feb 2024 16:06:17 -0500 Subject: [PATCH 187/401] feat(helm): add support for metricRelabelings to the helm chart (#457) * Add metricRelabelings support to the ServiceMonitor * Bump chart version * Set version as requested * Regen docs --- helm/Chart.yaml | 2 +- helm/README.md | 3 ++- helm/templates/servicemonitor.yaml | 4 ++++ helm/values.yaml | 2 ++ 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index a4ef399b..03443dad 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: sql-exporter description: Database agnostic SQL exporter for Prometheus type: application -version: 0.4.0 +version: 0.4.1 appVersion: 0.14.0 keywords: - exporter diff --git a/helm/README.md b/helm/README.md index a9d5e97a..8a8db77e 100644 --- a/helm/README.md +++ b/helm/README.md @@ -1,6 +1,6 @@ # sql-exporter -![Version: 0.4.0](https://img.shields.io/badge/Version-0.4.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.14.0](https://img.shields.io/badge/AppVersion-0.14.0-informational?style=flat-square) +![Version: 0.4.1](https://img.shields.io/badge/Version-0.4.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.14.0](https://img.shields.io/badge/AppVersion-0.14.0-informational?style=flat-square) Database agnostic SQL exporter for Prometheus @@ -52,6 +52,7 @@ helm install sql_exporter/sql-exporter | serviceMonitor.enabled | bool | `true` | Enable ServiceMonitor | | serviceMonitor.interval | string | `"15s"` | ServiceMonitor interval | | serviceMonitor.path | string | `"/metrics"` | ServiceMonitor path | +| serviceMonitor.metricRelabelings | object | `{}` | ServiceMonitor metric relabelings | | serviceMonitor.scrapeTimeout | string | `nil` | ServiceMonitor scrape timeout | ### Configuration diff --git a/helm/templates/servicemonitor.yaml b/helm/templates/servicemonitor.yaml index 208e520a..47af3bc1 100644 --- a/helm/templates/servicemonitor.yaml +++ b/helm/templates/servicemonitor.yaml @@ -28,6 +28,10 @@ spec: {{- if .Values.serviceMonitor.scrapeTimeout }} scrapeTimeout: {{ .Values.serviceMonitor.scrapeTimeout }} {{- end }} + {{- if .Values.serviceMonitor.metricRelabelings }} + metricRelabelings: + {{- toYaml .Values.serviceMonitor.metricRelabelings | nindent 8 }} + {{- end }} namespaceSelector: matchNames: - {{ .Release.Namespace }} diff --git a/helm/values.yaml b/helm/values.yaml index 01329a5c..df722261 100644 --- a/helm/values.yaml +++ b/helm/values.yaml @@ -66,6 +66,8 @@ serviceMonitor: path: /metrics # -- ServiceMonitor scrape timeout # scrapeTimeout: 10s + # -- ServiceMonitor metric relabelings + metricRelabelings: {} # Additional env variables # - kind should be either Secret or ConfigMap From 78209746d69ade2860bde426d8c37abcd64de076 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 2 Mar 2024 08:36:56 +0100 Subject: [PATCH 188/401] deps: bump github.com/prometheus/client_golang from 1.18.0 to 1.19.0 (#459) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index d154a039..62165eee 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.9 github.com/microsoft/go-mssqldb v1.7.0 - github.com/prometheus/client_golang v1.18.0 + github.com/prometheus/client_golang v1.19.0 github.com/prometheus/client_model v0.6.0 github.com/prometheus/common v0.48.0 github.com/prometheus/exporter-toolkit v0.11.0 diff --git a/go.sum b/go.sum index 1792df67..fffdcb6d 100644 --- a/go.sum +++ b/go.sum @@ -259,8 +259,8 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk= -github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA= +github.com/prometheus/client_golang v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7kmXYlnfbA6JU= +github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k= github.com/prometheus/client_model v0.6.0 h1:k1v3CzpSRUTrKMppY35TLwPvxHqBu0bYgxZzqGIgaos= github.com/prometheus/client_model v0.6.0/go.mod h1:NTQHnmxFpouOD0DpvP4XujX3CdOAGQPoaGhyTchlyt8= github.com/prometheus/common v0.48.0 h1:QO8U2CdOzSn1BBsmXJXduaaW+dY/5QLjfB8svtSzKKE= From da82ee9ea11f5edf22ff14cf477e1bbe5ae3b499 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 2 Mar 2024 08:37:13 +0100 Subject: [PATCH 189/401] deps: bump github.com/prometheus/common from 0.48.0 to 0.49.0 (#460) --- go.mod | 12 ++++++------ go.sum | 24 ++++++++++++------------ 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/go.mod b/go.mod index 62165eee..61d5a5b2 100644 --- a/go.mod +++ b/go.mod @@ -16,7 +16,7 @@ require ( github.com/microsoft/go-mssqldb v1.7.0 github.com/prometheus/client_golang v1.19.0 github.com/prometheus/client_model v0.6.0 - github.com/prometheus/common v0.48.0 + github.com/prometheus/common v0.49.0 github.com/prometheus/exporter-toolkit v0.11.0 github.com/sethvargo/go-envconfig v1.0.0 github.com/snowflakedb/gosnowflake v1.8.0 @@ -99,14 +99,14 @@ require ( github.com/prometheus/procfs v0.12.0 // indirect github.com/sirupsen/logrus v1.9.0 // indirect github.com/zeebo/xxh3 v1.0.2 // indirect - golang.org/x/crypto v0.18.0 // indirect + golang.org/x/crypto v0.19.0 // indirect golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect golang.org/x/mod v0.13.0 // indirect - golang.org/x/net v0.20.0 // indirect - golang.org/x/oauth2 v0.16.0 // indirect + golang.org/x/net v0.21.0 // indirect + golang.org/x/oauth2 v0.17.0 // indirect golang.org/x/sync v0.5.0 // indirect - golang.org/x/sys v0.16.0 // indirect - golang.org/x/term v0.16.0 // indirect + golang.org/x/sys v0.17.0 // indirect + golang.org/x/term v0.17.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/tools v0.14.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect diff --git a/go.sum b/go.sum index fffdcb6d..35fbb9c3 100644 --- a/go.sum +++ b/go.sum @@ -263,8 +263,8 @@ github.com/prometheus/client_golang v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7km github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k= github.com/prometheus/client_model v0.6.0 h1:k1v3CzpSRUTrKMppY35TLwPvxHqBu0bYgxZzqGIgaos= github.com/prometheus/client_model v0.6.0/go.mod h1:NTQHnmxFpouOD0DpvP4XujX3CdOAGQPoaGhyTchlyt8= -github.com/prometheus/common v0.48.0 h1:QO8U2CdOzSn1BBsmXJXduaaW+dY/5QLjfB8svtSzKKE= -github.com/prometheus/common v0.48.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc= +github.com/prometheus/common v0.49.0 h1:ToNTdK4zSnPVJmh698mGFkDor9wBI/iGaJy5dbH1EgI= +github.com/prometheus/common v0.49.0/go.mod h1:Kxm+EULxRbUkjGU6WFsQqo3ORzB4tyKvlWFOE9mB2sE= github.com/prometheus/exporter-toolkit v0.11.0 h1:yNTsuZ0aNCNFQ3aFTD2uhPOvr4iD7fdBvKPAEGkNf+g= github.com/prometheus/exporter-toolkit v0.11.0/go.mod h1:BVnENhnNecpwoTLiABx7mrPB/OLRIgN74qlQbV+FK1Q= github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= @@ -338,8 +338,8 @@ golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= -golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= -golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= +golang.org/x/crypto v0.19.0 h1:ENy+Az/9Y1vSrlrvBSyna3PITt4tiZLf7sgCjZBX7Wo= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI= golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -356,10 +356,10 @@ golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= -golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= -golang.org/x/oauth2 v0.16.0 h1:aDkGMBSYxElaoP81NpoUoz2oo2R2wHdZpGToUxfyQrQ= -golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= +golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/oauth2 v0.17.0 h1:6m3ZPmLEFdVxKKWnKq4VqZ60gutO35zm+zrAHVmHyDQ= +golang.org/x/oauth2 v0.17.0/go.mod h1:OzPDGQiuQMguemayvdylqddI7qcD9lnSDb+1FiwQ5HA= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -383,14 +383,14 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= -golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.16.0 h1:m+B6fahuftsE9qjo0VWp2FW0mB3MTJvR0BaMQrq0pmE= -golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= +golang.org/x/term v0.17.0 h1:mkTF7LCd6WGJNL3K1Ad7kwxNfYAW6a8a8QqtMblp/4U= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= From c15d6ffde713d2ba9fe5d9efaccbdbadfe4d028a Mon Sep 17 00:00:00 2001 From: Fritz <149476816+qfritz@users.noreply.github.com> Date: Thu, 7 Mar 2024 12:04:03 +0100 Subject: [PATCH 190/401] docs(README): mention the feature of labels for multiple targets in jobs [skip ci] (#462) docs: mention the feature of labels for multiple targets in jobs Signed-off-by: Eve Fritz --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 952c2103..a6167260 100644 --- a/README.md +++ b/README.md @@ -276,6 +276,8 @@ jobs: - targets: pg1: 'pg://db1@127.0.0.1:25432/postgres?sslmode=disable' pg2: 'postgresql://username:password@pg-host.example.com:5432/dbname?sslmode=disable' + - labels: # Optional, arbitrary key/value pair for all targets + cluster: cluster1 ``` , where DSN strings are assigned to the arbitrary instance names (i.e. pg1 and pg2). From d9bd9303a3d42ad7ae860ddd2622fad74835c35b Mon Sep 17 00:00:00 2001 From: Puneet Loya Date: Thu, 7 Mar 2024 13:34:11 -0800 Subject: [PATCH 191/401] deps(pgx): update driver to address CVE-2024-27289 (#463) update pgx to address CVE-2024-27289 Co-authored-by: Puneet Loya --- go.mod | 8 ++++---- go.sum | 35 ++++++++--------------------------- 2 files changed, 12 insertions(+), 31 deletions(-) diff --git a/go.mod b/go.mod index 61d5a5b2..2ef5e9d9 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/aws/aws-sdk-go-v2/config v1.27.4 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.1 github.com/go-sql-driver/mysql v1.7.1 - github.com/jackc/pgx/v4 v4.18.1 + github.com/jackc/pgx/v4 v4.18.2 github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.9 github.com/microsoft/go-mssqldb v1.7.0 @@ -78,10 +78,10 @@ require ( github.com/google/uuid v1.6.0 // indirect github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect github.com/jackc/chunkreader/v2 v2.0.1 // indirect - github.com/jackc/pgconn v1.14.0 // indirect + github.com/jackc/pgconn v1.14.3 // indirect github.com/jackc/pgio v1.0.0 // indirect github.com/jackc/pgpassfile v1.0.0 // indirect - github.com/jackc/pgproto3/v2 v2.3.2 // indirect + github.com/jackc/pgproto3/v2 v2.3.3 // indirect github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect github.com/jackc/pgtype v1.14.0 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect @@ -99,7 +99,7 @@ require ( github.com/prometheus/procfs v0.12.0 // indirect github.com/sirupsen/logrus v1.9.0 // indirect github.com/zeebo/xxh3 v1.0.2 // indirect - golang.org/x/crypto v0.19.0 // indirect + golang.org/x/crypto v0.20.0 // indirect golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect golang.org/x/mod v0.13.0 // indirect golang.org/x/net v0.21.0 // indirect diff --git a/go.sum b/go.sum index 35fbb9c3..dc9bb05d 100644 --- a/go.sum +++ b/go.sum @@ -161,8 +161,8 @@ github.com/jackc/pgconn v0.0.0-20190831204454-2fabfa3c18b7/go.mod h1:ZJKsE/KZfsU github.com/jackc/pgconn v1.8.0/go.mod h1:1C2Pb36bGIP9QHGBYCjnyhqu7Rv3sGshaQUvmfGIB/o= github.com/jackc/pgconn v1.9.0/go.mod h1:YctiPyvzfU11JFxoXokUOOKQXQmDMoJL9vJzHH8/2JY= github.com/jackc/pgconn v1.9.1-0.20210724152538-d89c8390a530/go.mod h1:4z2w8XhRbP1hYxkpTuBjTS3ne3J48K83+u0zoyvg2pI= -github.com/jackc/pgconn v1.14.0 h1:vrbA9Ud87g6JdFWkHTJXppVce58qPIdP7N8y0Ml/A7Q= -github.com/jackc/pgconn v1.14.0/go.mod h1:9mBNlny0UvkgJdCDvdVHYSjI+8tD2rnKK69Wz8ti++E= +github.com/jackc/pgconn v1.14.3 h1:bVoTr12EGANZz66nZPkMInAV/KHD2TxH9npjXXgiB3w= +github.com/jackc/pgconn v1.14.3/go.mod h1:RZbme4uasqzybK2RK5c65VsHxoyaml09lx3tXOcO/VM= github.com/jackc/pgio v1.0.0 h1:g12B9UwVnzGhueNavwioyEEpAmqMe1E/BN9ES+8ovkE= github.com/jackc/pgio v1.0.0/go.mod h1:oP+2QK2wFfUWgr+gxjoBH9KGBb31Eio69xUb0w5bYf8= github.com/jackc/pgmock v0.0.0-20190831213851-13a1b77aafa2/go.mod h1:fGZlG77KXmcq05nJLRkk0+p82V8B8Dw8KN2/V9c/OAE= @@ -178,8 +178,8 @@ github.com/jackc/pgproto3/v2 v2.0.0-rc3/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvW github.com/jackc/pgproto3/v2 v2.0.0-rc3.0.20190831210041-4c03ce451f29/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvWKnT95C46ckYeM= github.com/jackc/pgproto3/v2 v2.0.6/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= github.com/jackc/pgproto3/v2 v2.1.1/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= -github.com/jackc/pgproto3/v2 v2.3.2 h1:7eY55bdBeCz1F2fTzSz69QC+pG46jYq9/jtSPiJ5nn0= -github.com/jackc/pgproto3/v2 v2.3.2/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= +github.com/jackc/pgproto3/v2 v2.3.3 h1:1HLSx5H+tXR9pW3in3zaztoEwQYRC9SQaYUHjTSUOag= +github.com/jackc/pgproto3/v2 v2.3.3/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b/go.mod h1:vsD4gTJCa9TptPL8sPkXrLZ+hDuNrZCnj29CQpr4X1E= github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/Y25WS6cokEszi5g+S0QxI/d45PkRi7Nk= github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= @@ -193,12 +193,11 @@ github.com/jackc/pgx/v4 v4.0.0-20190420224344-cc3461e65d96/go.mod h1:mdxmSJJuR08 github.com/jackc/pgx/v4 v4.0.0-20190421002000-1b8f0016e912/go.mod h1:no/Y67Jkk/9WuGR0JG/JseM9irFbnEPbuWV2EELPNuM= github.com/jackc/pgx/v4 v4.0.0-pre1.0.20190824185557-6972a5742186/go.mod h1:X+GQnOEnf1dqHGpw7JmHqHc1NxDoalibchSk9/RWuDc= github.com/jackc/pgx/v4 v4.12.1-0.20210724153913-640aa07df17c/go.mod h1:1QD0+tgSXP7iUjYm9C1NxKhny7lq6ee99u/z+IHFcgs= -github.com/jackc/pgx/v4 v4.18.1 h1:YP7G1KABtKpB5IHrO9vYwSrCOhs7p3uqhvhhQBptya0= -github.com/jackc/pgx/v4 v4.18.1/go.mod h1:FydWkUyadDmdNH/mHnGob881GawxeEm7TcMCzkb+qQE= +github.com/jackc/pgx/v4 v4.18.2 h1:xVpYkNR5pk5bMCZGfClbO962UIqVABcAGt7ha1s/FeU= +github.com/jackc/pgx/v4 v4.18.2/go.mod h1:Ey4Oru5tH5sB6tV7hDmfWFahwF15Eb7DNXlRKx2CkVw= github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= -github.com/jackc/puddle v1.3.0/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= @@ -293,7 +292,6 @@ github.com/snowflakedb/gosnowflake v1.8.0/go.mod h1:7yyY2MxtDti2eXgtvlZ8QxzCN6KV github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= @@ -301,16 +299,12 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/vertica/vertica-sql-go v1.3.3 h1:fL+FKEAEy5ONmsvya2WH5T8bhkvY27y/Ik3ReR2T+Qw= github.com/vertica/vertica-sql-go v1.3.3/go.mod h1:jnn2GFuv+O2Jcjktb7zyc4Utlbu9YVqpHH/lx63+1M4= github.com/xo/dburl v0.21.1 h1:n5mfH1fh51RQbvuaKKykGslodt8pZqyZJMNohVo2zK0= github.com/xo/dburl v0.21.1/go.mod h1:B7/G9FGungw6ighV8xJNwWYQPMfn3gsi2sn5SE8Bzco= -github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= @@ -336,16 +330,13 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20201203163018-be400aefbc4c/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= -golang.org/x/crypto v0.19.0 h1:ENy+Az/9Y1vSrlrvBSyna3PITt4tiZLf7sgCjZBX7Wo= -golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.20.0 h1:jmAMJJZXr5KiCw05dfYK9QnqaqKLYXijU23lsEdcQqg= +golang.org/x/crypto v0.20.0/go.mod h1:Xwo95rrVNIoSMx9wa1JroENMToLWn3RNVrTBpLHgZPQ= golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI= golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.13.0 h1:I/DsJXRlw/8l/0c24sM9yb0T4z9liZTduXvdAWYiysY= golang.org/x/mod v0.13.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -354,15 +345,12 @@ golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/oauth2 v0.17.0 h1:6m3ZPmLEFdVxKKWnKq4VqZ60gutO35zm+zrAHVmHyDQ= golang.org/x/oauth2 v0.17.0/go.mod h1:OzPDGQiuQMguemayvdylqddI7qcD9lnSDb+1FiwQ5HA= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -380,15 +368,12 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.17.0 h1:mkTF7LCd6WGJNL3K1Ad7kwxNfYAW6a8a8QqtMblp/4U= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -396,8 +381,6 @@ golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -407,9 +390,7 @@ golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20190823170909-c4a336ef6a2f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/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.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.14.0 h1:jvNa2pY0M4r62jkRQ6RwEZZyPcymeL9XZMLBbV7U2nc= golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= From 2e25a2759bd0f75b85996b14f306345fa28907db Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Tue, 12 Mar 2024 14:49:17 +0100 Subject: [PATCH 192/401] deps: upgrade clickhouse-go to v2 (#466) --- drivers.go | 2 +- drivers_gen.go | 2 +- go.mod | 29 +++++++++----- go.sum | 104 ++++++++++++++++++++++++++++++++++--------------- 4 files changed, 93 insertions(+), 44 deletions(-) diff --git a/drivers.go b/drivers.go index 90e97f20..96600d9e 100644 --- a/drivers.go +++ b/drivers.go @@ -3,7 +3,7 @@ package sql_exporter import ( - _ "github.com/ClickHouse/clickhouse-go" + _ "github.com/ClickHouse/clickhouse-go/v2" _ "github.com/go-sql-driver/mysql" _ "github.com/jackc/pgx/v4/stdlib" _ "github.com/lib/pq" diff --git a/drivers_gen.go b/drivers_gen.go index cc6586f8..116c5dbe 100644 --- a/drivers_gen.go +++ b/drivers_gen.go @@ -21,7 +21,7 @@ var driverList = map[string][]string{ "github.com/microsoft/go-mssqldb/azuread", }, "extra": { - "github.com/ClickHouse/clickhouse-go", + "github.com/ClickHouse/clickhouse-go/v2", "github.com/jackc/pgx/v4/stdlib", "github.com/snowflakedb/gosnowflake", "github.com/vertica/vertica-sql-go", diff --git a/go.mod b/go.mod index 2ef5e9d9..edae58c8 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.21 toolchain go1.21.5 require ( - github.com/ClickHouse/clickhouse-go v1.5.4 + github.com/ClickHouse/clickhouse-go/v2 v2.21.1 github.com/aws/aws-sdk-go-v2 v1.25.2 github.com/aws/aws-sdk-go-v2/config v1.27.4 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.1 @@ -35,7 +35,9 @@ require ( github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.1 // indirect github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0 // indirect github.com/AzureAD/microsoft-authentication-library-for-go v1.2.1 // indirect + github.com/ClickHouse/ch-go v0.61.5 // indirect github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c // indirect + github.com/andybalholm/brotli v1.1.0 // indirect github.com/apache/arrow/go/v14 v14.0.2 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 // indirect github.com/aws/aws-sdk-go-v2/credentials v1.17.4 // indirect @@ -56,7 +58,6 @@ require ( github.com/aws/smithy-go v1.20.1 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect - github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect github.com/danieljoos/wincred v1.1.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect @@ -65,6 +66,8 @@ require ( github.com/elastic/go-windows v1.0.0 // indirect github.com/form3tech-oss/jwt-go v3.2.5+incompatible // indirect github.com/gabriel-vasile/mimetype v1.4.2 // indirect + github.com/go-faster/city v1.0.1 // indirect + github.com/go-faster/errors v0.7.1 // indirect github.com/go-kit/log v0.2.1 // indirect github.com/go-logfmt/logfmt v0.5.1 // indirect github.com/go-logr/logr v1.4.1 // indirect @@ -87,26 +90,32 @@ require ( github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 // indirect github.com/jpillora/backoff v1.0.0 // indirect - github.com/klauspost/compress v1.16.7 // indirect + github.com/klauspost/compress v1.17.7 // indirect github.com/klauspost/cpuid/v2 v2.2.5 // indirect github.com/kylelemons/godebug v1.1.0 // indirect github.com/mtibben/percent v0.2.1 // indirect github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect - github.com/pierrec/lz4/v4 v4.1.18 // indirect + github.com/paulmach/orb v0.11.1 // indirect + github.com/pierrec/lz4/v4 v4.1.21 // indirect github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/procfs v0.12.0 // indirect - github.com/sirupsen/logrus v1.9.0 // indirect + github.com/segmentio/asm v1.2.0 // indirect + github.com/shopspring/decimal v1.3.1 // indirect + github.com/sirupsen/logrus v1.9.3 // indirect + github.com/stretchr/objx v0.5.2 // indirect github.com/zeebo/xxh3 v1.0.2 // indirect - golang.org/x/crypto v0.20.0 // indirect + go.opentelemetry.io/otel v1.24.0 // indirect + go.opentelemetry.io/otel/trace v1.24.0 // indirect + golang.org/x/crypto v0.21.0 // indirect golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect golang.org/x/mod v0.13.0 // indirect - golang.org/x/net v0.21.0 // indirect + golang.org/x/net v0.22.0 // indirect golang.org/x/oauth2 v0.17.0 // indirect - golang.org/x/sync v0.5.0 // indirect - golang.org/x/sys v0.17.0 // indirect - golang.org/x/term v0.17.0 // indirect + golang.org/x/sync v0.6.0 // indirect + golang.org/x/sys v0.18.0 // indirect + golang.org/x/term v0.18.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/tools v0.14.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect diff --git a/go.sum b/go.sum index dc9bb05d..b891c6a9 100644 --- a/go.sum +++ b/go.sum @@ -17,12 +17,16 @@ github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0/go.mod h1:2e8rMJtl2+ github.com/AzureAD/microsoft-authentication-library-for-go v1.2.1 h1:DzHpqpoJVaCgOUdVHxE8QB52S6NiVdDQvGlny1qvPqA= github.com/AzureAD/microsoft-authentication-library-for-go v1.2.1/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/ClickHouse/clickhouse-go v1.5.4 h1:cKjXeYLNWVJIx2J1K6H2CqyRmfwVJVY1OV1coaaFcI0= -github.com/ClickHouse/clickhouse-go v1.5.4/go.mod h1:EaI/sW7Azgz9UATzd5ZdZHRUhHgv5+JMS9NSr2smCJI= +github.com/ClickHouse/ch-go v0.61.5 h1:zwR8QbYI0tsMiEcze/uIMK+Tz1D3XZXLdNrlaOpeEI4= +github.com/ClickHouse/ch-go v0.61.5/go.mod h1:s1LJW/F/LcFs5HJnuogFMta50kKDO0lf9zzfrbl0RQg= +github.com/ClickHouse/clickhouse-go/v2 v2.21.1 h1:x8wZEMOHDh4K8kLQBtGMeIIguejiaj8/bUiF2VzG6n4= +github.com/ClickHouse/clickhouse-go/v2 v2.21.1/go.mod h1:hTWNkV9mkQwiQ/df0rbN17VXF05UTResY4krnjbzVZA= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c h1:RGWPOewvKIROun94nF7v2cua9qP+thov/7M50KEoeSU= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= github.com/Masterminds/semver/v3 v3.1.1 h1:hLg3sBzpNErnxhQtUy/mmLR2I9foDujNK030IGemrRc= github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= +github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M= +github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY= github.com/apache/arrow/go/v14 v14.0.2 h1:N8OkaJEOfI3mEZt07BIkvo4sC6XDbL+48MBPWO5IONw= github.com/apache/arrow/go/v14 v14.0.2/go.mod h1:u3fgh3EdgN/YQ8cVQRguVW3R+seMybFg8QBQ5LU+eBY= github.com/aws/aws-sdk-go-v2 v1.17.7/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= @@ -80,12 +84,8 @@ github.com/aws/smithy-go v1.20.1 h1:4SZlSlMr36UEqC7XOyRVb27XMeZubNcBNN+9IgEPIQw= github.com/aws/smithy-go v1.20.1/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bkaradzic/go-lz4 v1.0.0 h1:RXc4wYsyz985CkXXeX04y4VnZFGG8Rd43pRaHsOXAKk= -github.com/bkaradzic/go-lz4 v1.0.0/go.mod h1:0YdlkowM3VswSROI7qDxhRvJ3sLhlFrRRwjwegp5jy4= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 h1:F1EaeKL/ta07PY/k9Os/UFtwERei2/XzGemhpGnBKNg= -github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58/go.mod h1:EOBUe0h4xcZ5GoxqC5SDxFQ8gwyZPKQoEzownBlhI80= github.com/cockroachdb/apd v1.1.0 h1:3LFP3629v+1aKXU5Q37mxmRxX/pIu1nijXydLShEq5I= github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= @@ -111,6 +111,10 @@ github.com/form3tech-oss/jwt-go v3.2.5+incompatible h1:/l4kBbb4/vGSsdtB5nUe8L7B9 github.com/form3tech-oss/jwt-go v3.2.5+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU= github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA= +github.com/go-faster/city v1.0.1 h1:4WAxSZ3V2Ws4QRDrscLEDcibJY8uf41H6AhXDrNDcGw= +github.com/go-faster/city v1.0.1/go.mod h1:jKcUJId49qdW3L1qKHH/3wPeUstCVpVSXTM6vO3VcTw= +github.com/go-faster/errors v0.7.1 h1:MkJTnDoEdi9pDabt1dpWf7AA8/BaSYZqibYyhZ20AYg= +github.com/go-faster/errors v0.7.1/go.mod h1:5ySTjWFiphBs07IKuiL69nxdfd5+fzh1u7FPGZP2quo= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= @@ -119,7 +123,6 @@ github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNV github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.7.1 h1:lUIinVbN1DY0xBg0eMOzmmtGoHwWBbvnWubQUrtU8EI= github.com/go-sql-driver/mysql v1.7.1/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= @@ -130,6 +133,7 @@ github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6 github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofrs/uuid v4.0.0+incompatible h1:1SD/1F5pU8p29ybwgQSwpQk+mwdRrXCYuPhW6m+TnJw= github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt/v5 v5.2.0 h1:d/ix8ftRUorsN+5eMIlF4T6J8CAt9rch3My2winC1Jw= github.com/golang-jwt/jwt/v5 v5.2.0/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA= @@ -140,8 +144,10 @@ github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/flatbuffers v23.5.26+incompatible h1:M9dgRyhJemaM4Sw8+66GHBu8ioaQmyPLg1b8VwK5WJg= github.com/google/flatbuffers v23.5.26+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= +github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= @@ -203,16 +209,17 @@ github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9Y github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= -github.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks= github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 h1:rp+c0RAYOWj8l6qbCUTSiRLG/iKnW3K3/QfPPuSsBt4= github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901/go.mod h1:Z86h9688Y0wesXCyonoVr47MasHilkuLMqGhRZ4Hpak= github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/kardianos/minwinsvc v1.0.2 h1:JmZKFJQrmTGa/WiW+vkJXKmfzdjabuEW4Tirj5lLdR0= github.com/kardianos/minwinsvc v1.0.2/go.mod h1:LUZNYhNmxujx2tR7FbdxqYJ9XDDoCd3MQcl1o//FWl4= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I= -github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= +github.com/klauspost/compress v1.17.7 h1:ehO88t2UGzQK66LMdE8tibEd1ErmzZjNEqWkjLAKQQg= +github.com/klauspost/compress v1.17.7/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= github.com/klauspost/cpuid/v2 v2.2.5 h1:0E5MSMDEoAulmXNFquVs//DdoomxaoTY1kUhbc/qbZg= github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -238,18 +245,19 @@ github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/microsoft/go-mssqldb v1.7.0 h1:sgMPW0HA6Ihd37Yx0MzHyKD726C2kY/8KJsQtXHNaAs= github.com/microsoft/go-mssqldb v1.7.0/go.mod h1:kOvZKUdrhhFQmxLZqbwUV0rHkNkZpthMITIb2Ko1IoA= +github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs= github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ibNBTZrns= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/pierrec/lz4 v2.0.5+incompatible h1:2xWsjqPFWcplujydGg4WmhC/6fZqK42wMM8aXeqhl0I= -github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= -github.com/pierrec/lz4/v4 v4.1.18 h1:xaKrnTkyoqfh1YItXl56+6KJNVYWlEEPuAQW9xsplYQ= -github.com/pierrec/lz4/v4 v4.1.18/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= +github.com/paulmach/orb v0.11.1 h1:3koVegMC4X/WeiXYz9iswopaTwMem53NzTJuTF20JzU= +github.com/paulmach/orb v0.11.1/go.mod h1:5mULz1xQfs3bmQm63QEJA6lNGujuRafwA5S/EnuLaLU= +github.com/paulmach/protoscan v0.2.1/go.mod h1:SpcSwydNLrxUGSDvXvO0P7g7AuhJ7lcKfDlhJCDw2gY= +github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ= +github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -276,40 +284,56 @@ github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= +github.com/segmentio/asm v1.2.0 h1:9BQrFxC+YOHJlTlHGkTrFWf59nbL3XnCoFLTwDCI7ys= +github.com/segmentio/asm v1.2.0/go.mod h1:BqMnlJP91P8d+4ibuonYZw9mfnzI9HfxselHZr5aAcs= github.com/sethvargo/go-envconfig v1.0.0 h1:1C66wzy4QrROf5ew4KdVw942CQDa55qmlYmw9FZxZdU= github.com/sethvargo/go-envconfig v1.0.0/go.mod h1:Lzc75ghUn5ucmcRGIdGQ33DKJrcjk4kihFYgSTBmjIc= github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= -github.com/shopspring/decimal v1.2.0 h1:abSATXmQEYyShuxI4/vyW3tV1MrKAJzCZ/0zLUXYbsQ= github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= +github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5gKV8= +github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= github.com/simonpasquier/klog-gokit/v3 v3.4.0 h1:2eD2INbzUHuGNynPP86BCB8H6Lwfp6wlkOcuyTr3VWM= github.com/simonpasquier/klog-gokit/v3 v3.4.0/go.mod h1:RREVB5Cc6yYHsweRfhUyM1ZP+Odb8ehxLfY8jaiqvjg= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= -github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/snowflakedb/gosnowflake v1.8.0 h1:4bQj8eAYGMkou/nICiIEb9jSbBLDDp5cB6JaKx9WwiA= github.com/snowflakedb/gosnowflake v1.8.0/go.mod h1:7yyY2MxtDti2eXgtvlZ8QxzCN6KV2B4qb1HuygMI+0U= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= -github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= +github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/vertica/vertica-sql-go v1.3.3 h1:fL+FKEAEy5ONmsvya2WH5T8bhkvY27y/Ik3ReR2T+Qw= github.com/vertica/vertica-sql-go v1.3.3/go.mod h1:jnn2GFuv+O2Jcjktb7zyc4Utlbu9YVqpHH/lx63+1M4= +github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= +github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= +github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= github.com/xo/dburl v0.21.1 h1:n5mfH1fh51RQbvuaKKykGslodt8pZqyZJMNohVo2zK0= github.com/xo/dburl v0.21.1/go.mod h1:B7/G9FGungw6ighV8xJNwWYQPMfn3gsi2sn5SE8Bzco= +github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= +go.mongodb.org/mongo-driver v1.11.4/go.mod h1:PTSz5yu21bkT/wXpkS7WR5f0ddqw5quethTUn9WM+2g= +go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo= +go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo= +go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y1YELI= +go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= @@ -330,13 +354,16 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20201203163018-be400aefbc4c/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.20.0 h1:jmAMJJZXr5KiCw05dfYK9QnqaqKLYXijU23lsEdcQqg= -golang.org/x/crypto v0.20.0/go.mod h1:Xwo95rrVNIoSMx9wa1JroENMToLWn3RNVrTBpLHgZPQ= +golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI= golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.13.0 h1:I/DsJXRlw/8l/0c24sM9yb0T4z9liZTduXvdAWYiysY= golang.org/x/mod v0.13.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -344,15 +371,21 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4= -golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc= +golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= golang.org/x/oauth2 v0.17.0 h1:6m3ZPmLEFdVxKKWnKq4VqZ60gutO35zm+zrAHVmHyDQ= golang.org/x/oauth2 v0.17.0/go.mod h1:OzPDGQiuQMguemayvdylqddI7qcD9lnSDb+1FiwQ5HA= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= -golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -363,24 +396,27 @@ golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y= -golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.17.0 h1:mkTF7LCd6WGJNL3K1Ad7kwxNfYAW6a8a8QqtMblp/4U= -golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8= +golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -390,7 +426,10 @@ golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20190823170909-c4a336ef6a2f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/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-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.14.0 h1:jvNa2pY0M4r62jkRQ6RwEZZyPcymeL9XZMLBbV7U2nc= golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -407,6 +446,7 @@ google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6 google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From baf5a9946bab6bf2c8e85bacbcc9b2f7c079ff00 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Wed, 13 Mar 2024 10:24:26 +0100 Subject: [PATCH 193/401] Bump up version to 0.14.1 (#467) --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index a803cc22..930e3000 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.14.0 +0.14.1 From cc37d602433398100b09825ae3fc22657edbdbef Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Wed, 13 Mar 2024 11:11:38 +0100 Subject: [PATCH 194/401] Bump up helm chart to 0.4.2 (#468) --- helm/Chart.yaml | 4 ++-- helm/README.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 03443dad..86e2a983 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: sql-exporter description: Database agnostic SQL exporter for Prometheus type: application -version: 0.4.1 -appVersion: 0.14.0 +version: 0.4.2 +appVersion: 0.14.1 keywords: - exporter - servicemonitor diff --git a/helm/README.md b/helm/README.md index 8a8db77e..588bdfbd 100644 --- a/helm/README.md +++ b/helm/README.md @@ -1,6 +1,6 @@ # sql-exporter -![Version: 0.4.1](https://img.shields.io/badge/Version-0.4.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.14.0](https://img.shields.io/badge/AppVersion-0.14.0-informational?style=flat-square) +![Version: 0.4.2](https://img.shields.io/badge/Version-0.4.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.14.1](https://img.shields.io/badge/AppVersion-0.14.1-informational?style=flat-square) Database agnostic SQL exporter for Prometheus From 9c2f915586bb2e656f269baa5a913b221fc1a8dd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Mar 2024 04:28:28 +0100 Subject: [PATCH 195/401] deps: bump google.golang.org/protobuf from 1.32.0 to 1.33.0 (#469) Bumps google.golang.org/protobuf from 1.32.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index edae58c8..f236c1ea 100644 --- a/go.mod +++ b/go.mod @@ -22,7 +22,7 @@ require ( github.com/snowflakedb/gosnowflake v1.8.0 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.21.1 - google.golang.org/protobuf v1.32.0 + google.golang.org/protobuf v1.33.0 gopkg.in/yaml.v3 v3.0.1 k8s.io/klog/v2 v2.70.1 ) diff --git a/go.sum b/go.sum index b891c6a9..3d733c26 100644 --- a/go.sum +++ b/go.sum @@ -447,8 +447,8 @@ google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCID google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= -google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From bb40cf721737fb032dc29945781dfd846d1b4d45 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Fri, 22 Mar 2024 13:38:38 +0100 Subject: [PATCH 196/401] build: update actions to remove deprecated warnings (#472) --- .github/workflows/build.yml | 4 ++-- .github/workflows/codeql-analysis.yml | 12 ++++++------ .github/workflows/helm-workflow.yaml | 6 +++--- .github/workflows/release.yml | 18 +++++++++--------- 4 files changed, 20 insertions(+), 20 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f098ddf2..d066f350 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -15,12 +15,12 @@ jobs: runs-on: ubuntu-latest steps: - name: Set up Go 1.x - uses: actions/setup-go@v3 + uses: actions/setup-go@v5 with: go-version: ^1.20 id: go - name: Check out code into the Go module directory - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Style run: make style - name: Vet diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index ec83ff81..04a838ba 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -28,27 +28,27 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: # We must fetch at least the immediate parents so that if this is # a pull request then we can checkout the head. fetch-depth: 2 - name: Set up Go - uses: actions/setup-go@v3 + uses: actions/setup-go@v5 with: - go-version: ^1.18 + go-version: ^1.20 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@v2 + uses: github/codeql-action/init@v3 with: languages: ${{ matrix.language }} # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@v2 + uses: github/codeql-action/autobuild@v3 # ℹ️ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -62,4 +62,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 + uses: github/codeql-action/analyze@v3 diff --git a/.github/workflows/helm-workflow.yaml b/.github/workflows/helm-workflow.yaml index 11799cd8..7e9c6720 100644 --- a/.github/workflows/helm-workflow.yaml +++ b/.github/workflows/helm-workflow.yaml @@ -16,14 +16,14 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set up Helm - uses: azure/setup-helm@v3 + uses: azure/setup-helm@v4 with: version: "v${{ env.HELM_VERSION }}" - - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5 with: python-version: ${{ env.PYTHON_VERSION }} check-latest: true diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5809db1d..c445e2a9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -14,11 +14,11 @@ jobs: VERSION: ${{ github.ref_name }} steps: - name: Set up Go 1.x - uses: actions/setup-go@v3 + uses: actions/setup-go@v5 with: go-version: ^1.20 - name: Check out code into the Go module directory - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Promu - Crossbuild run: make crossbuild @@ -43,7 +43,7 @@ jobs: run: make crossbuild-checksum - name: Upload artifacts - uses: softprops/action-gh-release@v1 + uses: softprops/action-gh-release@v2 with: files: | .tarballs/* @@ -53,23 +53,23 @@ jobs: needs: build steps: - name: Check out the repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Log in to Docker Hub - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_TOKEN }} - name: Extract metadata (tags, labels) for Docker id: meta - uses: docker/metadata-action@v4 + uses: docker/metadata-action@v5 with: images: burningalchemist/sql_exporter tags: | @@ -77,7 +77,7 @@ jobs: type=semver,pattern={{major}}.{{minor}} - name: Build and push Docker image - uses: docker/build-push-action@v4 + uses: docker/build-push-action@v5 with: context: . file: Dockerfile.multi-arch From 106e5c6c92c2023a8a9b9bb8e13ae973c61bf508 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Fri, 22 Mar 2024 15:25:40 +0100 Subject: [PATCH 197/401] build: update Makefile to support native Windows builds (#471) fix: update Makefile to support Windows --- Makefile | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 0ff6f626..38dade24 100644 --- a/Makefile +++ b/Makefile @@ -11,9 +11,18 @@ # See the License for the specific language governing permissions and # limitations under the License. +# To distinguish between native Windows and Windows Subsystem for Linux (WSL), +# we have to check how PATH is separated. For WSL and Unix-based systems it's +# a colon; for native Windows it's a semicolon. +ifeq '$(findstring ;,$(PATH))' ';' + GOPATH = $(firstword $(subst ;, ,$(shell $(GO) env GOPATH))) + PREFIX = $(shell cd) +endif + GO := go -GOPATH := $(firstword $(subst :, ,$(shell $(GO) env GOPATH))) +GOPATH ?= $(firstword $(subst :, ,$(shell $(GO) env GOPATH))) PROMU := $(GOPATH)/bin/promu +PROMU_VERSION := v0.14.0 pkgs = $(shell $(GO) list ./... | grep -v /vendor/) PREFIX ?= $(shell pwd) @@ -73,10 +82,17 @@ docker: @echo ">> building docker image" @docker build -t "$(DOCKER_IMAGE_NAME):$(DOCKER_IMAGE_TAG)" . +# Override for native Windows, where the path separator is a semicolon. +ifeq '$(findstring ;,$(PATH))' ';' +promu: + @set GOOS=windows + @set GOARCH=$(subst AMD64,amd64,$(patsubst i%86,386,$(shell echo %PROCESSOR_ARCHITECTURE%))) + @$(GO) install github.com/prometheus/promu@$(PROMU_VERSION) +else promu: @GOOS=$(shell uname -s | tr A-Z a-z) \ GOARCH=$(subst x86_64,amd64,$(patsubst i%86,386,$(shell uname -m))) \ - $(GO) install github.com/prometheus/promu@v0.14.0 - + $(GO) install github.com/prometheus/promu@$(PROMU_VERSION) +endif .PHONY: all style format build test vet tarball docker promu From 7610a7af04ce76179da3d0a3a4bb87d8afdf936e Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Mon, 1 Apr 2024 14:56:13 +0200 Subject: [PATCH 198/401] docs: update docs, add artifacthub.io badge [skip ci] (#475) * docs: add Artifacthub.io badge * docs: update link --- README.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a6167260..6b0efa3d 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,5 @@ -# Prometheus SQL Exporter [![Go](https://github.com/burningalchemist/sql_exporter/workflows/Go/badge.svg)](https://github.com/burningalchemist/sql_exporter/actions?query=workflow%3AGo) [![Go Report Card](https://goreportcard.com/badge/github.com/burningalchemist/sql_exporter)](https://goreportcard.com/report/github.com/burningalchemist/sql_exporter) [![Docker Pulls](https://img.shields.io/docker/pulls/burningalchemist/sql_exporter)](https://hub.docker.com/r/burningalchemist/sql_exporter) ![Downloads](https://img.shields.io/github/downloads/burningalchemist/sql_exporter/total) - -This is a permanent fork of Database agnostic SQL exporter for [Prometheus](https://prometheus.io) created by -[@free](https://github.com/free/sql_exporter). +# SQL Exporter for Prometheus +[![Go](https://github.com/burningalchemist/sql_exporter/workflows/Go/badge.svg)](https://github.com/burningalchemist/sql_exporter/actions?query=workflow%3AGo) [![Go Report Card](https://goreportcard.com/badge/github.com/burningalchemist/sql_exporter)](https://goreportcard.com/report/github.com/burningalchemist/sql_exporter) [![Docker Pulls](https://img.shields.io/docker/pulls/burningalchemist/sql_exporter)](https://hub.docker.com/r/burningalchemist/sql_exporter) ![Downloads](https://img.shields.io/github/downloads/burningalchemist/sql_exporter/total) [![Artifact HUB](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/sql-exporter)](https://artifacthub.io/packages/helm/sql-exporter/sql-exporter) ## Overview @@ -326,3 +324,8 @@ philosophical issue, but practical issues are not all that difficult to imagine: The control they provide over which labels get applied is limited, and the base label set spammy. And finally, configurations are not easily reused without copy-pasting and editing across jobs and instances. + +## Credits + +This is a permanent fork of Database agnostic SQL exporter for [Prometheus](https://prometheus.io) created by +[@free](https://github.com/free/sql_exporter). From 2a1a3ba7367f2814173d878d26f7a83d6094c914 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Apr 2024 22:32:04 +0200 Subject: [PATCH 199/401] deps: bump github.com/aws/aws-sdk-go-v2 from 1.25.2 to 1.26.1 (#478) --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index f236c1ea..2d9b5f00 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ toolchain go1.21.5 require ( github.com/ClickHouse/clickhouse-go/v2 v2.21.1 - github.com/aws/aws-sdk-go-v2 v1.25.2 + github.com/aws/aws-sdk-go-v2 v1.26.1 github.com/aws/aws-sdk-go-v2/config v1.27.4 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.1 github.com/go-sql-driver/mysql v1.7.1 @@ -55,7 +55,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/sso v1.20.1 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.1 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.28.1 // indirect - github.com/aws/smithy-go v1.20.1 // indirect + github.com/aws/smithy-go v1.20.2 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect diff --git a/go.sum b/go.sum index 3d733c26..82cb8e96 100644 --- a/go.sum +++ b/go.sum @@ -30,8 +30,8 @@ github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer5 github.com/apache/arrow/go/v14 v14.0.2 h1:N8OkaJEOfI3mEZt07BIkvo4sC6XDbL+48MBPWO5IONw= github.com/apache/arrow/go/v14 v14.0.2/go.mod h1:u3fgh3EdgN/YQ8cVQRguVW3R+seMybFg8QBQ5LU+eBY= github.com/aws/aws-sdk-go-v2 v1.17.7/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= -github.com/aws/aws-sdk-go-v2 v1.25.2 h1:/uiG1avJRgLGiQM9X3qJM8+Qa6KRGK5rRPuXE0HUM+w= -github.com/aws/aws-sdk-go-v2 v1.25.2/go.mod h1:Evoc5AsmtveRt1komDwIsjHFyrP5tDuF1D1U+6z6pNo= +github.com/aws/aws-sdk-go-v2 v1.26.1 h1:5554eUqIYVWpU0YmeeYZ0wU64H2VLBs8TlhRB2L+EkA= +github.com/aws/aws-sdk-go-v2 v1.26.1/go.mod h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7BReUZ3jCXM= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10/go.mod h1:VeTZetY5KRJLuD/7fkQXMU6Mw7H5m/KP2J5Iy9osMno= github.com/aws/aws-sdk-go-v2/config v1.18.19/go.mod h1:XvTmGMY8d52ougvakOv1RpiTLPz9dlG/OQHsKU/cMmY= @@ -80,8 +80,8 @@ github.com/aws/aws-sdk-go-v2/service/sts v1.18.7/go.mod h1:JuTnSoeePXmMVe9G8Ncjj github.com/aws/aws-sdk-go-v2/service/sts v1.28.1 h1:3I2cBEYgKhrWlwyZgfpSO2BpaMY1LHPqXYk/QGlu2ew= github.com/aws/aws-sdk-go-v2/service/sts v1.28.1/go.mod h1:uQ7YYKZt3adCRrdCBREm1CD3efFLOUNH77MrUCvx5oA= github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= -github.com/aws/smithy-go v1.20.1 h1:4SZlSlMr36UEqC7XOyRVb27XMeZubNcBNN+9IgEPIQw= -github.com/aws/smithy-go v1.20.1/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E= +github.com/aws/smithy-go v1.20.2 h1:tbp628ireGtzcHDDmLT/6ADHidqnwgF57XOXZe6tp4Q= +github.com/aws/smithy-go v1.20.2/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= From f700caf32de4c6216bf00aab18f8a779051d5104 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Apr 2024 22:34:16 +0200 Subject: [PATCH 200/401] deps: bump github.com/aws/aws-sdk-go-v2/config from 1.27.4 to 1.27.10 (#479) --- go.mod | 20 ++++++++++---------- go.sum | 40 ++++++++++++++++++++-------------------- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/go.mod b/go.mod index 2d9b5f00..16d4eb66 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ toolchain go1.21.5 require ( github.com/ClickHouse/clickhouse-go/v2 v2.21.1 github.com/aws/aws-sdk-go-v2 v1.26.1 - github.com/aws/aws-sdk-go-v2/config v1.27.4 + github.com/aws/aws-sdk-go-v2/config v1.27.10 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.1 github.com/go-sql-driver/mysql v1.7.1 github.com/jackc/pgx/v4 v4.18.2 @@ -40,21 +40,21 @@ require ( github.com/andybalholm/brotli v1.1.0 // indirect github.com/apache/arrow/go/v14 v14.0.2 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.4 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.15.2 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.10 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.2 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.2 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 // indirect github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.2 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 // indirect github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.20.1 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.1 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.28.1 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.20.4 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.28.6 // indirect github.com/aws/smithy-go v1.20.2 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect diff --git a/go.sum b/go.sum index 82cb8e96..78bf95e0 100644 --- a/go.sum +++ b/go.sum @@ -35,35 +35,35 @@ github.com/aws/aws-sdk-go-v2 v1.26.1/go.mod h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7 github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10/go.mod h1:VeTZetY5KRJLuD/7fkQXMU6Mw7H5m/KP2J5Iy9osMno= github.com/aws/aws-sdk-go-v2/config v1.18.19/go.mod h1:XvTmGMY8d52ougvakOv1RpiTLPz9dlG/OQHsKU/cMmY= -github.com/aws/aws-sdk-go-v2/config v1.27.4 h1:AhfWb5ZwimdsYTgP7Od8E9L1u4sKmDW2ZVeLcf2O42M= -github.com/aws/aws-sdk-go-v2/config v1.27.4/go.mod h1:zq2FFXK3A416kiukwpsd+rD4ny6JC7QSkp4QdN1Mp2g= +github.com/aws/aws-sdk-go-v2/config v1.27.10 h1:PS+65jThT0T/snC5WjyfHHyUgG+eBoupSDV+f838cro= +github.com/aws/aws-sdk-go-v2/config v1.27.10/go.mod h1:BePM7Vo4OBpHreKRUMuDXX+/+JWP38FLkzl5m27/Jjs= github.com/aws/aws-sdk-go-v2/credentials v1.13.18/go.mod h1:vnwlwjIe+3XJPBYKu1et30ZPABG3VaXJYr8ryohpIyM= -github.com/aws/aws-sdk-go-v2/credentials v1.17.4 h1:h5Vztbd8qLppiPwX+y0Q6WiwMZgpd9keKe2EAENgAuI= -github.com/aws/aws-sdk-go-v2/credentials v1.17.4/go.mod h1:+30tpwrkOgvkJL1rUZuRLoxcJwtI/OkeBLYnHxJtVe0= +github.com/aws/aws-sdk-go-v2/credentials v1.17.10 h1:qDZ3EA2lv1KangvQB6y258OssCHD0xvaGiEDkG4X/10= +github.com/aws/aws-sdk-go-v2/credentials v1.17.10/go.mod h1:6t3sucOaYDwDssHQa0ojH1RpmVmF5/jArkye1b2FKMI= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.1/go.mod h1:lfUx8puBRdM5lVVMQlwt2v+ofiG/X6Ms+dy0UkG/kXw= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.15.2 h1:AK0J8iYBFeUk2Ax7O8YpLtFsfhdOByh2QIkHmigpRYk= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.15.2/go.mod h1:iRlGzMix0SExQEviAyptRWRGdYNo3+ufW/lCzvKVTUc= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 h1:FVJ0r5XTHSmIHJV6KuDmdYhEpvlHpiSd38RQWhut5J4= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1/go.mod h1:zusuAeqezXzAB24LGuzuekqMAEgWkVYukBec3kr3jUg= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 h1:E3Y+OfzOK1+rmRo/K2G0ml8Vs+Xqk0kOnf4nS0kUtBc= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59/go.mod h1:1M4PLSBUVfBI0aP+C9XI7SM6kZPCGYyI6izWz0TGprE= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.31/go.mod h1:QT0BqUvX1Bh2ABdTGnjqEjvjzrCfIniM9Sc8zn9Yndo= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.2 h1:bNo4LagzUKbjdxE0tIcR9pMzLR2U/Tgie1Hq1HQ3iH8= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.2/go.mod h1:wRQv0nN6v9wDXuWThpovGQjqF1HFdcgWjporw14lS8k= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 h1:aw39xVGeRWlWx9EzGVnhOR4yOjQDHPQ6o6NmBlscyQg= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5/go.mod h1:FSaRudD0dXiMPK2UjknVwwTYyZMRsHv3TtkabsZih5I= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.25/go.mod h1:zBHOPwhBc3FlQjQJE/D3IfPWiWaQmT06Vq9aNukDo0k= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.2 h1:EtOU5jsPdIQNP+6Q2C5e3d65NKT1PeCiQk+9OdzO12Q= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.2/go.mod h1:tyF5sKccmDz0Bv4NrstEr+/9YkSPJHrcO7UsUKf7pWM= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 h1:PG1F3OD1szkuQPzDw3CIQsRIrtTlUC3lP84taWzHlq0= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5/go.mod h1:jU1li6RFryMz+so64PpKtudI+QzbKoIEivqdf6LNpOc= github.com/aws/aws-sdk-go-v2/internal/ini v1.3.32/go.mod h1:XGhIBZDEgfqmFIugclZ6FU7v75nHhBDtzuB4xB/tEi4= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY= github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 h1:DWYZIsyqagnWL00f8M/SOr9fN063OEQWn9LLTbdYXsk= github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23/go.mod h1:uIiFgURZbACBEQJfqTZPb/jxO7R+9LeoHUFudtIdeQI= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11/go.mod h1:iV4q2hsqtNECrfmlXyord9u4zyuFEJX9eLgLpSPzWA8= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.1 h1:EyBZibRTVAs6ECHZOw5/wlylS9OcTzwyjeQMudmREjE= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.1/go.mod h1:JKpmtYhhPs7D97NL/ltqz7yCkERFW5dOlHyVl66ZYF8= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 h1:Ji0DY1xUsUr3I8cHps0G+XM3WWU16lP6yG8qu1GAZAs= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2/go.mod h1:5CsjAbs3NlGQyZNFACh+zztPDI7fU6eW9QsxjfnuBKg= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26 h1:CeuSeq/8FnYpPtnuIeLQEEvDv9zUjneuYi8EghMBdwQ= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26/go.mod h1:2UqAAwMUXKeRkAHIlDJqvMVgOWkUi/AUXPk/YIe+Dg4= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.25/go.mod h1:/95IA+0lMnzW6XzqYJRpjjsAbKEORVeO0anQqjd2CNU= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.2 h1:5ffmXjPtwRExp1zc7gENLgCPyHFbhEPwVTkTiH9niSk= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.2/go.mod h1:Ru7vg1iQ7cR4i7SZ/JTLYN9kaXtbL69UdgG0OQWQxW0= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 h1:ogRAwT1/gxJBcSWDMZlgyFUM962F51A5CRhDLbxLdmo= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7/go.mod h1:YCsIZhXfRPLFFCl5xxY+1T9RKzOKjCut+28JSX2DnAk= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 h1:e2ooMhpYGhDnBfSvIyusvAwX7KexuZaHbQY2Dyei7VU= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0/go.mod h1:bh2E0CXKZsQN+faiKVqC40vfNMAWheoULBCnEgO9K+8= github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 h1:B1G2pSPvbAtQjilPq+Y7jLIzCOwKzuVEl+aBBaNG0AQ= @@ -71,14 +71,14 @@ github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0/go.mod h1:ncltU6n4Nof5uJttDtcNQ5 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.1 h1:DtKw4TxZT3VrzYupXQJPBqT9ImyobZZE+JIQPPAVxqs= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.1/go.mod h1:bit9G2ORpSjUTr4PA4usvbBfbOyvMj0LbE1dXF14Sug= github.com/aws/aws-sdk-go-v2/service/sso v1.12.6/go.mod h1:Y1VOmit/Fn6Tz1uFAeCO6Q7M2fmfXSCLeL5INVYsLuY= -github.com/aws/aws-sdk-go-v2/service/sso v1.20.1 h1:utEGkfdQ4L6YW/ietH7111ZYglLJvS+sLriHJ1NBJEQ= -github.com/aws/aws-sdk-go-v2/service/sso v1.20.1/go.mod h1:RsYqzYr2F2oPDdpy+PdhephuZxTfjHQe7SOBcZGoAU8= +github.com/aws/aws-sdk-go-v2/service/sso v1.20.4 h1:WzFol5Cd+yDxPAdnzTA5LmpHYSWinhmSj4rQChV0ee8= +github.com/aws/aws-sdk-go-v2/service/sso v1.20.4/go.mod h1:qGzynb/msuZIE8I75DVRCUXw3o3ZyBmUvMwQ2t/BrGM= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.6/go.mod h1:Lh/bc9XUf8CfOY6Jp5aIkQtN+j1mc+nExc+KXj9jx2s= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.1 h1:9/GylMS45hGGFCcMrUZDVayQE1jYSIN6da9jo7RAYIw= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.1/go.mod h1:YjAPFn4kGFqKC54VsHs5fn5B6d+PCY2tziEa3U/GB5Y= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4 h1:Jux+gDDyi1Lruk+KHF91tK2KCuY61kzoCpvtvJJBtOE= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4/go.mod h1:mUYPBhaF2lGiukDEjJX2BLRRKTmoUSitGDUgM4tRxak= github.com/aws/aws-sdk-go-v2/service/sts v1.18.7/go.mod h1:JuTnSoeePXmMVe9G8NcjjwgOKEfZ4cOjMuT2IBT/2eI= -github.com/aws/aws-sdk-go-v2/service/sts v1.28.1 h1:3I2cBEYgKhrWlwyZgfpSO2BpaMY1LHPqXYk/QGlu2ew= -github.com/aws/aws-sdk-go-v2/service/sts v1.28.1/go.mod h1:uQ7YYKZt3adCRrdCBREm1CD3efFLOUNH77MrUCvx5oA= +github.com/aws/aws-sdk-go-v2/service/sts v1.28.6 h1:cwIxeBttqPN3qkaAjcEcsh8NYr8n2HZPkcKgPAi1phU= +github.com/aws/aws-sdk-go-v2/service/sts v1.28.6/go.mod h1:FZf1/nKNEkHdGGJP/cI2MoIMquumuRK6ol3QQJNDxmw= github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= github.com/aws/smithy-go v1.20.2 h1:tbp628ireGtzcHDDmLT/6ADHidqnwgF57XOXZe6tp4Q= github.com/aws/smithy-go v1.20.2/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E= From 4d83a5cac480bca4685ccafbb71004b07ad34e93 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Apr 2024 22:35:43 +0200 Subject: [PATCH 201/401] deps: bump github.com/xo/dburl from 0.21.1 to 0.22.0 (#476) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 16d4eb66..a5d801ff 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/sethvargo/go-envconfig v1.0.0 github.com/snowflakedb/gosnowflake v1.8.0 github.com/vertica/vertica-sql-go v1.3.3 - github.com/xo/dburl v0.21.1 + github.com/xo/dburl v0.22.0 google.golang.org/protobuf v1.33.0 gopkg.in/yaml.v3 v3.0.1 k8s.io/klog/v2 v2.70.1 diff --git a/go.sum b/go.sum index 78bf95e0..8a55c1d1 100644 --- a/go.sum +++ b/go.sum @@ -319,8 +319,8 @@ github.com/vertica/vertica-sql-go v1.3.3/go.mod h1:jnn2GFuv+O2Jcjktb7zyc4Utlbu9Y github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= -github.com/xo/dburl v0.21.1 h1:n5mfH1fh51RQbvuaKKykGslodt8pZqyZJMNohVo2zK0= -github.com/xo/dburl v0.21.1/go.mod h1:B7/G9FGungw6ighV8xJNwWYQPMfn3gsi2sn5SE8Bzco= +github.com/xo/dburl v0.22.0 h1:sO5WLm2ywMzyiLxEcLBlw5AyKvdR5hirq9U7s3fCoeM= +github.com/xo/dburl v0.22.0/go.mod h1:B7/G9FGungw6ighV8xJNwWYQPMfn3gsi2sn5SE8Bzco= github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= From 82b6719e6ea3b6a8285a7642a9e3cc747502ea33 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Apr 2024 22:37:51 +0200 Subject: [PATCH 202/401] deps: bump github.com/ClickHouse/clickhouse-go/v2 from 2.21.1 to 2.23.0 (#480) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index a5d801ff..4f1d26f6 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.21 toolchain go1.21.5 require ( - github.com/ClickHouse/clickhouse-go/v2 v2.21.1 + github.com/ClickHouse/clickhouse-go/v2 v2.23.0 github.com/aws/aws-sdk-go-v2 v1.26.1 github.com/aws/aws-sdk-go-v2/config v1.27.10 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.1 diff --git a/go.sum b/go.sum index 8a55c1d1..08f23059 100644 --- a/go.sum +++ b/go.sum @@ -19,8 +19,8 @@ github.com/AzureAD/microsoft-authentication-library-for-go v1.2.1/go.mod h1:wP83 github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/ClickHouse/ch-go v0.61.5 h1:zwR8QbYI0tsMiEcze/uIMK+Tz1D3XZXLdNrlaOpeEI4= github.com/ClickHouse/ch-go v0.61.5/go.mod h1:s1LJW/F/LcFs5HJnuogFMta50kKDO0lf9zzfrbl0RQg= -github.com/ClickHouse/clickhouse-go/v2 v2.21.1 h1:x8wZEMOHDh4K8kLQBtGMeIIguejiaj8/bUiF2VzG6n4= -github.com/ClickHouse/clickhouse-go/v2 v2.21.1/go.mod h1:hTWNkV9mkQwiQ/df0rbN17VXF05UTResY4krnjbzVZA= +github.com/ClickHouse/clickhouse-go/v2 v2.23.0 h1:srmRrkS0BR8gEut87u8jpcZ7geOob6nGj9ifrb+aKmg= +github.com/ClickHouse/clickhouse-go/v2 v2.23.0/go.mod h1:tBhdF3f3RdP7sS59+oBAtTyhWpy0024ZxDMhgxra0QE= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c h1:RGWPOewvKIROun94nF7v2cua9qP+thov/7M50KEoeSU= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= github.com/Masterminds/semver/v3 v3.1.1 h1:hLg3sBzpNErnxhQtUy/mmLR2I9foDujNK030IGemrRc= From 20828950ed0a6b3c56528b5310ebf7bcdef5f5df Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Apr 2024 22:39:33 +0200 Subject: [PATCH 203/401] deps: bump github.com/go-sql-driver/mysql from 1.7.1 to 1.8.1 (#477) --- go.mod | 3 ++- go.sum | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 4f1d26f6..372ff3fc 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/aws/aws-sdk-go-v2 v1.26.1 github.com/aws/aws-sdk-go-v2/config v1.27.10 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.1 - github.com/go-sql-driver/mysql v1.7.1 + github.com/go-sql-driver/mysql v1.8.1 github.com/jackc/pgx/v4 v4.18.2 github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.9 @@ -28,6 +28,7 @@ require ( ) require ( + filippo.io/edwards25519 v1.1.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.2 // indirect github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.1 // indirect diff --git a/go.sum b/go.sum index 08f23059..b1c49a97 100644 --- a/go.sum +++ b/go.sum @@ -1,3 +1,5 @@ +filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= +filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 h1:/vQbFIOMbk2FiG/kXiLl8BRyzTWDw7gX/Hz7Dd5eDMs= github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4/go.mod h1:hN7oaIRCjzsZ2dE+yG5k+rsdt3qcwykqK6HVGcKwsw4= github.com/99designs/keyring v1.2.2 h1:pZd3neh/EmUzWONb35LxQfvuY7kiSXAq3HQd97+XBn0= @@ -123,8 +125,8 @@ github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNV github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-sql-driver/mysql v1.7.1 h1:lUIinVbN1DY0xBg0eMOzmmtGoHwWBbvnWubQUrtU8EI= -github.com/go-sql-driver/mysql v1.7.1/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= +github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= +github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= From ccbadeef382fc445b34b98ba14cba3e7b511c2b6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Apr 2024 22:52:37 +0200 Subject: [PATCH 204/401] deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager from 1.28.1 to 1.28.6 (#483) deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager Bumps [github.com/aws/aws-sdk-go-v2/service/secretsmanager](https://github.com/aws/aws-sdk-go-v2) from 1.28.1 to 1.28.6. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/ecs/v1.28.1...service/emr/v1.28.6) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/service/secretsmanager dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 372ff3fc..09fb153e 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/ClickHouse/clickhouse-go/v2 v2.23.0 github.com/aws/aws-sdk-go-v2 v1.26.1 github.com/aws/aws-sdk-go-v2/config v1.27.10 - github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.1 + github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.6 github.com/go-sql-driver/mysql v1.8.1 github.com/jackc/pgx/v4 v4.18.2 github.com/kardianos/minwinsvc v1.0.2 diff --git a/go.sum b/go.sum index b1c49a97..109b3191 100644 --- a/go.sum +++ b/go.sum @@ -70,8 +70,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 h1:e2ooMhpYGhDnBf github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0/go.mod h1:bh2E0CXKZsQN+faiKVqC40vfNMAWheoULBCnEgO9K+8= github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 h1:B1G2pSPvbAtQjilPq+Y7jLIzCOwKzuVEl+aBBaNG0AQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0/go.mod h1:ncltU6n4Nof5uJttDtcNQ537uNuwYqsZZQcpkd2/GUQ= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.1 h1:DtKw4TxZT3VrzYupXQJPBqT9ImyobZZE+JIQPPAVxqs= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.1/go.mod h1:bit9G2ORpSjUTr4PA4usvbBfbOyvMj0LbE1dXF14Sug= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.6 h1:TIOEjw0i2yyhmhRry3Oeu9YtiiHWISZ6j/irS1W3gX4= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.6/go.mod h1:3Ba++UwWd154xtP4FRX5pUK3Gt4up5sDHCve6kVfE+g= github.com/aws/aws-sdk-go-v2/service/sso v1.12.6/go.mod h1:Y1VOmit/Fn6Tz1uFAeCO6Q7M2fmfXSCLeL5INVYsLuY= github.com/aws/aws-sdk-go-v2/service/sso v1.20.4 h1:WzFol5Cd+yDxPAdnzTA5LmpHYSWinhmSj4rQChV0ee8= github.com/aws/aws-sdk-go-v2/service/sso v1.20.4/go.mod h1:qGzynb/msuZIE8I75DVRCUXw3o3ZyBmUvMwQ2t/BrGM= From 5a48826d4bae784a7d2eecc01e4bc779fd3c7a02 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Apr 2024 22:57:26 +0200 Subject: [PATCH 205/401] deps: bump github.com/jackc/pgx/v4 from 4.18.2 to 4.18.3 (#484) Bumps [github.com/jackc/pgx/v4](https://github.com/jackc/pgx) from 4.18.2 to 4.18.3. - [Changelog](https://github.com/jackc/pgx/blob/v4.18.3/CHANGELOG.md) - [Commits](https://github.com/jackc/pgx/compare/v4.18.2...v4.18.3) --- updated-dependencies: - dependency-name: github.com/jackc/pgx/v4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 09fb153e..51db1b8e 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/aws/aws-sdk-go-v2/config v1.27.10 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.6 github.com/go-sql-driver/mysql v1.8.1 - github.com/jackc/pgx/v4 v4.18.2 + github.com/jackc/pgx/v4 v4.18.3 github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.9 github.com/microsoft/go-mssqldb v1.7.0 diff --git a/go.sum b/go.sum index 109b3191..32383083 100644 --- a/go.sum +++ b/go.sum @@ -201,8 +201,8 @@ github.com/jackc/pgx/v4 v4.0.0-20190420224344-cc3461e65d96/go.mod h1:mdxmSJJuR08 github.com/jackc/pgx/v4 v4.0.0-20190421002000-1b8f0016e912/go.mod h1:no/Y67Jkk/9WuGR0JG/JseM9irFbnEPbuWV2EELPNuM= github.com/jackc/pgx/v4 v4.0.0-pre1.0.20190824185557-6972a5742186/go.mod h1:X+GQnOEnf1dqHGpw7JmHqHc1NxDoalibchSk9/RWuDc= github.com/jackc/pgx/v4 v4.12.1-0.20210724153913-640aa07df17c/go.mod h1:1QD0+tgSXP7iUjYm9C1NxKhny7lq6ee99u/z+IHFcgs= -github.com/jackc/pgx/v4 v4.18.2 h1:xVpYkNR5pk5bMCZGfClbO962UIqVABcAGt7ha1s/FeU= -github.com/jackc/pgx/v4 v4.18.2/go.mod h1:Ey4Oru5tH5sB6tV7hDmfWFahwF15Eb7DNXlRKx2CkVw= +github.com/jackc/pgx/v4 v4.18.3 h1:dE2/TrEsGX3RBprb3qryqSV9Y60iZN1C6i8IrmW9/BA= +github.com/jackc/pgx/v4 v4.18.3/go.mod h1:Ey4Oru5tH5sB6tV7hDmfWFahwF15Eb7DNXlRKx2CkVw= github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= From 4d1d3fef6e357e8c1a277efcc6c0373fe5fc8551 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Apr 2024 22:57:51 +0200 Subject: [PATCH 206/401] deps: bump github.com/snowflakedb/gosnowflake from 1.8.0 to 1.9.0 (#481) Bumps [github.com/snowflakedb/gosnowflake](https://github.com/snowflakedb/gosnowflake) from 1.8.0 to 1.9.0. - [Release notes](https://github.com/snowflakedb/gosnowflake/releases) - [Changelog](https://github.com/snowflakedb/gosnowflake/blob/master/release.go) - [Commits](https://github.com/snowflakedb/gosnowflake/compare/v1.8.0...v1.9.0) --- updated-dependencies: - dependency-name: github.com/snowflakedb/gosnowflake dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 51db1b8e..7697c4e2 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/prometheus/common v0.49.0 github.com/prometheus/exporter-toolkit v0.11.0 github.com/sethvargo/go-envconfig v1.0.0 - github.com/snowflakedb/gosnowflake v1.8.0 + github.com/snowflakedb/gosnowflake v1.9.0 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.22.0 google.golang.org/protobuf v1.33.0 @@ -39,7 +39,7 @@ require ( github.com/ClickHouse/ch-go v0.61.5 // indirect github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c // indirect github.com/andybalholm/brotli v1.1.0 // indirect - github.com/apache/arrow/go/v14 v14.0.2 // indirect + github.com/apache/arrow/go/v15 v15.0.0 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 // indirect github.com/aws/aws-sdk-go-v2/credentials v1.17.10 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 // indirect diff --git a/go.sum b/go.sum index 32383083..e0446ea5 100644 --- a/go.sum +++ b/go.sum @@ -29,8 +29,8 @@ github.com/Masterminds/semver/v3 v3.1.1 h1:hLg3sBzpNErnxhQtUy/mmLR2I9foDujNK030I github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M= github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY= -github.com/apache/arrow/go/v14 v14.0.2 h1:N8OkaJEOfI3mEZt07BIkvo4sC6XDbL+48MBPWO5IONw= -github.com/apache/arrow/go/v14 v14.0.2/go.mod h1:u3fgh3EdgN/YQ8cVQRguVW3R+seMybFg8QBQ5LU+eBY= +github.com/apache/arrow/go/v15 v15.0.0 h1:1zZACWf85oEZY5/kd9dsQS7i+2G5zVQcbKTHgslqHNA= +github.com/apache/arrow/go/v15 v15.0.0/go.mod h1:DGXsR3ajT524njufqf95822i+KTh+yea1jass9YXgjA= github.com/aws/aws-sdk-go-v2 v1.17.7/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= github.com/aws/aws-sdk-go-v2 v1.26.1 h1:5554eUqIYVWpU0YmeeYZ0wU64H2VLBs8TlhRB2L+EkA= github.com/aws/aws-sdk-go-v2 v1.26.1/go.mod h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7BReUZ3jCXM= @@ -300,8 +300,8 @@ github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMB github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/snowflakedb/gosnowflake v1.8.0 h1:4bQj8eAYGMkou/nICiIEb9jSbBLDDp5cB6JaKx9WwiA= -github.com/snowflakedb/gosnowflake v1.8.0/go.mod h1:7yyY2MxtDti2eXgtvlZ8QxzCN6KV2B4qb1HuygMI+0U= +github.com/snowflakedb/gosnowflake v1.9.0 h1:s2ZdwFxFfpqwa5CqlhnzRESnLmwU3fED6zyNOJHFBQA= +github.com/snowflakedb/gosnowflake v1.9.0/go.mod h1:4ZgHxVf2OKwecx07WjfyAMr0gn8Qj4yvwAo68Og8wsU= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= From 4d7cbe7737b8d252b365bd369428b81f7cfa70da Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 Apr 2024 11:33:35 +0200 Subject: [PATCH 207/401] deps: bump github.com/prometheus/common from 0.49.0 to 0.51.1 (#482) * deps: bump github.com/prometheus/common from 0.49.0 to 0.51.1 Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.49.0 to 0.51.1. - [Release notes](https://github.com/prometheus/common/releases) - [Commits](https://github.com/prometheus/common/compare/v0.49.0...v0.51.1) --- updated-dependencies: - dependency-name: github.com/prometheus/common dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * fix: update reference --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Sergei Zyubin --- cmd/sql_exporter/main.go | 3 ++- go.mod | 4 ++-- go.sum | 8 ++++---- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/cmd/sql_exporter/main.go b/cmd/sql_exporter/main.go index c173a47c..a2a1a277 100644 --- a/cmd/sql_exporter/main.go +++ b/cmd/sql_exporter/main.go @@ -12,6 +12,7 @@ import ( cfg "github.com/burningalchemist/sql_exporter/config" _ "github.com/kardianos/minwinsvc" "github.com/prometheus/client_golang/prometheus" + info "github.com/prometheus/client_golang/prometheus/collectors/version" "github.com/prometheus/client_golang/prometheus/promhttp" "github.com/prometheus/common/promlog" "github.com/prometheus/common/version" @@ -38,7 +39,7 @@ var ( ) func init() { - prometheus.MustRegister(version.NewCollector("sql_exporter")) + prometheus.MustRegister(info.NewCollector("sql_exporter")) flag.BoolVar(&cfg.EnablePing, "config.enable-ping", true, "Enable ping for targets") flag.BoolVar(&cfg.IgnoreMissingVals, "config.ignore-missing-values", false, "[EXPERIMENTAL] Ignore results with missing values for the requested columns") flag.StringVar(&cfg.DsnOverride, "config.data-source-name", "", "Data source name to override the value in the configuration file with") diff --git a/go.mod b/go.mod index 7697c4e2..01a42f82 100644 --- a/go.mod +++ b/go.mod @@ -16,7 +16,7 @@ require ( github.com/microsoft/go-mssqldb v1.7.0 github.com/prometheus/client_golang v1.19.0 github.com/prometheus/client_model v0.6.0 - github.com/prometheus/common v0.49.0 + github.com/prometheus/common v0.51.1 github.com/prometheus/exporter-toolkit v0.11.0 github.com/sethvargo/go-envconfig v1.0.0 github.com/snowflakedb/gosnowflake v1.9.0 @@ -113,7 +113,7 @@ require ( golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect golang.org/x/mod v0.13.0 // indirect golang.org/x/net v0.22.0 // indirect - golang.org/x/oauth2 v0.17.0 // indirect + golang.org/x/oauth2 v0.18.0 // indirect golang.org/x/sync v0.6.0 // indirect golang.org/x/sys v0.18.0 // indirect golang.org/x/term v0.18.0 // indirect diff --git a/go.sum b/go.sum index e0446ea5..7eb1400b 100644 --- a/go.sum +++ b/go.sum @@ -272,8 +272,8 @@ github.com/prometheus/client_golang v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7km github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k= github.com/prometheus/client_model v0.6.0 h1:k1v3CzpSRUTrKMppY35TLwPvxHqBu0bYgxZzqGIgaos= github.com/prometheus/client_model v0.6.0/go.mod h1:NTQHnmxFpouOD0DpvP4XujX3CdOAGQPoaGhyTchlyt8= -github.com/prometheus/common v0.49.0 h1:ToNTdK4zSnPVJmh698mGFkDor9wBI/iGaJy5dbH1EgI= -github.com/prometheus/common v0.49.0/go.mod h1:Kxm+EULxRbUkjGU6WFsQqo3ORzB4tyKvlWFOE9mB2sE= +github.com/prometheus/common v0.51.1 h1:eIjN50Bwglz6a/c3hAgSMcofL3nD+nFQkV6Dd4DsQCw= +github.com/prometheus/common v0.51.1/go.mod h1:lrWtQx+iDfn2mbH5GUzlH9TSHyfZpHkSiG1W7y3sF2Q= github.com/prometheus/exporter-toolkit v0.11.0 h1:yNTsuZ0aNCNFQ3aFTD2uhPOvr4iD7fdBvKPAEGkNf+g= github.com/prometheus/exporter-toolkit v0.11.0/go.mod h1:BVnENhnNecpwoTLiABx7mrPB/OLRIgN74qlQbV+FK1Q= github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= @@ -379,8 +379,8 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc= golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= -golang.org/x/oauth2 v0.17.0 h1:6m3ZPmLEFdVxKKWnKq4VqZ60gutO35zm+zrAHVmHyDQ= -golang.org/x/oauth2 v0.17.0/go.mod h1:OzPDGQiuQMguemayvdylqddI7qcD9lnSDb+1FiwQ5HA= +golang.org/x/oauth2 v0.18.0 h1:09qnuIAgzdx1XplqJvW6CQqMCtGZykZWcXzPMPUusvI= +golang.org/x/oauth2 v0.18.0/go.mod h1:Wf7knwG0MPoWIMMBgFlEaSUDaKskp0dCfrlJRJXbBi8= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= From 76152c5a14283cbd35211292141d9ea80e5baa11 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Fri, 5 Apr 2024 20:17:43 +0200 Subject: [PATCH 208/401] deps: upgrade pgx driver to v5 (#488) --- drivers.go | 2 +- drivers_gen.go | 2 +- go.mod | 8 +-- go.sum | 134 ++----------------------------------------------- 4 files changed, 8 insertions(+), 138 deletions(-) diff --git a/drivers.go b/drivers.go index 96600d9e..0b2dba31 100644 --- a/drivers.go +++ b/drivers.go @@ -5,7 +5,7 @@ package sql_exporter import ( _ "github.com/ClickHouse/clickhouse-go/v2" _ "github.com/go-sql-driver/mysql" - _ "github.com/jackc/pgx/v4/stdlib" + _ "github.com/jackc/pgx/v5/stdlib" _ "github.com/lib/pq" _ "github.com/microsoft/go-mssqldb/azuread" _ "github.com/snowflakedb/gosnowflake" diff --git a/drivers_gen.go b/drivers_gen.go index 116c5dbe..2e72e617 100644 --- a/drivers_gen.go +++ b/drivers_gen.go @@ -22,7 +22,7 @@ var driverList = map[string][]string{ }, "extra": { "github.com/ClickHouse/clickhouse-go/v2", - "github.com/jackc/pgx/v4/stdlib", + "github.com/jackc/pgx/v5/stdlib", "github.com/snowflakedb/gosnowflake", "github.com/vertica/vertica-sql-go", }, diff --git a/go.mod b/go.mod index 01a42f82..451bc0d9 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/aws/aws-sdk-go-v2/config v1.27.10 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.6 github.com/go-sql-driver/mysql v1.8.1 - github.com/jackc/pgx/v4 v4.18.3 + github.com/jackc/pgx/v5 v5.5.5 github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.9 github.com/microsoft/go-mssqldb v1.7.0 @@ -81,13 +81,9 @@ require ( github.com/google/flatbuffers v23.5.26+incompatible // indirect github.com/google/uuid v1.6.0 // indirect github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect - github.com/jackc/chunkreader/v2 v2.0.1 // indirect - github.com/jackc/pgconn v1.14.3 // indirect - github.com/jackc/pgio v1.0.0 // indirect github.com/jackc/pgpassfile v1.0.0 // indirect - github.com/jackc/pgproto3/v2 v2.3.3 // indirect github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect - github.com/jackc/pgtype v1.14.0 // indirect + github.com/jackc/puddle/v2 v2.2.1 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 // indirect github.com/jpillora/backoff v1.0.0 // indirect diff --git a/go.sum b/go.sum index 7eb1400b..de67a2f2 100644 --- a/go.sum +++ b/go.sum @@ -18,15 +18,12 @@ github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0 h1:u/LLAOFgsMv7HmNL4 github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0/go.mod h1:2e8rMJtl2+2j+HXbTBwnyGpm5Nou7KhvSfxOq8JpTag= github.com/AzureAD/microsoft-authentication-library-for-go v1.2.1 h1:DzHpqpoJVaCgOUdVHxE8QB52S6NiVdDQvGlny1qvPqA= github.com/AzureAD/microsoft-authentication-library-for-go v1.2.1/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/ClickHouse/ch-go v0.61.5 h1:zwR8QbYI0tsMiEcze/uIMK+Tz1D3XZXLdNrlaOpeEI4= github.com/ClickHouse/ch-go v0.61.5/go.mod h1:s1LJW/F/LcFs5HJnuogFMta50kKDO0lf9zzfrbl0RQg= github.com/ClickHouse/clickhouse-go/v2 v2.23.0 h1:srmRrkS0BR8gEut87u8jpcZ7geOob6nGj9ifrb+aKmg= github.com/ClickHouse/clickhouse-go/v2 v2.23.0/go.mod h1:tBhdF3f3RdP7sS59+oBAtTyhWpy0024ZxDMhgxra0QE= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c h1:RGWPOewvKIROun94nF7v2cua9qP+thov/7M50KEoeSU= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= -github.com/Masterminds/semver/v3 v3.1.1 h1:hLg3sBzpNErnxhQtUy/mmLR2I9foDujNK030IGemrRc= -github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M= github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY= github.com/apache/arrow/go/v15 v15.0.0 h1:1zZACWf85oEZY5/kd9dsQS7i+2G5zVQcbKTHgslqHNA= @@ -88,13 +85,8 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cockroachdb/apd v1.1.0 h1:3LFP3629v+1aKXU5Q37mxmRxX/pIu1nijXydLShEq5I= -github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= -github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0= github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -117,24 +109,19 @@ github.com/go-faster/city v1.0.1 h1:4WAxSZ3V2Ws4QRDrscLEDcibJY8uf41H6AhXDrNDcGw= github.com/go-faster/city v1.0.1/go.mod h1:jKcUJId49qdW3L1qKHH/3wPeUstCVpVSXTM6vO3VcTw= github.com/go-faster/errors v0.7.1 h1:MkJTnDoEdi9pDabt1dpWf7AA8/BaSYZqibYyhZ20AYg= github.com/go-faster/errors v0.7.1/go.mod h1:5ySTjWFiphBs07IKuiL69nxdfd5+fzh1u7FPGZP2quo= -github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= -github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA= github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+Hoeu/iUR3ruzNvZ+yQfO03a0= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gofrs/uuid v4.0.0+incompatible h1:1SD/1F5pU8p29ybwgQSwpQk+mwdRrXCYuPhW6m+TnJw= -github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt/v5 v5.2.0 h1:d/ix8ftRUorsN+5eMIlF4T6J8CAt9rch3My2winC1Jw= github.com/golang-jwt/jwt/v5 v5.2.0/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= @@ -154,58 +141,18 @@ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c h1:6rhixN/i8ZofjG1Y75iExal34USq5p+wiN1tpie8IrU= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c/go.mod h1:NMPJylDgVpX0MLRlPy15sqSwOFv/U1GZ2m21JhFfek0= -github.com/jackc/chunkreader v1.0.0/go.mod h1:RT6O25fNZIuasFJRyZ4R/Y2BbhasbmZXF9QQ7T3kePo= -github.com/jackc/chunkreader/v2 v2.0.0/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk= -github.com/jackc/chunkreader/v2 v2.0.1 h1:i+RDz65UE+mmpjTfyz0MoVTnzeYxroil2G82ki7MGG8= -github.com/jackc/chunkreader/v2 v2.0.1/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk= -github.com/jackc/pgconn v0.0.0-20190420214824-7e0022ef6ba3/go.mod h1:jkELnwuX+w9qN5YIfX0fl88Ehu4XC3keFuOJJk9pcnA= -github.com/jackc/pgconn v0.0.0-20190824142844-760dd75542eb/go.mod h1:lLjNuW/+OfW9/pnVKPazfWOgNfH2aPem8YQ7ilXGvJE= -github.com/jackc/pgconn v0.0.0-20190831204454-2fabfa3c18b7/go.mod h1:ZJKsE/KZfsUgOEh9hBm+xYTstcNHg7UPMVJqRfQxq4s= -github.com/jackc/pgconn v1.8.0/go.mod h1:1C2Pb36bGIP9QHGBYCjnyhqu7Rv3sGshaQUvmfGIB/o= -github.com/jackc/pgconn v1.9.0/go.mod h1:YctiPyvzfU11JFxoXokUOOKQXQmDMoJL9vJzHH8/2JY= -github.com/jackc/pgconn v1.9.1-0.20210724152538-d89c8390a530/go.mod h1:4z2w8XhRbP1hYxkpTuBjTS3ne3J48K83+u0zoyvg2pI= -github.com/jackc/pgconn v1.14.3 h1:bVoTr12EGANZz66nZPkMInAV/KHD2TxH9npjXXgiB3w= -github.com/jackc/pgconn v1.14.3/go.mod h1:RZbme4uasqzybK2RK5c65VsHxoyaml09lx3tXOcO/VM= -github.com/jackc/pgio v1.0.0 h1:g12B9UwVnzGhueNavwioyEEpAmqMe1E/BN9ES+8ovkE= -github.com/jackc/pgio v1.0.0/go.mod h1:oP+2QK2wFfUWgr+gxjoBH9KGBb31Eio69xUb0w5bYf8= -github.com/jackc/pgmock v0.0.0-20190831213851-13a1b77aafa2/go.mod h1:fGZlG77KXmcq05nJLRkk0+p82V8B8Dw8KN2/V9c/OAE= -github.com/jackc/pgmock v0.0.0-20201204152224-4fe30f7445fd/go.mod h1:hrBW0Enj2AZTNpt/7Y5rr2xe/9Mn757Wtb2xeBzPv2c= -github.com/jackc/pgmock v0.0.0-20210724152146-4ad1a8207f65 h1:DadwsjnMwFjfWc9y5Wi/+Zz7xoE5ALHsRQlOctkOiHc= -github.com/jackc/pgmock v0.0.0-20210724152146-4ad1a8207f65/go.mod h1:5R2h2EEX+qri8jOWMbJCtaPWkrrNc7OHwsp2TCqp7ak= github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= -github.com/jackc/pgproto3 v1.1.0/go.mod h1:eR5FA3leWg7p9aeAqi37XOTgTIbkABlvcPB3E5rlc78= -github.com/jackc/pgproto3/v2 v2.0.0-alpha1.0.20190420180111-c116219b62db/go.mod h1:bhq50y+xrl9n5mRYyCBFKkpRVTLYJVWeCc+mEAI3yXA= -github.com/jackc/pgproto3/v2 v2.0.0-alpha1.0.20190609003834-432c2951c711/go.mod h1:uH0AWtUmuShn0bcesswc4aBTWGvw0cAxIJp+6OB//Wg= -github.com/jackc/pgproto3/v2 v2.0.0-rc3/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvWKnT95C46ckYeM= -github.com/jackc/pgproto3/v2 v2.0.0-rc3.0.20190831210041-4c03ce451f29/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvWKnT95C46ckYeM= -github.com/jackc/pgproto3/v2 v2.0.6/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= -github.com/jackc/pgproto3/v2 v2.1.1/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= -github.com/jackc/pgproto3/v2 v2.3.3 h1:1HLSx5H+tXR9pW3in3zaztoEwQYRC9SQaYUHjTSUOag= -github.com/jackc/pgproto3/v2 v2.3.3/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= -github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b/go.mod h1:vsD4gTJCa9TptPL8sPkXrLZ+hDuNrZCnj29CQpr4X1E= github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/Y25WS6cokEszi5g+S0QxI/d45PkRi7Nk= github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= -github.com/jackc/pgtype v0.0.0-20190421001408-4ed0de4755e0/go.mod h1:hdSHsc1V01CGwFsrv11mJRHWJ6aifDLfdV3aVjFF0zg= -github.com/jackc/pgtype v0.0.0-20190824184912-ab885b375b90/go.mod h1:KcahbBH1nCMSo2DXpzsoWOAfFkdEtEJpPbVLq8eE+mc= -github.com/jackc/pgtype v0.0.0-20190828014616-a8802b16cc59/go.mod h1:MWlu30kVJrUS8lot6TQqcg7mtthZ9T0EoIBFiJcmcyw= -github.com/jackc/pgtype v1.8.1-0.20210724151600-32e20a603178/go.mod h1:C516IlIV9NKqfsMCXTdChteoXmwgUceqaLfjg2e3NlM= -github.com/jackc/pgtype v1.14.0 h1:y+xUdabmyMkJLyApYuPj38mW+aAIqCe5uuBB51rH3Vw= -github.com/jackc/pgtype v1.14.0/go.mod h1:LUMuVrfsFfdKGLw+AFFVv6KtHOFMwRgDDzBt76IqCA4= -github.com/jackc/pgx/v4 v4.0.0-20190420224344-cc3461e65d96/go.mod h1:mdxmSJJuR08CZQyj1PVQBHy9XOp5p8/SHH6a0psbY9Y= -github.com/jackc/pgx/v4 v4.0.0-20190421002000-1b8f0016e912/go.mod h1:no/Y67Jkk/9WuGR0JG/JseM9irFbnEPbuWV2EELPNuM= -github.com/jackc/pgx/v4 v4.0.0-pre1.0.20190824185557-6972a5742186/go.mod h1:X+GQnOEnf1dqHGpw7JmHqHc1NxDoalibchSk9/RWuDc= -github.com/jackc/pgx/v4 v4.12.1-0.20210724153913-640aa07df17c/go.mod h1:1QD0+tgSXP7iUjYm9C1NxKhny7lq6ee99u/z+IHFcgs= -github.com/jackc/pgx/v4 v4.18.3 h1:dE2/TrEsGX3RBprb3qryqSV9Y60iZN1C6i8IrmW9/BA= -github.com/jackc/pgx/v4 v4.18.3/go.mod h1:Ey4Oru5tH5sB6tV7hDmfWFahwF15Eb7DNXlRKx2CkVw= -github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= -github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= -github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= +github.com/jackc/pgx/v5 v5.5.5 h1:amBjrZVmksIdNjxGW/IiIMzxMKZFelXbUoPNb+8sjQw= +github.com/jackc/pgx/v5 v5.5.5/go.mod h1:ez9gk+OAat140fv9ErkZDYFWmXLfV+++K0uAOiwgm1A= +github.com/jackc/puddle/v2 v2.2.1 h1:RhxXJtFG022u4ibrCSMSiu5aOq1i77R3OHKNJj77OAk= +github.com/jackc/puddle/v2 v2.2.1/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= @@ -224,29 +171,17 @@ github.com/klauspost/compress v1.17.7 h1:ehO88t2UGzQK66LMdE8tibEd1ErmzZjNEqWkjLA github.com/klauspost/compress v1.17.7/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= github.com/klauspost/cpuid/v2 v2.2.5 h1:0E5MSMDEoAulmXNFquVs//DdoomxaoTY1kUhbc/qbZg= github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= -github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lib/pq v1.1.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lib/pq v1.10.2/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= -github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/microsoft/go-mssqldb v1.7.0 h1:sgMPW0HA6Ihd37Yx0MzHyKD726C2kY/8KJsQtXHNaAs= github.com/microsoft/go-mssqldb v1.7.0/go.mod h1:kOvZKUdrhhFQmxLZqbwUV0rHkNkZpthMITIb2Ko1IoA= github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= @@ -279,38 +214,24 @@ github.com/prometheus/exporter-toolkit v0.11.0/go.mod h1:BVnENhnNecpwoTLiABx7mrP github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= -github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= -github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= -github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= -github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= github.com/segmentio/asm v1.2.0 h1:9BQrFxC+YOHJlTlHGkTrFWf59nbL3XnCoFLTwDCI7ys= github.com/segmentio/asm v1.2.0/go.mod h1:BqMnlJP91P8d+4ibuonYZw9mfnzI9HfxselHZr5aAcs= github.com/sethvargo/go-envconfig v1.0.0 h1:1C66wzy4QrROf5ew4KdVw942CQDa55qmlYmw9FZxZdU= github.com/sethvargo/go-envconfig v1.0.0/go.mod h1:Lzc75ghUn5ucmcRGIdGQ33DKJrcjk4kihFYgSTBmjIc= -github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= -github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5gKV8= github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= github.com/simonpasquier/klog-gokit/v3 v3.4.0 h1:2eD2INbzUHuGNynPP86BCB8H6Lwfp6wlkOcuyTr3VWM= github.com/simonpasquier/klog-gokit/v3 v3.4.0/go.mod h1:RREVB5Cc6yYHsweRfhUyM1ZP+Odb8ehxLfY8jaiqvjg= -github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= -github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/snowflakedb/gosnowflake v1.9.0 h1:s2ZdwFxFfpqwa5CqlhnzRESnLmwU3fED6zyNOJHFBQA= github.com/snowflakedb/gosnowflake v1.9.0/go.mod h1:4ZgHxVf2OKwecx07WjfyAMr0gn8Qj4yvwAo68Og8wsU= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= @@ -330,52 +251,28 @@ github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= -github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= go.mongodb.org/mongo-driver v1.11.4/go.mod h1:PTSz5yu21bkT/wXpkS7WR5f0ddqw5quethTUn9WM+2g= go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo= go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo= go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y1YELI= go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU= -go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -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/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= -go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= -go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201203163018-be400aefbc4c/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= -golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI= golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.13.0 h1:I/DsJXRlw/8l/0c24sM9yb0T4z9liZTduXvdAWYiysY= golang.org/x/mod v0.13.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc= golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= @@ -388,16 +285,8 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -409,33 +298,22 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8= golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190425163242-31fd60d6bfdc/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190823170909-c4a336ef6a2f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/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-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.14.0 h1:jvNa2pY0M4r62jkRQ6RwEZZyPcymeL9XZMLBbV7U2nc= golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg= -golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 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= @@ -456,16 +334,12 @@ gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= howett.net/plist v0.0.0-20181124034731-591f970eefbb h1:jhnBjNi9UFpfpl8YZhA9CrOqpnJdvzuiHsl/dnxl11M= howett.net/plist v0.0.0-20181124034731-591f970eefbb/go.mod h1:vMygbs4qMhSZSc4lCUl2OEE+rDiIIJAIdR4m7MiMcm0= From 2c2227a3e6c8305df9ebdb6d24cd60cb14991161 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Fri, 5 Apr 2024 20:21:53 +0200 Subject: [PATCH 209/401] Bump up version to 0.14.2 (#487) --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 930e3000..e867cc2a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.14.1 +0.14.2 From 106059dde7ef352fdccce6209618249c0487412b Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Fri, 5 Apr 2024 21:01:25 +0200 Subject: [PATCH 210/401] Bump up helm chart to 0.4.3 (#489) --- helm/Chart.yaml | 6 +++--- helm/README.md | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 86e2a983..f9d52009 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -1,9 +1,9 @@ apiVersion: v2 name: sql-exporter -description: Database agnostic SQL exporter for Prometheus +description: Database-agnostic SQL exporter for Prometheus type: application -version: 0.4.2 -appVersion: 0.14.1 +version: 0.4.3 +appVersion: 0.14.2 keywords: - exporter - servicemonitor diff --git a/helm/README.md b/helm/README.md index 588bdfbd..cf7b9168 100644 --- a/helm/README.md +++ b/helm/README.md @@ -1,8 +1,8 @@ # sql-exporter -![Version: 0.4.2](https://img.shields.io/badge/Version-0.4.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.14.1](https://img.shields.io/badge/AppVersion-0.14.1-informational?style=flat-square) +![Version: 0.4.3](https://img.shields.io/badge/Version-0.4.3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.14.2](https://img.shields.io/badge/AppVersion-0.14.2-informational?style=flat-square) -Database agnostic SQL exporter for Prometheus +Database-agnostic SQL exporter for Prometheus ## Source Code From 2cc9ead5e21f7a33941b1c3eb48743c9c7ed1f69 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Sun, 7 Apr 2024 13:22:44 +0200 Subject: [PATCH 211/401] fix(helm): update release name for helm charts [skip ci] (#490) --- .github/workflows/helm-workflow.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/helm-workflow.yaml b/.github/workflows/helm-workflow.yaml index 7e9c6720..ff4c961f 100644 --- a/.github/workflows/helm-workflow.yaml +++ b/.github/workflows/helm-workflow.yaml @@ -112,3 +112,4 @@ jobs: packages_with_index: true env: CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" + CR_RELEASE_NAME_TEMPLATE: "chart-{{ .Name }}-{{ .Version }}" From d7d0017bc658ee32542b2c24f41698c3e0f82db6 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Sun, 7 Apr 2024 13:41:06 +0200 Subject: [PATCH 212/401] fix: update gomod version to fix codeql warnings (#491) --- go.mod | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index 451bc0d9..cab806c3 100644 --- a/go.mod +++ b/go.mod @@ -1,8 +1,8 @@ module github.com/burningalchemist/sql_exporter -go 1.21 +go 1.21.0 -toolchain go1.21.5 +toolchain go1.21.9 require ( github.com/ClickHouse/clickhouse-go/v2 v2.23.0 From be93279fc96ea13e9bdcb46794c5b119ea832398 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Sun, 7 Apr 2024 14:24:26 +0200 Subject: [PATCH 213/401] fix(helm): update .helmignore [skip ci] (#492) * fix(helm): update .helmignore * fix(gha): bump up actions versions --- .github/workflows/helm-workflow.yaml | 4 ++-- helm/.helmignore | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/.github/workflows/helm-workflow.yaml b/.github/workflows/helm-workflow.yaml index ff4c961f..22fcd14a 100644 --- a/.github/workflows/helm-workflow.yaml +++ b/.github/workflows/helm-workflow.yaml @@ -77,10 +77,10 @@ jobs: run: ct lint --target-branch "${TARGET_BRANCH}" --remote "${TARGET_REMOTE}" --validate-maintainers=false --chart-dirs . - name: Setup helmfile if: steps.list-changed.outputs.changed == 'true' - uses: mamezou-tech/setup-helmfile@v1.2.0 + uses: mamezou-tech/setup-helmfile@v2.0.0 - name: Create kind cluster if: steps.list-changed.outputs.changed == 'true' - uses: helm/kind-action@v1.7.0 + uses: helm/kind-action@v1.9.0 - name: Init postgres server if: steps.list-changed.outputs.changed == 'true' run: | diff --git a/helm/.helmignore b/helm/.helmignore index 8150aec8..cbc3a39a 100644 --- a/helm/.helmignore +++ b/helm/.helmignore @@ -1,7 +1,9 @@ # Patterns to ignore when building packages. # This supports shell glob matching, relative path matching, and # negation (prefixed with !). Only one pattern per line. + .DS_Store + # Common VCS dirs .git/ .gitignore @@ -10,16 +12,24 @@ .hg/ .hgignore .svn/ + # Common backup files *.swp *.bak *.tmp *.orig *~ + # Various IDEs .project .idea/ *.tmproj .vscode/ + # Dir with local binaries bin + +# Development files (including CI) +ci/ +README.md.gotmpl +Makefile From ebb46dbb1f086c5f8977920312d4d9773d308cee Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Sun, 7 Apr 2024 14:35:04 +0200 Subject: [PATCH 214/401] Bump up helm chart to 0.4.4 (#493) --- helm/Chart.yaml | 2 +- helm/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index f9d52009..5cd4eb4f 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: sql-exporter description: Database-agnostic SQL exporter for Prometheus type: application -version: 0.4.3 +version: 0.4.4 appVersion: 0.14.2 keywords: - exporter diff --git a/helm/README.md b/helm/README.md index cf7b9168..78d1663f 100644 --- a/helm/README.md +++ b/helm/README.md @@ -1,6 +1,6 @@ # sql-exporter -![Version: 0.4.3](https://img.shields.io/badge/Version-0.4.3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.14.2](https://img.shields.io/badge/AppVersion-0.14.2-informational?style=flat-square) +![Version: 0.4.4](https://img.shields.io/badge/Version-0.4.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.14.2](https://img.shields.io/badge/AppVersion-0.14.2-informational?style=flat-square) Database-agnostic SQL exporter for Prometheus From 0e98a1c485ccfb28aa73750814b661f758d44eb3 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Sun, 7 Apr 2024 15:37:30 +0200 Subject: [PATCH 215/401] fix(build): sync go versions between promu crossbuild and docker images (#494) fix(build): sync go versions for binaries and images --- .github/workflows/release.yml | 6 ++++++ Dockerfile.multi-arch | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c445e2a9..3ec0fc23 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -55,6 +55,10 @@ jobs: - name: Check out the repo uses: actions/checkout@v4 + - name: Get Go version from the '.promu.yml' config + id: promu-go-version + run: printf "version=%s" "$(yq '.go.version' .promu.yml)" >> $GITHUB_OUTPUT + - name: Set up QEMU uses: docker/setup-qemu-action@v3 @@ -86,3 +90,5 @@ jobs: labels: ${{ steps.meta.outputs.labels }} platforms: linux/amd64,linux/arm64 provenance: false + build-args: | + GOVERSION={{ steps.promu-go-version.outputs.version }} diff --git a/Dockerfile.multi-arch b/Dockerfile.multi-arch index 77997b4e..601dcce7 100644 --- a/Dockerfile.multi-arch +++ b/Dockerfile.multi-arch @@ -1,4 +1,6 @@ -FROM --platform=$BUILDPLATFORM quay.io/prometheus/golang-builder AS builder +ARG GOVERSION=latest + +FROM --platform=$BUILDPLATFORM quay.io/prometheus/golang-builder:${GOVERSION}-main AS builder # Get sql_exporter ADD . /go/src/github.com/burningalchemist/sql_exporter From c84384f2db65dd9cc15c5e3a3a684aecf0133a66 Mon Sep 17 00:00:00 2001 From: Lucas Jandrew Date: Thu, 11 Apr 2024 11:43:21 -0400 Subject: [PATCH 216/401] Bump up helm chart to 0.4.5 (#496) * Fixes extra volume mount indentation * Bump helm version --- helm/Chart.yaml | 2 +- helm/README.md | 2 +- helm/templates/deployment.yaml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 5cd4eb4f..7a6bdfea 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: sql-exporter description: Database-agnostic SQL exporter for Prometheus type: application -version: 0.4.4 +version: 0.4.5 appVersion: 0.14.2 keywords: - exporter diff --git a/helm/README.md b/helm/README.md index 78d1663f..ca601542 100644 --- a/helm/README.md +++ b/helm/README.md @@ -1,6 +1,6 @@ # sql-exporter -![Version: 0.4.4](https://img.shields.io/badge/Version-0.4.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.14.2](https://img.shields.io/badge/AppVersion-0.14.2-informational?style=flat-square) +![Version: 0.4.5](https://img.shields.io/badge/Version-0.4.5-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.14.2](https://img.shields.io/badge/AppVersion-0.14.2-informational?style=flat-square) Database-agnostic SQL exporter for Prometheus diff --git a/helm/templates/deployment.yaml b/helm/templates/deployment.yaml index 2e4a9fbf..60ee487e 100644 --- a/helm/templates/deployment.yaml +++ b/helm/templates/deployment.yaml @@ -66,8 +66,8 @@ spec: mountPath: /etc/sql_exporter/collectors/ {{- end }} {{- range $v := .Values.extraVolumes }} - - name: {{ $v.name }} - {{- toYaml $v.mount | nindent 14 }} + - name: {{ $v.name }} + {{- toYaml $v.mount | nindent 12 }} {{- end }} {{- end }} {{- with .Values.envFrom }} From a3ab283e31dc272ffffdfcadf1e08019dd94aadd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 Apr 2024 15:59:49 +0200 Subject: [PATCH 217/401] deps: bump golang.org/x/net from 0.22.0 to 0.23.0 (#497) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index cab806c3..617ad840 100644 --- a/go.mod +++ b/go.mod @@ -108,7 +108,7 @@ require ( golang.org/x/crypto v0.21.0 // indirect golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect golang.org/x/mod v0.13.0 // indirect - golang.org/x/net v0.22.0 // indirect + golang.org/x/net v0.23.0 // indirect golang.org/x/oauth2 v0.18.0 // indirect golang.org/x/sync v0.6.0 // indirect golang.org/x/sys v0.18.0 // indirect diff --git a/go.sum b/go.sum index de67a2f2..e17bd790 100644 --- a/go.sum +++ b/go.sum @@ -274,8 +274,8 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc= -golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= +golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= golang.org/x/oauth2 v0.18.0 h1:09qnuIAgzdx1XplqJvW6CQqMCtGZykZWcXzPMPUusvI= golang.org/x/oauth2 v0.18.0/go.mod h1:Wf7knwG0MPoWIMMBgFlEaSUDaKskp0dCfrlJRJXbBi8= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= From f7adb9a8016f96aaa2b747cb601a61906ab40942 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Mon, 22 Apr 2024 10:59:11 +0200 Subject: [PATCH 218/401] docs: README.md - jobs list typo [skip ci] --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6b0efa3d..835e320e 100644 --- a/README.md +++ b/README.md @@ -274,7 +274,7 @@ jobs: - targets: pg1: 'pg://db1@127.0.0.1:25432/postgres?sslmode=disable' pg2: 'postgresql://username:password@pg-host.example.com:5432/dbname?sslmode=disable' - - labels: # Optional, arbitrary key/value pair for all targets + labels: # Optional, arbitrary key/value pair for all targets cluster: cluster1 ``` From 552e5205993ec175cab1df5a42bd27e4cd6d7a79 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 May 2024 19:03:32 +0200 Subject: [PATCH 219/401] deps: bump github.com/ClickHouse/clickhouse-go/v2 from 2.23.0 to 2.23.2 (#500) Bumps [github.com/ClickHouse/clickhouse-go/v2](https://github.com/ClickHouse/clickhouse-go) from 2.23.0 to 2.23.2. - [Release notes](https://github.com/ClickHouse/clickhouse-go/releases) - [Changelog](https://github.com/ClickHouse/clickhouse-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/ClickHouse/clickhouse-go/compare/v2.23.0...v2.23.2) --- updated-dependencies: - dependency-name: github.com/ClickHouse/clickhouse-go/v2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 617ad840..93d123be 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.21.0 toolchain go1.21.9 require ( - github.com/ClickHouse/clickhouse-go/v2 v2.23.0 + github.com/ClickHouse/clickhouse-go/v2 v2.23.2 github.com/aws/aws-sdk-go-v2 v1.26.1 github.com/aws/aws-sdk-go-v2/config v1.27.10 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.6 @@ -99,7 +99,7 @@ require ( github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/procfs v0.12.0 // indirect github.com/segmentio/asm v1.2.0 // indirect - github.com/shopspring/decimal v1.3.1 // indirect + github.com/shopspring/decimal v1.4.0 // indirect github.com/sirupsen/logrus v1.9.3 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/zeebo/xxh3 v1.0.2 // indirect diff --git a/go.sum b/go.sum index e17bd790..1ba99152 100644 --- a/go.sum +++ b/go.sum @@ -20,8 +20,8 @@ github.com/AzureAD/microsoft-authentication-library-for-go v1.2.1 h1:DzHpqpoJVaC github.com/AzureAD/microsoft-authentication-library-for-go v1.2.1/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= github.com/ClickHouse/ch-go v0.61.5 h1:zwR8QbYI0tsMiEcze/uIMK+Tz1D3XZXLdNrlaOpeEI4= github.com/ClickHouse/ch-go v0.61.5/go.mod h1:s1LJW/F/LcFs5HJnuogFMta50kKDO0lf9zzfrbl0RQg= -github.com/ClickHouse/clickhouse-go/v2 v2.23.0 h1:srmRrkS0BR8gEut87u8jpcZ7geOob6nGj9ifrb+aKmg= -github.com/ClickHouse/clickhouse-go/v2 v2.23.0/go.mod h1:tBhdF3f3RdP7sS59+oBAtTyhWpy0024ZxDMhgxra0QE= +github.com/ClickHouse/clickhouse-go/v2 v2.23.2 h1:+DAKPMnxLS7pduQZsrJc8OhdLS2L9MfDEJ2TS+hpYDM= +github.com/ClickHouse/clickhouse-go/v2 v2.23.2/go.mod h1:aNap51J1OM3yxQJRgM+AlP/MPkGBCL8A74uQThoQhR0= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c h1:RGWPOewvKIROun94nF7v2cua9qP+thov/7M50KEoeSU= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M= @@ -220,8 +220,8 @@ github.com/segmentio/asm v1.2.0 h1:9BQrFxC+YOHJlTlHGkTrFWf59nbL3XnCoFLTwDCI7ys= github.com/segmentio/asm v1.2.0/go.mod h1:BqMnlJP91P8d+4ibuonYZw9mfnzI9HfxselHZr5aAcs= github.com/sethvargo/go-envconfig v1.0.0 h1:1C66wzy4QrROf5ew4KdVw942CQDa55qmlYmw9FZxZdU= github.com/sethvargo/go-envconfig v1.0.0/go.mod h1:Lzc75ghUn5ucmcRGIdGQ33DKJrcjk4kihFYgSTBmjIc= -github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5gKV8= -github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= +github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k= +github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME= github.com/simonpasquier/klog-gokit/v3 v3.4.0 h1:2eD2INbzUHuGNynPP86BCB8H6Lwfp6wlkOcuyTr3VWM= github.com/simonpasquier/klog-gokit/v3 v3.4.0/go.mod h1:RREVB5Cc6yYHsweRfhUyM1ZP+Odb8ehxLfY8jaiqvjg= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= From 302a7286c39c546ea63748762a77bfafde38f3ce Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 May 2024 19:09:03 +0200 Subject: [PATCH 220/401] deps: bump github.com/prometheus/client_model from 0.6.0 to 0.6.1 (#502) Bumps [github.com/prometheus/client_model](https://github.com/prometheus/client_model) from 0.6.0 to 0.6.1. - [Release notes](https://github.com/prometheus/client_model/releases) - [Commits](https://github.com/prometheus/client_model/compare/v0.6.0...v0.6.1) --- updated-dependencies: - dependency-name: github.com/prometheus/client_model dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 93d123be..1d37fcdc 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( github.com/lib/pq v1.10.9 github.com/microsoft/go-mssqldb v1.7.0 github.com/prometheus/client_golang v1.19.0 - github.com/prometheus/client_model v0.6.0 + github.com/prometheus/client_model v0.6.1 github.com/prometheus/common v0.51.1 github.com/prometheus/exporter-toolkit v0.11.0 github.com/sethvargo/go-envconfig v1.0.0 diff --git a/go.sum b/go.sum index 1ba99152..291bbebc 100644 --- a/go.sum +++ b/go.sum @@ -205,8 +205,8 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRI github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_golang v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7kmXYlnfbA6JU= github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k= -github.com/prometheus/client_model v0.6.0 h1:k1v3CzpSRUTrKMppY35TLwPvxHqBu0bYgxZzqGIgaos= -github.com/prometheus/client_model v0.6.0/go.mod h1:NTQHnmxFpouOD0DpvP4XujX3CdOAGQPoaGhyTchlyt8= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.51.1 h1:eIjN50Bwglz6a/c3hAgSMcofL3nD+nFQkV6Dd4DsQCw= github.com/prometheus/common v0.51.1/go.mod h1:lrWtQx+iDfn2mbH5GUzlH9TSHyfZpHkSiG1W7y3sF2Q= github.com/prometheus/exporter-toolkit v0.11.0 h1:yNTsuZ0aNCNFQ3aFTD2uhPOvr4iD7fdBvKPAEGkNf+g= From 1db996abbfa72c84f7afff7acbf8eb33bd64889a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 May 2024 19:45:14 +0200 Subject: [PATCH 221/401] deps: bump github.com/prometheus/common from 0.51.1 to 0.53.0 (#504) Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.51.1 to 0.53.0. - [Release notes](https://github.com/prometheus/common/releases) - [Commits](https://github.com/prometheus/common/compare/v0.51.1...v0.53.0) --- updated-dependencies: - dependency-name: github.com/prometheus/common dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 1d37fcdc..5904a5cf 100644 --- a/go.mod +++ b/go.mod @@ -16,7 +16,7 @@ require ( github.com/microsoft/go-mssqldb v1.7.0 github.com/prometheus/client_golang v1.19.0 github.com/prometheus/client_model v0.6.1 - github.com/prometheus/common v0.51.1 + github.com/prometheus/common v0.53.0 github.com/prometheus/exporter-toolkit v0.11.0 github.com/sethvargo/go-envconfig v1.0.0 github.com/snowflakedb/gosnowflake v1.9.0 diff --git a/go.sum b/go.sum index 291bbebc..948e9aef 100644 --- a/go.sum +++ b/go.sum @@ -207,8 +207,8 @@ github.com/prometheus/client_golang v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7km github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.51.1 h1:eIjN50Bwglz6a/c3hAgSMcofL3nD+nFQkV6Dd4DsQCw= -github.com/prometheus/common v0.51.1/go.mod h1:lrWtQx+iDfn2mbH5GUzlH9TSHyfZpHkSiG1W7y3sF2Q= +github.com/prometheus/common v0.53.0 h1:U2pL9w9nmJwJDa4qqLQ3ZaePJ6ZTwt7cMD3AG3+aLCE= +github.com/prometheus/common v0.53.0/go.mod h1:BrxBKv3FWBIGXw89Mg1AeBq7FSyRzXWI3l3e7W3RN5U= github.com/prometheus/exporter-toolkit v0.11.0 h1:yNTsuZ0aNCNFQ3aFTD2uhPOvr4iD7fdBvKPAEGkNf+g= github.com/prometheus/exporter-toolkit v0.11.0/go.mod h1:BVnENhnNecpwoTLiABx7mrPB/OLRIgN74qlQbV+FK1Q= github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= From 556764e32a98d89dfdb0da81e4fc5dab1a50a866 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 May 2024 19:50:52 +0200 Subject: [PATCH 222/401] deps: bump google.golang.org/protobuf from 1.33.0 to 1.34.0 (#503) Bumps google.golang.org/protobuf from 1.33.0 to 1.34.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 5904a5cf..fba8fba7 100644 --- a/go.mod +++ b/go.mod @@ -22,7 +22,7 @@ require ( github.com/snowflakedb/gosnowflake v1.9.0 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.22.0 - google.golang.org/protobuf v1.33.0 + google.golang.org/protobuf v1.34.0 gopkg.in/yaml.v3 v3.0.1 k8s.io/klog/v2 v2.70.1 ) diff --git a/go.sum b/go.sum index 948e9aef..f11514b2 100644 --- a/go.sum +++ b/go.sum @@ -327,8 +327,8 @@ google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCID google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.0 h1:Qo/qEd2RZPCf2nKuorzksSknv0d3ERwp1vFG38gSmH4= +google.golang.org/protobuf v1.34.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From 2b78ffce7134639f845c1f8dd7bd8360febd6799 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 May 2024 20:16:47 +0200 Subject: [PATCH 223/401] deps: bump github.com/xo/dburl from 0.22.0 to 0.23.0 (#505) Bumps [github.com/xo/dburl](https://github.com/xo/dburl) from 0.22.0 to 0.23.0. - [Release notes](https://github.com/xo/dburl/releases) - [Commits](https://github.com/xo/dburl/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: github.com/xo/dburl dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index fba8fba7..7bcf50c5 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/sethvargo/go-envconfig v1.0.0 github.com/snowflakedb/gosnowflake v1.9.0 github.com/vertica/vertica-sql-go v1.3.3 - github.com/xo/dburl v0.22.0 + github.com/xo/dburl v0.23.0 google.golang.org/protobuf v1.34.0 gopkg.in/yaml.v3 v3.0.1 k8s.io/klog/v2 v2.70.1 diff --git a/go.sum b/go.sum index f11514b2..91c70804 100644 --- a/go.sum +++ b/go.sum @@ -242,8 +242,8 @@ github.com/vertica/vertica-sql-go v1.3.3/go.mod h1:jnn2GFuv+O2Jcjktb7zyc4Utlbu9Y github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= -github.com/xo/dburl v0.22.0 h1:sO5WLm2ywMzyiLxEcLBlw5AyKvdR5hirq9U7s3fCoeM= -github.com/xo/dburl v0.22.0/go.mod h1:B7/G9FGungw6ighV8xJNwWYQPMfn3gsi2sn5SE8Bzco= +github.com/xo/dburl v0.23.0 h1:XoLcZ/Dy2SlaTmVbACNyfmHcexvMl0+7NRrak92jn5g= +github.com/xo/dburl v0.23.0/go.mod h1:B7/G9FGungw6ighV8xJNwWYQPMfn3gsi2sn5SE8Bzco= github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= From a3e11f7e2db4d89a6f7d415a05c37ab8d5e2e9c1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 May 2024 20:17:04 +0200 Subject: [PATCH 224/401] deps: bump github.com/microsoft/go-mssqldb from 1.7.0 to 1.7.1 (#506) Bumps [github.com/microsoft/go-mssqldb](https://github.com/microsoft/go-mssqldb) from 1.7.0 to 1.7.1. - [Release notes](https://github.com/microsoft/go-mssqldb/releases) - [Changelog](https://github.com/microsoft/go-mssqldb/blob/main/CHANGELOG.md) - [Commits](https://github.com/microsoft/go-mssqldb/compare/v1.7.0...v1.7.1) --- updated-dependencies: - dependency-name: github.com/microsoft/go-mssqldb dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 7bcf50c5..32816e62 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,7 @@ require ( github.com/jackc/pgx/v5 v5.5.5 github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.9 - github.com/microsoft/go-mssqldb v1.7.0 + github.com/microsoft/go-mssqldb v1.7.1 github.com/prometheus/client_golang v1.19.0 github.com/prometheus/client_model v0.6.1 github.com/prometheus/common v0.53.0 diff --git a/go.sum b/go.sum index 91c70804..63ad8c22 100644 --- a/go.sum +++ b/go.sum @@ -182,8 +182,8 @@ github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0 github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/microsoft/go-mssqldb v1.7.0 h1:sgMPW0HA6Ihd37Yx0MzHyKD726C2kY/8KJsQtXHNaAs= -github.com/microsoft/go-mssqldb v1.7.0/go.mod h1:kOvZKUdrhhFQmxLZqbwUV0rHkNkZpthMITIb2Ko1IoA= +github.com/microsoft/go-mssqldb v1.7.1 h1:KU/g8aWeM3Hx7IMOFpiwYiUkU+9zeISb4+tx3ScVfsM= +github.com/microsoft/go-mssqldb v1.7.1/go.mod h1:kOvZKUdrhhFQmxLZqbwUV0rHkNkZpthMITIb2Ko1IoA= github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs= github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ibNBTZrns= From 296a8541ee47fb323c514462009cd3a64005574a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 May 2024 20:17:16 +0200 Subject: [PATCH 225/401] deps: bump github.com/aws/aws-sdk-go-v2/config from 1.27.10 to 1.27.11 (#501) Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.27.10 to 1.27.11. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.27.10...config/v1.27.11) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/config dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index 32816e62..cb13cfa1 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ toolchain go1.21.9 require ( github.com/ClickHouse/clickhouse-go/v2 v2.23.2 github.com/aws/aws-sdk-go-v2 v1.26.1 - github.com/aws/aws-sdk-go-v2/config v1.27.10 + github.com/aws/aws-sdk-go-v2/config v1.27.11 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.6 github.com/go-sql-driver/mysql v1.8.1 github.com/jackc/pgx/v5 v5.5.5 @@ -41,7 +41,7 @@ require ( github.com/andybalholm/brotli v1.1.0 // indirect github.com/apache/arrow/go/v15 v15.0.0 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.10 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.11 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 // indirect @@ -53,7 +53,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 // indirect github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.20.4 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.20.5 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.28.6 // indirect github.com/aws/smithy-go v1.20.2 // indirect diff --git a/go.sum b/go.sum index 63ad8c22..6b88b50f 100644 --- a/go.sum +++ b/go.sum @@ -34,11 +34,11 @@ github.com/aws/aws-sdk-go-v2 v1.26.1/go.mod h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7 github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10/go.mod h1:VeTZetY5KRJLuD/7fkQXMU6Mw7H5m/KP2J5Iy9osMno= github.com/aws/aws-sdk-go-v2/config v1.18.19/go.mod h1:XvTmGMY8d52ougvakOv1RpiTLPz9dlG/OQHsKU/cMmY= -github.com/aws/aws-sdk-go-v2/config v1.27.10 h1:PS+65jThT0T/snC5WjyfHHyUgG+eBoupSDV+f838cro= -github.com/aws/aws-sdk-go-v2/config v1.27.10/go.mod h1:BePM7Vo4OBpHreKRUMuDXX+/+JWP38FLkzl5m27/Jjs= +github.com/aws/aws-sdk-go-v2/config v1.27.11 h1:f47rANd2LQEYHda2ddSCKYId18/8BhSRM4BULGmfgNA= +github.com/aws/aws-sdk-go-v2/config v1.27.11/go.mod h1:SMsV78RIOYdve1vf36z8LmnszlRWkwMQtomCAI0/mIE= github.com/aws/aws-sdk-go-v2/credentials v1.13.18/go.mod h1:vnwlwjIe+3XJPBYKu1et30ZPABG3VaXJYr8ryohpIyM= -github.com/aws/aws-sdk-go-v2/credentials v1.17.10 h1:qDZ3EA2lv1KangvQB6y258OssCHD0xvaGiEDkG4X/10= -github.com/aws/aws-sdk-go-v2/credentials v1.17.10/go.mod h1:6t3sucOaYDwDssHQa0ojH1RpmVmF5/jArkye1b2FKMI= +github.com/aws/aws-sdk-go-v2/credentials v1.17.11 h1:YuIB1dJNf1Re822rriUOTxopaHHvIq0l/pX3fwO+Tzs= +github.com/aws/aws-sdk-go-v2/credentials v1.17.11/go.mod h1:AQtFPsDH9bI2O+71anW6EKL+NcD7LG3dpKGMV4SShgo= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.1/go.mod h1:lfUx8puBRdM5lVVMQlwt2v+ofiG/X6Ms+dy0UkG/kXw= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 h1:FVJ0r5XTHSmIHJV6KuDmdYhEpvlHpiSd38RQWhut5J4= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1/go.mod h1:zusuAeqezXzAB24LGuzuekqMAEgWkVYukBec3kr3jUg= @@ -70,8 +70,8 @@ github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0/go.mod h1:ncltU6n4Nof5uJttDtcNQ5 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.6 h1:TIOEjw0i2yyhmhRry3Oeu9YtiiHWISZ6j/irS1W3gX4= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.6/go.mod h1:3Ba++UwWd154xtP4FRX5pUK3Gt4up5sDHCve6kVfE+g= github.com/aws/aws-sdk-go-v2/service/sso v1.12.6/go.mod h1:Y1VOmit/Fn6Tz1uFAeCO6Q7M2fmfXSCLeL5INVYsLuY= -github.com/aws/aws-sdk-go-v2/service/sso v1.20.4 h1:WzFol5Cd+yDxPAdnzTA5LmpHYSWinhmSj4rQChV0ee8= -github.com/aws/aws-sdk-go-v2/service/sso v1.20.4/go.mod h1:qGzynb/msuZIE8I75DVRCUXw3o3ZyBmUvMwQ2t/BrGM= +github.com/aws/aws-sdk-go-v2/service/sso v1.20.5 h1:vN8hEbpRnL7+Hopy9dzmRle1xmDc7o8tmY0klsr175w= +github.com/aws/aws-sdk-go-v2/service/sso v1.20.5/go.mod h1:qGzynb/msuZIE8I75DVRCUXw3o3ZyBmUvMwQ2t/BrGM= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.6/go.mod h1:Lh/bc9XUf8CfOY6Jp5aIkQtN+j1mc+nExc+KXj9jx2s= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4 h1:Jux+gDDyi1Lruk+KHF91tK2KCuY61kzoCpvtvJJBtOE= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4/go.mod h1:mUYPBhaF2lGiukDEjJX2BLRRKTmoUSitGDUgM4tRxak= From 18936a6a87e69ef3ec78a044213e4c7cda4d9fc3 Mon Sep 17 00:00:00 2001 From: jluckett-panw <150093882+jluckett-panw@users.noreply.github.com> Date: Sat, 11 May 2024 02:34:12 -0500 Subject: [PATCH 226/401] feat(helm): Sidecar and Service Account Update (#509) * updated templates for service account and deployment for workload identity and / or extra containers --- helm/Chart.yaml | 2 +- helm/README.md | 5 +++++ helm/templates/_helpers.tpl | 13 ++++++++++-- helm/templates/deployment.yaml | 4 ++++ helm/templates/serviceaccount.yaml | 16 +++++++++++++++ helm/values.yaml | 33 +++++++++++++++++------------- 6 files changed, 56 insertions(+), 17 deletions(-) create mode 100644 helm/templates/serviceaccount.yaml diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 7a6bdfea..c8dbae62 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: sql-exporter description: Database-agnostic SQL exporter for Prometheus type: application -version: 0.4.5 +version: 0.4.6 appVersion: 0.14.2 keywords: - exporter diff --git a/helm/README.md b/helm/README.md index ca601542..bf046e8b 100644 --- a/helm/README.md +++ b/helm/README.md @@ -39,6 +39,11 @@ helm install sql_exporter/sql-exporter | service.port | int | `80` | Service port | | service.labels | object | `{}` | Service labels | | service.annotations | object | `{}` | Service annotations | +| extraContainers | object | `{}` | | +| serviceAccount.create | bool | `false` | | +| serviceAccount.annotations | object | `{}` | | +| serviceAccount.name | string | `""` | | +| serviceAccount.automountServiceAccountToken | bool | `false` | | | resources | object | `{}` | Resource limits and requests for the application controller pods | | podLabels | object | `{}` | Pod labels | | podAnnotations | object | `{}` | Pod annotations | diff --git a/helm/templates/_helpers.tpl b/helm/templates/_helpers.tpl index ad6d3501..b8f842f0 100644 --- a/helm/templates/_helpers.tpl +++ b/helm/templates/_helpers.tpl @@ -50,14 +50,23 @@ app.kubernetes.io/name: {{ include "sql-exporter.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} {{- end }} +{{/* +Determine if service account needs to be created +*/}} +{{- define "sql-exporter.createServiceAccount" -}} +{{- with .Values.serviceAccount }} +{{- default "false" .create }} +{{- end }} +{{- end }} + {{/* Create the name of the service account to use */}} {{- define "sql-exporter.serviceAccountName" -}} -{{- if .Values.serviceAccount.create }} +{{- if (include "sql-exporter.createServiceAccount" . ) }} {{- default (include "sql-exporter.fullname" .) .Values.serviceAccount.name }} {{- else }} -{{- default "default" .Values.serviceAccount.name }} +{{- "default" }} {{- end }} {{- end }} diff --git a/helm/templates/deployment.yaml b/helm/templates/deployment.yaml index 60ee487e..bf824853 100644 --- a/helm/templates/deployment.yaml +++ b/helm/templates/deployment.yaml @@ -29,6 +29,7 @@ spec: {{- end }} securityContext: {{- toYaml .Values.podSecurityContext | nindent 8 }} + serviceAccount: {{ include "sql-exporter.serviceAccountName" . }} {{- if eq (include "sql-exporter.volumes" .) "\"true\"" }} volumes: {{- if .Values.createConfig }} @@ -108,6 +109,9 @@ spec: protocol: TCP resources: {{- toYaml .Values.resources | nindent 12 }} + {{- with .Values.extraContainers }} + {{- toYaml . | nindent 8 }} + {{- end }} {{- with .Values.nodeSelector }} nodeSelector: {{- toYaml . | nindent 8 }} diff --git a/helm/templates/serviceaccount.yaml b/helm/templates/serviceaccount.yaml new file mode 100644 index 00000000..6cd25063 --- /dev/null +++ b/helm/templates/serviceaccount.yaml @@ -0,0 +1,16 @@ +{{- if (include "sql-exporter.createServiceAccount" . ) }} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "sql-exporter.serviceAccountName" . }} + {{- with .Values.serviceAccount.annotations}} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} + labels: + {{- with .Values.serviceAccount.labels }} + {{- toYaml . | nindent 4 }} + {{- end }} + {{- include "sql-exporter.labels" . | nindent 4 }} +automountServiceAccountToken: {{ default "false" .Values.serviceAccount.automountServiceAccountToken }} +{{- end }} \ No newline at end of file diff --git a/helm/values.yaml b/helm/values.yaml index df722261..5b05443c 100644 --- a/helm/values.yaml +++ b/helm/values.yaml @@ -2,7 +2,6 @@ nameOverride: "" # -- String to fully override "sql-exporter.fullname" fullnameOverride: "" - image: # -- Image repository repository: burningalchemist/sql_exporter @@ -11,10 +10,8 @@ image: # -- Image tag # @default -- `appVersion` value from `Chart.yaml` tag: "" - # -- Secrets with credentials to pull images from a private registry imagePullSecrets: [] - service: # -- Service type type: ClusterIP @@ -23,30 +20,40 @@ service: # -- Service labels labels: {} # -- Service annotations - annotations: - {} + annotations: {} # example of prometheus usage # prometheus.io/scrape: "true" # prometheus.io/path: "/metrics" - +extraContainers: {} +# - name: your_sidecar +# image: gcr.io/your_image:your_tag +# args: +# resources: +# requests:{} +serviceAccount: + # Specifies whether a service account should be created + create: false + # Annotations to add to the service account + annotations: {} + ## example annotations ## + # annotations: + # iam.gke.io/gcp-service-account: my-service-account@gke.url + name: "" + automountServiceAccountToken: false # -- Resource limits and requests for the application controller pods -resources: - {} +resources: {} # limits: # cpu: 100m # memory: 128Mi # requests: # cpu: 100m # memory: 128Mi - # -- Pod labels podLabels: {} # -- Pod annotations podAnnotations: {} - # -- Pod security context -podSecurityContext: - {} +podSecurityContext: {} # capabilities: # drop: # - ALL @@ -55,7 +62,6 @@ podSecurityContext: # runAsUser: 1000 # @ignored securityContext: {} - # Prometheus Operator values serviceMonitor: # -- Enable ServiceMonitor @@ -68,7 +74,6 @@ serviceMonitor: # scrapeTimeout: 10s # -- ServiceMonitor metric relabelings metricRelabelings: {} - # Additional env variables # - kind should be either Secret or ConfigMap # - name is the name of the Secret or ConfigMap that should be used From 0c73cae1621cbfd9bc37712019933e55091334f4 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Sat, 11 May 2024 10:04:40 +0200 Subject: [PATCH 227/401] fix(build): wrong go version reference [skip ci] (#511) fix(build): wrong go version reference --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3ec0fc23..0a8f4fe8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -91,4 +91,4 @@ jobs: platforms: linux/amd64,linux/arm64 provenance: false build-args: | - GOVERSION={{ steps.promu-go-version.outputs.version }} + GOVERSION=${{ steps.promu-go-version.outputs.version }} From 84ee75ced2b2f4a3f04cd7c61261a74b028b9022 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Sat, 11 May 2024 10:05:24 +0200 Subject: [PATCH 228/401] Bump up version to 0.14.3 (#512) --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index e867cc2a..ac4a7962 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.14.2 +0.14.3 From 881da5ba1e0d514f655cb4c93abc9201a0ef7273 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Sat, 11 May 2024 13:18:28 +0200 Subject: [PATCH 229/401] fix!(helm): adjust the logic for serviceAccount creation (#513) * fix!: adjust the logic for serviceAccount creation * fix!(helm): set create to true by default --- helm/Chart.yaml | 4 ++-- helm/README.md | 10 ++++------ helm/README.md.gotmpl | 1 + helm/templates/_helpers.tpl | 15 +-------------- helm/templates/deployment.yaml | 2 +- helm/templates/serviceaccount.yaml | 6 +++--- helm/values.yaml | 15 ++++++++++----- 7 files changed, 22 insertions(+), 31 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index c8dbae62..1f6b329b 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: sql-exporter description: Database-agnostic SQL exporter for Prometheus type: application -version: 0.4.6 -appVersion: 0.14.2 +version: 0.5.0 +appVersion: 0.14.3 keywords: - exporter - servicemonitor diff --git a/helm/README.md b/helm/README.md index bf046e8b..e74b60d1 100644 --- a/helm/README.md +++ b/helm/README.md @@ -1,6 +1,6 @@ # sql-exporter -![Version: 0.4.5](https://img.shields.io/badge/Version-0.4.5-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.14.2](https://img.shields.io/badge/AppVersion-0.14.2-informational?style=flat-square) +![Version: 0.5.0](https://img.shields.io/badge/Version-0.5.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.14.3](https://img.shields.io/badge/AppVersion-0.14.3-informational?style=flat-square) Database-agnostic SQL exporter for Prometheus @@ -39,11 +39,9 @@ helm install sql_exporter/sql-exporter | service.port | int | `80` | Service port | | service.labels | object | `{}` | Service labels | | service.annotations | object | `{}` | Service annotations | -| extraContainers | object | `{}` | | -| serviceAccount.create | bool | `false` | | -| serviceAccount.annotations | object | `{}` | | -| serviceAccount.name | string | `""` | | -| serviceAccount.automountServiceAccountToken | bool | `false` | | +| extraContainers | object | `{}` | Arbitrary sidecar containers list | +| serviceAccount.create | bool | `true` | Specifies whether a Service Account should be created, defaults to "sql-exporter" unless overriden. Check values.yaml for all the available parameters | +| serviceAccount.annotations | object | `{}` | Annotations to add to the Service Account | | resources | object | `{}` | Resource limits and requests for the application controller pods | | podLabels | object | `{}` | Pod labels | | podAnnotations | object | `{}` | Pod annotations | diff --git a/helm/README.md.gotmpl b/helm/README.md.gotmpl index 03092e0d..3a92f481 100644 --- a/helm/README.md.gotmpl +++ b/helm/README.md.gotmpl @@ -33,6 +33,7 @@ helm install sql_exporter/sql-exporter {{- end }} {{- end }} + ### Prometheus ServiceMonitor | Key | Type | Default | Description | diff --git a/helm/templates/_helpers.tpl b/helm/templates/_helpers.tpl index b8f842f0..dfbdc118 100644 --- a/helm/templates/_helpers.tpl +++ b/helm/templates/_helpers.tpl @@ -50,24 +50,11 @@ app.kubernetes.io/name: {{ include "sql-exporter.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} {{- end }} -{{/* -Determine if service account needs to be created -*/}} -{{- define "sql-exporter.createServiceAccount" -}} -{{- with .Values.serviceAccount }} -{{- default "false" .create }} -{{- end }} -{{- end }} - {{/* Create the name of the service account to use */}} {{- define "sql-exporter.serviceAccountName" -}} -{{- if (include "sql-exporter.createServiceAccount" . ) }} -{{- default (include "sql-exporter.fullname" .) .Values.serviceAccount.name }} -{{- else }} -{{- "default" }} -{{- end }} +{{- default "default" .Values.serviceAccount.name }} {{- end }} {{- define "sql-exporter.volumes" -}} diff --git a/helm/templates/deployment.yaml b/helm/templates/deployment.yaml index bf824853..93b6c742 100644 --- a/helm/templates/deployment.yaml +++ b/helm/templates/deployment.yaml @@ -29,7 +29,7 @@ spec: {{- end }} securityContext: {{- toYaml .Values.podSecurityContext | nindent 8 }} - serviceAccount: {{ include "sql-exporter.serviceAccountName" . }} + serviceAccountName: {{ if .Values.serviceAccount.create }}{{ template "sql-exporter.fullname" . }}{{ else }}{{ include "sql-exporter.serviceAccountName" . }}{{end}} {{- if eq (include "sql-exporter.volumes" .) "\"true\"" }} volumes: {{- if .Values.createConfig }} diff --git a/helm/templates/serviceaccount.yaml b/helm/templates/serviceaccount.yaml index 6cd25063..00654964 100644 --- a/helm/templates/serviceaccount.yaml +++ b/helm/templates/serviceaccount.yaml @@ -1,8 +1,8 @@ -{{- if (include "sql-exporter.createServiceAccount" . ) }} +{{- if .Values.serviceAccount.create }} apiVersion: v1 kind: ServiceAccount metadata: - name: {{ include "sql-exporter.serviceAccountName" . }} + name: {{ template "sql-exporter.fullname" . }} {{- with .Values.serviceAccount.annotations}} annotations: {{- toYaml . | nindent 4 }} @@ -13,4 +13,4 @@ metadata: {{- end }} {{- include "sql-exporter.labels" . | nindent 4 }} automountServiceAccountToken: {{ default "false" .Values.serviceAccount.automountServiceAccountToken }} -{{- end }} \ No newline at end of file +{{- end }} diff --git a/helm/values.yaml b/helm/values.yaml index 5b05443c..a6981a29 100644 --- a/helm/values.yaml +++ b/helm/values.yaml @@ -24,6 +24,7 @@ service: # example of prometheus usage # prometheus.io/scrape: "true" # prometheus.io/path: "/metrics" +# -- Arbitrary sidecar containers list extraContainers: {} # - name: your_sidecar # image: gcr.io/your_image:your_tag @@ -31,15 +32,19 @@ extraContainers: {} # resources: # requests:{} serviceAccount: - # Specifies whether a service account should be created - create: false - # Annotations to add to the service account + # -- Specifies whether a Service Account should be created, creates "sql-exporter" service account if true, unless + # overriden. Otherwise, set to `default` if false, and custom service account name is not provided. Check all the + # available parameters. + create: true + # -- References a custom Service Account if it already exists + # name: "sql-exporter-custom-sa" + # -- Annotations to add to the Service Account annotations: {} ## example annotations ## # annotations: # iam.gke.io/gcp-service-account: my-service-account@gke.url - name: "" - automountServiceAccountToken: false + # -- Defines if token is automatically mounted to the pod after it has been created + # automountServiceAccountToken: false # -- Resource limits and requests for the application controller pods resources: {} # limits: From 0ef6c2eb7c4b5012d2d4e6df743e150afefac012 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Thu, 30 May 2024 11:40:08 +0200 Subject: [PATCH 230/401] fix: use the passed jf jobFilters parameter (#521) fix: use the passed jf parameter --- exporter.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/exporter.go b/exporter.go index 865d05ae..220426a1 100644 --- a/exporter.go +++ b/exporter.go @@ -181,10 +181,10 @@ func (e *exporter) Gather() ([]*dto.MetricFamily, error) { } func (e *exporter) filterTargets(jf []string) { - if len(e.jobFilters) > 0 { + if len(jf) > 0 { var filteredTargets []Target for _, target := range e.targets { - for _, jobFilter := range e.jobFilters { + for _, jobFilter := range jf { if jobFilter == target.JobGroup() { filteredTargets = append(filteredTargets, target) break From 6e76fa3ac655b91f68fb70e5cf6693aa913f1196 Mon Sep 17 00:00:00 2001 From: Neaj Morshad Date: Thu, 30 May 2024 15:58:01 +0600 Subject: [PATCH 231/401] docs: Update Readme and Doc [skip ci] (#522) Signed-off-by: Neaj Morshad --- .gitignore | 1 + README.md | 2 +- documentation/sql_exporter.yml | 6 +++--- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index d805f1cf..3b8e4c0c 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ /.vscode /sql_exporter /sql_exporter.yml +.idea/* diff --git a/README.md b/README.md index 835e320e..817cb9a4 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ Use the `-help` flag to get help information. $ ./sql_exporter -help Usage of ./sql_exporter: -config.file string - SQL Exporter configuration file name. (default "sql_exporter.yml") + SQL Exporter configuration file path. (default "sql_exporter.yml") -web.listen-address string Address to listen on for web interface and telemetry. (default ":9399") -web.metrics-path string diff --git a/documentation/sql_exporter.yml b/documentation/sql_exporter.yml index 5c9d191d..fad58429 100644 --- a/documentation/sql_exporter.yml +++ b/documentation/sql_exporter.yml @@ -59,9 +59,9 @@ collectors: # The result columns conceptually fall into two categories: # * zero or more key columns: their values will be directly mapped to labels of the same name; # * one or more value columns: - # * if exactly one value column, the column name name is ignored and its value becomes the metric value + # * if exactly one value column, the column name is ignored and its value becomes the metric value # * with multiple value columns, a `value_label` must be defined; the column name will populate this label and - # the column value will popilate the metric value. + # the column value will populate the metric value. metrics: # The metric name, type and help text, as exported to /metrics. - metric_name: mssql_log_growths @@ -97,7 +97,7 @@ collectors: # # Required when multiple value columns are configured. value_label: operation - # Multiple value columns: their name is recorded in the label defined by `attrubute_label` (e.g. + # Multiple value columns: their name is recorded in the label defined by `attribute_label` (e.g. # `operation="io_stall_read_ms"`). values: - io_stall_read From ce86ee1a962d6088a706d0e244114fc32dab352c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 1 Jun 2024 22:49:57 +0200 Subject: [PATCH 232/401] deps: bump github.com/xo/dburl from 0.23.0 to 0.23.1 (#525) Bumps [github.com/xo/dburl](https://github.com/xo/dburl) from 0.23.0 to 0.23.1. - [Release notes](https://github.com/xo/dburl/releases) - [Commits](https://github.com/xo/dburl/compare/v0.23.0...v0.23.1) --- updated-dependencies: - dependency-name: github.com/xo/dburl dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index cb13cfa1..dfd4275c 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/sethvargo/go-envconfig v1.0.0 github.com/snowflakedb/gosnowflake v1.9.0 github.com/vertica/vertica-sql-go v1.3.3 - github.com/xo/dburl v0.23.0 + github.com/xo/dburl v0.23.1 google.golang.org/protobuf v1.34.0 gopkg.in/yaml.v3 v3.0.1 k8s.io/klog/v2 v2.70.1 diff --git a/go.sum b/go.sum index 6b88b50f..c05855c1 100644 --- a/go.sum +++ b/go.sum @@ -242,8 +242,8 @@ github.com/vertica/vertica-sql-go v1.3.3/go.mod h1:jnn2GFuv+O2Jcjktb7zyc4Utlbu9Y github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= -github.com/xo/dburl v0.23.0 h1:XoLcZ/Dy2SlaTmVbACNyfmHcexvMl0+7NRrak92jn5g= -github.com/xo/dburl v0.23.0/go.mod h1:B7/G9FGungw6ighV8xJNwWYQPMfn3gsi2sn5SE8Bzco= +github.com/xo/dburl v0.23.1 h1:PX1RgQaaJV1S5iADcM1TT39OLrg5daeV6Hp7RYwVoYw= +github.com/xo/dburl v0.23.1/go.mod h1:B7/G9FGungw6ighV8xJNwWYQPMfn3gsi2sn5SE8Bzco= github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= From 0ebe920ced11a238bdcd87531a81665135ad7fbc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 1 Jun 2024 22:50:42 +0200 Subject: [PATCH 233/401] deps: bump github.com/sethvargo/go-envconfig from 1.0.0 to 1.0.3 (#526) Bumps [github.com/sethvargo/go-envconfig](https://github.com/sethvargo/go-envconfig) from 1.0.0 to 1.0.3. - [Release notes](https://github.com/sethvargo/go-envconfig/releases) - [Commits](https://github.com/sethvargo/go-envconfig/compare/v1.0.0...v1.0.3) --- updated-dependencies: - dependency-name: github.com/sethvargo/go-envconfig dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index dfd4275c..861907bf 100644 --- a/go.mod +++ b/go.mod @@ -18,7 +18,7 @@ require ( github.com/prometheus/client_model v0.6.1 github.com/prometheus/common v0.53.0 github.com/prometheus/exporter-toolkit v0.11.0 - github.com/sethvargo/go-envconfig v1.0.0 + github.com/sethvargo/go-envconfig v1.0.3 github.com/snowflakedb/gosnowflake v1.9.0 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.23.1 diff --git a/go.sum b/go.sum index c05855c1..1dcc324b 100644 --- a/go.sum +++ b/go.sum @@ -218,8 +218,8 @@ github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjR github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/segmentio/asm v1.2.0 h1:9BQrFxC+YOHJlTlHGkTrFWf59nbL3XnCoFLTwDCI7ys= github.com/segmentio/asm v1.2.0/go.mod h1:BqMnlJP91P8d+4ibuonYZw9mfnzI9HfxselHZr5aAcs= -github.com/sethvargo/go-envconfig v1.0.0 h1:1C66wzy4QrROf5ew4KdVw942CQDa55qmlYmw9FZxZdU= -github.com/sethvargo/go-envconfig v1.0.0/go.mod h1:Lzc75ghUn5ucmcRGIdGQ33DKJrcjk4kihFYgSTBmjIc= +github.com/sethvargo/go-envconfig v1.0.3 h1:ZDxFGT1M7RPX0wgDOCdZMidrEB+NrayYr6fL0/+pk4I= +github.com/sethvargo/go-envconfig v1.0.3/go.mod h1:JLd0KFWQYzyENqnEPWWZ49i4vzZo/6nRidxI8YvGiHw= github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k= github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME= github.com/simonpasquier/klog-gokit/v3 v3.4.0 h1:2eD2INbzUHuGNynPP86BCB8H6Lwfp6wlkOcuyTr3VWM= From b6808431eb622bb4d7de859ef492e7a98ecee15a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 1 Jun 2024 22:51:21 +0200 Subject: [PATCH 234/401] deps: bump github.com/ClickHouse/clickhouse-go/v2 from 2.23.2 to 2.25.0 (#527) Bumps [github.com/ClickHouse/clickhouse-go/v2](https://github.com/ClickHouse/clickhouse-go) from 2.23.2 to 2.25.0. - [Release notes](https://github.com/ClickHouse/clickhouse-go/releases) - [Changelog](https://github.com/ClickHouse/clickhouse-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/ClickHouse/clickhouse-go/compare/v2.23.2...v2.25.0) --- updated-dependencies: - dependency-name: github.com/ClickHouse/clickhouse-go/v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index 861907bf..9dd93eca 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.21.0 toolchain go1.21.9 require ( - github.com/ClickHouse/clickhouse-go/v2 v2.23.2 + github.com/ClickHouse/clickhouse-go/v2 v2.25.0 github.com/aws/aws-sdk-go-v2 v1.26.1 github.com/aws/aws-sdk-go-v2/config v1.27.11 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.6 @@ -103,8 +103,8 @@ require ( github.com/sirupsen/logrus v1.9.3 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/zeebo/xxh3 v1.0.2 // indirect - go.opentelemetry.io/otel v1.24.0 // indirect - go.opentelemetry.io/otel/trace v1.24.0 // indirect + go.opentelemetry.io/otel v1.26.0 // indirect + go.opentelemetry.io/otel/trace v1.26.0 // indirect golang.org/x/crypto v0.21.0 // indirect golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect golang.org/x/mod v0.13.0 // indirect diff --git a/go.sum b/go.sum index 1dcc324b..0a080aa6 100644 --- a/go.sum +++ b/go.sum @@ -20,8 +20,8 @@ github.com/AzureAD/microsoft-authentication-library-for-go v1.2.1 h1:DzHpqpoJVaC github.com/AzureAD/microsoft-authentication-library-for-go v1.2.1/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= github.com/ClickHouse/ch-go v0.61.5 h1:zwR8QbYI0tsMiEcze/uIMK+Tz1D3XZXLdNrlaOpeEI4= github.com/ClickHouse/ch-go v0.61.5/go.mod h1:s1LJW/F/LcFs5HJnuogFMta50kKDO0lf9zzfrbl0RQg= -github.com/ClickHouse/clickhouse-go/v2 v2.23.2 h1:+DAKPMnxLS7pduQZsrJc8OhdLS2L9MfDEJ2TS+hpYDM= -github.com/ClickHouse/clickhouse-go/v2 v2.23.2/go.mod h1:aNap51J1OM3yxQJRgM+AlP/MPkGBCL8A74uQThoQhR0= +github.com/ClickHouse/clickhouse-go/v2 v2.25.0 h1:rKscwqgQHzWBTZySZDcHKxgs0Ad+xFULfZvo26W5UlY= +github.com/ClickHouse/clickhouse-go/v2 v2.25.0/go.mod h1:iDTViXk2Fgvf1jn2dbJd1ys+fBkdD1UMRnXlwmhijhQ= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c h1:RGWPOewvKIROun94nF7v2cua9qP+thov/7M50KEoeSU= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M= @@ -252,10 +252,10 @@ github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= go.mongodb.org/mongo-driver v1.11.4/go.mod h1:PTSz5yu21bkT/wXpkS7WR5f0ddqw5quethTUn9WM+2g= -go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo= -go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo= -go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y1YELI= -go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU= +go.opentelemetry.io/otel v1.26.0 h1:LQwgL5s/1W7YiiRwxf03QGnWLb2HW4pLiAhaA5cZXBs= +go.opentelemetry.io/otel v1.26.0/go.mod h1:UmLkJHUAidDval2EICqBMbnAd0/m2vmpf/dAM+fvFs4= +go.opentelemetry.io/otel/trace v1.26.0 h1:1ieeAUb4y0TE26jUFrCIXKpTuVK7uJGN9/Z/2LP5sQA= +go.opentelemetry.io/otel/trace v1.26.0/go.mod h1:4iDxvGDQuUkHve82hJJ8UqrwswHYsZuWCBllGV2U2y0= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= From 8d31a68350fa2ae1004706fdd13f21ed6bfa5d10 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 1 Jun 2024 22:54:02 +0200 Subject: [PATCH 235/401] deps: bump google.golang.org/protobuf from 1.34.0 to 1.34.1 (#523) Bumps google.golang.org/protobuf from 1.34.0 to 1.34.1. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 9dd93eca..32d3e82e 100644 --- a/go.mod +++ b/go.mod @@ -22,7 +22,7 @@ require ( github.com/snowflakedb/gosnowflake v1.9.0 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.23.1 - google.golang.org/protobuf v1.34.0 + google.golang.org/protobuf v1.34.1 gopkg.in/yaml.v3 v3.0.1 k8s.io/klog/v2 v2.70.1 ) diff --git a/go.sum b/go.sum index 0a080aa6..4b42d4a1 100644 --- a/go.sum +++ b/go.sum @@ -327,8 +327,8 @@ google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCID google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.34.0 h1:Qo/qEd2RZPCf2nKuorzksSknv0d3ERwp1vFG38gSmH4= -google.golang.org/protobuf v1.34.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= +google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From bd045afdbc0dfbe24176f04ac3989f485f88c39c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 1 Jun 2024 22:55:10 +0200 Subject: [PATCH 236/401] deps: bump github.com/microsoft/go-mssqldb from 1.7.1 to 1.7.2 (#528) Bumps [github.com/microsoft/go-mssqldb](https://github.com/microsoft/go-mssqldb) from 1.7.1 to 1.7.2. - [Release notes](https://github.com/microsoft/go-mssqldb/releases) - [Changelog](https://github.com/microsoft/go-mssqldb/blob/main/CHANGELOG.md) - [Commits](https://github.com/microsoft/go-mssqldb/compare/v1.7.1...v1.7.2) --- updated-dependencies: - dependency-name: github.com/microsoft/go-mssqldb dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 32d3e82e..e57fd726 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,7 @@ require ( github.com/jackc/pgx/v5 v5.5.5 github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.9 - github.com/microsoft/go-mssqldb v1.7.1 + github.com/microsoft/go-mssqldb v1.7.2 github.com/prometheus/client_golang v1.19.0 github.com/prometheus/client_model v0.6.1 github.com/prometheus/common v0.53.0 diff --git a/go.sum b/go.sum index 4b42d4a1..347ee5cc 100644 --- a/go.sum +++ b/go.sum @@ -182,8 +182,8 @@ github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0 github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/microsoft/go-mssqldb v1.7.1 h1:KU/g8aWeM3Hx7IMOFpiwYiUkU+9zeISb4+tx3ScVfsM= -github.com/microsoft/go-mssqldb v1.7.1/go.mod h1:kOvZKUdrhhFQmxLZqbwUV0rHkNkZpthMITIb2Ko1IoA= +github.com/microsoft/go-mssqldb v1.7.2 h1:CHkFJiObW7ItKTJfHo1QX7QBBD1iV+mn1eOyRP3b/PA= +github.com/microsoft/go-mssqldb v1.7.2/go.mod h1:kOvZKUdrhhFQmxLZqbwUV0rHkNkZpthMITIb2Ko1IoA= github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs= github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ibNBTZrns= From 1c3b1d5213978362cc0d142ac9cc56998da6d47d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 1 Jun 2024 22:55:45 +0200 Subject: [PATCH 237/401] deps: bump github.com/aws/aws-sdk-go-v2/config from 1.27.11 to 1.27.16 (#524) Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.27.11 to 1.27.16. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.27.11...config/v1.27.16) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/config dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 20 ++++++++++---------- go.sum | 40 ++++++++++++++++++++-------------------- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/go.mod b/go.mod index e57fd726..e04238d3 100644 --- a/go.mod +++ b/go.mod @@ -6,8 +6,8 @@ toolchain go1.21.9 require ( github.com/ClickHouse/clickhouse-go/v2 v2.25.0 - github.com/aws/aws-sdk-go-v2 v1.26.1 - github.com/aws/aws-sdk-go-v2/config v1.27.11 + github.com/aws/aws-sdk-go-v2 v1.27.0 + github.com/aws/aws-sdk-go-v2/config v1.27.16 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.6 github.com/go-sql-driver/mysql v1.8.1 github.com/jackc/pgx/v5 v5.5.5 @@ -41,21 +41,21 @@ require ( github.com/andybalholm/brotli v1.1.0 // indirect github.com/apache/arrow/go/v15 v15.0.0 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.11 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.16 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.3 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.7 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.7 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 // indirect github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.9 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 // indirect github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.20.5 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.28.6 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.20.9 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.3 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.28.10 // indirect github.com/aws/smithy-go v1.20.2 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect diff --git a/go.sum b/go.sum index 347ee5cc..155ff926 100644 --- a/go.sum +++ b/go.sum @@ -29,27 +29,27 @@ github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer5 github.com/apache/arrow/go/v15 v15.0.0 h1:1zZACWf85oEZY5/kd9dsQS7i+2G5zVQcbKTHgslqHNA= github.com/apache/arrow/go/v15 v15.0.0/go.mod h1:DGXsR3ajT524njufqf95822i+KTh+yea1jass9YXgjA= github.com/aws/aws-sdk-go-v2 v1.17.7/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= -github.com/aws/aws-sdk-go-v2 v1.26.1 h1:5554eUqIYVWpU0YmeeYZ0wU64H2VLBs8TlhRB2L+EkA= -github.com/aws/aws-sdk-go-v2 v1.26.1/go.mod h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7BReUZ3jCXM= +github.com/aws/aws-sdk-go-v2 v1.27.0 h1:7bZWKoXhzI+mMR/HjdMx8ZCC5+6fY0lS5tr0bbgiLlo= +github.com/aws/aws-sdk-go-v2 v1.27.0/go.mod h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7BReUZ3jCXM= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10/go.mod h1:VeTZetY5KRJLuD/7fkQXMU6Mw7H5m/KP2J5Iy9osMno= github.com/aws/aws-sdk-go-v2/config v1.18.19/go.mod h1:XvTmGMY8d52ougvakOv1RpiTLPz9dlG/OQHsKU/cMmY= -github.com/aws/aws-sdk-go-v2/config v1.27.11 h1:f47rANd2LQEYHda2ddSCKYId18/8BhSRM4BULGmfgNA= -github.com/aws/aws-sdk-go-v2/config v1.27.11/go.mod h1:SMsV78RIOYdve1vf36z8LmnszlRWkwMQtomCAI0/mIE= +github.com/aws/aws-sdk-go-v2/config v1.27.16 h1:knpCuH7laFVGYTNd99Ns5t+8PuRjDn4HnnZK48csipM= +github.com/aws/aws-sdk-go-v2/config v1.27.16/go.mod h1:vutqgRhDUktwSge3hrC3nkuirzkJ4E/mLj5GvI0BQas= github.com/aws/aws-sdk-go-v2/credentials v1.13.18/go.mod h1:vnwlwjIe+3XJPBYKu1et30ZPABG3VaXJYr8ryohpIyM= -github.com/aws/aws-sdk-go-v2/credentials v1.17.11 h1:YuIB1dJNf1Re822rriUOTxopaHHvIq0l/pX3fwO+Tzs= -github.com/aws/aws-sdk-go-v2/credentials v1.17.11/go.mod h1:AQtFPsDH9bI2O+71anW6EKL+NcD7LG3dpKGMV4SShgo= +github.com/aws/aws-sdk-go-v2/credentials v1.17.16 h1:7d2QxY83uYl0l58ceyiSpxg9bSbStqBC6BeEeHEchwo= +github.com/aws/aws-sdk-go-v2/credentials v1.17.16/go.mod h1:Ae6li/6Yc6eMzysRL2BXlPYvnrLLBg3D11/AmOjw50k= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.1/go.mod h1:lfUx8puBRdM5lVVMQlwt2v+ofiG/X6Ms+dy0UkG/kXw= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 h1:FVJ0r5XTHSmIHJV6KuDmdYhEpvlHpiSd38RQWhut5J4= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1/go.mod h1:zusuAeqezXzAB24LGuzuekqMAEgWkVYukBec3kr3jUg= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.3 h1:dQLK4TjtnlRGb0czOht2CevZ5l6RSyRWAnKeGd7VAFE= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.3/go.mod h1:TL79f2P6+8Q7dTsILpiVST+AL9lkF6PPGI167Ny0Cjw= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 h1:E3Y+OfzOK1+rmRo/K2G0ml8Vs+Xqk0kOnf4nS0kUtBc= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59/go.mod h1:1M4PLSBUVfBI0aP+C9XI7SM6kZPCGYyI6izWz0TGprE= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.31/go.mod h1:QT0BqUvX1Bh2ABdTGnjqEjvjzrCfIniM9Sc8zn9Yndo= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 h1:aw39xVGeRWlWx9EzGVnhOR4yOjQDHPQ6o6NmBlscyQg= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5/go.mod h1:FSaRudD0dXiMPK2UjknVwwTYyZMRsHv3TtkabsZih5I= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.7 h1:lf/8VTF2cM+N4SLzaYJERKEWAXq8MOMpZfU6wEPWsPk= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.7/go.mod h1:4SjkU7QiqK2M9oozyMzfZ/23LmUY+h3oFqhdeP5OMiI= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.25/go.mod h1:zBHOPwhBc3FlQjQJE/D3IfPWiWaQmT06Vq9aNukDo0k= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 h1:PG1F3OD1szkuQPzDw3CIQsRIrtTlUC3lP84taWzHlq0= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5/go.mod h1:jU1li6RFryMz+so64PpKtudI+QzbKoIEivqdf6LNpOc= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.7 h1:4OYVp0705xu8yjdyoWix0r9wPIRXnIzzOoUpQVHIJ/g= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.7/go.mod h1:vd7ESTEvI76T2Na050gODNmNU7+OyKrIKroYTu4ABiI= github.com/aws/aws-sdk-go-v2/internal/ini v1.3.32/go.mod h1:XGhIBZDEgfqmFIugclZ6FU7v75nHhBDtzuB4xB/tEi4= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY= @@ -61,8 +61,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2/go.mod h1: github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26 h1:CeuSeq/8FnYpPtnuIeLQEEvDv9zUjneuYi8EghMBdwQ= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26/go.mod h1:2UqAAwMUXKeRkAHIlDJqvMVgOWkUi/AUXPk/YIe+Dg4= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.25/go.mod h1:/95IA+0lMnzW6XzqYJRpjjsAbKEORVeO0anQqjd2CNU= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 h1:ogRAwT1/gxJBcSWDMZlgyFUM962F51A5CRhDLbxLdmo= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7/go.mod h1:YCsIZhXfRPLFFCl5xxY+1T9RKzOKjCut+28JSX2DnAk= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.9 h1:Wx0rlZoEJR7JwlSZcHnEa7CNjrSIyVxMFWGAaXy4fJY= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.9/go.mod h1:aVMHdE0aHO3v+f/iw01fmXV/5DbfQ3Bi9nN7nd9bE9Y= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 h1:e2ooMhpYGhDnBfSvIyusvAwX7KexuZaHbQY2Dyei7VU= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0/go.mod h1:bh2E0CXKZsQN+faiKVqC40vfNMAWheoULBCnEgO9K+8= github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 h1:B1G2pSPvbAtQjilPq+Y7jLIzCOwKzuVEl+aBBaNG0AQ= @@ -70,14 +70,14 @@ github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0/go.mod h1:ncltU6n4Nof5uJttDtcNQ5 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.6 h1:TIOEjw0i2yyhmhRry3Oeu9YtiiHWISZ6j/irS1W3gX4= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.6/go.mod h1:3Ba++UwWd154xtP4FRX5pUK3Gt4up5sDHCve6kVfE+g= github.com/aws/aws-sdk-go-v2/service/sso v1.12.6/go.mod h1:Y1VOmit/Fn6Tz1uFAeCO6Q7M2fmfXSCLeL5INVYsLuY= -github.com/aws/aws-sdk-go-v2/service/sso v1.20.5 h1:vN8hEbpRnL7+Hopy9dzmRle1xmDc7o8tmY0klsr175w= -github.com/aws/aws-sdk-go-v2/service/sso v1.20.5/go.mod h1:qGzynb/msuZIE8I75DVRCUXw3o3ZyBmUvMwQ2t/BrGM= +github.com/aws/aws-sdk-go-v2/service/sso v1.20.9 h1:aD7AGQhvPuAxlSUfo0CWU7s6FpkbyykMhGYMvlqTjVs= +github.com/aws/aws-sdk-go-v2/service/sso v1.20.9/go.mod h1:c1qtZUWtygI6ZdvKppzCSXsDOq5I4luJPZ0Ud3juFCA= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.6/go.mod h1:Lh/bc9XUf8CfOY6Jp5aIkQtN+j1mc+nExc+KXj9jx2s= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4 h1:Jux+gDDyi1Lruk+KHF91tK2KCuY61kzoCpvtvJJBtOE= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4/go.mod h1:mUYPBhaF2lGiukDEjJX2BLRRKTmoUSitGDUgM4tRxak= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.3 h1:Pav5q3cA260Zqez42T9UhIlsd9QeypszRPwC9LdSSsQ= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.3/go.mod h1:9lmoVDVLz/yUZwLaQ676TK02fhCu4+PgRSmMaKR1ozk= github.com/aws/aws-sdk-go-v2/service/sts v1.18.7/go.mod h1:JuTnSoeePXmMVe9G8NcjjwgOKEfZ4cOjMuT2IBT/2eI= -github.com/aws/aws-sdk-go-v2/service/sts v1.28.6 h1:cwIxeBttqPN3qkaAjcEcsh8NYr8n2HZPkcKgPAi1phU= -github.com/aws/aws-sdk-go-v2/service/sts v1.28.6/go.mod h1:FZf1/nKNEkHdGGJP/cI2MoIMquumuRK6ol3QQJNDxmw= +github.com/aws/aws-sdk-go-v2/service/sts v1.28.10 h1:69tpbPED7jKPyzMcrwSvhWcJ9bPnZsZs18NT40JwM0g= +github.com/aws/aws-sdk-go-v2/service/sts v1.28.10/go.mod h1:0Aqn1MnEuitqfsCNyKsdKLhDUOr4txD/g19EfiUqgws= github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= github.com/aws/smithy-go v1.20.2 h1:tbp628ireGtzcHDDmLT/6ADHidqnwgF57XOXZe6tp4Q= github.com/aws/smithy-go v1.20.2/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E= From 8eca2fd48e2c28bc7049a58b560e68a09d092347 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 1 Jun 2024 22:56:26 +0200 Subject: [PATCH 238/401] deps: bump github.com/prometheus/client_golang from 1.19.0 to 1.19.1 (#529) Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.19.0 to 1.19.1. - [Release notes](https://github.com/prometheus/client_golang/releases) - [Changelog](https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md) - [Commits](https://github.com/prometheus/client_golang/compare/v1.19.0...v1.19.1) --- updated-dependencies: - dependency-name: github.com/prometheus/client_golang dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index e04238d3..9acd61da 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.9 github.com/microsoft/go-mssqldb v1.7.2 - github.com/prometheus/client_golang v1.19.0 + github.com/prometheus/client_golang v1.19.1 github.com/prometheus/client_model v0.6.1 github.com/prometheus/common v0.53.0 github.com/prometheus/exporter-toolkit v0.11.0 diff --git a/go.sum b/go.sum index 155ff926..72026dc2 100644 --- a/go.sum +++ b/go.sum @@ -203,8 +203,8 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7kmXYlnfbA6JU= -github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k= +github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= +github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.53.0 h1:U2pL9w9nmJwJDa4qqLQ3ZaePJ6ZTwt7cMD3AG3+aLCE= From 2daff3b48b4f20b9a0cd5c7e7a558c963ae3947d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 1 Jun 2024 22:57:46 +0200 Subject: [PATCH 239/401] deps: bump github.com/snowflakedb/gosnowflake from 1.9.0 to 1.10.1 (#531) Bumps [github.com/snowflakedb/gosnowflake](https://github.com/snowflakedb/gosnowflake) from 1.9.0 to 1.10.1. - [Release notes](https://github.com/snowflakedb/gosnowflake/releases) - [Changelog](https://github.com/snowflakedb/gosnowflake/blob/master/release.go) - [Commits](https://github.com/snowflakedb/gosnowflake/compare/v1.9.0...v1.10.1) --- updated-dependencies: - dependency-name: github.com/snowflakedb/gosnowflake dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 17 ++++++++--------- go.sum | 48 ++++++++++++++++-------------------------------- 2 files changed, 24 insertions(+), 41 deletions(-) diff --git a/go.mod b/go.mod index 9acd61da..a936a6cd 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/prometheus/common v0.53.0 github.com/prometheus/exporter-toolkit v0.11.0 github.com/sethvargo/go-envconfig v1.0.3 - github.com/snowflakedb/gosnowflake v1.9.0 + github.com/snowflakedb/gosnowflake v1.10.1 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.23.1 google.golang.org/protobuf v1.34.1 @@ -40,19 +40,19 @@ require ( github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c // indirect github.com/andybalholm/brotli v1.1.0 // indirect github.com/apache/arrow/go/v15 v15.0.0 // indirect - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 // indirect github.com/aws/aws-sdk-go-v2/credentials v1.17.16 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.3 // indirect - github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 // indirect + github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.7 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.7 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 // indirect github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.9 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 // indirect - github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 // indirect + github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 // indirect github.com/aws/aws-sdk-go-v2/service/sso v1.20.9 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.3 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.28.10 // indirect @@ -65,7 +65,6 @@ require ( github.com/dvsekhvalnov/jose2go v1.6.0 // indirect github.com/elastic/go-sysinfo v1.8.1 // indirect github.com/elastic/go-windows v1.0.0 // indirect - github.com/form3tech-oss/jwt-go v3.2.5+incompatible // indirect github.com/gabriel-vasile/mimetype v1.4.2 // indirect github.com/go-faster/city v1.0.1 // indirect github.com/go-faster/errors v0.7.1 // indirect @@ -74,7 +73,7 @@ require ( github.com/go-logr/logr v1.4.1 // indirect github.com/goccy/go-json v0.10.2 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect - github.com/golang-jwt/jwt/v5 v5.2.0 // indirect + github.com/golang-jwt/jwt/v5 v5.2.1 // indirect github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 // indirect github.com/golang-sql/sqlexp v0.1.0 // indirect github.com/golang/protobuf v1.5.3 // indirect diff --git a/go.sum b/go.sum index 72026dc2..a0d114dd 100644 --- a/go.sum +++ b/go.sum @@ -28,57 +28,44 @@ github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1 github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY= github.com/apache/arrow/go/v15 v15.0.0 h1:1zZACWf85oEZY5/kd9dsQS7i+2G5zVQcbKTHgslqHNA= github.com/apache/arrow/go/v15 v15.0.0/go.mod h1:DGXsR3ajT524njufqf95822i+KTh+yea1jass9YXgjA= -github.com/aws/aws-sdk-go-v2 v1.17.7/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= github.com/aws/aws-sdk-go-v2 v1.27.0 h1:7bZWKoXhzI+mMR/HjdMx8ZCC5+6fY0lS5tr0bbgiLlo= github.com/aws/aws-sdk-go-v2 v1.27.0/go.mod h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7BReUZ3jCXM= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10/go.mod h1:VeTZetY5KRJLuD/7fkQXMU6Mw7H5m/KP2J5Iy9osMno= -github.com/aws/aws-sdk-go-v2/config v1.18.19/go.mod h1:XvTmGMY8d52ougvakOv1RpiTLPz9dlG/OQHsKU/cMmY= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg= github.com/aws/aws-sdk-go-v2/config v1.27.16 h1:knpCuH7laFVGYTNd99Ns5t+8PuRjDn4HnnZK48csipM= github.com/aws/aws-sdk-go-v2/config v1.27.16/go.mod h1:vutqgRhDUktwSge3hrC3nkuirzkJ4E/mLj5GvI0BQas= -github.com/aws/aws-sdk-go-v2/credentials v1.13.18/go.mod h1:vnwlwjIe+3XJPBYKu1et30ZPABG3VaXJYr8ryohpIyM= github.com/aws/aws-sdk-go-v2/credentials v1.17.16 h1:7d2QxY83uYl0l58ceyiSpxg9bSbStqBC6BeEeHEchwo= github.com/aws/aws-sdk-go-v2/credentials v1.17.16/go.mod h1:Ae6li/6Yc6eMzysRL2BXlPYvnrLLBg3D11/AmOjw50k= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.1/go.mod h1:lfUx8puBRdM5lVVMQlwt2v+ofiG/X6Ms+dy0UkG/kXw= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.3 h1:dQLK4TjtnlRGb0czOht2CevZ5l6RSyRWAnKeGd7VAFE= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.3/go.mod h1:TL79f2P6+8Q7dTsILpiVST+AL9lkF6PPGI167Ny0Cjw= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 h1:E3Y+OfzOK1+rmRo/K2G0ml8Vs+Xqk0kOnf4nS0kUtBc= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59/go.mod h1:1M4PLSBUVfBI0aP+C9XI7SM6kZPCGYyI6izWz0TGprE= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.31/go.mod h1:QT0BqUvX1Bh2ABdTGnjqEjvjzrCfIniM9Sc8zn9Yndo= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 h1:7Zwtt/lP3KNRkeZre7soMELMGNoBrutx8nobg1jKWmo= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15/go.mod h1:436h2adoHb57yd+8W+gYPrrA9U/R/SuAuOO42Ushzhw= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.7 h1:lf/8VTF2cM+N4SLzaYJERKEWAXq8MOMpZfU6wEPWsPk= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.7/go.mod h1:4SjkU7QiqK2M9oozyMzfZ/23LmUY+h3oFqhdeP5OMiI= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.25/go.mod h1:zBHOPwhBc3FlQjQJE/D3IfPWiWaQmT06Vq9aNukDo0k= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.7 h1:4OYVp0705xu8yjdyoWix0r9wPIRXnIzzOoUpQVHIJ/g= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.7/go.mod h1:vd7ESTEvI76T2Na050gODNmNU7+OyKrIKroYTu4ABiI= -github.com/aws/aws-sdk-go-v2/internal/ini v1.3.32/go.mod h1:XGhIBZDEgfqmFIugclZ6FU7v75nHhBDtzuB4xB/tEi4= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 h1:DWYZIsyqagnWL00f8M/SOr9fN063OEQWn9LLTbdYXsk= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23/go.mod h1:uIiFgURZbACBEQJfqTZPb/jxO7R+9LeoHUFudtIdeQI= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11/go.mod h1:iV4q2hsqtNECrfmlXyord9u4zyuFEJX9eLgLpSPzWA8= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 h1:81KE7vaZzrl7yHBYHVEzYB8sypz11NMOZ40YlWvPxsU= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5/go.mod h1:LIt2rg7Mcgn09Ygbdh/RdIm0rQ+3BNkbP1gyVMFtRK0= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 h1:Ji0DY1xUsUr3I8cHps0G+XM3WWU16lP6yG8qu1GAZAs= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2/go.mod h1:5CsjAbs3NlGQyZNFACh+zztPDI7fU6eW9QsxjfnuBKg= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26 h1:CeuSeq/8FnYpPtnuIeLQEEvDv9zUjneuYi8EghMBdwQ= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26/go.mod h1:2UqAAwMUXKeRkAHIlDJqvMVgOWkUi/AUXPk/YIe+Dg4= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.25/go.mod h1:/95IA+0lMnzW6XzqYJRpjjsAbKEORVeO0anQqjd2CNU= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 h1:ZMeFZ5yk+Ek+jNr1+uwCd2tG89t6oTS5yVWpa6yy2es= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7/go.mod h1:mxV05U+4JiHqIpGqqYXOHLPKUC6bDXC44bsUhNjOEwY= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.9 h1:Wx0rlZoEJR7JwlSZcHnEa7CNjrSIyVxMFWGAaXy4fJY= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.9/go.mod h1:aVMHdE0aHO3v+f/iw01fmXV/5DbfQ3Bi9nN7nd9bE9Y= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 h1:e2ooMhpYGhDnBfSvIyusvAwX7KexuZaHbQY2Dyei7VU= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0/go.mod h1:bh2E0CXKZsQN+faiKVqC40vfNMAWheoULBCnEgO9K+8= -github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 h1:B1G2pSPvbAtQjilPq+Y7jLIzCOwKzuVEl+aBBaNG0AQ= -github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0/go.mod h1:ncltU6n4Nof5uJttDtcNQ537uNuwYqsZZQcpkd2/GUQ= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 h1:f9RyWNtS8oH7cZlbn+/JNPpjUk5+5fLd5lM9M0i49Ys= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5/go.mod h1:h5CoMZV2VF297/VLhRhO1WF+XYWOzXo+4HsObA4HjBQ= +github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 h1:6cnno47Me9bRykw9AEv9zkXE+5or7jz8TsskTTccbgc= +github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1/go.mod h1:qmdkIIAC+GCLASF7R2whgNrJADz0QZPX+Seiw/i4S3o= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.6 h1:TIOEjw0i2yyhmhRry3Oeu9YtiiHWISZ6j/irS1W3gX4= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.6/go.mod h1:3Ba++UwWd154xtP4FRX5pUK3Gt4up5sDHCve6kVfE+g= -github.com/aws/aws-sdk-go-v2/service/sso v1.12.6/go.mod h1:Y1VOmit/Fn6Tz1uFAeCO6Q7M2fmfXSCLeL5INVYsLuY= github.com/aws/aws-sdk-go-v2/service/sso v1.20.9 h1:aD7AGQhvPuAxlSUfo0CWU7s6FpkbyykMhGYMvlqTjVs= github.com/aws/aws-sdk-go-v2/service/sso v1.20.9/go.mod h1:c1qtZUWtygI6ZdvKppzCSXsDOq5I4luJPZ0Ud3juFCA= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.6/go.mod h1:Lh/bc9XUf8CfOY6Jp5aIkQtN+j1mc+nExc+KXj9jx2s= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.3 h1:Pav5q3cA260Zqez42T9UhIlsd9QeypszRPwC9LdSSsQ= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.3/go.mod h1:9lmoVDVLz/yUZwLaQ676TK02fhCu4+PgRSmMaKR1ozk= -github.com/aws/aws-sdk-go-v2/service/sts v1.18.7/go.mod h1:JuTnSoeePXmMVe9G8NcjjwgOKEfZ4cOjMuT2IBT/2eI= github.com/aws/aws-sdk-go-v2/service/sts v1.28.10 h1:69tpbPED7jKPyzMcrwSvhWcJ9bPnZsZs18NT40JwM0g= github.com/aws/aws-sdk-go-v2/service/sts v1.28.10/go.mod h1:0Aqn1MnEuitqfsCNyKsdKLhDUOr4txD/g19EfiUqgws= -github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= github.com/aws/smithy-go v1.20.2 h1:tbp628ireGtzcHDDmLT/6ADHidqnwgF57XOXZe6tp4Q= github.com/aws/smithy-go v1.20.2/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -101,8 +88,6 @@ github.com/elastic/go-sysinfo v1.8.1 h1:4Yhj+HdV6WjbCRgGdZpPJ8lZQlXZLKDAeIkmQ/VR github.com/elastic/go-sysinfo v1.8.1/go.mod h1:JfllUnzoQV/JRYymbH3dO1yggI3mV2oTKSXsDHM+uIM= github.com/elastic/go-windows v1.0.0 h1:qLURgZFkkrYyTTkvYpsZIgf83AUsdIHfvlJaqaZ7aSY= github.com/elastic/go-windows v1.0.0/go.mod h1:TsU0Nrp7/y3+VwE82FoZF8gC/XFg/Elz6CcloAxnPgU= -github.com/form3tech-oss/jwt-go v3.2.5+incompatible h1:/l4kBbb4/vGSsdtB5nUe8L7B9mImVMaBPw9L/0TBHU8= -github.com/form3tech-oss/jwt-go v3.2.5+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU= github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA= github.com/go-faster/city v1.0.1 h1:4WAxSZ3V2Ws4QRDrscLEDcibJY8uf41H6AhXDrNDcGw= @@ -123,8 +108,8 @@ github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+ github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang-jwt/jwt/v5 v5.2.0 h1:d/ix8ftRUorsN+5eMIlF4T6J8CAt9rch3My2winC1Jw= -github.com/golang-jwt/jwt/v5 v5.2.0/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= +github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= +github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA= github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A= @@ -138,7 +123,6 @@ github.com/google/flatbuffers v23.5.26+incompatible h1:M9dgRyhJemaM4Sw8+66GHBu8i github.com/google/flatbuffers v23.5.26+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= @@ -226,8 +210,8 @@ github.com/simonpasquier/klog-gokit/v3 v3.4.0 h1:2eD2INbzUHuGNynPP86BCB8H6Lwfp6w github.com/simonpasquier/klog-gokit/v3 v3.4.0/go.mod h1:RREVB5Cc6yYHsweRfhUyM1ZP+Odb8ehxLfY8jaiqvjg= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/snowflakedb/gosnowflake v1.9.0 h1:s2ZdwFxFfpqwa5CqlhnzRESnLmwU3fED6zyNOJHFBQA= -github.com/snowflakedb/gosnowflake v1.9.0/go.mod h1:4ZgHxVf2OKwecx07WjfyAMr0gn8Qj4yvwAo68Og8wsU= +github.com/snowflakedb/gosnowflake v1.10.1 h1:VGeQxsQj5s3hP0cRmtNYozhUvs2Y7Reu5Pk5pKuRGpI= +github.com/snowflakedb/gosnowflake v1.10.1/go.mod h1:hvc58mU03qg78mSz5z17/qnzI56hOdYYK2txWbM0hN0= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= From 3ff0898986af3b1c123e571ad49342a2544a10bc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 2 Jun 2024 08:16:14 +0200 Subject: [PATCH 240/401] deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager from 1.28.6 to 1.29.1 (#532) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index a936a6cd..914d1074 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/ClickHouse/clickhouse-go/v2 v2.25.0 github.com/aws/aws-sdk-go-v2 v1.27.0 github.com/aws/aws-sdk-go-v2/config v1.27.16 - github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.6 + github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.29.1 github.com/go-sql-driver/mysql v1.8.1 github.com/jackc/pgx/v5 v5.5.5 github.com/kardianos/minwinsvc v1.0.2 diff --git a/go.sum b/go.sum index a0d114dd..1e8bfa9f 100644 --- a/go.sum +++ b/go.sum @@ -58,8 +58,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 h1:f9RyWNtS8oH7cZ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5/go.mod h1:h5CoMZV2VF297/VLhRhO1WF+XYWOzXo+4HsObA4HjBQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 h1:6cnno47Me9bRykw9AEv9zkXE+5or7jz8TsskTTccbgc= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1/go.mod h1:qmdkIIAC+GCLASF7R2whgNrJADz0QZPX+Seiw/i4S3o= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.6 h1:TIOEjw0i2yyhmhRry3Oeu9YtiiHWISZ6j/irS1W3gX4= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.6/go.mod h1:3Ba++UwWd154xtP4FRX5pUK3Gt4up5sDHCve6kVfE+g= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.29.1 h1:NSWsFzdHN41mJ5I/DOFzxgkKSYNHQADHn7Mu+lU/AKw= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.29.1/go.mod h1:5mMk0DgUgaHlcqtN65fNyZI0ZDX3i9Cw+nwq75HKB3U= github.com/aws/aws-sdk-go-v2/service/sso v1.20.9 h1:aD7AGQhvPuAxlSUfo0CWU7s6FpkbyykMhGYMvlqTjVs= github.com/aws/aws-sdk-go-v2/service/sso v1.20.9/go.mod h1:c1qtZUWtygI6ZdvKppzCSXsDOq5I4luJPZ0Ud3juFCA= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.3 h1:Pav5q3cA260Zqez42T9UhIlsd9QeypszRPwC9LdSSsQ= From 8901d1ab866f4aea404eec7fae7454f9b80f2600 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Tue, 11 Jun 2024 12:57:12 +0200 Subject: [PATCH 241/401] chore: update promu to v0.17 (#534) --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 38dade24..dfbb99e4 100644 --- a/Makefile +++ b/Makefile @@ -22,7 +22,7 @@ endif GO := go GOPATH ?= $(firstword $(subst :, ,$(shell $(GO) env GOPATH))) PROMU := $(GOPATH)/bin/promu -PROMU_VERSION := v0.14.0 +PROMU_VERSION := v0.17.0 pkgs = $(shell $(GO) list ./... | grep -v /vendor/) PREFIX ?= $(shell pwd) From a8dcb4541bd71d227e0dd7255ec97f6d2e0bc15b Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Tue, 11 Jun 2024 13:04:29 +0200 Subject: [PATCH 242/401] build: disable symbol table, DWARF generation for builds (#535) disable symbol table, DWARF generation for builds --- .promu.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.promu.yml b/.promu.yml index 30f7e19c..d7ff8025 100644 --- a/.promu.yml +++ b/.promu.yml @@ -14,6 +14,8 @@ build: -X github.com/prometheus/common/version.Branch={{.Branch}} -X github.com/prometheus/common/version.BuildUser={{user}}@{{host}} -X github.com/prometheus/common/version.BuildDate={{date "20060102-15:04:05"}} + -s + -w tarball: files: - LICENSE From feab5612526d043e57387dac2eece780fd50e26c Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Tue, 11 Jun 2024 14:56:32 +0200 Subject: [PATCH 243/401] Bump up version to 0.14.4 (#536) --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index ac4a7962..3393b5fd 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.14.3 +0.14.4 From d6dd0d8684a048f8030c69256dde4862bc15116f Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Tue, 11 Jun 2024 15:28:42 +0200 Subject: [PATCH 244/401] Bump up helm chart to 0.5.1 (#537) --- helm/Chart.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 1f6b329b..a99f61a7 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: sql-exporter description: Database-agnostic SQL exporter for Prometheus type: application -version: 0.5.0 -appVersion: 0.14.3 +version: 0.5.1 +appVersion: 0.14.4 keywords: - exporter - servicemonitor From c547cd82cbc71060cf2d727fa5726bb06533ce28 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 12 Jun 2024 11:36:01 +0200 Subject: [PATCH 245/401] deps: bump github.com/Azure/azure-sdk-for-go/sdk/azidentity from 1.5.1 to 1.6.0 (#538) deps: bump github.com/Azure/azure-sdk-for-go/sdk/azidentity Bumps [github.com/Azure/azure-sdk-for-go/sdk/azidentity](https://github.com/Azure/azure-sdk-for-go) from 1.5.1 to 1.6.0. - [Release notes](https://github.com/Azure/azure-sdk-for-go/releases) - [Changelog](https://github.com/Azure/azure-sdk-for-go/blob/main/documentation/release.md) - [Commits](https://github.com/Azure/azure-sdk-for-go/compare/sdk/internal/v1.5.1...sdk/azcore/v1.6.0) --- updated-dependencies: - dependency-name: github.com/Azure/azure-sdk-for-go/sdk/azidentity dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 24 ++++++++++++------------ go.sum | 54 ++++++++++++++++++++++++++---------------------------- 2 files changed, 38 insertions(+), 40 deletions(-) diff --git a/go.mod b/go.mod index 914d1074..664df327 100644 --- a/go.mod +++ b/go.mod @@ -31,11 +31,11 @@ require ( filippo.io/edwards25519 v1.1.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.2 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.1 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.1 // indirect - github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.1 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azcore v1.11.1 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.6.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/internal v1.8.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0 // indirect - github.com/AzureAD/microsoft-authentication-library-for-go v1.2.1 // indirect + github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect github.com/ClickHouse/ch-go v0.61.5 // indirect github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c // indirect github.com/andybalholm/brotli v1.1.0 // indirect @@ -104,16 +104,16 @@ require ( github.com/zeebo/xxh3 v1.0.2 // indirect go.opentelemetry.io/otel v1.26.0 // indirect go.opentelemetry.io/otel/trace v1.26.0 // indirect - golang.org/x/crypto v0.21.0 // indirect + golang.org/x/crypto v0.24.0 // indirect golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect - golang.org/x/mod v0.13.0 // indirect - golang.org/x/net v0.23.0 // indirect + golang.org/x/mod v0.17.0 // indirect + golang.org/x/net v0.26.0 // indirect golang.org/x/oauth2 v0.18.0 // indirect - golang.org/x/sync v0.6.0 // indirect - golang.org/x/sys v0.18.0 // indirect - golang.org/x/term v0.18.0 // indirect - golang.org/x/text v0.14.0 // indirect - golang.org/x/tools v0.14.0 // indirect + golang.org/x/sync v0.7.0 // indirect + golang.org/x/sys v0.21.0 // indirect + golang.org/x/term v0.21.0 // indirect + golang.org/x/text v0.16.0 // indirect + golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect google.golang.org/appengine v1.6.7 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/go.sum b/go.sum index 1e8bfa9f..39a8c8a4 100644 --- a/go.sum +++ b/go.sum @@ -4,20 +4,20 @@ github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 h1:/vQbFIOMb github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4/go.mod h1:hN7oaIRCjzsZ2dE+yG5k+rsdt3qcwykqK6HVGcKwsw4= github.com/99designs/keyring v1.2.2 h1:pZd3neh/EmUzWONb35LxQfvuY7kiSXAq3HQd97+XBn0= github.com/99designs/keyring v1.2.2/go.mod h1:wes/FrByc8j7lFOAGLGSNEg8f/PaI3cgTBqhFkHUrPk= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.1 h1:lGlwhPtrX6EVml1hO0ivjkUxsSyl4dsiw9qcA1k/3IQ= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.1/go.mod h1:RKUqNu35KJYcVG/fqTRqmuXJZYNhYkBrnC/hX7yGbTA= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.1 h1:sO0/P7g68FrryJzljemN+6GTssUXdANk6aJ7T1ZxnsQ= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.1/go.mod h1:h8hyGFDsU5HMivxiS2iYFZsgDbU9OnnJ163x5UGVKYo= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.1 h1:6oNBlSdi1QqM1PNW7FPA6xOGA5UNsXnkaYZz9vdPGhA= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.1/go.mod h1:s4kgfzA0covAXNicZHDMN58jExvcng2mC/DepXiF1EI= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.11.1 h1:E+OJmp2tPvt1W+amx48v1eqbjDYsgN+RzP4q16yV5eM= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.11.1/go.mod h1:a6xsAQUZg+VsS3TJ05SRp524Hs4pZ/AeFSr5ENf0Yjo= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.6.0 h1:U2rTu3Ef+7w9FHKIAXM6ZyqF3UOWJZ12zIm8zECAFfg= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.6.0/go.mod h1:9kIvujWAA58nmPmWB1m23fyWic1kYZMxD9CxaWn4Qpg= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.8.0 h1:jBQA3cKT4L2rWMpgE7Yt3Hwh2aUj8KXjIGLxjHeYNNo= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.8.0/go.mod h1:4OG6tQ9EOP/MT0NMjDlRzWoVFxfu9rN9B2X+tlSVktg= github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.0.1 h1:MyVTgWR8qd/Jw1Le0NZebGBUCLbtak3bJ3z1OlqZBpw= github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.0.1/go.mod h1:GpPjLhVR9dnUoJMyHWSPy71xY9/lcmpzIPZXmF0FCVY= github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.0.0 h1:D3occbWoio4EBLkbkevetNMAVX197GkzbUMtqjGWn80= github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.0.0/go.mod h1:bTSOgj05NGRuHHhQwAdPnYr9TOdNmKlZTgGLL6nyAdI= github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0 h1:u/LLAOFgsMv7HmNL4Qufg58y+qElGOt5qv0z1mURkRY= github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0/go.mod h1:2e8rMJtl2+2j+HXbTBwnyGpm5Nou7KhvSfxOq8JpTag= -github.com/AzureAD/microsoft-authentication-library-for-go v1.2.1 h1:DzHpqpoJVaCgOUdVHxE8QB52S6NiVdDQvGlny1qvPqA= -github.com/AzureAD/microsoft-authentication-library-for-go v1.2.1/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= +github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 h1:XHOnouVk1mxXfQidrMEnLlPk9UMeRtyBTnEFtxkV0kU= +github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= github.com/ClickHouse/ch-go v0.61.5 h1:zwR8QbYI0tsMiEcze/uIMK+Tz1D3XZXLdNrlaOpeEI4= github.com/ClickHouse/ch-go v0.61.5/go.mod h1:s1LJW/F/LcFs5HJnuogFMta50kKDO0lf9zzfrbl0RQg= github.com/ClickHouse/clickhouse-go/v2 v2.25.0 h1:rKscwqgQHzWBTZySZDcHKxgs0Ad+xFULfZvo26W5UlY= @@ -80,8 +80,6 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI= -github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= github.com/dvsekhvalnov/jose2go v1.6.0 h1:Y9gnSnP4qEI0+/uQkHvFXeD2PLPJeXEL+ySMEA2EjTY= github.com/dvsekhvalnov/jose2go v1.6.0/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB/mPZadG+mhXU= github.com/elastic/go-sysinfo v1.8.1 h1:4Yhj+HdV6WjbCRgGdZpPJ8lZQlXZLKDAeIkmQ/VRvi4= @@ -198,8 +196,8 @@ github.com/prometheus/exporter-toolkit v0.11.0/go.mod h1:BVnENhnNecpwoTLiABx7mrP github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= -github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= -github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= +github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/segmentio/asm v1.2.0 h1:9BQrFxC+YOHJlTlHGkTrFWf59nbL3XnCoFLTwDCI7ys= github.com/segmentio/asm v1.2.0/go.mod h1:BqMnlJP91P8d+4ibuonYZw9mfnzI9HfxselHZr5aAcs= github.com/sethvargo/go-envconfig v1.0.3 h1:ZDxFGT1M7RPX0wgDOCdZMidrEB+NrayYr6fL0/+pk4I= @@ -244,22 +242,22 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= -golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= +golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI= golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.13.0 h1:I/DsJXRlw/8l/0c24sM9yb0T4z9liZTduXvdAWYiysY= -golang.org/x/mod v0.13.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= +golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= -golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= +golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= golang.org/x/oauth2 v0.18.0 h1:09qnuIAgzdx1XplqJvW6CQqMCtGZykZWcXzPMPUusvI= golang.org/x/oauth2 v0.18.0/go.mod h1:Wf7knwG0MPoWIMMBgFlEaSUDaKskp0dCfrlJRJXbBi8= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -267,8 +265,8 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= -golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -280,24 +278,24 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= -golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= +golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8= -golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= +golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= +golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= +golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.14.0 h1:jvNa2pY0M4r62jkRQ6RwEZZyPcymeL9XZMLBbV7U2nc= -golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= 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= From 607a51e6c56b878deec8227ea9dadcab48c01e09 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Fri, 21 Jun 2024 15:38:15 +0000 Subject: [PATCH 246/401] docs: revisit README.md (#545) --- README.md | 172 +++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 120 insertions(+), 52 deletions(-) diff --git a/README.md b/README.md index 817cb9a4..d0e6b50c 100644 --- a/README.md +++ b/README.md @@ -74,29 +74,6 @@ Running `make drivers-all` will regenerate driver set back to the current defaul Feel free to revisit and add more drivers as required. There's also the `custom` list that allows managing a separate list of drivers for special needs. -## Run as a Windows service - -If you run SQL Exporter from Windows, it might come in handy to register it as a service to avoid interactive sessions. -It is **important** to define `--config.file` parameter to load the configuration file. The other settings can be added -as well. The registration itself is performed with Powershell or CMD (make sure you run it as Administrator): - -Powershell: - -```powershell -New-Service -name "SqlExporterSvc" ` --BinaryPathName "%SQL_EXPORTER_PATH%\sql_exporter.exe --config.file %SQL_EXPORTER_PATH%\sql_exporter.yml" ` --StartupType Automatic ` --DisplayName "Prometheus SQL Exporter" -``` - -CMD: - -```shell -sc.exe create SqlExporterSvc binPath= "%SQL_EXPORTER_PATH%\sql_exporter.exe --config.file %SQL_EXPORTER_PATH%\sql_exporter.yml" start= auto -``` - -`%SQL_EXPORTER_PATH%` is a path to the SQL Exporter binary executable. This document assumes that configuration files -are in the same location. ## Configuration @@ -215,7 +192,94 @@ For example, `p@$$w0rd#abc` then becomes `p%40%24%24w0rd%23abc`. For additional details please refer to [xo/dburl](https://github.com/xo/dburl) documentation. -#### Using AWS Secrets Manager + +## Miscellaneous + +

+Multiple database connections + +It is possible to run a single exporter instance against multiple database connections. In this case we need to +configure `jobs` list instead of the `target` section as in the following example: + +```yaml +jobs: + - job_name: db_targets + collectors: [pricing_data_freshness, pricing_*] + enable_ping: true # Optional, true by default. Set to `false` in case you connect to pgbouncer or a data warehouse + static_configs: + - targets: + pg1: 'pg://db1@127.0.0.1:25432/postgres?sslmode=disable' + pg2: 'postgresql://username:password@pg-host.example.com:5432/dbname?sslmode=disable' + labels: # Optional, arbitrary key/value pair for all targets + cluster: cluster1 +``` + +, where DSN strings are assigned to the arbitrary instance names (i.e. pg1 and pg2). + +We can also define multiple jobs to run different collectors against different target sets. + +Since v0.14, sql_exporter can be passed an optional list of job names to filter out metrics. The `jobs[]` query +parameter may be used multiple times. In Prometheus configuration we can use this syntax under the [scrape +config](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#%3Cscrape_config%3E): + +```yaml + params: + jobs[]: + - db_targets1 + - db_targets2 +``` + +This might be useful for scraping targets with different intervals or any other advanced use cases, when calling all +jobs at once is undesired. + +
+ +
+Scraping PgBouncer, ProxySQL, Clickhouse or Snowflake + +Given that PgBouncer is a connection pooler, it doesn't support all the commands that a regular SQL database does, so +we need to make some adjustments to the configuration: + +- add `enable_ping: false` to the metric/job configuration as PgBouncer doesn't support the ping command; +- add `no_prepared_statement: true` to the metric/job configuration as PgBouncer doesn't support the extended query protocol; + +Note: For libpq(postgres) we only need to add `no_prepared_statement: true` parameter. For pgx driver, we also need to +add `default_query_exec_mode=simple_protocol` parameter to the DSN (for v5). + +Below is an example of a metric configuration for PgBouncer: +```yaml + metrics: + - metric_name: max_connections + no_prepared_statement: true + type: gauge + values: [max_connections] + key_labels: + - name + - database + - force_user + - pool_mode + - disabled + - paused + - current_connections + - reserve_pool + - min_pool_size + - pool_size + - port + query: | + SHOW DATABASES; + +``` + +Same goes for ProxySQL and Clickhouse, where we need to add `no_prepared_statement: true` to the metric/job +configuration, as these databases doesn't support prepared statements. + +In case, you connect to a data warehouse (e.g. Snowflake) you don't want to keep online all the time (due to the extra +cost), you might want to disable `ping` by setting `enable_ping: false`. +
+ + +
+Using AWS Secrets Manager If the database runs on AWS EC2 instance, this is a secure option to store the DSN without having it in the configuration file. To use this option: @@ -260,43 +324,40 @@ the secret. Policy example: Currently, AWS Secret Manager integration is only available for a single target configuration. -### Multiple database connections +
-It is possible to run a single exporter instance against multiple database connections. In this case we need to -configure `jobs` list instead of the `target` section as in the following example: +
+Run as a Windows service -```yaml -jobs: - - job_name: db_targets - collectors: [pricing_data_freshness, pricing_*] - enable_ping: true # Optional, true by default. Set to `false` in case you connect to pgbouncer or a data warehouse - static_configs: - - targets: - pg1: 'pg://db1@127.0.0.1:25432/postgres?sslmode=disable' - pg2: 'postgresql://username:password@pg-host.example.com:5432/dbname?sslmode=disable' - labels: # Optional, arbitrary key/value pair for all targets - cluster: cluster1 -``` +If you run SQL Exporter from Windows, it might come in handy to register it as a service to avoid interactive sessions. +It is **important** to define `--config.file` parameter to load the configuration file. The other settings can be added +as well. The registration itself is performed with Powershell or CMD (make sure you run it as Administrator): -, where DSN strings are assigned to the arbitrary instance names (i.e. pg1 and pg2). +Powershell: -We can also define multiple jobs to run different collectors against different target sets. +```powershell +New-Service -name "SqlExporterSvc" ` +-BinaryPathName "%SQL_EXPORTER_PATH%\sql_exporter.exe --config.file %SQL_EXPORTER_PATH%\sql_exporter.yml" ` +-StartupType Automatic ` +-DisplayName "Prometheus SQL Exporter" +``` -Since v0.14, sql_exporter can be passed an optional list of job names to filter out metrics. The `jobs[]` query -parameter may be used multiple times. In Prometheus configuration we can use this syntax under the [scrape -config](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#%3Cscrape_config%3E): +CMD: -```yaml - params: - jobs[]: - - db_targets1 - - db_targets2 +```shell +sc.exe create SqlExporterSvc binPath= "%SQL_EXPORTER_PATH%\sql_exporter.exe --config.file %SQL_EXPORTER_PATH%\sql_exporter.yml" start= auto ``` -This might be useful for scraping targets with different intervals or any other advanced use cases, when calling all -jobs at once is undesired. +`%SQL_EXPORTER_PATH%` is a path to the SQL Exporter binary executable. This document assumes that configuration files +are in the same location. + +In case you need a more sophisticated setup (e.g. with logging, environment variables, etc), you might want to use [NSSM](https://nssm.cc/) or +[WinSW](https://github.com/winsw/winsw). Please consult their documentation for more details. -### TLS and Basic Authentication +
+ +
+TLS and Basic Authentication SQL Exporter supports TLS and Basic Authentication. This enables better control of the various HTTP endpoints. @@ -304,6 +365,13 @@ To use TLS and/or Basic Authentication, you need to pass a configuration file us The format of the file is described in the [exporter-toolkit](https://github.com/prometheus/exporter-toolkit/blob/master/docs/web-configuration.md) repository. +
+ +If you have an issue using sql_exporter, please check [Discussions](https://github.com/burningalchemist/sql_exporter/discussions) or +closed [Issues](https://github.com/burningalchemist/sql_exporter/issues?q=is%3Aissue+is%3Aclosed) first. Chances are +someone else has already encountered the same problem and there is a solution. If not, feel free to create a new +discussion. + ## Why It Exists SQL Exporter started off as an exporter for Microsoft SQL Server, for which no reliable exporters exist. But what is From 56513faec2a34313f0d964ba21dc084b5f962f43 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Fri, 21 Jun 2024 16:28:11 +0000 Subject: [PATCH 247/401] docs: minor updates [skip ci] (#546) --- README.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index d0e6b50c..2b612262 100644 --- a/README.md +++ b/README.md @@ -132,7 +132,8 @@ collector_files: - "*.collector.yml" ``` -**NOTE:** The `collectors` and `collector_files` configurations support [Glob pattern matching](https://pkg.go.dev/path/filepath#Match). +> [!NOTE] +> The `collectors` and `collector_files` configurations support [Glob pattern matching](https://pkg.go.dev/path/filepath#Match). To match names with literal pattern terms in them, e.g. `collector_*1*`, these must be escaped: `collector_\*1\*`. ### Collectors @@ -177,16 +178,17 @@ metrics: To keep things simple and yet allow fully configurable database connections, SQL Exporter uses DSNs (like `sqlserver://prom_user:prom_password@dbserver1.example.com:1433`) to refer to database instances. -Since v0.9.0 `sql_exporter` relies on `github.com/xo/dburl` package for parsing Data Source Names (DSN). -This can potentially affect your connection to certain databases like MySQL, so you might want to adjust your connection -string accordingly: +This exporter relies on `xo/dburl` package for parsing Data Source Names (DSN). The goal is to have a +unified way to specify DSNs across all supported databases. This can potentially affect your connection to certain +databases like MySQL, so you might want to adjust your connection string accordingly: ```plaintext mysql://user:pass@localhost/dbname - for TCP connection mysql:/var/run/mysqld/mysqld.sock - for Unix socket connection ``` -If your DSN contains special characters in any part of your connection string (including passwords), you might need to +> [!IMPORTANT] +> If your DSN contains special characters in any part of your connection string (including passwords), you might need to apply [URL encoding](https://en.wikipedia.org/wiki/URL_encoding#Reserved_characters) (percent-encoding) to them. For example, `p@$$w0rd#abc` then becomes `p%40%24%24w0rd%23abc`. @@ -243,7 +245,7 @@ we need to make some adjustments to the configuration: - add `enable_ping: false` to the metric/job configuration as PgBouncer doesn't support the ping command; - add `no_prepared_statement: true` to the metric/job configuration as PgBouncer doesn't support the extended query protocol; -Note: For libpq(postgres) we only need to add `no_prepared_statement: true` parameter. For pgx driver, we also need to +For libpq (postgres) driver we only need to set `no_prepared_statement: true` parameter. For pgx driver, we also need to add `default_query_exec_mode=simple_protocol` parameter to the DSN (for v5). Below is an example of a metric configuration for PgBouncer: From d8e4c6f12c990ede059f76cd7c0086e18e625e61 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Mon, 24 Jun 2024 00:01:02 +0200 Subject: [PATCH 248/401] refactor: Reload targets and collectors, support SIGHUP (#548) * refactor: Reload targets and collectors, support SIGHUP * refactor(reload): function names * refactor: set enable-ping default value if it's nil * docs: update function docs --- cmd/sql_exporter/main.go | 103 ++++++++++----------------------------- exporter.go | 3 -- reload.go | 103 +++++++++++++++++++++++++++++++++++++++ target.go | 4 +- 4 files changed, 133 insertions(+), 80 deletions(-) create mode 100644 reload.go diff --git a/cmd/sql_exporter/main.go b/cmd/sql_exporter/main.go index a2a1a277..34cb0652 100644 --- a/cmd/sql_exporter/main.go +++ b/cmd/sql_exporter/main.go @@ -5,7 +5,9 @@ import ( "fmt" "net/http" "os" + "os/signal" "runtime" + "syscall" "time" "github.com/burningalchemist/sql_exporter" @@ -98,94 +100,43 @@ func main() { http.Handle(*metricsPath, promhttp.InstrumentMetricHandler(prometheus.DefaultRegisterer, ExporterHandlerFor(exporter))) // Expose exporter metrics separately, for debugging purposes. http.Handle("/sql_exporter_metrics", promhttp.HandlerFor(prometheus.DefaultGatherer, promhttp.HandlerOpts{})) - - // Expose refresh handler to reload query collections + // Expose refresh handler to reload collectors and targets if *enableReload { - http.HandleFunc("/reload", reloadCollectors(exporter)) + http.HandleFunc("/reload", reloadHandler(exporter)) } + // Handle SIGHUP for reloading the configuration + go func() { + c := make(chan os.Signal, 1) + signal.Notify(c, syscall.SIGHUP) + for { + <-c + err := sql_exporter.Reload(exporter, configFile) + if err != nil { + klog.Error(err) + continue + } + } + }() + + // Start the web server server := &http.Server{Addr: *listenAddress, ReadHeaderTimeout: httpReadHeaderTimeout} - if err := web.ListenAndServe(server, &web.FlagConfig{WebListenAddresses: &([]string{*listenAddress}), - WebConfigFile: webConfigFile, WebSystemdSocket: OfBool(false)}, logger); err != nil { + if err := web.ListenAndServe(server, &web.FlagConfig{ + WebListenAddresses: &([]string{*listenAddress}), + WebConfigFile: webConfigFile, WebSystemdSocket: OfBool(false), + }, logger); err != nil { klog.Fatal(err) } } -func reloadCollectors(e sql_exporter.Exporter) func(http.ResponseWriter, *http.Request) { +// reloadHandler returns a handler that reloads collectors and targets +func reloadHandler(e sql_exporter.Exporter) func(http.ResponseWriter, *http.Request) { return func(w http.ResponseWriter, r *http.Request) { - klog.Warning("Reloading collectors has started...") - klog.Warning("Connections will not be changed upon the restart of the exporter") - exporterNewConfig, err := cfg.Load(*configFile) + err := sql_exporter.Reload(e, configFile) if err != nil { - klog.Errorf("Error reading config file - %v", err) http.Error(w, err.Error(), http.StatusInternalServerError) return } - currentConfig := e.Config() - klog.Infof("Total collector size change: %v -> %v", len(currentConfig.Collectors), - len(exporterNewConfig.Collectors)) - - if len(currentConfig.Collectors) > 0 { - currentConfig.Collectors = currentConfig.Collectors[:0] - } - currentConfig.Collectors = exporterNewConfig.Collectors - - // Reload Collectors for a single target if there is one - if currentConfig.Target != nil { - klog.Warning("Reloading target collectors...") - // FIXME: Should be t.Collectors() instead of config.Collectors - target, err := sql_exporter.NewTarget("", currentConfig.Target.Name, "", string(currentConfig.Target.DSN), - exporterNewConfig.Target.Collectors(), nil, currentConfig.Globals, currentConfig.Target.EnablePing) - if err != nil { - klog.Errorf("Error recreating a target - %v", err) - http.Error(w, err.Error(), http.StatusInternalServerError) - return - } - e.UpdateTarget([]sql_exporter.Target{target}) - klog.Warning("Collectors have been successfully reloaded for target") - w.WriteHeader(http.StatusOK) - return - } - - // Reload Collectors for Jobs if there are any - if len(currentConfig.Jobs) > 0 { - klog.Warning("Recreating jobs...") - - // We want to preserve `static_configs`` from the previous config revision to avoid any connection changes - for _, currentJob := range currentConfig.Jobs { - for _, newJob := range exporterNewConfig.Jobs { - if newJob.Name == currentJob.Name { - newJob.StaticConfigs = currentJob.StaticConfigs - } - } - } - currentConfig.Jobs = exporterNewConfig.Jobs - - var updateErr error - targets := make([]sql_exporter.Target, 0, len(currentConfig.Jobs)) - - for _, jobConfigItem := range currentConfig.Jobs { - job, err := sql_exporter.NewJob(jobConfigItem, currentConfig.Globals) - if err != nil { - updateErr = err - break - } - targets = append(targets, job.Targets()...) - klog.Infof("Recreated Job: %s", jobConfigItem.Name) - } - - if updateErr != nil { - klog.Errorf("Error recreating jobs - %v", err) - http.Error(w, err.Error(), http.StatusInternalServerError) - return - } - - e.UpdateTarget(targets) - klog.Warning("Query collectors have been successfully reloaded for jobs") - w.WriteHeader(http.StatusOK) - return - } - klog.Warning("No target or jobs have been found - nothing to reload") - http.Error(w, "", http.StatusInternalServerError) + w.WriteHeader(http.StatusOK) } } diff --git a/exporter.go b/exporter.go index 220426a1..4b3e8bbf 100644 --- a/exporter.go +++ b/exporter.go @@ -60,9 +60,6 @@ func NewExporter(configFile string) (Exporter, error) { var targets []Target if c.Target != nil { - if c.Target.EnablePing == nil { - c.Target.EnablePing = &config.EnablePing - } target, err := NewTarget("", c.Target.Name, "", string(c.Target.DSN), c.Target.Collectors(), nil, c.Globals, c.Target.EnablePing) if err != nil { return nil, err diff --git a/reload.go b/reload.go new file mode 100644 index 00000000..50fed899 --- /dev/null +++ b/reload.go @@ -0,0 +1,103 @@ +package sql_exporter + +import ( + "errors" + + cfg "github.com/burningalchemist/sql_exporter/config" + "k8s.io/klog/v2" +) + +// Reload function is used to reload the exporter configuration without restarting the exporter +func Reload(e Exporter, configFile *string) error { + klog.Warning("Reloading collectors has started...") + klog.Warning("Connections will not be changed upon the restart of the exporter") + configNext, err := cfg.Load(*configFile) + if err != nil { + klog.Errorf("Error reading config file - %v", err) + return err + } + + configCurrent := e.Config() + + // Clear current collectors and replace with new ones + if len(configCurrent.Collectors) > 0 { + configCurrent.Collectors = configCurrent.Collectors[:0] + } + configCurrent.Collectors = configNext.Collectors + klog.Infof("Total collector size change: %v -> %v", len(configCurrent.Collectors), + len(configNext.Collectors)) + + // Reload targets + switch { + case configCurrent.Target != nil && configNext.Target != nil: + if err = reloadTarget(e, configNext, configCurrent); err != nil { + return err + } + case len(configCurrent.Jobs) > 0 && len(configNext.Jobs) > 0: + if err = reloadJobs(e, configNext, configCurrent); err != nil { + return err + } + case configCurrent.Target != nil && len(configNext.Jobs) > 0: + case len(configCurrent.Jobs) > 0 && configNext.Target != nil: + return errors.New("changing scrape mode is not allowed. Please restart the exporter") + default: + klog.Warning("No target or jobs have been found - nothing to reload") + } + return nil +} + +func reloadTarget(e Exporter, nc, cc *cfg.Config) error { + klog.Warning("Recreating targets collectors...") + + // We want to preserve DSN from the previous config revision to avoid any connection changes + nc.Target.DSN = cc.Target.DSN + // Apply the new target configuration + cc.Target = nc.Target + // Recreate the target object + target, err := NewTarget("", cc.Target.Name, "", string(cc.Target.DSN), + cc.Target.Collectors(), nil, cc.Globals, cc.Target.EnablePing) + if err != nil { + klog.Errorf("Error recreating a target - %v", err) + return err + } + + // Populate the target list + e.UpdateTarget([]Target{target}) + klog.Warning("Collectors have been successfully reloaded for target") + return nil +} + +func reloadJobs(e Exporter, nc, cc *cfg.Config) error { + klog.Warning("Recreating jobs...") + + // We want to preserve `static_configs`` from the previous config revision to avoid any connection changes + for _, currentJob := range cc.Jobs { + for _, newJob := range nc.Jobs { + if newJob.Name == currentJob.Name { + newJob.StaticConfigs = currentJob.StaticConfigs + } + } + } + cc.Jobs = nc.Jobs + var updateErr error + targets := make([]Target, 0, len(cc.Jobs)) + + for _, jobConfigItem := range cc.Jobs { + job, err := NewJob(jobConfigItem, cc.Globals) + if err != nil { + updateErr = err + break + } + targets = append(targets, job.Targets()...) + klog.Infof("Recreated Job: %s", jobConfigItem.Name) + } + + if updateErr != nil { + klog.Errorf("Error recreating jobs - %v", updateErr) + return updateErr + } + + e.UpdateTarget(targets) + klog.Warning("Query collectors have been successfully reloaded for jobs") + return nil +} diff --git a/target.go b/target.go index fb02f67b..4f0c4d4c 100644 --- a/target.go +++ b/target.go @@ -57,7 +57,6 @@ func NewTarget( logContext, tname, jg, dsn string, ccs []*config.CollectorConfig, constLabels prometheus.Labels, gc *config.GlobalConfig, ep *bool) ( Target, errors.WithContext, ) { - if tname != "" { logContext = TrimMissingCtx(fmt.Sprintf(`%s,target=%s`, logContext, tname)) if constLabels == nil { @@ -65,6 +64,9 @@ func NewTarget( } } + if ep == nil { + ep = &config.EnablePing + } klog.Infof("[%s] Target ping enabled: %v", logContext, *ep) // Sort const labels by name to ensure consistent ordering. From 0ae142aa96dcd809b10e72f7d3ecd23b53501e9c Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Thu, 27 Jun 2024 22:25:56 +0200 Subject: [PATCH 249/401] feat: drop scrape_errors_total metric with a configurable interval (#551) * feat: add scrape_error_drop_interval param to clear error metrics * refactor: extract logic from main * style: wording --- cmd/sql_exporter/main.go | 62 ++++++++++++++++++++++------------ config/global_config.go | 16 +++++---- documentation/sql_exporter.yml | 2 ++ exporter.go | 8 +++++ reload.go | 6 ++-- 5 files changed, 64 insertions(+), 30 deletions(-) diff --git a/cmd/sql_exporter/main.go b/cmd/sql_exporter/main.go index 34cb0652..e2424cb6 100644 --- a/cmd/sql_exporter/main.go +++ b/cmd/sql_exporter/main.go @@ -16,6 +16,7 @@ import ( "github.com/prometheus/client_golang/prometheus" info "github.com/prometheus/client_golang/prometheus/collectors/version" "github.com/prometheus/client_golang/prometheus/promhttp" + "github.com/prometheus/common/model" "github.com/prometheus/common/promlog" "github.com/prometheus/common/version" "github.com/prometheus/exporter-toolkit/web" @@ -87,12 +88,17 @@ func main() { } klog.Warningf("Starting SQL exporter %s %s", version.Info(), version.BuildContext()) - exporter, err := sql_exporter.NewExporter(*configFile) if err != nil { klog.Fatalf("Error creating exporter: %s", err) } + // Start the scrape_errors_total metric drop ticker if configured. + startScrapeErrorsDropTicker(exporter, exporter.Config().Globals.ScrapeErrorDropInterval) + + // Start signal handler to reload collector and target data. + signalHandler(exporter, *configFile) + // Setup and start webserver. http.HandleFunc("/healthz", func(w http.ResponseWriter, r *http.Request) { http.Error(w, "OK", http.StatusOK) }) http.HandleFunc("/", HomeHandlerFunc(*metricsPath)) @@ -102,24 +108,9 @@ func main() { http.Handle("/sql_exporter_metrics", promhttp.HandlerFor(prometheus.DefaultGatherer, promhttp.HandlerOpts{})) // Expose refresh handler to reload collectors and targets if *enableReload { - http.HandleFunc("/reload", reloadHandler(exporter)) + http.HandleFunc("/reload", reloadHandler(exporter, *configFile)) } - // Handle SIGHUP for reloading the configuration - go func() { - c := make(chan os.Signal, 1) - signal.Notify(c, syscall.SIGHUP) - for { - <-c - err := sql_exporter.Reload(exporter, configFile) - if err != nil { - klog.Error(err) - continue - } - } - }() - - // Start the web server server := &http.Server{Addr: *listenAddress, ReadHeaderTimeout: httpReadHeaderTimeout} if err := web.ListenAndServe(server, &web.FlagConfig{ WebListenAddresses: &([]string{*listenAddress}), @@ -129,14 +120,43 @@ func main() { } } -// reloadHandler returns a handler that reloads collectors and targets -func reloadHandler(e sql_exporter.Exporter) func(http.ResponseWriter, *http.Request) { +// reloadHandler returns a handler that reloads collector and target data. +func reloadHandler(e sql_exporter.Exporter, configFile string) func(http.ResponseWriter, *http.Request) { return func(w http.ResponseWriter, r *http.Request) { - err := sql_exporter.Reload(e, configFile) - if err != nil { + if err := sql_exporter.Reload(e, &configFile); err != nil { + klog.Error(err) http.Error(w, err.Error(), http.StatusInternalServerError) return } w.WriteHeader(http.StatusOK) } } + +// signalHandler listens for SIGHUP signals and reloads the collector and target data. +func signalHandler(e sql_exporter.Exporter, configFile string) { + c := make(chan os.Signal, 1) + signal.Notify(c, syscall.SIGHUP) + go func() { + for range c { + if err := sql_exporter.Reload(e, &configFile); err != nil { + klog.Error(err) + } + } + }() +} + +// startScrapeErrorsDropTicker starts a ticker that periodically drops scrape error metrics. +func startScrapeErrorsDropTicker(exporter sql_exporter.Exporter, interval model.Duration) { + if interval <= 0 { + return + } + + ticker := time.NewTicker(time.Duration(interval)) + klog.Warning("Started scrape_errors_total metrics drop ticker: ", interval) + go func() { + defer ticker.Stop() + for range ticker.C { + exporter.DropErrorMetrics() + } + }() +} diff --git a/config/global_config.go b/config/global_config.go index f1dad28f..adf6562d 100644 --- a/config/global_config.go +++ b/config/global_config.go @@ -9,12 +9,14 @@ import ( // GlobalConfig contains globally applicable defaults. type GlobalConfig struct { - MinInterval model.Duration `yaml:"min_interval" env:"MIN_INTERVAL"` // minimum interval between query executions, default is 0 - ScrapeTimeout model.Duration `yaml:"scrape_timeout" env:"SCRAPE_TIMEOUT"` // per-scrape timeout, global - TimeoutOffset model.Duration `yaml:"scrape_timeout_offset" env:"SCRAPE_TIMEOUT_OFFSET"` // offset to subtract from timeout in seconds - MaxConnLifetime time.Duration `yaml:"max_connection_lifetime" env:"MAX_CONNECTION_LIFETIME"` // maximum amount of time a connection may be reused to any one target - MaxConns int `yaml:"max_connections" env:"MAX_CONNECTIONS"` // maximum number of open connections to any one target - MaxIdleConns int `yaml:"max_idle_connections" env:"MAX_IDLE_CONNECTIONS"` // maximum number of idle connections to any one target + MinInterval model.Duration `yaml:"min_interval" env:"MIN_INTERVAL"` // minimum interval between query executions, default is 0 + ScrapeTimeout model.Duration `yaml:"scrape_timeout" env:"SCRAPE_TIMEOUT"` // per-scrape timeout, global + TimeoutOffset model.Duration `yaml:"scrape_timeout_offset" env:"SCRAPE_TIMEOUT_OFFSET"` // offset to subtract from timeout in seconds + ScrapeErrorDropInterval model.Duration `yaml:"scrape_error_drop_interval" env:"SCRAPE_ERROR_DROP_INTERVAL"` // interval to drop scrape errors from the error counter, default is 0 + MaxConnLifetime time.Duration `yaml:"max_connection_lifetime" env:"MAX_CONNECTION_LIFETIME"` // maximum amount of time a connection may be reused to any one target + + MaxConns int `yaml:"max_connections" env:"MAX_CONNECTIONS"` // maximum number of open connections to any one target + MaxIdleConns int `yaml:"max_idle_connections" env:"MAX_IDLE_CONNECTIONS"` // maximum number of idle connections to any one target // Catches all undefined fields and must be empty after parsing. XXX map[string]any `yaml:",inline" json:"-"` @@ -26,6 +28,8 @@ func (g *GlobalConfig) UnmarshalYAML(unmarshal func(any) error) error { g.MinInterval = model.Duration(0) // Default to 10 seconds, since Prometheus has a 10 second scrape timeout default. g.ScrapeTimeout = model.Duration(10 * time.Second) + // Default to 0 for scrape error drop interval. + g.ScrapeErrorDropInterval = model.Duration(0) // Default to .5 seconds. g.TimeoutOffset = model.Duration(500 * time.Millisecond) g.MaxConns = 3 diff --git a/documentation/sql_exporter.yml b/documentation/sql_exporter.yml index fad58429..a22bb9e7 100644 --- a/documentation/sql_exporter.yml +++ b/documentation/sql_exporter.yml @@ -13,6 +13,8 @@ global: # # Must be strictly positive. The default is 500ms. scrape_timeout_offset: 500ms + # Interval between dropping scrape_errors_total metric: by default (0s) metrics are persistent. + scrape_error_drop_interval: 0s # Minimum interval between collector runs: by default (0s) collectors are executed on every scrape. min_interval: 0s # Maximum number of open connections to any one target. Metric queries will run concurrently on multiple connections, diff --git a/exporter.go b/exporter.go index 4b3e8bbf..6625b861 100644 --- a/exporter.go +++ b/exporter.go @@ -33,6 +33,8 @@ type Exporter interface { UpdateTarget([]Target) // SetJobFilters sets the jobFilters field SetJobFilters([]string) + // DropErrorMetrics resets the scrape_errors_total metric + DropErrorMetrics() } type exporter struct { @@ -210,6 +212,12 @@ func (e *exporter) SetJobFilters(filters []string) { e.jobFilters = filters } +// DropErrorMetrics implements Exporter. +func (e *exporter) DropErrorMetrics() { + scrapeErrorsMetric.Reset() + klog.Info("Dropped scrape_errors_total metric") +} + // registerScrapeErrorMetric registers the metrics for the exporter itself. func registerScrapeErrorMetric() *prometheus.CounterVec { scrapeErrors := prometheus.NewCounterVec(prometheus.CounterOpts{ diff --git a/reload.go b/reload.go index 50fed899..48ac420d 100644 --- a/reload.go +++ b/reload.go @@ -47,7 +47,7 @@ func Reload(e Exporter, configFile *string) error { } func reloadTarget(e Exporter, nc, cc *cfg.Config) error { - klog.Warning("Recreating targets collectors...") + klog.Warning("Recreating target...") // We want to preserve DSN from the previous config revision to avoid any connection changes nc.Target.DSN = cc.Target.DSN @@ -63,7 +63,7 @@ func reloadTarget(e Exporter, nc, cc *cfg.Config) error { // Populate the target list e.UpdateTarget([]Target{target}) - klog.Warning("Collectors have been successfully reloaded for target") + klog.Warning("Collectors have been successfully updated for the target") return nil } @@ -98,6 +98,6 @@ func reloadJobs(e Exporter, nc, cc *cfg.Config) error { } e.UpdateTarget(targets) - klog.Warning("Query collectors have been successfully reloaded for jobs") + klog.Warning("Collectors have been successfully updated for the jobs") return nil } From 67031a95d62d9f2fcbfa7d8cde8f1bcdd4c820bc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 09:12:58 +0200 Subject: [PATCH 250/401] deps: bump github.com/prometheus/common from 0.53.0 to 0.55.0 (#556) Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.53.0 to 0.55.0. - [Release notes](https://github.com/prometheus/common/releases) - [Changelog](https://github.com/prometheus/common/blob/main/RELEASE.md) - [Commits](https://github.com/prometheus/common/compare/v0.53.0...v0.55.0) --- updated-dependencies: - dependency-name: github.com/prometheus/common dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 11 +++++------ go.sum | 26 ++++++++++---------------- 2 files changed, 15 insertions(+), 22 deletions(-) diff --git a/go.mod b/go.mod index 664df327..7b4a963d 100644 --- a/go.mod +++ b/go.mod @@ -16,13 +16,13 @@ require ( github.com/microsoft/go-mssqldb v1.7.2 github.com/prometheus/client_golang v1.19.1 github.com/prometheus/client_model v0.6.1 - github.com/prometheus/common v0.53.0 + github.com/prometheus/common v0.55.0 github.com/prometheus/exporter-toolkit v0.11.0 github.com/sethvargo/go-envconfig v1.0.3 github.com/snowflakedb/gosnowflake v1.10.1 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.23.1 - google.golang.org/protobuf v1.34.1 + google.golang.org/protobuf v1.34.2 gopkg.in/yaml.v3 v3.0.1 k8s.io/klog/v2 v2.70.1 ) @@ -76,7 +76,6 @@ require ( github.com/golang-jwt/jwt/v5 v5.2.1 // indirect github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 // indirect github.com/golang-sql/sqlexp v0.1.0 // indirect - github.com/golang/protobuf v1.5.3 // indirect github.com/google/flatbuffers v23.5.26+incompatible // indirect github.com/google/uuid v1.6.0 // indirect github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect @@ -90,13 +89,14 @@ require ( github.com/klauspost/cpuid/v2 v2.2.5 // indirect github.com/kylelemons/godebug v1.1.0 // indirect github.com/mtibben/percent v0.2.1 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect github.com/paulmach/orb v0.11.1 // indirect github.com/pierrec/lz4/v4 v4.1.21 // indirect github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/prometheus/procfs v0.12.0 // indirect + github.com/prometheus/procfs v0.15.1 // indirect github.com/segmentio/asm v1.2.0 // indirect github.com/shopspring/decimal v1.4.0 // indirect github.com/sirupsen/logrus v1.9.3 // indirect @@ -108,14 +108,13 @@ require ( golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.26.0 // indirect - golang.org/x/oauth2 v0.18.0 // indirect + golang.org/x/oauth2 v0.21.0 // indirect golang.org/x/sync v0.7.0 // indirect golang.org/x/sys v0.21.0 // indirect golang.org/x/term v0.21.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect - google.golang.org/appengine v1.6.7 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect howett.net/plist v0.0.0-20181124034731-591f970eefbb // indirect ) diff --git a/go.sum b/go.sum index 39a8c8a4..098c894f 100644 --- a/go.sum +++ b/go.sum @@ -112,10 +112,7 @@ github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0kt github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A= github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI= -github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/flatbuffers v23.5.26+incompatible h1:M9dgRyhJemaM4Sw8+66GHBu8ioaQmyPLg1b8VwK5WJg= github.com/google/flatbuffers v23.5.26+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= @@ -169,6 +166,8 @@ github.com/microsoft/go-mssqldb v1.7.2/go.mod h1:kOvZKUdrhhFQmxLZqbwUV0rHkNkZpth github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs= github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ibNBTZrns= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= @@ -189,13 +188,13 @@ github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQ github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.53.0 h1:U2pL9w9nmJwJDa4qqLQ3ZaePJ6ZTwt7cMD3AG3+aLCE= -github.com/prometheus/common v0.53.0/go.mod h1:BrxBKv3FWBIGXw89Mg1AeBq7FSyRzXWI3l3e7W3RN5U= +github.com/prometheus/common v0.55.0 h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G1dc= +github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8= github.com/prometheus/exporter-toolkit v0.11.0 h1:yNTsuZ0aNCNFQ3aFTD2uhPOvr4iD7fdBvKPAEGkNf+g= github.com/prometheus/exporter-toolkit v0.11.0/go.mod h1:BVnENhnNecpwoTLiABx7mrPB/OLRIgN74qlQbV+FK1Q= github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= -github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/segmentio/asm v1.2.0 h1:9BQrFxC+YOHJlTlHGkTrFWf59nbL3XnCoFLTwDCI7ys= @@ -251,15 +250,14 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= -golang.org/x/oauth2 v0.18.0 h1:09qnuIAgzdx1XplqJvW6CQqMCtGZykZWcXzPMPUusvI= -golang.org/x/oauth2 v0.18.0/go.mod h1:Wf7knwG0MPoWIMMBgFlEaSUDaKskp0dCfrlJRJXbBi8= +golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= +golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -284,7 +282,6 @@ golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9sn golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= @@ -304,13 +301,10 @@ golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3j golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= gonum.org/v1/gonum v0.12.0 h1:xKuo6hzt+gMav00meVPUlXwSdoEJP46BR+wdxQEFK2o= gonum.org/v1/gonum v0.12.0/go.mod h1:73TDxJfAAHeA8Mk9mf8NlIppyhQNo5GLTcYeqgo2lvY= -google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= -google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From 8523ddfd98cd3eb9b13476199ce485acd51e3085 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 09:14:39 +0200 Subject: [PATCH 251/401] deps: bump github.com/jackc/pgx/v5 from 5.5.5 to 5.6.0 (#552) Bumps [github.com/jackc/pgx/v5](https://github.com/jackc/pgx) from 5.5.5 to 5.6.0. - [Changelog](https://github.com/jackc/pgx/blob/master/CHANGELOG.md) - [Commits](https://github.com/jackc/pgx/compare/v5.5.5...v5.6.0) --- updated-dependencies: - dependency-name: github.com/jackc/pgx/v5 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 7b4a963d..8ba93885 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/aws/aws-sdk-go-v2/config v1.27.16 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.29.1 github.com/go-sql-driver/mysql v1.8.1 - github.com/jackc/pgx/v5 v5.5.5 + github.com/jackc/pgx/v5 v5.6.0 github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.9 github.com/microsoft/go-mssqldb v1.7.2 diff --git a/go.sum b/go.sum index 098c894f..ad9449ef 100644 --- a/go.sum +++ b/go.sum @@ -128,8 +128,8 @@ github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsI github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/Y25WS6cokEszi5g+S0QxI/d45PkRi7Nk= github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= -github.com/jackc/pgx/v5 v5.5.5 h1:amBjrZVmksIdNjxGW/IiIMzxMKZFelXbUoPNb+8sjQw= -github.com/jackc/pgx/v5 v5.5.5/go.mod h1:ez9gk+OAat140fv9ErkZDYFWmXLfV+++K0uAOiwgm1A= +github.com/jackc/pgx/v5 v5.6.0 h1:SWJzexBzPL5jb0GEsrPMLIsi/3jOo7RHlzTjcAeDrPY= +github.com/jackc/pgx/v5 v5.6.0/go.mod h1:DNZ/vlrUnhWCoFGxHAG8U2ljioxukquj7utPDgtQdTw= github.com/jackc/puddle/v2 v2.2.1 h1:RhxXJtFG022u4ibrCSMSiu5aOq1i77R3OHKNJj77OAk= github.com/jackc/puddle/v2 v2.2.1/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= From f32d8b1a76871eb23c9f8bcf479962bd10b82e32 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 09:14:56 +0200 Subject: [PATCH 252/401] deps: bump github.com/ClickHouse/clickhouse-go/v2 from 2.25.0 to 2.26.0 (#554) Bumps [github.com/ClickHouse/clickhouse-go/v2](https://github.com/ClickHouse/clickhouse-go) from 2.25.0 to 2.26.0. - [Release notes](https://github.com/ClickHouse/clickhouse-go/releases) - [Changelog](https://github.com/ClickHouse/clickhouse-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/ClickHouse/clickhouse-go/compare/v2.25.0...v2.26.0) --- updated-dependencies: - dependency-name: github.com/ClickHouse/clickhouse-go/v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 8ba93885..3c27474f 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.21.0 toolchain go1.21.9 require ( - github.com/ClickHouse/clickhouse-go/v2 v2.25.0 + github.com/ClickHouse/clickhouse-go/v2 v2.26.0 github.com/aws/aws-sdk-go-v2 v1.27.0 github.com/aws/aws-sdk-go-v2/config v1.27.16 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.29.1 diff --git a/go.sum b/go.sum index ad9449ef..5627a767 100644 --- a/go.sum +++ b/go.sum @@ -20,8 +20,8 @@ github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 h1:XHOnouVk1mx github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= github.com/ClickHouse/ch-go v0.61.5 h1:zwR8QbYI0tsMiEcze/uIMK+Tz1D3XZXLdNrlaOpeEI4= github.com/ClickHouse/ch-go v0.61.5/go.mod h1:s1LJW/F/LcFs5HJnuogFMta50kKDO0lf9zzfrbl0RQg= -github.com/ClickHouse/clickhouse-go/v2 v2.25.0 h1:rKscwqgQHzWBTZySZDcHKxgs0Ad+xFULfZvo26W5UlY= -github.com/ClickHouse/clickhouse-go/v2 v2.25.0/go.mod h1:iDTViXk2Fgvf1jn2dbJd1ys+fBkdD1UMRnXlwmhijhQ= +github.com/ClickHouse/clickhouse-go/v2 v2.26.0 h1:j4/y6NYaCcFkJwN/TU700ebW+nmsIy34RmUAAcZKy9w= +github.com/ClickHouse/clickhouse-go/v2 v2.26.0/go.mod h1:iDTViXk2Fgvf1jn2dbJd1ys+fBkdD1UMRnXlwmhijhQ= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c h1:RGWPOewvKIROun94nF7v2cua9qP+thov/7M50KEoeSU= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M= From bbe29a228aeadad489d0d02c6040babfb467ecbd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 10:34:47 +0200 Subject: [PATCH 253/401] deps: bump github.com/aws/aws-sdk-go-v2 from 1.27.0 to 1.30.1 (#555) Bumps [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) from 1.27.0 to 1.30.1. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.27.0...v1.30.1) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 3c27474f..1ea36ae6 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ toolchain go1.21.9 require ( github.com/ClickHouse/clickhouse-go/v2 v2.26.0 - github.com/aws/aws-sdk-go-v2 v1.27.0 + github.com/aws/aws-sdk-go-v2 v1.30.1 github.com/aws/aws-sdk-go-v2/config v1.27.16 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.29.1 github.com/go-sql-driver/mysql v1.8.1 @@ -56,7 +56,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/sso v1.20.9 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.3 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.28.10 // indirect - github.com/aws/smithy-go v1.20.2 // indirect + github.com/aws/smithy-go v1.20.3 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect diff --git a/go.sum b/go.sum index 5627a767..6c8402f1 100644 --- a/go.sum +++ b/go.sum @@ -28,8 +28,8 @@ github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1 github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY= github.com/apache/arrow/go/v15 v15.0.0 h1:1zZACWf85oEZY5/kd9dsQS7i+2G5zVQcbKTHgslqHNA= github.com/apache/arrow/go/v15 v15.0.0/go.mod h1:DGXsR3ajT524njufqf95822i+KTh+yea1jass9YXgjA= -github.com/aws/aws-sdk-go-v2 v1.27.0 h1:7bZWKoXhzI+mMR/HjdMx8ZCC5+6fY0lS5tr0bbgiLlo= -github.com/aws/aws-sdk-go-v2 v1.27.0/go.mod h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7BReUZ3jCXM= +github.com/aws/aws-sdk-go-v2 v1.30.1 h1:4y/5Dvfrhd1MxRDD77SrfsDaj8kUkkljU7XE83NPV+o= +github.com/aws/aws-sdk-go-v2 v1.30.1/go.mod h1:nIQjQVp5sfpQcTc9mPSr1B0PaWK5ByX9MOoDadSN4lc= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg= github.com/aws/aws-sdk-go-v2/config v1.27.16 h1:knpCuH7laFVGYTNd99Ns5t+8PuRjDn4HnnZK48csipM= @@ -66,8 +66,8 @@ github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.3 h1:Pav5q3cA260Zqez42T9UhIls github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.3/go.mod h1:9lmoVDVLz/yUZwLaQ676TK02fhCu4+PgRSmMaKR1ozk= github.com/aws/aws-sdk-go-v2/service/sts v1.28.10 h1:69tpbPED7jKPyzMcrwSvhWcJ9bPnZsZs18NT40JwM0g= github.com/aws/aws-sdk-go-v2/service/sts v1.28.10/go.mod h1:0Aqn1MnEuitqfsCNyKsdKLhDUOr4txD/g19EfiUqgws= -github.com/aws/smithy-go v1.20.2 h1:tbp628ireGtzcHDDmLT/6ADHidqnwgF57XOXZe6tp4Q= -github.com/aws/smithy-go v1.20.2/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E= +github.com/aws/smithy-go v1.20.3 h1:ryHwveWzPV5BIof6fyDvor6V3iUL7nTfiTKXHiW05nE= +github.com/aws/smithy-go v1.20.3/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= From 62dc4902919af7ddf49523e56b266bb04f04b0cc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 10:42:12 +0200 Subject: [PATCH 254/401] deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager from 1.29.1 to 1.32.1 (#558) deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager Bumps [github.com/aws/aws-sdk-go-v2/service/secretsmanager](https://github.com/aws/aws-sdk-go-v2) from 1.29.1 to 1.32.1. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.29.1...service/emr/v1.32.1) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/service/secretsmanager dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index 1ea36ae6..8e048d4f 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/ClickHouse/clickhouse-go/v2 v2.26.0 github.com/aws/aws-sdk-go-v2 v1.30.1 github.com/aws/aws-sdk-go-v2/config v1.27.16 - github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.29.1 + github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.1 github.com/go-sql-driver/mysql v1.8.1 github.com/jackc/pgx/v5 v5.6.0 github.com/kardianos/minwinsvc v1.0.2 @@ -44,8 +44,8 @@ require ( github.com/aws/aws-sdk-go-v2/credentials v1.17.16 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.3 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.7 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.7 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.13 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.13 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 // indirect diff --git a/go.sum b/go.sum index 6c8402f1..69805a40 100644 --- a/go.sum +++ b/go.sum @@ -40,10 +40,10 @@ github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.3 h1:dQLK4TjtnlRGb0czOht2Cev github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.3/go.mod h1:TL79f2P6+8Q7dTsILpiVST+AL9lkF6PPGI167Ny0Cjw= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 h1:7Zwtt/lP3KNRkeZre7soMELMGNoBrutx8nobg1jKWmo= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15/go.mod h1:436h2adoHb57yd+8W+gYPrrA9U/R/SuAuOO42Ushzhw= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.7 h1:lf/8VTF2cM+N4SLzaYJERKEWAXq8MOMpZfU6wEPWsPk= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.7/go.mod h1:4SjkU7QiqK2M9oozyMzfZ/23LmUY+h3oFqhdeP5OMiI= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.7 h1:4OYVp0705xu8yjdyoWix0r9wPIRXnIzzOoUpQVHIJ/g= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.7/go.mod h1:vd7ESTEvI76T2Na050gODNmNU7+OyKrIKroYTu4ABiI= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.13 h1:5SAoZ4jYpGH4721ZNoS1znQrhOfZinOhc4XuTXx/nVc= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.13/go.mod h1:+rdA6ZLpaSeM7tSg/B0IEDinCIBJGmW8rKDFkYpP04g= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.13 h1:WIijqeaAO7TYFLbhsZmi2rgLEAtWOC1LhxCAVTJlSKw= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.13/go.mod h1:i+kbfa76PQbWw/ULoWnp51EYVWH4ENln76fLQE3lXT8= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 h1:81KE7vaZzrl7yHBYHVEzYB8sypz11NMOZ40YlWvPxsU= @@ -58,8 +58,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 h1:f9RyWNtS8oH7cZ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5/go.mod h1:h5CoMZV2VF297/VLhRhO1WF+XYWOzXo+4HsObA4HjBQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 h1:6cnno47Me9bRykw9AEv9zkXE+5or7jz8TsskTTccbgc= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1/go.mod h1:qmdkIIAC+GCLASF7R2whgNrJADz0QZPX+Seiw/i4S3o= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.29.1 h1:NSWsFzdHN41mJ5I/DOFzxgkKSYNHQADHn7Mu+lU/AKw= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.29.1/go.mod h1:5mMk0DgUgaHlcqtN65fNyZI0ZDX3i9Cw+nwq75HKB3U= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.1 h1:ZoYRD8IJqPkzjBnpokiMNO6L/DQprtpVpD6k0YSaF5U= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.1/go.mod h1:GlRarZzIMl9VDi0mLQt+qQOuEkVFPnTkkjyugV1uVa8= github.com/aws/aws-sdk-go-v2/service/sso v1.20.9 h1:aD7AGQhvPuAxlSUfo0CWU7s6FpkbyykMhGYMvlqTjVs= github.com/aws/aws-sdk-go-v2/service/sso v1.20.9/go.mod h1:c1qtZUWtygI6ZdvKppzCSXsDOq5I4luJPZ0Ud3juFCA= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.3 h1:Pav5q3cA260Zqez42T9UhIlsd9QeypszRPwC9LdSSsQ= From e954af51efba097abdb9fd86dba40079597d7035 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 10:49:34 +0200 Subject: [PATCH 255/401] deps: bump github.com/aws/aws-sdk-go-v2/config from 1.27.16 to 1.27.23 (#557) Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.27.16 to 1.27.23. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.27.16...config/v1.27.23) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/config dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 16 ++++++++-------- go.sum | 32 ++++++++++++++++---------------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/go.mod b/go.mod index 8e048d4f..d58ce438 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ toolchain go1.21.9 require ( github.com/ClickHouse/clickhouse-go/v2 v2.26.0 github.com/aws/aws-sdk-go-v2 v1.30.1 - github.com/aws/aws-sdk-go-v2/config v1.27.16 + github.com/aws/aws-sdk-go-v2/config v1.27.23 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.1 github.com/go-sql-driver/mysql v1.8.1 github.com/jackc/pgx/v5 v5.6.0 @@ -41,21 +41,21 @@ require ( github.com/andybalholm/brotli v1.1.0 // indirect github.com/apache/arrow/go/v15 v15.0.0 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.16 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.3 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.23 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.9 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.13 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.13 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.3 // indirect github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.9 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.15 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 // indirect github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.20.9 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.3 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.28.10 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.22.1 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.1 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.30.1 // indirect github.com/aws/smithy-go v1.20.3 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect diff --git a/go.sum b/go.sum index 69805a40..9de1ea02 100644 --- a/go.sum +++ b/go.sum @@ -32,12 +32,12 @@ github.com/aws/aws-sdk-go-v2 v1.30.1 h1:4y/5Dvfrhd1MxRDD77SrfsDaj8kUkkljU7XE83NP github.com/aws/aws-sdk-go-v2 v1.30.1/go.mod h1:nIQjQVp5sfpQcTc9mPSr1B0PaWK5ByX9MOoDadSN4lc= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg= -github.com/aws/aws-sdk-go-v2/config v1.27.16 h1:knpCuH7laFVGYTNd99Ns5t+8PuRjDn4HnnZK48csipM= -github.com/aws/aws-sdk-go-v2/config v1.27.16/go.mod h1:vutqgRhDUktwSge3hrC3nkuirzkJ4E/mLj5GvI0BQas= -github.com/aws/aws-sdk-go-v2/credentials v1.17.16 h1:7d2QxY83uYl0l58ceyiSpxg9bSbStqBC6BeEeHEchwo= -github.com/aws/aws-sdk-go-v2/credentials v1.17.16/go.mod h1:Ae6li/6Yc6eMzysRL2BXlPYvnrLLBg3D11/AmOjw50k= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.3 h1:dQLK4TjtnlRGb0czOht2CevZ5l6RSyRWAnKeGd7VAFE= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.3/go.mod h1:TL79f2P6+8Q7dTsILpiVST+AL9lkF6PPGI167Ny0Cjw= +github.com/aws/aws-sdk-go-v2/config v1.27.23 h1:Cr/gJEa9NAS7CDAjbnB7tHYb3aLZI2gVggfmSAasDac= +github.com/aws/aws-sdk-go-v2/config v1.27.23/go.mod h1:WMMYHqLCFu5LH05mFOF5tsq1PGEMfKbu083VKqLCd0o= +github.com/aws/aws-sdk-go-v2/credentials v1.17.23 h1:G1CfmLVoO2TdQ8z9dW+JBc/r8+MqyPQhXCafNZcXVZo= +github.com/aws/aws-sdk-go-v2/credentials v1.17.23/go.mod h1:V/DvSURn6kKgcuKEk4qwSwb/fZ2d++FFARtWSbXnLqY= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.9 h1:Aznqksmd6Rfv2HQN9cpqIV/lQRMaIpJkLLaJ1ZI76no= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.9/go.mod h1:WQr3MY7AxGNxaqAtsDWn+fBxmd4XvLkzeqQ8P1VM0/w= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 h1:7Zwtt/lP3KNRkeZre7soMELMGNoBrutx8nobg1jKWmo= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15/go.mod h1:436h2adoHb57yd+8W+gYPrrA9U/R/SuAuOO42Ushzhw= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.13 h1:5SAoZ4jYpGH4721ZNoS1znQrhOfZinOhc4XuTXx/nVc= @@ -48,24 +48,24 @@ github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7 github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 h1:81KE7vaZzrl7yHBYHVEzYB8sypz11NMOZ40YlWvPxsU= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5/go.mod h1:LIt2rg7Mcgn09Ygbdh/RdIm0rQ+3BNkbP1gyVMFtRK0= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 h1:Ji0DY1xUsUr3I8cHps0G+XM3WWU16lP6yG8qu1GAZAs= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2/go.mod h1:5CsjAbs3NlGQyZNFACh+zztPDI7fU6eW9QsxjfnuBKg= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.3 h1:dT3MqvGhSoaIhRseqw2I0yH81l7wiR2vjs57O51EAm8= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.3/go.mod h1:GlAeCkHwugxdHaueRr4nhPuY+WW+gR8UjlcqzPr1SPI= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 h1:ZMeFZ5yk+Ek+jNr1+uwCd2tG89t6oTS5yVWpa6yy2es= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7/go.mod h1:mxV05U+4JiHqIpGqqYXOHLPKUC6bDXC44bsUhNjOEwY= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.9 h1:Wx0rlZoEJR7JwlSZcHnEa7CNjrSIyVxMFWGAaXy4fJY= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.9/go.mod h1:aVMHdE0aHO3v+f/iw01fmXV/5DbfQ3Bi9nN7nd9bE9Y= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.15 h1:I9zMeF107l0rJrpnHpjEiiTSCKYAIw8mALiXcPsGBiA= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.15/go.mod h1:9xWJ3Q/S6Ojusz1UIkfycgD1mGirJfLLKqq3LPT7WN8= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 h1:f9RyWNtS8oH7cZlbn+/JNPpjUk5+5fLd5lM9M0i49Ys= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5/go.mod h1:h5CoMZV2VF297/VLhRhO1WF+XYWOzXo+4HsObA4HjBQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 h1:6cnno47Me9bRykw9AEv9zkXE+5or7jz8TsskTTccbgc= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1/go.mod h1:qmdkIIAC+GCLASF7R2whgNrJADz0QZPX+Seiw/i4S3o= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.1 h1:ZoYRD8IJqPkzjBnpokiMNO6L/DQprtpVpD6k0YSaF5U= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.1/go.mod h1:GlRarZzIMl9VDi0mLQt+qQOuEkVFPnTkkjyugV1uVa8= -github.com/aws/aws-sdk-go-v2/service/sso v1.20.9 h1:aD7AGQhvPuAxlSUfo0CWU7s6FpkbyykMhGYMvlqTjVs= -github.com/aws/aws-sdk-go-v2/service/sso v1.20.9/go.mod h1:c1qtZUWtygI6ZdvKppzCSXsDOq5I4luJPZ0Ud3juFCA= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.3 h1:Pav5q3cA260Zqez42T9UhIlsd9QeypszRPwC9LdSSsQ= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.3/go.mod h1:9lmoVDVLz/yUZwLaQ676TK02fhCu4+PgRSmMaKR1ozk= -github.com/aws/aws-sdk-go-v2/service/sts v1.28.10 h1:69tpbPED7jKPyzMcrwSvhWcJ9bPnZsZs18NT40JwM0g= -github.com/aws/aws-sdk-go-v2/service/sts v1.28.10/go.mod h1:0Aqn1MnEuitqfsCNyKsdKLhDUOr4txD/g19EfiUqgws= +github.com/aws/aws-sdk-go-v2/service/sso v1.22.1 h1:p1GahKIjyMDZtiKoIn0/jAj/TkMzfzndDv5+zi2Mhgc= +github.com/aws/aws-sdk-go-v2/service/sso v1.22.1/go.mod h1:/vWdhoIoYA5hYoPZ6fm7Sv4d8701PiG5VKe8/pPJL60= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.1 h1:lCEv9f8f+zJ8kcFeAjRZsekLd/x5SAm96Cva+VbUdo8= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.1/go.mod h1:xyFHA4zGxgYkdD73VeezHt3vSKEG9EmFnGwoKlP00u4= +github.com/aws/aws-sdk-go-v2/service/sts v1.30.1 h1:+woJ607dllHJQtsnJLi52ycuqHMwlW+Wqm2Ppsfp4nQ= +github.com/aws/aws-sdk-go-v2/service/sts v1.30.1/go.mod h1:jiNR3JqT15Dm+QWq2SRgh0x0bCNSRP2L25+CqPNpJlQ= github.com/aws/smithy-go v1.20.3 h1:ryHwveWzPV5BIof6fyDvor6V3iUL7nTfiTKXHiW05nE= github.com/aws/smithy-go v1.20.3/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= From 784e7d2de94aa09c2b2f55e236fad2c1c810e22f Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Mon, 8 Jul 2024 22:08:47 +0200 Subject: [PATCH 256/401] refactor: add log.format param, deprecate log.json flag (#561) --- cmd/sql_exporter/main.go | 46 ++++++++++++++++++++++++++++------------ go.mod | 2 +- 2 files changed, 33 insertions(+), 15 deletions(-) diff --git a/cmd/sql_exporter/main.go b/cmd/sql_exporter/main.go index e2424cb6..882df2a2 100644 --- a/cmd/sql_exporter/main.go +++ b/cmd/sql_exporter/main.go @@ -12,6 +12,7 @@ import ( "github.com/burningalchemist/sql_exporter" cfg "github.com/burningalchemist/sql_exporter/config" + "github.com/go-kit/log" _ "github.com/kardianos/minwinsvc" "github.com/prometheus/client_golang/prometheus" info "github.com/prometheus/client_golang/prometheus/collectors/version" @@ -37,7 +38,8 @@ var ( enableReload = flag.Bool("web.enable-reload", false, "Enable reload collector data handler") webConfigFile = flag.String("web.config.file", "", "[EXPERIMENTAL] TLS/BasicAuth configuration file path") configFile = flag.String("config.file", "sql_exporter.yml", "SQL Exporter configuration file path") - logFormatJSON = flag.Bool("log.json", false, "Set log output format to JSON") + logFormatJSON = flag.Bool("log.json", false, "[DEPRECATED] Set log output format to JSON") + logFormat = flag.String("log.format", "logfmt", "Set log output format") logLevel = flag.String("log.level", "info", "Set log level") ) @@ -64,23 +66,11 @@ func main() { } // Setup logging. - promlogConfig := &promlog.Config{} - promlogConfig.Level = &promlog.AllowedLevel{} - err := promlogConfig.Level.Set(*logLevel) + logger, err := setupLogging(*logLevel, *logFormat, *logFormatJSON) if err != nil { fmt.Printf("Error initializing exporter: %s\n", err) os.Exit(1) } - if *logFormatJSON { - promlogConfig.Format = &promlog.AllowedFormat{} - _ = promlogConfig.Format.Set("json") - } - - // Overriding the default klog with our go-kit klog implementation. - // Thus we need to pass it our go-kit logger object. - logger := promlog.New(promlogConfig) - klog.SetLogger(logger) - klog.ClampLevel(debugMaxLevel) // Override the config.file default with the SQLEXPORTER_CONFIG environment variable if set. if val, ok := os.LookupEnv(cfg.EnvConfigFile); ok { @@ -160,3 +150,31 @@ func startScrapeErrorsDropTicker(exporter sql_exporter.Exporter, interval model. } }() } + +// setupLogging configures and initializes the logging system. +func setupLogging(logLevel, logFormat string, logFormatJSON bool) (log.Logger, error) { + promlogConfig := &promlog.Config{ + Level: &promlog.AllowedLevel{}, + Format: &promlog.AllowedFormat{}, + } + + if err := promlogConfig.Level.Set(logLevel); err != nil { + return nil, err + } + + // Override log format if JSON is specified. + finalLogFormat := logFormat + if logFormatJSON { + fmt.Print("Warning: The flag --log.json is deprecated and will be removed in a future release. Please use --log.format=json instead\n") + finalLogFormat = "json" + } + if err := promlogConfig.Format.Set(finalLogFormat); err != nil { + return nil, err + } + // Overriding the default klog with our go-kit klog implementation. + logger := promlog.New(promlogConfig) + klog.SetLogger(logger) + klog.ClampLevel(debugMaxLevel) + + return logger, nil +} diff --git a/go.mod b/go.mod index d58ce438..2902d594 100644 --- a/go.mod +++ b/go.mod @@ -9,6 +9,7 @@ require ( github.com/aws/aws-sdk-go-v2 v1.30.1 github.com/aws/aws-sdk-go-v2/config v1.27.23 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.1 + github.com/go-kit/log v0.2.1 github.com/go-sql-driver/mysql v1.8.1 github.com/jackc/pgx/v5 v5.6.0 github.com/kardianos/minwinsvc v1.0.2 @@ -68,7 +69,6 @@ require ( github.com/gabriel-vasile/mimetype v1.4.2 // indirect github.com/go-faster/city v1.0.1 // indirect github.com/go-faster/errors v0.7.1 // indirect - github.com/go-kit/log v0.2.1 // indirect github.com/go-logfmt/logfmt v0.5.1 // indirect github.com/go-logr/logr v1.4.1 // indirect github.com/goccy/go-json v0.10.2 // indirect From cb883e06441c462b41295361d6b71623bc957188 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Sun, 7 Jul 2024 10:03:38 +0200 Subject: [PATCH 257/401] Bump up version to 0.15.0 (#560) --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 3393b5fd..a5510516 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.14.4 +0.15.0 From e716263290712b43ae9218bf5d1cbad0f23cc08d Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Tue, 9 Jul 2024 08:50:15 +0200 Subject: [PATCH 258/401] Bump up helm chart to 0.6.0 (#562) --- helm/Chart.yaml | 4 ++-- helm/README.md | 5 +++-- helm/values.yaml | 2 ++ 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index a99f61a7..d225dc85 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: sql-exporter description: Database-agnostic SQL exporter for Prometheus type: application -version: 0.5.1 -appVersion: 0.14.4 +version: 0.6.0 +appVersion: 0.15.0 keywords: - exporter - servicemonitor diff --git a/helm/README.md b/helm/README.md index e74b60d1..68f96534 100644 --- a/helm/README.md +++ b/helm/README.md @@ -1,6 +1,6 @@ # sql-exporter -![Version: 0.5.0](https://img.shields.io/badge/Version-0.5.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.14.3](https://img.shields.io/badge/AppVersion-0.14.3-informational?style=flat-square) +![Version: 0.6.0](https://img.shields.io/badge/Version-0.6.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.15.0](https://img.shields.io/badge/AppVersion-0.15.0-informational?style=flat-square) Database-agnostic SQL exporter for Prometheus @@ -40,7 +40,7 @@ helm install sql_exporter/sql-exporter | service.labels | object | `{}` | Service labels | | service.annotations | object | `{}` | Service annotations | | extraContainers | object | `{}` | Arbitrary sidecar containers list | -| serviceAccount.create | bool | `true` | Specifies whether a Service Account should be created, defaults to "sql-exporter" unless overriden. Check values.yaml for all the available parameters | +| serviceAccount.create | bool | `true` | Specifies whether a Service Account should be created, creates "sql-exporter" service account if true, unless overriden. Otherwise, set to `default` if false, and custom service account name is not provided. Check all the available parameters. | | serviceAccount.annotations | object | `{}` | Annotations to add to the Service Account | | resources | object | `{}` | Resource limits and requests for the application controller pods | | podLabels | object | `{}` | Pod labels | @@ -64,6 +64,7 @@ helm install sql_exporter/sql-exporter |-----|------|---------|-------------| | config.global.scrape_timeout | string | `"10s"` | Scrape timeout | | config.global.scrape_timeout_offset | string | `"500ms"` | Scrape timeout offset. Must be strictly positive. | +| config.global.scrape_error_drop_interval | string | `"0s"` | Interval between dropping scrape_errors_total metric: by default the metric is persistent. | | config.global.min_interval | string | `"0s"` | Minimum interval between collector runs. | | config.global.max_connections | int | `3` | Number of open connections. | | config.global.max_idle_connections | int | `3` | Number of idle connections. | diff --git a/helm/values.yaml b/helm/values.yaml index a6981a29..28fe0ff7 100644 --- a/helm/values.yaml +++ b/helm/values.yaml @@ -113,6 +113,8 @@ config: scrape_timeout: 10s # -- Scrape timeout offset. Must be strictly positive. scrape_timeout_offset: 500ms + # -- Interval between dropping scrape_errors_total metric: by default the metric is persistent. + scrape_error_drop_interval: 0s # -- Minimum interval between collector runs. min_interval: 0s # -- Number of open connections. From 8ce8744999acae483d96786420b82e439c0f431e Mon Sep 17 00:00:00 2001 From: Sam Nguyen <118077+dtjm@users.noreply.github.com> Date: Fri, 19 Jul 2024 08:53:12 -0700 Subject: [PATCH 259/401] fix(helm): ServiceMonitor namespace override (#563) * fix issue with ServiceMonitor namespace * update values.yaml with serviceMonitor.namespace * bump version https://github.com/burningalchemist/sql_exporter/actions/runs/10002245265/job/27649175837#step:9:34 * run `make gen_docs` --- helm/Chart.yaml | 2 +- helm/README.md | 3 ++- helm/templates/servicemonitor.yaml | 4 ++++ helm/values.yaml | 2 ++ 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index d225dc85..2f7fb38e 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: sql-exporter description: Database-agnostic SQL exporter for Prometheus type: application -version: 0.6.0 +version: 0.6.1 appVersion: 0.15.0 keywords: - exporter diff --git a/helm/README.md b/helm/README.md index 68f96534..0e1ad22a 100644 --- a/helm/README.md +++ b/helm/README.md @@ -1,6 +1,6 @@ # sql-exporter -![Version: 0.6.0](https://img.shields.io/badge/Version-0.6.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.15.0](https://img.shields.io/badge/AppVersion-0.15.0-informational?style=flat-square) +![Version: 0.6.1](https://img.shields.io/badge/Version-0.6.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.15.0](https://img.shields.io/badge/AppVersion-0.15.0-informational?style=flat-square) Database-agnostic SQL exporter for Prometheus @@ -56,6 +56,7 @@ helm install sql_exporter/sql-exporter | serviceMonitor.interval | string | `"15s"` | ServiceMonitor interval | | serviceMonitor.path | string | `"/metrics"` | ServiceMonitor path | | serviceMonitor.metricRelabelings | object | `{}` | ServiceMonitor metric relabelings | +| serviceMonitor.namespace | string | `nil` | ServiceMonitor namespace override (default is .Release.Namespace) | | serviceMonitor.scrapeTimeout | string | `nil` | ServiceMonitor scrape timeout | ### Configuration diff --git a/helm/templates/servicemonitor.yaml b/helm/templates/servicemonitor.yaml index 47af3bc1..c7f69935 100644 --- a/helm/templates/servicemonitor.yaml +++ b/helm/templates/servicemonitor.yaml @@ -34,5 +34,9 @@ spec: {{- end }} namespaceSelector: matchNames: + {{- if .Values.serviceMonitor.namespace }} + - {{ .Values.serviceMonitor.namespace }} + {{- else }} - {{ .Release.Namespace }} + {{- end }} {{- end }} diff --git a/helm/values.yaml b/helm/values.yaml index 28fe0ff7..ddf1c4a5 100644 --- a/helm/values.yaml +++ b/helm/values.yaml @@ -79,6 +79,8 @@ serviceMonitor: # scrapeTimeout: 10s # -- ServiceMonitor metric relabelings metricRelabelings: {} + # -- ServiceMonitor namespace override (default is .Release.Namespace) + namespace: ~ # Additional env variables # - kind should be either Secret or ConfigMap # - name is the name of the Secret or ConfigMap that should be used From 1a9b416902379328e017cadc4b5e0ea99d44c04b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 2 Aug 2024 08:30:12 +0200 Subject: [PATCH 260/401] deps: bump github.com/snowflakedb/gosnowflake from 1.10.1 to 1.11.0 (#567) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 2902d594..78fee87d 100644 --- a/go.mod +++ b/go.mod @@ -20,7 +20,7 @@ require ( github.com/prometheus/common v0.55.0 github.com/prometheus/exporter-toolkit v0.11.0 github.com/sethvargo/go-envconfig v1.0.3 - github.com/snowflakedb/gosnowflake v1.10.1 + github.com/snowflakedb/gosnowflake v1.11.0 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.23.1 google.golang.org/protobuf v1.34.2 diff --git a/go.sum b/go.sum index 9de1ea02..0685fc00 100644 --- a/go.sum +++ b/go.sum @@ -207,8 +207,8 @@ github.com/simonpasquier/klog-gokit/v3 v3.4.0 h1:2eD2INbzUHuGNynPP86BCB8H6Lwfp6w github.com/simonpasquier/klog-gokit/v3 v3.4.0/go.mod h1:RREVB5Cc6yYHsweRfhUyM1ZP+Odb8ehxLfY8jaiqvjg= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/snowflakedb/gosnowflake v1.10.1 h1:VGeQxsQj5s3hP0cRmtNYozhUvs2Y7Reu5Pk5pKuRGpI= -github.com/snowflakedb/gosnowflake v1.10.1/go.mod h1:hvc58mU03qg78mSz5z17/qnzI56hOdYYK2txWbM0hN0= +github.com/snowflakedb/gosnowflake v1.11.0 h1:qyqunGCVyq/Qyx40KQT+6sJ1CAGuuG2qv3WiCTLTctI= +github.com/snowflakedb/gosnowflake v1.11.0/go.mod h1:WFe+8mpsapDaQjHX6BqJBKtfQCGlGD3lHKeDsKfpx2A= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= From bdb5600e4ef42573811c66bfc0474dd88aef5867 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 2 Aug 2024 08:31:15 +0200 Subject: [PATCH 261/401] deps: bump github.com/ClickHouse/clickhouse-go/v2 from 2.26.0 to 2.27.0 (#569) --- go.mod | 10 +++++----- go.sum | 20 ++++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/go.mod b/go.mod index 78fee87d..f28d5f6a 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.21.0 toolchain go1.21.9 require ( - github.com/ClickHouse/clickhouse-go/v2 v2.26.0 + github.com/ClickHouse/clickhouse-go/v2 v2.27.0 github.com/aws/aws-sdk-go-v2 v1.30.1 github.com/aws/aws-sdk-go-v2/config v1.27.23 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.1 @@ -104,14 +104,14 @@ require ( github.com/zeebo/xxh3 v1.0.2 // indirect go.opentelemetry.io/otel v1.26.0 // indirect go.opentelemetry.io/otel/trace v1.26.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.25.0 // indirect golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect golang.org/x/mod v0.17.0 // indirect - golang.org/x/net v0.26.0 // indirect + golang.org/x/net v0.27.0 // indirect golang.org/x/oauth2 v0.21.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect diff --git a/go.sum b/go.sum index 0685fc00..fe9119b2 100644 --- a/go.sum +++ b/go.sum @@ -20,8 +20,8 @@ github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 h1:XHOnouVk1mx github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= github.com/ClickHouse/ch-go v0.61.5 h1:zwR8QbYI0tsMiEcze/uIMK+Tz1D3XZXLdNrlaOpeEI4= github.com/ClickHouse/ch-go v0.61.5/go.mod h1:s1LJW/F/LcFs5HJnuogFMta50kKDO0lf9zzfrbl0RQg= -github.com/ClickHouse/clickhouse-go/v2 v2.26.0 h1:j4/y6NYaCcFkJwN/TU700ebW+nmsIy34RmUAAcZKy9w= -github.com/ClickHouse/clickhouse-go/v2 v2.26.0/go.mod h1:iDTViXk2Fgvf1jn2dbJd1ys+fBkdD1UMRnXlwmhijhQ= +github.com/ClickHouse/clickhouse-go/v2 v2.27.0 h1:EquJUy8KWgY1ELMmN1gCULncbqU72fN8eYd8qmkp/1g= +github.com/ClickHouse/clickhouse-go/v2 v2.27.0/go.mod h1:XvcaX7ai9T9si83rZ0cB3y2upq9AYMwdj16Trqm+sPg= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c h1:RGWPOewvKIROun94nF7v2cua9qP+thov/7M50KEoeSU= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M= @@ -241,8 +241,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI= golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -254,8 +254,8 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= -golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= +golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= +golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -276,11 +276,11 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= From 193dc7d423a057cd8d87905abe32b891501e6051 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 2 Aug 2024 08:31:53 +0200 Subject: [PATCH 262/401] deps: bump github.com/sethvargo/go-envconfig from 1.0.3 to 1.1.0 (#568) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index f28d5f6a..7d96837b 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/prometheus/client_model v0.6.1 github.com/prometheus/common v0.55.0 github.com/prometheus/exporter-toolkit v0.11.0 - github.com/sethvargo/go-envconfig v1.0.3 + github.com/sethvargo/go-envconfig v1.1.0 github.com/snowflakedb/gosnowflake v1.11.0 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.23.1 diff --git a/go.sum b/go.sum index fe9119b2..44473f1b 100644 --- a/go.sum +++ b/go.sum @@ -199,8 +199,8 @@ github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/segmentio/asm v1.2.0 h1:9BQrFxC+YOHJlTlHGkTrFWf59nbL3XnCoFLTwDCI7ys= github.com/segmentio/asm v1.2.0/go.mod h1:BqMnlJP91P8d+4ibuonYZw9mfnzI9HfxselHZr5aAcs= -github.com/sethvargo/go-envconfig v1.0.3 h1:ZDxFGT1M7RPX0wgDOCdZMidrEB+NrayYr6fL0/+pk4I= -github.com/sethvargo/go-envconfig v1.0.3/go.mod h1:JLd0KFWQYzyENqnEPWWZ49i4vzZo/6nRidxI8YvGiHw= +github.com/sethvargo/go-envconfig v1.1.0 h1:cWZiJxeTm7AlCvzGXrEXaSTCNgip5oJepekh/BOQuog= +github.com/sethvargo/go-envconfig v1.1.0/go.mod h1:JLd0KFWQYzyENqnEPWWZ49i4vzZo/6nRidxI8YvGiHw= github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k= github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME= github.com/simonpasquier/klog-gokit/v3 v3.4.0 h1:2eD2INbzUHuGNynPP86BCB8H6Lwfp6wlkOcuyTr3VWM= From 9ee7d15dd5c03ee4a5eb57cd026cde07bee1478d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 2 Aug 2024 09:07:41 +0200 Subject: [PATCH 263/401] deps: bump github.com/aws/aws-sdk-go-v2/config from 1.27.23 to 1.27.27 (#570) Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.27.23 to 1.27.27. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.27.23...config/v1.27.27) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/config dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 21 ++++++++++----------- go.sum | 45 ++++++++++++++++++++------------------------- 2 files changed, 30 insertions(+), 36 deletions(-) diff --git a/go.mod b/go.mod index 7d96837b..4aa94947 100644 --- a/go.mod +++ b/go.mod @@ -6,8 +6,8 @@ toolchain go1.21.9 require ( github.com/ClickHouse/clickhouse-go/v2 v2.27.0 - github.com/aws/aws-sdk-go-v2 v1.30.1 - github.com/aws/aws-sdk-go-v2/config v1.27.23 + github.com/aws/aws-sdk-go-v2 v1.30.3 + github.com/aws/aws-sdk-go-v2/config v1.27.27 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.1 github.com/go-kit/log v0.2.1 github.com/go-sql-driver/mysql v1.8.1 @@ -42,21 +42,21 @@ require ( github.com/andybalholm/brotli v1.1.0 // indirect github.com/apache/arrow/go/v15 v15.0.0 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.23 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.9 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.27 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.11 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.13 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.13 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.15 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.15 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.3 // indirect github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.15 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.17 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 // indirect github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.22.1 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.1 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.30.1 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.22.4 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.4 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.30.3 // indirect github.com/aws/smithy-go v1.20.3 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect @@ -82,7 +82,6 @@ require ( github.com/jackc/pgpassfile v1.0.0 // indirect github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect github.com/jackc/puddle/v2 v2.2.1 // indirect - github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 // indirect github.com/jpillora/backoff v1.0.0 // indirect github.com/klauspost/compress v1.17.7 // indirect diff --git a/go.sum b/go.sum index 44473f1b..78a7fdd9 100644 --- a/go.sum +++ b/go.sum @@ -28,22 +28,22 @@ github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1 github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY= github.com/apache/arrow/go/v15 v15.0.0 h1:1zZACWf85oEZY5/kd9dsQS7i+2G5zVQcbKTHgslqHNA= github.com/apache/arrow/go/v15 v15.0.0/go.mod h1:DGXsR3ajT524njufqf95822i+KTh+yea1jass9YXgjA= -github.com/aws/aws-sdk-go-v2 v1.30.1 h1:4y/5Dvfrhd1MxRDD77SrfsDaj8kUkkljU7XE83NPV+o= -github.com/aws/aws-sdk-go-v2 v1.30.1/go.mod h1:nIQjQVp5sfpQcTc9mPSr1B0PaWK5ByX9MOoDadSN4lc= +github.com/aws/aws-sdk-go-v2 v1.30.3 h1:jUeBtG0Ih+ZIFH0F4UkmL9w3cSpaMv9tYYDbzILP8dY= +github.com/aws/aws-sdk-go-v2 v1.30.3/go.mod h1:nIQjQVp5sfpQcTc9mPSr1B0PaWK5ByX9MOoDadSN4lc= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg= -github.com/aws/aws-sdk-go-v2/config v1.27.23 h1:Cr/gJEa9NAS7CDAjbnB7tHYb3aLZI2gVggfmSAasDac= -github.com/aws/aws-sdk-go-v2/config v1.27.23/go.mod h1:WMMYHqLCFu5LH05mFOF5tsq1PGEMfKbu083VKqLCd0o= -github.com/aws/aws-sdk-go-v2/credentials v1.17.23 h1:G1CfmLVoO2TdQ8z9dW+JBc/r8+MqyPQhXCafNZcXVZo= -github.com/aws/aws-sdk-go-v2/credentials v1.17.23/go.mod h1:V/DvSURn6kKgcuKEk4qwSwb/fZ2d++FFARtWSbXnLqY= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.9 h1:Aznqksmd6Rfv2HQN9cpqIV/lQRMaIpJkLLaJ1ZI76no= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.9/go.mod h1:WQr3MY7AxGNxaqAtsDWn+fBxmd4XvLkzeqQ8P1VM0/w= +github.com/aws/aws-sdk-go-v2/config v1.27.27 h1:HdqgGt1OAP0HkEDDShEl0oSYa9ZZBSOmKpdpsDMdO90= +github.com/aws/aws-sdk-go-v2/config v1.27.27/go.mod h1:MVYamCg76dFNINkZFu4n4RjDixhVr51HLj4ErWzrVwg= +github.com/aws/aws-sdk-go-v2/credentials v1.17.27 h1:2raNba6gr2IfA0eqqiP2XiQ0UVOpGPgDSi0I9iAP+UI= +github.com/aws/aws-sdk-go-v2/credentials v1.17.27/go.mod h1:gniiwbGahQByxan6YjQUMcW4Aov6bLC3m+evgcoN4r4= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.11 h1:KreluoV8FZDEtI6Co2xuNk/UqI9iwMrOx/87PBNIKqw= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.11/go.mod h1:SeSUYBLsMYFoRvHE0Tjvn7kbxaUhl75CJi1sbfhMxkU= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 h1:7Zwtt/lP3KNRkeZre7soMELMGNoBrutx8nobg1jKWmo= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15/go.mod h1:436h2adoHb57yd+8W+gYPrrA9U/R/SuAuOO42Ushzhw= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.13 h1:5SAoZ4jYpGH4721ZNoS1znQrhOfZinOhc4XuTXx/nVc= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.13/go.mod h1:+rdA6ZLpaSeM7tSg/B0IEDinCIBJGmW8rKDFkYpP04g= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.13 h1:WIijqeaAO7TYFLbhsZmi2rgLEAtWOC1LhxCAVTJlSKw= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.13/go.mod h1:i+kbfa76PQbWw/ULoWnp51EYVWH4ENln76fLQE3lXT8= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.15 h1:SoNJ4RlFEQEbtDcCEt+QG56MY4fm4W8rYirAmq+/DdU= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.15/go.mod h1:U9ke74k1n2bf+RIgoX1SXFed1HLs51OgUSs+Ph0KJP8= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.15 h1:C6WHdGnTDIYETAm5iErQUiVNsclNx9qbJVPIt03B6bI= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.15/go.mod h1:ZQLZqhcu+JhSrA9/NXRm8SkDvsycE+JkV3WGY41e+IM= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 h1:81KE7vaZzrl7yHBYHVEzYB8sypz11NMOZ40YlWvPxsU= @@ -52,20 +52,20 @@ github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.3 h1:dT3MqvG github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.3/go.mod h1:GlAeCkHwugxdHaueRr4nhPuY+WW+gR8UjlcqzPr1SPI= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 h1:ZMeFZ5yk+Ek+jNr1+uwCd2tG89t6oTS5yVWpa6yy2es= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7/go.mod h1:mxV05U+4JiHqIpGqqYXOHLPKUC6bDXC44bsUhNjOEwY= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.15 h1:I9zMeF107l0rJrpnHpjEiiTSCKYAIw8mALiXcPsGBiA= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.15/go.mod h1:9xWJ3Q/S6Ojusz1UIkfycgD1mGirJfLLKqq3LPT7WN8= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.17 h1:HGErhhrxZlQ044RiM+WdoZxp0p+EGM62y3L6pwA4olE= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.17/go.mod h1:RkZEx4l0EHYDJpWppMJ3nD9wZJAa8/0lq9aVC+r2UII= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 h1:f9RyWNtS8oH7cZlbn+/JNPpjUk5+5fLd5lM9M0i49Ys= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5/go.mod h1:h5CoMZV2VF297/VLhRhO1WF+XYWOzXo+4HsObA4HjBQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 h1:6cnno47Me9bRykw9AEv9zkXE+5or7jz8TsskTTccbgc= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1/go.mod h1:qmdkIIAC+GCLASF7R2whgNrJADz0QZPX+Seiw/i4S3o= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.1 h1:ZoYRD8IJqPkzjBnpokiMNO6L/DQprtpVpD6k0YSaF5U= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.1/go.mod h1:GlRarZzIMl9VDi0mLQt+qQOuEkVFPnTkkjyugV1uVa8= -github.com/aws/aws-sdk-go-v2/service/sso v1.22.1 h1:p1GahKIjyMDZtiKoIn0/jAj/TkMzfzndDv5+zi2Mhgc= -github.com/aws/aws-sdk-go-v2/service/sso v1.22.1/go.mod h1:/vWdhoIoYA5hYoPZ6fm7Sv4d8701PiG5VKe8/pPJL60= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.1 h1:lCEv9f8f+zJ8kcFeAjRZsekLd/x5SAm96Cva+VbUdo8= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.1/go.mod h1:xyFHA4zGxgYkdD73VeezHt3vSKEG9EmFnGwoKlP00u4= -github.com/aws/aws-sdk-go-v2/service/sts v1.30.1 h1:+woJ607dllHJQtsnJLi52ycuqHMwlW+Wqm2Ppsfp4nQ= -github.com/aws/aws-sdk-go-v2/service/sts v1.30.1/go.mod h1:jiNR3JqT15Dm+QWq2SRgh0x0bCNSRP2L25+CqPNpJlQ= +github.com/aws/aws-sdk-go-v2/service/sso v1.22.4 h1:BXx0ZIxvrJdSgSvKTZ+yRBeSqqgPM89VPlulEcl37tM= +github.com/aws/aws-sdk-go-v2/service/sso v1.22.4/go.mod h1:ooyCOXjvJEsUw7x+ZDHeISPMhtwI3ZCB7ggFMcFfWLU= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.4 h1:yiwVzJW2ZxZTurVbYWA7QOrAaCYQR72t0wrSBfoesUE= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.4/go.mod h1:0oxfLkpz3rQ/CHlx5hB7H69YUpFiI1tql6Q6Ne+1bCw= +github.com/aws/aws-sdk-go-v2/service/sts v1.30.3 h1:ZsDKRLXGWHk8WdtyYMoGNO7bTudrvuKpDKgMVRlepGE= +github.com/aws/aws-sdk-go-v2/service/sts v1.30.3/go.mod h1:zwySh8fpFyXp9yOr/KVzxOl8SRqgf/IDw5aUt9UKFcQ= github.com/aws/smithy-go v1.20.3 h1:ryHwveWzPV5BIof6fyDvor6V3iUL7nTfiTKXHiW05nE= github.com/aws/smithy-go v1.20.3/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -133,10 +133,6 @@ github.com/jackc/pgx/v5 v5.6.0/go.mod h1:DNZ/vlrUnhWCoFGxHAG8U2ljioxukquj7utPDgt github.com/jackc/puddle/v2 v2.2.1 h1:RhxXJtFG022u4ibrCSMSiu5aOq1i77R3OHKNJj77OAk= github.com/jackc/puddle/v2 v2.2.1/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= -github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= -github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= -github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 h1:rp+c0RAYOWj8l6qbCUTSiRLG/iKnW3K3/QfPPuSsBt4= github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901/go.mod h1:Z86h9688Y0wesXCyonoVr47MasHilkuLMqGhRZ4Hpak= github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= @@ -311,7 +307,6 @@ gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= From ec0c9cdebc37bd43db7f2ac864c92167c9e28989 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 2 Aug 2024 11:32:49 +0200 Subject: [PATCH 264/401] deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager from 1.32.1 to 1.32.4 (#571) deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager Bumps [github.com/aws/aws-sdk-go-v2/service/secretsmanager](https://github.com/aws/aws-sdk-go-v2) from 1.32.1 to 1.32.4. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/emr/v1.32.1...service/sqs/v1.32.4) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/service/secretsmanager dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 4aa94947..0f90432e 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/ClickHouse/clickhouse-go/v2 v2.27.0 github.com/aws/aws-sdk-go-v2 v1.30.3 github.com/aws/aws-sdk-go-v2/config v1.27.27 - github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.1 + github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.4 github.com/go-kit/log v0.2.1 github.com/go-sql-driver/mysql v1.8.1 github.com/jackc/pgx/v5 v5.6.0 diff --git a/go.sum b/go.sum index 78a7fdd9..d934645a 100644 --- a/go.sum +++ b/go.sum @@ -58,8 +58,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 h1:f9RyWNtS8oH7cZ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5/go.mod h1:h5CoMZV2VF297/VLhRhO1WF+XYWOzXo+4HsObA4HjBQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 h1:6cnno47Me9bRykw9AEv9zkXE+5or7jz8TsskTTccbgc= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1/go.mod h1:qmdkIIAC+GCLASF7R2whgNrJADz0QZPX+Seiw/i4S3o= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.1 h1:ZoYRD8IJqPkzjBnpokiMNO6L/DQprtpVpD6k0YSaF5U= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.1/go.mod h1:GlRarZzIMl9VDi0mLQt+qQOuEkVFPnTkkjyugV1uVa8= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.4 h1:NgRFYyFpiMD62y4VPXh4DosPFbZd4vdMVBWKk0VmWXc= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.4/go.mod h1:TKKN7IQoM7uTnyuFm9bm9cw5P//ZYTl4m3htBWQ1G/c= github.com/aws/aws-sdk-go-v2/service/sso v1.22.4 h1:BXx0ZIxvrJdSgSvKTZ+yRBeSqqgPM89VPlulEcl37tM= github.com/aws/aws-sdk-go-v2/service/sso v1.22.4/go.mod h1:ooyCOXjvJEsUw7x+ZDHeISPMhtwI3ZCB7ggFMcFfWLU= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.4 h1:yiwVzJW2ZxZTurVbYWA7QOrAaCYQR72t0wrSBfoesUE= From 03f49c6603f558f11351981a186d0c3e2043d6ab Mon Sep 17 00:00:00 2001 From: Neaj Morshad Date: Fri, 9 Aug 2024 17:11:27 +0600 Subject: [PATCH 265/401] docs: update data_source_name in configuration file [skip ci] (#574) Signed-off-by: Neaj Morshad --- documentation/sql_exporter.yml | 2 +- examples/sql_exporter.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/documentation/sql_exporter.yml b/documentation/sql_exporter.yml index a22bb9e7..4be4f30d 100644 --- a/documentation/sql_exporter.yml +++ b/documentation/sql_exporter.yml @@ -35,7 +35,7 @@ target: name: mssql_database # Data source name always has a URI schema that matches the driver name. In some cases (e.g. MySQL) # the schema gets dropped or replaced to match the driver expected DSN format. - data_source_name: 'sqlserver://prom_user:prom_password@dbserver1.example.com:1433' + data_source_name: 'sqlserver://prom_user:prom_password@dbserver1.example.com:1433/dbname' # Collectors (referenced by name) to execute on the target. collectors: [mssql_standard] diff --git a/examples/sql_exporter.yml b/examples/sql_exporter.yml index e7d6664f..5c2ba4bc 100644 --- a/examples/sql_exporter.yml +++ b/examples/sql_exporter.yml @@ -20,7 +20,7 @@ global: target: # Data source name always has a URI schema that matches the driver name. In some cases (e.g. MySQL) # the schema gets dropped or replaced to match the driver expected DSN format. - data_source_name: 'sqlserver://prom_user:prom_password@dbserver1.example.com:1433' + data_source_name: 'sqlserver://prom_user:prom_password@dbserver1.example.com:1433/dbname' # Collectors (referenced by name) to execute on the target. # Glob patterns are supported (see for syntax). From eaf57a1587212055ab265fcd4cab4cb6e8f53ceb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 5 Sep 2024 12:18:28 +0200 Subject: [PATCH 266/401] deps: bump github.com/prometheus/common from 0.55.0 to 0.57.0 (#578) Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.55.0 to 0.57.0. - [Release notes](https://github.com/prometheus/common/releases) - [Changelog](https://github.com/prometheus/common/blob/main/RELEASE.md) - [Commits](https://github.com/prometheus/common/compare/v0.55.0...v0.57.0) --- updated-dependencies: - dependency-name: github.com/prometheus/common dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 8 ++++---- go.sum | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index 0f90432e..f2709b34 100644 --- a/go.mod +++ b/go.mod @@ -15,9 +15,9 @@ require ( github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.9 github.com/microsoft/go-mssqldb v1.7.2 - github.com/prometheus/client_golang v1.19.1 + github.com/prometheus/client_golang v1.20.0 github.com/prometheus/client_model v0.6.1 - github.com/prometheus/common v0.55.0 + github.com/prometheus/common v0.57.0 github.com/prometheus/exporter-toolkit v0.11.0 github.com/sethvargo/go-envconfig v1.1.0 github.com/snowflakedb/gosnowflake v1.11.0 @@ -59,7 +59,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/sts v1.30.3 // indirect github.com/aws/smithy-go v1.20.3 // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect github.com/danieljoos/wincred v1.1.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect @@ -84,7 +84,7 @@ require ( github.com/jackc/puddle/v2 v2.2.1 // indirect github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 // indirect github.com/jpillora/backoff v1.0.0 // indirect - github.com/klauspost/compress v1.17.7 // indirect + github.com/klauspost/compress v1.17.9 // indirect github.com/klauspost/cpuid/v2 v2.2.5 // indirect github.com/kylelemons/godebug v1.1.0 // indirect github.com/mtibben/percent v0.2.1 // indirect diff --git a/go.sum b/go.sum index d934645a..97471545 100644 --- a/go.sum +++ b/go.sum @@ -70,8 +70,8 @@ github.com/aws/smithy-go v1.20.3 h1:ryHwveWzPV5BIof6fyDvor6V3iUL7nTfiTKXHiW05nE= github.com/aws/smithy-go v1.20.3/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0= @@ -142,8 +142,8 @@ github.com/kardianos/minwinsvc v1.0.2/go.mod h1:LUZNYhNmxujx2tR7FbdxqYJ9XDDoCd3M github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= -github.com/klauspost/compress v1.17.7 h1:ehO88t2UGzQK66LMdE8tibEd1ErmzZjNEqWkjLAKQQg= -github.com/klauspost/compress v1.17.7/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= +github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA= +github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= github.com/klauspost/cpuid/v2 v2.2.5 h1:0E5MSMDEoAulmXNFquVs//DdoomxaoTY1kUhbc/qbZg= github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= @@ -180,12 +180,12 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= -github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho= +github.com/prometheus/client_golang v1.20.0 h1:jBzTZ7B099Rg24tny+qngoynol8LtVYlA2bqx3vEloI= +github.com/prometheus/client_golang v1.20.0/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.55.0 h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G1dc= -github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8= +github.com/prometheus/common v0.57.0 h1:Ro/rKjwdq9mZn1K5QPctzh+MA4Lp0BuYk5ZZEVhoNcY= +github.com/prometheus/common v0.57.0/go.mod h1:7uRPFSUTbfZWsJ7MHY56sqt7hLQu3bxXHDnNhl8E9qI= github.com/prometheus/exporter-toolkit v0.11.0 h1:yNTsuZ0aNCNFQ3aFTD2uhPOvr4iD7fdBvKPAEGkNf+g= github.com/prometheus/exporter-toolkit v0.11.0/go.mod h1:BVnENhnNecpwoTLiABx7mrPB/OLRIgN74qlQbV+FK1Q= github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= From a577831f06de47460c1f6488099a221c6fe45189 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 5 Sep 2024 12:18:54 +0200 Subject: [PATCH 267/401] deps: bump github.com/snowflakedb/gosnowflake from 1.11.0 to 1.11.1 (#580) Bumps [github.com/snowflakedb/gosnowflake](https://github.com/snowflakedb/gosnowflake) from 1.11.0 to 1.11.1. - [Release notes](https://github.com/snowflakedb/gosnowflake/releases) - [Changelog](https://github.com/snowflakedb/gosnowflake/blob/master/release.go) - [Commits](https://github.com/snowflakedb/gosnowflake/compare/v1.11.0...v1.11.1) --- updated-dependencies: - dependency-name: github.com/snowflakedb/gosnowflake dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index f2709b34..c79c0502 100644 --- a/go.mod +++ b/go.mod @@ -20,7 +20,7 @@ require ( github.com/prometheus/common v0.57.0 github.com/prometheus/exporter-toolkit v0.11.0 github.com/sethvargo/go-envconfig v1.1.0 - github.com/snowflakedb/gosnowflake v1.11.0 + github.com/snowflakedb/gosnowflake v1.11.1 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.23.1 google.golang.org/protobuf v1.34.2 diff --git a/go.sum b/go.sum index 97471545..efb8d9ea 100644 --- a/go.sum +++ b/go.sum @@ -203,8 +203,8 @@ github.com/simonpasquier/klog-gokit/v3 v3.4.0 h1:2eD2INbzUHuGNynPP86BCB8H6Lwfp6w github.com/simonpasquier/klog-gokit/v3 v3.4.0/go.mod h1:RREVB5Cc6yYHsweRfhUyM1ZP+Odb8ehxLfY8jaiqvjg= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/snowflakedb/gosnowflake v1.11.0 h1:qyqunGCVyq/Qyx40KQT+6sJ1CAGuuG2qv3WiCTLTctI= -github.com/snowflakedb/gosnowflake v1.11.0/go.mod h1:WFe+8mpsapDaQjHX6BqJBKtfQCGlGD3lHKeDsKfpx2A= +github.com/snowflakedb/gosnowflake v1.11.1 h1:E91s8vBOSroaSTLsyjO4QPkEuzGmZcCxEFQLg214mvk= +github.com/snowflakedb/gosnowflake v1.11.1/go.mod h1:WFe+8mpsapDaQjHX6BqJBKtfQCGlGD3lHKeDsKfpx2A= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= From 5d9ed648f6c6582fe2201d838099721cf7eed536 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 5 Sep 2024 12:42:08 +0200 Subject: [PATCH 268/401] deps: bump github.com/aws/aws-sdk-go-v2 from 1.30.3 to 1.30.5 (#584) Bumps [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) from 1.30.3 to 1.30.5. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.30.3...v1.30.5) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index c79c0502..456a13af 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ toolchain go1.21.9 require ( github.com/ClickHouse/clickhouse-go/v2 v2.27.0 - github.com/aws/aws-sdk-go-v2 v1.30.3 + github.com/aws/aws-sdk-go-v2 v1.30.5 github.com/aws/aws-sdk-go-v2/config v1.27.27 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.4 github.com/go-kit/log v0.2.1 @@ -57,7 +57,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/sso v1.22.4 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.4 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.30.3 // indirect - github.com/aws/smithy-go v1.20.3 // indirect + github.com/aws/smithy-go v1.20.4 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect diff --git a/go.sum b/go.sum index efb8d9ea..2e8af5a6 100644 --- a/go.sum +++ b/go.sum @@ -28,8 +28,8 @@ github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1 github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY= github.com/apache/arrow/go/v15 v15.0.0 h1:1zZACWf85oEZY5/kd9dsQS7i+2G5zVQcbKTHgslqHNA= github.com/apache/arrow/go/v15 v15.0.0/go.mod h1:DGXsR3ajT524njufqf95822i+KTh+yea1jass9YXgjA= -github.com/aws/aws-sdk-go-v2 v1.30.3 h1:jUeBtG0Ih+ZIFH0F4UkmL9w3cSpaMv9tYYDbzILP8dY= -github.com/aws/aws-sdk-go-v2 v1.30.3/go.mod h1:nIQjQVp5sfpQcTc9mPSr1B0PaWK5ByX9MOoDadSN4lc= +github.com/aws/aws-sdk-go-v2 v1.30.5 h1:mWSRTwQAb0aLE17dSzztCVJWI9+cRMgqebndjwDyK0g= +github.com/aws/aws-sdk-go-v2 v1.30.5/go.mod h1:CT+ZPWXbYrci8chcARI3OmI/qgd+f6WtuLOoaIA8PR0= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg= github.com/aws/aws-sdk-go-v2/config v1.27.27 h1:HdqgGt1OAP0HkEDDShEl0oSYa9ZZBSOmKpdpsDMdO90= @@ -66,8 +66,8 @@ github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.4 h1:yiwVzJW2ZxZTurVbYWA7QOrA github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.4/go.mod h1:0oxfLkpz3rQ/CHlx5hB7H69YUpFiI1tql6Q6Ne+1bCw= github.com/aws/aws-sdk-go-v2/service/sts v1.30.3 h1:ZsDKRLXGWHk8WdtyYMoGNO7bTudrvuKpDKgMVRlepGE= github.com/aws/aws-sdk-go-v2/service/sts v1.30.3/go.mod h1:zwySh8fpFyXp9yOr/KVzxOl8SRqgf/IDw5aUt9UKFcQ= -github.com/aws/smithy-go v1.20.3 h1:ryHwveWzPV5BIof6fyDvor6V3iUL7nTfiTKXHiW05nE= -github.com/aws/smithy-go v1.20.3/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E= +github.com/aws/smithy-go v1.20.4 h1:2HK1zBdPgRbjFOHlfeQZfpC4r72MOb9bZkiFwggKO+4= +github.com/aws/smithy-go v1.20.4/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= From 1aefe049e982e98d03d218e1159e5f2ed66abb22 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 6 Sep 2024 11:38:56 +0200 Subject: [PATCH 269/401] deps: bump github.com/prometheus/common from 0.57.0 to 0.59.1 (#589) Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.57.0 to 0.59.1. - [Release notes](https://github.com/prometheus/common/releases) - [Changelog](https://github.com/prometheus/common/blob/main/RELEASE.md) - [Commits](https://github.com/prometheus/common/compare/v0.57.0...v0.59.1) --- updated-dependencies: - dependency-name: github.com/prometheus/common dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 16 ++++++++-------- go.sum | 32 ++++++++++++++++---------------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/go.mod b/go.mod index 456a13af..d31a2ac8 100644 --- a/go.mod +++ b/go.mod @@ -17,7 +17,7 @@ require ( github.com/microsoft/go-mssqldb v1.7.2 github.com/prometheus/client_golang v1.20.0 github.com/prometheus/client_model v0.6.1 - github.com/prometheus/common v0.57.0 + github.com/prometheus/common v0.59.1 github.com/prometheus/exporter-toolkit v0.11.0 github.com/sethvargo/go-envconfig v1.1.0 github.com/snowflakedb/gosnowflake v1.11.1 @@ -103,15 +103,15 @@ require ( github.com/zeebo/xxh3 v1.0.2 // indirect go.opentelemetry.io/otel v1.26.0 // indirect go.opentelemetry.io/otel/trace v1.26.0 // indirect - golang.org/x/crypto v0.25.0 // indirect + golang.org/x/crypto v0.26.0 // indirect golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect golang.org/x/mod v0.17.0 // indirect - golang.org/x/net v0.27.0 // indirect - golang.org/x/oauth2 v0.21.0 // indirect - golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.22.0 // indirect - golang.org/x/term v0.22.0 // indirect - golang.org/x/text v0.16.0 // indirect + golang.org/x/net v0.28.0 // indirect + golang.org/x/oauth2 v0.22.0 // indirect + golang.org/x/sync v0.8.0 // indirect + golang.org/x/sys v0.23.0 // indirect + golang.org/x/term v0.23.0 // indirect + golang.org/x/text v0.17.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/go.sum b/go.sum index 2e8af5a6..2bb5b9de 100644 --- a/go.sum +++ b/go.sum @@ -184,8 +184,8 @@ github.com/prometheus/client_golang v1.20.0 h1:jBzTZ7B099Rg24tny+qngoynol8LtVYlA github.com/prometheus/client_golang v1.20.0/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.57.0 h1:Ro/rKjwdq9mZn1K5QPctzh+MA4Lp0BuYk5ZZEVhoNcY= -github.com/prometheus/common v0.57.0/go.mod h1:7uRPFSUTbfZWsJ7MHY56sqt7hLQu3bxXHDnNhl8E9qI= +github.com/prometheus/common v0.59.1 h1:LXb1quJHWm1P6wq/U824uxYi4Sg0oGvNeUm1z5dJoX0= +github.com/prometheus/common v0.59.1/go.mod h1:GpWM7dewqmVYcd7SmRaiWVe9SSqjf0UrwnYnpEZNuT0= github.com/prometheus/exporter-toolkit v0.11.0 h1:yNTsuZ0aNCNFQ3aFTD2uhPOvr4iD7fdBvKPAEGkNf+g= github.com/prometheus/exporter-toolkit v0.11.0/go.mod h1:BVnENhnNecpwoTLiABx7mrPB/OLRIgN74qlQbV+FK1Q= github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= @@ -237,8 +237,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= -golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= +golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw= +golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI= golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -250,17 +250,17 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= -golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= -golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= -golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE= +golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg= +golang.org/x/oauth2 v0.22.0 h1:BzDx2FehcG7jJwgWLELCdmLuxk2i+x9UDpSiss2u0ZA= +golang.org/x/oauth2 v0.22.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= -golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= +golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -272,17 +272,17 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= -golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM= +golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= -golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= +golang.org/x/term v0.23.0 h1:F6D4vR+EHoL9/sWAWgAR1H2DcHr4PareCbAaCo1RpuU= +golang.org/x/term v0.23.0/go.mod h1:DgV24QBUrK6jhZXl+20l6UWznPlwAHm1Q1mGHtydmSk= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= -golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= +golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= +golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= From 040e5bfd301c9ebfe7aa93a5a2aea570e4ea0ab5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 6 Sep 2024 11:39:27 +0200 Subject: [PATCH 270/401] deps: bump github.com/prometheus/client_golang from 1.20.0 to 1.20.3 (#587) Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.20.0 to 1.20.3. - [Release notes](https://github.com/prometheus/client_golang/releases) - [Changelog](https://github.com/prometheus/client_golang/blob/v1.20.3/CHANGELOG.md) - [Commits](https://github.com/prometheus/client_golang/compare/v1.20.0...v1.20.3) --- updated-dependencies: - dependency-name: github.com/prometheus/client_golang dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index d31a2ac8..e1c3c075 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.9 github.com/microsoft/go-mssqldb v1.7.2 - github.com/prometheus/client_golang v1.20.0 + github.com/prometheus/client_golang v1.20.3 github.com/prometheus/client_model v0.6.1 github.com/prometheus/common v0.59.1 github.com/prometheus/exporter-toolkit v0.11.0 diff --git a/go.sum b/go.sum index 2bb5b9de..d4a6164b 100644 --- a/go.sum +++ b/go.sum @@ -180,8 +180,8 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.20.0 h1:jBzTZ7B099Rg24tny+qngoynol8LtVYlA2bqx3vEloI= -github.com/prometheus/client_golang v1.20.0/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= +github.com/prometheus/client_golang v1.20.3 h1:oPksm4K8B+Vt35tUhw6GbSNSgVlVSBH0qELP/7u83l4= +github.com/prometheus/client_golang v1.20.3/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.59.1 h1:LXb1quJHWm1P6wq/U824uxYi4Sg0oGvNeUm1z5dJoX0= From a6f75b5384d19abc39fa8704f7e69243de2f1c66 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2024 13:17:25 +0200 Subject: [PATCH 271/401] deps: bump github.com/aws/aws-sdk-go-v2/config from 1.27.27 to 1.27.33 (#588) Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.27.27 to 1.27.33. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.27.27...config/v1.27.33) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/config dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 22 +++++++++++----------- go.sum | 44 ++++++++++++++++++++++---------------------- 2 files changed, 33 insertions(+), 33 deletions(-) diff --git a/go.mod b/go.mod index e1c3c075..4b18db01 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ toolchain go1.21.9 require ( github.com/ClickHouse/clickhouse-go/v2 v2.27.0 github.com/aws/aws-sdk-go-v2 v1.30.5 - github.com/aws/aws-sdk-go-v2/config v1.27.27 + github.com/aws/aws-sdk-go-v2/config v1.27.33 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.4 github.com/go-kit/log v0.2.1 github.com/go-sql-driver/mysql v1.8.1 @@ -42,21 +42,21 @@ require ( github.com/andybalholm/brotli v1.1.0 // indirect github.com/apache/arrow/go/v15 v15.0.0 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.27 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.11 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.32 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.13 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.15 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.15 // indirect - github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.17 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.17 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.3 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4 // indirect github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.17 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.19 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 // indirect github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.22.4 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.4 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.30.3 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.22.7 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.7 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.30.7 // indirect github.com/aws/smithy-go v1.20.4 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect diff --git a/go.sum b/go.sum index d4a6164b..f6bf769e 100644 --- a/go.sum +++ b/go.sum @@ -32,40 +32,40 @@ github.com/aws/aws-sdk-go-v2 v1.30.5 h1:mWSRTwQAb0aLE17dSzztCVJWI9+cRMgqebndjwDy github.com/aws/aws-sdk-go-v2 v1.30.5/go.mod h1:CT+ZPWXbYrci8chcARI3OmI/qgd+f6WtuLOoaIA8PR0= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg= -github.com/aws/aws-sdk-go-v2/config v1.27.27 h1:HdqgGt1OAP0HkEDDShEl0oSYa9ZZBSOmKpdpsDMdO90= -github.com/aws/aws-sdk-go-v2/config v1.27.27/go.mod h1:MVYamCg76dFNINkZFu4n4RjDixhVr51HLj4ErWzrVwg= -github.com/aws/aws-sdk-go-v2/credentials v1.17.27 h1:2raNba6gr2IfA0eqqiP2XiQ0UVOpGPgDSi0I9iAP+UI= -github.com/aws/aws-sdk-go-v2/credentials v1.17.27/go.mod h1:gniiwbGahQByxan6YjQUMcW4Aov6bLC3m+evgcoN4r4= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.11 h1:KreluoV8FZDEtI6Co2xuNk/UqI9iwMrOx/87PBNIKqw= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.11/go.mod h1:SeSUYBLsMYFoRvHE0Tjvn7kbxaUhl75CJi1sbfhMxkU= +github.com/aws/aws-sdk-go-v2/config v1.27.33 h1:Nof9o/MsmH4oa0s2q9a0k7tMz5x/Yj5k06lDODWz3BU= +github.com/aws/aws-sdk-go-v2/config v1.27.33/go.mod h1:kEqdYzRb8dd8Sy2pOdEbExTTF5v7ozEXX0McgPE7xks= +github.com/aws/aws-sdk-go-v2/credentials v1.17.32 h1:7Cxhp/BnT2RcGy4VisJ9miUPecY+lyE9I8JvcZofn9I= +github.com/aws/aws-sdk-go-v2/credentials v1.17.32/go.mod h1:P5/QMF3/DCHbXGEGkdbilXHsyTBX5D3HSwcrSc9p20I= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.13 h1:pfQ2sqNpMVK6xz2RbqLEL0GH87JOwSxPV2rzm8Zsb74= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.13/go.mod h1:NG7RXPUlqfsCLLFfi0+IpKN4sCB9D9fw/qTaSB+xRoU= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 h1:7Zwtt/lP3KNRkeZre7soMELMGNoBrutx8nobg1jKWmo= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15/go.mod h1:436h2adoHb57yd+8W+gYPrrA9U/R/SuAuOO42Ushzhw= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.15 h1:SoNJ4RlFEQEbtDcCEt+QG56MY4fm4W8rYirAmq+/DdU= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.15/go.mod h1:U9ke74k1n2bf+RIgoX1SXFed1HLs51OgUSs+Ph0KJP8= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.15 h1:C6WHdGnTDIYETAm5iErQUiVNsclNx9qbJVPIt03B6bI= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.15/go.mod h1:ZQLZqhcu+JhSrA9/NXRm8SkDvsycE+JkV3WGY41e+IM= -github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU= -github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.17 h1:pI7Bzt0BJtYA0N/JEC6B8fJ4RBrEMi1LBrkMdFYNSnQ= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.17/go.mod h1:Dh5zzJYMtxfIjYW+/evjQ8uj2OyR/ve2KROHGHlSFqE= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.17 h1:Mqr/V5gvrhA2gvgnF42Zh5iMiQNcOYthFYwCyrnuWlc= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.17/go.mod h1:aLJpZlCmjE+V+KtN1q1uyZkfnUWpQGpbsn89XPKyzfU= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvKgqdiXoTxAF4HQcQ= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 h1:81KE7vaZzrl7yHBYHVEzYB8sypz11NMOZ40YlWvPxsU= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5/go.mod h1:LIt2rg7Mcgn09Ygbdh/RdIm0rQ+3BNkbP1gyVMFtRK0= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.3 h1:dT3MqvGhSoaIhRseqw2I0yH81l7wiR2vjs57O51EAm8= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.3/go.mod h1:GlAeCkHwugxdHaueRr4nhPuY+WW+gR8UjlcqzPr1SPI= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4 h1:KypMCbLPPHEmf9DgMGw51jMj77VfGPAN2Kv4cfhlfgI= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4/go.mod h1:Vz1JQXliGcQktFTN/LN6uGppAIRoLBR2bMvIMP0gOjc= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 h1:ZMeFZ5yk+Ek+jNr1+uwCd2tG89t6oTS5yVWpa6yy2es= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7/go.mod h1:mxV05U+4JiHqIpGqqYXOHLPKUC6bDXC44bsUhNjOEwY= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.17 h1:HGErhhrxZlQ044RiM+WdoZxp0p+EGM62y3L6pwA4olE= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.17/go.mod h1:RkZEx4l0EHYDJpWppMJ3nD9wZJAa8/0lq9aVC+r2UII= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.19 h1:rfprUlsdzgl7ZL2KlXiUAoJnI/VxfHCvDFr2QDFj6u4= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.19/go.mod h1:SCWkEdRq8/7EK60NcvvQ6NXKuTcchAD4ROAsC37VEZE= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 h1:f9RyWNtS8oH7cZlbn+/JNPpjUk5+5fLd5lM9M0i49Ys= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5/go.mod h1:h5CoMZV2VF297/VLhRhO1WF+XYWOzXo+4HsObA4HjBQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 h1:6cnno47Me9bRykw9AEv9zkXE+5or7jz8TsskTTccbgc= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1/go.mod h1:qmdkIIAC+GCLASF7R2whgNrJADz0QZPX+Seiw/i4S3o= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.4 h1:NgRFYyFpiMD62y4VPXh4DosPFbZd4vdMVBWKk0VmWXc= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.4/go.mod h1:TKKN7IQoM7uTnyuFm9bm9cw5P//ZYTl4m3htBWQ1G/c= -github.com/aws/aws-sdk-go-v2/service/sso v1.22.4 h1:BXx0ZIxvrJdSgSvKTZ+yRBeSqqgPM89VPlulEcl37tM= -github.com/aws/aws-sdk-go-v2/service/sso v1.22.4/go.mod h1:ooyCOXjvJEsUw7x+ZDHeISPMhtwI3ZCB7ggFMcFfWLU= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.4 h1:yiwVzJW2ZxZTurVbYWA7QOrAaCYQR72t0wrSBfoesUE= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.4/go.mod h1:0oxfLkpz3rQ/CHlx5hB7H69YUpFiI1tql6Q6Ne+1bCw= -github.com/aws/aws-sdk-go-v2/service/sts v1.30.3 h1:ZsDKRLXGWHk8WdtyYMoGNO7bTudrvuKpDKgMVRlepGE= -github.com/aws/aws-sdk-go-v2/service/sts v1.30.3/go.mod h1:zwySh8fpFyXp9yOr/KVzxOl8SRqgf/IDw5aUt9UKFcQ= +github.com/aws/aws-sdk-go-v2/service/sso v1.22.7 h1:pIaGg+08llrP7Q5aiz9ICWbY8cqhTkyy+0SHvfzQpTc= +github.com/aws/aws-sdk-go-v2/service/sso v1.22.7/go.mod h1:eEygMHnTKH/3kNp9Jr1n3PdejuSNcgwLe1dWgQtO0VQ= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.7 h1:/Cfdu0XV3mONYKaOt1Gr0k1KvQzkzPyiKUdlWJqy+J4= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.7/go.mod h1:bCbAxKDqNvkHxRaIMnyVPXPo+OaPRwvmgzMxbz1VKSA= +github.com/aws/aws-sdk-go-v2/service/sts v1.30.7 h1:NKTa1eqZYw8tiHSRGpP0VtTdub/8KNk8sDkNPFaOKDE= +github.com/aws/aws-sdk-go-v2/service/sts v1.30.7/go.mod h1:NXi1dIAGteSaRLqYgarlhP/Ij0cFT+qmCwiJqWh/U5o= github.com/aws/smithy-go v1.20.4 h1:2HK1zBdPgRbjFOHlfeQZfpC4r72MOb9bZkiFwggKO+4= github.com/aws/smithy-go v1.20.4/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= From 521b724ad2af404099cbe302ac1c7a9d665eefe2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2024 15:09:34 +0200 Subject: [PATCH 272/401] deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager from 1.32.4 to 1.32.8 (#585) deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager Bumps [github.com/aws/aws-sdk-go-v2/service/secretsmanager](https://github.com/aws/aws-sdk-go-v2) from 1.32.4 to 1.32.8. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/sqs/v1.32.4...service/dynamodb/v1.32.8) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/service/secretsmanager dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 4b18db01..6f0dfe83 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/ClickHouse/clickhouse-go/v2 v2.27.0 github.com/aws/aws-sdk-go-v2 v1.30.5 github.com/aws/aws-sdk-go-v2/config v1.27.33 - github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.4 + github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.8 github.com/go-kit/log v0.2.1 github.com/go-sql-driver/mysql v1.8.1 github.com/jackc/pgx/v5 v5.6.0 diff --git a/go.sum b/go.sum index f6bf769e..0657f941 100644 --- a/go.sum +++ b/go.sum @@ -58,8 +58,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 h1:f9RyWNtS8oH7cZ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5/go.mod h1:h5CoMZV2VF297/VLhRhO1WF+XYWOzXo+4HsObA4HjBQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 h1:6cnno47Me9bRykw9AEv9zkXE+5or7jz8TsskTTccbgc= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1/go.mod h1:qmdkIIAC+GCLASF7R2whgNrJADz0QZPX+Seiw/i4S3o= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.4 h1:NgRFYyFpiMD62y4VPXh4DosPFbZd4vdMVBWKk0VmWXc= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.4/go.mod h1:TKKN7IQoM7uTnyuFm9bm9cw5P//ZYTl4m3htBWQ1G/c= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.8 h1:HNXhQReFG2fbucvPRxDabbIGQf/6dieOfTnzoGPEqXI= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.8/go.mod h1:BYr9P/rrcLNJ8A36nT15p8tpoVDZ5lroHuMn/njecBw= github.com/aws/aws-sdk-go-v2/service/sso v1.22.7 h1:pIaGg+08llrP7Q5aiz9ICWbY8cqhTkyy+0SHvfzQpTc= github.com/aws/aws-sdk-go-v2/service/sso v1.22.7/go.mod h1:eEygMHnTKH/3kNp9Jr1n3PdejuSNcgwLe1dWgQtO0VQ= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.7 h1:/Cfdu0XV3mONYKaOt1Gr0k1KvQzkzPyiKUdlWJqy+J4= From c1136aefcfcf41210f2e7e381f5c493de0538029 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2024 15:14:38 +0200 Subject: [PATCH 273/401] deps: bump github.com/jackc/pgx/v5 from 5.6.0 to 5.7.0 (#593) Bumps [github.com/jackc/pgx/v5](https://github.com/jackc/pgx) from 5.6.0 to 5.7.0. - [Changelog](https://github.com/jackc/pgx/blob/master/CHANGELOG.md) - [Commits](https://github.com/jackc/pgx/compare/v5.6.0...v5.7.0) --- updated-dependencies: - dependency-name: github.com/jackc/pgx/v5 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 6f0dfe83..95851c49 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.8 github.com/go-kit/log v0.2.1 github.com/go-sql-driver/mysql v1.8.1 - github.com/jackc/pgx/v5 v5.6.0 + github.com/jackc/pgx/v5 v5.7.0 github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.9 github.com/microsoft/go-mssqldb v1.7.2 @@ -80,7 +80,7 @@ require ( github.com/google/uuid v1.6.0 // indirect github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect github.com/jackc/pgpassfile v1.0.0 // indirect - github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect + github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect github.com/jackc/puddle/v2 v2.2.1 // indirect github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 // indirect github.com/jpillora/backoff v1.0.0 // indirect diff --git a/go.sum b/go.sum index 0657f941..adc9a175 100644 --- a/go.sum +++ b/go.sum @@ -126,10 +126,10 @@ github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c h1:6rhixN/i8 github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c/go.mod h1:NMPJylDgVpX0MLRlPy15sqSwOFv/U1GZ2m21JhFfek0= github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= -github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/Y25WS6cokEszi5g+S0QxI/d45PkRi7Nk= -github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= -github.com/jackc/pgx/v5 v5.6.0 h1:SWJzexBzPL5jb0GEsrPMLIsi/3jOo7RHlzTjcAeDrPY= -github.com/jackc/pgx/v5 v5.6.0/go.mod h1:DNZ/vlrUnhWCoFGxHAG8U2ljioxukquj7utPDgtQdTw= +github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 h1:iCEnooe7UlwOQYpKFhBabPMi4aNAfoODPEFNiAnClxo= +github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= +github.com/jackc/pgx/v5 v5.7.0 h1:FG6VLIdzvAPhnYqP14sQ2xhFLkiUQHCs6ySqO91kF4g= +github.com/jackc/pgx/v5 v5.7.0/go.mod h1:awP1KNnjylvpxHuHP63gzjhnGkI1iw+PMoIwvoleN/8= github.com/jackc/puddle/v2 v2.2.1 h1:RhxXJtFG022u4ibrCSMSiu5aOq1i77R3OHKNJj77OAk= github.com/jackc/puddle/v2 v2.2.1/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= From e884e1515665b9d491c0f591271a49546da92edf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 12:12:17 +0200 Subject: [PATCH 274/401] deps: bump github.com/jackc/pgx/v5 from 5.7.0 to 5.7.1 (#598) Bumps [github.com/jackc/pgx/v5](https://github.com/jackc/pgx) from 5.7.0 to 5.7.1. - [Changelog](https://github.com/jackc/pgx/blob/master/CHANGELOG.md) - [Commits](https://github.com/jackc/pgx/compare/v5.7.0...v5.7.1) --- updated-dependencies: - dependency-name: github.com/jackc/pgx/v5 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 12 ++++++------ go.sum | 24 ++++++++++++------------ 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/go.mod b/go.mod index 95851c49..c5f4de6c 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.8 github.com/go-kit/log v0.2.1 github.com/go-sql-driver/mysql v1.8.1 - github.com/jackc/pgx/v5 v5.7.0 + github.com/jackc/pgx/v5 v5.7.1 github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.9 github.com/microsoft/go-mssqldb v1.7.2 @@ -81,7 +81,7 @@ require ( github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect github.com/jackc/pgpassfile v1.0.0 // indirect github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect - github.com/jackc/puddle/v2 v2.2.1 // indirect + github.com/jackc/puddle/v2 v2.2.2 // indirect github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 // indirect github.com/jpillora/backoff v1.0.0 // indirect github.com/klauspost/compress v1.17.9 // indirect @@ -103,15 +103,15 @@ require ( github.com/zeebo/xxh3 v1.0.2 // indirect go.opentelemetry.io/otel v1.26.0 // indirect go.opentelemetry.io/otel/trace v1.26.0 // indirect - golang.org/x/crypto v0.26.0 // indirect + golang.org/x/crypto v0.27.0 // indirect golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.28.0 // indirect golang.org/x/oauth2 v0.22.0 // indirect golang.org/x/sync v0.8.0 // indirect - golang.org/x/sys v0.23.0 // indirect - golang.org/x/term v0.23.0 // indirect - golang.org/x/text v0.17.0 // indirect + golang.org/x/sys v0.25.0 // indirect + golang.org/x/term v0.24.0 // indirect + golang.org/x/text v0.18.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/go.sum b/go.sum index adc9a175..124a7a97 100644 --- a/go.sum +++ b/go.sum @@ -128,10 +128,10 @@ github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsI github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 h1:iCEnooe7UlwOQYpKFhBabPMi4aNAfoODPEFNiAnClxo= github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= -github.com/jackc/pgx/v5 v5.7.0 h1:FG6VLIdzvAPhnYqP14sQ2xhFLkiUQHCs6ySqO91kF4g= -github.com/jackc/pgx/v5 v5.7.0/go.mod h1:awP1KNnjylvpxHuHP63gzjhnGkI1iw+PMoIwvoleN/8= -github.com/jackc/puddle/v2 v2.2.1 h1:RhxXJtFG022u4ibrCSMSiu5aOq1i77R3OHKNJj77OAk= -github.com/jackc/puddle/v2 v2.2.1/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= +github.com/jackc/pgx/v5 v5.7.1 h1:x7SYsPBYDkHDksogeSmZZ5xzThcTgRz++I5E+ePFUcs= +github.com/jackc/pgx/v5 v5.7.1/go.mod h1:e7O26IywZZ+naJtWWos6i6fvWK+29etgITqrqHLfoZA= +github.com/jackc/puddle/v2 v2.2.2 h1:PR8nw+E/1w0GLuRFSmiioY6UooMp6KJv0/61nB7icHo= +github.com/jackc/puddle/v2 v2.2.2/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 h1:rp+c0RAYOWj8l6qbCUTSiRLG/iKnW3K3/QfPPuSsBt4= github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901/go.mod h1:Z86h9688Y0wesXCyonoVr47MasHilkuLMqGhRZ4Hpak= @@ -237,8 +237,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw= -golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= +golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A= +golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70= golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI= golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -272,17 +272,17 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM= -golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34= +golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.23.0 h1:F6D4vR+EHoL9/sWAWgAR1H2DcHr4PareCbAaCo1RpuU= -golang.org/x/term v0.23.0/go.mod h1:DgV24QBUrK6jhZXl+20l6UWznPlwAHm1Q1mGHtydmSk= +golang.org/x/term v0.24.0 h1:Mh5cbb+Zk2hqqXNO7S1iTjEphVL+jb8ZWaqh/g+JWkM= +golang.org/x/term v0.24.0/go.mod h1:lOBK/LVxemqiMij05LGJ0tzNr8xlmwBRJ81PX6wVLH8= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= -golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224= +golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= From 6e4d3df8421a84f3efad2158ae98b5bc3e42d8b2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 14:06:28 +0200 Subject: [PATCH 275/401] deps: bump github.com/prometheus/common from 0.59.1 to 0.60.0 (#597) Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.59.1 to 0.60.0. - [Release notes](https://github.com/prometheus/common/releases) - [Changelog](https://github.com/prometheus/common/blob/main/RELEASE.md) - [Commits](https://github.com/prometheus/common/compare/v0.59.1...v0.60.0) --- updated-dependencies: - dependency-name: github.com/prometheus/common dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 8 ++++---- go.sum | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index c5f4de6c..9c102e19 100644 --- a/go.mod +++ b/go.mod @@ -15,9 +15,9 @@ require ( github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.9 github.com/microsoft/go-mssqldb v1.7.2 - github.com/prometheus/client_golang v1.20.3 + github.com/prometheus/client_golang v1.20.4 github.com/prometheus/client_model v0.6.1 - github.com/prometheus/common v0.59.1 + github.com/prometheus/common v0.60.0 github.com/prometheus/exporter-toolkit v0.11.0 github.com/sethvargo/go-envconfig v1.1.0 github.com/snowflakedb/gosnowflake v1.11.1 @@ -106,8 +106,8 @@ require ( golang.org/x/crypto v0.27.0 // indirect golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect golang.org/x/mod v0.17.0 // indirect - golang.org/x/net v0.28.0 // indirect - golang.org/x/oauth2 v0.22.0 // indirect + golang.org/x/net v0.29.0 // indirect + golang.org/x/oauth2 v0.23.0 // indirect golang.org/x/sync v0.8.0 // indirect golang.org/x/sys v0.25.0 // indirect golang.org/x/term v0.24.0 // indirect diff --git a/go.sum b/go.sum index 124a7a97..fa85ab30 100644 --- a/go.sum +++ b/go.sum @@ -180,12 +180,12 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.20.3 h1:oPksm4K8B+Vt35tUhw6GbSNSgVlVSBH0qELP/7u83l4= -github.com/prometheus/client_golang v1.20.3/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= +github.com/prometheus/client_golang v1.20.4 h1:Tgh3Yr67PaOv/uTqloMsCEdeuFTatm5zIq5+qNN23vI= +github.com/prometheus/client_golang v1.20.4/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.59.1 h1:LXb1quJHWm1P6wq/U824uxYi4Sg0oGvNeUm1z5dJoX0= -github.com/prometheus/common v0.59.1/go.mod h1:GpWM7dewqmVYcd7SmRaiWVe9SSqjf0UrwnYnpEZNuT0= +github.com/prometheus/common v0.60.0 h1:+V9PAREWNvJMAuJ1x1BaWl9dewMW4YrHZQbx0sJNllA= +github.com/prometheus/common v0.60.0/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/exporter-toolkit v0.11.0 h1:yNTsuZ0aNCNFQ3aFTD2uhPOvr4iD7fdBvKPAEGkNf+g= github.com/prometheus/exporter-toolkit v0.11.0/go.mod h1:BVnENhnNecpwoTLiABx7mrPB/OLRIgN74qlQbV+FK1Q= github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= @@ -250,10 +250,10 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE= -golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg= -golang.org/x/oauth2 v0.22.0 h1:BzDx2FehcG7jJwgWLELCdmLuxk2i+x9UDpSiss2u0ZA= -golang.org/x/oauth2 v0.22.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo= +golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0= +golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= +golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= From 131c783bcddfde38335c929a6cc1ef4ca86739c6 Mon Sep 17 00:00:00 2001 From: Eric Lin <38420555+Ezzahhh@users.noreply.github.com> Date: Fri, 11 Oct 2024 19:45:45 +1000 Subject: [PATCH 276/401] feat(helm): configure liveness and readiness probes (#604) * feat(helm): configure liveness and readiness probes Signed-off-by: Eric Lin <38420555+Ezzahhh@users.noreply.github.com> * feat(helm): bump chart version Signed-off-by: Eric Lin <38420555+Ezzahhh@users.noreply.github.com> * fix: typo Signed-off-by: Eric Lin <38420555+Ezzahhh@users.noreply.github.com> * fix: minor bump and gen docs Signed-off-by: Eric Lin <38420555+Ezzahhh@users.noreply.github.com> --------- Signed-off-by: Eric Lin <38420555+Ezzahhh@users.noreply.github.com> --- helm/Chart.yaml | 2 +- helm/README.md | 6 +++++- helm/templates/deployment.yaml | 4 ++++ helm/values.yaml | 8 ++++++++ 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 2f7fb38e..ca3bcf50 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: sql-exporter description: Database-agnostic SQL exporter for Prometheus type: application -version: 0.6.1 +version: 0.7.0 appVersion: 0.15.0 keywords: - exporter diff --git a/helm/README.md b/helm/README.md index 0e1ad22a..789a1640 100644 --- a/helm/README.md +++ b/helm/README.md @@ -1,6 +1,6 @@ # sql-exporter -![Version: 0.6.1](https://img.shields.io/badge/Version-0.6.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.15.0](https://img.shields.io/badge/AppVersion-0.15.0-informational?style=flat-square) +![Version: 0.7.0](https://img.shields.io/badge/Version-0.7.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.15.0](https://img.shields.io/badge/AppVersion-0.15.0-informational?style=flat-square) Database-agnostic SQL exporter for Prometheus @@ -42,6 +42,10 @@ helm install sql_exporter/sql-exporter | extraContainers | object | `{}` | Arbitrary sidecar containers list | | serviceAccount.create | bool | `true` | Specifies whether a Service Account should be created, creates "sql-exporter" service account if true, unless overriden. Otherwise, set to `default` if false, and custom service account name is not provided. Check all the available parameters. | | serviceAccount.annotations | object | `{}` | Annotations to add to the Service Account | +| livenessProbe.initialDelaySeconds | int | `5` | | +| livenessProbe.timeoutSeconds | int | `30` | | +| readinessProbe.initialDelaySeconds | int | `5` | | +| readinessProbe.timeoutSeconds | int | `30` | | | resources | object | `{}` | Resource limits and requests for the application controller pods | | podLabels | object | `{}` | Pod labels | | podAnnotations | object | `{}` | Pod annotations | diff --git a/helm/templates/deployment.yaml b/helm/templates/deployment.yaml index 93b6c742..d469bcd2 100644 --- a/helm/templates/deployment.yaml +++ b/helm/templates/deployment.yaml @@ -96,10 +96,14 @@ spec: {{- end }} {{- end }} livenessProbe: + initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }} + timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }} httpGet: path: /healthz port: 9399 readinessProbe: + initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }} + timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }} httpGet: path: /healthz port: 9399 diff --git a/helm/values.yaml b/helm/values.yaml index ddf1c4a5..afccc250 100644 --- a/helm/values.yaml +++ b/helm/values.yaml @@ -45,6 +45,14 @@ serviceAccount: # iam.gke.io/gcp-service-account: my-service-account@gke.url # -- Defines if token is automatically mounted to the pod after it has been created # automountServiceAccountToken: false +# Liveness and readiness probes for the application controller pods +livenessProbe: + initialDelaySeconds: 5 + timeoutSeconds: 30 + +readinessProbe: + initialDelaySeconds: 5 + timeoutSeconds: 30 # -- Resource limits and requests for the application controller pods resources: {} # limits: From 0833fd95bd7376e27e83e4b9253403a90812c520 Mon Sep 17 00:00:00 2001 From: Lars Kerick Date: Mon, 14 Oct 2024 09:40:50 +0200 Subject: [PATCH 277/401] feat(helm): add ability to activate -web.enable-reload flag (#606) * Update README.md * Update deployment.yaml * Update values.yaml * bump helm chart and rename reload-prop --- helm/Chart.yaml | 2 +- helm/README.md | 3 ++- helm/templates/deployment.yaml | 6 +++++- helm/values.yaml | 2 ++ 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index ca3bcf50..13b8c24b 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: sql-exporter description: Database-agnostic SQL exporter for Prometheus type: application -version: 0.7.0 +version: 0.8.0 appVersion: 0.15.0 keywords: - exporter diff --git a/helm/README.md b/helm/README.md index 789a1640..cf278cd6 100644 --- a/helm/README.md +++ b/helm/README.md @@ -1,6 +1,6 @@ # sql-exporter -![Version: 0.7.0](https://img.shields.io/badge/Version-0.7.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.15.0](https://img.shields.io/badge/AppVersion-0.15.0-informational?style=flat-square) +![Version: 0.8.0](https://img.shields.io/badge/Version-0.8.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.15.0](https://img.shields.io/badge/AppVersion-0.15.0-informational?style=flat-square) Database-agnostic SQL exporter for Prometheus @@ -51,6 +51,7 @@ helm install sql_exporter/sql-exporter | podAnnotations | object | `{}` | Pod annotations | | podSecurityContext | object | `{}` | Pod security context | | createConfig | bool | `true` | | +| reloadEnabled | bool | `false` | Enable reload collector data handler (endpoint /reload) | ### Prometheus ServiceMonitor diff --git a/helm/templates/deployment.yaml b/helm/templates/deployment.yaml index d469bcd2..3b80f46b 100644 --- a/helm/templates/deployment.yaml +++ b/helm/templates/deployment.yaml @@ -53,7 +53,11 @@ spec: {{- toYaml .Values.securityContext | nindent 12 }} image: "{{ .Values.image.repository }}:{{ default .Chart.AppVersion .Values.image.tag }}" imagePullPolicy: {{ .Values.image.pullPolicy }} - args: ["-config.file=/etc/sql_exporter/sql_exporter.yml"] + args: + - "-config.file=/etc/sql_exporter/sql_exporter.yml" + {{- if .Values.reloadEnabled }} + - "-web.enable-reload" + {{- end }} {{- if eq (include "sql-exporter.volumes" .) "\"true\"" }} volumeMounts: {{- if .Values.createConfig }} diff --git a/helm/values.yaml b/helm/values.yaml index afccc250..235d4d63 100644 --- a/helm/values.yaml +++ b/helm/values.yaml @@ -117,6 +117,8 @@ serviceMonitor: # mountPath: /etc/config # Set to true to create a config as a part of the helm chart createConfig: true +# -- Enable reload collector data handler (endpoint /reload) +reloadEnabled: false config: global: # -- Scrape timeout From 2e673bf441203e6d02a39d6896421789ca88d439 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Mon, 14 Oct 2024 12:04:15 +0200 Subject: [PATCH 278/401] build(mod): update minimum go version to 1.22 (#607) --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 9c102e19..c424ee11 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/burningalchemist/sql_exporter -go 1.21.0 +go 1.22 toolchain go1.21.9 From 180e26d938ab88bf106ccef8c96e674358582338 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 12:24:09 +0200 Subject: [PATCH 279/401] deps: bump github.com/ClickHouse/clickhouse-go/v2 from 2.27.0 to 2.29.0 (#608) Bumps [github.com/ClickHouse/clickhouse-go/v2](https://github.com/ClickHouse/clickhouse-go) from 2.27.0 to 2.29.0. - [Release notes](https://github.com/ClickHouse/clickhouse-go/releases) - [Changelog](https://github.com/ClickHouse/clickhouse-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/ClickHouse/clickhouse-go/compare/v2.27.0...v2.29.0) --- updated-dependencies: - dependency-name: github.com/ClickHouse/clickhouse-go/v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 +--- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index c424ee11..ba6dd9a8 100644 --- a/go.mod +++ b/go.mod @@ -2,10 +2,8 @@ module github.com/burningalchemist/sql_exporter go 1.22 -toolchain go1.21.9 - require ( - github.com/ClickHouse/clickhouse-go/v2 v2.27.0 + github.com/ClickHouse/clickhouse-go/v2 v2.29.0 github.com/aws/aws-sdk-go-v2 v1.30.5 github.com/aws/aws-sdk-go-v2/config v1.27.33 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.8 diff --git a/go.sum b/go.sum index fa85ab30..739295ca 100644 --- a/go.sum +++ b/go.sum @@ -20,8 +20,8 @@ github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 h1:XHOnouVk1mx github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= github.com/ClickHouse/ch-go v0.61.5 h1:zwR8QbYI0tsMiEcze/uIMK+Tz1D3XZXLdNrlaOpeEI4= github.com/ClickHouse/ch-go v0.61.5/go.mod h1:s1LJW/F/LcFs5HJnuogFMta50kKDO0lf9zzfrbl0RQg= -github.com/ClickHouse/clickhouse-go/v2 v2.27.0 h1:EquJUy8KWgY1ELMmN1gCULncbqU72fN8eYd8qmkp/1g= -github.com/ClickHouse/clickhouse-go/v2 v2.27.0/go.mod h1:XvcaX7ai9T9si83rZ0cB3y2upq9AYMwdj16Trqm+sPg= +github.com/ClickHouse/clickhouse-go/v2 v2.29.0 h1:Dj1w59RssRyLgGHXtYaWU0eIM1pJsu9nGPi/btmvAqw= +github.com/ClickHouse/clickhouse-go/v2 v2.29.0/go.mod h1:bLookq6qZJ4Ush/6tOAnJGh1Sf3Sa/nQoMn71p7ZCUE= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c h1:RGWPOewvKIROun94nF7v2cua9qP+thov/7M50KEoeSU= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M= From afacdc7438b58b0461e7479e71f5423adbc4db78 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 12:24:52 +0200 Subject: [PATCH 280/401] deps: bump github.com/snowflakedb/gosnowflake from 1.11.1 to 1.11.2 (#600) Bumps [github.com/snowflakedb/gosnowflake](https://github.com/snowflakedb/gosnowflake) from 1.11.1 to 1.11.2. - [Release notes](https://github.com/snowflakedb/gosnowflake/releases) - [Changelog](https://github.com/snowflakedb/gosnowflake/blob/master/release.go) - [Commits](https://github.com/snowflakedb/gosnowflake/compare/v1.11.1...v1.11.2) --- updated-dependencies: - dependency-name: github.com/snowflakedb/gosnowflake dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index ba6dd9a8..169710b0 100644 --- a/go.mod +++ b/go.mod @@ -18,7 +18,7 @@ require ( github.com/prometheus/common v0.60.0 github.com/prometheus/exporter-toolkit v0.11.0 github.com/sethvargo/go-envconfig v1.1.0 - github.com/snowflakedb/gosnowflake v1.11.1 + github.com/snowflakedb/gosnowflake v1.11.2 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.23.1 google.golang.org/protobuf v1.34.2 diff --git a/go.sum b/go.sum index 739295ca..14fe235b 100644 --- a/go.sum +++ b/go.sum @@ -203,8 +203,8 @@ github.com/simonpasquier/klog-gokit/v3 v3.4.0 h1:2eD2INbzUHuGNynPP86BCB8H6Lwfp6w github.com/simonpasquier/klog-gokit/v3 v3.4.0/go.mod h1:RREVB5Cc6yYHsweRfhUyM1ZP+Odb8ehxLfY8jaiqvjg= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/snowflakedb/gosnowflake v1.11.1 h1:E91s8vBOSroaSTLsyjO4QPkEuzGmZcCxEFQLg214mvk= -github.com/snowflakedb/gosnowflake v1.11.1/go.mod h1:WFe+8mpsapDaQjHX6BqJBKtfQCGlGD3lHKeDsKfpx2A= +github.com/snowflakedb/gosnowflake v1.11.2 h1:eAMsxrCiC6ij5wX3dHx1TQCBOdDmCK062Ir8rndUkRg= +github.com/snowflakedb/gosnowflake v1.11.2/go.mod h1:WFe+8mpsapDaQjHX6BqJBKtfQCGlGD3lHKeDsKfpx2A= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= From 377ba6870d4831472601859d570757741d3ac5c8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 14:20:44 +0200 Subject: [PATCH 281/401] deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager from 1.32.8 to 1.34.2 (#610) deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager Bumps [github.com/aws/aws-sdk-go-v2/service/secretsmanager](https://github.com/aws/aws-sdk-go-v2) from 1.32.8 to 1.34.2. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/service/iot/v1.34.2/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/dynamodb/v1.32.8...service/iot/v1.34.2) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/service/secretsmanager dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 10 +++++----- go.sum | 20 ++++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/go.mod b/go.mod index 169710b0..0139c6df 100644 --- a/go.mod +++ b/go.mod @@ -4,9 +4,9 @@ go 1.22 require ( github.com/ClickHouse/clickhouse-go/v2 v2.29.0 - github.com/aws/aws-sdk-go-v2 v1.30.5 + github.com/aws/aws-sdk-go-v2 v1.32.2 github.com/aws/aws-sdk-go-v2/config v1.27.33 - github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.8 + github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.2 github.com/go-kit/log v0.2.1 github.com/go-sql-driver/mysql v1.8.1 github.com/jackc/pgx/v5 v5.7.1 @@ -43,8 +43,8 @@ require ( github.com/aws/aws-sdk-go-v2/credentials v1.17.32 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.13 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.17 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.17 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.21 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.21 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4 // indirect @@ -55,7 +55,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/sso v1.22.7 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.7 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.30.7 // indirect - github.com/aws/smithy-go v1.20.4 // indirect + github.com/aws/smithy-go v1.22.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect diff --git a/go.sum b/go.sum index 14fe235b..9bec3525 100644 --- a/go.sum +++ b/go.sum @@ -28,8 +28,8 @@ github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1 github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY= github.com/apache/arrow/go/v15 v15.0.0 h1:1zZACWf85oEZY5/kd9dsQS7i+2G5zVQcbKTHgslqHNA= github.com/apache/arrow/go/v15 v15.0.0/go.mod h1:DGXsR3ajT524njufqf95822i+KTh+yea1jass9YXgjA= -github.com/aws/aws-sdk-go-v2 v1.30.5 h1:mWSRTwQAb0aLE17dSzztCVJWI9+cRMgqebndjwDyK0g= -github.com/aws/aws-sdk-go-v2 v1.30.5/go.mod h1:CT+ZPWXbYrci8chcARI3OmI/qgd+f6WtuLOoaIA8PR0= +github.com/aws/aws-sdk-go-v2 v1.32.2 h1:AkNLZEyYMLnx/Q/mSKkcMqwNFXMAvFto9bNsHqcTduI= +github.com/aws/aws-sdk-go-v2 v1.32.2/go.mod h1:2SK5n0a2karNTv5tbP1SjsX0uhttou00v/HpXKM1ZUo= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg= github.com/aws/aws-sdk-go-v2/config v1.27.33 h1:Nof9o/MsmH4oa0s2q9a0k7tMz5x/Yj5k06lDODWz3BU= @@ -40,10 +40,10 @@ github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.13 h1:pfQ2sqNpMVK6xz2RbqLEL0 github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.13/go.mod h1:NG7RXPUlqfsCLLFfi0+IpKN4sCB9D9fw/qTaSB+xRoU= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 h1:7Zwtt/lP3KNRkeZre7soMELMGNoBrutx8nobg1jKWmo= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15/go.mod h1:436h2adoHb57yd+8W+gYPrrA9U/R/SuAuOO42Ushzhw= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.17 h1:pI7Bzt0BJtYA0N/JEC6B8fJ4RBrEMi1LBrkMdFYNSnQ= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.17/go.mod h1:Dh5zzJYMtxfIjYW+/evjQ8uj2OyR/ve2KROHGHlSFqE= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.17 h1:Mqr/V5gvrhA2gvgnF42Zh5iMiQNcOYthFYwCyrnuWlc= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.17/go.mod h1:aLJpZlCmjE+V+KtN1q1uyZkfnUWpQGpbsn89XPKyzfU= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.21 h1:UAsR3xA31QGf79WzpG/ixT9FZvQlh5HY1NRqSHBNOCk= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.21/go.mod h1:JNr43NFf5L9YaG3eKTm7HQzls9J+A9YYcGI5Quh1r2Y= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.21 h1:6jZVETqmYCadGFvrYEQfC5fAQmlo80CeL5psbno6r0s= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.21/go.mod h1:1SR0GbLlnN3QUmYaflZNiH1ql+1qrSiB2vwcJ+4UM60= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvKgqdiXoTxAF4HQcQ= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 h1:81KE7vaZzrl7yHBYHVEzYB8sypz11NMOZ40YlWvPxsU= @@ -58,16 +58,16 @@ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 h1:f9RyWNtS8oH7cZ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5/go.mod h1:h5CoMZV2VF297/VLhRhO1WF+XYWOzXo+4HsObA4HjBQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 h1:6cnno47Me9bRykw9AEv9zkXE+5or7jz8TsskTTccbgc= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1/go.mod h1:qmdkIIAC+GCLASF7R2whgNrJADz0QZPX+Seiw/i4S3o= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.8 h1:HNXhQReFG2fbucvPRxDabbIGQf/6dieOfTnzoGPEqXI= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.8/go.mod h1:BYr9P/rrcLNJ8A36nT15p8tpoVDZ5lroHuMn/njecBw= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.2 h1:Rrqru2wYkKQCS2IM5/JrgKUQIoNTqA6y/iuxkjzxC6M= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.2/go.mod h1:QuCURO98Sqee2AXmqDNxKXYFm2OEDAVAPApMqO0Vqnc= github.com/aws/aws-sdk-go-v2/service/sso v1.22.7 h1:pIaGg+08llrP7Q5aiz9ICWbY8cqhTkyy+0SHvfzQpTc= github.com/aws/aws-sdk-go-v2/service/sso v1.22.7/go.mod h1:eEygMHnTKH/3kNp9Jr1n3PdejuSNcgwLe1dWgQtO0VQ= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.7 h1:/Cfdu0XV3mONYKaOt1Gr0k1KvQzkzPyiKUdlWJqy+J4= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.7/go.mod h1:bCbAxKDqNvkHxRaIMnyVPXPo+OaPRwvmgzMxbz1VKSA= github.com/aws/aws-sdk-go-v2/service/sts v1.30.7 h1:NKTa1eqZYw8tiHSRGpP0VtTdub/8KNk8sDkNPFaOKDE= github.com/aws/aws-sdk-go-v2/service/sts v1.30.7/go.mod h1:NXi1dIAGteSaRLqYgarlhP/Ij0cFT+qmCwiJqWh/U5o= -github.com/aws/smithy-go v1.20.4 h1:2HK1zBdPgRbjFOHlfeQZfpC4r72MOb9bZkiFwggKO+4= -github.com/aws/smithy-go v1.20.4/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= +github.com/aws/smithy-go v1.22.0 h1:uunKnWlcoL3zO7q+gG2Pk53joueEOsnNB28QdMsmiMM= +github.com/aws/smithy-go v1.22.0/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= From 3416f4b60427e9672396eee597789ff485c38620 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 15:59:57 +0200 Subject: [PATCH 282/401] deps: bump github.com/aws/aws-sdk-go-v2/config from 1.27.33 to 1.27.43 (#609) Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.27.33 to 1.27.43. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.27.33...config/v1.27.43) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/config dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 16 ++++++++-------- go.sum | 32 ++++++++++++++++---------------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/go.mod b/go.mod index 0139c6df..c91b79c2 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.22 require ( github.com/ClickHouse/clickhouse-go/v2 v2.29.0 github.com/aws/aws-sdk-go-v2 v1.32.2 - github.com/aws/aws-sdk-go-v2/config v1.27.33 + github.com/aws/aws-sdk-go-v2/config v1.27.43 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.2 github.com/go-kit/log v0.2.1 github.com/go-sql-driver/mysql v1.8.1 @@ -40,21 +40,21 @@ require ( github.com/andybalholm/brotli v1.1.0 // indirect github.com/apache/arrow/go/v15 v15.0.0 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.32 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.13 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.41 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.17 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.21 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.21 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0 // indirect github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.19 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.2 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 // indirect github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.22.7 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.7 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.30.7 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.24.2 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.2 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.32.2 // indirect github.com/aws/smithy-go v1.22.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect diff --git a/go.sum b/go.sum index 9bec3525..ca3983a8 100644 --- a/go.sum +++ b/go.sum @@ -32,12 +32,12 @@ github.com/aws/aws-sdk-go-v2 v1.32.2 h1:AkNLZEyYMLnx/Q/mSKkcMqwNFXMAvFto9bNsHqcT github.com/aws/aws-sdk-go-v2 v1.32.2/go.mod h1:2SK5n0a2karNTv5tbP1SjsX0uhttou00v/HpXKM1ZUo= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg= -github.com/aws/aws-sdk-go-v2/config v1.27.33 h1:Nof9o/MsmH4oa0s2q9a0k7tMz5x/Yj5k06lDODWz3BU= -github.com/aws/aws-sdk-go-v2/config v1.27.33/go.mod h1:kEqdYzRb8dd8Sy2pOdEbExTTF5v7ozEXX0McgPE7xks= -github.com/aws/aws-sdk-go-v2/credentials v1.17.32 h1:7Cxhp/BnT2RcGy4VisJ9miUPecY+lyE9I8JvcZofn9I= -github.com/aws/aws-sdk-go-v2/credentials v1.17.32/go.mod h1:P5/QMF3/DCHbXGEGkdbilXHsyTBX5D3HSwcrSc9p20I= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.13 h1:pfQ2sqNpMVK6xz2RbqLEL0GH87JOwSxPV2rzm8Zsb74= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.13/go.mod h1:NG7RXPUlqfsCLLFfi0+IpKN4sCB9D9fw/qTaSB+xRoU= +github.com/aws/aws-sdk-go-v2/config v1.27.43 h1:p33fDDihFC390dhhuv8nOmX419wjOSDQRb+USt20RrU= +github.com/aws/aws-sdk-go-v2/config v1.27.43/go.mod h1:pYhbtvg1siOOg8h5an77rXle9tVG8T+BWLWAo7cOukc= +github.com/aws/aws-sdk-go-v2/credentials v1.17.41 h1:7gXo+Axmp+R4Z+AK8YFQO0ZV3L0gizGINCOWxSLY9W8= +github.com/aws/aws-sdk-go-v2/credentials v1.17.41/go.mod h1:u4Eb8d3394YLubphT4jLEwN1rLNq2wFOlT6OuxFwPzU= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.17 h1:TMH3f/SCAWdNtXXVPPu5D6wrr4G5hI1rAxbcocKfC7Q= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.17/go.mod h1:1ZRXLdTpzdJb9fwTMXiLipENRxkGMTn1sfKexGllQCw= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 h1:7Zwtt/lP3KNRkeZre7soMELMGNoBrutx8nobg1jKWmo= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15/go.mod h1:436h2adoHb57yd+8W+gYPrrA9U/R/SuAuOO42Ushzhw= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.21 h1:UAsR3xA31QGf79WzpG/ixT9FZvQlh5HY1NRqSHBNOCk= @@ -48,24 +48,24 @@ github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvK github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 h1:81KE7vaZzrl7yHBYHVEzYB8sypz11NMOZ40YlWvPxsU= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5/go.mod h1:LIt2rg7Mcgn09Ygbdh/RdIm0rQ+3BNkbP1gyVMFtRK0= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4 h1:KypMCbLPPHEmf9DgMGw51jMj77VfGPAN2Kv4cfhlfgI= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4/go.mod h1:Vz1JQXliGcQktFTN/LN6uGppAIRoLBR2bMvIMP0gOjc= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0 h1:TToQNkvGguu209puTojY/ozlqy2d/SFNcoLIqTFi42g= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0/go.mod h1:0jp+ltwkf+SwG2fm/PKo8t4y8pJSgOCO4D8Lz3k0aHQ= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 h1:ZMeFZ5yk+Ek+jNr1+uwCd2tG89t6oTS5yVWpa6yy2es= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7/go.mod h1:mxV05U+4JiHqIpGqqYXOHLPKUC6bDXC44bsUhNjOEwY= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.19 h1:rfprUlsdzgl7ZL2KlXiUAoJnI/VxfHCvDFr2QDFj6u4= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.19/go.mod h1:SCWkEdRq8/7EK60NcvvQ6NXKuTcchAD4ROAsC37VEZE= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.2 h1:s7NA1SOw8q/5c0wr8477yOPp0z+uBaXBnLE0XYb0POA= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.2/go.mod h1:fnjjWyAW/Pj5HYOxl9LJqWtEwS7W2qgcRLWP+uWbss0= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 h1:f9RyWNtS8oH7cZlbn+/JNPpjUk5+5fLd5lM9M0i49Ys= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5/go.mod h1:h5CoMZV2VF297/VLhRhO1WF+XYWOzXo+4HsObA4HjBQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 h1:6cnno47Me9bRykw9AEv9zkXE+5or7jz8TsskTTccbgc= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1/go.mod h1:qmdkIIAC+GCLASF7R2whgNrJADz0QZPX+Seiw/i4S3o= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.2 h1:Rrqru2wYkKQCS2IM5/JrgKUQIoNTqA6y/iuxkjzxC6M= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.2/go.mod h1:QuCURO98Sqee2AXmqDNxKXYFm2OEDAVAPApMqO0Vqnc= -github.com/aws/aws-sdk-go-v2/service/sso v1.22.7 h1:pIaGg+08llrP7Q5aiz9ICWbY8cqhTkyy+0SHvfzQpTc= -github.com/aws/aws-sdk-go-v2/service/sso v1.22.7/go.mod h1:eEygMHnTKH/3kNp9Jr1n3PdejuSNcgwLe1dWgQtO0VQ= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.7 h1:/Cfdu0XV3mONYKaOt1Gr0k1KvQzkzPyiKUdlWJqy+J4= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.7/go.mod h1:bCbAxKDqNvkHxRaIMnyVPXPo+OaPRwvmgzMxbz1VKSA= -github.com/aws/aws-sdk-go-v2/service/sts v1.30.7 h1:NKTa1eqZYw8tiHSRGpP0VtTdub/8KNk8sDkNPFaOKDE= -github.com/aws/aws-sdk-go-v2/service/sts v1.30.7/go.mod h1:NXi1dIAGteSaRLqYgarlhP/Ij0cFT+qmCwiJqWh/U5o= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.2 h1:bSYXVyUzoTHoKalBmwaZxs97HU9DWWI3ehHSAMa7xOk= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.2/go.mod h1:skMqY7JElusiOUjMJMOv1jJsP7YUg7DrhgqZZWuzu1U= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.2 h1:AhmO1fHINP9vFYUE0LHzCWg/LfUWUF+zFPEcY9QXb7o= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.2/go.mod h1:o8aQygT2+MVP0NaV6kbdE1YnnIM8RRVQzoeUH45GOdI= +github.com/aws/aws-sdk-go-v2/service/sts v1.32.2 h1:CiS7i0+FUe+/YY1GvIBLLrR/XNGZ4CtM1Ll0XavNuVo= +github.com/aws/aws-sdk-go-v2/service/sts v1.32.2/go.mod h1:HtaiBI8CjYoNVde8arShXb94UbQQi9L4EMr6D+xGBwo= github.com/aws/smithy-go v1.22.0 h1:uunKnWlcoL3zO7q+gG2Pk53joueEOsnNB28QdMsmiMM= github.com/aws/smithy-go v1.22.0/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= From 373c1a5f8a4d7238d5a88bd184120fe524bc0aa6 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Fri, 25 Oct 2024 15:36:26 +0200 Subject: [PATCH 283/401] refactor: remove deprecated --log.json flag (#613) --- cmd/sql_exporter/main.go | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/cmd/sql_exporter/main.go b/cmd/sql_exporter/main.go index 882df2a2..a73862f1 100644 --- a/cmd/sql_exporter/main.go +++ b/cmd/sql_exporter/main.go @@ -38,7 +38,6 @@ var ( enableReload = flag.Bool("web.enable-reload", false, "Enable reload collector data handler") webConfigFile = flag.String("web.config.file", "", "[EXPERIMENTAL] TLS/BasicAuth configuration file path") configFile = flag.String("config.file", "sql_exporter.yml", "SQL Exporter configuration file path") - logFormatJSON = flag.Bool("log.json", false, "[DEPRECATED] Set log output format to JSON") logFormat = flag.String("log.format", "logfmt", "Set log output format") logLevel = flag.String("log.level", "info", "Set log level") ) @@ -66,7 +65,7 @@ func main() { } // Setup logging. - logger, err := setupLogging(*logLevel, *logFormat, *logFormatJSON) + logger, err := setupLogging(*logLevel, *logFormat) if err != nil { fmt.Printf("Error initializing exporter: %s\n", err) os.Exit(1) @@ -152,7 +151,7 @@ func startScrapeErrorsDropTicker(exporter sql_exporter.Exporter, interval model. } // setupLogging configures and initializes the logging system. -func setupLogging(logLevel, logFormat string, logFormatJSON bool) (log.Logger, error) { +func setupLogging(logLevel, logFormat string) (log.Logger, error) { promlogConfig := &promlog.Config{ Level: &promlog.AllowedLevel{}, Format: &promlog.AllowedFormat{}, @@ -162,13 +161,7 @@ func setupLogging(logLevel, logFormat string, logFormatJSON bool) (log.Logger, e return nil, err } - // Override log format if JSON is specified. - finalLogFormat := logFormat - if logFormatJSON { - fmt.Print("Warning: The flag --log.json is deprecated and will be removed in a future release. Please use --log.format=json instead\n") - finalLogFormat = "json" - } - if err := promlogConfig.Format.Set(finalLogFormat); err != nil { + if err := promlogConfig.Format.Set(logFormat); err != nil { return nil, err } // Overriding the default klog with our go-kit klog implementation. From fc8d20a1b637a4d8477c3d57b4ee962f9e3bbc74 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Fri, 25 Oct 2024 15:41:15 +0200 Subject: [PATCH 284/401] build(promu): set go version to 1.23 (#614) --- .promu.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.promu.yml b/.promu.yml index d7ff8025..9067195a 100644 --- a/.promu.yml +++ b/.promu.yml @@ -1,6 +1,6 @@ go: cgo: false - version: 1.21 + version: 1.23 repository: path: github.com/burningalchemist/sql_exporter build: From fb6cca27ce77d014e763d957dfc0ea72dc9ecbfa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 25 Oct 2024 16:44:22 +0200 Subject: [PATCH 285/401] deps: bump github.com/prometheus/client_golang from 1.20.4 to 1.20.5 (#616) Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.20.4 to 1.20.5. - [Release notes](https://github.com/prometheus/client_golang/releases) - [Changelog](https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md) - [Commits](https://github.com/prometheus/client_golang/compare/v1.20.4...v1.20.5) --- updated-dependencies: - dependency-name: github.com/prometheus/client_golang dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index c91b79c2..4c1cec24 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,7 @@ require ( github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.9 github.com/microsoft/go-mssqldb v1.7.2 - github.com/prometheus/client_golang v1.20.4 + github.com/prometheus/client_golang v1.20.5 github.com/prometheus/client_model v0.6.1 github.com/prometheus/common v0.60.0 github.com/prometheus/exporter-toolkit v0.11.0 diff --git a/go.sum b/go.sum index ca3983a8..6882dfd9 100644 --- a/go.sum +++ b/go.sum @@ -180,8 +180,8 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.20.4 h1:Tgh3Yr67PaOv/uTqloMsCEdeuFTatm5zIq5+qNN23vI= -github.com/prometheus/client_golang v1.20.4/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.60.0 h1:+V9PAREWNvJMAuJ1x1BaWl9dewMW4YrHZQbx0sJNllA= From 0b2cdf9f2a76ddb55511a91a9cf5db7b60dc2158 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 25 Oct 2024 16:46:59 +0200 Subject: [PATCH 286/401] deps: bump github.com/ClickHouse/clickhouse-go/v2 from 2.29.0 to 2.30.0 (#618) Bumps [github.com/ClickHouse/clickhouse-go/v2](https://github.com/ClickHouse/clickhouse-go) from 2.29.0 to 2.30.0. - [Release notes](https://github.com/ClickHouse/clickhouse-go/releases) - [Changelog](https://github.com/ClickHouse/clickhouse-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/ClickHouse/clickhouse-go/compare/v2.29.0...v2.30.0) --- updated-dependencies: - dependency-name: github.com/ClickHouse/clickhouse-go/v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 14 +++++++------- go.sum | 30 ++++++++++++++++-------------- 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/go.mod b/go.mod index 4c1cec24..771056b8 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/burningalchemist/sql_exporter go 1.22 require ( - github.com/ClickHouse/clickhouse-go/v2 v2.29.0 + github.com/ClickHouse/clickhouse-go/v2 v2.30.0 github.com/aws/aws-sdk-go-v2 v1.32.2 github.com/aws/aws-sdk-go-v2/config v1.27.43 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.2 @@ -37,7 +37,7 @@ require ( github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect github.com/ClickHouse/ch-go v0.61.5 // indirect github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c // indirect - github.com/andybalholm/brotli v1.1.0 // indirect + github.com/andybalholm/brotli v1.1.1 // indirect github.com/apache/arrow/go/v15 v15.0.0 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 // indirect github.com/aws/aws-sdk-go-v2/credentials v1.17.41 // indirect @@ -101,15 +101,15 @@ require ( github.com/zeebo/xxh3 v1.0.2 // indirect go.opentelemetry.io/otel v1.26.0 // indirect go.opentelemetry.io/otel/trace v1.26.0 // indirect - golang.org/x/crypto v0.27.0 // indirect + golang.org/x/crypto v0.28.0 // indirect golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect golang.org/x/mod v0.17.0 // indirect - golang.org/x/net v0.29.0 // indirect + golang.org/x/net v0.30.0 // indirect golang.org/x/oauth2 v0.23.0 // indirect golang.org/x/sync v0.8.0 // indirect - golang.org/x/sys v0.25.0 // indirect - golang.org/x/term v0.24.0 // indirect - golang.org/x/text v0.18.0 // indirect + golang.org/x/sys v0.26.0 // indirect + golang.org/x/term v0.25.0 // indirect + golang.org/x/text v0.19.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/go.sum b/go.sum index 6882dfd9..33bc2f50 100644 --- a/go.sum +++ b/go.sum @@ -20,12 +20,12 @@ github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 h1:XHOnouVk1mx github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= github.com/ClickHouse/ch-go v0.61.5 h1:zwR8QbYI0tsMiEcze/uIMK+Tz1D3XZXLdNrlaOpeEI4= github.com/ClickHouse/ch-go v0.61.5/go.mod h1:s1LJW/F/LcFs5HJnuogFMta50kKDO0lf9zzfrbl0RQg= -github.com/ClickHouse/clickhouse-go/v2 v2.29.0 h1:Dj1w59RssRyLgGHXtYaWU0eIM1pJsu9nGPi/btmvAqw= -github.com/ClickHouse/clickhouse-go/v2 v2.29.0/go.mod h1:bLookq6qZJ4Ush/6tOAnJGh1Sf3Sa/nQoMn71p7ZCUE= +github.com/ClickHouse/clickhouse-go/v2 v2.30.0 h1:AG4D/hW39qa58+JHQIFOSnxyL46H6h2lrmGGk17dhFo= +github.com/ClickHouse/clickhouse-go/v2 v2.30.0/go.mod h1:i9ZQAojcayW3RsdCb3YR+n+wC2h65eJsZCscZ1Z1wyo= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c h1:RGWPOewvKIROun94nF7v2cua9qP+thov/7M50KEoeSU= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= -github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M= -github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY= +github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA= +github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= github.com/apache/arrow/go/v15 v15.0.0 h1:1zZACWf85oEZY5/kd9dsQS7i+2G5zVQcbKTHgslqHNA= github.com/apache/arrow/go/v15 v15.0.0/go.mod h1:DGXsR3ajT524njufqf95822i+KTh+yea1jass9YXgjA= github.com/aws/aws-sdk-go-v2 v1.32.2 h1:AkNLZEyYMLnx/Q/mSKkcMqwNFXMAvFto9bNsHqcTduI= @@ -221,6 +221,8 @@ github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23n github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= github.com/xo/dburl v0.23.1 h1:PX1RgQaaJV1S5iADcM1TT39OLrg5daeV6Hp7RYwVoYw= github.com/xo/dburl v0.23.1/go.mod h1:B7/G9FGungw6ighV8xJNwWYQPMfn3gsi2sn5SE8Bzco= +github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU= +github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E= github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -237,8 +239,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A= -golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70= +golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw= +golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U= golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI= golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -250,8 +252,8 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo= -golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0= +golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= +golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -272,17 +274,17 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34= -golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo= +golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.24.0 h1:Mh5cbb+Zk2hqqXNO7S1iTjEphVL+jb8ZWaqh/g+JWkM= -golang.org/x/term v0.24.0/go.mod h1:lOBK/LVxemqiMij05LGJ0tzNr8xlmwBRJ81PX6wVLH8= +golang.org/x/term v0.25.0 h1:WtHI/ltw4NvSUig5KARz9h521QvRC8RmF/cuYqifU24= +golang.org/x/term v0.25.0/go.mod h1:RPyXicDX+6vLxogjjRxjgD2TKtmAO6NZBsBRfrOLu7M= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224= -golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM= +golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= From 6ca2ce356409150edf8b804a776f612dbb7ed8e9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 25 Oct 2024 16:51:16 +0200 Subject: [PATCH 287/401] deps: bump github.com/aws/aws-sdk-go-v2/config from 1.27.43 to 1.28.0 (#617) Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.27.43 to 1.28.0. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.27.43...v1.28.0) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/config dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 771056b8..4bb9c9c0 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.22 require ( github.com/ClickHouse/clickhouse-go/v2 v2.30.0 github.com/aws/aws-sdk-go-v2 v1.32.2 - github.com/aws/aws-sdk-go-v2/config v1.27.43 + github.com/aws/aws-sdk-go-v2/config v1.28.0 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.2 github.com/go-kit/log v0.2.1 github.com/go-sql-driver/mysql v1.8.1 diff --git a/go.sum b/go.sum index 33bc2f50..0292f56a 100644 --- a/go.sum +++ b/go.sum @@ -32,8 +32,8 @@ github.com/aws/aws-sdk-go-v2 v1.32.2 h1:AkNLZEyYMLnx/Q/mSKkcMqwNFXMAvFto9bNsHqcT github.com/aws/aws-sdk-go-v2 v1.32.2/go.mod h1:2SK5n0a2karNTv5tbP1SjsX0uhttou00v/HpXKM1ZUo= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg= -github.com/aws/aws-sdk-go-v2/config v1.27.43 h1:p33fDDihFC390dhhuv8nOmX419wjOSDQRb+USt20RrU= -github.com/aws/aws-sdk-go-v2/config v1.27.43/go.mod h1:pYhbtvg1siOOg8h5an77rXle9tVG8T+BWLWAo7cOukc= +github.com/aws/aws-sdk-go-v2/config v1.28.0 h1:FosVYWcqEtWNxHn8gB/Vs6jOlNwSoyOCA/g/sxyySOQ= +github.com/aws/aws-sdk-go-v2/config v1.28.0/go.mod h1:pYhbtvg1siOOg8h5an77rXle9tVG8T+BWLWAo7cOukc= github.com/aws/aws-sdk-go-v2/credentials v1.17.41 h1:7gXo+Axmp+R4Z+AK8YFQO0ZV3L0gizGINCOWxSLY9W8= github.com/aws/aws-sdk-go-v2/credentials v1.17.41/go.mod h1:u4Eb8d3394YLubphT4jLEwN1rLNq2wFOlT6OuxFwPzU= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.17 h1:TMH3f/SCAWdNtXXVPPu5D6wrr4G5hI1rAxbcocKfC7Q= From bd6ff3584d68f267150f780a11ed67c5ac88f381 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 25 Oct 2024 16:53:21 +0200 Subject: [PATCH 288/401] deps: bump google.golang.org/protobuf from 1.34.2 to 1.35.1 (#615) Bumps google.golang.org/protobuf from 1.34.2 to 1.35.1. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 4bb9c9c0..88d716ec 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/snowflakedb/gosnowflake v1.11.2 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.23.1 - google.golang.org/protobuf v1.34.2 + google.golang.org/protobuf v1.35.1 gopkg.in/yaml.v3 v3.0.1 k8s.io/klog/v2 v2.70.1 ) diff --git a/go.sum b/go.sum index 0292f56a..d8d57366 100644 --- a/go.sum +++ b/go.sum @@ -301,8 +301,8 @@ gonum.org/v1/gonum v0.12.0 h1:xKuo6hzt+gMav00meVPUlXwSdoEJP46BR+wdxQEFK2o= gonum.org/v1/gonum v0.12.0/go.mod h1:73TDxJfAAHeA8Mk9mf8NlIppyhQNo5GLTcYeqgo2lvY= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= -google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= +google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= +google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From cfb08a1c44182f9ddd1727b3e7cef5d45e6e6dfe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 25 Oct 2024 17:20:44 +0200 Subject: [PATCH 289/401] deps: bump github.com/prometheus/common from 0.60.0 to 0.60.1 (#619) Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.60.0 to 0.60.1. - [Release notes](https://github.com/prometheus/common/releases) - [Changelog](https://github.com/prometheus/common/blob/main/RELEASE.md) - [Commits](https://github.com/prometheus/common/compare/v0.60.0...v0.60.1) --- updated-dependencies: - dependency-name: github.com/prometheus/common dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 88d716ec..1b13b9b5 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( github.com/microsoft/go-mssqldb v1.7.2 github.com/prometheus/client_golang v1.20.5 github.com/prometheus/client_model v0.6.1 - github.com/prometheus/common v0.60.0 + github.com/prometheus/common v0.60.1 github.com/prometheus/exporter-toolkit v0.11.0 github.com/sethvargo/go-envconfig v1.1.0 github.com/snowflakedb/gosnowflake v1.11.2 diff --git a/go.sum b/go.sum index d8d57366..4a905696 100644 --- a/go.sum +++ b/go.sum @@ -184,8 +184,8 @@ github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+ github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.60.0 h1:+V9PAREWNvJMAuJ1x1BaWl9dewMW4YrHZQbx0sJNllA= -github.com/prometheus/common v0.60.0/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/exporter-toolkit v0.11.0 h1:yNTsuZ0aNCNFQ3aFTD2uhPOvr4iD7fdBvKPAEGkNf+g= github.com/prometheus/exporter-toolkit v0.11.0/go.mod h1:BVnENhnNecpwoTLiABx7mrPB/OLRIgN74qlQbV+FK1Q= github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= From 29c47a4f0c85f145061a384320dab0be0f8e0281 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Sat, 26 Oct 2024 10:29:05 +0200 Subject: [PATCH 290/401] fix(packaging): update -log.format parameter for deb/rpm config (#621) --- packaging/conf/sql_exporter.default | 2 +- packaging/deb/sql_exporter.service | 2 +- packaging/rpm/sql_exporter.service | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packaging/conf/sql_exporter.default b/packaging/conf/sql_exporter.default index 083d83c2..3ad152fd 100644 --- a/packaging/conf/sql_exporter.default +++ b/packaging/conf/sql_exporter.default @@ -1,6 +1,6 @@ CONF_FILE=/etc/sql_exporter/sql_exporter.yml LISTEN_ADDRESS=0.0.0.0:9399 -LOG_JSON=false +LOG_FORMAT=logfmt LOG_LEVEL=debug ENABLE_RELOAD=false METRICS_PATH=/metrics diff --git a/packaging/deb/sql_exporter.service b/packaging/deb/sql_exporter.service index cc052630..ae9e4fb0 100644 --- a/packaging/deb/sql_exporter.service +++ b/packaging/deb/sql_exporter.service @@ -13,7 +13,7 @@ Restart=on-failure WorkingDirectory=/usr/share/sql_exporter RuntimeDirectory=sql_exporter RuntimeDirectoryMode=0750 -ExecStart=/usr/bin/sql_exporter -config.file=${CONF_FILE} -web.listen-address=${LISTEN_ADDRESS} -log.json=${LOG_JSON} -log.level=${LOG_LEVEL} -web.enable-reload=${ENABLE_RELOAD} -web.metrics-path=${METRICS_PATH} -web.config.file=${WEB_CONFIG_FILE} +ExecStart=/usr/bin/sql_exporter -config.file=${CONF_FILE} -web.listen-address=${LISTEN_ADDRESS} -log.format=${LOG_FORMAT} -log.level=${LOG_LEVEL} -web.enable-reload=${ENABLE_RELOAD} -web.metrics-path=${METRICS_PATH} -web.config.file=${WEB_CONFIG_FILE} LimitNOFILE=10000 TimeoutStopSec=20 CapabilityBoundingSet= diff --git a/packaging/rpm/sql_exporter.service b/packaging/rpm/sql_exporter.service index 5956ac06..a92ca58a 100644 --- a/packaging/rpm/sql_exporter.service +++ b/packaging/rpm/sql_exporter.service @@ -13,7 +13,7 @@ Restart=on-failure WorkingDirectory=/usr/share/sql_exporter RuntimeDirectory=sql_exporter RuntimeDirectoryMode=0750 -ExecStart=/usr/bin/sql_exporter -config.file=${CONF_FILE} -web.listen-address=${LISTEN_ADDRESS} -log.json=${LOG_JSON} -log.level=${LOG_LEVEL} -web.enable-reload=${ENABLE_RELOAD} -web.metrics-path=${METRICS_PATH} -web.config.file=${WEB_CONFIG_FILE} +ExecStart=/usr/bin/sql_exporter -config.file=${CONF_FILE} -web.listen-address=${LISTEN_ADDRESS} -log.format=${LOG_FORMAT} -log.level=${LOG_LEVEL} -web.enable-reload=${ENABLE_RELOAD} -web.metrics-path=${METRICS_PATH} -web.config.file=${WEB_CONFIG_FILE} LimitNOFILE=10000 TimeoutStopSec=20 CapabilityBoundingSet= From a1726ff66775980c1de3ad44bfffb169525b2dd1 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Sat, 26 Oct 2024 10:30:21 +0200 Subject: [PATCH 291/401] Bump up version to 0.16.0 (#622) --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index a5510516..04a373ef 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.15.0 +0.16.0 From d1db481be0250555b92e886b01a4c3ce7c1abb2a Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Sat, 26 Oct 2024 10:53:53 +0200 Subject: [PATCH 292/401] feat(helm): add logFormat and logLevel params, update app version (#623) --- helm/Chart.yaml | 4 ++-- helm/README.md | 6 ++++-- helm/templates/deployment.yaml | 2 ++ helm/values.yaml | 6 +++++- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 13b8c24b..8f395ebe 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: sql-exporter description: Database-agnostic SQL exporter for Prometheus type: application -version: 0.8.0 -appVersion: 0.15.0 +version: 0.9.0 +appVersion: 0.16.0 keywords: - exporter - servicemonitor diff --git a/helm/README.md b/helm/README.md index cf278cd6..d7770f49 100644 --- a/helm/README.md +++ b/helm/README.md @@ -1,6 +1,6 @@ # sql-exporter -![Version: 0.8.0](https://img.shields.io/badge/Version-0.8.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.15.0](https://img.shields.io/badge/AppVersion-0.15.0-informational?style=flat-square) +![Version: 0.9.0](https://img.shields.io/badge/Version-0.9.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.16.0](https://img.shields.io/badge/AppVersion-0.16.0-informational?style=flat-square) Database-agnostic SQL exporter for Prometheus @@ -50,7 +50,9 @@ helm install sql_exporter/sql-exporter | podLabels | object | `{}` | Pod labels | | podAnnotations | object | `{}` | Pod annotations | | podSecurityContext | object | `{}` | Pod security context | -| createConfig | bool | `true` | | +| createConfig | bool | `true` | Set to true to create a config as a part of the helm chart | +| logLevel | string | `"debug"` | Set log level (info if unset) | +| logFormat | string | `"logfmt"` | Set log format (logfmt if unset) | | reloadEnabled | bool | `false` | Enable reload collector data handler (endpoint /reload) | ### Prometheus ServiceMonitor diff --git a/helm/templates/deployment.yaml b/helm/templates/deployment.yaml index 3b80f46b..f8ed4518 100644 --- a/helm/templates/deployment.yaml +++ b/helm/templates/deployment.yaml @@ -55,6 +55,8 @@ spec: imagePullPolicy: {{ .Values.image.pullPolicy }} args: - "-config.file=/etc/sql_exporter/sql_exporter.yml" + - "-log.level={{ .Values.logLevel | default "info" }}" + - "-log.format={{ .Values.logFormat | default "logfmt" }}" {{- if .Values.reloadEnabled }} - "-web.enable-reload" {{- end }} diff --git a/helm/values.yaml b/helm/values.yaml index 235d4d63..036aa5a0 100644 --- a/helm/values.yaml +++ b/helm/values.yaml @@ -115,8 +115,12 @@ serviceMonitor: # mount: # readOnly: true # mountPath: /etc/config -# Set to true to create a config as a part of the helm chart +# -- Set to true to create a config as a part of the helm chart createConfig: true +# -- Set log level (info if unset) +logLevel: debug +# -- Set log format (logfmt if unset) +logFormat: logfmt # -- Enable reload collector data handler (endpoint /reload) reloadEnabled: false config: From fd446370ba1f32b8ca7aba809bfc386d6ec4d962 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 26 Oct 2024 12:26:42 +0200 Subject: [PATCH 293/401] deps!: bump github.com/prometheus/exporter-toolkit from 0.11.0 to 0.13.0 (#596) * deps: bump github.com/prometheus/exporter-toolkit from 0.11.0 to 0.13.0 Bumps [github.com/prometheus/exporter-toolkit](https://github.com/prometheus/exporter-toolkit) from 0.11.0 to 0.13.0. - [Release notes](https://github.com/prometheus/exporter-toolkit/releases) - [Changelog](https://github.com/prometheus/exporter-toolkit/blob/master/CHANGELOG.md) - [Commits](https://github.com/prometheus/exporter-toolkit/compare/v0.11.0...v0.13.0) --- updated-dependencies: - dependency-name: github.com/prometheus/exporter-toolkit dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * refactor: migrate to log/slog * refactor: extract logging logic to log.go, adjust loglevels * fix: refactoring issues * chore: go mod tidy * style: set to SlogStyle * fix: minor log changes --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Sergei Zyubin Co-authored-by: Sergei Zyubin --- cmd/sql_exporter/log.go | 60 ++++++++++++++++++++++++++++++++++++ cmd/sql_exporter/main.go | 57 +++++++++++++--------------------- cmd/sql_exporter/promhttp.go | 23 +++++++------- collector.go | 14 ++++----- config/config.go | 8 ++--- config/target_config.go | 14 ++++++--- config/util.go | 5 ++- exporter.go | 6 ++-- go.mod | 10 ++---- go.sum | 16 ++++------ query.go | 16 +++++----- reload.go | 28 ++++++++--------- sql.go | 11 ++----- target.go | 4 +-- 14 files changed, 153 insertions(+), 119 deletions(-) create mode 100644 cmd/sql_exporter/log.go diff --git a/cmd/sql_exporter/log.go b/cmd/sql_exporter/log.go new file mode 100644 index 00000000..1b3eec7d --- /dev/null +++ b/cmd/sql_exporter/log.go @@ -0,0 +1,60 @@ +package main + +import ( + "fmt" + "log/slog" + "os" + + "github.com/prometheus/common/promslog" +) + +type logConfig struct { + logger *slog.Logger + logFileHandler *os.File +} + +// initLogFile opens the log file for writing if a log file is specified. +func initLogFile(logFile string) (*os.File, error) { + if logFile == "" { + return nil, nil + } + logFileHandler, err := os.OpenFile(logFile, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0o644) + if err != nil { + return nil, fmt.Errorf("error opening log file: %w", err) + } + return logFileHandler, nil +} + +// initLogConfig configures and initializes the logging system. +func initLogConfig(logLevel, logFormat string, logFile string) (*logConfig, error) { + logFileHandler, err := initLogFile(logFile) + if err != nil { + return nil, err + } + + if logFileHandler == nil { + logFileHandler = os.Stderr + } + + promslogConfig := &promslog.Config{ + Level: &promslog.AllowedLevel{}, + Format: &promslog.AllowedFormat{}, + Style: promslog.SlogStyle, + Writer: logFileHandler, + } + + if err := promslogConfig.Level.Set(logLevel); err != nil { + return nil, err + } + + if err := promslogConfig.Format.Set(logFormat); err != nil { + return nil, err + } + // Initialize logger. + logger := promslog.New(promslogConfig) + + return &logConfig{ + logger: logger, + logFileHandler: logFileHandler, + }, nil +} diff --git a/cmd/sql_exporter/main.go b/cmd/sql_exporter/main.go index a73862f1..a9a5f799 100644 --- a/cmd/sql_exporter/main.go +++ b/cmd/sql_exporter/main.go @@ -3,6 +3,7 @@ package main import ( "flag" "fmt" + "log/slog" "net/http" "os" "os/signal" @@ -12,23 +13,19 @@ import ( "github.com/burningalchemist/sql_exporter" cfg "github.com/burningalchemist/sql_exporter/config" - "github.com/go-kit/log" _ "github.com/kardianos/minwinsvc" "github.com/prometheus/client_golang/prometheus" info "github.com/prometheus/client_golang/prometheus/collectors/version" "github.com/prometheus/client_golang/prometheus/promhttp" "github.com/prometheus/common/model" - "github.com/prometheus/common/promlog" "github.com/prometheus/common/version" "github.com/prometheus/exporter-toolkit/web" - "k8s.io/klog/v2" ) const ( appName string = "sql_exporter" httpReadHeaderTimeout time.Duration = time.Duration(time.Second * 60) - debugMaxLevel klog.Level = 3 ) var ( @@ -40,6 +37,7 @@ var ( configFile = flag.String("config.file", "sql_exporter.yml", "SQL Exporter configuration file path") logFormat = flag.String("log.format", "logfmt", "Set log output format") logLevel = flag.String("log.level", "info", "Set log level") + logFile = flag.String("log.file", "", "Log file to write to, leave empty to write to stderr") ) func init() { @@ -65,21 +63,30 @@ func main() { } // Setup logging. - logger, err := setupLogging(*logLevel, *logFormat) + logConfig, err := initLogConfig(*logLevel, *logFormat, *logFile) if err != nil { fmt.Printf("Error initializing exporter: %s\n", err) os.Exit(1) } + defer func() { + if logConfig.logFileHandler != nil { + logConfig.logFileHandler.Close() + } + }() + + slog.SetDefault(logConfig.logger) + // Override the config.file default with the SQLEXPORTER_CONFIG environment variable if set. if val, ok := os.LookupEnv(cfg.EnvConfigFile); ok { *configFile = val } - klog.Warningf("Starting SQL exporter %s %s", version.Info(), version.BuildContext()) + slog.Warn("Starting SQL exporter", "versionInfo", version.Info(), "buildContext", version.BuildContext()) exporter, err := sql_exporter.NewExporter(*configFile) if err != nil { - klog.Fatalf("Error creating exporter: %s", err) + slog.Error("Error creating exporter", "error", err) + os.Exit(1) } // Start the scrape_errors_total metric drop ticker if configured. @@ -104,16 +111,18 @@ func main() { if err := web.ListenAndServe(server, &web.FlagConfig{ WebListenAddresses: &([]string{*listenAddress}), WebConfigFile: webConfigFile, WebSystemdSocket: OfBool(false), - }, logger); err != nil { - klog.Fatal(err) + }, logConfig.logger); err != nil { + slog.Error("Error starting web server", "error", err) + os.Exit(1) + } } // reloadHandler returns a handler that reloads collector and target data. -func reloadHandler(e sql_exporter.Exporter, configFile string) func(http.ResponseWriter, *http.Request) { +func reloadHandler(e sql_exporter.Exporter, configFile string) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { if err := sql_exporter.Reload(e, &configFile); err != nil { - klog.Error(err) + slog.Error("Error reloading collector and target data", "error", err) http.Error(w, err.Error(), http.StatusInternalServerError) return } @@ -128,7 +137,7 @@ func signalHandler(e sql_exporter.Exporter, configFile string) { go func() { for range c { if err := sql_exporter.Reload(e, &configFile); err != nil { - klog.Error(err) + slog.Error("Error reloading collector and target data", "error", err) } } }() @@ -141,7 +150,7 @@ func startScrapeErrorsDropTicker(exporter sql_exporter.Exporter, interval model. } ticker := time.NewTicker(time.Duration(interval)) - klog.Warning("Started scrape_errors_total metrics drop ticker: ", interval) + slog.Warn("Started scrape_errors_total metrics drop ticker", "interval", interval) go func() { defer ticker.Stop() for range ticker.C { @@ -149,25 +158,3 @@ func startScrapeErrorsDropTicker(exporter sql_exporter.Exporter, interval model. } }() } - -// setupLogging configures and initializes the logging system. -func setupLogging(logLevel, logFormat string) (log.Logger, error) { - promlogConfig := &promlog.Config{ - Level: &promlog.AllowedLevel{}, - Format: &promlog.AllowedFormat{}, - } - - if err := promlogConfig.Level.Set(logLevel); err != nil { - return nil, err - } - - if err := promlogConfig.Format.Set(logFormat); err != nil { - return nil, err - } - // Overriding the default klog with our go-kit klog implementation. - logger := promlog.New(promlogConfig) - klog.SetLogger(logger) - klog.ClampLevel(debugMaxLevel) - - return logger, nil -} diff --git a/cmd/sql_exporter/promhttp.go b/cmd/sql_exporter/promhttp.go index 5bb88006..4ffd9936 100644 --- a/cmd/sql_exporter/promhttp.go +++ b/cmd/sql_exporter/promhttp.go @@ -4,6 +4,7 @@ import ( "context" "errors" "io" + "log/slog" "net/http" "strconv" "time" @@ -11,7 +12,6 @@ import ( "github.com/burningalchemist/sql_exporter" "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/common/expfmt" - "k8s.io/klog/v2" ) const ( @@ -46,16 +46,17 @@ func ExporterHandlerFor(exporter sql_exporter.Exporter) http.Handler { case prometheus.MultiError: for _, err := range t { if errors.Is(err, context.DeadlineExceeded) { - klog.Errorf("%s: timeout collecting metrics", err) + slog.Error("Timeout while collecting metrics", "error", err) + } else { - klog.Errorf("Error gathering metrics: %s", err) + slog.Error("Error gathering metrics", "error", err) } } default: - klog.Errorf("Error gathering metrics: %s", err) + slog.Error("Error gathering metrics", "error", err) } if len(mfs) == 0 { - klog.Errorf("%s: %s", noMetricsGathered, err) + slog.Error("No metrics gathered", "error", err) http.Error(w, noMetricsGathered+", "+err.Error(), http.StatusInternalServerError) return } @@ -70,14 +71,15 @@ func ExporterHandlerFor(exporter sql_exporter.Exporter) http.Handler { for _, mf := range mfs { if err := enc.Encode(mf); err != nil { errs = append(errs, err) - klog.Errorf("Error encoding metric family %q: %s", mf.GetName(), err) + slog.Error("Error encoding metric family", "name", mf.GetName(), "error", err) + } } if closer, ok := writer.(io.Closer); ok { closer.Close() } if errs.MaybeUnwrap() != nil && buf.Len() == 0 { - klog.Errorf("%s: %s", noMetricsEncoded, errs) + slog.Error("No metrics encoded", "error", errs) http.Error(w, noMetricsEncoded+", "+errs.Error(), http.StatusInternalServerError) return } @@ -100,9 +102,9 @@ func contextFor(req *http.Request, exporter sql_exporter.Exporter) (context.Cont if err != nil { switch { case errors.Is(err, strconv.ErrSyntax): - klog.Errorf("%s: unsupported value", prometheusHeaderErr) + slog.Error("Failed to parse timeout from Prometheus header", "error", err) case errors.Is(err, strconv.ErrRange): - klog.Errorf("%s: value out of range", prometheusHeaderErr) + slog.Error(prometheusHeaderErr, "error", err) } } else { timeout = time.Duration(timeoutSeconds * float64(time.Second)) @@ -110,8 +112,7 @@ func contextFor(req *http.Request, exporter sql_exporter.Exporter) (context.Cont // Subtract the timeout offset, unless the result would be negative or zero. timeoutOffset := time.Duration(exporter.Config().Globals.TimeoutOffset) if timeoutOffset > timeout { - klog.Errorf("global.scrape_timeout_offset (`%s`) is greater than Prometheus' scraping timeout (`%s`), ignoring", - timeoutOffset, timeout) + slog.Error("global.scrape_timeout_offset is greater than Prometheus' scraping timeout, ignoring", "timeout", timeout, "timeoutOffset", timeoutOffset) } else { timeout -= timeoutOffset } diff --git a/collector.go b/collector.go index d73ffb5f..d2ad144c 100644 --- a/collector.go +++ b/collector.go @@ -4,13 +4,13 @@ import ( "context" "database/sql" "fmt" + "log/slog" "sync" "time" "github.com/burningalchemist/sql_exporter/config" "github.com/burningalchemist/sql_exporter/errors" dto "github.com/prometheus/client_model/go" - "k8s.io/klog/v2" ) // Collector is a self-contained group of SQL queries and metric families to collect from a specific database. It is @@ -64,7 +64,7 @@ func NewCollector(logContext string, cc *config.CollectorConfig, constLabels []* logContext: logContext, } if c.config.MinInterval > 0 { - klog.V(2).Infof("[%s] Non-zero min_interval (%s), using cached collector.", logContext, c.config.MinInterval) + slog.Warn("Non-zero min_interval, using cached collector.", "logContext", logContext, "min_interval", c.config.MinInterval) return newCachingCollector(&c), nil } return &c, nil @@ -114,15 +114,14 @@ func (cc *cachingCollector) Collect(ctx context.Context, conn *sql.DB, ch chan<- ch <- NewInvalidMetric(errors.Wrap(cc.rawColl.logContext, ctx.Err())) return } - klog.Infof("Cache size: %d", len(cc.cache)) + slog.Debug("Cache size", "length", len(cc.cache)) collTime := time.Now() select { case cacheTime := <-cc.cacheSem: // Have the lock. if age := collTime.Sub(cacheTime); age > cc.minInterval || len(cc.cache) == 0 { // Cache contents are older than minInterval, collect fresh metrics, cache them and pipe them through. - klog.V(2).Infof("[%s] Collecting fresh metrics: min_interval=%.3fs cache_age=%.3fs", - cc.rawColl.logContext, cc.minInterval.Seconds(), age.Seconds()) + slog.Debug("Collecting fresh metrics", "logContext", cc.rawColl.logContext, "min_interval", cc.minInterval.Seconds(), "cache_age", age.Seconds()) cacheChan := make(chan Metric, capMetricChan) cc.cache = make([]Metric, 0, len(cc.cache)) go func() { @@ -132,7 +131,7 @@ func (cc *cachingCollector) Collect(ctx context.Context, conn *sql.DB, ch chan<- for metric := range cacheChan { // catch invalid metrics and return them immediately, don't cache them if ctx.Err() != nil { - klog.V(2).Infof("[%s] Context closed, returning invalid metric", cc.rawColl.logContext) + slog.Debug("Context closed, returning invalid metric", "logContext", cc.rawColl.logContext) ch <- NewInvalidMetric(errors.Wrap(cc.rawColl.logContext, ctx.Err())) continue } @@ -142,8 +141,7 @@ func (cc *cachingCollector) Collect(ctx context.Context, conn *sql.DB, ch chan<- } cacheTime = collTime } else { - klog.V(2).Infof("[%s] Returning cached metrics: min_interval=%.3fs cache_age=%.3fs", - cc.rawColl.logContext, cc.minInterval.Seconds(), age.Seconds()) + slog.Debug("Returning cached metrics", "logContext", cc.rawColl.logContext, "min_interval", cc.minInterval.Seconds(), "cache_age", age.Seconds()) for _, metric := range cc.cache { ch <- metric } diff --git a/config/config.go b/config/config.go index 987ab5f6..31847ffe 100644 --- a/config/config.go +++ b/config/config.go @@ -3,12 +3,12 @@ package config import ( "context" "fmt" + "log/slog" "os" "path/filepath" "github.com/sethvargo/go-envconfig" "gopkg.in/yaml.v3" - "k8s.io/klog/v2" ) // MaxInt32 defines the maximum value of allowed integers @@ -32,7 +32,7 @@ var ( // Load attempts to parse the given config file and return a Config object. func Load(configFile string) (*Config, error) { - klog.Infof("Loading configuration from %s", configFile) + slog.Debug("Loading configuration", "file", configFile) buf, err := os.ReadFile(configFile) if err != nil { return nil, err @@ -185,7 +185,7 @@ func (c *Config) loadCollectorFiles() error { // Resolve the glob to actual filenames. cfs, err := filepath.Glob(cfglob) - klog.Infof("External collector files found: %v", len(cfs)) + slog.Debug("External collector files found", "count", len(cfs), "glob", cfglob) if err != nil { // The only error can be a bad pattern. return fmt.Errorf("error resolving collector files for %s: %w", cfglob, err) @@ -205,7 +205,7 @@ func (c *Config) loadCollectorFiles() error { } c.Collectors = append(c.Collectors, &cc) - klog.Infof("Loaded collector '%s' from %s", cc.Name, cf) + slog.Debug("Loaded collector", "name", cc.Name, "file", cf) } } diff --git a/config/target_config.go b/config/target_config.go index 488105a7..ec25f51c 100644 --- a/config/target_config.go +++ b/config/target_config.go @@ -4,11 +4,12 @@ import ( "context" "encoding/json" "fmt" + "log/slog" + "os" "github.com/aws/aws-sdk-go-v2/aws" awsConfig "github.com/aws/aws-sdk-go-v2/config" "github.com/aws/aws-sdk-go-v2/service/secretsmanager" - "k8s.io/klog/v2" ) // @@ -64,7 +65,8 @@ type AwsSecret struct { func readDSNFromAwsSecretManager(secretName string) Secret { config, err := awsConfig.LoadDefaultConfig(context.TODO(), awsConfig.WithEC2IMDSRegion()) if err != nil { - klog.Fatal(err) + slog.Error("unable to load AWS config", "error", err) + os.Exit(1) } // Create Secrets Manager client @@ -75,12 +77,13 @@ func readDSNFromAwsSecretManager(secretName string) Secret { VersionStage: aws.String("AWSCURRENT"), // VersionStage defaults to AWSCURRENT if unspecified } - klog.Infof("reading AWS Secret: %s", secretName) + slog.Debug("reading AWS Secret", "name", secretName) result, err := svc.GetSecretValue(context.TODO(), input) if err != nil { // For a list of exceptions thrown, see // https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html - klog.Fatal(err.Error()) + slog.Error("unable to read AWS Secret", "error", err) + os.Exit(1) } // Decrypts secret using the associated KMS key. @@ -90,7 +93,8 @@ func readDSNFromAwsSecretManager(secretName string) Secret { jsonErr := json.Unmarshal([]byte(secretString), &awsSecret) if jsonErr != nil { - klog.Fatal(jsonErr) + slog.Error("unable to unmarshal AWS Secret") + os.Exit(1) } return Secret(awsSecret.DSN) } diff --git a/config/util.go b/config/util.go index 009630c3..56f26e10 100644 --- a/config/util.go +++ b/config/util.go @@ -2,10 +2,9 @@ package config import ( "fmt" + "log/slog" "path/filepath" "strings" - - "k8s.io/klog/v2" ) func checkCollectorRefs(collectorRefs []string, ctx string) error { @@ -45,7 +44,7 @@ func resolveCollectorRefs( return nil, fmt.Errorf("unknown collector %q referenced in %s", cref, ctx) } } - klog.Infof("Resolved collectors for %s: %v", ctx, len(resolved)) + slog.Debug("Resolved collectors", "context", ctx, "count", len(resolved)) return resolved, nil } diff --git a/exporter.go b/exporter.go index 6625b861..a9ab1408 100644 --- a/exporter.go +++ b/exporter.go @@ -4,6 +4,7 @@ import ( "context" "errors" "fmt" + "log/slog" "strings" "sync" @@ -12,7 +13,6 @@ import ( dto "github.com/prometheus/client_model/go" "google.golang.org/protobuf/proto" - "k8s.io/klog/v2" ) var ( @@ -191,7 +191,7 @@ func (e *exporter) filterTargets(jf []string) { } } if len(filteredTargets) == 0 { - klog.Errorf("No targets found for job filters. Nothing to scrape.") + slog.Error("No targets found for job filters. Nothing to scrape.") } e.targets = filteredTargets } @@ -215,7 +215,7 @@ func (e *exporter) SetJobFilters(filters []string) { // DropErrorMetrics implements Exporter. func (e *exporter) DropErrorMetrics() { scrapeErrorsMetric.Reset() - klog.Info("Dropped scrape_errors_total metric") + slog.Debug("Dropped scrape_errors_total metric") } // registerScrapeErrorMetric registers the metrics for the exporter itself. diff --git a/go.mod b/go.mod index 1b13b9b5..5b95101b 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,6 @@ require ( github.com/aws/aws-sdk-go-v2 v1.32.2 github.com/aws/aws-sdk-go-v2/config v1.28.0 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.2 - github.com/go-kit/log v0.2.1 github.com/go-sql-driver/mysql v1.8.1 github.com/jackc/pgx/v5 v5.7.1 github.com/kardianos/minwinsvc v1.0.2 @@ -16,14 +15,13 @@ require ( github.com/prometheus/client_golang v1.20.5 github.com/prometheus/client_model v0.6.1 github.com/prometheus/common v0.60.1 - github.com/prometheus/exporter-toolkit v0.11.0 + github.com/prometheus/exporter-toolkit v0.13.0 github.com/sethvargo/go-envconfig v1.1.0 github.com/snowflakedb/gosnowflake v1.11.2 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.23.1 google.golang.org/protobuf v1.35.1 gopkg.in/yaml.v3 v3.0.1 - k8s.io/klog/v2 v2.70.1 ) require ( @@ -67,8 +65,6 @@ require ( github.com/gabriel-vasile/mimetype v1.4.2 // indirect github.com/go-faster/city v1.0.1 // indirect github.com/go-faster/errors v0.7.1 // indirect - github.com/go-logfmt/logfmt v0.5.1 // indirect - github.com/go-logr/logr v1.4.1 // indirect github.com/goccy/go-json v0.10.2 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/golang-jwt/jwt/v5 v5.2.1 // indirect @@ -85,6 +81,8 @@ require ( github.com/klauspost/compress v1.17.9 // indirect github.com/klauspost/cpuid/v2 v2.2.5 // indirect github.com/kylelemons/godebug v1.1.0 // indirect + github.com/mdlayher/socket v0.4.1 // indirect + github.com/mdlayher/vsock v1.2.1 // indirect github.com/mtibben/percent v0.2.1 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect @@ -115,5 +113,3 @@ require ( gopkg.in/yaml.v2 v2.4.0 // indirect howett.net/plist v0.0.0-20181124034731-591f970eefbb // indirect ) - -replace k8s.io/klog/v2 => github.com/simonpasquier/klog-gokit/v3 v3.4.0 diff --git a/go.sum b/go.sum index 4a905696..266dbb96 100644 --- a/go.sum +++ b/go.sum @@ -92,12 +92,6 @@ github.com/go-faster/city v1.0.1 h1:4WAxSZ3V2Ws4QRDrscLEDcibJY8uf41H6AhXDrNDcGw= github.com/go-faster/city v1.0.1/go.mod h1:jKcUJId49qdW3L1qKHH/3wPeUstCVpVSXTM6vO3VcTw= github.com/go-faster/errors v0.7.1 h1:MkJTnDoEdi9pDabt1dpWf7AA8/BaSYZqibYyhZ20AYg= github.com/go-faster/errors v0.7.1/go.mod h1:5ySTjWFiphBs07IKuiL69nxdfd5+fzh1u7FPGZP2quo= -github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= -github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= -github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA= -github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= @@ -157,6 +151,10 @@ github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0 github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +github.com/mdlayher/socket v0.4.1 h1:eM9y2/jlbs1M615oshPQOHZzj6R6wMT7bX5NPiQvn2U= +github.com/mdlayher/socket v0.4.1/go.mod h1:cAqeGjoufqdxWkD7DkpyS+wcefOtmu5OQ8KuoJGIReA= +github.com/mdlayher/vsock v1.2.1 h1:pC1mTJTvjo1r9n9fbm7S1j04rCgCzhCOS5DY0zqHlnQ= +github.com/mdlayher/vsock v1.2.1/go.mod h1:NRfCibel++DgeMD8z/hP+PPTjlNJsdPOmxcnENvE+SE= github.com/microsoft/go-mssqldb v1.7.2 h1:CHkFJiObW7ItKTJfHo1QX7QBBD1iV+mn1eOyRP3b/PA= github.com/microsoft/go-mssqldb v1.7.2/go.mod h1:kOvZKUdrhhFQmxLZqbwUV0rHkNkZpthMITIb2Ko1IoA= github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= @@ -186,8 +184,8 @@ github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= -github.com/prometheus/exporter-toolkit v0.11.0 h1:yNTsuZ0aNCNFQ3aFTD2uhPOvr4iD7fdBvKPAEGkNf+g= -github.com/prometheus/exporter-toolkit v0.11.0/go.mod h1:BVnENhnNecpwoTLiABx7mrPB/OLRIgN74qlQbV+FK1Q= +github.com/prometheus/exporter-toolkit v0.13.0 h1:lmA0Q+8IaXgmFRKw09RldZmZdnvu9wwcDLIXGmTPw1c= +github.com/prometheus/exporter-toolkit v0.13.0/go.mod h1:2uop99EZl80KdXhv/MxVI2181fMcwlsumFOqBecGkG0= github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= @@ -199,8 +197,6 @@ github.com/sethvargo/go-envconfig v1.1.0 h1:cWZiJxeTm7AlCvzGXrEXaSTCNgip5oJepekh github.com/sethvargo/go-envconfig v1.1.0/go.mod h1:JLd0KFWQYzyENqnEPWWZ49i4vzZo/6nRidxI8YvGiHw= github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k= github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME= -github.com/simonpasquier/klog-gokit/v3 v3.4.0 h1:2eD2INbzUHuGNynPP86BCB8H6Lwfp6wlkOcuyTr3VWM= -github.com/simonpasquier/klog-gokit/v3 v3.4.0/go.mod h1:RREVB5Cc6yYHsweRfhUyM1ZP+Odb8ehxLfY8jaiqvjg= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/snowflakedb/gosnowflake v1.11.2 h1:eAMsxrCiC6ij5wX3dHx1TQCBOdDmCK062Ir8rndUkRg= diff --git a/query.go b/query.go index d40616ec..007eede8 100644 --- a/query.go +++ b/query.go @@ -4,10 +4,10 @@ import ( "context" "database/sql" "fmt" + "log/slog" "github.com/burningalchemist/sql_exporter/config" "github.com/burningalchemist/sql_exporter/errors" - "k8s.io/klog/v2" ) // Query wraps a sql.Stmt and all the metrics populated from it. It helps extract keys and values from result rows. @@ -96,7 +96,7 @@ func (q *Query) Collect(ctx context.Context, conn *sql.DB, ch chan<- Metric) { dest, err := q.scanDest(rows) if err != nil { if config.IgnoreMissingVals { - klog.V(3).Info(err) + slog.Warn("Ignoring missing values", "logContext", q.logContext) return } ch <- NewInvalidMetric(err) @@ -147,7 +147,7 @@ func (q *Query) scanDest(rows *sql.Rows) ([]any, errors.WithContext) { if err != nil { return nil, errors.Wrap(q.logContext, err) } - klog.V(3).Infof("[%s] Returned columns: %q", q.logContext, columns) + slog.Debug("Returned columns", "logContext", q.logContext, "columns", columns) // Create the slice to scan the row into, with strings for keys and float64s for values. dest := make([]any, 0, len(columns)) have := make(map[string]bool, len(q.columnTypes)) @@ -164,9 +164,9 @@ func (q *Query) scanDest(rows *sql.Rows) ([]any, errors.WithContext) { have[column] = true default: if column == "" { - klog.Infof("[%s] Unnamed column %d returned by query", q.logContext, i) + slog.Debug("Unnamed column", "logContext", q.logContext, "column", i) } else { - klog.Infof("[%s] Extra column %q returned by query", q.logContext, column) + slog.Debug("Extra column returned by query", "logContext", q.logContext, "column", column) } dest = append(dest, new(any)) } @@ -205,17 +205,17 @@ func (q *Query) scanRow(rows *sql.Rows, dest []any) (map[string]any, errors.With switch q.columnTypes[column] { case columnTypeKey: if !dest[i].(*sql.NullString).Valid { - klog.V(3).Infof("[%s] Key column %q is NULL", q.logContext, column) + slog.Warn("Key column is NULL", "logContext", q.logContext, "column", column) } result[column] = *dest[i].(*sql.NullString) case columnTypeTime: if !dest[i].(*sql.NullTime).Valid { - klog.V(3).Infof("[%s] Time column %q is invalid or NULL", q.logContext, column) + slog.Warn("Time column is NULL", "logContext", q.logContext, "column", column) } result[column] = *dest[i].(*sql.NullTime) case columnTypeValue: if !dest[i].(*sql.NullFloat64).Valid { - klog.V(3).Infof("[%s] Value column %q is NULL", q.logContext, column) + slog.Warn("Value column is NULL", "logContext", q.logContext, "column", column) } result[column] = *dest[i].(*sql.NullFloat64) } diff --git a/reload.go b/reload.go index 48ac420d..837f24bc 100644 --- a/reload.go +++ b/reload.go @@ -2,18 +2,18 @@ package sql_exporter import ( "errors" + "log/slog" cfg "github.com/burningalchemist/sql_exporter/config" - "k8s.io/klog/v2" ) // Reload function is used to reload the exporter configuration without restarting the exporter func Reload(e Exporter, configFile *string) error { - klog.Warning("Reloading collectors has started...") - klog.Warning("Connections will not be changed upon the restart of the exporter") + slog.Warn("Reloading collectors has started...") + slog.Warn("Connections will not be changed upon the restart of the exporter") configNext, err := cfg.Load(*configFile) if err != nil { - klog.Errorf("Error reading config file - %v", err) + slog.Error("Error reading config file", "error", err) return err } @@ -24,8 +24,7 @@ func Reload(e Exporter, configFile *string) error { configCurrent.Collectors = configCurrent.Collectors[:0] } configCurrent.Collectors = configNext.Collectors - klog.Infof("Total collector size change: %v -> %v", len(configCurrent.Collectors), - len(configNext.Collectors)) + slog.Debug("Total collector size change", "from", len(configCurrent.Collectors), "to", len(configNext.Collectors)) // Reload targets switch { @@ -41,13 +40,13 @@ func Reload(e Exporter, configFile *string) error { case len(configCurrent.Jobs) > 0 && configNext.Target != nil: return errors.New("changing scrape mode is not allowed. Please restart the exporter") default: - klog.Warning("No target or jobs have been found - nothing to reload") + slog.Warn("No target or jobs have been found - nothing to reload") } return nil } func reloadTarget(e Exporter, nc, cc *cfg.Config) error { - klog.Warning("Recreating target...") + slog.Warn("Recreating target...") // We want to preserve DSN from the previous config revision to avoid any connection changes nc.Target.DSN = cc.Target.DSN @@ -57,19 +56,18 @@ func reloadTarget(e Exporter, nc, cc *cfg.Config) error { target, err := NewTarget("", cc.Target.Name, "", string(cc.Target.DSN), cc.Target.Collectors(), nil, cc.Globals, cc.Target.EnablePing) if err != nil { - klog.Errorf("Error recreating a target - %v", err) + slog.Error("Error recreating a target", "error", err) return err } // Populate the target list e.UpdateTarget([]Target{target}) - klog.Warning("Collectors have been successfully updated for the target") + slog.Warn("Collectors have been successfully updated for the target") return nil } func reloadJobs(e Exporter, nc, cc *cfg.Config) error { - klog.Warning("Recreating jobs...") - + slog.Warn("Recreating jobs...") // We want to preserve `static_configs`` from the previous config revision to avoid any connection changes for _, currentJob := range cc.Jobs { for _, newJob := range nc.Jobs { @@ -89,15 +87,15 @@ func reloadJobs(e Exporter, nc, cc *cfg.Config) error { break } targets = append(targets, job.Targets()...) - klog.Infof("Recreated Job: %s", jobConfigItem.Name) + slog.Debug("Recreated Job", "name", jobConfigItem.Name) } if updateErr != nil { - klog.Errorf("Error recreating jobs - %v", updateErr) + slog.Error("Error recreating jobs", "error", updateErr) return updateErr } e.UpdateTarget(targets) - klog.Warning("Collectors have been successfully updated for the jobs") + slog.Warn("Collectors have been successfully updated for the jobs") return nil } diff --git a/sql.go b/sql.go index aa0fd96f..8c6c0c1c 100644 --- a/sql.go +++ b/sql.go @@ -5,12 +5,12 @@ import ( "database/sql" "errors" "fmt" + "log/slog" "net/url" "os" "time" "github.com/xo/dburl" - "k8s.io/klog/v2" ) // OpenConnection parses a provided DSN, and opens a DB handle ensuring early termination if the context is closed @@ -52,12 +52,7 @@ func OpenConnection(ctx context.Context, logContext, dsn string, maxConns, maxId conn.SetMaxOpenConns(maxConns) conn.SetConnMaxLifetime(maxConnLifetime) - if klog.V(1).Enabled() { - if len(logContext) > 0 { - logContext = fmt.Sprintf("[%s] ", logContext) - } - klog.Infof("%sDatabase handle successfully opened with '%s' driver", logContext, driver) - } + slog.Debug("Database handle successfully opened", "logContext", logContext, "driver", driver) return conn, nil } @@ -103,7 +98,7 @@ func expandEnv(env string) string { if value, ok := os.LookupEnv(env); ok { return value } - klog.Errorf("Environment variable '$%s' is not found, cannot expand", env) + slog.Error("Environment variable is not found, cannot expand", "env", env) return fmt.Sprintf("$%s", env) } return os.Expand(env, lookupFunc) diff --git a/target.go b/target.go index 4f0c4d4c..37c2eaab 100644 --- a/target.go +++ b/target.go @@ -5,6 +5,7 @@ import ( "database/sql" "database/sql/driver" "fmt" + "log/slog" "sort" "sync" "time" @@ -14,7 +15,6 @@ import ( "github.com/prometheus/client_golang/prometheus" dto "github.com/prometheus/client_model/go" "google.golang.org/protobuf/proto" - "k8s.io/klog/v2" ) const ( @@ -67,7 +67,7 @@ func NewTarget( if ep == nil { ep = &config.EnablePing } - klog.Infof("[%s] Target ping enabled: %v", logContext, *ep) + slog.Debug("target ping enabled", "logContext", logContext, "enabled", *ep) // Sort const labels by name to ensure consistent ordering. constLabelPairs := make([]*dto.LabelPair, 0, len(constLabels)) From 7521621b8a33b809af81326388dac26792b8d379 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Sun, 27 Oct 2024 13:58:40 +0100 Subject: [PATCH 294/401] fix(gomod): follow 1.N.P syntax (#624) --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 5b95101b..96770129 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/burningalchemist/sql_exporter -go 1.22 +go 1.22.0 require ( github.com/ClickHouse/clickhouse-go/v2 v2.30.0 From 8a6b1d9f905b57a8b5a26c948c05bba7e6a3d221 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 2 Nov 2024 10:09:57 +0100 Subject: [PATCH 295/401] deps: bump github.com/prometheus/exporter-toolkit from 0.13.0 to 0.13.1 (#634) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 96770129..f0e5c7bf 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( github.com/prometheus/client_golang v1.20.5 github.com/prometheus/client_model v0.6.1 github.com/prometheus/common v0.60.1 - github.com/prometheus/exporter-toolkit v0.13.0 + github.com/prometheus/exporter-toolkit v0.13.1 github.com/sethvargo/go-envconfig v1.1.0 github.com/snowflakedb/gosnowflake v1.11.2 github.com/vertica/vertica-sql-go v1.3.3 diff --git a/go.sum b/go.sum index 266dbb96..90cf43bc 100644 --- a/go.sum +++ b/go.sum @@ -184,8 +184,8 @@ github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= -github.com/prometheus/exporter-toolkit v0.13.0 h1:lmA0Q+8IaXgmFRKw09RldZmZdnvu9wwcDLIXGmTPw1c= -github.com/prometheus/exporter-toolkit v0.13.0/go.mod h1:2uop99EZl80KdXhv/MxVI2181fMcwlsumFOqBecGkG0= +github.com/prometheus/exporter-toolkit v0.13.1 h1:Evsh0gWQo2bdOHlnz9+0Nm7/OFfIwhE2Ws4A2jIlR04= +github.com/prometheus/exporter-toolkit v0.13.1/go.mod h1:ujdv2YIOxtdFxxqtloLpbqmxd5J0Le6IITUvIRSWjj0= github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= From ad5bb493a5e81c5ab34e887799aff0bf91a6fba8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 2 Nov 2024 10:10:16 +0100 Subject: [PATCH 296/401] deps: bump github.com/snowflakedb/gosnowflake from 1.11.2 to 1.12.0 (#633) --- go.mod | 3 ++- go.sum | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index f0e5c7bf..baa5adf8 100644 --- a/go.mod +++ b/go.mod @@ -17,7 +17,7 @@ require ( github.com/prometheus/common v0.60.1 github.com/prometheus/exporter-toolkit v0.13.1 github.com/sethvargo/go-envconfig v1.1.0 - github.com/snowflakedb/gosnowflake v1.11.2 + github.com/snowflakedb/gosnowflake v1.12.0 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.23.1 google.golang.org/protobuf v1.35.1 @@ -33,6 +33,7 @@ require ( github.com/Azure/azure-sdk-for-go/sdk/internal v1.8.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0 // indirect github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect + github.com/BurntSushi/toml v1.4.0 // indirect github.com/ClickHouse/ch-go v0.61.5 // indirect github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c // indirect github.com/andybalholm/brotli v1.1.1 // indirect diff --git a/go.sum b/go.sum index 90cf43bc..ae6322a6 100644 --- a/go.sum +++ b/go.sum @@ -18,6 +18,8 @@ github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0 h1:u/LLAOFgsMv7HmNL4 github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0/go.mod h1:2e8rMJtl2+2j+HXbTBwnyGpm5Nou7KhvSfxOq8JpTag= github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 h1:XHOnouVk1mxXfQidrMEnLlPk9UMeRtyBTnEFtxkV0kU= github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= +github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= +github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/ClickHouse/ch-go v0.61.5 h1:zwR8QbYI0tsMiEcze/uIMK+Tz1D3XZXLdNrlaOpeEI4= github.com/ClickHouse/ch-go v0.61.5/go.mod h1:s1LJW/F/LcFs5HJnuogFMta50kKDO0lf9zzfrbl0RQg= github.com/ClickHouse/clickhouse-go/v2 v2.30.0 h1:AG4D/hW39qa58+JHQIFOSnxyL46H6h2lrmGGk17dhFo= @@ -199,8 +201,8 @@ github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/snowflakedb/gosnowflake v1.11.2 h1:eAMsxrCiC6ij5wX3dHx1TQCBOdDmCK062Ir8rndUkRg= -github.com/snowflakedb/gosnowflake v1.11.2/go.mod h1:WFe+8mpsapDaQjHX6BqJBKtfQCGlGD3lHKeDsKfpx2A= +github.com/snowflakedb/gosnowflake v1.12.0 h1:Saez8egtn5xAoVMBxFaMu9MYfAG9SS9dpAEXD1/ECIo= +github.com/snowflakedb/gosnowflake v1.12.0/go.mod h1:wHfYmZi3zvtWItojesAhWWXBN7+niex2R1h/S7QCZYg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= From 5bd8f1770416472f9cdd5449497a557920a7fc10 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 2 Nov 2024 12:05:04 +0100 Subject: [PATCH 297/401] deps: bump github.com/aws/aws-sdk-go-v2 from 1.32.2 to 1.32.3 (#632) Bumps [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) from 1.32.2 to 1.32.3. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.32.2...v1.32.3) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index baa5adf8..ee3a1f7d 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.22.0 require ( github.com/ClickHouse/clickhouse-go/v2 v2.30.0 - github.com/aws/aws-sdk-go-v2 v1.32.2 + github.com/aws/aws-sdk-go-v2 v1.32.3 github.com/aws/aws-sdk-go-v2/config v1.28.0 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.2 github.com/go-sql-driver/mysql v1.8.1 diff --git a/go.sum b/go.sum index ae6322a6..585fcd16 100644 --- a/go.sum +++ b/go.sum @@ -30,8 +30,8 @@ github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7X github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= github.com/apache/arrow/go/v15 v15.0.0 h1:1zZACWf85oEZY5/kd9dsQS7i+2G5zVQcbKTHgslqHNA= github.com/apache/arrow/go/v15 v15.0.0/go.mod h1:DGXsR3ajT524njufqf95822i+KTh+yea1jass9YXgjA= -github.com/aws/aws-sdk-go-v2 v1.32.2 h1:AkNLZEyYMLnx/Q/mSKkcMqwNFXMAvFto9bNsHqcTduI= -github.com/aws/aws-sdk-go-v2 v1.32.2/go.mod h1:2SK5n0a2karNTv5tbP1SjsX0uhttou00v/HpXKM1ZUo= +github.com/aws/aws-sdk-go-v2 v1.32.3 h1:T0dRlFBKcdaUPGNtkBSwHZxrtis8CQU17UpNBZYd0wk= +github.com/aws/aws-sdk-go-v2 v1.32.3/go.mod h1:2SK5n0a2karNTv5tbP1SjsX0uhttou00v/HpXKM1ZUo= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg= github.com/aws/aws-sdk-go-v2/config v1.28.0 h1:FosVYWcqEtWNxHn8gB/Vs6jOlNwSoyOCA/g/sxyySOQ= From e1fac0e83e74e410405b56235e1415d0f37d71c6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 2 Nov 2024 12:05:16 +0100 Subject: [PATCH 298/401] deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager from 1.34.2 to 1.34.3 (#631) deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager Bumps [github.com/aws/aws-sdk-go-v2/service/secretsmanager](https://github.com/aws/aws-sdk-go-v2) from 1.34.2 to 1.34.3. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/iot/v1.34.2...service/iot/v1.34.3) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/service/secretsmanager dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index ee3a1f7d..f40337ac 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/ClickHouse/clickhouse-go/v2 v2.30.0 github.com/aws/aws-sdk-go-v2 v1.32.3 github.com/aws/aws-sdk-go-v2/config v1.28.0 - github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.2 + github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.3 github.com/go-sql-driver/mysql v1.8.1 github.com/jackc/pgx/v5 v5.7.1 github.com/kardianos/minwinsvc v1.0.2 @@ -42,8 +42,8 @@ require ( github.com/aws/aws-sdk-go-v2/credentials v1.17.41 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.17 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.21 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.21 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.22 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.22 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0 // indirect diff --git a/go.sum b/go.sum index 585fcd16..c130ee61 100644 --- a/go.sum +++ b/go.sum @@ -42,10 +42,10 @@ github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.17 h1:TMH3f/SCAWdNtXXVPPu5D6 github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.17/go.mod h1:1ZRXLdTpzdJb9fwTMXiLipENRxkGMTn1sfKexGllQCw= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 h1:7Zwtt/lP3KNRkeZre7soMELMGNoBrutx8nobg1jKWmo= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15/go.mod h1:436h2adoHb57yd+8W+gYPrrA9U/R/SuAuOO42Ushzhw= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.21 h1:UAsR3xA31QGf79WzpG/ixT9FZvQlh5HY1NRqSHBNOCk= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.21/go.mod h1:JNr43NFf5L9YaG3eKTm7HQzls9J+A9YYcGI5Quh1r2Y= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.21 h1:6jZVETqmYCadGFvrYEQfC5fAQmlo80CeL5psbno6r0s= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.21/go.mod h1:1SR0GbLlnN3QUmYaflZNiH1ql+1qrSiB2vwcJ+4UM60= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.22 h1:Jw50LwEkVjuVzE1NzkhNKkBf9cRN7MtE1F/b2cOKTUM= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.22/go.mod h1:Y/SmAyPcOTmpeVaWSzSKiILfXTVJwrGmYZhcRbhWuEY= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.22 h1:981MHwBaRZM7+9QSR6XamDzF/o7ouUGxFzr+nVSIhrs= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.22/go.mod h1:1RA1+aBEfn+CAB/Mh0MB6LsdCYCnjZm7tKXtnk499ZQ= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvKgqdiXoTxAF4HQcQ= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 h1:81KE7vaZzrl7yHBYHVEzYB8sypz11NMOZ40YlWvPxsU= @@ -60,8 +60,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 h1:f9RyWNtS8oH7cZ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5/go.mod h1:h5CoMZV2VF297/VLhRhO1WF+XYWOzXo+4HsObA4HjBQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 h1:6cnno47Me9bRykw9AEv9zkXE+5or7jz8TsskTTccbgc= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1/go.mod h1:qmdkIIAC+GCLASF7R2whgNrJADz0QZPX+Seiw/i4S3o= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.2 h1:Rrqru2wYkKQCS2IM5/JrgKUQIoNTqA6y/iuxkjzxC6M= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.2/go.mod h1:QuCURO98Sqee2AXmqDNxKXYFm2OEDAVAPApMqO0Vqnc= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.3 h1:CyA6J82ePPoh1Nj8ErOR2e/JRlzfFzWpGwGMFzFjwZg= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.3/go.mod h1:EliITPlGcBz0FRiVl7lRLtzI1cnDybFcfLYMZedOInE= github.com/aws/aws-sdk-go-v2/service/sso v1.24.2 h1:bSYXVyUzoTHoKalBmwaZxs97HU9DWWI3ehHSAMa7xOk= github.com/aws/aws-sdk-go-v2/service/sso v1.24.2/go.mod h1:skMqY7JElusiOUjMJMOv1jJsP7YUg7DrhgqZZWuzu1U= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.2 h1:AhmO1fHINP9vFYUE0LHzCWg/LfUWUF+zFPEcY9QXb7o= From 3f5ceb5adc0ba4a597b0bdd2f668da1c3de4f80a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 2 Nov 2024 12:16:34 +0100 Subject: [PATCH 299/401] deps: bump github.com/aws/aws-sdk-go-v2/config from 1.28.0 to 1.28.1 (#630) Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.28.0 to 1.28.1. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.28.0...config/v1.28.1) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/config dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 14 +++++++------- go.sum | 28 ++++++++++++++-------------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/go.mod b/go.mod index f40337ac..00b9719e 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.22.0 require ( github.com/ClickHouse/clickhouse-go/v2 v2.30.0 github.com/aws/aws-sdk-go-v2 v1.32.3 - github.com/aws/aws-sdk-go-v2/config v1.28.0 + github.com/aws/aws-sdk-go-v2/config v1.28.1 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.3 github.com/go-sql-driver/mysql v1.8.1 github.com/jackc/pgx/v5 v5.7.1 @@ -39,8 +39,8 @@ require ( github.com/andybalholm/brotli v1.1.1 // indirect github.com/apache/arrow/go/v15 v15.0.0 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.41 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.17 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.42 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.18 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.22 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.22 // indirect @@ -48,12 +48,12 @@ require ( github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0 // indirect github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.2 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.3 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 // indirect github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.24.2 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.2 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.32.2 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.24.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.3 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.32.3 // indirect github.com/aws/smithy-go v1.22.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect diff --git a/go.sum b/go.sum index c130ee61..3dd21a19 100644 --- a/go.sum +++ b/go.sum @@ -34,12 +34,12 @@ github.com/aws/aws-sdk-go-v2 v1.32.3 h1:T0dRlFBKcdaUPGNtkBSwHZxrtis8CQU17UpNBZYd github.com/aws/aws-sdk-go-v2 v1.32.3/go.mod h1:2SK5n0a2karNTv5tbP1SjsX0uhttou00v/HpXKM1ZUo= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg= -github.com/aws/aws-sdk-go-v2/config v1.28.0 h1:FosVYWcqEtWNxHn8gB/Vs6jOlNwSoyOCA/g/sxyySOQ= -github.com/aws/aws-sdk-go-v2/config v1.28.0/go.mod h1:pYhbtvg1siOOg8h5an77rXle9tVG8T+BWLWAo7cOukc= -github.com/aws/aws-sdk-go-v2/credentials v1.17.41 h1:7gXo+Axmp+R4Z+AK8YFQO0ZV3L0gizGINCOWxSLY9W8= -github.com/aws/aws-sdk-go-v2/credentials v1.17.41/go.mod h1:u4Eb8d3394YLubphT4jLEwN1rLNq2wFOlT6OuxFwPzU= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.17 h1:TMH3f/SCAWdNtXXVPPu5D6wrr4G5hI1rAxbcocKfC7Q= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.17/go.mod h1:1ZRXLdTpzdJb9fwTMXiLipENRxkGMTn1sfKexGllQCw= +github.com/aws/aws-sdk-go-v2/config v1.28.1 h1:oxIvOUXy8x0U3fR//0eq+RdCKimWI900+SV+10xsCBw= +github.com/aws/aws-sdk-go-v2/config v1.28.1/go.mod h1:bRQcttQJiARbd5JZxw6wG0yIK3eLeSCPdg6uqmmlIiI= +github.com/aws/aws-sdk-go-v2/credentials v1.17.42 h1:sBP0RPjBU4neGpIYyx8mkU2QqLPl5u9cmdTWVzIpHkM= +github.com/aws/aws-sdk-go-v2/credentials v1.17.42/go.mod h1:FwZBfU530dJ26rv9saAbxa9Ej3eF/AK0OAY86k13n4M= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.18 h1:68jFVtt3NulEzojFesM/WVarlFpCaXLKaBxDpzkQ9OQ= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.18/go.mod h1:Fjnn5jQVIo6VyedMc0/EhPpfNlPl7dHV916O6B+49aE= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 h1:7Zwtt/lP3KNRkeZre7soMELMGNoBrutx8nobg1jKWmo= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15/go.mod h1:436h2adoHb57yd+8W+gYPrrA9U/R/SuAuOO42Ushzhw= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.22 h1:Jw50LwEkVjuVzE1NzkhNKkBf9cRN7MtE1F/b2cOKTUM= @@ -54,20 +54,20 @@ github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0 h1:TToQNkv github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0/go.mod h1:0jp+ltwkf+SwG2fm/PKo8t4y8pJSgOCO4D8Lz3k0aHQ= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 h1:ZMeFZ5yk+Ek+jNr1+uwCd2tG89t6oTS5yVWpa6yy2es= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7/go.mod h1:mxV05U+4JiHqIpGqqYXOHLPKUC6bDXC44bsUhNjOEwY= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.2 h1:s7NA1SOw8q/5c0wr8477yOPp0z+uBaXBnLE0XYb0POA= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.2/go.mod h1:fnjjWyAW/Pj5HYOxl9LJqWtEwS7W2qgcRLWP+uWbss0= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.3 h1:qcxX0JYlgWH3hpPUnd6U0ikcl6LLA9sLkXE2w1fpMvY= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.3/go.mod h1:cLSNEmI45soc+Ef8K/L+8sEA3A3pYFEYf5B5UI+6bH4= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 h1:f9RyWNtS8oH7cZlbn+/JNPpjUk5+5fLd5lM9M0i49Ys= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5/go.mod h1:h5CoMZV2VF297/VLhRhO1WF+XYWOzXo+4HsObA4HjBQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 h1:6cnno47Me9bRykw9AEv9zkXE+5or7jz8TsskTTccbgc= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1/go.mod h1:qmdkIIAC+GCLASF7R2whgNrJADz0QZPX+Seiw/i4S3o= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.3 h1:CyA6J82ePPoh1Nj8ErOR2e/JRlzfFzWpGwGMFzFjwZg= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.3/go.mod h1:EliITPlGcBz0FRiVl7lRLtzI1cnDybFcfLYMZedOInE= -github.com/aws/aws-sdk-go-v2/service/sso v1.24.2 h1:bSYXVyUzoTHoKalBmwaZxs97HU9DWWI3ehHSAMa7xOk= -github.com/aws/aws-sdk-go-v2/service/sso v1.24.2/go.mod h1:skMqY7JElusiOUjMJMOv1jJsP7YUg7DrhgqZZWuzu1U= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.2 h1:AhmO1fHINP9vFYUE0LHzCWg/LfUWUF+zFPEcY9QXb7o= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.2/go.mod h1:o8aQygT2+MVP0NaV6kbdE1YnnIM8RRVQzoeUH45GOdI= -github.com/aws/aws-sdk-go-v2/service/sts v1.32.2 h1:CiS7i0+FUe+/YY1GvIBLLrR/XNGZ4CtM1Ll0XavNuVo= -github.com/aws/aws-sdk-go-v2/service/sts v1.32.2/go.mod h1:HtaiBI8CjYoNVde8arShXb94UbQQi9L4EMr6D+xGBwo= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.3 h1:UTpsIf0loCIWEbrqdLb+0RxnTXfWh2vhw4nQmFi4nPc= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.3/go.mod h1:FZ9j3PFHHAR+w0BSEjK955w5YD2UwB/l/H0yAK3MJvI= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.3 h1:2YCmIXv3tmiItw0LlYf6v7gEHebLY45kBEnPezbUKyU= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.3/go.mod h1:u19stRyNPxGhj6dRm+Cdgu6N75qnbW7+QN0q0dsAk58= +github.com/aws/aws-sdk-go-v2/service/sts v1.32.3 h1:wVnQ6tigGsRqSWDEEyH6lSAJ9OyFUsSnbaUWChuSGzs= +github.com/aws/aws-sdk-go-v2/service/sts v1.32.3/go.mod h1:VZa9yTFyj4o10YGsmDO4gbQJUvvhY72fhumT8W4LqsE= github.com/aws/smithy-go v1.22.0 h1:uunKnWlcoL3zO7q+gG2Pk53joueEOsnNB28QdMsmiMM= github.com/aws/smithy-go v1.22.0/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= From f5faab550dd8e5d7e5fffac0013753fe9b673fff Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Thu, 14 Nov 2024 20:33:01 +0000 Subject: [PATCH 300/401] fix: add query execution duration as debug msg (#639) --- query.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/query.go b/query.go index 007eede8..8b6be71b 100644 --- a/query.go +++ b/query.go @@ -5,6 +5,7 @@ import ( "database/sql" "fmt" "log/slog" + "time" "github.com/burningalchemist/sql_exporter/config" "github.com/burningalchemist/sql_exporter/errors" @@ -119,6 +120,13 @@ func (q *Query) Collect(ctx context.Context, conn *sql.DB, ch chan<- Metric) { // run executes the query on the provided database, in the provided context. func (q *Query) run(ctx context.Context, conn *sql.DB) (*sql.Rows, errors.WithContext) { + if slog.Default().Enabled(ctx, slog.LevelDebug) { + start := time.Now() + defer func() { + slog.Debug("Query execution time", "logContext", q.logContext, "duration", time.Since(start)) + }() + } + if q.conn != nil && q.conn != conn { panic(fmt.Sprintf("[%s] Expecting to always run on the same database handle", q.logContext)) } From dde9ee51988b4642461b241496fcd334a4539b51 Mon Sep 17 00:00:00 2001 From: Avihais12344 <69143592+Avihais12344@users.noreply.github.com> Date: Fri, 22 Nov 2024 10:07:05 +0200 Subject: [PATCH 301/401] feat(helm): Add ingress to the helm chart (#640) * Added ingress values. * Added most of the ingress * Fixed indentations. * Commented out the host. * Updated the values so they would actually read the files. * Added tls secret name. * Added tls secret. * Added the option for ingress class name. * Disabled the ingress by default. * Added explanation at the readme. * Updated the readme to the actual behaviour. * Updated the readme template to generate warning about enabling the ingress. * Updated the readme. * Fix docs for tls secret for the ingress. * Bumped the chart version. * Updated the ingress part at the readme. --- helm/Chart.yaml | 2 +- helm/README.md | 32 +++++++++++++++++++++++++++- helm/README.md.gotmpl | 21 +++++++++++++++++++ helm/templates/_helpers.tpl | 11 ++++++++++ helm/templates/ingress.yaml | 38 ++++++++++++++++++++++++++++++++++ helm/templates/secret.tls.yaml | 15 ++++++++++++++ helm/values.yaml | 22 ++++++++++++++++++++ 7 files changed, 139 insertions(+), 2 deletions(-) create mode 100644 helm/templates/ingress.yaml create mode 100644 helm/templates/secret.tls.yaml diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 8f395ebe..5f63f4a0 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: sql-exporter description: Database-agnostic SQL exporter for Prometheus type: application -version: 0.9.0 +version: 0.10.0 appVersion: 0.16.0 keywords: - exporter diff --git a/helm/README.md b/helm/README.md index d7770f49..c082a81f 100644 --- a/helm/README.md +++ b/helm/README.md @@ -1,6 +1,6 @@ # sql-exporter -![Version: 0.9.0](https://img.shields.io/badge/Version-0.9.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.16.0](https://img.shields.io/badge/AppVersion-0.16.0-informational?style=flat-square) +![Version: 0.10.0](https://img.shields.io/badge/Version-0.10.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.16.0](https://img.shields.io/badge/AppVersion-0.16.0-informational?style=flat-square) Database-agnostic SQL exporter for Prometheus @@ -23,6 +23,27 @@ helm repo add sql_exporter https://burningalchemist.github.io/sql_exporter/ helm install sql_exporter/sql-exporter ``` +### Ingress support + +It's possible to enable the ingress creation by setting + +```yaml +#Values +ingress: + enabled: true +``` + +But as the sql_operator has a direct connection to databases, +it might expose the database servers to possible DDoS attacks. +It's not recommended by maintainers to use ingress for accessing the exporter, +but if there are no other options, +security measures should be taken. + +For example, a user might enable the basic auth on the ingress level. +Take a look on how it's done at the +[nginx ingress controller](https://kubernetes.github.io/ingress-nginx/examples/auth/basic/) +as an example. + ## Chart Values ### General parameters @@ -39,6 +60,15 @@ helm install sql_exporter/sql-exporter | service.port | int | `80` | Service port | | service.labels | object | `{}` | Service labels | | service.annotations | object | `{}` | Service annotations | +| ingress.enabled | bool | `false` | | +| ingress.labels | object | `{}` | Ingress labels | +| ingress.annotations | object | `{}` | Ingress annotations | +| ingress.ingressClassName | string | `""` | Ingress class name | +| ingress.host | string | `""` | Ingress host | +| ingress.tls | object | `{"crt":"","enabled":false,"key":"","secretName":""}` | Ingress TLS, can be defined by cert secret, or by key and cert. | +| ingress.tls.secretName | string | `""` | Ingress tls secret if already exists. | +| ingress.tls.crt | string | `""` | Ingress tls.crt, required if you don't have secret name. | +| ingress.tls.key | string | `""` | Ingress tls.key, required if you don't have secret name. | | extraContainers | object | `{}` | Arbitrary sidecar containers list | | serviceAccount.create | bool | `true` | Specifies whether a Service Account should be created, creates "sql-exporter" service account if true, unless overriden. Otherwise, set to `default` if false, and custom service account name is not provided. Check all the available parameters. | | serviceAccount.annotations | object | `{}` | Annotations to add to the Service Account | diff --git a/helm/README.md.gotmpl b/helm/README.md.gotmpl index 3a92f481..53ce2c84 100644 --- a/helm/README.md.gotmpl +++ b/helm/README.md.gotmpl @@ -21,6 +21,27 @@ helm repo add sql_exporter https://burningalchemist.github.io/sql_exporter/ helm install sql_exporter/sql-exporter ``` +### Ingress support + +It's possible to enable the ingress creation by setting + +```yaml +#Values +ingress: + enabled: true +``` + +But as the sql_operator has a direct connection to databases, +it might expose the database servers to possible DDoS attacks. +It's not recommended by maintainers to use ingress for accessing the exporter, +but if there are no other options, +security measures should be taken. + +For example, a user might enable the basic auth on the ingress level. +Take a look on how it's done at the +[nginx ingress controller](https://kubernetes.github.io/ingress-nginx/examples/auth/basic/) +as an example. + ## Chart Values ### General parameters diff --git a/helm/templates/_helpers.tpl b/helm/templates/_helpers.tpl index dfbdc118..6744e028 100644 --- a/helm/templates/_helpers.tpl +++ b/helm/templates/_helpers.tpl @@ -30,6 +30,17 @@ Create chart name and version as used by the chart label. {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} {{- end }} +{{/* +Create tls secret name based on the chart name +*/}} +{{- define "sql-exporter.tls.name" -}} +{{- if ((.Values.ingress).tls).secretName -}} +{{- .Values.ingress.tls.secretName }} +{{- else -}} +{{- printf "%s-%s" (include "sql-exporter.fullname" .) "tls" }} +{{- end -}} +{{- end -}} + {{/* Common labels */}} diff --git a/helm/templates/ingress.yaml b/helm/templates/ingress.yaml new file mode 100644 index 00000000..a85bcc5c --- /dev/null +++ b/helm/templates/ingress.yaml @@ -0,0 +1,38 @@ +{{- if (.Values.ingress).enabled -}} +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: {{ include "sql-exporter.fullname" . }} + labels: + {{- include "sql-exporter.labels" . | nindent 4 }} + {{- with .Values.ingress.labels }} + {{- toYaml . | nindent 4 }} + {{- end }} + {{- with .Values.ingress.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + {{- if .Values.ingress.ingressClassName }} + ingressClassName: {{ .Values.ingress.ingressClassName }} + {{- end }} + {{- if (.Values.ingress.tls).enabled }} + tls: + - hosts: + - {{ .Values.ingress.host | required "Ingress host is required if tls is enabled!" }} + secretName: {{ include "sql-exporter.tls.name" . }} + {{- end }} + rules: + - http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: {{ include "sql-exporter.fullname" . }} + port: + number: {{ .Values.service.port }} + {{- if .Values.ingress.host }} + host: {{ .Values.ingress.host }} + {{- end }} +{{- end -}} diff --git a/helm/templates/secret.tls.yaml b/helm/templates/secret.tls.yaml new file mode 100644 index 00000000..42d85390 --- /dev/null +++ b/helm/templates/secret.tls.yaml @@ -0,0 +1,15 @@ +# --------------------------------------------------------------------- +# -- This secret holds the tls key and cert of sql_exporter's ingress +# --------------------------------------------------------------------- +{{- if and (((.Values.ingress).tls).enabled) (not ((.Values.ingress).tls).secretName) -}} +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "sql-exporter.tls.name" . }} + labels: + {{- include "sql-exporter.labels" . | nindent 4 }} +type: Opaque +data: + tls.crt: {{ (tpl (.Values.ingress.tls.crt | required "crt is required if you want to create tls secret.") .) | required "crt is required if you want to create tls secret." | b64enc | quote }} + tls.key: {{ (tpl (.Values.ingress.tls.key | required "private key is required if you want to create tls secret.") .) | required "private key is required if you want to create tls secret." | b64enc | quote }} +{{- end }} diff --git a/helm/values.yaml b/helm/values.yaml index 036aa5a0..9fd5eb8f 100644 --- a/helm/values.yaml +++ b/helm/values.yaml @@ -24,6 +24,28 @@ service: # example of prometheus usage # prometheus.io/scrape: "true" # prometheus.io/path: "/metrics" +ingress: + enabled: false + # -- Ingress labels + labels: {} + # -- Ingress annotations + annotations: {} + # -- Ingress class name + ingressClassName: "" + # -- Ingress host + host: "" + # -- Ingress TLS, can be defined by cert secret, or by key and cert. + tls: + enabled: false + # -- Ingress tls secret if already exists. + secretName: "" + # -- Ingress tls.crt, required if you don't have secret name. + crt: "" + # crt: "{{- .Files.Get \"tls.crt\" -}}" + # -- Ingress tls.key, required if you don't have secret name. + key: "" + # key: "{{- .Files.Get \"tls.key\" -}}" + # -- Arbitrary sidecar containers list extraContainers: {} # - name: your_sidecar From c4adc8672d831d103e253623e1bef6bd2c4dbe83 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Wed, 4 Dec 2024 11:37:13 +0100 Subject: [PATCH 302/401] feat: add go-ora/v2 driver (#648) feat: add oracledb driver --- drivers.go | 1 + drivers_gen.go | 1 + go.mod | 1 + go.sum | 2 ++ 4 files changed, 5 insertions(+) diff --git a/drivers.go b/drivers.go index 0b2dba31..561a8404 100644 --- a/drivers.go +++ b/drivers.go @@ -8,6 +8,7 @@ import ( _ "github.com/jackc/pgx/v5/stdlib" _ "github.com/lib/pq" _ "github.com/microsoft/go-mssqldb/azuread" + _ "github.com/sijms/go-ora/v2" _ "github.com/snowflakedb/gosnowflake" _ "github.com/vertica/vertica-sql-go" ) diff --git a/drivers_gen.go b/drivers_gen.go index 2e72e617..1fa29697 100644 --- a/drivers_gen.go +++ b/drivers_gen.go @@ -25,6 +25,7 @@ var driverList = map[string][]string{ "github.com/jackc/pgx/v5/stdlib", "github.com/snowflakedb/gosnowflake", "github.com/vertica/vertica-sql-go", + "github.com/sijms/go-ora/v2", }, "custom": { "github.com/mithrandie/csvq-driver", diff --git a/go.mod b/go.mod index 00b9719e..04938c0d 100644 --- a/go.mod +++ b/go.mod @@ -17,6 +17,7 @@ require ( github.com/prometheus/common v0.60.1 github.com/prometheus/exporter-toolkit v0.13.1 github.com/sethvargo/go-envconfig v1.1.0 + github.com/sijms/go-ora/v2 v2.8.22 github.com/snowflakedb/gosnowflake v1.12.0 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.23.1 diff --git a/go.sum b/go.sum index 3dd21a19..b62cd6fe 100644 --- a/go.sum +++ b/go.sum @@ -199,6 +199,8 @@ github.com/sethvargo/go-envconfig v1.1.0 h1:cWZiJxeTm7AlCvzGXrEXaSTCNgip5oJepekh github.com/sethvargo/go-envconfig v1.1.0/go.mod h1:JLd0KFWQYzyENqnEPWWZ49i4vzZo/6nRidxI8YvGiHw= github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k= github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME= +github.com/sijms/go-ora/v2 v2.8.22 h1:3ABgRzVKxS439cEgSLjFKutIwOyhnyi4oOSBywEdOlU= +github.com/sijms/go-ora/v2 v2.8.22/go.mod h1:QgFInVi3ZWyqAiJwzBQA+nbKYKH77tdp1PYoCqhR2dU= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/snowflakedb/gosnowflake v1.12.0 h1:Saez8egtn5xAoVMBxFaMu9MYfAG9SS9dpAEXD1/ECIo= From f4f2326d2b783a0b493ca34dcc1511852136b452 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Wed, 4 Dec 2024 13:08:54 +0100 Subject: [PATCH 303/401] docs: update README.md (#649) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2b612262..382d151f 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,7 @@ monitoring system. Out of the box, it provides support for the following databas - MySQL - PostgreSQL - Microsoft SQL Server +- Oracle Database - Clickhouse - Snowflake - Vertica From b44cb3315a306e039d255a86eb576ce9035b5ac5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Dec 2024 16:45:46 +0100 Subject: [PATCH 304/401] deps: bump google.golang.org/protobuf from 1.35.1 to 1.35.2 (#646) Bumps google.golang.org/protobuf from 1.35.1 to 1.35.2. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 04938c0d..998870b0 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/snowflakedb/gosnowflake v1.12.0 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.23.1 - google.golang.org/protobuf v1.35.1 + google.golang.org/protobuf v1.35.2 gopkg.in/yaml.v3 v3.0.1 ) diff --git a/go.sum b/go.sum index b62cd6fe..0c86215b 100644 --- a/go.sum +++ b/go.sum @@ -301,8 +301,8 @@ gonum.org/v1/gonum v0.12.0 h1:xKuo6hzt+gMav00meVPUlXwSdoEJP46BR+wdxQEFK2o= gonum.org/v1/gonum v0.12.0/go.mod h1:73TDxJfAAHeA8Mk9mf8NlIppyhQNo5GLTcYeqgo2lvY= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= -google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From 5dfa5761336e5c6c854e43f201e4a82b11fe79e2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Dec 2024 16:46:06 +0100 Subject: [PATCH 305/401] deps: bump github.com/aws/aws-sdk-go-v2 from 1.32.3 to 1.32.5 (#645) Bumps [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) from 1.32.3 to 1.32.5. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.32.3...v1.32.5) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 998870b0..8be3ff64 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.22.0 require ( github.com/ClickHouse/clickhouse-go/v2 v2.30.0 - github.com/aws/aws-sdk-go-v2 v1.32.3 + github.com/aws/aws-sdk-go-v2 v1.32.5 github.com/aws/aws-sdk-go-v2/config v1.28.1 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.3 github.com/go-sql-driver/mysql v1.8.1 @@ -55,7 +55,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/sso v1.24.3 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.3 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.32.3 // indirect - github.com/aws/smithy-go v1.22.0 // indirect + github.com/aws/smithy-go v1.22.1 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect diff --git a/go.sum b/go.sum index 0c86215b..7aa357a8 100644 --- a/go.sum +++ b/go.sum @@ -30,8 +30,8 @@ github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7X github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= github.com/apache/arrow/go/v15 v15.0.0 h1:1zZACWf85oEZY5/kd9dsQS7i+2G5zVQcbKTHgslqHNA= github.com/apache/arrow/go/v15 v15.0.0/go.mod h1:DGXsR3ajT524njufqf95822i+KTh+yea1jass9YXgjA= -github.com/aws/aws-sdk-go-v2 v1.32.3 h1:T0dRlFBKcdaUPGNtkBSwHZxrtis8CQU17UpNBZYd0wk= -github.com/aws/aws-sdk-go-v2 v1.32.3/go.mod h1:2SK5n0a2karNTv5tbP1SjsX0uhttou00v/HpXKM1ZUo= +github.com/aws/aws-sdk-go-v2 v1.32.5 h1:U8vdWJuY7ruAkzaOdD7guwJjD06YSKmnKCJs7s3IkIo= +github.com/aws/aws-sdk-go-v2 v1.32.5/go.mod h1:P5WJBrYqqbWVaOxgH0X/FYYD47/nooaPOZPlQdmiN2U= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg= github.com/aws/aws-sdk-go-v2/config v1.28.1 h1:oxIvOUXy8x0U3fR//0eq+RdCKimWI900+SV+10xsCBw= @@ -68,8 +68,8 @@ github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.3 h1:2YCmIXv3tmiItw0LlYf6v7gE github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.3/go.mod h1:u19stRyNPxGhj6dRm+Cdgu6N75qnbW7+QN0q0dsAk58= github.com/aws/aws-sdk-go-v2/service/sts v1.32.3 h1:wVnQ6tigGsRqSWDEEyH6lSAJ9OyFUsSnbaUWChuSGzs= github.com/aws/aws-sdk-go-v2/service/sts v1.32.3/go.mod h1:VZa9yTFyj4o10YGsmDO4gbQJUvvhY72fhumT8W4LqsE= -github.com/aws/smithy-go v1.22.0 h1:uunKnWlcoL3zO7q+gG2Pk53joueEOsnNB28QdMsmiMM= -github.com/aws/smithy-go v1.22.0/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= +github.com/aws/smithy-go v1.22.1 h1:/HPHZQ0g7f4eUeK6HKglFz8uwVfZKgoI25rb/J+dnro= +github.com/aws/smithy-go v1.22.1/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= From 769316cfee321bc6457cc267bb4a9484fc64ab20 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Dec 2024 16:50:43 +0100 Subject: [PATCH 306/401] deps: bump github.com/aws/aws-sdk-go-v2/config from 1.28.1 to 1.28.6 (#651) Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.28.1 to 1.28.6. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.28.1...config/v1.28.6) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/config dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 22 +++++++++++----------- go.sum | 44 ++++++++++++++++++++++---------------------- 2 files changed, 33 insertions(+), 33 deletions(-) diff --git a/go.mod b/go.mod index 8be3ff64..04ad1fd7 100644 --- a/go.mod +++ b/go.mod @@ -4,8 +4,8 @@ go 1.22.0 require ( github.com/ClickHouse/clickhouse-go/v2 v2.30.0 - github.com/aws/aws-sdk-go-v2 v1.32.5 - github.com/aws/aws-sdk-go-v2/config v1.28.1 + github.com/aws/aws-sdk-go-v2 v1.32.6 + github.com/aws/aws-sdk-go-v2/config v1.28.6 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.3 github.com/go-sql-driver/mysql v1.8.1 github.com/jackc/pgx/v5 v5.7.1 @@ -40,21 +40,21 @@ require ( github.com/andybalholm/brotli v1.1.1 // indirect github.com/apache/arrow/go/v15 v15.0.0 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.42 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.18 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.47 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.21 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.22 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.22 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.25 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.25 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 // indirect github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.3 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.6 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 // indirect github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.24.3 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.3 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.32.3 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.24.7 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.6 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.33.2 // indirect github.com/aws/smithy-go v1.22.1 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect diff --git a/go.sum b/go.sum index 7aa357a8..fd9cc9e2 100644 --- a/go.sum +++ b/go.sum @@ -30,44 +30,44 @@ github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7X github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= github.com/apache/arrow/go/v15 v15.0.0 h1:1zZACWf85oEZY5/kd9dsQS7i+2G5zVQcbKTHgslqHNA= github.com/apache/arrow/go/v15 v15.0.0/go.mod h1:DGXsR3ajT524njufqf95822i+KTh+yea1jass9YXgjA= -github.com/aws/aws-sdk-go-v2 v1.32.5 h1:U8vdWJuY7ruAkzaOdD7guwJjD06YSKmnKCJs7s3IkIo= -github.com/aws/aws-sdk-go-v2 v1.32.5/go.mod h1:P5WJBrYqqbWVaOxgH0X/FYYD47/nooaPOZPlQdmiN2U= +github.com/aws/aws-sdk-go-v2 v1.32.6 h1:7BokKRgRPuGmKkFMhEg/jSul+tB9VvXhcViILtfG8b4= +github.com/aws/aws-sdk-go-v2 v1.32.6/go.mod h1:P5WJBrYqqbWVaOxgH0X/FYYD47/nooaPOZPlQdmiN2U= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg= -github.com/aws/aws-sdk-go-v2/config v1.28.1 h1:oxIvOUXy8x0U3fR//0eq+RdCKimWI900+SV+10xsCBw= -github.com/aws/aws-sdk-go-v2/config v1.28.1/go.mod h1:bRQcttQJiARbd5JZxw6wG0yIK3eLeSCPdg6uqmmlIiI= -github.com/aws/aws-sdk-go-v2/credentials v1.17.42 h1:sBP0RPjBU4neGpIYyx8mkU2QqLPl5u9cmdTWVzIpHkM= -github.com/aws/aws-sdk-go-v2/credentials v1.17.42/go.mod h1:FwZBfU530dJ26rv9saAbxa9Ej3eF/AK0OAY86k13n4M= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.18 h1:68jFVtt3NulEzojFesM/WVarlFpCaXLKaBxDpzkQ9OQ= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.18/go.mod h1:Fjnn5jQVIo6VyedMc0/EhPpfNlPl7dHV916O6B+49aE= +github.com/aws/aws-sdk-go-v2/config v1.28.6 h1:D89IKtGrs/I3QXOLNTH93NJYtDhm8SYa9Q5CsPShmyo= +github.com/aws/aws-sdk-go-v2/config v1.28.6/go.mod h1:GDzxJ5wyyFSCoLkS+UhGB0dArhb9mI+Co4dHtoTxbko= +github.com/aws/aws-sdk-go-v2/credentials v1.17.47 h1:48bA+3/fCdi2yAwVt+3COvmatZ6jUDNkDTIsqDiMUdw= +github.com/aws/aws-sdk-go-v2/credentials v1.17.47/go.mod h1:+KdckOejLW3Ks3b0E3b5rHsr2f9yuORBum0WPnE5o5w= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.21 h1:AmoU1pziydclFT/xRV+xXE/Vb8fttJCLRPv8oAkprc0= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.21/go.mod h1:AjUdLYe4Tgs6kpH4Bv7uMZo7pottoyHMn4eTcIcneaY= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 h1:7Zwtt/lP3KNRkeZre7soMELMGNoBrutx8nobg1jKWmo= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15/go.mod h1:436h2adoHb57yd+8W+gYPrrA9U/R/SuAuOO42Ushzhw= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.22 h1:Jw50LwEkVjuVzE1NzkhNKkBf9cRN7MtE1F/b2cOKTUM= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.22/go.mod h1:Y/SmAyPcOTmpeVaWSzSKiILfXTVJwrGmYZhcRbhWuEY= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.22 h1:981MHwBaRZM7+9QSR6XamDzF/o7ouUGxFzr+nVSIhrs= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.22/go.mod h1:1RA1+aBEfn+CAB/Mh0MB6LsdCYCnjZm7tKXtnk499ZQ= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.25 h1:s/fF4+yDQDoElYhfIVvSNyeCydfbuTKzhxSXDXCPasU= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.25/go.mod h1:IgPfDv5jqFIzQSNbUEMoitNooSMXjRSDkhXv8jiROvU= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.25 h1:ZntTCl5EsYnhN/IygQEUugpdwbhdkom9uHcbCftiGgA= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.25/go.mod h1:DBdPrgeocww+CSl1C8cEV8PN1mHMBhuCDLpXezyvWkE= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvKgqdiXoTxAF4HQcQ= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 h1:81KE7vaZzrl7yHBYHVEzYB8sypz11NMOZ40YlWvPxsU= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5/go.mod h1:LIt2rg7Mcgn09Ygbdh/RdIm0rQ+3BNkbP1gyVMFtRK0= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0 h1:TToQNkvGguu209puTojY/ozlqy2d/SFNcoLIqTFi42g= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0/go.mod h1:0jp+ltwkf+SwG2fm/PKo8t4y8pJSgOCO4D8Lz3k0aHQ= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 h1:iXtILhvDxB6kPvEXgsDhGaZCSC6LQET5ZHSdJozeI0Y= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1/go.mod h1:9nu0fVANtYiAePIBh2/pFUSwtJ402hLnp854CNoDOeE= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 h1:ZMeFZ5yk+Ek+jNr1+uwCd2tG89t6oTS5yVWpa6yy2es= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7/go.mod h1:mxV05U+4JiHqIpGqqYXOHLPKUC6bDXC44bsUhNjOEwY= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.3 h1:qcxX0JYlgWH3hpPUnd6U0ikcl6LLA9sLkXE2w1fpMvY= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.3/go.mod h1:cLSNEmI45soc+Ef8K/L+8sEA3A3pYFEYf5B5UI+6bH4= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.6 h1:50+XsN70RS7dwJ2CkVNXzj7U2L1HKP8nqTd3XWEXBN4= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.6/go.mod h1:WqgLmwY7so32kG01zD8CPTJWVWM+TzJoOVHwTg4aPug= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 h1:f9RyWNtS8oH7cZlbn+/JNPpjUk5+5fLd5lM9M0i49Ys= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5/go.mod h1:h5CoMZV2VF297/VLhRhO1WF+XYWOzXo+4HsObA4HjBQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 h1:6cnno47Me9bRykw9AEv9zkXE+5or7jz8TsskTTccbgc= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1/go.mod h1:qmdkIIAC+GCLASF7R2whgNrJADz0QZPX+Seiw/i4S3o= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.3 h1:CyA6J82ePPoh1Nj8ErOR2e/JRlzfFzWpGwGMFzFjwZg= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.3/go.mod h1:EliITPlGcBz0FRiVl7lRLtzI1cnDybFcfLYMZedOInE= -github.com/aws/aws-sdk-go-v2/service/sso v1.24.3 h1:UTpsIf0loCIWEbrqdLb+0RxnTXfWh2vhw4nQmFi4nPc= -github.com/aws/aws-sdk-go-v2/service/sso v1.24.3/go.mod h1:FZ9j3PFHHAR+w0BSEjK955w5YD2UwB/l/H0yAK3MJvI= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.3 h1:2YCmIXv3tmiItw0LlYf6v7gEHebLY45kBEnPezbUKyU= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.3/go.mod h1:u19stRyNPxGhj6dRm+Cdgu6N75qnbW7+QN0q0dsAk58= -github.com/aws/aws-sdk-go-v2/service/sts v1.32.3 h1:wVnQ6tigGsRqSWDEEyH6lSAJ9OyFUsSnbaUWChuSGzs= -github.com/aws/aws-sdk-go-v2/service/sts v1.32.3/go.mod h1:VZa9yTFyj4o10YGsmDO4gbQJUvvhY72fhumT8W4LqsE= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.7 h1:rLnYAfXQ3YAccocshIH5mzNNwZBkBo+bP6EhIxak6Hw= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.7/go.mod h1:ZHtuQJ6t9A/+YDuxOLnbryAmITtr8UysSny3qcyvJTc= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.6 h1:JnhTZR3PiYDNKlXy50/pNeix9aGMo6lLpXwJ1mw8MD4= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.6/go.mod h1:URronUEGfXZN1VpdktPSD1EkAL9mfrV+2F4sjH38qOY= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.2 h1:s4074ZO1Hk8qv65GqNXqDjmkf4HSQqJukaLuuW0TpDA= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.2/go.mod h1:mVggCnIWoM09jP71Wh+ea7+5gAp53q+49wDFs1SW5z8= github.com/aws/smithy-go v1.22.1 h1:/HPHZQ0g7f4eUeK6HKglFz8uwVfZKgoI25rb/J+dnro= github.com/aws/smithy-go v1.22.1/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= From 5dccdc486c16b0ade6c12fa3261054bba8671a9a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Dec 2024 16:52:11 +0100 Subject: [PATCH 307/401] deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager from 1.34.3 to 1.34.7 (#650) deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager Bumps [github.com/aws/aws-sdk-go-v2/service/secretsmanager](https://github.com/aws/aws-sdk-go-v2) from 1.34.3 to 1.34.7. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/iot/v1.34.3...service/sqs/v1.34.7) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/service/secretsmanager dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 04ad1fd7..59b24e23 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/ClickHouse/clickhouse-go/v2 v2.30.0 github.com/aws/aws-sdk-go-v2 v1.32.6 github.com/aws/aws-sdk-go-v2/config v1.28.6 - github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.3 + github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.7 github.com/go-sql-driver/mysql v1.8.1 github.com/jackc/pgx/v5 v5.7.1 github.com/kardianos/minwinsvc v1.0.2 diff --git a/go.sum b/go.sum index fd9cc9e2..2e6d4950 100644 --- a/go.sum +++ b/go.sum @@ -60,8 +60,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 h1:f9RyWNtS8oH7cZ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5/go.mod h1:h5CoMZV2VF297/VLhRhO1WF+XYWOzXo+4HsObA4HjBQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 h1:6cnno47Me9bRykw9AEv9zkXE+5or7jz8TsskTTccbgc= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1/go.mod h1:qmdkIIAC+GCLASF7R2whgNrJADz0QZPX+Seiw/i4S3o= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.3 h1:CyA6J82ePPoh1Nj8ErOR2e/JRlzfFzWpGwGMFzFjwZg= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.3/go.mod h1:EliITPlGcBz0FRiVl7lRLtzI1cnDybFcfLYMZedOInE= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.7 h1:Nyfbgei75bohfmZNxgN27i528dGYVzqWJGlAO6lzXy8= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.7/go.mod h1:FG4p/DciRxPgjA+BEOlwRHN0iA8hX2h9g5buSy3cTDA= github.com/aws/aws-sdk-go-v2/service/sso v1.24.7 h1:rLnYAfXQ3YAccocshIH5mzNNwZBkBo+bP6EhIxak6Hw= github.com/aws/aws-sdk-go-v2/service/sso v1.24.7/go.mod h1:ZHtuQJ6t9A/+YDuxOLnbryAmITtr8UysSny3qcyvJTc= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.6 h1:JnhTZR3PiYDNKlXy50/pNeix9aGMo6lLpXwJ1mw8MD4= From 094cd908e5d0a147d6b9bbfaf3e222d592bf14af Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Wed, 11 Dec 2024 13:02:20 +0100 Subject: [PATCH 308/401] docs: add WinSSPI/NTLM connection options (#653) Update README.md --- README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/README.md b/README.md index 382d151f..fc87c8da 100644 --- a/README.md +++ b/README.md @@ -359,6 +359,23 @@ In case you need a more sophisticated setup (e.g. with logging, environment vari +
+Using WinSSPI/NTLM as the authentication mechanism for MSSQL + +If sql_exporter is running in the same Windows domain as the MSSQL, then you can use the parameter `authenticator=winsspi` within the connection string to authenticate without any additional credentials: + +``` +sqlserver://@:?authenticator=winsspi +``` + +If you want to use Windows credentials to authenticate instead of MSSQL credentials, you can use the parameter `authenticator=ntlm` within the connection string. The USERNAME and PASSWORD then corresponds +to a Windows username and password. The Windows domain may need to be prefixed to the username with a trailing `\`: + +``` +sqlserver://:@:?authenticator=ntlm +``` +
+
TLS and Basic Authentication From a6ca8457115e4aa454598a1797d8f1d44b38852a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 12 Dec 2024 09:53:43 +0100 Subject: [PATCH 309/401] deps: bump golang.org/x/crypto from 0.28.0 to 0.31.0 (#654) --- go.mod | 10 +++++----- go.sum | 20 ++++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/go.mod b/go.mod index 59b24e23..7f093057 100644 --- a/go.mod +++ b/go.mod @@ -101,15 +101,15 @@ require ( github.com/zeebo/xxh3 v1.0.2 // indirect go.opentelemetry.io/otel v1.26.0 // indirect go.opentelemetry.io/otel/trace v1.26.0 // indirect - golang.org/x/crypto v0.28.0 // indirect + golang.org/x/crypto v0.31.0 // indirect golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.30.0 // indirect golang.org/x/oauth2 v0.23.0 // indirect - golang.org/x/sync v0.8.0 // indirect - golang.org/x/sys v0.26.0 // indirect - golang.org/x/term v0.25.0 // indirect - golang.org/x/text v0.19.0 // indirect + golang.org/x/sync v0.10.0 // indirect + golang.org/x/sys v0.28.0 // indirect + golang.org/x/term v0.27.0 // indirect + golang.org/x/text v0.21.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/go.sum b/go.sum index 2e6d4950..65107139 100644 --- a/go.sum +++ b/go.sum @@ -239,8 +239,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw= -golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U= +golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= +golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI= golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -261,8 +261,8 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= -golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -274,17 +274,17 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo= -golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.25.0 h1:WtHI/ltw4NvSUig5KARz9h521QvRC8RmF/cuYqifU24= -golang.org/x/term v0.25.0/go.mod h1:RPyXicDX+6vLxogjjRxjgD2TKtmAO6NZBsBRfrOLu7M= +golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q= +golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM= -golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= From 9592c1466518b26740d975e76073f67d99d4c9d4 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Thu, 12 Dec 2024 17:55:16 +0100 Subject: [PATCH 310/401] docs: add timestamp/parseTime snippet (#657) --- README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/README.md b/README.md index fc87c8da..a6ad0b1e 100644 --- a/README.md +++ b/README.md @@ -280,6 +280,19 @@ In case, you connect to a data warehouse (e.g. Snowflake) you don't want to keep cost), you might want to disable `ping` by setting `enable_ping: false`.
+
+Scraping timestamp value from the result set + +Some database drivers by default return DATE or DATETIME values as String type, whereas sql_exporter expects it to be Time. + +This may result in the following error: +``` +unsupported Scan, storing driver.Value type []uint8 into type *time.Time +``` + +To resolve the issue, make sure to include `parseTime=true` as a parameter on the DSN, so values with TIMESTAMP, DATETIME, TIME, DATE types +will end up as `time.Time` type, which is a requirement on the sql_exporter side to process the value correctly. +
Using AWS Secrets Manager From d7ff44c9999a202ebb707cb0f37091a1d445c15c Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Thu, 19 Dec 2024 15:41:52 +0100 Subject: [PATCH 311/401] fix(security): Bump golang.org/x/net from 0.30.0 to 0.33.0 (#660) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 7f093057..8d6d0549 100644 --- a/go.mod +++ b/go.mod @@ -104,7 +104,7 @@ require ( golang.org/x/crypto v0.31.0 // indirect golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect golang.org/x/mod v0.17.0 // indirect - golang.org/x/net v0.30.0 // indirect + golang.org/x/net v0.33.0 // indirect golang.org/x/oauth2 v0.23.0 // indirect golang.org/x/sync v0.10.0 // indirect golang.org/x/sys v0.28.0 // indirect diff --git a/go.sum b/go.sum index 65107139..6a9f4c03 100644 --- a/go.sum +++ b/go.sum @@ -252,8 +252,8 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= -golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= +golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= +golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= From 1fc7926ee668dc9b218ff2b2eff6fb7d9a027495 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Dec 2024 09:35:29 +0100 Subject: [PATCH 312/401] deps: bump github.com/prometheus/exporter-toolkit from 0.13.1 to 0.13.2 (#661) Bumps [github.com/prometheus/exporter-toolkit](https://github.com/prometheus/exporter-toolkit) from 0.13.1 to 0.13.2. - [Release notes](https://github.com/prometheus/exporter-toolkit/releases) - [Changelog](https://github.com/prometheus/exporter-toolkit/blob/master/CHANGELOG.md) - [Commits](https://github.com/prometheus/exporter-toolkit/compare/v0.13.1...v0.13.2) --- updated-dependencies: - dependency-name: github.com/prometheus/exporter-toolkit dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 16 ++++++++-------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/go.mod b/go.mod index 8d6d0549..7019247b 100644 --- a/go.mod +++ b/go.mod @@ -14,8 +14,8 @@ require ( github.com/microsoft/go-mssqldb v1.7.2 github.com/prometheus/client_golang v1.20.5 github.com/prometheus/client_model v0.6.1 - github.com/prometheus/common v0.60.1 - github.com/prometheus/exporter-toolkit v0.13.1 + github.com/prometheus/common v0.61.0 + github.com/prometheus/exporter-toolkit v0.13.2 github.com/sethvargo/go-envconfig v1.1.0 github.com/sijms/go-ora/v2 v2.8.22 github.com/snowflakedb/gosnowflake v1.12.0 @@ -105,7 +105,7 @@ require ( golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.33.0 // indirect - golang.org/x/oauth2 v0.23.0 // indirect + golang.org/x/oauth2 v0.24.0 // indirect golang.org/x/sync v0.10.0 // indirect golang.org/x/sys v0.28.0 // indirect golang.org/x/term v0.27.0 // indirect diff --git a/go.sum b/go.sum index 6a9f4c03..3440c186 100644 --- a/go.sum +++ b/go.sum @@ -184,10 +184,10 @@ github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+ github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= -github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= -github.com/prometheus/exporter-toolkit v0.13.1 h1:Evsh0gWQo2bdOHlnz9+0Nm7/OFfIwhE2Ws4A2jIlR04= -github.com/prometheus/exporter-toolkit v0.13.1/go.mod h1:ujdv2YIOxtdFxxqtloLpbqmxd5J0Le6IITUvIRSWjj0= +github.com/prometheus/common v0.61.0 h1:3gv/GThfX0cV2lpO7gkTUwZru38mxevy90Bj8YFSRQQ= +github.com/prometheus/common v0.61.0/go.mod h1:zr29OCN/2BsJRaFwG8QOBr41D6kkchKbpeNH7pAjb/s= +github.com/prometheus/exporter-toolkit v0.13.2 h1:Z02fYtbqTMy2i/f+xZ+UK5jy/bl1Ex3ndzh06T/Q9DQ= +github.com/prometheus/exporter-toolkit v0.13.2/go.mod h1:tCqnfx21q6qN1KA4U3Bfb8uWzXfijIrJz3/kTIqMV7g= github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= @@ -211,8 +211,8 @@ github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/vertica/vertica-sql-go v1.3.3 h1:fL+FKEAEy5ONmsvya2WH5T8bhkvY27y/Ik3ReR2T+Qw= github.com/vertica/vertica-sql-go v1.3.3/go.mod h1:jnn2GFuv+O2Jcjktb7zyc4Utlbu9YVqpHH/lx63+1M4= @@ -254,8 +254,8 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= -golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= -golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.24.0 h1:KTBBxWqUa0ykRPLtV69rRto9TLXcqYkeswu48x/gvNE= +golang.org/x/oauth2 v0.24.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= From 55e2974bd5a10d067bb64b330e86a0fc9b971ca8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Dec 2024 09:37:17 +0100 Subject: [PATCH 313/401] deps: bump google.golang.org/protobuf from 1.35.2 to 1.36.0 (#663) Bumps google.golang.org/protobuf from 1.35.2 to 1.36.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 7019247b..13d193c9 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/snowflakedb/gosnowflake v1.12.0 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.23.1 - google.golang.org/protobuf v1.35.2 + google.golang.org/protobuf v1.36.0 gopkg.in/yaml.v3 v3.0.1 ) diff --git a/go.sum b/go.sum index 3440c186..56cb0053 100644 --- a/go.sum +++ b/go.sum @@ -301,8 +301,8 @@ gonum.org/v1/gonum v0.12.0 h1:xKuo6hzt+gMav00meVPUlXwSdoEJP46BR+wdxQEFK2o= gonum.org/v1/gonum v0.12.0/go.mod h1:73TDxJfAAHeA8Mk9mf8NlIppyhQNo5GLTcYeqgo2lvY= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= -google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.0 h1:mjIs9gYtt56AzC4ZaffQuh88TZurBGhIJMBZGSxNerQ= +google.golang.org/protobuf v1.36.0/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From 7998411daea2dbb11d03f435687ab79e662a93a2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Dec 2024 09:38:39 +0100 Subject: [PATCH 314/401] deps: bump github.com/microsoft/go-mssqldb from 1.7.2 to 1.8.0 (#665) Bumps [github.com/microsoft/go-mssqldb](https://github.com/microsoft/go-mssqldb) from 1.7.2 to 1.8.0. - [Release notes](https://github.com/microsoft/go-mssqldb/releases) - [Changelog](https://github.com/microsoft/go-mssqldb/blob/main/CHANGELOG.md) - [Commits](https://github.com/microsoft/go-mssqldb/compare/v1.7.2...v1.8.0) --- updated-dependencies: - dependency-name: github.com/microsoft/go-mssqldb dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 13d193c9..c92b9b36 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/jackc/pgx/v5 v5.7.1 github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.9 - github.com/microsoft/go-mssqldb v1.7.2 + github.com/microsoft/go-mssqldb v1.8.0 github.com/prometheus/client_golang v1.20.5 github.com/prometheus/client_model v0.6.1 github.com/prometheus/common v0.61.0 diff --git a/go.sum b/go.sum index 56cb0053..a448876a 100644 --- a/go.sum +++ b/go.sum @@ -157,8 +157,8 @@ github.com/mdlayher/socket v0.4.1 h1:eM9y2/jlbs1M615oshPQOHZzj6R6wMT7bX5NPiQvn2U github.com/mdlayher/socket v0.4.1/go.mod h1:cAqeGjoufqdxWkD7DkpyS+wcefOtmu5OQ8KuoJGIReA= github.com/mdlayher/vsock v1.2.1 h1:pC1mTJTvjo1r9n9fbm7S1j04rCgCzhCOS5DY0zqHlnQ= github.com/mdlayher/vsock v1.2.1/go.mod h1:NRfCibel++DgeMD8z/hP+PPTjlNJsdPOmxcnENvE+SE= -github.com/microsoft/go-mssqldb v1.7.2 h1:CHkFJiObW7ItKTJfHo1QX7QBBD1iV+mn1eOyRP3b/PA= -github.com/microsoft/go-mssqldb v1.7.2/go.mod h1:kOvZKUdrhhFQmxLZqbwUV0rHkNkZpthMITIb2Ko1IoA= +github.com/microsoft/go-mssqldb v1.8.0 h1:7cyZ/AT7ycDsEoWPIXibd+aVKFtteUNhDGf3aobP+tw= +github.com/microsoft/go-mssqldb v1.8.0/go.mod h1:6znkekS3T2vp0waiMhen4GPU1BiAsrP+iXHcE7a7rFo= github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs= github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ibNBTZrns= From 9f480a1dc99ea81b35dad453ed5fc5d8a56cd0a9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Dec 2024 09:39:20 +0100 Subject: [PATCH 315/401] deps: bump github.com/jackc/pgx/v5 from 5.7.1 to 5.7.2 (#664) Bumps [github.com/jackc/pgx/v5](https://github.com/jackc/pgx) from 5.7.1 to 5.7.2. - [Changelog](https://github.com/jackc/pgx/blob/master/CHANGELOG.md) - [Commits](https://github.com/jackc/pgx/compare/v5.7.1...v5.7.2) --- updated-dependencies: - dependency-name: github.com/jackc/pgx/v5 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index c92b9b36..8f93371d 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/aws/aws-sdk-go-v2/config v1.28.6 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.7 github.com/go-sql-driver/mysql v1.8.1 - github.com/jackc/pgx/v5 v5.7.1 + github.com/jackc/pgx/v5 v5.7.2 github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.9 github.com/microsoft/go-mssqldb v1.8.0 diff --git a/go.sum b/go.sum index a448876a..c5e3f9a3 100644 --- a/go.sum +++ b/go.sum @@ -124,8 +124,8 @@ github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsI github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 h1:iCEnooe7UlwOQYpKFhBabPMi4aNAfoODPEFNiAnClxo= github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= -github.com/jackc/pgx/v5 v5.7.1 h1:x7SYsPBYDkHDksogeSmZZ5xzThcTgRz++I5E+ePFUcs= -github.com/jackc/pgx/v5 v5.7.1/go.mod h1:e7O26IywZZ+naJtWWos6i6fvWK+29etgITqrqHLfoZA= +github.com/jackc/pgx/v5 v5.7.2 h1:mLoDLV6sonKlvjIEsV56SkWNCnuNv531l94GaIzO+XI= +github.com/jackc/pgx/v5 v5.7.2/go.mod h1:ncY89UGWxg82EykZUwSpUKEfccBGGYq1xjrOpsbsfGQ= github.com/jackc/puddle/v2 v2.2.2 h1:PR8nw+E/1w0GLuRFSmiioY6UooMp6KJv0/61nB7icHo= github.com/jackc/puddle/v2 v2.2.2/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= From bdccef1187d03f54c2137bb525543554fd8c2919 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Dec 2024 09:42:53 +0100 Subject: [PATCH 316/401] deps: bump github.com/snowflakedb/gosnowflake from 1.12.0 to 1.12.1 (#667) Bumps [github.com/snowflakedb/gosnowflake](https://github.com/snowflakedb/gosnowflake) from 1.12.0 to 1.12.1. - [Release notes](https://github.com/snowflakedb/gosnowflake/releases) - [Changelog](https://github.com/snowflakedb/gosnowflake/blob/master/release.go) - [Commits](https://github.com/snowflakedb/gosnowflake/compare/v1.12.0...v1.12.1) --- updated-dependencies: - dependency-name: github.com/snowflakedb/gosnowflake dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 13 ++++++------- go.sum | 28 ++++++++++++++-------------- 2 files changed, 20 insertions(+), 21 deletions(-) diff --git a/go.mod b/go.mod index 8f93371d..5c6915f1 100644 --- a/go.mod +++ b/go.mod @@ -18,7 +18,7 @@ require ( github.com/prometheus/exporter-toolkit v0.13.2 github.com/sethvargo/go-envconfig v1.1.0 github.com/sijms/go-ora/v2 v2.8.22 - github.com/snowflakedb/gosnowflake v1.12.0 + github.com/snowflakedb/gosnowflake v1.12.1 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.23.1 google.golang.org/protobuf v1.36.0 @@ -38,7 +38,7 @@ require ( github.com/ClickHouse/ch-go v0.61.5 // indirect github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c // indirect github.com/andybalholm/brotli v1.1.1 // indirect - github.com/apache/arrow/go/v15 v15.0.0 // indirect + github.com/apache/arrow/go/v16 v16.0.0 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 // indirect github.com/aws/aws-sdk-go-v2/credentials v1.17.47 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.21 // indirect @@ -72,7 +72,7 @@ require ( github.com/golang-jwt/jwt/v5 v5.2.1 // indirect github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 // indirect github.com/golang-sql/sqlexp v0.1.0 // indirect - github.com/google/flatbuffers v23.5.26+incompatible // indirect + github.com/google/flatbuffers v24.3.25+incompatible // indirect github.com/google/uuid v1.6.0 // indirect github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect github.com/jackc/pgpassfile v1.0.0 // indirect @@ -81,7 +81,7 @@ require ( github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 // indirect github.com/jpillora/backoff v1.0.0 // indirect github.com/klauspost/compress v1.17.9 // indirect - github.com/klauspost/cpuid/v2 v2.2.5 // indirect + github.com/klauspost/cpuid/v2 v2.2.7 // indirect github.com/kylelemons/godebug v1.1.0 // indirect github.com/mdlayher/socket v0.4.1 // indirect github.com/mdlayher/vsock v1.2.1 // indirect @@ -97,12 +97,11 @@ require ( github.com/segmentio/asm v1.2.0 // indirect github.com/shopspring/decimal v1.4.0 // indirect github.com/sirupsen/logrus v1.9.3 // indirect - github.com/stretchr/objx v0.5.2 // indirect github.com/zeebo/xxh3 v1.0.2 // indirect go.opentelemetry.io/otel v1.26.0 // indirect go.opentelemetry.io/otel/trace v1.26.0 // indirect golang.org/x/crypto v0.31.0 // indirect - golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect + golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 // indirect golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.33.0 // indirect golang.org/x/oauth2 v0.24.0 // indirect @@ -111,7 +110,7 @@ require ( golang.org/x/term v0.27.0 // indirect golang.org/x/text v0.21.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect - golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect + golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect howett.net/plist v0.0.0-20181124034731-591f970eefbb // indirect ) diff --git a/go.sum b/go.sum index c5e3f9a3..dea91a47 100644 --- a/go.sum +++ b/go.sum @@ -28,8 +28,8 @@ github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c h1:RGWPOewvK github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA= github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= -github.com/apache/arrow/go/v15 v15.0.0 h1:1zZACWf85oEZY5/kd9dsQS7i+2G5zVQcbKTHgslqHNA= -github.com/apache/arrow/go/v15 v15.0.0/go.mod h1:DGXsR3ajT524njufqf95822i+KTh+yea1jass9YXgjA= +github.com/apache/arrow/go/v16 v16.0.0 h1:qRLbJRPj4zaseZrjbDHa7mUoZDDIU+4pu+mE2Lucs5g= +github.com/apache/arrow/go/v16 v16.0.0/go.mod h1:9wnc9mn6vEDTRIm4+27pEjQpRKuTvBaessPoEXQzxWA= github.com/aws/aws-sdk-go-v2 v1.32.6 h1:7BokKRgRPuGmKkFMhEg/jSul+tB9VvXhcViILtfG8b4= github.com/aws/aws-sdk-go-v2 v1.32.6/go.mod h1:P5WJBrYqqbWVaOxgH0X/FYYD47/nooaPOZPlQdmiN2U= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= @@ -110,8 +110,8 @@ github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/flatbuffers v23.5.26+incompatible h1:M9dgRyhJemaM4Sw8+66GHBu8ioaQmyPLg1b8VwK5WJg= -github.com/google/flatbuffers v23.5.26+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= +github.com/google/flatbuffers v24.3.25+incompatible h1:CX395cjN9Kke9mmalRoL3d81AtFUxJM+yDthflgJGkI= +github.com/google/flatbuffers v24.3.25+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= @@ -140,8 +140,8 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA= github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= -github.com/klauspost/cpuid/v2 v2.2.5 h1:0E5MSMDEoAulmXNFquVs//DdoomxaoTY1kUhbc/qbZg= -github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= +github.com/klauspost/cpuid/v2 v2.2.7 h1:ZWSB3igEs+d0qvnxR/ZBzXVmxkgt8DdzP6m9pfuVLDM= +github.com/klauspost/cpuid/v2 v2.2.7/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= @@ -203,8 +203,8 @@ github.com/sijms/go-ora/v2 v2.8.22 h1:3ABgRzVKxS439cEgSLjFKutIwOyhnyi4oOSBywEdOl github.com/sijms/go-ora/v2 v2.8.22/go.mod h1:QgFInVi3ZWyqAiJwzBQA+nbKYKH77tdp1PYoCqhR2dU= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/snowflakedb/gosnowflake v1.12.0 h1:Saez8egtn5xAoVMBxFaMu9MYfAG9SS9dpAEXD1/ECIo= -github.com/snowflakedb/gosnowflake v1.12.0/go.mod h1:wHfYmZi3zvtWItojesAhWWXBN7+niex2R1h/S7QCZYg= +github.com/snowflakedb/gosnowflake v1.12.1 h1:IpYK9Wr1dYwPiMSG9RNudAJV0rI0ZOgcNEMXOUiPFX8= +github.com/snowflakedb/gosnowflake v1.12.1/go.mod h1:SYLNMBZ4LXTJfTfJt+M4N40DwabGUx3gkH7VT8hu3Rw= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= @@ -241,8 +241,8 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= -golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI= -golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo= +golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 h1:LfspQV/FYTatPTr/3HzIcmiUFH7PGP+OQ6mgDYo3yuQ= +golang.org/x/exp v0.0.0-20240222234643-814bf88cf225/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= @@ -295,10 +295,10 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T 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= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= -golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -gonum.org/v1/gonum v0.12.0 h1:xKuo6hzt+gMav00meVPUlXwSdoEJP46BR+wdxQEFK2o= -gonum.org/v1/gonum v0.12.0/go.mod h1:73TDxJfAAHeA8Mk9mf8NlIppyhQNo5GLTcYeqgo2lvY= +golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 h1:+cNy6SZtPcJQH3LJVLOSmiC7MMxXNOb3PU/VUEz+EhU= +golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= +gonum.org/v1/gonum v0.15.0 h1:2lYxjRbTYyxkJxlhC+LvJIx3SsANPdRybu1tGj9/OrQ= +gonum.org/v1/gonum v0.15.0/go.mod h1:xzZVBJBtS+Mz4q0Yl2LJTk+OxOg4jiXZ7qBoM0uISGo= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.36.0 h1:mjIs9gYtt56AzC4ZaffQuh88TZurBGhIJMBZGSxNerQ= From ff415955b9164d803dfb6e837539eb2789cf7e17 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Dec 2024 09:44:14 +0100 Subject: [PATCH 317/401] deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager from 1.34.7 to 1.34.8 (#669) deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager Bumps [github.com/aws/aws-sdk-go-v2/service/secretsmanager](https://github.com/aws/aws-sdk-go-v2) from 1.34.7 to 1.34.8. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/sqs/v1.34.7...service/sqs/v1.34.8) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/service/secretsmanager dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 8 ++++---- go.sum | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index 5c6915f1..31261780 100644 --- a/go.mod +++ b/go.mod @@ -4,9 +4,9 @@ go 1.22.0 require ( github.com/ClickHouse/clickhouse-go/v2 v2.30.0 - github.com/aws/aws-sdk-go-v2 v1.32.6 + github.com/aws/aws-sdk-go-v2 v1.32.7 github.com/aws/aws-sdk-go-v2/config v1.28.6 - github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.7 + github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.8 github.com/go-sql-driver/mysql v1.8.1 github.com/jackc/pgx/v5 v5.7.2 github.com/kardianos/minwinsvc v1.0.2 @@ -43,8 +43,8 @@ require ( github.com/aws/aws-sdk-go-v2/credentials v1.17.47 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.21 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.25 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.25 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.26 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.26 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 // indirect diff --git a/go.sum b/go.sum index dea91a47..52a714d3 100644 --- a/go.sum +++ b/go.sum @@ -30,8 +30,8 @@ github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7X github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= github.com/apache/arrow/go/v16 v16.0.0 h1:qRLbJRPj4zaseZrjbDHa7mUoZDDIU+4pu+mE2Lucs5g= github.com/apache/arrow/go/v16 v16.0.0/go.mod h1:9wnc9mn6vEDTRIm4+27pEjQpRKuTvBaessPoEXQzxWA= -github.com/aws/aws-sdk-go-v2 v1.32.6 h1:7BokKRgRPuGmKkFMhEg/jSul+tB9VvXhcViILtfG8b4= -github.com/aws/aws-sdk-go-v2 v1.32.6/go.mod h1:P5WJBrYqqbWVaOxgH0X/FYYD47/nooaPOZPlQdmiN2U= +github.com/aws/aws-sdk-go-v2 v1.32.7 h1:ky5o35oENWi0JYWUZkB7WYvVPP+bcRF5/Iq7JWSb5Rw= +github.com/aws/aws-sdk-go-v2 v1.32.7/go.mod h1:P5WJBrYqqbWVaOxgH0X/FYYD47/nooaPOZPlQdmiN2U= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg= github.com/aws/aws-sdk-go-v2/config v1.28.6 h1:D89IKtGrs/I3QXOLNTH93NJYtDhm8SYa9Q5CsPShmyo= @@ -42,10 +42,10 @@ github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.21 h1:AmoU1pziydclFT/xRV+xXE github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.21/go.mod h1:AjUdLYe4Tgs6kpH4Bv7uMZo7pottoyHMn4eTcIcneaY= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 h1:7Zwtt/lP3KNRkeZre7soMELMGNoBrutx8nobg1jKWmo= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15/go.mod h1:436h2adoHb57yd+8W+gYPrrA9U/R/SuAuOO42Ushzhw= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.25 h1:s/fF4+yDQDoElYhfIVvSNyeCydfbuTKzhxSXDXCPasU= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.25/go.mod h1:IgPfDv5jqFIzQSNbUEMoitNooSMXjRSDkhXv8jiROvU= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.25 h1:ZntTCl5EsYnhN/IygQEUugpdwbhdkom9uHcbCftiGgA= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.25/go.mod h1:DBdPrgeocww+CSl1C8cEV8PN1mHMBhuCDLpXezyvWkE= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.26 h1:I/5wmGMffY4happ8NOCuIUEWGUvvFp5NSeQcXl9RHcI= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.26/go.mod h1:FR8f4turZtNy6baO0KJ5FJUmXH/cSkI9fOngs0yl6mA= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.26 h1:zXFLuEuMMUOvEARXFUVJdfqZ4bvvSgdGRq/ATcrQxzM= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.26/go.mod h1:3o2Wpy0bogG1kyOPrgkXA8pgIfEEv0+m19O9D5+W8y8= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvKgqdiXoTxAF4HQcQ= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 h1:81KE7vaZzrl7yHBYHVEzYB8sypz11NMOZ40YlWvPxsU= @@ -60,8 +60,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 h1:f9RyWNtS8oH7cZ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5/go.mod h1:h5CoMZV2VF297/VLhRhO1WF+XYWOzXo+4HsObA4HjBQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 h1:6cnno47Me9bRykw9AEv9zkXE+5or7jz8TsskTTccbgc= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1/go.mod h1:qmdkIIAC+GCLASF7R2whgNrJADz0QZPX+Seiw/i4S3o= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.7 h1:Nyfbgei75bohfmZNxgN27i528dGYVzqWJGlAO6lzXy8= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.7/go.mod h1:FG4p/DciRxPgjA+BEOlwRHN0iA8hX2h9g5buSy3cTDA= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.8 h1:WT3EPriVEpHE2jeNqHqj7l43JCIWPoZjNNRluZ7agII= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.8/go.mod h1:By/yiMzR0yfhPaqRWE3GrT9B/Z6871z1GfWGc+vf4Y8= github.com/aws/aws-sdk-go-v2/service/sso v1.24.7 h1:rLnYAfXQ3YAccocshIH5mzNNwZBkBo+bP6EhIxak6Hw= github.com/aws/aws-sdk-go-v2/service/sso v1.24.7/go.mod h1:ZHtuQJ6t9A/+YDuxOLnbryAmITtr8UysSny3qcyvJTc= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.6 h1:JnhTZR3PiYDNKlXy50/pNeix9aGMo6lLpXwJ1mw8MD4= From 98ae2ac0c980ed9f6802a127be1053b2703e3188 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Dec 2024 09:46:31 +0100 Subject: [PATCH 318/401] deps: bump github.com/aws/aws-sdk-go-v2/config from 1.28.6 to 1.28.7 (#668) Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.28.6 to 1.28.7. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.28.6...config/v1.28.7) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/config dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 14 +++++++------- go.sum | 28 ++++++++++++++-------------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/go.mod b/go.mod index 31261780..3992e696 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.22.0 require ( github.com/ClickHouse/clickhouse-go/v2 v2.30.0 github.com/aws/aws-sdk-go-v2 v1.32.7 - github.com/aws/aws-sdk-go-v2/config v1.28.6 + github.com/aws/aws-sdk-go-v2/config v1.28.7 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.8 github.com/go-sql-driver/mysql v1.8.1 github.com/jackc/pgx/v5 v5.7.2 @@ -40,8 +40,8 @@ require ( github.com/andybalholm/brotli v1.1.1 // indirect github.com/apache/arrow/go/v16 v16.0.0 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.47 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.21 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.48 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.22 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.26 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.26 // indirect @@ -49,12 +49,12 @@ require ( github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 // indirect github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.6 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.7 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 // indirect github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.24.7 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.6 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.33.2 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.24.8 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.7 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.33.3 // indirect github.com/aws/smithy-go v1.22.1 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect diff --git a/go.sum b/go.sum index 52a714d3..8dee1bb2 100644 --- a/go.sum +++ b/go.sum @@ -34,12 +34,12 @@ github.com/aws/aws-sdk-go-v2 v1.32.7 h1:ky5o35oENWi0JYWUZkB7WYvVPP+bcRF5/Iq7JWSb github.com/aws/aws-sdk-go-v2 v1.32.7/go.mod h1:P5WJBrYqqbWVaOxgH0X/FYYD47/nooaPOZPlQdmiN2U= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg= -github.com/aws/aws-sdk-go-v2/config v1.28.6 h1:D89IKtGrs/I3QXOLNTH93NJYtDhm8SYa9Q5CsPShmyo= -github.com/aws/aws-sdk-go-v2/config v1.28.6/go.mod h1:GDzxJ5wyyFSCoLkS+UhGB0dArhb9mI+Co4dHtoTxbko= -github.com/aws/aws-sdk-go-v2/credentials v1.17.47 h1:48bA+3/fCdi2yAwVt+3COvmatZ6jUDNkDTIsqDiMUdw= -github.com/aws/aws-sdk-go-v2/credentials v1.17.47/go.mod h1:+KdckOejLW3Ks3b0E3b5rHsr2f9yuORBum0WPnE5o5w= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.21 h1:AmoU1pziydclFT/xRV+xXE/Vb8fttJCLRPv8oAkprc0= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.21/go.mod h1:AjUdLYe4Tgs6kpH4Bv7uMZo7pottoyHMn4eTcIcneaY= +github.com/aws/aws-sdk-go-v2/config v1.28.7 h1:GduUnoTXlhkgnxTD93g1nv4tVPILbdNQOzav+Wpg7AE= +github.com/aws/aws-sdk-go-v2/config v1.28.7/go.mod h1:vZGX6GVkIE8uECSUHB6MWAUsd4ZcG2Yq/dMa4refR3M= +github.com/aws/aws-sdk-go-v2/credentials v1.17.48 h1:IYdLD1qTJ0zanRavulofmqut4afs45mOWEI+MzZtTfQ= +github.com/aws/aws-sdk-go-v2/credentials v1.17.48/go.mod h1:tOscxHN3CGmuX9idQ3+qbkzrjVIx32lqDSU1/0d/qXs= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.22 h1:kqOrpojG71DxJm/KDPO+Z/y1phm1JlC8/iT+5XRmAn8= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.22/go.mod h1:NtSFajXVVL8TA2QNngagVZmUtXciyrHOt7xgz4faS/M= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 h1:7Zwtt/lP3KNRkeZre7soMELMGNoBrutx8nobg1jKWmo= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15/go.mod h1:436h2adoHb57yd+8W+gYPrrA9U/R/SuAuOO42Ushzhw= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.26 h1:I/5wmGMffY4happ8NOCuIUEWGUvvFp5NSeQcXl9RHcI= @@ -54,20 +54,20 @@ github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 h1:iXtILhv github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1/go.mod h1:9nu0fVANtYiAePIBh2/pFUSwtJ402hLnp854CNoDOeE= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 h1:ZMeFZ5yk+Ek+jNr1+uwCd2tG89t6oTS5yVWpa6yy2es= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7/go.mod h1:mxV05U+4JiHqIpGqqYXOHLPKUC6bDXC44bsUhNjOEwY= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.6 h1:50+XsN70RS7dwJ2CkVNXzj7U2L1HKP8nqTd3XWEXBN4= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.6/go.mod h1:WqgLmwY7so32kG01zD8CPTJWVWM+TzJoOVHwTg4aPug= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.7 h1:8eUsivBQzZHqe/3FE+cqwfH+0p5Jo8PFM/QYQSmeZ+M= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.7/go.mod h1:kLPQvGUmxn/fqiCrDeohwG33bq2pQpGeY62yRO6Nrh0= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 h1:f9RyWNtS8oH7cZlbn+/JNPpjUk5+5fLd5lM9M0i49Ys= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5/go.mod h1:h5CoMZV2VF297/VLhRhO1WF+XYWOzXo+4HsObA4HjBQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 h1:6cnno47Me9bRykw9AEv9zkXE+5or7jz8TsskTTccbgc= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1/go.mod h1:qmdkIIAC+GCLASF7R2whgNrJADz0QZPX+Seiw/i4S3o= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.8 h1:WT3EPriVEpHE2jeNqHqj7l43JCIWPoZjNNRluZ7agII= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.8/go.mod h1:By/yiMzR0yfhPaqRWE3GrT9B/Z6871z1GfWGc+vf4Y8= -github.com/aws/aws-sdk-go-v2/service/sso v1.24.7 h1:rLnYAfXQ3YAccocshIH5mzNNwZBkBo+bP6EhIxak6Hw= -github.com/aws/aws-sdk-go-v2/service/sso v1.24.7/go.mod h1:ZHtuQJ6t9A/+YDuxOLnbryAmITtr8UysSny3qcyvJTc= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.6 h1:JnhTZR3PiYDNKlXy50/pNeix9aGMo6lLpXwJ1mw8MD4= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.6/go.mod h1:URronUEGfXZN1VpdktPSD1EkAL9mfrV+2F4sjH38qOY= -github.com/aws/aws-sdk-go-v2/service/sts v1.33.2 h1:s4074ZO1Hk8qv65GqNXqDjmkf4HSQqJukaLuuW0TpDA= -github.com/aws/aws-sdk-go-v2/service/sts v1.33.2/go.mod h1:mVggCnIWoM09jP71Wh+ea7+5gAp53q+49wDFs1SW5z8= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.8 h1:CvuUmnXI7ebaUAhbJcDy9YQx8wHR69eZ9I7q5hszt/g= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.8/go.mod h1:XDeGv1opzwm8ubxddF0cgqkZWsyOtw4lr6dxwmb6YQg= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.7 h1:F2rBfNAL5UyswqoeWv9zs74N/NanhK16ydHW1pahX6E= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.7/go.mod h1:JfyQ0g2JG8+Krq0EuZNnRwX0mU0HrwY/tG6JNfcqh4k= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.3 h1:Xgv/hyNgvLda/M9l9qxXc4UFSgppnRczLxlMs5Ae/QY= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.3/go.mod h1:5Gn+d+VaaRgsjewpMvGazt0WfcFO+Md4wLOuBfGR9Bc= github.com/aws/smithy-go v1.22.1 h1:/HPHZQ0g7f4eUeK6HKglFz8uwVfZKgoI25rb/J+dnro= github.com/aws/smithy-go v1.22.1/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= From 97090562404db6588a23a1657bf580fdb629e87a Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Mon, 23 Dec 2024 09:53:50 +0100 Subject: [PATCH 319/401] Bump version to 0.17.0 (#670) --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 04a373ef..c5523bd0 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.16.0 +0.17.0 From 6c65cdf8da4ecce0a49ace547b78c78caf64eb4a Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Mon, 23 Dec 2024 11:03:03 +0100 Subject: [PATCH 320/401] Bump up helm chart to 0.10.1 (#671) --- helm/Chart.yaml | 4 ++-- helm/README.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 5f63f4a0..5d173538 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: sql-exporter description: Database-agnostic SQL exporter for Prometheus type: application -version: 0.10.0 -appVersion: 0.16.0 +version: 0.10.1 +appVersion: 0.17.0 keywords: - exporter - servicemonitor diff --git a/helm/README.md b/helm/README.md index c082a81f..b9b7b460 100644 --- a/helm/README.md +++ b/helm/README.md @@ -1,6 +1,6 @@ # sql-exporter -![Version: 0.10.0](https://img.shields.io/badge/Version-0.10.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.16.0](https://img.shields.io/badge/AppVersion-0.16.0-informational?style=flat-square) +![Version: 0.10.1](https://img.shields.io/badge/Version-0.10.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.17.0](https://img.shields.io/badge/AppVersion-0.17.0-informational?style=flat-square) Database-agnostic SQL exporter for Prometheus From c33a446f00206da3d6a96364022082c2fe1baf73 Mon Sep 17 00:00:00 2001 From: Jiffs Maverick Date: Mon, 30 Dec 2024 22:40:03 +0100 Subject: [PATCH 321/401] feat(helm): Add path support for ingress in the helm chart (#672) --- helm/Chart.yaml | 2 +- helm/README.md | 3 ++- helm/templates/ingress.yaml | 2 +- helm/values.yaml | 2 ++ 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 5d173538..12800fd3 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: sql-exporter description: Database-agnostic SQL exporter for Prometheus type: application -version: 0.10.1 +version: 0.10.2 appVersion: 0.17.0 keywords: - exporter diff --git a/helm/README.md b/helm/README.md index b9b7b460..7fdd9261 100644 --- a/helm/README.md +++ b/helm/README.md @@ -1,6 +1,6 @@ # sql-exporter -![Version: 0.10.1](https://img.shields.io/badge/Version-0.10.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.17.0](https://img.shields.io/badge/AppVersion-0.17.0-informational?style=flat-square) +![Version: 0.10.2](https://img.shields.io/badge/Version-0.10.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.17.0](https://img.shields.io/badge/AppVersion-0.17.0-informational?style=flat-square) Database-agnostic SQL exporter for Prometheus @@ -65,6 +65,7 @@ as an example. | ingress.annotations | object | `{}` | Ingress annotations | | ingress.ingressClassName | string | `""` | Ingress class name | | ingress.host | string | `""` | Ingress host | +| ingress.path | string | `"/"` | Ingress path | | ingress.tls | object | `{"crt":"","enabled":false,"key":"","secretName":""}` | Ingress TLS, can be defined by cert secret, or by key and cert. | | ingress.tls.secretName | string | `""` | Ingress tls secret if already exists. | | ingress.tls.crt | string | `""` | Ingress tls.crt, required if you don't have secret name. | diff --git a/helm/templates/ingress.yaml b/helm/templates/ingress.yaml index a85bcc5c..62da85e4 100644 --- a/helm/templates/ingress.yaml +++ b/helm/templates/ingress.yaml @@ -25,7 +25,7 @@ spec: rules: - http: paths: - - path: / + - path: {{ .Values.ingress.path }} pathType: Prefix backend: service: diff --git a/helm/values.yaml b/helm/values.yaml index 9fd5eb8f..274437c4 100644 --- a/helm/values.yaml +++ b/helm/values.yaml @@ -34,6 +34,8 @@ ingress: ingressClassName: "" # -- Ingress host host: "" + # -- Ingress path + path: "/" # -- Ingress TLS, can be defined by cert secret, or by key and cert. tls: enabled: false From 2659a6068e8361e1496265b6c8623b681dd1df9e Mon Sep 17 00:00:00 2001 From: Avihais12344 <69143592+Avihais12344@users.noreply.github.com> Date: Wed, 1 Jan 2025 15:31:49 +0200 Subject: [PATCH 322/401] feat(helm): Added template support for config and collector files (#642) * Added the option to get the collector files from templates. * Fixed typo. * Added the option to use tpl in the sql exporter config. * Created function to generate the config dict. * Added and fixed the comment about the toYaml fromYaml stuff. * Added docs on the config dict. * Updated the docs. * Bumped the version. * Added newline at the values file. * Updated the chart's version from patch to minor. * Removed .Files reference. * Made the config parameter optional. * Updated the readme. * Removed the this parameter is optional hint. * Removed the optional hint from the actual docs. * Updated the values for the dict. --- helm/Chart.yaml | 2 +- helm/README.md | 9 ++++++++- helm/templates/NOTES.txt | 5 +++-- helm/templates/_helpers.tpl | 14 ++++++++++++++ helm/templates/configmap.collectors.yaml | 9 ++++++++- helm/templates/secret.configuration.yaml | 2 +- helm/values.yaml | 2 ++ 7 files changed, 37 insertions(+), 6 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 12800fd3..1c02f023 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: sql-exporter description: Database-agnostic SQL exporter for Prometheus type: application -version: 0.10.2 +version: 0.11.0 appVersion: 0.17.0 keywords: - exporter diff --git a/helm/README.md b/helm/README.md index 7fdd9261..1be09c8b 100644 --- a/helm/README.md +++ b/helm/README.md @@ -1,6 +1,8 @@ # sql-exporter -![Version: 0.10.2](https://img.shields.io/badge/Version-0.10.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.17.0](https://img.shields.io/badge/AppVersion-0.17.0-informational?style=flat-square) + + +![Version: 0.11.0](https://img.shields.io/badge/Version-0.11.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.17.0](https://img.shields.io/badge/AppVersion-0.17.0-informational?style=flat-square) Database-agnostic SQL exporter for Prometheus @@ -14,6 +16,9 @@ Database-agnostic SQL exporter for Prometheus | ---- | ------ | --- | | Nikolai Rodionov | | | + + + ## Installing the Chart To install the chart with the release name `sql-exporter`: @@ -86,6 +91,7 @@ as an example. | logFormat | string | `"logfmt"` | Set log format (logfmt if unset) | | reloadEnabled | bool | `false` | Enable reload collector data handler (endpoint /reload) | + ### Prometheus ServiceMonitor | Key | Type | Default | Description | @@ -101,6 +107,7 @@ as an example. | Key | Type | Default | Description | |-----|------|---------|-------------| +| config | object | `{"global":{"max_connections":3,"max_idle_connections":3,"min_interval":"0s","scrape_error_drop_interval":"0s","scrape_timeout":"10s","scrape_timeout_offset":"500ms"}}` | SQL Exporter configuration, can be a dictionary, or a template yaml string. | | config.global.scrape_timeout | string | `"10s"` | Scrape timeout | | config.global.scrape_timeout_offset | string | `"500ms"` | Scrape timeout offset. Must be strictly positive. | | config.global.scrape_error_drop_interval | string | `"0s"` | Interval between dropping scrape_errors_total metric: by default the metric is persistent. | diff --git a/helm/templates/NOTES.txt b/helm/templates/NOTES.txt index cda797f2..5596a167 100644 --- a/helm/templates/NOTES.txt +++ b/helm/templates/NOTES.txt @@ -1,7 +1,8 @@ +{{- $conf := include "sql_exporter.config.yaml" . | fromYaml -}} ------------------------------ Hello there! -{{- if and (not .Values.config.target ) (not .Values.config.jobs)}} +{{- if and (not $conf.target ) (not $conf.jobs)}} ------------------------------ It seems like you haven't configured the target, please check the example here: @@ -14,7 +15,7 @@ In case you need to have multiple targets, you can confiure jobs instead, have a {{- end}} -{{- if and (not .Values.config.collectors) (not .Values.config.collectorFiles)}} +{{- if and (not $conf.collectors) (not $conf.collectorFiles)}} ------------------------------ You need to configure either collectors or collectorFiles (or both), please have a look at the example here: diff --git a/helm/templates/_helpers.tpl b/helm/templates/_helpers.tpl index 6744e028..46543999 100644 --- a/helm/templates/_helpers.tpl +++ b/helm/templates/_helpers.tpl @@ -77,3 +77,17 @@ Create the name of the service account to use {{- false | quote -}} {{- end -}} {{- end -}} + +{{- define "sql_exporter.config.yaml" -}} +{{- $conf := "" -}} +{{- if typeIsLike "string" .Values.config -}} +{{- $conf = (tpl .Values.config .) | fromYaml -}} +{{- else -}} +{{- $conf = .Values.config -}} +{{- end -}} +{{- /* +Do the wired "fromYaml | toYaml" to reformat the config. +Reformat '100s' to 100s for example. +*/ -}} +{{- tpl ($conf | toYaml ) . | fromYaml | toYaml -}} +{{- end -}} diff --git a/helm/templates/configmap.collectors.yaml b/helm/templates/configmap.collectors.yaml index 30cff052..dedeb155 100644 --- a/helm/templates/configmap.collectors.yaml +++ b/helm/templates/configmap.collectors.yaml @@ -8,6 +8,13 @@ metadata: data: {{- range $k, $v := .Values.collectorFiles }} {{ $k }}: |- - {{- toYaml $v | nindent 4}} + {{- if typeIsLike "string" $v -}} + {{- $v = (tpl $v $ | fromYaml) -}} + {{- end -}} + {{- /* + Do the wired "fromYaml | toYaml" to reformat the config. + Reformat '100s' to 100s for example. + */ -}} + {{- tpl (toYaml $v) $ | fromYaml | toYaml | nindent 4}} {{- end}} {{- end }} diff --git a/helm/templates/secret.configuration.yaml b/helm/templates/secret.configuration.yaml index 8501957c..33366421 100644 --- a/helm/templates/secret.configuration.yaml +++ b/helm/templates/secret.configuration.yaml @@ -11,5 +11,5 @@ metadata: type: Opaque stringData: sql_exporter.yml: |- - {{- toYaml .Values.config | nindent 4 }} + {{- include "sql_exporter.config.yaml" . | nindent 4 }} {{- end }} diff --git a/helm/values.yaml b/helm/values.yaml index 274437c4..f65b6b78 100644 --- a/helm/values.yaml +++ b/helm/values.yaml @@ -147,6 +147,7 @@ logLevel: debug logFormat: logfmt # -- Enable reload collector data handler (endpoint /reload) reloadEnabled: false +# -- SQL Exporter configuration, can be a dictionary, or a template yaml string. config: global: # -- Scrape timeout @@ -192,6 +193,7 @@ config: # - "*.collector.yml" # --------------------------------------------------------------------- # -- Collector Files +# (can be dictionaries or yaml string templates) # --------------------------------------------------------------------- # -- Collector files are mounted to /etc/sql_exporter/collectors dir # --------------------------------------------------------------------- From 36d8104dcd3ffae825313684cd105e361f590eec Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 Jan 2025 00:08:48 +0100 Subject: [PATCH 323/401] deps: bump google.golang.org/protobuf from 1.36.0 to 1.36.1 (#673) Bumps google.golang.org/protobuf from 1.36.0 to 1.36.1. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 3992e696..0ee7e870 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/snowflakedb/gosnowflake v1.12.1 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.23.1 - google.golang.org/protobuf v1.36.0 + google.golang.org/protobuf v1.36.1 gopkg.in/yaml.v3 v3.0.1 ) diff --git a/go.sum b/go.sum index 8dee1bb2..2d0cbc66 100644 --- a/go.sum +++ b/go.sum @@ -301,8 +301,8 @@ gonum.org/v1/gonum v0.15.0 h1:2lYxjRbTYyxkJxlhC+LvJIx3SsANPdRybu1tGj9/OrQ= gonum.org/v1/gonum v0.15.0/go.mod h1:xzZVBJBtS+Mz4q0Yl2LJTk+OxOg4jiXZ7qBoM0uISGo= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.36.0 h1:mjIs9gYtt56AzC4ZaffQuh88TZurBGhIJMBZGSxNerQ= -google.golang.org/protobuf v1.36.0/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.1 h1:yBPeRvTftaleIgM3PZ/WBIZ7XM/eEYAaEyCwvyjq/gk= +google.golang.org/protobuf v1.36.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From c9179cddd6e0c86c384d07c7e08c400b7fb88981 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 2 Feb 2025 10:08:27 +0100 Subject: [PATCH 324/401] deps: bump github.com/prometheus/common from 0.61.0 to 0.62.0 (#685) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 0ee7e870..eb56556b 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/microsoft/go-mssqldb v1.8.0 github.com/prometheus/client_golang v1.20.5 github.com/prometheus/client_model v0.6.1 - github.com/prometheus/common v0.61.0 + github.com/prometheus/common v0.62.0 github.com/prometheus/exporter-toolkit v0.13.2 github.com/sethvargo/go-envconfig v1.1.0 github.com/sijms/go-ora/v2 v2.8.22 diff --git a/go.sum b/go.sum index 2d0cbc66..4fb58dda 100644 --- a/go.sum +++ b/go.sum @@ -184,8 +184,8 @@ github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+ github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.61.0 h1:3gv/GThfX0cV2lpO7gkTUwZru38mxevy90Bj8YFSRQQ= -github.com/prometheus/common v0.61.0/go.mod h1:zr29OCN/2BsJRaFwG8QOBr41D6kkchKbpeNH7pAjb/s= +github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io= +github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I= github.com/prometheus/exporter-toolkit v0.13.2 h1:Z02fYtbqTMy2i/f+xZ+UK5jy/bl1Ex3ndzh06T/Q9DQ= github.com/prometheus/exporter-toolkit v0.13.2/go.mod h1:tCqnfx21q6qN1KA4U3Bfb8uWzXfijIrJz3/kTIqMV7g= github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= From d3029e9c9a5f0ade09630c26fe6b096101f3f449 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 2 Feb 2025 10:09:08 +0100 Subject: [PATCH 325/401] deps: bump github.com/ClickHouse/clickhouse-go/v2 from 2.30.0 to 2.30.2 (#688) --- go.mod | 24 ++++++++++++------------ go.sum | 48 ++++++++++++++++++++++++------------------------ 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/go.mod b/go.mod index eb56556b..a7e302a7 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/burningalchemist/sql_exporter go 1.22.0 require ( - github.com/ClickHouse/clickhouse-go/v2 v2.30.0 + github.com/ClickHouse/clickhouse-go/v2 v2.30.2 github.com/aws/aws-sdk-go-v2 v1.32.7 github.com/aws/aws-sdk-go-v2/config v1.28.7 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.8 @@ -35,7 +35,7 @@ require ( github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0 // indirect github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect github.com/BurntSushi/toml v1.4.0 // indirect - github.com/ClickHouse/ch-go v0.61.5 // indirect + github.com/ClickHouse/ch-go v0.64.0 // indirect github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c // indirect github.com/andybalholm/brotli v1.1.1 // indirect github.com/apache/arrow/go/v16 v16.0.0 // indirect @@ -80,7 +80,7 @@ require ( github.com/jackc/puddle/v2 v2.2.2 // indirect github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 // indirect github.com/jpillora/backoff v1.0.0 // indirect - github.com/klauspost/compress v1.17.9 // indirect + github.com/klauspost/compress v1.17.11 // indirect github.com/klauspost/cpuid/v2 v2.2.7 // indirect github.com/kylelemons/godebug v1.1.0 // indirect github.com/mdlayher/socket v0.4.1 // indirect @@ -89,7 +89,7 @@ require ( github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect github.com/paulmach/orb v0.11.1 // indirect - github.com/pierrec/lz4/v4 v4.1.21 // indirect + github.com/pierrec/lz4/v4 v4.1.22 // indirect github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect @@ -98,18 +98,18 @@ require ( github.com/shopspring/decimal v1.4.0 // indirect github.com/sirupsen/logrus v1.9.3 // indirect github.com/zeebo/xxh3 v1.0.2 // indirect - go.opentelemetry.io/otel v1.26.0 // indirect - go.opentelemetry.io/otel/trace v1.26.0 // indirect - golang.org/x/crypto v0.31.0 // indirect + go.opentelemetry.io/otel v1.34.0 // indirect + go.opentelemetry.io/otel/trace v1.34.0 // indirect + golang.org/x/crypto v0.32.0 // indirect golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 // indirect - golang.org/x/mod v0.17.0 // indirect - golang.org/x/net v0.33.0 // indirect + golang.org/x/mod v0.18.0 // indirect + golang.org/x/net v0.34.0 // indirect golang.org/x/oauth2 v0.24.0 // indirect golang.org/x/sync v0.10.0 // indirect - golang.org/x/sys v0.28.0 // indirect - golang.org/x/term v0.27.0 // indirect + golang.org/x/sys v0.29.0 // indirect + golang.org/x/term v0.28.0 // indirect golang.org/x/text v0.21.0 // indirect - golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect + golang.org/x/tools v0.22.0 // indirect golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect howett.net/plist v0.0.0-20181124034731-591f970eefbb // indirect diff --git a/go.sum b/go.sum index 4fb58dda..5d351663 100644 --- a/go.sum +++ b/go.sum @@ -20,10 +20,10 @@ github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 h1:XHOnouVk1mx github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= -github.com/ClickHouse/ch-go v0.61.5 h1:zwR8QbYI0tsMiEcze/uIMK+Tz1D3XZXLdNrlaOpeEI4= -github.com/ClickHouse/ch-go v0.61.5/go.mod h1:s1LJW/F/LcFs5HJnuogFMta50kKDO0lf9zzfrbl0RQg= -github.com/ClickHouse/clickhouse-go/v2 v2.30.0 h1:AG4D/hW39qa58+JHQIFOSnxyL46H6h2lrmGGk17dhFo= -github.com/ClickHouse/clickhouse-go/v2 v2.30.0/go.mod h1:i9ZQAojcayW3RsdCb3YR+n+wC2h65eJsZCscZ1Z1wyo= +github.com/ClickHouse/ch-go v0.64.0 h1:+MByORSlUvgPwmitmQi7OH/zuC/9Pk87Mulbq1eKa2s= +github.com/ClickHouse/ch-go v0.64.0/go.mod h1:RBUynvczWwVzhS6Up9lPKlH1mrk4UAmle6uzCiW4Pkc= +github.com/ClickHouse/clickhouse-go/v2 v2.30.2 h1:WsG2k1uiDh+0z/YNubK6aAc27sHzmVISlVpK2uGTrBw= +github.com/ClickHouse/clickhouse-go/v2 v2.30.2/go.mod h1:F7dAGn2PQzY7FkzZrY+04rSBodstSjaNg/DIuQHa3uA= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c h1:RGWPOewvKIROun94nF7v2cua9qP+thov/7M50KEoeSU= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA= @@ -138,8 +138,8 @@ github.com/kardianos/minwinsvc v1.0.2/go.mod h1:LUZNYhNmxujx2tR7FbdxqYJ9XDDoCd3M github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= -github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA= -github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= +github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= +github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/klauspost/cpuid/v2 v2.2.7 h1:ZWSB3igEs+d0qvnxR/ZBzXVmxkgt8DdzP6m9pfuVLDM= github.com/klauspost/cpuid/v2 v2.2.7/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= @@ -170,8 +170,8 @@ github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLA github.com/paulmach/orb v0.11.1 h1:3koVegMC4X/WeiXYz9iswopaTwMem53NzTJuTF20JzU= github.com/paulmach/orb v0.11.1/go.mod h1:5mULz1xQfs3bmQm63QEJA6lNGujuRafwA5S/EnuLaLU= github.com/paulmach/protoscan v0.2.1/go.mod h1:SpcSwydNLrxUGSDvXvO0P7g7AuhJ7lcKfDlhJCDw2gY= -github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ= -github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= +github.com/pierrec/lz4/v4 v4.1.22 h1:cKFw6uJDK+/gfw5BcDL0JL5aBsAFdsIT18eRtLj7VIU= +github.com/pierrec/lz4/v4 v4.1.22/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -231,29 +231,29 @@ github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= go.mongodb.org/mongo-driver v1.11.4/go.mod h1:PTSz5yu21bkT/wXpkS7WR5f0ddqw5quethTUn9WM+2g= -go.opentelemetry.io/otel v1.26.0 h1:LQwgL5s/1W7YiiRwxf03QGnWLb2HW4pLiAhaA5cZXBs= -go.opentelemetry.io/otel v1.26.0/go.mod h1:UmLkJHUAidDval2EICqBMbnAd0/m2vmpf/dAM+fvFs4= -go.opentelemetry.io/otel/trace v1.26.0 h1:1ieeAUb4y0TE26jUFrCIXKpTuVK7uJGN9/Z/2LP5sQA= -go.opentelemetry.io/otel/trace v1.26.0/go.mod h1:4iDxvGDQuUkHve82hJJ8UqrwswHYsZuWCBllGV2U2y0= +go.opentelemetry.io/otel v1.34.0 h1:zRLXxLCgL1WyKsPVrgbSdMN4c0FMkDAskSTQP+0hdUY= +go.opentelemetry.io/otel v1.34.0/go.mod h1:OWFPOQ+h4G8xpyjgqo4SxJYdDQ/qmRH+wivy7zzx9oI= +go.opentelemetry.io/otel/trace v1.34.0 h1:+ouXS2V8Rd4hp4580a8q23bg0azF2nI8cqLYnC8mh/k= +go.opentelemetry.io/otel/trace v1.34.0/go.mod h1:Svm7lSjQD7kG7KJ/MUHPVXSDGz2OX4h0M2jHBhmSfRE= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= -golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= +golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc= +golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 h1:LfspQV/FYTatPTr/3HzIcmiUFH7PGP+OQ6mgDYo3yuQ= golang.org/x/exp v0.0.0-20240222234643-814bf88cf225/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= -golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.18.0 h1:5+9lSbEzPSdWkH32vYPBwEpX8KwDbM52Ud9xBUvNlb0= +golang.org/x/mod v0.18.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= -golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= +golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0= +golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= golang.org/x/oauth2 v0.24.0 h1:KTBBxWqUa0ykRPLtV69rRto9TLXcqYkeswu48x/gvNE= golang.org/x/oauth2 v0.24.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -274,11 +274,11 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= -golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= +golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q= -golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= +golang.org/x/term v0.28.0 h1:/Ts8HFuMR2E6IP/jlo7QVLZHggjKQbhu/7H0LJFr3Gg= +golang.org/x/term v0.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -289,8 +289,8 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg= -golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= +golang.org/x/tools v0.22.0 h1:gqSGLZqv+AI9lIQzniJ0nZDRG5GBPsSi+DRNHWNz6yA= +golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c= 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= From 0cc09253c9a3f908179dea88fa64497aade7cf44 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 2 Feb 2025 11:44:44 +0100 Subject: [PATCH 326/401] deps: bump github.com/snowflakedb/gosnowflake from 1.12.1 to 1.13.0 (#684) Bumps [github.com/snowflakedb/gosnowflake](https://github.com/snowflakedb/gosnowflake) from 1.12.1 to 1.13.0. - [Release notes](https://github.com/snowflakedb/gosnowflake/releases) - [Changelog](https://github.com/snowflakedb/gosnowflake/blob/master/release.go) - [Commits](https://github.com/snowflakedb/gosnowflake/compare/v1.12.1...v1.13.0) --- updated-dependencies: - dependency-name: github.com/snowflakedb/gosnowflake dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index a7e302a7..1b9cf5d4 100644 --- a/go.mod +++ b/go.mod @@ -18,7 +18,7 @@ require ( github.com/prometheus/exporter-toolkit v0.13.2 github.com/sethvargo/go-envconfig v1.1.0 github.com/sijms/go-ora/v2 v2.8.22 - github.com/snowflakedb/gosnowflake v1.12.1 + github.com/snowflakedb/gosnowflake v1.13.0 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.23.1 google.golang.org/protobuf v1.36.1 @@ -64,7 +64,7 @@ require ( github.com/dvsekhvalnov/jose2go v1.6.0 // indirect github.com/elastic/go-sysinfo v1.8.1 // indirect github.com/elastic/go-windows v1.0.0 // indirect - github.com/gabriel-vasile/mimetype v1.4.2 // indirect + github.com/gabriel-vasile/mimetype v1.4.7 // indirect github.com/go-faster/city v1.0.1 // indirect github.com/go-faster/errors v0.7.1 // indirect github.com/goccy/go-json v0.10.2 // indirect diff --git a/go.sum b/go.sum index 5d351663..f86ae0f0 100644 --- a/go.sum +++ b/go.sum @@ -88,8 +88,8 @@ github.com/elastic/go-sysinfo v1.8.1 h1:4Yhj+HdV6WjbCRgGdZpPJ8lZQlXZLKDAeIkmQ/VR github.com/elastic/go-sysinfo v1.8.1/go.mod h1:JfllUnzoQV/JRYymbH3dO1yggI3mV2oTKSXsDHM+uIM= github.com/elastic/go-windows v1.0.0 h1:qLURgZFkkrYyTTkvYpsZIgf83AUsdIHfvlJaqaZ7aSY= github.com/elastic/go-windows v1.0.0/go.mod h1:TsU0Nrp7/y3+VwE82FoZF8gC/XFg/Elz6CcloAxnPgU= -github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU= -github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA= +github.com/gabriel-vasile/mimetype v1.4.7 h1:SKFKl7kD0RiPdbht0s7hFtjl489WcQ1VyPW8ZzUMYCA= +github.com/gabriel-vasile/mimetype v1.4.7/go.mod h1:GDlAgAyIRT27BhFl53XNAFtfjzOkLaF35JdEG0P7LtU= github.com/go-faster/city v1.0.1 h1:4WAxSZ3V2Ws4QRDrscLEDcibJY8uf41H6AhXDrNDcGw= github.com/go-faster/city v1.0.1/go.mod h1:jKcUJId49qdW3L1qKHH/3wPeUstCVpVSXTM6vO3VcTw= github.com/go-faster/errors v0.7.1 h1:MkJTnDoEdi9pDabt1dpWf7AA8/BaSYZqibYyhZ20AYg= @@ -203,8 +203,8 @@ github.com/sijms/go-ora/v2 v2.8.22 h1:3ABgRzVKxS439cEgSLjFKutIwOyhnyi4oOSBywEdOl github.com/sijms/go-ora/v2 v2.8.22/go.mod h1:QgFInVi3ZWyqAiJwzBQA+nbKYKH77tdp1PYoCqhR2dU= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/snowflakedb/gosnowflake v1.12.1 h1:IpYK9Wr1dYwPiMSG9RNudAJV0rI0ZOgcNEMXOUiPFX8= -github.com/snowflakedb/gosnowflake v1.12.1/go.mod h1:SYLNMBZ4LXTJfTfJt+M4N40DwabGUx3gkH7VT8hu3Rw= +github.com/snowflakedb/gosnowflake v1.13.0 h1:NQoy4mnHUmBuruJhzAGVRO9YLpFxayYTCLf+dxvG7bk= +github.com/snowflakedb/gosnowflake v1.13.0/go.mod h1:nwiPNHaS3EGxnW1rr10ascVYFLA4EKrqMX2TxPt0+N4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= From 0b48349ac545c2666350554a0af395a4b443598c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 2 Feb 2025 11:46:19 +0100 Subject: [PATCH 327/401] deps: bump github.com/aws/aws-sdk-go-v2/config from 1.28.7 to 1.29.4 (#686) Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.28.7 to 1.29.4. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.28.7...config/v1.29.4) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/config dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 26 +++++++++++++------------- go.sum | 52 ++++++++++++++++++++++++++-------------------------- 2 files changed, 39 insertions(+), 39 deletions(-) diff --git a/go.mod b/go.mod index 1b9cf5d4..081903df 100644 --- a/go.mod +++ b/go.mod @@ -4,8 +4,8 @@ go 1.22.0 require ( github.com/ClickHouse/clickhouse-go/v2 v2.30.2 - github.com/aws/aws-sdk-go-v2 v1.32.7 - github.com/aws/aws-sdk-go-v2/config v1.28.7 + github.com/aws/aws-sdk-go-v2 v1.36.0 + github.com/aws/aws-sdk-go-v2/config v1.29.4 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.8 github.com/go-sql-driver/mysql v1.8.1 github.com/jackc/pgx/v5 v5.7.2 @@ -40,22 +40,22 @@ require ( github.com/andybalholm/brotli v1.1.1 // indirect github.com/apache/arrow/go/v16 v16.0.0 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.48 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.22 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.57 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.27 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.26 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.26 // indirect - github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.31 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.31 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.8.2 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2 // indirect github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.7 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.12 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 // indirect github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.24.8 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.7 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.33.3 // indirect - github.com/aws/smithy-go v1.22.1 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.24.14 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.13 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.33.12 // indirect + github.com/aws/smithy-go v1.22.2 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect diff --git a/go.sum b/go.sum index f86ae0f0..b10a60ae 100644 --- a/go.sum +++ b/go.sum @@ -30,46 +30,46 @@ github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7X github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= github.com/apache/arrow/go/v16 v16.0.0 h1:qRLbJRPj4zaseZrjbDHa7mUoZDDIU+4pu+mE2Lucs5g= github.com/apache/arrow/go/v16 v16.0.0/go.mod h1:9wnc9mn6vEDTRIm4+27pEjQpRKuTvBaessPoEXQzxWA= -github.com/aws/aws-sdk-go-v2 v1.32.7 h1:ky5o35oENWi0JYWUZkB7WYvVPP+bcRF5/Iq7JWSb5Rw= -github.com/aws/aws-sdk-go-v2 v1.32.7/go.mod h1:P5WJBrYqqbWVaOxgH0X/FYYD47/nooaPOZPlQdmiN2U= +github.com/aws/aws-sdk-go-v2 v1.36.0 h1:b1wM5CcE65Ujwn565qcwgtOTT1aT4ADOHHgglKjG7fk= +github.com/aws/aws-sdk-go-v2 v1.36.0/go.mod h1:5PMILGVKiW32oDzjj6RU52yrNrDPUHcbZQYr1sM7qmM= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg= -github.com/aws/aws-sdk-go-v2/config v1.28.7 h1:GduUnoTXlhkgnxTD93g1nv4tVPILbdNQOzav+Wpg7AE= -github.com/aws/aws-sdk-go-v2/config v1.28.7/go.mod h1:vZGX6GVkIE8uECSUHB6MWAUsd4ZcG2Yq/dMa4refR3M= -github.com/aws/aws-sdk-go-v2/credentials v1.17.48 h1:IYdLD1qTJ0zanRavulofmqut4afs45mOWEI+MzZtTfQ= -github.com/aws/aws-sdk-go-v2/credentials v1.17.48/go.mod h1:tOscxHN3CGmuX9idQ3+qbkzrjVIx32lqDSU1/0d/qXs= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.22 h1:kqOrpojG71DxJm/KDPO+Z/y1phm1JlC8/iT+5XRmAn8= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.22/go.mod h1:NtSFajXVVL8TA2QNngagVZmUtXciyrHOt7xgz4faS/M= +github.com/aws/aws-sdk-go-v2/config v1.29.4 h1:ObNqKsDYFGr2WxnoXKOhCvTlf3HhwtoGgc+KmZ4H5yg= +github.com/aws/aws-sdk-go-v2/config v1.29.4/go.mod h1:j2/AF7j/qxVmsNIChw1tWfsVKOayJoGRDjg1Tgq7NPk= +github.com/aws/aws-sdk-go-v2/credentials v1.17.57 h1:kFQDsbdBAR3GZsB8xA+51ptEnq9TIj3tS4MuP5b+TcQ= +github.com/aws/aws-sdk-go-v2/credentials v1.17.57/go.mod h1:2kerxPUUbTagAr/kkaHiqvj/bcYHzi2qiJS/ZinllU0= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.27 h1:7lOW8NUwE9UZekS1DYoiPdVAqZ6A+LheHWb+mHbNOq8= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.27/go.mod h1:w1BASFIPOPUae7AgaH4SbjNbfdkxuggLyGfNFTn8ITY= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 h1:7Zwtt/lP3KNRkeZre7soMELMGNoBrutx8nobg1jKWmo= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15/go.mod h1:436h2adoHb57yd+8W+gYPrrA9U/R/SuAuOO42Ushzhw= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.26 h1:I/5wmGMffY4happ8NOCuIUEWGUvvFp5NSeQcXl9RHcI= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.26/go.mod h1:FR8f4turZtNy6baO0KJ5FJUmXH/cSkI9fOngs0yl6mA= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.26 h1:zXFLuEuMMUOvEARXFUVJdfqZ4bvvSgdGRq/ATcrQxzM= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.26/go.mod h1:3o2Wpy0bogG1kyOPrgkXA8pgIfEEv0+m19O9D5+W8y8= -github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvKgqdiXoTxAF4HQcQ= -github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.31 h1:lWm9ucLSRFiI4dQQafLrEOmEDGry3Swrz0BIRdiHJqQ= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.31/go.mod h1:Huu6GG0YTfbPphQkDSo4dEGmQRTKb9k9G7RdtyQWxuI= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.31 h1:ACxDklUKKXb48+eg5ROZXi1vDgfMyfIA/WyvqHcHI0o= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.31/go.mod h1:yadnfsDwqXeVaohbGc/RaD287PuyRw2wugkh5ZL2J6k= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.2 h1:Pg9URiobXy85kgFev3og2CuOZ8JZUBENF+dcgWBaYNk= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.2/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 h1:81KE7vaZzrl7yHBYHVEzYB8sypz11NMOZ40YlWvPxsU= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5/go.mod h1:LIt2rg7Mcgn09Ygbdh/RdIm0rQ+3BNkbP1gyVMFtRK0= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 h1:iXtILhvDxB6kPvEXgsDhGaZCSC6LQET5ZHSdJozeI0Y= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1/go.mod h1:9nu0fVANtYiAePIBh2/pFUSwtJ402hLnp854CNoDOeE= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2 h1:D4oz8/CzT9bAEYtVhSBmFj2dNOtaHOtMKc2vHBwYizA= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2/go.mod h1:Za3IHqTQ+yNcRHxu1OFucBh0ACZT4j4VQFF0BqpZcLY= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 h1:ZMeFZ5yk+Ek+jNr1+uwCd2tG89t6oTS5yVWpa6yy2es= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7/go.mod h1:mxV05U+4JiHqIpGqqYXOHLPKUC6bDXC44bsUhNjOEwY= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.7 h1:8eUsivBQzZHqe/3FE+cqwfH+0p5Jo8PFM/QYQSmeZ+M= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.7/go.mod h1:kLPQvGUmxn/fqiCrDeohwG33bq2pQpGeY62yRO6Nrh0= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.12 h1:O+8vD2rGjfihBewr5bT+QUfYUHIxCVgG61LHoT59shM= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.12/go.mod h1:usVdWJaosa66NMvmCrr08NcWDBRv4E6+YFG2pUdw1Lk= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 h1:f9RyWNtS8oH7cZlbn+/JNPpjUk5+5fLd5lM9M0i49Ys= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5/go.mod h1:h5CoMZV2VF297/VLhRhO1WF+XYWOzXo+4HsObA4HjBQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 h1:6cnno47Me9bRykw9AEv9zkXE+5or7jz8TsskTTccbgc= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1/go.mod h1:qmdkIIAC+GCLASF7R2whgNrJADz0QZPX+Seiw/i4S3o= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.8 h1:WT3EPriVEpHE2jeNqHqj7l43JCIWPoZjNNRluZ7agII= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.8/go.mod h1:By/yiMzR0yfhPaqRWE3GrT9B/Z6871z1GfWGc+vf4Y8= -github.com/aws/aws-sdk-go-v2/service/sso v1.24.8 h1:CvuUmnXI7ebaUAhbJcDy9YQx8wHR69eZ9I7q5hszt/g= -github.com/aws/aws-sdk-go-v2/service/sso v1.24.8/go.mod h1:XDeGv1opzwm8ubxddF0cgqkZWsyOtw4lr6dxwmb6YQg= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.7 h1:F2rBfNAL5UyswqoeWv9zs74N/NanhK16ydHW1pahX6E= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.7/go.mod h1:JfyQ0g2JG8+Krq0EuZNnRwX0mU0HrwY/tG6JNfcqh4k= -github.com/aws/aws-sdk-go-v2/service/sts v1.33.3 h1:Xgv/hyNgvLda/M9l9qxXc4UFSgppnRczLxlMs5Ae/QY= -github.com/aws/aws-sdk-go-v2/service/sts v1.33.3/go.mod h1:5Gn+d+VaaRgsjewpMvGazt0WfcFO+Md4wLOuBfGR9Bc= -github.com/aws/smithy-go v1.22.1 h1:/HPHZQ0g7f4eUeK6HKglFz8uwVfZKgoI25rb/J+dnro= -github.com/aws/smithy-go v1.22.1/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.14 h1:c5WJ3iHz7rLIgArznb3JCSQT3uUMiz9DLZhIX+1G8ok= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.14/go.mod h1:+JJQTxB6N4niArC14YNtxcQtwEqzS3o9Z32n7q33Rfs= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.13 h1:f1L/JtUkVODD+k1+IiSJUUv8A++2qVr+Xvb3xWXETMU= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.13/go.mod h1:tvqlFoja8/s0o+UruA1Nrezo/df0PzdunMDDurUfg6U= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.12 h1:fqg6c1KVrc3SYWma/egWue5rKI4G2+M4wMQN2JosNAA= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.12/go.mod h1:7Yn+p66q/jt38qMoVfNvjbm3D89mGBnkwDcijgtih8w= +github.com/aws/smithy-go v1.22.2 h1:6D9hW43xKFrRx/tXXfAlIZc4JI+yQe6snnWcQyxSyLQ= +github.com/aws/smithy-go v1.22.2/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= From be652292873e14dad9d548d9915d76ca1316094c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Feb 2025 13:42:05 +0100 Subject: [PATCH 328/401] deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager from 1.34.8 to 1.34.16 (#687) deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager Bumps [github.com/aws/aws-sdk-go-v2/service/secretsmanager](https://github.com/aws/aws-sdk-go-v2) from 1.34.8 to 1.34.16. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/sfn/v1.34.8...service/textract/v1.34.16) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/service/secretsmanager dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 081903df..ea5dd633 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/ClickHouse/clickhouse-go/v2 v2.30.2 github.com/aws/aws-sdk-go-v2 v1.36.0 github.com/aws/aws-sdk-go-v2/config v1.29.4 - github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.8 + github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.16 github.com/go-sql-driver/mysql v1.8.1 github.com/jackc/pgx/v5 v5.7.2 github.com/kardianos/minwinsvc v1.0.2 diff --git a/go.sum b/go.sum index b10a60ae..bc8cae65 100644 --- a/go.sum +++ b/go.sum @@ -60,8 +60,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 h1:f9RyWNtS8oH7cZ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5/go.mod h1:h5CoMZV2VF297/VLhRhO1WF+XYWOzXo+4HsObA4HjBQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 h1:6cnno47Me9bRykw9AEv9zkXE+5or7jz8TsskTTccbgc= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1/go.mod h1:qmdkIIAC+GCLASF7R2whgNrJADz0QZPX+Seiw/i4S3o= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.8 h1:WT3EPriVEpHE2jeNqHqj7l43JCIWPoZjNNRluZ7agII= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.8/go.mod h1:By/yiMzR0yfhPaqRWE3GrT9B/Z6871z1GfWGc+vf4Y8= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.16 h1:tIgXdHiHVELZm56dCK7fQ8c4gFMoz6AkhHksrxpmAFQ= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.16/go.mod h1:5WGcD7Mks8G/VNlpHp2ZwfP5pVIZp0zp8nauLU7NuLM= github.com/aws/aws-sdk-go-v2/service/sso v1.24.14 h1:c5WJ3iHz7rLIgArznb3JCSQT3uUMiz9DLZhIX+1G8ok= github.com/aws/aws-sdk-go-v2/service/sso v1.24.14/go.mod h1:+JJQTxB6N4niArC14YNtxcQtwEqzS3o9Z32n7q33Rfs= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.13 h1:f1L/JtUkVODD+k1+IiSJUUv8A++2qVr+Xvb3xWXETMU= From 43438111b1b081e4628b9c43d83e61143c573154 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Feb 2025 13:54:51 +0100 Subject: [PATCH 329/401] deps: bump github.com/sijms/go-ora/v2 from 2.8.22 to 2.8.23 (#689) Bumps [github.com/sijms/go-ora/v2](https://github.com/sijms/go-ora) from 2.8.22 to 2.8.23. - [Release notes](https://github.com/sijms/go-ora/releases) - [Commits](https://github.com/sijms/go-ora/compare/v2.8.22...v2.8.23) --- updated-dependencies: - dependency-name: github.com/sijms/go-ora/v2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index ea5dd633..bda7325f 100644 --- a/go.mod +++ b/go.mod @@ -17,7 +17,7 @@ require ( github.com/prometheus/common v0.62.0 github.com/prometheus/exporter-toolkit v0.13.2 github.com/sethvargo/go-envconfig v1.1.0 - github.com/sijms/go-ora/v2 v2.8.22 + github.com/sijms/go-ora/v2 v2.8.23 github.com/snowflakedb/gosnowflake v1.13.0 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.23.1 diff --git a/go.sum b/go.sum index bc8cae65..2d216d60 100644 --- a/go.sum +++ b/go.sum @@ -199,8 +199,8 @@ github.com/sethvargo/go-envconfig v1.1.0 h1:cWZiJxeTm7AlCvzGXrEXaSTCNgip5oJepekh github.com/sethvargo/go-envconfig v1.1.0/go.mod h1:JLd0KFWQYzyENqnEPWWZ49i4vzZo/6nRidxI8YvGiHw= github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k= github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME= -github.com/sijms/go-ora/v2 v2.8.22 h1:3ABgRzVKxS439cEgSLjFKutIwOyhnyi4oOSBywEdOlU= -github.com/sijms/go-ora/v2 v2.8.22/go.mod h1:QgFInVi3ZWyqAiJwzBQA+nbKYKH77tdp1PYoCqhR2dU= +github.com/sijms/go-ora/v2 v2.8.23 h1:9k4VOty9Nv/Uy8aUqqO90DdRY5pDjKb+QnQ6uimZLiM= +github.com/sijms/go-ora/v2 v2.8.23/go.mod h1:QgFInVi3ZWyqAiJwzBQA+nbKYKH77tdp1PYoCqhR2dU= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/snowflakedb/gosnowflake v1.13.0 h1:NQoy4mnHUmBuruJhzAGVRO9YLpFxayYTCLf+dxvG7bk= From 4a56631f9d372b201131e3431fdcd1b466a92ced Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Feb 2025 13:55:04 +0100 Subject: [PATCH 330/401] deps: bump google.golang.org/protobuf from 1.36.1 to 1.36.4 (#690) Bumps google.golang.org/protobuf from 1.36.1 to 1.36.4. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index bda7325f..647524ef 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/snowflakedb/gosnowflake v1.13.0 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.23.1 - google.golang.org/protobuf v1.36.1 + google.golang.org/protobuf v1.36.4 gopkg.in/yaml.v3 v3.0.1 ) diff --git a/go.sum b/go.sum index 2d216d60..872e2591 100644 --- a/go.sum +++ b/go.sum @@ -301,8 +301,8 @@ gonum.org/v1/gonum v0.15.0 h1:2lYxjRbTYyxkJxlhC+LvJIx3SsANPdRybu1tGj9/OrQ= gonum.org/v1/gonum v0.15.0/go.mod h1:xzZVBJBtS+Mz4q0Yl2LJTk+OxOg4jiXZ7qBoM0uISGo= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.36.1 h1:yBPeRvTftaleIgM3PZ/WBIZ7XM/eEYAaEyCwvyjq/gk= -google.golang.org/protobuf v1.36.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.4 h1:6A3ZDJHn/eNqc1i+IdefRzy/9PokBTPvcqMySR7NNIM= +google.golang.org/protobuf v1.36.4/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From 04b6f62805349fc00d90b974c7d2ed9b79f80404 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Feb 2025 13:55:19 +0100 Subject: [PATCH 331/401] deps: bump github.com/ClickHouse/clickhouse-go/v2 from 2.30.2 to 2.30.3 (#691) Bumps [github.com/ClickHouse/clickhouse-go/v2](https://github.com/ClickHouse/clickhouse-go) from 2.30.2 to 2.30.3. - [Release notes](https://github.com/ClickHouse/clickhouse-go/releases) - [Changelog](https://github.com/ClickHouse/clickhouse-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/ClickHouse/clickhouse-go/compare/v2.30.2...v2.30.3) --- updated-dependencies: - dependency-name: github.com/ClickHouse/clickhouse-go/v2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 647524ef..47284916 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/burningalchemist/sql_exporter go 1.22.0 require ( - github.com/ClickHouse/clickhouse-go/v2 v2.30.2 + github.com/ClickHouse/clickhouse-go/v2 v2.30.3 github.com/aws/aws-sdk-go-v2 v1.36.0 github.com/aws/aws-sdk-go-v2/config v1.29.4 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.16 @@ -35,7 +35,7 @@ require ( github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0 // indirect github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect github.com/BurntSushi/toml v1.4.0 // indirect - github.com/ClickHouse/ch-go v0.64.0 // indirect + github.com/ClickHouse/ch-go v0.64.1 // indirect github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c // indirect github.com/andybalholm/brotli v1.1.1 // indirect github.com/apache/arrow/go/v16 v16.0.0 // indirect diff --git a/go.sum b/go.sum index 872e2591..f85b4abc 100644 --- a/go.sum +++ b/go.sum @@ -20,10 +20,10 @@ github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 h1:XHOnouVk1mx github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= -github.com/ClickHouse/ch-go v0.64.0 h1:+MByORSlUvgPwmitmQi7OH/zuC/9Pk87Mulbq1eKa2s= -github.com/ClickHouse/ch-go v0.64.0/go.mod h1:RBUynvczWwVzhS6Up9lPKlH1mrk4UAmle6uzCiW4Pkc= -github.com/ClickHouse/clickhouse-go/v2 v2.30.2 h1:WsG2k1uiDh+0z/YNubK6aAc27sHzmVISlVpK2uGTrBw= -github.com/ClickHouse/clickhouse-go/v2 v2.30.2/go.mod h1:F7dAGn2PQzY7FkzZrY+04rSBodstSjaNg/DIuQHa3uA= +github.com/ClickHouse/ch-go v0.64.1 h1:FWpP+QU4KchgzpEekuv8YoI/fUc4H2r6Bwc5WwrzvcI= +github.com/ClickHouse/ch-go v0.64.1/go.mod h1:RBUynvczWwVzhS6Up9lPKlH1mrk4UAmle6uzCiW4Pkc= +github.com/ClickHouse/clickhouse-go/v2 v2.30.3 h1:m0VZqUNCJ7lOmZfmOE3HZUMixZHftKmZLqcrz2+UVHk= +github.com/ClickHouse/clickhouse-go/v2 v2.30.3/go.mod h1:V1aZaG0ctMbd8KVi+D4loXi97duWYtHiQHMCgipKJcI= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c h1:RGWPOewvKIROun94nF7v2cua9qP+thov/7M50KEoeSU= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA= From 1bb5023e8acbc008384ea1ca680ed6fdf613c1a7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 2 Mar 2025 18:17:57 +0100 Subject: [PATCH 332/401] deps: bump github.com/xo/dburl from 0.23.1 to 0.23.3 (#692) Bumps [github.com/xo/dburl](https://github.com/xo/dburl) from 0.23.1 to 0.23.3. - [Release notes](https://github.com/xo/dburl/releases) - [Commits](https://github.com/xo/dburl/compare/v0.23.1...v0.23.3) --- updated-dependencies: - dependency-name: github.com/xo/dburl dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 47284916..13981c39 100644 --- a/go.mod +++ b/go.mod @@ -20,7 +20,7 @@ require ( github.com/sijms/go-ora/v2 v2.8.23 github.com/snowflakedb/gosnowflake v1.13.0 github.com/vertica/vertica-sql-go v1.3.3 - github.com/xo/dburl v0.23.1 + github.com/xo/dburl v0.23.3 google.golang.org/protobuf v1.36.4 gopkg.in/yaml.v3 v3.0.1 ) diff --git a/go.sum b/go.sum index f85b4abc..ad892e0b 100644 --- a/go.sum +++ b/go.sum @@ -219,8 +219,8 @@ github.com/vertica/vertica-sql-go v1.3.3/go.mod h1:jnn2GFuv+O2Jcjktb7zyc4Utlbu9Y github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= -github.com/xo/dburl v0.23.1 h1:PX1RgQaaJV1S5iADcM1TT39OLrg5daeV6Hp7RYwVoYw= -github.com/xo/dburl v0.23.1/go.mod h1:B7/G9FGungw6ighV8xJNwWYQPMfn3gsi2sn5SE8Bzco= +github.com/xo/dburl v0.23.3 h1:s9tUyKAkcgRfNQ7ut5gaDWC9s5ROafY3hmNOrGbNXtE= +github.com/xo/dburl v0.23.3/go.mod h1:uazlaAQxj4gkshhfuuYyvwCBouOmNnG2aDxTCFZpmL4= github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU= github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E= github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= From 6876b99e493d6c2247912234793d1ac7e45ea48d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 2 Mar 2025 18:18:08 +0100 Subject: [PATCH 333/401] deps: bump github.com/sijms/go-ora/v2 from 2.8.23 to 2.8.24 (#695) Bumps [github.com/sijms/go-ora/v2](https://github.com/sijms/go-ora) from 2.8.23 to 2.8.24. - [Release notes](https://github.com/sijms/go-ora/releases) - [Commits](https://github.com/sijms/go-ora/compare/v2.8.23...v2.8.24) --- updated-dependencies: - dependency-name: github.com/sijms/go-ora/v2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 13981c39..f7f90ef4 100644 --- a/go.mod +++ b/go.mod @@ -17,7 +17,7 @@ require ( github.com/prometheus/common v0.62.0 github.com/prometheus/exporter-toolkit v0.13.2 github.com/sethvargo/go-envconfig v1.1.0 - github.com/sijms/go-ora/v2 v2.8.23 + github.com/sijms/go-ora/v2 v2.8.24 github.com/snowflakedb/gosnowflake v1.13.0 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.23.3 diff --git a/go.sum b/go.sum index ad892e0b..c3df4ec2 100644 --- a/go.sum +++ b/go.sum @@ -199,8 +199,8 @@ github.com/sethvargo/go-envconfig v1.1.0 h1:cWZiJxeTm7AlCvzGXrEXaSTCNgip5oJepekh github.com/sethvargo/go-envconfig v1.1.0/go.mod h1:JLd0KFWQYzyENqnEPWWZ49i4vzZo/6nRidxI8YvGiHw= github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k= github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME= -github.com/sijms/go-ora/v2 v2.8.23 h1:9k4VOty9Nv/Uy8aUqqO90DdRY5pDjKb+QnQ6uimZLiM= -github.com/sijms/go-ora/v2 v2.8.23/go.mod h1:QgFInVi3ZWyqAiJwzBQA+nbKYKH77tdp1PYoCqhR2dU= +github.com/sijms/go-ora/v2 v2.8.24 h1:TODRWjWGwJ1VlBOhbTLat+diTYe8HXq2soJeB+HMjnw= +github.com/sijms/go-ora/v2 v2.8.24/go.mod h1:QgFInVi3ZWyqAiJwzBQA+nbKYKH77tdp1PYoCqhR2dU= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/snowflakedb/gosnowflake v1.13.0 h1:NQoy4mnHUmBuruJhzAGVRO9YLpFxayYTCLf+dxvG7bk= From 10235cfc7f595bcdbb73dfb96b9af0b6464a1268 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 2 Mar 2025 18:19:23 +0100 Subject: [PATCH 334/401] deps: bump github.com/prometheus/client_golang from 1.20.5 to 1.21.0 (#694) Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.20.5 to 1.21.0. - [Release notes](https://github.com/prometheus/client_golang/releases) - [Changelog](https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md) - [Commits](https://github.com/prometheus/client_golang/compare/v1.20.5...v1.21.0) --- updated-dependencies: - dependency-name: github.com/prometheus/client_golang dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index f7f90ef4..3cf526ca 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.9 github.com/microsoft/go-mssqldb v1.8.0 - github.com/prometheus/client_golang v1.20.5 + github.com/prometheus/client_golang v1.21.0 github.com/prometheus/client_model v0.6.1 github.com/prometheus/common v0.62.0 github.com/prometheus/exporter-toolkit v0.13.2 diff --git a/go.sum b/go.sum index c3df4ec2..fa34ff7c 100644 --- a/go.sum +++ b/go.sum @@ -180,8 +180,8 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= -github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= +github.com/prometheus/client_golang v1.21.0 h1:DIsaGmiaBkSangBgMtWdNfxbMNdku5IK6iNhrEqWvdA= +github.com/prometheus/client_golang v1.21.0/go.mod h1:U9NM32ykUErtVBxdvD3zfi+EuFkkaBvMb09mIfe0Zgg= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io= From a36dd2d8c01d993a19725cc1d06dba1ff85aaed5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 2 Mar 2025 18:42:51 +0100 Subject: [PATCH 335/401] deps: bump github.com/go-sql-driver/mysql from 1.8.1 to 1.9.0 (#699) Bumps [github.com/go-sql-driver/mysql](https://github.com/go-sql-driver/mysql) from 1.8.1 to 1.9.0. - [Release notes](https://github.com/go-sql-driver/mysql/releases) - [Changelog](https://github.com/go-sql-driver/mysql/blob/master/CHANGELOG.md) - [Commits](https://github.com/go-sql-driver/mysql/compare/v1.8.1...v1.9.0) --- updated-dependencies: - dependency-name: github.com/go-sql-driver/mysql dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 3cf526ca..0987f526 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( github.com/aws/aws-sdk-go-v2 v1.36.0 github.com/aws/aws-sdk-go-v2/config v1.29.4 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.16 - github.com/go-sql-driver/mysql v1.8.1 + github.com/go-sql-driver/mysql v1.9.0 github.com/jackc/pgx/v5 v5.7.2 github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.9 diff --git a/go.sum b/go.sum index fa34ff7c..14334d0e 100644 --- a/go.sum +++ b/go.sum @@ -94,8 +94,8 @@ github.com/go-faster/city v1.0.1 h1:4WAxSZ3V2Ws4QRDrscLEDcibJY8uf41H6AhXDrNDcGw= github.com/go-faster/city v1.0.1/go.mod h1:jKcUJId49qdW3L1qKHH/3wPeUstCVpVSXTM6vO3VcTw= github.com/go-faster/errors v0.7.1 h1:MkJTnDoEdi9pDabt1dpWf7AA8/BaSYZqibYyhZ20AYg= github.com/go-faster/errors v0.7.1/go.mod h1:5ySTjWFiphBs07IKuiL69nxdfd5+fzh1u7FPGZP2quo= -github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= -github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= +github.com/go-sql-driver/mysql v1.9.0 h1:Y0zIbQXhQKmQgTp44Y1dp3wTXcn804QoTptLZT1vtvo= +github.com/go-sql-driver/mysql v1.9.0/go.mod h1:pDetrLJeA3oMujJuvXc8RJoasr589B6A9fwzD3QMrqw= github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+Hoeu/iUR3ruzNvZ+yQfO03a0= From 1ccb2ac45fdb616c982e376525179c0c8228c6b6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 2 Mar 2025 18:43:03 +0100 Subject: [PATCH 336/401] deps: bump github.com/ClickHouse/clickhouse-go/v2 from 2.30.3 to 2.32.2 (#697) Bumps [github.com/ClickHouse/clickhouse-go/v2](https://github.com/ClickHouse/clickhouse-go) from 2.30.3 to 2.32.2. - [Release notes](https://github.com/ClickHouse/clickhouse-go/releases) - [Changelog](https://github.com/ClickHouse/clickhouse-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/ClickHouse/clickhouse-go/compare/v2.30.3...v2.32.2) --- updated-dependencies: - dependency-name: github.com/ClickHouse/clickhouse-go/v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 20 ++++++++++---------- go.sum | 40 ++++++++++++++++++++-------------------- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/go.mod b/go.mod index 0987f526..75545385 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/burningalchemist/sql_exporter go 1.22.0 require ( - github.com/ClickHouse/clickhouse-go/v2 v2.30.3 + github.com/ClickHouse/clickhouse-go/v2 v2.32.2 github.com/aws/aws-sdk-go-v2 v1.36.0 github.com/aws/aws-sdk-go-v2/config v1.29.4 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.16 @@ -35,7 +35,7 @@ require ( github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0 // indirect github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect github.com/BurntSushi/toml v1.4.0 // indirect - github.com/ClickHouse/ch-go v0.64.1 // indirect + github.com/ClickHouse/ch-go v0.65.1 // indirect github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c // indirect github.com/andybalholm/brotli v1.1.1 // indirect github.com/apache/arrow/go/v16 v16.0.0 // indirect @@ -100,16 +100,16 @@ require ( github.com/zeebo/xxh3 v1.0.2 // indirect go.opentelemetry.io/otel v1.34.0 // indirect go.opentelemetry.io/otel/trace v1.34.0 // indirect - golang.org/x/crypto v0.32.0 // indirect + golang.org/x/crypto v0.33.0 // indirect golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 // indirect - golang.org/x/mod v0.18.0 // indirect - golang.org/x/net v0.34.0 // indirect + golang.org/x/mod v0.23.0 // indirect + golang.org/x/net v0.35.0 // indirect golang.org/x/oauth2 v0.24.0 // indirect - golang.org/x/sync v0.10.0 // indirect - golang.org/x/sys v0.29.0 // indirect - golang.org/x/term v0.28.0 // indirect - golang.org/x/text v0.21.0 // indirect - golang.org/x/tools v0.22.0 // indirect + golang.org/x/sync v0.11.0 // indirect + golang.org/x/sys v0.30.0 // indirect + golang.org/x/term v0.29.0 // indirect + golang.org/x/text v0.22.0 // indirect + golang.org/x/tools v0.30.0 // indirect golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect howett.net/plist v0.0.0-20181124034731-591f970eefbb // indirect diff --git a/go.sum b/go.sum index 14334d0e..76dde03f 100644 --- a/go.sum +++ b/go.sum @@ -20,10 +20,10 @@ github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 h1:XHOnouVk1mx github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= -github.com/ClickHouse/ch-go v0.64.1 h1:FWpP+QU4KchgzpEekuv8YoI/fUc4H2r6Bwc5WwrzvcI= -github.com/ClickHouse/ch-go v0.64.1/go.mod h1:RBUynvczWwVzhS6Up9lPKlH1mrk4UAmle6uzCiW4Pkc= -github.com/ClickHouse/clickhouse-go/v2 v2.30.3 h1:m0VZqUNCJ7lOmZfmOE3HZUMixZHftKmZLqcrz2+UVHk= -github.com/ClickHouse/clickhouse-go/v2 v2.30.3/go.mod h1:V1aZaG0ctMbd8KVi+D4loXi97duWYtHiQHMCgipKJcI= +github.com/ClickHouse/ch-go v0.65.1 h1:SLuxmLl5Mjj44/XbINsK2HFvzqup0s6rwKLFH347ZhU= +github.com/ClickHouse/ch-go v0.65.1/go.mod h1:bsodgURwmrkvkBe5jw1qnGDgyITsYErfONKAHn05nv4= +github.com/ClickHouse/clickhouse-go/v2 v2.32.2 h1:Y8fAXt0CpLhqNXMLlSddg+cMfAr7zHBWqXLpih6ozCY= +github.com/ClickHouse/clickhouse-go/v2 v2.32.2/go.mod h1:/vE8N/+9pozLkIiTMWbNUGviccDv/czEGS1KACvpXIk= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c h1:RGWPOewvKIROun94nF7v2cua9qP+thov/7M50KEoeSU= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA= @@ -239,21 +239,21 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc= -golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= +golang.org/x/crypto v0.33.0 h1:IOBPskki6Lysi0lo9qQvbxiQ+FvsCC/YWOecCHAixus= +golang.org/x/crypto v0.33.0/go.mod h1:bVdXmD7IV/4GdElGPozy6U7lWdRXA4qyRVGJV57uQ5M= golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 h1:LfspQV/FYTatPTr/3HzIcmiUFH7PGP+OQ6mgDYo3yuQ= golang.org/x/exp v0.0.0-20240222234643-814bf88cf225/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.18.0 h1:5+9lSbEzPSdWkH32vYPBwEpX8KwDbM52Ud9xBUvNlb0= -golang.org/x/mod v0.18.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.23.0 h1:Zb7khfcRGKk+kqfxFaP5tZqCnDZMjC5VtUBs87Hr6QM= +golang.org/x/mod v0.23.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0= -golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= +golang.org/x/net v0.35.0 h1:T5GQRQb2y08kTAByq9L4/bz8cipCdA8FbRTXewonqY8= +golang.org/x/net v0.35.0/go.mod h1:EglIi67kWsHKlRzzVMUD93VMSWGFOMSZgxFjparz1Qk= golang.org/x/oauth2 v0.24.0 h1:KTBBxWqUa0ykRPLtV69rRto9TLXcqYkeswu48x/gvNE= golang.org/x/oauth2 v0.24.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -261,8 +261,8 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= -golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w= +golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -274,23 +274,23 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= -golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= +golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.28.0 h1:/Ts8HFuMR2E6IP/jlo7QVLZHggjKQbhu/7H0LJFr3Gg= -golang.org/x/term v0.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek= +golang.org/x/term v0.29.0 h1:L6pJp37ocefwRRtYPKSWOWzOtWSxVajvz2ldH/xi3iU= +golang.org/x/term v0.29.0/go.mod h1:6bl4lRlvVuDgSf3179VpIxBF0o10JUpXWOnI7nErv7s= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= -golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= +golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM= +golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.22.0 h1:gqSGLZqv+AI9lIQzniJ0nZDRG5GBPsSi+DRNHWNz6yA= -golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c= +golang.org/x/tools v0.30.0 h1:BgcpHewrV5AUp2G9MebG4XPFI1E2W41zU1SaqVA9vJY= +golang.org/x/tools v0.30.0/go.mod h1:c347cR/OJfw5TI+GfX7RUPNMdDRRbjvYTS0jPyvsVtY= 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= From c859b9259f9c48faaf17fc09f4bb7f0dea2c9fa1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 2 Mar 2025 18:47:36 +0100 Subject: [PATCH 337/401] deps: bump github.com/prometheus/exporter-toolkit from 0.13.2 to 0.14.0 (#693) Bumps [github.com/prometheus/exporter-toolkit](https://github.com/prometheus/exporter-toolkit) from 0.13.2 to 0.14.0. - [Release notes](https://github.com/prometheus/exporter-toolkit/releases) - [Changelog](https://github.com/prometheus/exporter-toolkit/blob/master/CHANGELOG.md) - [Commits](https://github.com/prometheus/exporter-toolkit/compare/v0.13.2...v0.14.0) --- updated-dependencies: - dependency-name: github.com/prometheus/exporter-toolkit dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 75545385..7893fc9b 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( github.com/prometheus/client_golang v1.21.0 github.com/prometheus/client_model v0.6.1 github.com/prometheus/common v0.62.0 - github.com/prometheus/exporter-toolkit v0.13.2 + github.com/prometheus/exporter-toolkit v0.14.0 github.com/sethvargo/go-envconfig v1.1.0 github.com/sijms/go-ora/v2 v2.8.24 github.com/snowflakedb/gosnowflake v1.13.0 diff --git a/go.sum b/go.sum index 76dde03f..54be538e 100644 --- a/go.sum +++ b/go.sum @@ -186,8 +186,8 @@ github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io= github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I= -github.com/prometheus/exporter-toolkit v0.13.2 h1:Z02fYtbqTMy2i/f+xZ+UK5jy/bl1Ex3ndzh06T/Q9DQ= -github.com/prometheus/exporter-toolkit v0.13.2/go.mod h1:tCqnfx21q6qN1KA4U3Bfb8uWzXfijIrJz3/kTIqMV7g= +github.com/prometheus/exporter-toolkit v0.14.0 h1:NMlswfibpcZZ+H0sZBiTjrA3/aBFHkNZqE+iCj5EmRg= +github.com/prometheus/exporter-toolkit v0.14.0/go.mod h1:Gu5LnVvt7Nr/oqTBUC23WILZepW0nffNo10XdhQcwWA= github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= From 3bab726c69e9bd747068573c65b3e4d0bee7b531 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 2 Mar 2025 18:47:53 +0100 Subject: [PATCH 338/401] deps: bump google.golang.org/protobuf from 1.36.4 to 1.36.5 (#696) Bumps google.golang.org/protobuf from 1.36.4 to 1.36.5. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 7893fc9b..1ab8f22c 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/snowflakedb/gosnowflake v1.13.0 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.23.3 - google.golang.org/protobuf v1.36.4 + google.golang.org/protobuf v1.36.5 gopkg.in/yaml.v3 v3.0.1 ) diff --git a/go.sum b/go.sum index 54be538e..c38b36ad 100644 --- a/go.sum +++ b/go.sum @@ -301,8 +301,8 @@ gonum.org/v1/gonum v0.15.0 h1:2lYxjRbTYyxkJxlhC+LvJIx3SsANPdRybu1tGj9/OrQ= gonum.org/v1/gonum v0.15.0/go.mod h1:xzZVBJBtS+Mz4q0Yl2LJTk+OxOg4jiXZ7qBoM0uISGo= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.36.4 h1:6A3ZDJHn/eNqc1i+IdefRzy/9PokBTPvcqMySR7NNIM= -google.golang.org/protobuf v1.36.4/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= +google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From dae5fb654f8eb3692142ec10c81fb3ededff9aaf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 2 Mar 2025 18:49:49 +0100 Subject: [PATCH 339/401] deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager from 1.34.16 to 1.35.0 (#700) deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager Bumps [github.com/aws/aws-sdk-go-v2/service/secretsmanager](https://github.com/aws/aws-sdk-go-v2) from 1.34.16 to 1.35.0. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/chime/v1.34.16...v1.35.0) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/service/secretsmanager dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 8 ++++---- go.sum | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index 1ab8f22c..885fb434 100644 --- a/go.mod +++ b/go.mod @@ -4,9 +4,9 @@ go 1.22.0 require ( github.com/ClickHouse/clickhouse-go/v2 v2.32.2 - github.com/aws/aws-sdk-go-v2 v1.36.0 + github.com/aws/aws-sdk-go-v2 v1.36.3 github.com/aws/aws-sdk-go-v2/config v1.29.4 - github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.16 + github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.0 github.com/go-sql-driver/mysql v1.9.0 github.com/jackc/pgx/v5 v5.7.2 github.com/kardianos/minwinsvc v1.0.2 @@ -43,8 +43,8 @@ require ( github.com/aws/aws-sdk-go-v2/credentials v1.17.57 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.27 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.31 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.31 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.2 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2 // indirect diff --git a/go.sum b/go.sum index c38b36ad..0ab69bdd 100644 --- a/go.sum +++ b/go.sum @@ -30,8 +30,8 @@ github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7X github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= github.com/apache/arrow/go/v16 v16.0.0 h1:qRLbJRPj4zaseZrjbDHa7mUoZDDIU+4pu+mE2Lucs5g= github.com/apache/arrow/go/v16 v16.0.0/go.mod h1:9wnc9mn6vEDTRIm4+27pEjQpRKuTvBaessPoEXQzxWA= -github.com/aws/aws-sdk-go-v2 v1.36.0 h1:b1wM5CcE65Ujwn565qcwgtOTT1aT4ADOHHgglKjG7fk= -github.com/aws/aws-sdk-go-v2 v1.36.0/go.mod h1:5PMILGVKiW32oDzjj6RU52yrNrDPUHcbZQYr1sM7qmM= +github.com/aws/aws-sdk-go-v2 v1.36.3 h1:mJoei2CxPutQVxaATCzDUjcZEjVRdpsiiXi2o38yqWM= +github.com/aws/aws-sdk-go-v2 v1.36.3/go.mod h1:LLXuLpgzEbD766Z5ECcRmi8AzSwfZItDtmABVkRLGzg= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg= github.com/aws/aws-sdk-go-v2/config v1.29.4 h1:ObNqKsDYFGr2WxnoXKOhCvTlf3HhwtoGgc+KmZ4H5yg= @@ -42,10 +42,10 @@ github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.27 h1:7lOW8NUwE9UZekS1DYoiPd github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.27/go.mod h1:w1BASFIPOPUae7AgaH4SbjNbfdkxuggLyGfNFTn8ITY= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 h1:7Zwtt/lP3KNRkeZre7soMELMGNoBrutx8nobg1jKWmo= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15/go.mod h1:436h2adoHb57yd+8W+gYPrrA9U/R/SuAuOO42Ushzhw= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.31 h1:lWm9ucLSRFiI4dQQafLrEOmEDGry3Swrz0BIRdiHJqQ= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.31/go.mod h1:Huu6GG0YTfbPphQkDSo4dEGmQRTKb9k9G7RdtyQWxuI= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.31 h1:ACxDklUKKXb48+eg5ROZXi1vDgfMyfIA/WyvqHcHI0o= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.31/go.mod h1:yadnfsDwqXeVaohbGc/RaD287PuyRw2wugkh5ZL2J6k= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34 h1:ZK5jHhnrioRkUNOc+hOgQKlUL5JeC3S6JgLxtQ+Rm0Q= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34/go.mod h1:p4VfIceZokChbA9FzMbRGz5OV+lekcVtHlPKEO0gSZY= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34 h1:SZwFm17ZUNNg5Np0ioo/gq8Mn6u9w19Mri8DnJ15Jf0= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34/go.mod h1:dFZsC0BLo346mvKQLWmoJxT+Sjp+qcVR1tRVHQGOH9Q= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.2 h1:Pg9URiobXy85kgFev3og2CuOZ8JZUBENF+dcgWBaYNk= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.2/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 h1:81KE7vaZzrl7yHBYHVEzYB8sypz11NMOZ40YlWvPxsU= @@ -60,8 +60,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 h1:f9RyWNtS8oH7cZ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5/go.mod h1:h5CoMZV2VF297/VLhRhO1WF+XYWOzXo+4HsObA4HjBQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 h1:6cnno47Me9bRykw9AEv9zkXE+5or7jz8TsskTTccbgc= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1/go.mod h1:qmdkIIAC+GCLASF7R2whgNrJADz0QZPX+Seiw/i4S3o= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.16 h1:tIgXdHiHVELZm56dCK7fQ8c4gFMoz6AkhHksrxpmAFQ= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.16/go.mod h1:5WGcD7Mks8G/VNlpHp2ZwfP5pVIZp0zp8nauLU7NuLM= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.0 h1:BRCDd+oBBOk/5VzR/rVk3Azy8o5oCCr8urNJQs191mE= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.0/go.mod h1:yGhDiLKguA3iFJYxbrQkQiNzuy+ddxesSZYWVeeEH5Q= github.com/aws/aws-sdk-go-v2/service/sso v1.24.14 h1:c5WJ3iHz7rLIgArznb3JCSQT3uUMiz9DLZhIX+1G8ok= github.com/aws/aws-sdk-go-v2/service/sso v1.24.14/go.mod h1:+JJQTxB6N4niArC14YNtxcQtwEqzS3o9Z32n7q33Rfs= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.13 h1:f1L/JtUkVODD+k1+IiSJUUv8A++2qVr+Xvb3xWXETMU= From f7431d2b7786eadeac1f840809cf6b24034805ec Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 2 Mar 2025 18:51:40 +0100 Subject: [PATCH 340/401] deps: bump github.com/sethvargo/go-envconfig from 1.1.0 to 1.1.1 (#701) Bumps [github.com/sethvargo/go-envconfig](https://github.com/sethvargo/go-envconfig) from 1.1.0 to 1.1.1. - [Release notes](https://github.com/sethvargo/go-envconfig/releases) - [Commits](https://github.com/sethvargo/go-envconfig/compare/v1.1.0...v1.1.1) --- updated-dependencies: - dependency-name: github.com/sethvargo/go-envconfig dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 885fb434..c961e08a 100644 --- a/go.mod +++ b/go.mod @@ -16,7 +16,7 @@ require ( github.com/prometheus/client_model v0.6.1 github.com/prometheus/common v0.62.0 github.com/prometheus/exporter-toolkit v0.14.0 - github.com/sethvargo/go-envconfig v1.1.0 + github.com/sethvargo/go-envconfig v1.1.1 github.com/sijms/go-ora/v2 v2.8.24 github.com/snowflakedb/gosnowflake v1.13.0 github.com/vertica/vertica-sql-go v1.3.3 diff --git a/go.sum b/go.sum index 0ab69bdd..dc17d95a 100644 --- a/go.sum +++ b/go.sum @@ -195,8 +195,8 @@ github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/segmentio/asm v1.2.0 h1:9BQrFxC+YOHJlTlHGkTrFWf59nbL3XnCoFLTwDCI7ys= github.com/segmentio/asm v1.2.0/go.mod h1:BqMnlJP91P8d+4ibuonYZw9mfnzI9HfxselHZr5aAcs= -github.com/sethvargo/go-envconfig v1.1.0 h1:cWZiJxeTm7AlCvzGXrEXaSTCNgip5oJepekh/BOQuog= -github.com/sethvargo/go-envconfig v1.1.0/go.mod h1:JLd0KFWQYzyENqnEPWWZ49i4vzZo/6nRidxI8YvGiHw= +github.com/sethvargo/go-envconfig v1.1.1 h1:JDu8Q9baIzJf47NPkzhIB6aLYL0vQ+pPypoYrejS9QY= +github.com/sethvargo/go-envconfig v1.1.1/go.mod h1:JLd0KFWQYzyENqnEPWWZ49i4vzZo/6nRidxI8YvGiHw= github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k= github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME= github.com/sijms/go-ora/v2 v2.8.24 h1:TODRWjWGwJ1VlBOhbTLat+diTYe8HXq2soJeB+HMjnw= From 9f05ac1a41d99e083d1b9939c45117c5b4f730db Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 2 Mar 2025 19:13:47 +0100 Subject: [PATCH 341/401] deps: bump github.com/aws/aws-sdk-go-v2/config from 1.29.4 to 1.29.8 (#698) Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.29.4 to 1.29.8. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.29.4...config/v1.29.8) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/config dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 18 +++++++++--------- go.sum | 36 ++++++++++++++++++------------------ 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/go.mod b/go.mod index c961e08a..6149c593 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.22.0 require ( github.com/ClickHouse/clickhouse-go/v2 v2.32.2 github.com/aws/aws-sdk-go-v2 v1.36.3 - github.com/aws/aws-sdk-go-v2/config v1.29.4 + github.com/aws/aws-sdk-go-v2/config v1.29.8 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.0 github.com/go-sql-driver/mysql v1.9.0 github.com/jackc/pgx/v5 v5.7.2 @@ -40,21 +40,21 @@ require ( github.com/andybalholm/brotli v1.1.1 // indirect github.com/apache/arrow/go/v16 v16.0.0 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.57 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.27 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.61 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34 // indirect - github.com/aws/aws-sdk-go-v2/internal/ini v1.8.2 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3 // indirect github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.12 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 // indirect github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.24.14 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.13 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.33.12 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.25.0 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.29.0 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.33.16 // indirect github.com/aws/smithy-go v1.22.2 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect diff --git a/go.sum b/go.sum index dc17d95a..bb8b7532 100644 --- a/go.sum +++ b/go.sum @@ -34,40 +34,40 @@ github.com/aws/aws-sdk-go-v2 v1.36.3 h1:mJoei2CxPutQVxaATCzDUjcZEjVRdpsiiXi2o38y github.com/aws/aws-sdk-go-v2 v1.36.3/go.mod h1:LLXuLpgzEbD766Z5ECcRmi8AzSwfZItDtmABVkRLGzg= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg= -github.com/aws/aws-sdk-go-v2/config v1.29.4 h1:ObNqKsDYFGr2WxnoXKOhCvTlf3HhwtoGgc+KmZ4H5yg= -github.com/aws/aws-sdk-go-v2/config v1.29.4/go.mod h1:j2/AF7j/qxVmsNIChw1tWfsVKOayJoGRDjg1Tgq7NPk= -github.com/aws/aws-sdk-go-v2/credentials v1.17.57 h1:kFQDsbdBAR3GZsB8xA+51ptEnq9TIj3tS4MuP5b+TcQ= -github.com/aws/aws-sdk-go-v2/credentials v1.17.57/go.mod h1:2kerxPUUbTagAr/kkaHiqvj/bcYHzi2qiJS/ZinllU0= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.27 h1:7lOW8NUwE9UZekS1DYoiPdVAqZ6A+LheHWb+mHbNOq8= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.27/go.mod h1:w1BASFIPOPUae7AgaH4SbjNbfdkxuggLyGfNFTn8ITY= +github.com/aws/aws-sdk-go-v2/config v1.29.8 h1:RpwAfYcV2lr/yRc4lWhUM9JRPQqKgKWmou3LV7UfWP4= +github.com/aws/aws-sdk-go-v2/config v1.29.8/go.mod h1:t+G7Fq1OcO8cXTPPXzxQSnj/5Xzdc9jAAD3Xrn9/Mgo= +github.com/aws/aws-sdk-go-v2/credentials v1.17.61 h1:Hd/uX6Wo2iUW1JWII+rmyCD7MMhOe7ALwQXN6sKDd1o= +github.com/aws/aws-sdk-go-v2/credentials v1.17.61/go.mod h1:L7vaLkwHY1qgW0gG1zG0z/X0sQ5tpIY5iI13+j3qI80= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30 h1:x793wxmUWVDhshP8WW2mlnXuFrO4cOd3HLBroh1paFw= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30/go.mod h1:Jpne2tDnYiFascUEs2AWHJL9Yp7A5ZVy3TNyxaAjD6M= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 h1:7Zwtt/lP3KNRkeZre7soMELMGNoBrutx8nobg1jKWmo= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15/go.mod h1:436h2adoHb57yd+8W+gYPrrA9U/R/SuAuOO42Ushzhw= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34 h1:ZK5jHhnrioRkUNOc+hOgQKlUL5JeC3S6JgLxtQ+Rm0Q= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34/go.mod h1:p4VfIceZokChbA9FzMbRGz5OV+lekcVtHlPKEO0gSZY= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34 h1:SZwFm17ZUNNg5Np0ioo/gq8Mn6u9w19Mri8DnJ15Jf0= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34/go.mod h1:dFZsC0BLo346mvKQLWmoJxT+Sjp+qcVR1tRVHQGOH9Q= -github.com/aws/aws-sdk-go-v2/internal/ini v1.8.2 h1:Pg9URiobXy85kgFev3og2CuOZ8JZUBENF+dcgWBaYNk= -github.com/aws/aws-sdk-go-v2/internal/ini v1.8.2/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 h1:bIqFDwgGXXN1Kpp99pDOdKMTTb5d2KyU5X/BZxjOkRo= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3/go.mod h1:H5O/EsxDWyU+LP/V8i5sm8cxoZgc2fdNR9bxlOFrQTo= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 h1:81KE7vaZzrl7yHBYHVEzYB8sypz11NMOZ40YlWvPxsU= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5/go.mod h1:LIt2rg7Mcgn09Ygbdh/RdIm0rQ+3BNkbP1gyVMFtRK0= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2 h1:D4oz8/CzT9bAEYtVhSBmFj2dNOtaHOtMKc2vHBwYizA= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2/go.mod h1:Za3IHqTQ+yNcRHxu1OFucBh0ACZT4j4VQFF0BqpZcLY= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3 h1:eAh2A4b5IzM/lum78bZ590jy36+d/aFLgKF/4Vd1xPE= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3/go.mod h1:0yKJC/kb8sAnmlYa6Zs3QVYqaC8ug2AbnNChv5Ox3uA= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 h1:ZMeFZ5yk+Ek+jNr1+uwCd2tG89t6oTS5yVWpa6yy2es= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7/go.mod h1:mxV05U+4JiHqIpGqqYXOHLPKUC6bDXC44bsUhNjOEwY= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.12 h1:O+8vD2rGjfihBewr5bT+QUfYUHIxCVgG61LHoT59shM= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.12/go.mod h1:usVdWJaosa66NMvmCrr08NcWDBRv4E6+YFG2pUdw1Lk= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15 h1:dM9/92u2F1JbDaGooxTq18wmmFzbJRfXfVfy96/1CXM= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15/go.mod h1:SwFBy2vjtA0vZbjjaFtfN045boopadnoVPhu4Fv66vY= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 h1:f9RyWNtS8oH7cZlbn+/JNPpjUk5+5fLd5lM9M0i49Ys= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5/go.mod h1:h5CoMZV2VF297/VLhRhO1WF+XYWOzXo+4HsObA4HjBQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 h1:6cnno47Me9bRykw9AEv9zkXE+5or7jz8TsskTTccbgc= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1/go.mod h1:qmdkIIAC+GCLASF7R2whgNrJADz0QZPX+Seiw/i4S3o= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.0 h1:BRCDd+oBBOk/5VzR/rVk3Azy8o5oCCr8urNJQs191mE= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.0/go.mod h1:yGhDiLKguA3iFJYxbrQkQiNzuy+ddxesSZYWVeeEH5Q= -github.com/aws/aws-sdk-go-v2/service/sso v1.24.14 h1:c5WJ3iHz7rLIgArznb3JCSQT3uUMiz9DLZhIX+1G8ok= -github.com/aws/aws-sdk-go-v2/service/sso v1.24.14/go.mod h1:+JJQTxB6N4niArC14YNtxcQtwEqzS3o9Z32n7q33Rfs= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.13 h1:f1L/JtUkVODD+k1+IiSJUUv8A++2qVr+Xvb3xWXETMU= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.13/go.mod h1:tvqlFoja8/s0o+UruA1Nrezo/df0PzdunMDDurUfg6U= -github.com/aws/aws-sdk-go-v2/service/sts v1.33.12 h1:fqg6c1KVrc3SYWma/egWue5rKI4G2+M4wMQN2JosNAA= -github.com/aws/aws-sdk-go-v2/service/sts v1.33.12/go.mod h1:7Yn+p66q/jt38qMoVfNvjbm3D89mGBnkwDcijgtih8w= +github.com/aws/aws-sdk-go-v2/service/sso v1.25.0 h1:2U9sF8nKy7UgyEeLiZTRg6ShBS22z8UnYpV6aRFL0is= +github.com/aws/aws-sdk-go-v2/service/sso v1.25.0/go.mod h1:qs4a9T5EMLl/Cajiw2TcbNt2UNo/Hqlyp+GiuG4CFDI= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.29.0 h1:wjAdc85cXdQR5uLx5FwWvGIHm4OPJhTyzUHU8craXtE= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.29.0/go.mod h1:MlYRNmYu/fGPoxBQVvBYr9nyr948aY/WLUvwBMBJubs= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.16 h1:BHEK2Q/7CMRMCb3nySi/w8UbIcPhKvYP5s1xf8/izn0= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.16/go.mod h1:cQnB8CUnxbMU82JvlqjKR2HBOm3fe9pWorWBza6MBJ4= github.com/aws/smithy-go v1.22.2 h1:6D9hW43xKFrRx/tXXfAlIZc4JI+yQe6snnWcQyxSyLQ= github.com/aws/smithy-go v1.22.2/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= From 5bd21bb0bc14a65d2b2e883f23c9acc338ad96d7 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Mon, 10 Mar 2025 10:54:14 +0100 Subject: [PATCH 342/401] Bump up version to 0.17.1 (#703) --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index c5523bd0..7cca7711 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.17.0 +0.17.1 From 263edcb4db2f288e13f0bafc6d0a217a70c48def Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Mon, 10 Mar 2025 11:25:03 +0100 Subject: [PATCH 343/401] Bump up helm chart to 0.11.1 (#704) --- helm/Chart.yaml | 4 ++-- helm/README.md | 8 +------- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 1c02f023..34ced776 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: sql-exporter description: Database-agnostic SQL exporter for Prometheus type: application -version: 0.11.0 -appVersion: 0.17.0 +version: 0.11.1 +appVersion: 0.17.1 keywords: - exporter - servicemonitor diff --git a/helm/README.md b/helm/README.md index 1be09c8b..68b6ebf2 100644 --- a/helm/README.md +++ b/helm/README.md @@ -1,8 +1,6 @@ # sql-exporter - - -![Version: 0.11.0](https://img.shields.io/badge/Version-0.11.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.17.0](https://img.shields.io/badge/AppVersion-0.17.0-informational?style=flat-square) +![Version: 0.11.1](https://img.shields.io/badge/Version-0.11.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.17.1](https://img.shields.io/badge/AppVersion-0.17.1-informational?style=flat-square) Database-agnostic SQL exporter for Prometheus @@ -16,9 +14,6 @@ Database-agnostic SQL exporter for Prometheus | ---- | ------ | --- | | Nikolai Rodionov | | | - - - ## Installing the Chart To install the chart with the release name `sql-exporter`: @@ -91,7 +86,6 @@ as an example. | logFormat | string | `"logfmt"` | Set log format (logfmt if unset) | | reloadEnabled | bool | `false` | Enable reload collector data handler (endpoint /reload) | - ### Prometheus ServiceMonitor | Key | Type | Default | Description | From 364c3d444eddec7729f8d63510619e6678508cb6 Mon Sep 17 00:00:00 2001 From: Jonathan Tougas Date: Wed, 12 Mar 2025 20:30:14 -0400 Subject: [PATCH 344/401] docs: add example configuration for PostgreSQL 16 (#705) Add examples/postgres-16.yml --- examples/postgres-16.yml | 787 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 787 insertions(+) create mode 100644 examples/postgres-16.yml diff --git a/examples/postgres-16.yml b/examples/postgres-16.yml new file mode 100644 index 00000000..54b985d3 --- /dev/null +++ b/examples/postgres-16.yml @@ -0,0 +1,787 @@ +# This example contains two collectors, one to collect server metrics, and a second to collect database level metrics. +# All metrics are prefixed accoring to which collector they originate from "pg_db_" or "pg_server_". +# Many of these have been copied from https://github.com/prometheus-community/postgres_exporter +jobs: + - job_name: database + collectors: [database] + static_configs: + - targets: + foo: 'postgresql://postgres@/var/run/postgresql/foo?sslmode=disable' + bar: 'postgresql://postgres@/var/run/postgresql/bar?sslmode=disable' + - job_name: server + collectors: [server] + static_configs: + - targets: + server: 'postgresql://postgres@/var/run/postgresql?sslmode=disable' + +collectors: + - collector_name: database + metrics: + - metric_name: pg_db_stat_user_tables_seq_scan + type: counter + help: 'Number of sequential scans initiated on this table' + key_labels: + - relname + values: + - seq_scan + query_ref: _db_pg_stat_user_tables + + - metric_name: pg_db_stat_user_tables_seq_tup_read + type: counter + help: 'Number of live rows fetched by sequential scans' + key_labels: + - relname + values: + - seq_tup_read + query_ref: _db_pg_stat_user_tables + + - metric_name: pg_db_stat_user_tables_idx_scan + type: counter + help: 'Number of index scans initiated on this table' + key_labels: + - relname + values: + - idx_scan + query_ref: _db_pg_stat_user_tables + + - metric_name: pg_db_stat_user_tables_idx_tup_fetch + type: counter + help: 'Number of live rows fetched by index scans' + key_labels: + - relname + values: + - idx_tup_fetch + query_ref: _db_pg_stat_user_tables + + - metric_name: pg_db_stat_user_tables_n_tup_ins + type: counter + help: 'Total number of rows inserted' + key_labels: + - relname + values: + - n_tup_ins + query_ref: _db_pg_stat_user_tables + + - metric_name: pg_db_stat_user_tables_n_tup_upd + type: counter + help: 'Total number of rows updated. (This includes row updates counted in n_tup_hot_upd and n_tup_newpage_upd, and remaining non-HOT updates.)' + key_labels: + - relname + values: + - n_tup_upd + query_ref: _db_pg_stat_user_tables + + - metric_name: pg_db_stat_user_tables_n_tup_del + type: counter + help: 'Total number of rows deleted' + key_labels: + - relname + values: + - n_tup_del + query_ref: _db_pg_stat_user_tables + + - metric_name: pg_db_stat_user_tables_n_tup_hot_upd + type: counter + help: 'Number of rows HOT updated. These are updates where no successor versions are required in indexes.' + key_labels: + - relname + values: + - n_tup_hot_upd + query_ref: _db_pg_stat_user_tables + + - metric_name: pg_db_stat_user_tables_n_live_tup + type: gauge + help: 'Estimated number of live rows' + key_labels: + - relname + values: + - n_live_tup + query_ref: _db_pg_stat_user_tables + + - metric_name: pg_db_stat_user_tables_n_dead_tup + type: gauge + help: 'Estimated number of dead rows' + key_labels: + - relname + values: + - n_dead_tup + query_ref: _db_pg_stat_user_tables + + - metric_name: pg_db_stat_user_tables_n_mod_since_analyze + type: counter + help: 'Estimated number of rows modified since this table was last analyzed' + key_labels: + - relname + values: + - n_mod_since_analyze + query_ref: _db_pg_stat_user_tables + + - metric_name: pg_db_stat_user_tables_n_ins_since_vacuum + type: counter + help: 'Estimated number of rows inserted since this table was last vacuumed' + key_labels: + - relname + values: + - n_ins_since_vacuum + query_ref: _db_pg_stat_user_tables + + - metric_name: pg_db_stat_user_tables_last_vacuum + type: gauge + help: 'Last time at which this table was manually vacuumed (not counting VACUUM FULL)' + key_labels: + - relname + values: + - last_vacuum + query_ref: _db_pg_stat_user_tables + + - metric_name: pg_db_stat_user_tables_last_autovacuum + type: gauge + help: 'Last time at which this table was vacuumed by the autovacuum daemon' + key_labels: + - relname + values: + - last_autovacuum + query_ref: _db_pg_stat_user_tables + + - metric_name: pg_db_stat_user_tables_last_analyze + type: gauge + help: 'Last time at which this table was manually analyzed' + key_labels: + - relname + values: + - last_analyze + query_ref: _db_pg_stat_user_tables + + - metric_name: pg_db_stat_user_tables_last_autoanalyze + type: gauge + help: 'Last time at which this table was analyzed by the autovacuum daemon' + key_labels: + - relname + values: + - last_autoanalyze + query_ref: _db_pg_stat_user_tables + + - metric_name: pg_db_stat_user_tables_vacuum_count + type: counter + help: 'Number of times this table has been manually vacuumed (not counting VACUUM FULL)' + key_labels: + - relname + values: + - vacuum_count + query_ref: _db_pg_stat_user_tables + + - metric_name: pg_db_stat_user_tables_autovacuum_count + type: counter + help: 'Number of times this table has been vacuumed by the autovacuum daemon' + key_labels: + - relname + values: + - autovacuum_count + query_ref: _db_pg_stat_user_tables + + - metric_name: pg_db_stat_user_tables_analyze_count + type: counter + help: 'Number of times this table has been manually analyzed' + key_labels: + - relname + values: + - analyze_count + query_ref: _db_pg_stat_user_tables + + - metric_name: pg_db_stat_user_tables_autoanalyze_count + type: counter + help: 'Number of times this table has been analyzed by the autovacuum daemon' + key_labels: + - relname + values: + - autoanalyze_count + query_ref: _db_pg_stat_user_tables + + - metric_name: pg_db_stat_user_tables_size_bytes + type: gauge + help: 'Total disk space used by the table, including all indexes and TOAST data. The result is equivalent to pg_table_size + pg_indexes_size.' + key_labels: + - relname + values: + - total_size + query_ref: _db_pg_stat_user_tables + + - metric_name: pg_db_stat_activity_transactions + type: gauge + help: 'Number of transactions currently in progress' + values: + - transactions + query_ref: _db_pg_stat_activity + + - metric_name: pg_db_stat_activity_oldest_timestamp_seconds + type: gauge + help: 'Age of the oldest transaction in seconds' + values: + - oldest_timestamp_seconds + query_ref: _db_pg_stat_activity + + - metric_name: pg_db_statio_user_indexes_idx_blks_read + type: counter + help: 'Number of disk blocks read from this index' + key_labels: + - relname + - indexrelname + values: + - idx_blks_read + query_ref: _db_pg_statio_user_indexes + + - metric_name: pg_db_statio_user_indexes_idx_blks_hit + type: counter + help: 'Number of buffer hits in this index' + key_labels: + - relname + - indexrelname + values: + - idx_blks_hit + query_ref: _db_pg_statio_user_indexes + + - metric_name: pg_db_statio_user_tables_heap_blks_read + type: counter + help: 'Number of disk blocks read from this table' + key_labels: + - relname + values: + - heap_blks_read + query_ref: _db_pg_statio_user_tables + + - metric_name: pg_db_statio_user_tables_heap_blks_hit + type: counter + help: 'Number of buffer hits in this table' + key_labels: + - relname + values: + - heap_blks_hit + query_ref: _db_pg_statio_user_tables + + - metric_name: pg_db_statio_user_tables_idx_blks_read + type: counter + help: 'Number of disk blocks read from all indexes on this table' + key_labels: + - relname + values: + - idx_blks_read + query_ref: _db_pg_statio_user_tables + + - metric_name: pg_db_statio_user_tables_idx_blks_hit + type: counter + help: 'Number of buffer hits in all indexes on this table' + key_labels: + - relname + values: + - idx_blks_hit + query_ref: _db_pg_statio_user_tables + + - metric_name: pg_db_statio_user_tables_toast_blks_read + type: counter + help: 'Number of disk blocks read from this table''s TOAST table (if any)' + key_labels: + - relname + values: + - toast_blks_read + query_ref: _db_pg_statio_user_tables + + - metric_name: pg_db_statio_user_tables_toast_blks_hit + type: counter + help: 'Number of buffer hits in this table''s TOAST table (if any)' + key_labels: + - relname + values: + - toast_blks_hit + query_ref: _db_pg_statio_user_tables + + - metric_name: pg_db_statio_user_tables_tidx_blks_read + type: counter + help: 'Number of disk blocks read from this table''s TOAST table indexes (if any)' + key_labels: + - relname + values: + - tidx_blks_read + query_ref: _db_pg_statio_user_tables + + - metric_name: pg_db_statio_user_tables_tidx_blks_hit + type: counter + help: 'Number of buffer hits in this table''s TOAST table indexes (if any)' + key_labels: + - relname + values: + - tidx_blks_hit + query_ref: _db_pg_statio_user_tables + + - metric_name: pg_db_size_bytes + help: 'Disk space used by the database' + type: gauge + values: + - size + query_ref: _db_pg_database_size + + queries: + - query_name: _db_pg_database_size + query: | + select pg_database_size(current_database()) as size + - query_name: _db_pg_stat_user_tables + query: | + SELECT + relname, + + COALESCE(seq_scan,0) as seq_scan, + COALESCE(seq_tup_read,0) as seq_tup_read, + + COALESCE(idx_scan,0) as idx_scan, + COALESCE(idx_tup_fetch,0) as idx_tup_fetch, + + COALESCE(n_tup_ins,0) as n_tup_ins, + COALESCE(n_tup_upd,0) as n_tup_upd, + COALESCE(n_tup_del,0) as n_tup_del, + COALESCE(n_tup_hot_upd,0) as n_tup_hot_upd, + + COALESCE(n_live_tup,0) as n_live_tup, + COALESCE(n_dead_tup,0) as n_dead_tup, + + COALESCE(n_mod_since_analyze,0) as n_mod_since_analyze, + COALESCE(n_ins_since_vacuum,0) as n_ins_since_vacuum, + + COALESCE(EXTRACT(EPOCH FROM last_vacuum), 0) as last_vacuum, + COALESCE(EXTRACT(EPOCH FROM last_autovacuum), 0) as last_autovacuum, + COALESCE(EXTRACT(EPOCH FROM last_analyze), 0) as last_analyze, + COALESCE(EXTRACT(EPOCH FROM last_autoanalyze), 0) as last_autoanalyze, + + COALESCE(vacuum_count,0) as vacuum_count, + COALESCE(autovacuum_count,0) as autovacuum_count, + COALESCE(analyze_count,0) as analyze_count, + COALESCE(autoanalyze_count,0) as autoanalyze_count, + + pg_total_relation_size(relid) as total_size + FROM + pg_stat_user_tables + + - query_name: _db_pg_stat_activity + query: | + SELECT + COUNT(*) as transactions, + MAX(EXTRACT(EPOCH FROM clock_timestamp() - pg_stat_activity.xact_start)) AS oldest_timestamp_seconds + FROM pg_stat_activity + WHERE state IS DISTINCT FROM 'idle' + AND query NOT LIKE 'autovacuum:%' + AND pg_stat_activity.xact_start IS NOT NULL; + + - query_name: _db_pg_statio_user_indexes + query: | + SELECT + relname, + indexrelname, + idx_blks_read, + idx_blks_hit + FROM pg_statio_user_indexes + + - query_name: _db_pg_statio_user_tables + query: | + SELECT + relname, + -- Number of disk blocks read from this table + coalesce(heap_blks_read,0) as heap_blks_read, + -- Number of buffer hits in this table + coalesce(heap_blks_hit,0) as heap_blks_hit, + -- Number of disk blocks read from all indexes on this table + coalesce(idx_blks_read,0) as idx_blks_read, + -- Number of buffer hits in all indexes on this table + coalesce(idx_blks_hit,0) as idx_blks_hit, + -- Number of disk blocks read from this table's TOAST table (if any) + coalesce(toast_blks_read, 0) as toast_blks_read, + -- Number of buffer hits in this table's TOAST table (if any) + coalesce(toast_blks_hit, 0) as toast_blks_hit, + -- Number of disk blocks read from this table's TOAST table indexes (if any) + coalesce(tidx_blks_read, 0) as tidx_blks_read, + -- Number of buffer hits in this table's TOAST table indexes (if any) + coalesce(tidx_blks_hit, 0) as tidx_blks_hit + FROM pg_statio_user_tables + + - collector_name: server + metrics: + + - metric_name: pg_server_wal_segments + type: gauge + help: 'Number of segments in the WAL directory' + values: + - segments + query_ref: _srv_pg_ls_waldir + + - metric_name: pg_server_wal_size_bytes + type: gauge + help: 'Size of the WAL directory' + values: + - size + query_ref: _srv_pg_ls_waldir + + - metric_name: pg_server_stat_bgwriter_checkpoints_timed + type: counter + help: 'Number of scheduled checkpoints that have been performed' + values: + - checkpoints_timed + query_ref: _srv_bgwriter + + - metric_name: pg_server_stat_bgwriter_checkpoints_req + type: counter + help: 'Number of requested checkpoints that have been performed' + values: + - checkpoints_req + query_ref: _srv_bgwriter + + - metric_name: pg_server_stat_bgwriter_checkpoint_write_time + type: counter + help: 'Total amount of time that has been spent in the portion of checkpoint processing where files are written to disk, in milliseconds' + values: + - checkpoint_write_time + query_ref: _srv_bgwriter + + - metric_name: pg_server_stat_bgwriter_checkpoint_sync_time + type: counter + help: 'Total amount of time that has been spent in the portion of checkpoint processing where files are synchronized to disk, in milliseconds' + values: + - checkpoint_sync_time + query_ref: _srv_bgwriter + + - metric_name: pg_server_stat_bgwriter_buffers_checkpoint + type: counter + help: 'Number of buffers written during checkpoints' + values: + - buffers_checkpoint + query_ref: _srv_bgwriter + + - metric_name: pg_server_stat_bgwriter_buffers_clean + type: counter + help: 'Number of buffers written by the background writer' + values: + - buffers_clean + query_ref: _srv_bgwriter + + - metric_name: pg_server_stat_bgwriter_maxwritten_clean + type: counter + help: 'Number of times the background writer stopped a cleaning scan because it had written too many buffers' + values: + - maxwritten_clean + query_ref: _srv_bgwriter + + - metric_name: pg_server_stat_bgwriter_buffers_backend + type: counter + help: 'Number of buffers written directly by a backend' + values: + - buffers_backend + query_ref: _srv_bgwriter + + - metric_name: pg_server_stat_bgwriter_buffers_backend_fsync + type: counter + help: 'Number of times a backend had to execute its own fsync call (normally the background writer handles those even when the backend does its own write)' + values: + - buffers_backend_fsync + query_ref: _srv_bgwriter + + - metric_name: pg_server_stat_bgwriter_buffers_alloc + type: counter + help: 'Number of buffers allocated' + values: + - buffers_alloc + query_ref: _srv_bgwriter + + - metric_name: pg_server_stat_database_numbackends + type: gauge + help: 'Number of backends currently connected to this database' + key_labels: + - datname + values: + - numbackends + query_ref: _srv_pg_stat_database + + - metric_name: pg_server_stat_database_xact_commit + type: counter + help: 'Number of transactions in this database that have been committed' + key_labels: + - datname + values: + - xact_commit + query_ref: _srv_pg_stat_database + + - metric_name: pg_server_stat_database_xact_rollback + type: counter + help: 'Number of transactions in this database that have been rolled back' + key_labels: + - datname + values: + - xact_rollback + query_ref: _srv_pg_stat_database + + - metric_name: pg_server_stat_database_blks_read + type: counter + help: 'Number of disk blocks read in this database' + key_labels: + - datname + values: + - blks_read + query_ref: _srv_pg_stat_database + + - metric_name: pg_server_stat_database_blks_hit + type: counter + help: 'Number of times disk blocks were found already in the buffer cache' + key_labels: + - datname + values: + - blks_hit + query_ref: _srv_pg_stat_database + + - metric_name: pg_server_stat_database_tup_returned + type: counter + help: 'Number of live rows fetched by sequential scans and index entries returned by index scans in this database' + key_labels: + - datname + values: + - tup_returned + query_ref: _srv_pg_stat_database + + - metric_name: pg_server_stat_database_tup_fetched + type: counter + help: 'Number of live rows fetched by index scans in this database' + key_labels: + - datname + values: + - tup_fetched + query_ref: _srv_pg_stat_database + + - metric_name: pg_server_stat_database_tup_inserted + type: counter + help: 'Number of rows inserted by queries in this database' + key_labels: + - datname + values: + - tup_inserted + query_ref: _srv_pg_stat_database + + - metric_name: pg_server_stat_database_tup_updated + type: counter + help: 'Number of rows updated by queries in this database' + key_labels: + - datname + values: + - tup_updated + query_ref: _srv_pg_stat_database + + - metric_name: pg_server_stat_database_tup_deleted + type: counter + help: 'Number of rows deleted by queries in this database' + key_labels: + - datname + values: + - tup_deleted + query_ref: _srv_pg_stat_database + + - metric_name: pg_server_stat_database_temp_files + type: counter + help: 'Number of temporary files created by queries in this database' + key_labels: + - datname + values: + - temp_files + query_ref: _srv_pg_stat_database + + - metric_name: pg_server_stat_database_temp_bytes + type: counter + help: 'Total amount of data written to temporary files by queries in this database' + key_labels: + - datname + values: + - temp_bytes + query_ref: _srv_pg_stat_database + + - metric_name: pg_server_stat_database_deadlocks + type: counter + help: 'Number of deadlocks detected in this database' + key_labels: + - datname + values: + - deadlocks + query_ref: _srv_pg_stat_database + + - metric_name: pg_server_stat_database_blk_read_time + type: counter + help: 'Time spent reading data file blocks by backends in this database, in milliseconds' + key_labels: + - datname + values: + - blk_read_time + query_ref: _srv_pg_stat_database + + - metric_name: pg_server_stat_database_blk_write_time + type: counter + help: 'Time spent writing data file blocks by backends in this database, in milliseconds' + key_labels: + - datname + values: + - blk_write_time + query_ref: _srv_pg_stat_database + + - metric_name: pg_server_stat_database_session_time + type: counter + help: 'Time spent by database sessions in this database, in milliseconds' + key_labels: + - datname + values: + - session_time + query_ref: _srv_pg_stat_database + + - metric_name: pg_server_stat_database_active_time + type: counter + help: 'Time spent executing SQL statements in this database, in milliseconds' + key_labels: + - datname + values: + - active_time + query_ref: _srv_pg_stat_database + + - metric_name: pg_server_stat_database_idle_in_transaction_time + type: counter + help: 'Time spent idling while in a transaction in this database, in milliseconds' + key_labels: + - datname + values: + - idle_in_transaction_time + query_ref: _srv_pg_stat_database + + - metric_name: pg_server_stat_database_sessions + type: gauge + help: 'Total number of sessions established to this database' + key_labels: + - datname + values: + - sessions + query_ref: _srv_pg_stat_database + + - metric_name: pg_server_stat_database_sessions_abandoned + type: counter + help: 'Number of database sessions to this database that were terminated because connection to the client was lost' + key_labels: + - datname + values: + - sessions_abandoned + query_ref: _srv_pg_stat_database + + - metric_name: pg_server_stat_database_sessions_fatal + type: counter + help: 'Number of database sessions to this database that were terminated by fatal errors' + key_labels: + - datname + values: + - sessions_fatal + query_ref: _srv_pg_stat_database + + - metric_name: pg_server_stat_database_sessions_killed + type: counter + help: 'Number of database sessions to this database that were terminated by operator intervention' + key_labels: + - datname + values: + - sessions_killed + query_ref: _srv_pg_stat_database + + - metric_name: pg_server_locks + type: gauge + help: 'Number of locks held in this database' + key_labels: + - datname + - mode + values: + - count + query_ref: _srv_pg_locks + + queries: + - query_name: _srv_pg_locks + query: | + SELECT + pg_database.datname as datname, + -- Name of the lock mode + tmp.mode as mode, + COALESCE(count, 0) as count + FROM + ( + VALUES + ('accesssharelock'), + ('rowsharelock'), + ('rowexclusivelock'), + ('shareupdateexclusivelock'), + ('sharelock'), + ('sharerowexclusivelock'), + ('exclusivelock'), + ('accessexclusivelock'), + ('sireadlock') + ) AS tmp(mode) + CROSS JOIN pg_database + LEFT JOIN ( + SELECT + database, + lower(mode) AS mode, + count(*) AS count + FROM + pg_locks + WHERE + database IS NOT NULL + GROUP BY + database, + lower(mode) + ) AS tmp2 ON tmp.mode = tmp2.mode + and pg_database.oid = tmp2.database + + - query_name: _srv_bgwriter + query: | + SELECT + /* The following 5 are moved to pg_stat_checkpointer in postgres 17 */ + + checkpoints_timed + ,checkpoints_req + ,checkpoint_write_time + ,checkpoint_sync_time + ,buffers_checkpoint + + ,buffers_clean + ,maxwritten_clean + ,buffers_backend + ,buffers_backend_fsync + ,buffers_alloc + FROM pg_stat_bgwriter; + + - query_name: _srv_pg_stat_database + query: | + SELECT + COALESCE(datname, 'shared-objects') as datname, + COALESCE(numbackends, 0) as numbackends, + xact_commit, + xact_rollback, + blks_read, + blks_hit, + tup_returned, + tup_fetched, + tup_inserted, + tup_updated, + tup_deleted, + temp_files, + temp_bytes, + deadlocks, + blk_read_time, + blk_write_time, + session_time, + active_time, + idle_in_transaction_time, + sessions, + sessions_abandoned, + sessions_fatal, + sessions_killed + FROM pg_stat_database + + - query_name: _srv_pg_ls_waldir + query: | + SELECT + COUNT(*) AS segments, + SUM(size) AS size + FROM pg_ls_waldir() + From b2a873015d9cef9a14fc089d5b38d4089273aa5f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Mar 2025 13:27:47 +0100 Subject: [PATCH 345/401] deps: bump golang.org/x/net from 0.35.0 to 0.36.0 (#706) * deps: bump golang.org/x/net from 0.35.0 to 0.36.0 Bumps [golang.org/x/net](https://github.com/golang/net) from 0.35.0 to 0.36.0. - [Commits](https://github.com/golang/net/compare/v0.35.0...v0.36.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: indirect ... Signed-off-by: dependabot[bot] * fix: go mod tidy --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Sergei Zyubin --- go.mod | 8 +++++--- go.sum | 8 ++++---- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index 6149c593..f19c1bee 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,8 @@ module github.com/burningalchemist/sql_exporter -go 1.22.0 +go 1.23.0 + +toolchain go1.24.1 require ( github.com/ClickHouse/clickhouse-go/v2 v2.32.2 @@ -100,10 +102,10 @@ require ( github.com/zeebo/xxh3 v1.0.2 // indirect go.opentelemetry.io/otel v1.34.0 // indirect go.opentelemetry.io/otel/trace v1.34.0 // indirect - golang.org/x/crypto v0.33.0 // indirect + golang.org/x/crypto v0.35.0 // indirect golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 // indirect golang.org/x/mod v0.23.0 // indirect - golang.org/x/net v0.35.0 // indirect + golang.org/x/net v0.36.0 // indirect golang.org/x/oauth2 v0.24.0 // indirect golang.org/x/sync v0.11.0 // indirect golang.org/x/sys v0.30.0 // indirect diff --git a/go.sum b/go.sum index bb8b7532..5b3c41fd 100644 --- a/go.sum +++ b/go.sum @@ -239,8 +239,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.33.0 h1:IOBPskki6Lysi0lo9qQvbxiQ+FvsCC/YWOecCHAixus= -golang.org/x/crypto v0.33.0/go.mod h1:bVdXmD7IV/4GdElGPozy6U7lWdRXA4qyRVGJV57uQ5M= +golang.org/x/crypto v0.35.0 h1:b15kiHdrGCHrP6LvwaQ3c03kgNhhiMgvlhxHQhmg2Xs= +golang.org/x/crypto v0.35.0/go.mod h1:dy7dXNW32cAb/6/PRuTNsix8T+vJAqvuIy5Bli/x0YQ= golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 h1:LfspQV/FYTatPTr/3HzIcmiUFH7PGP+OQ6mgDYo3yuQ= golang.org/x/exp v0.0.0-20240222234643-814bf88cf225/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -252,8 +252,8 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.35.0 h1:T5GQRQb2y08kTAByq9L4/bz8cipCdA8FbRTXewonqY8= -golang.org/x/net v0.35.0/go.mod h1:EglIi67kWsHKlRzzVMUD93VMSWGFOMSZgxFjparz1Qk= +golang.org/x/net v0.36.0 h1:vWF2fRbw4qslQsQzgFqZff+BItCvGFQqKzKIzx1rmoA= +golang.org/x/net v0.36.0/go.mod h1:bFmbeoIPfrw4sMHNhb4J9f6+tPziuGjq7Jk/38fxi1I= golang.org/x/oauth2 v0.24.0 h1:KTBBxWqUa0ykRPLtV69rRto9TLXcqYkeswu48x/gvNE= golang.org/x/oauth2 v0.24.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= From a59d8425a66bb715310bd471c29fd713eb15e6ce Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Apr 2025 11:37:37 +0200 Subject: [PATCH 346/401] deps: bump github.com/golang-jwt/jwt/v5 from 5.2.1 to 5.2.2 (#709) Bumps [github.com/golang-jwt/jwt/v5](https://github.com/golang-jwt/jwt) from 5.2.1 to 5.2.2. - [Release notes](https://github.com/golang-jwt/jwt/releases) - [Changelog](https://github.com/golang-jwt/jwt/blob/main/VERSION_HISTORY.md) - [Commits](https://github.com/golang-jwt/jwt/compare/v5.2.1...v5.2.2) --- updated-dependencies: - dependency-name: github.com/golang-jwt/jwt/v5 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index f19c1bee..827dfdb3 100644 --- a/go.mod +++ b/go.mod @@ -71,7 +71,7 @@ require ( github.com/go-faster/errors v0.7.1 // indirect github.com/goccy/go-json v0.10.2 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect - github.com/golang-jwt/jwt/v5 v5.2.1 // indirect + github.com/golang-jwt/jwt/v5 v5.2.2 // indirect github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 // indirect github.com/golang-sql/sqlexp v0.1.0 // indirect github.com/google/flatbuffers v24.3.25+incompatible // indirect diff --git a/go.sum b/go.sum index 5b3c41fd..ee0be009 100644 --- a/go.sum +++ b/go.sum @@ -102,8 +102,8 @@ github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+ github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= -github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= +github.com/golang-jwt/jwt/v5 v5.2.2 h1:Rl4B7itRWVtYIHFrSNd7vhTiz9UpLdi6gZhZ3wEeDy8= +github.com/golang-jwt/jwt/v5 v5.2.2/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA= github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A= From 3b725c111b052886e94bc08968c2fa7818d8aa13 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Apr 2025 11:37:52 +0200 Subject: [PATCH 347/401] deps: bump github.com/ClickHouse/clickhouse-go/v2 from 2.32.2 to 2.34.0 (#713) Bumps [github.com/ClickHouse/clickhouse-go/v2](https://github.com/ClickHouse/clickhouse-go) from 2.32.2 to 2.34.0. - [Release notes](https://github.com/ClickHouse/clickhouse-go/releases) - [Changelog](https://github.com/ClickHouse/clickhouse-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/ClickHouse/clickhouse-go/compare/v2.32.2...v2.34.0) --- updated-dependencies: - dependency-name: github.com/ClickHouse/clickhouse-go/v2 dependency-version: 2.34.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 16 ++++++++-------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/go.mod b/go.mod index 827dfdb3..a184d17f 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.23.0 toolchain go1.24.1 require ( - github.com/ClickHouse/clickhouse-go/v2 v2.32.2 + github.com/ClickHouse/clickhouse-go/v2 v2.34.0 github.com/aws/aws-sdk-go-v2 v1.36.3 github.com/aws/aws-sdk-go-v2/config v1.29.8 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.0 @@ -100,8 +100,8 @@ require ( github.com/shopspring/decimal v1.4.0 // indirect github.com/sirupsen/logrus v1.9.3 // indirect github.com/zeebo/xxh3 v1.0.2 // indirect - go.opentelemetry.io/otel v1.34.0 // indirect - go.opentelemetry.io/otel/trace v1.34.0 // indirect + go.opentelemetry.io/otel v1.35.0 // indirect + go.opentelemetry.io/otel/trace v1.35.0 // indirect golang.org/x/crypto v0.35.0 // indirect golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 // indirect golang.org/x/mod v0.23.0 // indirect diff --git a/go.sum b/go.sum index ee0be009..76deef82 100644 --- a/go.sum +++ b/go.sum @@ -22,8 +22,8 @@ github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0 github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/ClickHouse/ch-go v0.65.1 h1:SLuxmLl5Mjj44/XbINsK2HFvzqup0s6rwKLFH347ZhU= github.com/ClickHouse/ch-go v0.65.1/go.mod h1:bsodgURwmrkvkBe5jw1qnGDgyITsYErfONKAHn05nv4= -github.com/ClickHouse/clickhouse-go/v2 v2.32.2 h1:Y8fAXt0CpLhqNXMLlSddg+cMfAr7zHBWqXLpih6ozCY= -github.com/ClickHouse/clickhouse-go/v2 v2.32.2/go.mod h1:/vE8N/+9pozLkIiTMWbNUGviccDv/czEGS1KACvpXIk= +github.com/ClickHouse/clickhouse-go/v2 v2.34.0 h1:Y4rqkdrRHgExvC4o/NTbLdY5LFQ3LHS77/RNFxFX3Co= +github.com/ClickHouse/clickhouse-go/v2 v2.34.0/go.mod h1:yioSINoRLVZkLyDzdMXPLRIqhDvel8iLBlwh6Iefso8= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c h1:RGWPOewvKIROun94nF7v2cua9qP+thov/7M50KEoeSU= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA= @@ -114,8 +114,8 @@ github.com/google/flatbuffers v24.3.25+incompatible h1:CX395cjN9Kke9mmalRoL3d81A github.com/google/flatbuffers v24.3.25+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= -github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c h1:6rhixN/i8ZofjG1Y75iExal34USq5p+wiN1tpie8IrU= @@ -231,10 +231,10 @@ github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= go.mongodb.org/mongo-driver v1.11.4/go.mod h1:PTSz5yu21bkT/wXpkS7WR5f0ddqw5quethTUn9WM+2g= -go.opentelemetry.io/otel v1.34.0 h1:zRLXxLCgL1WyKsPVrgbSdMN4c0FMkDAskSTQP+0hdUY= -go.opentelemetry.io/otel v1.34.0/go.mod h1:OWFPOQ+h4G8xpyjgqo4SxJYdDQ/qmRH+wivy7zzx9oI= -go.opentelemetry.io/otel/trace v1.34.0 h1:+ouXS2V8Rd4hp4580a8q23bg0azF2nI8cqLYnC8mh/k= -go.opentelemetry.io/otel/trace v1.34.0/go.mod h1:Svm7lSjQD7kG7KJ/MUHPVXSDGz2OX4h0M2jHBhmSfRE= +go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ= +go.opentelemetry.io/otel v1.35.0/go.mod h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y= +go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs= +go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= From 6de87ad04f6d9e00bd33c4e7b6f0b6cf3aee01b9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Apr 2025 11:38:13 +0200 Subject: [PATCH 348/401] deps: bump github.com/xo/dburl from 0.23.3 to 0.23.4 (#712) Bumps [github.com/xo/dburl](https://github.com/xo/dburl) from 0.23.3 to 0.23.4. - [Release notes](https://github.com/xo/dburl/releases) - [Commits](https://github.com/xo/dburl/compare/v0.23.3...v0.23.4) --- updated-dependencies: - dependency-name: github.com/xo/dburl dependency-version: 0.23.4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index a184d17f..449def47 100644 --- a/go.mod +++ b/go.mod @@ -22,7 +22,7 @@ require ( github.com/sijms/go-ora/v2 v2.8.24 github.com/snowflakedb/gosnowflake v1.13.0 github.com/vertica/vertica-sql-go v1.3.3 - github.com/xo/dburl v0.23.3 + github.com/xo/dburl v0.23.4 google.golang.org/protobuf v1.36.5 gopkg.in/yaml.v3 v3.0.1 ) diff --git a/go.sum b/go.sum index 76deef82..1140bde7 100644 --- a/go.sum +++ b/go.sum @@ -219,8 +219,8 @@ github.com/vertica/vertica-sql-go v1.3.3/go.mod h1:jnn2GFuv+O2Jcjktb7zyc4Utlbu9Y github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= -github.com/xo/dburl v0.23.3 h1:s9tUyKAkcgRfNQ7ut5gaDWC9s5ROafY3hmNOrGbNXtE= -github.com/xo/dburl v0.23.3/go.mod h1:uazlaAQxj4gkshhfuuYyvwCBouOmNnG2aDxTCFZpmL4= +github.com/xo/dburl v0.23.4 h1:VLI0JT+w95uDiGhCYqbuLTM3gkfg5ODiSoegiEZpcVg= +github.com/xo/dburl v0.23.4/go.mod h1:uazlaAQxj4gkshhfuuYyvwCBouOmNnG2aDxTCFZpmL4= github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU= github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E= github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= From 7fc9ab09421919d73cb60b9d27714c5e3575ef8d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Apr 2025 11:38:44 +0200 Subject: [PATCH 349/401] deps: bump github.com/prometheus/client_golang from 1.21.0 to 1.21.1 (#711) Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.21.0 to 1.21.1. - [Release notes](https://github.com/prometheus/client_golang/releases) - [Changelog](https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md) - [Commits](https://github.com/prometheus/client_golang/compare/v1.21.0...v1.21.1) --- updated-dependencies: - dependency-name: github.com/prometheus/client_golang dependency-version: 1.21.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 449def47..f5c2faf2 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.9 github.com/microsoft/go-mssqldb v1.8.0 - github.com/prometheus/client_golang v1.21.0 + github.com/prometheus/client_golang v1.21.1 github.com/prometheus/client_model v0.6.1 github.com/prometheus/common v0.62.0 github.com/prometheus/exporter-toolkit v0.14.0 diff --git a/go.sum b/go.sum index 1140bde7..66ee0173 100644 --- a/go.sum +++ b/go.sum @@ -180,8 +180,8 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.21.0 h1:DIsaGmiaBkSangBgMtWdNfxbMNdku5IK6iNhrEqWvdA= -github.com/prometheus/client_golang v1.21.0/go.mod h1:U9NM32ykUErtVBxdvD3zfi+EuFkkaBvMb09mIfe0Zgg= +github.com/prometheus/client_golang v1.21.1 h1:DOvXXTqVzvkIewV/CDPFdejpMCGeMcbGCQ8YOmu+Ibk= +github.com/prometheus/client_golang v1.21.1/go.mod h1:U9NM32ykUErtVBxdvD3zfi+EuFkkaBvMb09mIfe0Zgg= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io= From 04b14bc8310154e098ca7e36b9e69e377bfe4fa7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Apr 2025 11:48:51 +0200 Subject: [PATCH 350/401] deps: bump github.com/xo/dburl from 0.23.4 to 0.23.6 (#720) Bumps [github.com/xo/dburl](https://github.com/xo/dburl) from 0.23.4 to 0.23.6. - [Release notes](https://github.com/xo/dburl/releases) - [Commits](https://github.com/xo/dburl/compare/v0.23.4...v0.23.6) --- updated-dependencies: - dependency-name: github.com/xo/dburl dependency-version: 0.23.6 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index f5c2faf2..90786e8b 100644 --- a/go.mod +++ b/go.mod @@ -22,7 +22,7 @@ require ( github.com/sijms/go-ora/v2 v2.8.24 github.com/snowflakedb/gosnowflake v1.13.0 github.com/vertica/vertica-sql-go v1.3.3 - github.com/xo/dburl v0.23.4 + github.com/xo/dburl v0.23.6 google.golang.org/protobuf v1.36.5 gopkg.in/yaml.v3 v3.0.1 ) diff --git a/go.sum b/go.sum index 66ee0173..bda0c413 100644 --- a/go.sum +++ b/go.sum @@ -219,8 +219,8 @@ github.com/vertica/vertica-sql-go v1.3.3/go.mod h1:jnn2GFuv+O2Jcjktb7zyc4Utlbu9Y github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= -github.com/xo/dburl v0.23.4 h1:VLI0JT+w95uDiGhCYqbuLTM3gkfg5ODiSoegiEZpcVg= -github.com/xo/dburl v0.23.4/go.mod h1:uazlaAQxj4gkshhfuuYyvwCBouOmNnG2aDxTCFZpmL4= +github.com/xo/dburl v0.23.6 h1:/k5cN6NO+d0i+QMZyAn4UCn7q0LxzqCzPzF9esf3dT4= +github.com/xo/dburl v0.23.6/go.mod h1:uazlaAQxj4gkshhfuuYyvwCBouOmNnG2aDxTCFZpmL4= github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU= github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E= github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= From 388548a17fa76ce58e55e7e2e07e901374d7fdb8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Apr 2025 11:49:22 +0200 Subject: [PATCH 351/401] deps: bump github.com/go-sql-driver/mysql from 1.9.0 to 1.9.2 (#716) Bumps [github.com/go-sql-driver/mysql](https://github.com/go-sql-driver/mysql) from 1.9.0 to 1.9.2. - [Release notes](https://github.com/go-sql-driver/mysql/releases) - [Changelog](https://github.com/go-sql-driver/mysql/blob/master/CHANGELOG.md) - [Commits](https://github.com/go-sql-driver/mysql/compare/v1.9.0...v1.9.2) --- updated-dependencies: - dependency-name: github.com/go-sql-driver/mysql dependency-version: 1.9.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 90786e8b..a78e14d1 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/aws/aws-sdk-go-v2 v1.36.3 github.com/aws/aws-sdk-go-v2/config v1.29.8 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.0 - github.com/go-sql-driver/mysql v1.9.0 + github.com/go-sql-driver/mysql v1.9.2 github.com/jackc/pgx/v5 v5.7.2 github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.9 diff --git a/go.sum b/go.sum index bda0c413..fd9a9f8b 100644 --- a/go.sum +++ b/go.sum @@ -94,8 +94,8 @@ github.com/go-faster/city v1.0.1 h1:4WAxSZ3V2Ws4QRDrscLEDcibJY8uf41H6AhXDrNDcGw= github.com/go-faster/city v1.0.1/go.mod h1:jKcUJId49qdW3L1qKHH/3wPeUstCVpVSXTM6vO3VcTw= github.com/go-faster/errors v0.7.1 h1:MkJTnDoEdi9pDabt1dpWf7AA8/BaSYZqibYyhZ20AYg= github.com/go-faster/errors v0.7.1/go.mod h1:5ySTjWFiphBs07IKuiL69nxdfd5+fzh1u7FPGZP2quo= -github.com/go-sql-driver/mysql v1.9.0 h1:Y0zIbQXhQKmQgTp44Y1dp3wTXcn804QoTptLZT1vtvo= -github.com/go-sql-driver/mysql v1.9.0/go.mod h1:pDetrLJeA3oMujJuvXc8RJoasr589B6A9fwzD3QMrqw= +github.com/go-sql-driver/mysql v1.9.2 h1:4cNKDYQ1I84SXslGddlsrMhc8k4LeDVj6Ad6WRjiHuU= +github.com/go-sql-driver/mysql v1.9.2/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI64Gl8i5p1WMU= github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+Hoeu/iUR3ruzNvZ+yQfO03a0= From 82a067178e9a94c10474d9e1af1e25bc2b03be8c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Apr 2025 12:03:48 +0200 Subject: [PATCH 352/401] deps: bump github.com/sethvargo/go-envconfig from 1.1.1 to 1.2.0 (#721) Bumps [github.com/sethvargo/go-envconfig](https://github.com/sethvargo/go-envconfig) from 1.1.1 to 1.2.0. - [Release notes](https://github.com/sethvargo/go-envconfig/releases) - [Commits](https://github.com/sethvargo/go-envconfig/compare/v1.1.1...v1.2.0) --- updated-dependencies: - dependency-name: github.com/sethvargo/go-envconfig dependency-version: 1.2.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index a78e14d1..370b954b 100644 --- a/go.mod +++ b/go.mod @@ -18,7 +18,7 @@ require ( github.com/prometheus/client_model v0.6.1 github.com/prometheus/common v0.62.0 github.com/prometheus/exporter-toolkit v0.14.0 - github.com/sethvargo/go-envconfig v1.1.1 + github.com/sethvargo/go-envconfig v1.2.0 github.com/sijms/go-ora/v2 v2.8.24 github.com/snowflakedb/gosnowflake v1.13.0 github.com/vertica/vertica-sql-go v1.3.3 diff --git a/go.sum b/go.sum index fd9a9f8b..8e2e5059 100644 --- a/go.sum +++ b/go.sum @@ -195,8 +195,8 @@ github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/segmentio/asm v1.2.0 h1:9BQrFxC+YOHJlTlHGkTrFWf59nbL3XnCoFLTwDCI7ys= github.com/segmentio/asm v1.2.0/go.mod h1:BqMnlJP91P8d+4ibuonYZw9mfnzI9HfxselHZr5aAcs= -github.com/sethvargo/go-envconfig v1.1.1 h1:JDu8Q9baIzJf47NPkzhIB6aLYL0vQ+pPypoYrejS9QY= -github.com/sethvargo/go-envconfig v1.1.1/go.mod h1:JLd0KFWQYzyENqnEPWWZ49i4vzZo/6nRidxI8YvGiHw= +github.com/sethvargo/go-envconfig v1.2.0 h1:q3XkOZWkC+G1sMLCrw9oPGTjYexygLOXDmGUit1ti8Q= +github.com/sethvargo/go-envconfig v1.2.0/go.mod h1:JLd0KFWQYzyENqnEPWWZ49i4vzZo/6nRidxI8YvGiHw= github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k= github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME= github.com/sijms/go-ora/v2 v2.8.24 h1:TODRWjWGwJ1VlBOhbTLat+diTYe8HXq2soJeB+HMjnw= From 7e0b9f828ecfe882365b3261bc5cf9a3be17c2b2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Apr 2025 12:18:57 +0200 Subject: [PATCH 353/401] deps: bump github.com/jackc/pgx/v5 from 5.7.2 to 5.7.4 (#719) Bumps [github.com/jackc/pgx/v5](https://github.com/jackc/pgx) from 5.7.2 to 5.7.4. - [Changelog](https://github.com/jackc/pgx/blob/master/CHANGELOG.md) - [Commits](https://github.com/jackc/pgx/compare/v5.7.2...v5.7.4) --- updated-dependencies: - dependency-name: github.com/jackc/pgx/v5 dependency-version: 5.7.4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 370b954b..7f0e495b 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/aws/aws-sdk-go-v2/config v1.29.8 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.0 github.com/go-sql-driver/mysql v1.9.2 - github.com/jackc/pgx/v5 v5.7.2 + github.com/jackc/pgx/v5 v5.7.4 github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.9 github.com/microsoft/go-mssqldb v1.8.0 diff --git a/go.sum b/go.sum index 8e2e5059..ccb37ae3 100644 --- a/go.sum +++ b/go.sum @@ -124,8 +124,8 @@ github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsI github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 h1:iCEnooe7UlwOQYpKFhBabPMi4aNAfoODPEFNiAnClxo= github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= -github.com/jackc/pgx/v5 v5.7.2 h1:mLoDLV6sonKlvjIEsV56SkWNCnuNv531l94GaIzO+XI= -github.com/jackc/pgx/v5 v5.7.2/go.mod h1:ncY89UGWxg82EykZUwSpUKEfccBGGYq1xjrOpsbsfGQ= +github.com/jackc/pgx/v5 v5.7.4 h1:9wKznZrhWa2QiHL+NjTSPP6yjl3451BX3imWDnokYlg= +github.com/jackc/pgx/v5 v5.7.4/go.mod h1:ncY89UGWxg82EykZUwSpUKEfccBGGYq1xjrOpsbsfGQ= github.com/jackc/puddle/v2 v2.2.2 h1:PR8nw+E/1w0GLuRFSmiioY6UooMp6KJv0/61nB7icHo= github.com/jackc/puddle/v2 v2.2.2/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= From 371bdf7afec474ad3c4929d9e66d2c115c038c67 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Apr 2025 12:19:07 +0200 Subject: [PATCH 354/401] deps: bump github.com/aws/aws-sdk-go-v2/config from 1.29.8 to 1.29.14 (#718) Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.29.8 to 1.29.14. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.29.8...config/v1.29.14) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/config dependency-version: 1.29.14 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 10 +++++----- go.sum | 20 ++++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/go.mod b/go.mod index 7f0e495b..08b73d20 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ toolchain go1.24.1 require ( github.com/ClickHouse/clickhouse-go/v2 v2.34.0 github.com/aws/aws-sdk-go-v2 v1.36.3 - github.com/aws/aws-sdk-go-v2/config v1.29.8 + github.com/aws/aws-sdk-go-v2/config v1.29.14 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.0 github.com/go-sql-driver/mysql v1.9.2 github.com/jackc/pgx/v5 v5.7.4 @@ -42,7 +42,7 @@ require ( github.com/andybalholm/brotli v1.1.1 // indirect github.com/apache/arrow/go/v16 v16.0.0 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.61 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.67 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34 // indirect @@ -54,9 +54,9 @@ require ( github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 // indirect github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.25.0 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.29.0 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.33.16 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.25.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.33.19 // indirect github.com/aws/smithy-go v1.22.2 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect diff --git a/go.sum b/go.sum index ccb37ae3..1d9f5135 100644 --- a/go.sum +++ b/go.sum @@ -34,10 +34,10 @@ github.com/aws/aws-sdk-go-v2 v1.36.3 h1:mJoei2CxPutQVxaATCzDUjcZEjVRdpsiiXi2o38y github.com/aws/aws-sdk-go-v2 v1.36.3/go.mod h1:LLXuLpgzEbD766Z5ECcRmi8AzSwfZItDtmABVkRLGzg= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg= -github.com/aws/aws-sdk-go-v2/config v1.29.8 h1:RpwAfYcV2lr/yRc4lWhUM9JRPQqKgKWmou3LV7UfWP4= -github.com/aws/aws-sdk-go-v2/config v1.29.8/go.mod h1:t+G7Fq1OcO8cXTPPXzxQSnj/5Xzdc9jAAD3Xrn9/Mgo= -github.com/aws/aws-sdk-go-v2/credentials v1.17.61 h1:Hd/uX6Wo2iUW1JWII+rmyCD7MMhOe7ALwQXN6sKDd1o= -github.com/aws/aws-sdk-go-v2/credentials v1.17.61/go.mod h1:L7vaLkwHY1qgW0gG1zG0z/X0sQ5tpIY5iI13+j3qI80= +github.com/aws/aws-sdk-go-v2/config v1.29.14 h1:f+eEi/2cKCg9pqKBoAIwRGzVb70MRKqWX4dg1BDcSJM= +github.com/aws/aws-sdk-go-v2/config v1.29.14/go.mod h1:wVPHWcIFv3WO89w0rE10gzf17ZYy+UVS1Geq8Iei34g= +github.com/aws/aws-sdk-go-v2/credentials v1.17.67 h1:9KxtdcIA/5xPNQyZRgUSpYOE6j9Bc4+D7nZua0KGYOM= +github.com/aws/aws-sdk-go-v2/credentials v1.17.67/go.mod h1:p3C44m+cfnbv763s52gCqrjaqyPikj9Sg47kUVaNZQQ= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30 h1:x793wxmUWVDhshP8WW2mlnXuFrO4cOd3HLBroh1paFw= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30/go.mod h1:Jpne2tDnYiFascUEs2AWHJL9Yp7A5ZVy3TNyxaAjD6M= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 h1:7Zwtt/lP3KNRkeZre7soMELMGNoBrutx8nobg1jKWmo= @@ -62,12 +62,12 @@ github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 h1:6cnno47Me9bRykw9AEv9zkXE+5or7 github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1/go.mod h1:qmdkIIAC+GCLASF7R2whgNrJADz0QZPX+Seiw/i4S3o= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.0 h1:BRCDd+oBBOk/5VzR/rVk3Azy8o5oCCr8urNJQs191mE= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.0/go.mod h1:yGhDiLKguA3iFJYxbrQkQiNzuy+ddxesSZYWVeeEH5Q= -github.com/aws/aws-sdk-go-v2/service/sso v1.25.0 h1:2U9sF8nKy7UgyEeLiZTRg6ShBS22z8UnYpV6aRFL0is= -github.com/aws/aws-sdk-go-v2/service/sso v1.25.0/go.mod h1:qs4a9T5EMLl/Cajiw2TcbNt2UNo/Hqlyp+GiuG4CFDI= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.29.0 h1:wjAdc85cXdQR5uLx5FwWvGIHm4OPJhTyzUHU8craXtE= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.29.0/go.mod h1:MlYRNmYu/fGPoxBQVvBYr9nyr948aY/WLUvwBMBJubs= -github.com/aws/aws-sdk-go-v2/service/sts v1.33.16 h1:BHEK2Q/7CMRMCb3nySi/w8UbIcPhKvYP5s1xf8/izn0= -github.com/aws/aws-sdk-go-v2/service/sts v1.33.16/go.mod h1:cQnB8CUnxbMU82JvlqjKR2HBOm3fe9pWorWBza6MBJ4= +github.com/aws/aws-sdk-go-v2/service/sso v1.25.3 h1:1Gw+9ajCV1jogloEv1RRnvfRFia2cL6c9cuKV2Ps+G8= +github.com/aws/aws-sdk-go-v2/service/sso v1.25.3/go.mod h1:qs4a9T5EMLl/Cajiw2TcbNt2UNo/Hqlyp+GiuG4CFDI= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1 h1:hXmVKytPfTy5axZ+fYbR5d0cFmC3JvwLm5kM83luako= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1/go.mod h1:MlYRNmYu/fGPoxBQVvBYr9nyr948aY/WLUvwBMBJubs= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.19 h1:1XuUZ8mYJw9B6lzAkXhqHlJd/XvaX32evhproijJEZY= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.19/go.mod h1:cQnB8CUnxbMU82JvlqjKR2HBOm3fe9pWorWBza6MBJ4= github.com/aws/smithy-go v1.22.2 h1:6D9hW43xKFrRx/tXXfAlIZc4JI+yQe6snnWcQyxSyLQ= github.com/aws/smithy-go v1.22.2/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= From 89878d2139620aba99ebf7443bace81b48f10af9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Apr 2025 12:25:50 +0200 Subject: [PATCH 355/401] deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager from 1.35.0 to 1.35.3 (#717) deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager Bumps [github.com/aws/aws-sdk-go-v2/service/secretsmanager](https://github.com/aws/aws-sdk-go-v2) from 1.35.0 to 1.35.3. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.35.0...service/ivs/v1.35.3) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/service/secretsmanager dependency-version: 1.35.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 08b73d20..a30bf2cd 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/ClickHouse/clickhouse-go/v2 v2.34.0 github.com/aws/aws-sdk-go-v2 v1.36.3 github.com/aws/aws-sdk-go-v2/config v1.29.14 - github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.0 + github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.3 github.com/go-sql-driver/mysql v1.9.2 github.com/jackc/pgx/v5 v5.7.4 github.com/kardianos/minwinsvc v1.0.2 diff --git a/go.sum b/go.sum index 1d9f5135..997ba781 100644 --- a/go.sum +++ b/go.sum @@ -60,8 +60,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 h1:f9RyWNtS8oH7cZ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5/go.mod h1:h5CoMZV2VF297/VLhRhO1WF+XYWOzXo+4HsObA4HjBQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 h1:6cnno47Me9bRykw9AEv9zkXE+5or7jz8TsskTTccbgc= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1/go.mod h1:qmdkIIAC+GCLASF7R2whgNrJADz0QZPX+Seiw/i4S3o= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.0 h1:BRCDd+oBBOk/5VzR/rVk3Azy8o5oCCr8urNJQs191mE= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.0/go.mod h1:yGhDiLKguA3iFJYxbrQkQiNzuy+ddxesSZYWVeeEH5Q= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.3 h1:9bxA21Y62N32bAo4tVYXBhJU+VtCVKPpXEIEsScM0kc= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.3/go.mod h1:yGhDiLKguA3iFJYxbrQkQiNzuy+ddxesSZYWVeeEH5Q= github.com/aws/aws-sdk-go-v2/service/sso v1.25.3 h1:1Gw+9ajCV1jogloEv1RRnvfRFia2cL6c9cuKV2Ps+G8= github.com/aws/aws-sdk-go-v2/service/sso v1.25.3/go.mod h1:qs4a9T5EMLl/Cajiw2TcbNt2UNo/Hqlyp+GiuG4CFDI= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1 h1:hXmVKytPfTy5axZ+fYbR5d0cFmC3JvwLm5kM83luako= From c0a9a18aa767578b31ebfce2a4d8a117206f95da Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Apr 2025 12:40:58 +0200 Subject: [PATCH 356/401] deps: bump github.com/snowflakedb/gosnowflake from 1.13.0 to 1.13.2 (#725) Bumps [github.com/snowflakedb/gosnowflake](https://github.com/snowflakedb/gosnowflake) from 1.13.0 to 1.13.2. - [Release notes](https://github.com/snowflakedb/gosnowflake/releases) - [Changelog](https://github.com/snowflakedb/gosnowflake/blob/master/release.go) - [Commits](https://github.com/snowflakedb/gosnowflake/compare/v1.13.0...v1.13.2) --- updated-dependencies: - dependency-name: github.com/snowflakedb/gosnowflake dependency-version: 1.13.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 14 +++++++------- go.sum | 43 ++++++++++++++++++++++++++----------------- 2 files changed, 33 insertions(+), 24 deletions(-) diff --git a/go.mod b/go.mod index a30bf2cd..13559abc 100644 --- a/go.mod +++ b/go.mod @@ -20,7 +20,7 @@ require ( github.com/prometheus/exporter-toolkit v0.14.0 github.com/sethvargo/go-envconfig v1.2.0 github.com/sijms/go-ora/v2 v2.8.24 - github.com/snowflakedb/gosnowflake v1.13.0 + github.com/snowflakedb/gosnowflake v1.13.2 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.23.6 google.golang.org/protobuf v1.36.5 @@ -40,7 +40,7 @@ require ( github.com/ClickHouse/ch-go v0.65.1 // indirect github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c // indirect github.com/andybalholm/brotli v1.1.1 // indirect - github.com/apache/arrow/go/v16 v16.0.0 // indirect + github.com/apache/arrow-go/v18 v18.0.0 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 // indirect github.com/aws/aws-sdk-go-v2/credentials v1.17.67 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30 // indirect @@ -69,12 +69,12 @@ require ( github.com/gabriel-vasile/mimetype v1.4.7 // indirect github.com/go-faster/city v1.0.1 // indirect github.com/go-faster/errors v0.7.1 // indirect - github.com/goccy/go-json v0.10.2 // indirect + github.com/goccy/go-json v0.10.4 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/golang-jwt/jwt/v5 v5.2.2 // indirect github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 // indirect github.com/golang-sql/sqlexp v0.1.0 // indirect - github.com/google/flatbuffers v24.3.25+incompatible // indirect + github.com/google/flatbuffers v24.12.23+incompatible // indirect github.com/google/uuid v1.6.0 // indirect github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect github.com/jackc/pgpassfile v1.0.0 // indirect @@ -83,7 +83,7 @@ require ( github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 // indirect github.com/jpillora/backoff v1.0.0 // indirect github.com/klauspost/compress v1.17.11 // indirect - github.com/klauspost/cpuid/v2 v2.2.7 // indirect + github.com/klauspost/cpuid/v2 v2.2.9 // indirect github.com/kylelemons/godebug v1.1.0 // indirect github.com/mdlayher/socket v0.4.1 // indirect github.com/mdlayher/vsock v1.2.1 // indirect @@ -103,7 +103,7 @@ require ( go.opentelemetry.io/otel v1.35.0 // indirect go.opentelemetry.io/otel/trace v1.35.0 // indirect golang.org/x/crypto v0.35.0 // indirect - golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 // indirect + golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 // indirect golang.org/x/mod v0.23.0 // indirect golang.org/x/net v0.36.0 // indirect golang.org/x/oauth2 v0.24.0 // indirect @@ -112,7 +112,7 @@ require ( golang.org/x/term v0.29.0 // indirect golang.org/x/text v0.22.0 // indirect golang.org/x/tools v0.30.0 // indirect - golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect + golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect gopkg.in/yaml.v2 v2.4.0 // indirect howett.net/plist v0.0.0-20181124034731-591f970eefbb // indirect ) diff --git a/go.sum b/go.sum index 997ba781..8dee1384 100644 --- a/go.sum +++ b/go.sum @@ -28,8 +28,10 @@ github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c h1:RGWPOewvK github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA= github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= -github.com/apache/arrow/go/v16 v16.0.0 h1:qRLbJRPj4zaseZrjbDHa7mUoZDDIU+4pu+mE2Lucs5g= -github.com/apache/arrow/go/v16 v16.0.0/go.mod h1:9wnc9mn6vEDTRIm4+27pEjQpRKuTvBaessPoEXQzxWA= +github.com/apache/arrow-go/v18 v18.0.0 h1:1dBDaSbH3LtulTyOVYaBCHO3yVRwjV+TZaqn3g6V7ZM= +github.com/apache/arrow-go/v18 v18.0.0/go.mod h1:t6+cWRSmKgdQ6HsxisQjok+jBpKGhRDiqcf3p0p/F+A= +github.com/apache/thrift v0.21.0 h1:tdPmh/ptjE1IJnhbhrcl2++TauVjy242rkV/UzJChnE= +github.com/apache/thrift v0.21.0/go.mod h1:W1H8aR/QRtYNvrPeFXBtobyRkd0/YVhTc6i07XIAgDw= github.com/aws/aws-sdk-go-v2 v1.36.3 h1:mJoei2CxPutQVxaATCzDUjcZEjVRdpsiiXi2o38yqWM= github.com/aws/aws-sdk-go-v2 v1.36.3/go.mod h1:LLXuLpgzEbD766Z5ECcRmi8AzSwfZItDtmABVkRLGzg= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= @@ -96,8 +98,8 @@ github.com/go-faster/errors v0.7.1 h1:MkJTnDoEdi9pDabt1dpWf7AA8/BaSYZqibYyhZ20AY github.com/go-faster/errors v0.7.1/go.mod h1:5ySTjWFiphBs07IKuiL69nxdfd5+fzh1u7FPGZP2quo= github.com/go-sql-driver/mysql v1.9.2 h1:4cNKDYQ1I84SXslGddlsrMhc8k4LeDVj6Ad6WRjiHuU= github.com/go-sql-driver/mysql v1.9.2/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI64Gl8i5p1WMU= -github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= -github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/goccy/go-json v0.10.4 h1:JSwxQzIqKfmFX1swYPpUThQZp/Ka4wzJdK0LWVytLPM= +github.com/goccy/go-json v0.10.4/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+Hoeu/iUR3ruzNvZ+yQfO03a0= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= @@ -110,8 +112,10 @@ github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/flatbuffers v24.3.25+incompatible h1:CX395cjN9Kke9mmalRoL3d81AtFUxJM+yDthflgJGkI= -github.com/google/flatbuffers v24.3.25+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= +github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= +github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/flatbuffers v24.12.23+incompatible h1:ubBKR94NR4pXUCY/MUsRVzd9umNW7ht7EG9hHfS9FX8= +github.com/google/flatbuffers v24.12.23+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= @@ -137,11 +141,13 @@ github.com/kardianos/minwinsvc v1.0.2 h1:JmZKFJQrmTGa/WiW+vkJXKmfzdjabuEW4Tirj5l github.com/kardianos/minwinsvc v1.0.2/go.mod h1:LUZNYhNmxujx2tR7FbdxqYJ9XDDoCd3MQcl1o//FWl4= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/asmfmt v1.3.2 h1:4Ri7ox3EwapiOjCki+hw14RyKk201CN4rzyCJRFLpK4= +github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= -github.com/klauspost/cpuid/v2 v2.2.7 h1:ZWSB3igEs+d0qvnxR/ZBzXVmxkgt8DdzP6m9pfuVLDM= -github.com/klauspost/cpuid/v2 v2.2.7/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= +github.com/klauspost/cpuid/v2 v2.2.9 h1:66ze0taIn2H33fBvCkXuv9BmCwDfafmiIVpKV9kKGuY= +github.com/klauspost/cpuid/v2 v2.2.9/go.mod h1:rqkxqrZ1EhYM9G+hXH7YdowN5R5RGN6NK4QwQ3WMXF8= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= @@ -159,6 +165,10 @@ github.com/mdlayher/vsock v1.2.1 h1:pC1mTJTvjo1r9n9fbm7S1j04rCgCzhCOS5DY0zqHlnQ= github.com/mdlayher/vsock v1.2.1/go.mod h1:NRfCibel++DgeMD8z/hP+PPTjlNJsdPOmxcnENvE+SE= github.com/microsoft/go-mssqldb v1.8.0 h1:7cyZ/AT7ycDsEoWPIXibd+aVKFtteUNhDGf3aobP+tw= github.com/microsoft/go-mssqldb v1.8.0/go.mod h1:6znkekS3T2vp0waiMhen4GPU1BiAsrP+iXHcE7a7rFo= +github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8 h1:AMFGa4R4MiIpspGNG7Z948v4n35fFGB3RR3G/ry4FWs= +github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY= +github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3 h1:+n/aFZefKZp7spd8DFdX7uMikMLXX4oubIzJF4kv/wI= +github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3/go.mod h1:RagcQ7I8IeTMnF8JTXieKnO4Z6JCsikNEzj0DwauVzE= github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs= github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ibNBTZrns= @@ -203,8 +213,8 @@ github.com/sijms/go-ora/v2 v2.8.24 h1:TODRWjWGwJ1VlBOhbTLat+diTYe8HXq2soJeB+HMjn github.com/sijms/go-ora/v2 v2.8.24/go.mod h1:QgFInVi3ZWyqAiJwzBQA+nbKYKH77tdp1PYoCqhR2dU= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/snowflakedb/gosnowflake v1.13.0 h1:NQoy4mnHUmBuruJhzAGVRO9YLpFxayYTCLf+dxvG7bk= -github.com/snowflakedb/gosnowflake v1.13.0/go.mod h1:nwiPNHaS3EGxnW1rr10ascVYFLA4EKrqMX2TxPt0+N4= +github.com/snowflakedb/gosnowflake v1.13.2 h1:78ovPH3fcxeHkVbOI1o98NuVWJmu0Lax10nlIRYnbjM= +github.com/snowflakedb/gosnowflake v1.13.2/go.mod h1:tNf6gX01sgKaQUBo3De+KctsK6EwUtwmwp9wf6eYKPU= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= @@ -241,8 +251,8 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.35.0 h1:b15kiHdrGCHrP6LvwaQ3c03kgNhhiMgvlhxHQhmg2Xs= golang.org/x/crypto v0.35.0/go.mod h1:dy7dXNW32cAb/6/PRuTNsix8T+vJAqvuIy5Bli/x0YQ= -golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 h1:LfspQV/FYTatPTr/3HzIcmiUFH7PGP+OQ6mgDYo3yuQ= -golang.org/x/exp v0.0.0-20240222234643-814bf88cf225/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc= +golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 h1:e66Fs6Z+fZTbFBAxKfP3PALWBtpfqks2bwGcexMxgtk= +golang.org/x/exp v0.0.0-20240909161429-701f63a606c0/go.mod h1:2TbTHSBQa924w8M6Xs1QcRcFwyucIwBGpK1p2f1YFFY= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.23.0 h1:Zb7khfcRGKk+kqfxFaP5tZqCnDZMjC5VtUBs87Hr6QM= @@ -273,7 +283,6 @@ golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -295,10 +304,10 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T 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= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 h1:+cNy6SZtPcJQH3LJVLOSmiC7MMxXNOb3PU/VUEz+EhU= -golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= -gonum.org/v1/gonum v0.15.0 h1:2lYxjRbTYyxkJxlhC+LvJIx3SsANPdRybu1tGj9/OrQ= -gonum.org/v1/gonum v0.15.0/go.mod h1:xzZVBJBtS+Mz4q0Yl2LJTk+OxOg4jiXZ7qBoM0uISGo= +golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da h1:noIWHXmPHxILtqtCOPIhSt0ABwskkZKjD3bXGnZGpNY= +golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= +gonum.org/v1/gonum v0.15.1 h1:FNy7N6OUZVUaWG9pTiD+jlhdQ3lMP+/LcTpJ6+a8sQ0= +gonum.org/v1/gonum v0.15.1/go.mod h1:eZTZuRFrzu5pcyjN5wJhcIhnUdNijYxX1T2IcrOGY0o= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= From 3918f0617d39d6337b3d9372971daf09e144e36f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Apr 2025 12:41:06 +0200 Subject: [PATCH 357/401] deps: bump google.golang.org/protobuf from 1.36.5 to 1.36.6 (#726) Bumps google.golang.org/protobuf from 1.36.5 to 1.36.6. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-version: 1.36.6 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 13559abc..8d5f1fff 100644 --- a/go.mod +++ b/go.mod @@ -23,7 +23,7 @@ require ( github.com/snowflakedb/gosnowflake v1.13.2 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.23.6 - google.golang.org/protobuf v1.36.5 + google.golang.org/protobuf v1.36.6 gopkg.in/yaml.v3 v3.0.1 ) diff --git a/go.sum b/go.sum index 8dee1384..70c757d3 100644 --- a/go.sum +++ b/go.sum @@ -310,8 +310,8 @@ gonum.org/v1/gonum v0.15.1 h1:FNy7N6OUZVUaWG9pTiD+jlhdQ3lMP+/LcTpJ6+a8sQ0= gonum.org/v1/gonum v0.15.1/go.mod h1:eZTZuRFrzu5pcyjN5wJhcIhnUdNijYxX1T2IcrOGY0o= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= -google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= +google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From b9365880cd37eb5584640f751f5ab26ed916a91f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Apr 2025 12:53:38 +0200 Subject: [PATCH 358/401] deps: bump github.com/prometheus/client_model from 0.6.1 to 0.6.2 (#724) Bumps [github.com/prometheus/client_model](https://github.com/prometheus/client_model) from 0.6.1 to 0.6.2. - [Release notes](https://github.com/prometheus/client_model/releases) - [Commits](https://github.com/prometheus/client_model/compare/v0.6.1...v0.6.2) --- updated-dependencies: - dependency-name: github.com/prometheus/client_model dependency-version: 0.6.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 8d5f1fff..30cf5a6d 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( github.com/lib/pq v1.10.9 github.com/microsoft/go-mssqldb v1.8.0 github.com/prometheus/client_golang v1.21.1 - github.com/prometheus/client_model v0.6.1 + github.com/prometheus/client_model v0.6.2 github.com/prometheus/common v0.62.0 github.com/prometheus/exporter-toolkit v0.14.0 github.com/sethvargo/go-envconfig v1.2.0 diff --git a/go.sum b/go.sum index 70c757d3..75eae20b 100644 --- a/go.sum +++ b/go.sum @@ -192,8 +192,8 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRI github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_golang v1.21.1 h1:DOvXXTqVzvkIewV/CDPFdejpMCGeMcbGCQ8YOmu+Ibk= github.com/prometheus/client_golang v1.21.1/go.mod h1:U9NM32ykUErtVBxdvD3zfi+EuFkkaBvMb09mIfe0Zgg= -github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= -github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= +github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= +github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io= github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I= github.com/prometheus/exporter-toolkit v0.14.0 h1:NMlswfibpcZZ+H0sZBiTjrA3/aBFHkNZqE+iCj5EmRg= From 7bbb287ec278cd43b1f9e4b206c684b9bceb2c46 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Apr 2025 16:09:44 +0200 Subject: [PATCH 359/401] deps: bump github.com/prometheus/client_golang from 1.21.1 to 1.22.0 (#723) Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.21.1 to 1.22.0. - [Release notes](https://github.com/prometheus/client_golang/releases) - [Changelog](https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md) - [Commits](https://github.com/prometheus/client_golang/compare/v1.21.1...v1.22.0) --- updated-dependencies: - dependency-name: github.com/prometheus/client_golang dependency-version: 1.22.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 30cf5a6d..7205c61f 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.9 github.com/microsoft/go-mssqldb v1.8.0 - github.com/prometheus/client_golang v1.21.1 + github.com/prometheus/client_golang v1.22.0 github.com/prometheus/client_model v0.6.2 github.com/prometheus/common v0.62.0 github.com/prometheus/exporter-toolkit v0.14.0 @@ -82,7 +82,7 @@ require ( github.com/jackc/puddle/v2 v2.2.2 // indirect github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 // indirect github.com/jpillora/backoff v1.0.0 // indirect - github.com/klauspost/compress v1.17.11 // indirect + github.com/klauspost/compress v1.18.0 // indirect github.com/klauspost/cpuid/v2 v2.2.9 // indirect github.com/kylelemons/godebug v1.1.0 // indirect github.com/mdlayher/socket v0.4.1 // indirect diff --git a/go.sum b/go.sum index 75eae20b..ebe7e20f 100644 --- a/go.sum +++ b/go.sum @@ -144,8 +144,8 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o github.com/klauspost/asmfmt v1.3.2 h1:4Ri7ox3EwapiOjCki+hw14RyKk201CN4rzyCJRFLpK4= github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= -github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= -github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= +github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= +github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= github.com/klauspost/cpuid/v2 v2.2.9 h1:66ze0taIn2H33fBvCkXuv9BmCwDfafmiIVpKV9kKGuY= github.com/klauspost/cpuid/v2 v2.2.9/go.mod h1:rqkxqrZ1EhYM9G+hXH7YdowN5R5RGN6NK4QwQ3WMXF8= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= @@ -190,8 +190,8 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.21.1 h1:DOvXXTqVzvkIewV/CDPFdejpMCGeMcbGCQ8YOmu+Ibk= -github.com/prometheus/client_golang v1.21.1/go.mod h1:U9NM32ykUErtVBxdvD3zfi+EuFkkaBvMb09mIfe0Zgg= +github.com/prometheus/client_golang v1.22.0 h1:rb93p9lokFEsctTys46VnV1kLCDpVZ0a/Y92Vm0Zc6Q= +github.com/prometheus/client_golang v1.22.0/go.mod h1:R7ljNsLXhuQXYZYtw6GAE9AZg8Y7vEW5scdCXrWRXC0= github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io= From d2036c4afb2d274924187368c8f40eafe0e47ba7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Apr 2025 18:14:09 +0200 Subject: [PATCH 360/401] deps: bump github.com/prometheus/common from 0.62.0 to 0.63.0 (#722) * deps: bump github.com/prometheus/common from 0.62.0 to 0.63.0 Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.62.0 to 0.63.0. - [Release notes](https://github.com/prometheus/common/releases) - [Changelog](https://github.com/prometheus/common/blob/main/RELEASE.md) - [Commits](https://github.com/prometheus/common/compare/v0.62.0...v0.63.0) --- updated-dependencies: - dependency-name: github.com/prometheus/common dependency-version: 0.63.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * fix: adopt prometheus/common 0.63 breaking changes --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Sergei Zyubin --- cmd/sql_exporter/log.go | 4 ++-- go.mod | 4 ++-- go.sum | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/cmd/sql_exporter/log.go b/cmd/sql_exporter/log.go index 1b3eec7d..3cdbe39b 100644 --- a/cmd/sql_exporter/log.go +++ b/cmd/sql_exporter/log.go @@ -37,8 +37,8 @@ func initLogConfig(logLevel, logFormat string, logFile string) (*logConfig, erro } promslogConfig := &promslog.Config{ - Level: &promslog.AllowedLevel{}, - Format: &promslog.AllowedFormat{}, + Level: promslog.NewLevel(), + Format: promslog.NewFormat(), Style: promslog.SlogStyle, Writer: logFileHandler, } diff --git a/go.mod b/go.mod index 7205c61f..ca0967ff 100644 --- a/go.mod +++ b/go.mod @@ -16,7 +16,7 @@ require ( github.com/microsoft/go-mssqldb v1.8.0 github.com/prometheus/client_golang v1.22.0 github.com/prometheus/client_model v0.6.2 - github.com/prometheus/common v0.62.0 + github.com/prometheus/common v0.63.0 github.com/prometheus/exporter-toolkit v0.14.0 github.com/sethvargo/go-envconfig v1.2.0 github.com/sijms/go-ora/v2 v2.8.24 @@ -106,7 +106,7 @@ require ( golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 // indirect golang.org/x/mod v0.23.0 // indirect golang.org/x/net v0.36.0 // indirect - golang.org/x/oauth2 v0.24.0 // indirect + golang.org/x/oauth2 v0.25.0 // indirect golang.org/x/sync v0.11.0 // indirect golang.org/x/sys v0.30.0 // indirect golang.org/x/term v0.29.0 // indirect diff --git a/go.sum b/go.sum index ebe7e20f..09c32d9d 100644 --- a/go.sum +++ b/go.sum @@ -194,8 +194,8 @@ github.com/prometheus/client_golang v1.22.0 h1:rb93p9lokFEsctTys46VnV1kLCDpVZ0a/ github.com/prometheus/client_golang v1.22.0/go.mod h1:R7ljNsLXhuQXYZYtw6GAE9AZg8Y7vEW5scdCXrWRXC0= github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= -github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io= -github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I= +github.com/prometheus/common v0.63.0 h1:YR/EIY1o3mEFP/kZCD7iDMnLPlGyuU2Gb3HIcXnA98k= +github.com/prometheus/common v0.63.0/go.mod h1:VVFF/fBIoToEnWRVkYoXEkq3R3paCoxG9PXP74SnV18= github.com/prometheus/exporter-toolkit v0.14.0 h1:NMlswfibpcZZ+H0sZBiTjrA3/aBFHkNZqE+iCj5EmRg= github.com/prometheus/exporter-toolkit v0.14.0/go.mod h1:Gu5LnVvt7Nr/oqTBUC23WILZepW0nffNo10XdhQcwWA= github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= @@ -264,8 +264,8 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.36.0 h1:vWF2fRbw4qslQsQzgFqZff+BItCvGFQqKzKIzx1rmoA= golang.org/x/net v0.36.0/go.mod h1:bFmbeoIPfrw4sMHNhb4J9f6+tPziuGjq7Jk/38fxi1I= -golang.org/x/oauth2 v0.24.0 h1:KTBBxWqUa0ykRPLtV69rRto9TLXcqYkeswu48x/gvNE= -golang.org/x/oauth2 v0.24.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.25.0 h1:CY4y7XT9v0cRI9oupztF8AgiIu99L/ksR/Xp/6jrZ70= +golang.org/x/oauth2 v0.25.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= From 9738f619ffe190a7678869159d465617fea9bcd6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 17 Apr 2025 09:23:19 +0200 Subject: [PATCH 361/401] deps: bump golang.org/x/net from 0.36.0 to 0.38.0 (#727) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.36.0 to 0.38.0. - [Commits](https://github.com/golang/net/compare/v0.36.0...v0.38.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-version: 0.38.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 12 ++++++------ go.sum | 24 ++++++++++++------------ 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/go.mod b/go.mod index ca0967ff..76010be0 100644 --- a/go.mod +++ b/go.mod @@ -102,15 +102,15 @@ require ( github.com/zeebo/xxh3 v1.0.2 // indirect go.opentelemetry.io/otel v1.35.0 // indirect go.opentelemetry.io/otel/trace v1.35.0 // indirect - golang.org/x/crypto v0.35.0 // indirect + golang.org/x/crypto v0.36.0 // indirect golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 // indirect golang.org/x/mod v0.23.0 // indirect - golang.org/x/net v0.36.0 // indirect + golang.org/x/net v0.38.0 // indirect golang.org/x/oauth2 v0.25.0 // indirect - golang.org/x/sync v0.11.0 // indirect - golang.org/x/sys v0.30.0 // indirect - golang.org/x/term v0.29.0 // indirect - golang.org/x/text v0.22.0 // indirect + golang.org/x/sync v0.12.0 // indirect + golang.org/x/sys v0.31.0 // indirect + golang.org/x/term v0.30.0 // indirect + golang.org/x/text v0.23.0 // indirect golang.org/x/tools v0.30.0 // indirect golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/go.sum b/go.sum index 09c32d9d..9f0cd2a2 100644 --- a/go.sum +++ b/go.sum @@ -249,8 +249,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.35.0 h1:b15kiHdrGCHrP6LvwaQ3c03kgNhhiMgvlhxHQhmg2Xs= -golang.org/x/crypto v0.35.0/go.mod h1:dy7dXNW32cAb/6/PRuTNsix8T+vJAqvuIy5Bli/x0YQ= +golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34= +golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc= golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 h1:e66Fs6Z+fZTbFBAxKfP3PALWBtpfqks2bwGcexMxgtk= golang.org/x/exp v0.0.0-20240909161429-701f63a606c0/go.mod h1:2TbTHSBQa924w8M6Xs1QcRcFwyucIwBGpK1p2f1YFFY= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -262,8 +262,8 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.36.0 h1:vWF2fRbw4qslQsQzgFqZff+BItCvGFQqKzKIzx1rmoA= -golang.org/x/net v0.36.0/go.mod h1:bFmbeoIPfrw4sMHNhb4J9f6+tPziuGjq7Jk/38fxi1I= +golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8= +golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= golang.org/x/oauth2 v0.25.0 h1:CY4y7XT9v0cRI9oupztF8AgiIu99L/ksR/Xp/6jrZ70= golang.org/x/oauth2 v0.25.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -271,8 +271,8 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w= -golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw= +golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -283,17 +283,17 @@ golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= -golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik= +golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.29.0 h1:L6pJp37ocefwRRtYPKSWOWzOtWSxVajvz2ldH/xi3iU= -golang.org/x/term v0.29.0/go.mod h1:6bl4lRlvVuDgSf3179VpIxBF0o10JUpXWOnI7nErv7s= +golang.org/x/term v0.30.0 h1:PQ39fJZ+mfadBm0y5WlL4vlM7Sx1Hgf13sMIY2+QS9Y= +golang.org/x/term v0.30.0/go.mod h1:NYYFdzHoI5wRh/h5tDMdMqCqPJZEuNqVR5xJLd/n67g= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM= -golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY= +golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY= +golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= From edcb4f98eebf41f084707124fb413562f39f9770 Mon Sep 17 00:00:00 2001 From: Bruno Manzo Date: Tue, 22 Apr 2025 14:57:21 -0300 Subject: [PATCH 362/401] feat(helm): add support for initContainers on the chart (#731) * feat: add support for initContainers on the chart * lint * bump chart version, add the new field to docs * use right format for chart version --- helm/Chart.yaml | 2 +- helm/README.md | 1 + helm/templates/deployment.yaml | 4 ++++ helm/values.yaml | 4 ++++ 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 34ced776..97c11ba2 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: sql-exporter description: Database-agnostic SQL exporter for Prometheus type: application -version: 0.11.1 +version: 0.12.0 appVersion: 0.17.1 keywords: - exporter diff --git a/helm/README.md b/helm/README.md index 68b6ebf2..cd8882d6 100644 --- a/helm/README.md +++ b/helm/README.md @@ -71,6 +71,7 @@ as an example. | ingress.tls.crt | string | `""` | Ingress tls.crt, required if you don't have secret name. | | ingress.tls.key | string | `""` | Ingress tls.key, required if you don't have secret name. | | extraContainers | object | `{}` | Arbitrary sidecar containers list | +| initContainers | object | `{}` | Arbitrary sidecar containers list for 1.29+ kubernetes | | serviceAccount.create | bool | `true` | Specifies whether a Service Account should be created, creates "sql-exporter" service account if true, unless overriden. Otherwise, set to `default` if false, and custom service account name is not provided. Check all the available parameters. | | serviceAccount.annotations | object | `{}` | Annotations to add to the Service Account | | livenessProbe.initialDelaySeconds | int | `5` | | diff --git a/helm/templates/deployment.yaml b/helm/templates/deployment.yaml index f8ed4518..0e84e8d5 100644 --- a/helm/templates/deployment.yaml +++ b/helm/templates/deployment.yaml @@ -47,6 +47,10 @@ spec: - name: {{ $v.name }} {{- toYaml $v.volume | nindent 10 }} {{- end }} +{{- if .Values.initContainers }} + initContainers: +{{ toYaml .Values.initContainers | nindent 8 }} +{{- end }} containers: - name: {{ .Chart.Name }} securityContext: diff --git a/helm/values.yaml b/helm/values.yaml index f65b6b78..541b218a 100644 --- a/helm/values.yaml +++ b/helm/values.yaml @@ -55,6 +55,10 @@ extraContainers: {} # args: # resources: # requests:{} + +# -- Arbitrary sidecar containers list for 1.29+ kubernetes +initContainers: {} + serviceAccount: # -- Specifies whether a Service Account should be created, creates "sql-exporter" service account if true, unless # overriden. Otherwise, set to `default` if false, and custom service account name is not provided. Check all the From 7879946e514f775d0841081637e619650fd34590 Mon Sep 17 00:00:00 2001 From: Bruno Manzo Date: Wed, 23 Apr 2025 09:34:47 -0300 Subject: [PATCH 363/401] feat(helm): add support to relabelings in servicemonitor (#732) --- helm/Chart.yaml | 2 +- helm/README.md | 3 ++- helm/templates/servicemonitor.yaml | 4 ++++ helm/values.yaml | 2 ++ 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 97c11ba2..7c6fad5e 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: sql-exporter description: Database-agnostic SQL exporter for Prometheus type: application -version: 0.12.0 +version: 0.12.1 appVersion: 0.17.1 keywords: - exporter diff --git a/helm/README.md b/helm/README.md index cd8882d6..bc45b970 100644 --- a/helm/README.md +++ b/helm/README.md @@ -1,6 +1,6 @@ # sql-exporter -![Version: 0.11.1](https://img.shields.io/badge/Version-0.11.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.17.1](https://img.shields.io/badge/AppVersion-0.17.1-informational?style=flat-square) +![Version: 0.12.1](https://img.shields.io/badge/Version-0.12.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.17.1](https://img.shields.io/badge/AppVersion-0.17.1-informational?style=flat-square) Database-agnostic SQL exporter for Prometheus @@ -95,6 +95,7 @@ as an example. | serviceMonitor.interval | string | `"15s"` | ServiceMonitor interval | | serviceMonitor.path | string | `"/metrics"` | ServiceMonitor path | | serviceMonitor.metricRelabelings | object | `{}` | ServiceMonitor metric relabelings | +| serviceMonitor.relabelings | object | `{}` | ServiceMonitor relabelings | | serviceMonitor.namespace | string | `nil` | ServiceMonitor namespace override (default is .Release.Namespace) | | serviceMonitor.scrapeTimeout | string | `nil` | ServiceMonitor scrape timeout | diff --git a/helm/templates/servicemonitor.yaml b/helm/templates/servicemonitor.yaml index c7f69935..b0d61a34 100644 --- a/helm/templates/servicemonitor.yaml +++ b/helm/templates/servicemonitor.yaml @@ -32,6 +32,10 @@ spec: metricRelabelings: {{- toYaml .Values.serviceMonitor.metricRelabelings | nindent 8 }} {{- end }} + {{- if .Values.serviceMonitor.relabelings }} + relabelings: + {{- toYaml .Values.serviceMonitor.relabelings | nindent 8 }} + {{- end }} namespaceSelector: matchNames: {{- if .Values.serviceMonitor.namespace }} diff --git a/helm/values.yaml b/helm/values.yaml index 541b218a..df116d93 100644 --- a/helm/values.yaml +++ b/helm/values.yaml @@ -115,6 +115,8 @@ serviceMonitor: # scrapeTimeout: 10s # -- ServiceMonitor metric relabelings metricRelabelings: {} + # -- ServiceMonitor relabelings + relabelings: {} # -- ServiceMonitor namespace override (default is .Release.Namespace) namespace: ~ # Additional env variables From 0fa33fd3828525007235be22fe3259d748be7af0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 29 Apr 2025 04:47:19 +0200 Subject: [PATCH 364/401] deps: bump github.com/snowflakedb/gosnowflake from 1.13.2 to 1.13.3 (#733) Bumps [github.com/snowflakedb/gosnowflake](https://github.com/snowflakedb/gosnowflake) from 1.13.2 to 1.13.3. - [Release notes](https://github.com/snowflakedb/gosnowflake/releases) - [Changelog](https://github.com/snowflakedb/gosnowflake/blob/master/release.go) - [Commits](https://github.com/snowflakedb/gosnowflake/compare/v1.13.2...v1.13.3) --- updated-dependencies: - dependency-name: github.com/snowflakedb/gosnowflake dependency-version: 1.13.3 dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 13 ++++++------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/go.mod b/go.mod index 76010be0..28747418 100644 --- a/go.mod +++ b/go.mod @@ -20,7 +20,7 @@ require ( github.com/prometheus/exporter-toolkit v0.14.0 github.com/sethvargo/go-envconfig v1.2.0 github.com/sijms/go-ora/v2 v2.8.24 - github.com/snowflakedb/gosnowflake v1.13.2 + github.com/snowflakedb/gosnowflake v1.13.3 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.23.6 google.golang.org/protobuf v1.36.6 @@ -61,7 +61,7 @@ require ( github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect - github.com/danieljoos/wincred v1.1.2 // indirect + github.com/danieljoos/wincred v1.2.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/dvsekhvalnov/jose2go v1.6.0 // indirect github.com/elastic/go-sysinfo v1.8.1 // indirect @@ -106,7 +106,7 @@ require ( golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 // indirect golang.org/x/mod v0.23.0 // indirect golang.org/x/net v0.38.0 // indirect - golang.org/x/oauth2 v0.25.0 // indirect + golang.org/x/oauth2 v0.26.0 // indirect golang.org/x/sync v0.12.0 // indirect golang.org/x/sys v0.31.0 // indirect golang.org/x/term v0.30.0 // indirect diff --git a/go.sum b/go.sum index 9f0cd2a2..68e5cf4c 100644 --- a/go.sum +++ b/go.sum @@ -78,8 +78,8 @@ github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UF github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0= -github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= +github.com/danieljoos/wincred v1.2.2 h1:774zMFJrqaeYCK2W57BgAem/MLi6mtSE47MB6BOJ0i0= +github.com/danieljoos/wincred v1.2.2/go.mod h1:w7w4Utbrz8lqeMbDAK0lkNJUv5sAOkFi7nd/ogr0Uh8= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= @@ -213,8 +213,8 @@ github.com/sijms/go-ora/v2 v2.8.24 h1:TODRWjWGwJ1VlBOhbTLat+diTYe8HXq2soJeB+HMjn github.com/sijms/go-ora/v2 v2.8.24/go.mod h1:QgFInVi3ZWyqAiJwzBQA+nbKYKH77tdp1PYoCqhR2dU= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/snowflakedb/gosnowflake v1.13.2 h1:78ovPH3fcxeHkVbOI1o98NuVWJmu0Lax10nlIRYnbjM= -github.com/snowflakedb/gosnowflake v1.13.2/go.mod h1:tNf6gX01sgKaQUBo3De+KctsK6EwUtwmwp9wf6eYKPU= +github.com/snowflakedb/gosnowflake v1.13.3 h1:udARwDZ+Eb7TnihuMno1CaNVUDbJnikWC+8p4RCJQBk= +github.com/snowflakedb/gosnowflake v1.13.3/go.mod h1:NUxNYUdyPn9sRoYB/udq/fXBXuhLS3SBTPI2/OT79uc= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= @@ -264,8 +264,8 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8= golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= -golang.org/x/oauth2 v0.25.0 h1:CY4y7XT9v0cRI9oupztF8AgiIu99L/ksR/Xp/6jrZ70= -golang.org/x/oauth2 v0.25.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.26.0 h1:afQXWNNaeC4nvZ0Ed9XvCCzXM6UHJG7iCg0W4fPqSBE= +golang.org/x/oauth2 v0.26.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -279,7 +279,6 @@ golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= From 0509f22216901a2ec1aae77b1ba21229c2033ae0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 May 2025 16:04:17 +0200 Subject: [PATCH 365/401] deps: bump github.com/sethvargo/go-envconfig from 1.2.0 to 1.3.0 (#735) Bumps [github.com/sethvargo/go-envconfig](https://github.com/sethvargo/go-envconfig) from 1.2.0 to 1.3.0. - [Release notes](https://github.com/sethvargo/go-envconfig/releases) - [Commits](https://github.com/sethvargo/go-envconfig/compare/v1.2.0...v1.3.0) --- updated-dependencies: - dependency-name: github.com/sethvargo/go-envconfig dependency-version: 1.3.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 28747418..6ecbeeae 100644 --- a/go.mod +++ b/go.mod @@ -18,7 +18,7 @@ require ( github.com/prometheus/client_model v0.6.2 github.com/prometheus/common v0.63.0 github.com/prometheus/exporter-toolkit v0.14.0 - github.com/sethvargo/go-envconfig v1.2.0 + github.com/sethvargo/go-envconfig v1.3.0 github.com/sijms/go-ora/v2 v2.8.24 github.com/snowflakedb/gosnowflake v1.13.3 github.com/vertica/vertica-sql-go v1.3.3 diff --git a/go.sum b/go.sum index 68e5cf4c..605dc139 100644 --- a/go.sum +++ b/go.sum @@ -205,8 +205,8 @@ github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/segmentio/asm v1.2.0 h1:9BQrFxC+YOHJlTlHGkTrFWf59nbL3XnCoFLTwDCI7ys= github.com/segmentio/asm v1.2.0/go.mod h1:BqMnlJP91P8d+4ibuonYZw9mfnzI9HfxselHZr5aAcs= -github.com/sethvargo/go-envconfig v1.2.0 h1:q3XkOZWkC+G1sMLCrw9oPGTjYexygLOXDmGUit1ti8Q= -github.com/sethvargo/go-envconfig v1.2.0/go.mod h1:JLd0KFWQYzyENqnEPWWZ49i4vzZo/6nRidxI8YvGiHw= +github.com/sethvargo/go-envconfig v1.3.0 h1:gJs+Fuv8+f05omTpwWIu6KmuseFAXKrIaOZSh8RMt0U= +github.com/sethvargo/go-envconfig v1.3.0/go.mod h1:JLd0KFWQYzyENqnEPWWZ49i4vzZo/6nRidxI8YvGiHw= github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k= github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME= github.com/sijms/go-ora/v2 v2.8.24 h1:TODRWjWGwJ1VlBOhbTLat+diTYe8HXq2soJeB+HMjnw= From 34fbf76df2ff6c10171df72ada252916e267cf9b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 May 2025 16:04:52 +0200 Subject: [PATCH 366/401] deps: bump github.com/xo/dburl from 0.23.6 to 0.23.7 (#736) Bumps [github.com/xo/dburl](https://github.com/xo/dburl) from 0.23.6 to 0.23.7. - [Release notes](https://github.com/xo/dburl/releases) - [Commits](https://github.com/xo/dburl/compare/v0.23.6...v0.23.7) --- updated-dependencies: - dependency-name: github.com/xo/dburl dependency-version: 0.23.7 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 6ecbeeae..0aaa6bbf 100644 --- a/go.mod +++ b/go.mod @@ -22,7 +22,7 @@ require ( github.com/sijms/go-ora/v2 v2.8.24 github.com/snowflakedb/gosnowflake v1.13.3 github.com/vertica/vertica-sql-go v1.3.3 - github.com/xo/dburl v0.23.6 + github.com/xo/dburl v0.23.7 google.golang.org/protobuf v1.36.6 gopkg.in/yaml.v3 v3.0.1 ) diff --git a/go.sum b/go.sum index 605dc139..95c08cce 100644 --- a/go.sum +++ b/go.sum @@ -229,8 +229,8 @@ github.com/vertica/vertica-sql-go v1.3.3/go.mod h1:jnn2GFuv+O2Jcjktb7zyc4Utlbu9Y github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= -github.com/xo/dburl v0.23.6 h1:/k5cN6NO+d0i+QMZyAn4UCn7q0LxzqCzPzF9esf3dT4= -github.com/xo/dburl v0.23.6/go.mod h1:uazlaAQxj4gkshhfuuYyvwCBouOmNnG2aDxTCFZpmL4= +github.com/xo/dburl v0.23.7 h1:UCiK8Dyll38NdDHVi7UOxhz5/ugWuyQGgQHdxfdEQDY= +github.com/xo/dburl v0.23.7/go.mod h1:uazlaAQxj4gkshhfuuYyvwCBouOmNnG2aDxTCFZpmL4= github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU= github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E= github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= From 55f2754e11118aa11887487be5a2b10929076895 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 May 2025 16:17:38 +0200 Subject: [PATCH 367/401] deps: bump github.com/snowflakedb/gosnowflake from 1.13.3 to 1.14.0 (#738) Bumps [github.com/snowflakedb/gosnowflake](https://github.com/snowflakedb/gosnowflake) from 1.13.3 to 1.14.0. - [Release notes](https://github.com/snowflakedb/gosnowflake/releases) - [Changelog](https://github.com/snowflakedb/gosnowflake/blob/master/release.go) - [Commits](https://github.com/snowflakedb/gosnowflake/compare/v1.13.3...v1.14.0) --- updated-dependencies: - dependency-name: github.com/snowflakedb/gosnowflake dependency-version: 1.14.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 0aaa6bbf..b1c7d546 100644 --- a/go.mod +++ b/go.mod @@ -20,7 +20,7 @@ require ( github.com/prometheus/exporter-toolkit v0.14.0 github.com/sethvargo/go-envconfig v1.3.0 github.com/sijms/go-ora/v2 v2.8.24 - github.com/snowflakedb/gosnowflake v1.13.3 + github.com/snowflakedb/gosnowflake v1.14.0 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.23.7 google.golang.org/protobuf v1.36.6 diff --git a/go.sum b/go.sum index 95c08cce..da9eed0b 100644 --- a/go.sum +++ b/go.sum @@ -213,8 +213,8 @@ github.com/sijms/go-ora/v2 v2.8.24 h1:TODRWjWGwJ1VlBOhbTLat+diTYe8HXq2soJeB+HMjn github.com/sijms/go-ora/v2 v2.8.24/go.mod h1:QgFInVi3ZWyqAiJwzBQA+nbKYKH77tdp1PYoCqhR2dU= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/snowflakedb/gosnowflake v1.13.3 h1:udARwDZ+Eb7TnihuMno1CaNVUDbJnikWC+8p4RCJQBk= -github.com/snowflakedb/gosnowflake v1.13.3/go.mod h1:NUxNYUdyPn9sRoYB/udq/fXBXuhLS3SBTPI2/OT79uc= +github.com/snowflakedb/gosnowflake v1.14.0 h1:lP91Y47ho3dzpTxWr7wjpvDXteh+ZttsLaw1WXzHS34= +github.com/snowflakedb/gosnowflake v1.14.0/go.mod h1:NUxNYUdyPn9sRoYB/udq/fXBXuhLS3SBTPI2/OT79uc= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= From cc8a920277592ef2ddf29d33feccde4cbc8b787a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 May 2025 16:18:02 +0200 Subject: [PATCH 368/401] deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager from 1.35.3 to 1.35.4 (#737) deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager Bumps [github.com/aws/aws-sdk-go-v2/service/secretsmanager](https://github.com/aws/aws-sdk-go-v2) from 1.35.3 to 1.35.4. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/ivs/v1.35.3...service/iot/v1.35.4) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/service/secretsmanager dependency-version: 1.35.4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index b1c7d546..410a622f 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/ClickHouse/clickhouse-go/v2 v2.34.0 github.com/aws/aws-sdk-go-v2 v1.36.3 github.com/aws/aws-sdk-go-v2/config v1.29.14 - github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.3 + github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.4 github.com/go-sql-driver/mysql v1.9.2 github.com/jackc/pgx/v5 v5.7.4 github.com/kardianos/minwinsvc v1.0.2 diff --git a/go.sum b/go.sum index da9eed0b..ae5187f0 100644 --- a/go.sum +++ b/go.sum @@ -62,8 +62,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 h1:f9RyWNtS8oH7cZ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5/go.mod h1:h5CoMZV2VF297/VLhRhO1WF+XYWOzXo+4HsObA4HjBQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 h1:6cnno47Me9bRykw9AEv9zkXE+5or7jz8TsskTTccbgc= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1/go.mod h1:qmdkIIAC+GCLASF7R2whgNrJADz0QZPX+Seiw/i4S3o= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.3 h1:9bxA21Y62N32bAo4tVYXBhJU+VtCVKPpXEIEsScM0kc= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.3/go.mod h1:yGhDiLKguA3iFJYxbrQkQiNzuy+ddxesSZYWVeeEH5Q= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.4 h1:EKXYJ8kgz4fiqef8xApu7eH0eae2SrVG+oHCLFybMRI= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.4/go.mod h1:yGhDiLKguA3iFJYxbrQkQiNzuy+ddxesSZYWVeeEH5Q= github.com/aws/aws-sdk-go-v2/service/sso v1.25.3 h1:1Gw+9ajCV1jogloEv1RRnvfRFia2cL6c9cuKV2Ps+G8= github.com/aws/aws-sdk-go-v2/service/sso v1.25.3/go.mod h1:qs4a9T5EMLl/Cajiw2TcbNt2UNo/Hqlyp+GiuG4CFDI= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1 h1:hXmVKytPfTy5axZ+fYbR5d0cFmC3JvwLm5kM83luako= From ae2411430d85185a545b36d06404f72ee1c6e99f Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Thu, 1 May 2025 16:22:35 +0200 Subject: [PATCH 369/401] Bump up version to 0.17.2 (#734) --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 7cca7711..c3d16c16 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.17.1 +0.17.2 From f28a13698be19355e83d3d75ef36874542be9cff Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Mon, 5 May 2025 13:17:17 +0200 Subject: [PATCH 370/401] Bump up helm chart to 0.12.2 (#741) --- helm/Chart.yaml | 4 ++-- helm/README.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 7c6fad5e..2a4e06b4 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: sql-exporter description: Database-agnostic SQL exporter for Prometheus type: application -version: 0.12.1 -appVersion: 0.17.1 +version: 0.12.2 +appVersion: 0.17.2 keywords: - exporter - servicemonitor diff --git a/helm/README.md b/helm/README.md index bc45b970..b81212ff 100644 --- a/helm/README.md +++ b/helm/README.md @@ -1,6 +1,6 @@ # sql-exporter -![Version: 0.12.1](https://img.shields.io/badge/Version-0.12.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.17.1](https://img.shields.io/badge/AppVersion-0.17.1-informational?style=flat-square) +![Version: 0.12.2](https://img.shields.io/badge/Version-0.12.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.17.2](https://img.shields.io/badge/AppVersion-0.17.2-informational?style=flat-square) Database-agnostic SQL exporter for Prometheus From 44e93a8c621fd957cdb9e2ca42a96db130b2b6a7 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Mon, 5 May 2025 20:44:37 +0200 Subject: [PATCH 371/401] build: update go version to 1.24+, remove toolchain directive (#742) * build: remove toolchain directive * build(promu): set go version to 1.24 * build(gha): set the version to 1.24+ --- .github/workflows/build.yml | 3 ++- .github/workflows/release.yml | 3 ++- .promu.yml | 2 +- go.mod | 2 -- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d066f350..eaab1326 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -17,7 +17,8 @@ jobs: - name: Set up Go 1.x uses: actions/setup-go@v5 with: - go-version: ^1.20 + go-version: ^1.24 + check-latest: true id: go - name: Check out code into the Go module directory uses: actions/checkout@v4 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0a8f4fe8..d955cf64 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -16,7 +16,8 @@ jobs: - name: Set up Go 1.x uses: actions/setup-go@v5 with: - go-version: ^1.20 + go-version: ^1.24 + check-latest: true - name: Check out code into the Go module directory uses: actions/checkout@v4 diff --git a/.promu.yml b/.promu.yml index 9067195a..bf325a62 100644 --- a/.promu.yml +++ b/.promu.yml @@ -1,6 +1,6 @@ go: cgo: false - version: 1.23 + version: 1.24 repository: path: github.com/burningalchemist/sql_exporter build: diff --git a/go.mod b/go.mod index 410a622f..51122da6 100644 --- a/go.mod +++ b/go.mod @@ -2,8 +2,6 @@ module github.com/burningalchemist/sql_exporter go 1.23.0 -toolchain go1.24.1 - require ( github.com/ClickHouse/clickhouse-go/v2 v2.34.0 github.com/aws/aws-sdk-go-v2 v1.36.3 From 9c33cb6fe5c363d214de75a5f1cbd6fffe1a8a7a Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Tue, 6 May 2025 14:58:57 +0200 Subject: [PATCH 372/401] Bump up version to 0.17.3 (#743) --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index c3d16c16..884e9604 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.17.2 +0.17.3 From 0e1b0e86498dc9d9e633312990faea54db839cdb Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Tue, 6 May 2025 15:32:58 +0200 Subject: [PATCH 373/401] Bump up helm chart to 0.12.3 (#744) --- helm/Chart.yaml | 4 ++-- helm/README.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 2a4e06b4..c71d1b2e 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: sql-exporter description: Database-agnostic SQL exporter for Prometheus type: application -version: 0.12.2 -appVersion: 0.17.2 +version: 0.12.3 +appVersion: 0.17.3 keywords: - exporter - servicemonitor diff --git a/helm/README.md b/helm/README.md index b81212ff..f4e18dbc 100644 --- a/helm/README.md +++ b/helm/README.md @@ -1,6 +1,6 @@ # sql-exporter -![Version: 0.12.2](https://img.shields.io/badge/Version-0.12.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.17.2](https://img.shields.io/badge/AppVersion-0.17.2-informational?style=flat-square) +![Version: 0.12.3](https://img.shields.io/badge/Version-0.12.3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.17.3](https://img.shields.io/badge/AppVersion-0.17.3-informational?style=flat-square) Database-agnostic SQL exporter for Prometheus From 92d210222b519b7fce793f395f75a92d73dd3b64 Mon Sep 17 00:00:00 2001 From: Andre Ferraz <31141+deferraz@users.noreply.github.com> Date: Wed, 7 May 2025 09:09:35 -0300 Subject: [PATCH 374/401] feat: add -config.check flag for configuration validation (#745) * feat: add -check-config flag to validate configuration before starting * change flag naming to config.check --- README.md | 2 ++ cmd/sql_exporter/main.go | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/README.md b/README.md index a6ad0b1e..506f0988 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,8 @@ $ ./sql_exporter -help Usage of ./sql_exporter: -config.file string SQL Exporter configuration file path. (default "sql_exporter.yml") + -config.check + Check configuration and exit. -web.listen-address string Address to listen on for web interface and telemetry. (default ":9399") -web.metrics-path string diff --git a/cmd/sql_exporter/main.go b/cmd/sql_exporter/main.go index a9a5f799..5594548d 100644 --- a/cmd/sql_exporter/main.go +++ b/cmd/sql_exporter/main.go @@ -35,6 +35,7 @@ var ( enableReload = flag.Bool("web.enable-reload", false, "Enable reload collector data handler") webConfigFile = flag.String("web.config.file", "", "[EXPERIMENTAL] TLS/BasicAuth configuration file path") configFile = flag.String("config.file", "sql_exporter.yml", "SQL Exporter configuration file path") + configCheck = flag.Bool("config.check", false, "Check configuration and exit") logFormat = flag.String("log.format", "logfmt", "Set log output format") logLevel = flag.String("log.level", "info", "Set log level") logFile = flag.String("log.file", "", "Log file to write to, leave empty to write to stderr") @@ -82,6 +83,16 @@ func main() { *configFile = val } + if *configCheck { + slog.Info("Checking configuration file", "configFile", *configFile) + if _, err := cfg.Load(*configFile); err != nil { + slog.Error("Configuration check failed", "error", err) + os.Exit(1) + } + slog.Info("Configuration check successful") + os.Exit(0) + } + slog.Warn("Starting SQL exporter", "versionInfo", version.Info(), "buildContext", version.BuildContext()) exporter, err := sql_exporter.NewExporter(*configFile) if err != nil { From 613f7b636e085a9373bdd55fdc64732c998938e6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Jun 2025 22:45:58 +0100 Subject: [PATCH 375/401] deps: bump github.com/snowflakedb/gosnowflake from 1.14.0 to 1.14.1 (#751) Bumps [github.com/snowflakedb/gosnowflake](https://github.com/snowflakedb/gosnowflake) from 1.14.0 to 1.14.1. - [Release notes](https://github.com/snowflakedb/gosnowflake/releases) - [Changelog](https://github.com/snowflakedb/gosnowflake/blob/master/release.go) - [Commits](https://github.com/snowflakedb/gosnowflake/compare/v1.14.0...v1.14.1) --- updated-dependencies: - dependency-name: github.com/snowflakedb/gosnowflake dependency-version: 1.14.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 51122da6..859998b1 100644 --- a/go.mod +++ b/go.mod @@ -18,7 +18,7 @@ require ( github.com/prometheus/exporter-toolkit v0.14.0 github.com/sethvargo/go-envconfig v1.3.0 github.com/sijms/go-ora/v2 v2.8.24 - github.com/snowflakedb/gosnowflake v1.14.0 + github.com/snowflakedb/gosnowflake v1.14.1 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.23.7 google.golang.org/protobuf v1.36.6 diff --git a/go.sum b/go.sum index ae5187f0..2adc68b8 100644 --- a/go.sum +++ b/go.sum @@ -96,6 +96,10 @@ github.com/go-faster/city v1.0.1 h1:4WAxSZ3V2Ws4QRDrscLEDcibJY8uf41H6AhXDrNDcGw= github.com/go-faster/city v1.0.1/go.mod h1:jKcUJId49qdW3L1qKHH/3wPeUstCVpVSXTM6vO3VcTw= github.com/go-faster/errors v0.7.1 h1:MkJTnDoEdi9pDabt1dpWf7AA8/BaSYZqibYyhZ20AYg= github.com/go-faster/errors v0.7.1/go.mod h1:5ySTjWFiphBs07IKuiL69nxdfd5+fzh1u7FPGZP2quo= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-sql-driver/mysql v1.9.2 h1:4cNKDYQ1I84SXslGddlsrMhc8k4LeDVj6Ad6WRjiHuU= github.com/go-sql-driver/mysql v1.9.2/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI64Gl8i5p1WMU= github.com/goccy/go-json v0.10.4 h1:JSwxQzIqKfmFX1swYPpUThQZp/Ka4wzJdK0LWVytLPM= @@ -213,8 +217,8 @@ github.com/sijms/go-ora/v2 v2.8.24 h1:TODRWjWGwJ1VlBOhbTLat+diTYe8HXq2soJeB+HMjn github.com/sijms/go-ora/v2 v2.8.24/go.mod h1:QgFInVi3ZWyqAiJwzBQA+nbKYKH77tdp1PYoCqhR2dU= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/snowflakedb/gosnowflake v1.14.0 h1:lP91Y47ho3dzpTxWr7wjpvDXteh+ZttsLaw1WXzHS34= -github.com/snowflakedb/gosnowflake v1.14.0/go.mod h1:NUxNYUdyPn9sRoYB/udq/fXBXuhLS3SBTPI2/OT79uc= +github.com/snowflakedb/gosnowflake v1.14.1 h1:FnnlaSAm6Zyq3ujqa0JmeU1Ivj7Iz+A0C2YGV6nbRSw= +github.com/snowflakedb/gosnowflake v1.14.1/go.mod h1:+3Eh8swS12G6Fbt/wb5Vcse2Id7VU9HGgKSH8ydiumU= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= @@ -241,8 +245,14 @@ github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= go.mongodb.org/mongo-driver v1.11.4/go.mod h1:PTSz5yu21bkT/wXpkS7WR5f0ddqw5quethTUn9WM+2g= +go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= +go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ= go.opentelemetry.io/otel v1.35.0/go.mod h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y= +go.opentelemetry.io/otel/metric v1.35.0 h1:0znxYu2SNyuMSQT4Y9WDWej0VpcsxkuklLa4/siN90M= +go.opentelemetry.io/otel/metric v1.35.0/go.mod h1:nKVFgxBZ2fReX6IlyW28MgZojkoAkJGaE8CpgeAU3oE= +go.opentelemetry.io/otel/sdk v1.35.0 h1:iPctf8iprVySXSKJffSS79eOjl9pvxV9ZqOWT0QejKY= +go.opentelemetry.io/otel/sdk v1.35.0/go.mod h1:+ga1bZliga3DxJ3CQGg3updiaAJoNECOgJREo9KHGQg= go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs= go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= From dc72fdffcb7583525a185b413a4de3d760290522 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Jun 2025 07:55:25 +0100 Subject: [PATCH 376/401] deps: bump github.com/microsoft/go-mssqldb from 1.8.0 to 1.8.2 (#750) Bumps [github.com/microsoft/go-mssqldb](https://github.com/microsoft/go-mssqldb) from 1.8.0 to 1.8.2. - [Release notes](https://github.com/microsoft/go-mssqldb/releases) - [Changelog](https://github.com/microsoft/go-mssqldb/blob/main/CHANGELOG.md) - [Commits](https://github.com/microsoft/go-mssqldb/compare/v1.8.0...v1.8.2) --- updated-dependencies: - dependency-name: github.com/microsoft/go-mssqldb dependency-version: 1.8.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 859998b1..0389889f 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/jackc/pgx/v5 v5.7.4 github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.9 - github.com/microsoft/go-mssqldb v1.8.0 + github.com/microsoft/go-mssqldb v1.8.2 github.com/prometheus/client_golang v1.22.0 github.com/prometheus/client_model v0.6.2 github.com/prometheus/common v0.63.0 diff --git a/go.sum b/go.sum index 2adc68b8..ff0de192 100644 --- a/go.sum +++ b/go.sum @@ -167,8 +167,8 @@ github.com/mdlayher/socket v0.4.1 h1:eM9y2/jlbs1M615oshPQOHZzj6R6wMT7bX5NPiQvn2U github.com/mdlayher/socket v0.4.1/go.mod h1:cAqeGjoufqdxWkD7DkpyS+wcefOtmu5OQ8KuoJGIReA= github.com/mdlayher/vsock v1.2.1 h1:pC1mTJTvjo1r9n9fbm7S1j04rCgCzhCOS5DY0zqHlnQ= github.com/mdlayher/vsock v1.2.1/go.mod h1:NRfCibel++DgeMD8z/hP+PPTjlNJsdPOmxcnENvE+SE= -github.com/microsoft/go-mssqldb v1.8.0 h1:7cyZ/AT7ycDsEoWPIXibd+aVKFtteUNhDGf3aobP+tw= -github.com/microsoft/go-mssqldb v1.8.0/go.mod h1:6znkekS3T2vp0waiMhen4GPU1BiAsrP+iXHcE7a7rFo= +github.com/microsoft/go-mssqldb v1.8.2 h1:236sewazvC8FvG6Dr3bszrVhMkAl4KYImryLkRMCd0I= +github.com/microsoft/go-mssqldb v1.8.2/go.mod h1:vp38dT33FGfVotRiTmDo3bFyaHq+p3LektQrjTULowo= github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8 h1:AMFGa4R4MiIpspGNG7Z948v4n35fFGB3RR3G/ry4FWs= github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY= github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3 h1:+n/aFZefKZp7spd8DFdX7uMikMLXX4oubIzJF4kv/wI= From f31dfb1f7d363098c761c0baa16990d9f4df53fa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Jun 2025 07:55:52 +0100 Subject: [PATCH 377/401] deps: bump github.com/xo/dburl from 0.23.7 to 0.23.8 (#752) Bumps [github.com/xo/dburl](https://github.com/xo/dburl) from 0.23.7 to 0.23.8. - [Release notes](https://github.com/xo/dburl/releases) - [Commits](https://github.com/xo/dburl/compare/v0.23.7...v0.23.8) --- updated-dependencies: - dependency-name: github.com/xo/dburl dependency-version: 0.23.8 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 0389889f..76f8ee10 100644 --- a/go.mod +++ b/go.mod @@ -20,7 +20,7 @@ require ( github.com/sijms/go-ora/v2 v2.8.24 github.com/snowflakedb/gosnowflake v1.14.1 github.com/vertica/vertica-sql-go v1.3.3 - github.com/xo/dburl v0.23.7 + github.com/xo/dburl v0.23.8 google.golang.org/protobuf v1.36.6 gopkg.in/yaml.v3 v3.0.1 ) diff --git a/go.sum b/go.sum index ff0de192..533c042b 100644 --- a/go.sum +++ b/go.sum @@ -233,8 +233,8 @@ github.com/vertica/vertica-sql-go v1.3.3/go.mod h1:jnn2GFuv+O2Jcjktb7zyc4Utlbu9Y github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= -github.com/xo/dburl v0.23.7 h1:UCiK8Dyll38NdDHVi7UOxhz5/ugWuyQGgQHdxfdEQDY= -github.com/xo/dburl v0.23.7/go.mod h1:uazlaAQxj4gkshhfuuYyvwCBouOmNnG2aDxTCFZpmL4= +github.com/xo/dburl v0.23.8 h1:NwFghJfjaUW7tp+WE5mTLQQCfgseRsvgXjlSvk7x4t4= +github.com/xo/dburl v0.23.8/go.mod h1:uazlaAQxj4gkshhfuuYyvwCBouOmNnG2aDxTCFZpmL4= github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU= github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E= github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= From 0722376eb5c8da7b7c50486ff1116b478b1df271 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Jun 2025 08:02:13 +0100 Subject: [PATCH 378/401] deps: bump github.com/jackc/pgx/v5 from 5.7.4 to 5.7.5 (#753) --- go.mod | 12 ++++++------ go.sum | 24 ++++++++++++------------ 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/go.mod b/go.mod index 76f8ee10..24affdb9 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/aws/aws-sdk-go-v2/config v1.29.14 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.4 github.com/go-sql-driver/mysql v1.9.2 - github.com/jackc/pgx/v5 v5.7.4 + github.com/jackc/pgx/v5 v5.7.5 github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.9 github.com/microsoft/go-mssqldb v1.8.2 @@ -100,15 +100,15 @@ require ( github.com/zeebo/xxh3 v1.0.2 // indirect go.opentelemetry.io/otel v1.35.0 // indirect go.opentelemetry.io/otel/trace v1.35.0 // indirect - golang.org/x/crypto v0.36.0 // indirect + golang.org/x/crypto v0.37.0 // indirect golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 // indirect golang.org/x/mod v0.23.0 // indirect golang.org/x/net v0.38.0 // indirect golang.org/x/oauth2 v0.26.0 // indirect - golang.org/x/sync v0.12.0 // indirect - golang.org/x/sys v0.31.0 // indirect - golang.org/x/term v0.30.0 // indirect - golang.org/x/text v0.23.0 // indirect + golang.org/x/sync v0.13.0 // indirect + golang.org/x/sys v0.32.0 // indirect + golang.org/x/term v0.31.0 // indirect + golang.org/x/text v0.24.0 // indirect golang.org/x/tools v0.30.0 // indirect golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/go.sum b/go.sum index 533c042b..7201ff47 100644 --- a/go.sum +++ b/go.sum @@ -132,8 +132,8 @@ github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsI github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 h1:iCEnooe7UlwOQYpKFhBabPMi4aNAfoODPEFNiAnClxo= github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= -github.com/jackc/pgx/v5 v5.7.4 h1:9wKznZrhWa2QiHL+NjTSPP6yjl3451BX3imWDnokYlg= -github.com/jackc/pgx/v5 v5.7.4/go.mod h1:ncY89UGWxg82EykZUwSpUKEfccBGGYq1xjrOpsbsfGQ= +github.com/jackc/pgx/v5 v5.7.5 h1:JHGfMnQY+IEtGM63d+NGMjoRpysB2JBwDr5fsngwmJs= +github.com/jackc/pgx/v5 v5.7.5/go.mod h1:aruU7o91Tc2q2cFp5h4uP3f6ztExVpyVv88Xl/8Vl8M= github.com/jackc/puddle/v2 v2.2.2 h1:PR8nw+E/1w0GLuRFSmiioY6UooMp6KJv0/61nB7icHo= github.com/jackc/puddle/v2 v2.2.2/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= @@ -259,8 +259,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34= -golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc= +golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE= +golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc= golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 h1:e66Fs6Z+fZTbFBAxKfP3PALWBtpfqks2bwGcexMxgtk= golang.org/x/exp v0.0.0-20240909161429-701f63a606c0/go.mod h1:2TbTHSBQa924w8M6Xs1QcRcFwyucIwBGpK1p2f1YFFY= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -281,8 +281,8 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw= -golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.13.0 h1:AauUjRAJ9OSnvULf/ARrrVywoJDy0YS2AwQ98I37610= +golang.org/x/sync v0.13.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -292,17 +292,17 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik= -golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= +golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.30.0 h1:PQ39fJZ+mfadBm0y5WlL4vlM7Sx1Hgf13sMIY2+QS9Y= -golang.org/x/term v0.30.0/go.mod h1:NYYFdzHoI5wRh/h5tDMdMqCqPJZEuNqVR5xJLd/n67g= +golang.org/x/term v0.31.0 h1:erwDkOK1Msy6offm1mOgvspSkslFnIGsFnxOKoufg3o= +golang.org/x/term v0.31.0/go.mod h1:R4BeIy7D95HzImkxGkTW1UQTtP54tio2RyHz7PwK0aw= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY= -golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4= +golang.org/x/text v0.24.0 h1:dd5Bzh4yt5KYA8f9CJHCP4FB4D51c2c6JvN37xJJkJ0= +golang.org/x/text v0.24.0/go.mod h1:L8rBsPeo2pSS+xqN0d5u2ikmjtmoJbDBT1b7nHvFCdU= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= From 778c2326ee79bcff7711f106c8b81fc9628d8066 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Jun 2025 08:08:28 +0100 Subject: [PATCH 379/401] deps: bump github.com/prometheus/common from 0.63.0 to 0.64.0 (#754) --- go.mod | 16 ++++++++-------- go.sum | 32 ++++++++++++++++---------------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/go.mod b/go.mod index 24affdb9..01fe90e2 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/microsoft/go-mssqldb v1.8.2 github.com/prometheus/client_golang v1.22.0 github.com/prometheus/client_model v0.6.2 - github.com/prometheus/common v0.63.0 + github.com/prometheus/common v0.64.0 github.com/prometheus/exporter-toolkit v0.14.0 github.com/sethvargo/go-envconfig v1.3.0 github.com/sijms/go-ora/v2 v2.8.24 @@ -100,15 +100,15 @@ require ( github.com/zeebo/xxh3 v1.0.2 // indirect go.opentelemetry.io/otel v1.35.0 // indirect go.opentelemetry.io/otel/trace v1.35.0 // indirect - golang.org/x/crypto v0.37.0 // indirect + golang.org/x/crypto v0.38.0 // indirect golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 // indirect golang.org/x/mod v0.23.0 // indirect - golang.org/x/net v0.38.0 // indirect - golang.org/x/oauth2 v0.26.0 // indirect - golang.org/x/sync v0.13.0 // indirect - golang.org/x/sys v0.32.0 // indirect - golang.org/x/term v0.31.0 // indirect - golang.org/x/text v0.24.0 // indirect + golang.org/x/net v0.40.0 // indirect + golang.org/x/oauth2 v0.30.0 // indirect + golang.org/x/sync v0.14.0 // indirect + golang.org/x/sys v0.33.0 // indirect + golang.org/x/term v0.32.0 // indirect + golang.org/x/text v0.25.0 // indirect golang.org/x/tools v0.30.0 // indirect golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/go.sum b/go.sum index 7201ff47..1000ed94 100644 --- a/go.sum +++ b/go.sum @@ -198,8 +198,8 @@ github.com/prometheus/client_golang v1.22.0 h1:rb93p9lokFEsctTys46VnV1kLCDpVZ0a/ github.com/prometheus/client_golang v1.22.0/go.mod h1:R7ljNsLXhuQXYZYtw6GAE9AZg8Y7vEW5scdCXrWRXC0= github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= -github.com/prometheus/common v0.63.0 h1:YR/EIY1o3mEFP/kZCD7iDMnLPlGyuU2Gb3HIcXnA98k= -github.com/prometheus/common v0.63.0/go.mod h1:VVFF/fBIoToEnWRVkYoXEkq3R3paCoxG9PXP74SnV18= +github.com/prometheus/common v0.64.0 h1:pdZeA+g617P7oGv1CzdTzyeShxAGrTBsolKNOLQPGO4= +github.com/prometheus/common v0.64.0/go.mod h1:0gZns+BLRQ3V6NdaerOhMbwwRbNh9hkGINtQAsP5GS8= github.com/prometheus/exporter-toolkit v0.14.0 h1:NMlswfibpcZZ+H0sZBiTjrA3/aBFHkNZqE+iCj5EmRg= github.com/prometheus/exporter-toolkit v0.14.0/go.mod h1:Gu5LnVvt7Nr/oqTBUC23WILZepW0nffNo10XdhQcwWA= github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= @@ -259,8 +259,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE= -golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc= +golang.org/x/crypto v0.38.0 h1:jt+WWG8IZlBnVbomuhg2Mdq0+BBQaHbtqHEFEigjUV8= +golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw= golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 h1:e66Fs6Z+fZTbFBAxKfP3PALWBtpfqks2bwGcexMxgtk= golang.org/x/exp v0.0.0-20240909161429-701f63a606c0/go.mod h1:2TbTHSBQa924w8M6Xs1QcRcFwyucIwBGpK1p2f1YFFY= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -272,17 +272,17 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8= -golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= -golang.org/x/oauth2 v0.26.0 h1:afQXWNNaeC4nvZ0Ed9XvCCzXM6UHJG7iCg0W4fPqSBE= -golang.org/x/oauth2 v0.26.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY= +golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= +golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI= +golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.13.0 h1:AauUjRAJ9OSnvULf/ARrrVywoJDy0YS2AwQ98I37610= -golang.org/x/sync v0.13.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ= +golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -292,17 +292,17 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= -golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= +golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.31.0 h1:erwDkOK1Msy6offm1mOgvspSkslFnIGsFnxOKoufg3o= -golang.org/x/term v0.31.0/go.mod h1:R4BeIy7D95HzImkxGkTW1UQTtP54tio2RyHz7PwK0aw= +golang.org/x/term v0.32.0 h1:DR4lr0TjUs3epypdhTOkMmuF5CDFJ/8pOnbzMZPQ7bg= +golang.org/x/term v0.32.0/go.mod h1:uZG1FhGx848Sqfsq4/DlJr3xGGsYMu/L5GW4abiaEPQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.24.0 h1:dd5Bzh4yt5KYA8f9CJHCP4FB4D51c2c6JvN37xJJkJ0= -golang.org/x/text v0.24.0/go.mod h1:L8rBsPeo2pSS+xqN0d5u2ikmjtmoJbDBT1b7nHvFCdU= +golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4= +golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= From 7862cae19fe053e1de8e81003cba660a42f39a63 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Jun 2025 02:28:18 +0100 Subject: [PATCH 380/401] deps: bump github.com/ClickHouse/clickhouse-go/v2 from 2.34.0 to 2.35.0 (#755) --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 01fe90e2..99df158f 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/burningalchemist/sql_exporter go 1.23.0 require ( - github.com/ClickHouse/clickhouse-go/v2 v2.34.0 + github.com/ClickHouse/clickhouse-go/v2 v2.35.0 github.com/aws/aws-sdk-go-v2 v1.36.3 github.com/aws/aws-sdk-go-v2/config v1.29.14 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.4 @@ -35,7 +35,7 @@ require ( github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0 // indirect github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect github.com/BurntSushi/toml v1.4.0 // indirect - github.com/ClickHouse/ch-go v0.65.1 // indirect + github.com/ClickHouse/ch-go v0.66.0 // indirect github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c // indirect github.com/andybalholm/brotli v1.1.1 // indirect github.com/apache/arrow-go/v18 v18.0.0 // indirect diff --git a/go.sum b/go.sum index 1000ed94..195c90b5 100644 --- a/go.sum +++ b/go.sum @@ -20,10 +20,10 @@ github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 h1:XHOnouVk1mx github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= -github.com/ClickHouse/ch-go v0.65.1 h1:SLuxmLl5Mjj44/XbINsK2HFvzqup0s6rwKLFH347ZhU= -github.com/ClickHouse/ch-go v0.65.1/go.mod h1:bsodgURwmrkvkBe5jw1qnGDgyITsYErfONKAHn05nv4= -github.com/ClickHouse/clickhouse-go/v2 v2.34.0 h1:Y4rqkdrRHgExvC4o/NTbLdY5LFQ3LHS77/RNFxFX3Co= -github.com/ClickHouse/clickhouse-go/v2 v2.34.0/go.mod h1:yioSINoRLVZkLyDzdMXPLRIqhDvel8iLBlwh6Iefso8= +github.com/ClickHouse/ch-go v0.66.0 h1:hLslxxAVb2PHpbHr4n0d6aP8CEIpUYGMVT1Yj/Q5Img= +github.com/ClickHouse/ch-go v0.66.0/go.mod h1:noiHWyLMJAZ5wYuq3R/K0TcRhrNA8h7o1AqHX0klEhM= +github.com/ClickHouse/clickhouse-go/v2 v2.35.0 h1:ZMLZqxu+NiW55f4JS32kzyEbMb7CthGn3ziCcULOvSE= +github.com/ClickHouse/clickhouse-go/v2 v2.35.0/go.mod h1:O2FFT/rugdpGEW2VKyEGyMUWyQU0ahmenY9/emxLPxs= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c h1:RGWPOewvKIROun94nF7v2cua9qP+thov/7M50KEoeSU= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA= From 31a54515e9e01f7478806898822ac9428e0df3b3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 Jun 2025 12:03:34 +0200 Subject: [PATCH 381/401] deps: bump github.com/sijms/go-ora/v2 from 2.8.24 to 2.9.0 (#756) Bumps [github.com/sijms/go-ora/v2](https://github.com/sijms/go-ora) from 2.8.24 to 2.9.0. - [Release notes](https://github.com/sijms/go-ora/releases) - [Commits](https://github.com/sijms/go-ora/compare/v2.8.24...v2.9.0) --- updated-dependencies: - dependency-name: github.com/sijms/go-ora/v2 dependency-version: 2.9.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 99df158f..efbfa2e2 100644 --- a/go.mod +++ b/go.mod @@ -17,7 +17,7 @@ require ( github.com/prometheus/common v0.64.0 github.com/prometheus/exporter-toolkit v0.14.0 github.com/sethvargo/go-envconfig v1.3.0 - github.com/sijms/go-ora/v2 v2.8.24 + github.com/sijms/go-ora/v2 v2.9.0 github.com/snowflakedb/gosnowflake v1.14.1 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.23.8 diff --git a/go.sum b/go.sum index 195c90b5..dcf88a1c 100644 --- a/go.sum +++ b/go.sum @@ -213,8 +213,8 @@ github.com/sethvargo/go-envconfig v1.3.0 h1:gJs+Fuv8+f05omTpwWIu6KmuseFAXKrIaOZS github.com/sethvargo/go-envconfig v1.3.0/go.mod h1:JLd0KFWQYzyENqnEPWWZ49i4vzZo/6nRidxI8YvGiHw= github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k= github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME= -github.com/sijms/go-ora/v2 v2.8.24 h1:TODRWjWGwJ1VlBOhbTLat+diTYe8HXq2soJeB+HMjnw= -github.com/sijms/go-ora/v2 v2.8.24/go.mod h1:QgFInVi3ZWyqAiJwzBQA+nbKYKH77tdp1PYoCqhR2dU= +github.com/sijms/go-ora/v2 v2.9.0 h1:+iQbUeTeCOFMb5BsOMgUhV8KWyrv9yjKpcK4x7+MFrg= +github.com/sijms/go-ora/v2 v2.9.0/go.mod h1:QgFInVi3ZWyqAiJwzBQA+nbKYKH77tdp1PYoCqhR2dU= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/snowflakedb/gosnowflake v1.14.1 h1:FnnlaSAm6Zyq3ujqa0JmeU1Ivj7Iz+A0C2YGV6nbRSw= From 44992d834097d6682155e257e98b1eb293fb1cd2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 Jun 2025 12:22:40 +0200 Subject: [PATCH 382/401] deps: bump github.com/ClickHouse/clickhouse-go/v2 from 2.35.0 to 2.36.0 (#759) Bumps [github.com/ClickHouse/clickhouse-go/v2](https://github.com/ClickHouse/clickhouse-go) from 2.35.0 to 2.36.0. - [Release notes](https://github.com/ClickHouse/clickhouse-go/releases) - [Changelog](https://github.com/ClickHouse/clickhouse-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/ClickHouse/clickhouse-go/compare/v2.35.0...v2.36.0) --- updated-dependencies: - dependency-name: github.com/ClickHouse/clickhouse-go/v2 dependency-version: 2.36.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 16 ++++++++-------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/go.mod b/go.mod index efbfa2e2..dd57fb36 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/burningalchemist/sql_exporter go 1.23.0 require ( - github.com/ClickHouse/clickhouse-go/v2 v2.35.0 + github.com/ClickHouse/clickhouse-go/v2 v2.36.0 github.com/aws/aws-sdk-go-v2 v1.36.3 github.com/aws/aws-sdk-go-v2/config v1.29.14 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.4 @@ -98,8 +98,8 @@ require ( github.com/shopspring/decimal v1.4.0 // indirect github.com/sirupsen/logrus v1.9.3 // indirect github.com/zeebo/xxh3 v1.0.2 // indirect - go.opentelemetry.io/otel v1.35.0 // indirect - go.opentelemetry.io/otel/trace v1.35.0 // indirect + go.opentelemetry.io/otel v1.36.0 // indirect + go.opentelemetry.io/otel/trace v1.36.0 // indirect golang.org/x/crypto v0.38.0 // indirect golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 // indirect golang.org/x/mod v0.23.0 // indirect diff --git a/go.sum b/go.sum index dcf88a1c..2293d28b 100644 --- a/go.sum +++ b/go.sum @@ -22,8 +22,8 @@ github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0 github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/ClickHouse/ch-go v0.66.0 h1:hLslxxAVb2PHpbHr4n0d6aP8CEIpUYGMVT1Yj/Q5Img= github.com/ClickHouse/ch-go v0.66.0/go.mod h1:noiHWyLMJAZ5wYuq3R/K0TcRhrNA8h7o1AqHX0klEhM= -github.com/ClickHouse/clickhouse-go/v2 v2.35.0 h1:ZMLZqxu+NiW55f4JS32kzyEbMb7CthGn3ziCcULOvSE= -github.com/ClickHouse/clickhouse-go/v2 v2.35.0/go.mod h1:O2FFT/rugdpGEW2VKyEGyMUWyQU0ahmenY9/emxLPxs= +github.com/ClickHouse/clickhouse-go/v2 v2.36.0 h1:FJ03h8VdmBUhvR9nQEu5jRLdfG0c/HSxUjiNdOxRQww= +github.com/ClickHouse/clickhouse-go/v2 v2.36.0/go.mod h1:aijX64fKD1hAWu/zqWEmiGk7wRE8ZnpN0M3UvjsZG3I= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c h1:RGWPOewvKIROun94nF7v2cua9qP+thov/7M50KEoeSU= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA= @@ -247,14 +247,14 @@ github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaD go.mongodb.org/mongo-driver v1.11.4/go.mod h1:PTSz5yu21bkT/wXpkS7WR5f0ddqw5quethTUn9WM+2g= go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= -go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ= -go.opentelemetry.io/otel v1.35.0/go.mod h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y= -go.opentelemetry.io/otel/metric v1.35.0 h1:0znxYu2SNyuMSQT4Y9WDWej0VpcsxkuklLa4/siN90M= -go.opentelemetry.io/otel/metric v1.35.0/go.mod h1:nKVFgxBZ2fReX6IlyW28MgZojkoAkJGaE8CpgeAU3oE= +go.opentelemetry.io/otel v1.36.0 h1:UumtzIklRBY6cI/lllNZlALOF5nNIzJVb16APdvgTXg= +go.opentelemetry.io/otel v1.36.0/go.mod h1:/TcFMXYjyRNh8khOAO9ybYkqaDBb/70aVwkNML4pP8E= +go.opentelemetry.io/otel/metric v1.36.0 h1:MoWPKVhQvJ+eeXWHFBOPoBOi20jh6Iq2CcCREuTYufE= +go.opentelemetry.io/otel/metric v1.36.0/go.mod h1:zC7Ks+yeyJt4xig9DEw9kuUFe5C3zLbVjV2PzT6qzbs= go.opentelemetry.io/otel/sdk v1.35.0 h1:iPctf8iprVySXSKJffSS79eOjl9pvxV9ZqOWT0QejKY= go.opentelemetry.io/otel/sdk v1.35.0/go.mod h1:+ga1bZliga3DxJ3CQGg3updiaAJoNECOgJREo9KHGQg= -go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs= -go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc= +go.opentelemetry.io/otel/trace v1.36.0 h1:ahxWNuqZjpdiFAyrIoQ4GIiAIhxAunQR6MUoKrsNd4w= +go.opentelemetry.io/otel/trace v1.36.0/go.mod h1:gQ+OnDZzrybY4k4seLzPAWNwVBBVlF2szhehOBB/tGA= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= From 2df6cf8914cbeb4d64df479e40b05904ae1f01f2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 Jun 2025 13:07:07 +0200 Subject: [PATCH 383/401] deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager from 1.35.4 to 1.35.5 (#757) deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager Bumps [github.com/aws/aws-sdk-go-v2/service/secretsmanager](https://github.com/aws/aws-sdk-go-v2) from 1.35.4 to 1.35.5. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/service/ssm/v1.35.5/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/iot/v1.35.4...service/ssm/v1.35.5) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/service/secretsmanager dependency-version: 1.35.5 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index dd57fb36..f247efbc 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/ClickHouse/clickhouse-go/v2 v2.36.0 github.com/aws/aws-sdk-go-v2 v1.36.3 github.com/aws/aws-sdk-go-v2/config v1.29.14 - github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.4 + github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.5 github.com/go-sql-driver/mysql v1.9.2 github.com/jackc/pgx/v5 v5.7.5 github.com/kardianos/minwinsvc v1.0.2 diff --git a/go.sum b/go.sum index 2293d28b..8a1e35e5 100644 --- a/go.sum +++ b/go.sum @@ -62,8 +62,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 h1:f9RyWNtS8oH7cZ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5/go.mod h1:h5CoMZV2VF297/VLhRhO1WF+XYWOzXo+4HsObA4HjBQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 h1:6cnno47Me9bRykw9AEv9zkXE+5or7jz8TsskTTccbgc= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1/go.mod h1:qmdkIIAC+GCLASF7R2whgNrJADz0QZPX+Seiw/i4S3o= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.4 h1:EKXYJ8kgz4fiqef8xApu7eH0eae2SrVG+oHCLFybMRI= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.4/go.mod h1:yGhDiLKguA3iFJYxbrQkQiNzuy+ddxesSZYWVeeEH5Q= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.5 h1:QLY+ScpXXDEZFUcJ/fsVMa4+jnwLHdik1PBCXJpDvAA= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.5/go.mod h1:yGhDiLKguA3iFJYxbrQkQiNzuy+ddxesSZYWVeeEH5Q= github.com/aws/aws-sdk-go-v2/service/sso v1.25.3 h1:1Gw+9ajCV1jogloEv1RRnvfRFia2cL6c9cuKV2Ps+G8= github.com/aws/aws-sdk-go-v2/service/sso v1.25.3/go.mod h1:qs4a9T5EMLl/Cajiw2TcbNt2UNo/Hqlyp+GiuG4CFDI= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1 h1:hXmVKytPfTy5axZ+fYbR5d0cFmC3JvwLm5kM83luako= From d464fdf3c58909e66ebcf18440010b364b371e86 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 Jun 2025 13:43:33 +0200 Subject: [PATCH 384/401] deps: bump github.com/aws/aws-sdk-go-v2/config from 1.29.14 to 1.29.15 (#758) Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.29.14 to 1.29.15. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.29.14...config/v1.29.15) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/config dependency-version: 1.29.15 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index f247efbc..d1d5a161 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.23.0 require ( github.com/ClickHouse/clickhouse-go/v2 v2.36.0 github.com/aws/aws-sdk-go-v2 v1.36.3 - github.com/aws/aws-sdk-go-v2/config v1.29.14 + github.com/aws/aws-sdk-go-v2/config v1.29.15 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.5 github.com/go-sql-driver/mysql v1.9.2 github.com/jackc/pgx/v5 v5.7.5 @@ -40,7 +40,7 @@ require ( github.com/andybalholm/brotli v1.1.1 // indirect github.com/apache/arrow-go/v18 v18.0.0 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.67 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.68 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34 // indirect @@ -54,7 +54,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 // indirect github.com/aws/aws-sdk-go-v2/service/sso v1.25.3 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.33.19 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.33.20 // indirect github.com/aws/smithy-go v1.22.2 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect diff --git a/go.sum b/go.sum index 8a1e35e5..7a752c23 100644 --- a/go.sum +++ b/go.sum @@ -36,10 +36,10 @@ github.com/aws/aws-sdk-go-v2 v1.36.3 h1:mJoei2CxPutQVxaATCzDUjcZEjVRdpsiiXi2o38y github.com/aws/aws-sdk-go-v2 v1.36.3/go.mod h1:LLXuLpgzEbD766Z5ECcRmi8AzSwfZItDtmABVkRLGzg= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg= -github.com/aws/aws-sdk-go-v2/config v1.29.14 h1:f+eEi/2cKCg9pqKBoAIwRGzVb70MRKqWX4dg1BDcSJM= -github.com/aws/aws-sdk-go-v2/config v1.29.14/go.mod h1:wVPHWcIFv3WO89w0rE10gzf17ZYy+UVS1Geq8Iei34g= -github.com/aws/aws-sdk-go-v2/credentials v1.17.67 h1:9KxtdcIA/5xPNQyZRgUSpYOE6j9Bc4+D7nZua0KGYOM= -github.com/aws/aws-sdk-go-v2/credentials v1.17.67/go.mod h1:p3C44m+cfnbv763s52gCqrjaqyPikj9Sg47kUVaNZQQ= +github.com/aws/aws-sdk-go-v2/config v1.29.15 h1:I5XjesVMpDZXZEZonVfjI12VNMrYa38LtLnw4NtY5Ss= +github.com/aws/aws-sdk-go-v2/config v1.29.15/go.mod h1:tNIp4JIPonlsgaO5hxO372a6gjhN63aSWl2GVl5QoBQ= +github.com/aws/aws-sdk-go-v2/credentials v1.17.68 h1:cFb9yjI02/sWHBSYXAtkamjzCuRymvmeFmt0TC0MbYY= +github.com/aws/aws-sdk-go-v2/credentials v1.17.68/go.mod h1:H6E+jBzyqUu8u0vGaU6POkK3P0NylYEeRZ6ynBpMqIk= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30 h1:x793wxmUWVDhshP8WW2mlnXuFrO4cOd3HLBroh1paFw= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30/go.mod h1:Jpne2tDnYiFascUEs2AWHJL9Yp7A5ZVy3TNyxaAjD6M= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 h1:7Zwtt/lP3KNRkeZre7soMELMGNoBrutx8nobg1jKWmo= @@ -68,8 +68,8 @@ github.com/aws/aws-sdk-go-v2/service/sso v1.25.3 h1:1Gw+9ajCV1jogloEv1RRnvfRFia2 github.com/aws/aws-sdk-go-v2/service/sso v1.25.3/go.mod h1:qs4a9T5EMLl/Cajiw2TcbNt2UNo/Hqlyp+GiuG4CFDI= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1 h1:hXmVKytPfTy5axZ+fYbR5d0cFmC3JvwLm5kM83luako= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1/go.mod h1:MlYRNmYu/fGPoxBQVvBYr9nyr948aY/WLUvwBMBJubs= -github.com/aws/aws-sdk-go-v2/service/sts v1.33.19 h1:1XuUZ8mYJw9B6lzAkXhqHlJd/XvaX32evhproijJEZY= -github.com/aws/aws-sdk-go-v2/service/sts v1.33.19/go.mod h1:cQnB8CUnxbMU82JvlqjKR2HBOm3fe9pWorWBza6MBJ4= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.20 h1:oIaQ1e17CSKaWmUTu62MtraRWVIosn/iONMuZt0gbqc= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.20/go.mod h1:cQnB8CUnxbMU82JvlqjKR2HBOm3fe9pWorWBza6MBJ4= github.com/aws/smithy-go v1.22.2 h1:6D9hW43xKFrRx/tXXfAlIZc4JI+yQe6snnWcQyxSyLQ= github.com/aws/smithy-go v1.22.2/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= From c27a900c711aedd36308879397a418c82656e7e1 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Tue, 10 Jun 2025 15:47:05 +0200 Subject: [PATCH 385/401] build: pin gh-release to v2.2.2 (#761) --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d955cf64..978ced9a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -44,7 +44,7 @@ jobs: run: make crossbuild-checksum - name: Upload artifacts - uses: softprops/action-gh-release@v2 + uses: softprops/action-gh-release@v2.2.2 with: files: | .tarballs/* From 3f2726f3eb3d7ee74cfc0f0065aae7d57876c17d Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Tue, 10 Jun 2025 15:47:45 +0200 Subject: [PATCH 386/401] Bump version to 0.18.0 (#762) --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 884e9604..66333910 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.17.3 +0.18.0 From 45a4e20df9a406631b175101b54a405845d738a8 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Tue, 10 Jun 2025 16:16:31 +0200 Subject: [PATCH 387/401] Bump up helm chart to 0.12.4 (#763) --- helm/Chart.yaml | 4 ++-- helm/README.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index c71d1b2e..4b112928 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: sql-exporter description: Database-agnostic SQL exporter for Prometheus type: application -version: 0.12.3 -appVersion: 0.17.3 +version: 0.12.4 +appVersion: 0.18.0 keywords: - exporter - servicemonitor diff --git a/helm/README.md b/helm/README.md index f4e18dbc..e87a2d7a 100644 --- a/helm/README.md +++ b/helm/README.md @@ -1,6 +1,6 @@ # sql-exporter -![Version: 0.12.3](https://img.shields.io/badge/Version-0.12.3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.17.3](https://img.shields.io/badge/AppVersion-0.17.3-informational?style=flat-square) +![Version: 0.12.4](https://img.shields.io/badge/Version-0.12.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.18.0](https://img.shields.io/badge/AppVersion-0.18.0-informational?style=flat-square) Database-agnostic SQL exporter for Prometheus From bb5ec3a08ad0544d60fa1333377e21b5c9845686 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Jul 2025 15:43:12 +0200 Subject: [PATCH 388/401] deps: bump github.com/go-sql-driver/mysql from 1.9.2 to 1.9.3 (#768) Bumps [github.com/go-sql-driver/mysql](https://github.com/go-sql-driver/mysql) from 1.9.2 to 1.9.3. - [Release notes](https://github.com/go-sql-driver/mysql/releases) - [Changelog](https://github.com/go-sql-driver/mysql/blob/v1.9.3/CHANGELOG.md) - [Commits](https://github.com/go-sql-driver/mysql/compare/v1.9.2...v1.9.3) --- updated-dependencies: - dependency-name: github.com/go-sql-driver/mysql dependency-version: 1.9.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index d1d5a161..1d678f0d 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( github.com/aws/aws-sdk-go-v2 v1.36.3 github.com/aws/aws-sdk-go-v2/config v1.29.15 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.5 - github.com/go-sql-driver/mysql v1.9.2 + github.com/go-sql-driver/mysql v1.9.3 github.com/jackc/pgx/v5 v5.7.5 github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.9 diff --git a/go.sum b/go.sum index 7a752c23..34446377 100644 --- a/go.sum +++ b/go.sum @@ -100,8 +100,8 @@ github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-sql-driver/mysql v1.9.2 h1:4cNKDYQ1I84SXslGddlsrMhc8k4LeDVj6Ad6WRjiHuU= -github.com/go-sql-driver/mysql v1.9.2/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI64Gl8i5p1WMU= +github.com/go-sql-driver/mysql v1.9.3 h1:U/N249h2WzJ3Ukj8SowVFjdtZKfu9vlLZxjPXV1aweo= +github.com/go-sql-driver/mysql v1.9.3/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI64Gl8i5p1WMU= github.com/goccy/go-json v0.10.4 h1:JSwxQzIqKfmFX1swYPpUThQZp/Ka4wzJdK0LWVytLPM= github.com/goccy/go-json v0.10.4/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+Hoeu/iUR3ruzNvZ+yQfO03a0= From c213e07758555416a5d97d7a6bf195dd076bd686 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Jul 2025 15:44:30 +0200 Subject: [PATCH 389/401] deps: bump github.com/ClickHouse/clickhouse-go/v2 from 2.36.0 to 2.37.2 (#766) Bumps [github.com/ClickHouse/clickhouse-go/v2](https://github.com/ClickHouse/clickhouse-go) from 2.36.0 to 2.37.2. - [Release notes](https://github.com/ClickHouse/clickhouse-go/releases) - [Changelog](https://github.com/ClickHouse/clickhouse-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/ClickHouse/clickhouse-go/compare/v2.36.0...v2.37.2) --- updated-dependencies: - dependency-name: github.com/ClickHouse/clickhouse-go/v2 dependency-version: 2.37.2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 16 ++++++++-------- go.sum | 36 ++++++++++++++++++------------------ 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/go.mod b/go.mod index 1d678f0d..81c7bd7a 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/burningalchemist/sql_exporter go 1.23.0 require ( - github.com/ClickHouse/clickhouse-go/v2 v2.36.0 + github.com/ClickHouse/clickhouse-go/v2 v2.37.2 github.com/aws/aws-sdk-go-v2 v1.36.3 github.com/aws/aws-sdk-go-v2/config v1.29.15 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.5 @@ -35,7 +35,7 @@ require ( github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0 // indirect github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect github.com/BurntSushi/toml v1.4.0 // indirect - github.com/ClickHouse/ch-go v0.66.0 // indirect + github.com/ClickHouse/ch-go v0.66.1 // indirect github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c // indirect github.com/andybalholm/brotli v1.1.1 // indirect github.com/apache/arrow-go/v18 v18.0.0 // indirect @@ -100,16 +100,16 @@ require ( github.com/zeebo/xxh3 v1.0.2 // indirect go.opentelemetry.io/otel v1.36.0 // indirect go.opentelemetry.io/otel/trace v1.36.0 // indirect - golang.org/x/crypto v0.38.0 // indirect + golang.org/x/crypto v0.39.0 // indirect golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 // indirect - golang.org/x/mod v0.23.0 // indirect - golang.org/x/net v0.40.0 // indirect + golang.org/x/mod v0.25.0 // indirect + golang.org/x/net v0.41.0 // indirect golang.org/x/oauth2 v0.30.0 // indirect - golang.org/x/sync v0.14.0 // indirect + golang.org/x/sync v0.15.0 // indirect golang.org/x/sys v0.33.0 // indirect golang.org/x/term v0.32.0 // indirect - golang.org/x/text v0.25.0 // indirect - golang.org/x/tools v0.30.0 // indirect + golang.org/x/text v0.26.0 // indirect + golang.org/x/tools v0.33.0 // indirect golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect gopkg.in/yaml.v2 v2.4.0 // indirect howett.net/plist v0.0.0-20181124034731-591f970eefbb // indirect diff --git a/go.sum b/go.sum index 34446377..47b166c7 100644 --- a/go.sum +++ b/go.sum @@ -20,10 +20,10 @@ github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 h1:XHOnouVk1mx github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= -github.com/ClickHouse/ch-go v0.66.0 h1:hLslxxAVb2PHpbHr4n0d6aP8CEIpUYGMVT1Yj/Q5Img= -github.com/ClickHouse/ch-go v0.66.0/go.mod h1:noiHWyLMJAZ5wYuq3R/K0TcRhrNA8h7o1AqHX0klEhM= -github.com/ClickHouse/clickhouse-go/v2 v2.36.0 h1:FJ03h8VdmBUhvR9nQEu5jRLdfG0c/HSxUjiNdOxRQww= -github.com/ClickHouse/clickhouse-go/v2 v2.36.0/go.mod h1:aijX64fKD1hAWu/zqWEmiGk7wRE8ZnpN0M3UvjsZG3I= +github.com/ClickHouse/ch-go v0.66.1 h1:LQHFslfVYZsISOY0dnOYOXGkOUvpv376CCm8g7W74A4= +github.com/ClickHouse/ch-go v0.66.1/go.mod h1:NEYcg3aOFv2EmTJfo4m2WF7sHB/YFbLUuIWv9iq76xY= +github.com/ClickHouse/clickhouse-go/v2 v2.37.2 h1:wRLNKoynvHQEN4znnVHNLaYnrqVc9sGJmGYg+GGCfto= +github.com/ClickHouse/clickhouse-go/v2 v2.37.2/go.mod h1:pH2zrBGp5Y438DMwAxXMm1neSXPPjSI7tD4MURVULw8= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c h1:RGWPOewvKIROun94nF7v2cua9qP+thov/7M50KEoeSU= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA= @@ -251,29 +251,29 @@ go.opentelemetry.io/otel v1.36.0 h1:UumtzIklRBY6cI/lllNZlALOF5nNIzJVb16APdvgTXg= go.opentelemetry.io/otel v1.36.0/go.mod h1:/TcFMXYjyRNh8khOAO9ybYkqaDBb/70aVwkNML4pP8E= go.opentelemetry.io/otel/metric v1.36.0 h1:MoWPKVhQvJ+eeXWHFBOPoBOi20jh6Iq2CcCREuTYufE= go.opentelemetry.io/otel/metric v1.36.0/go.mod h1:zC7Ks+yeyJt4xig9DEw9kuUFe5C3zLbVjV2PzT6qzbs= -go.opentelemetry.io/otel/sdk v1.35.0 h1:iPctf8iprVySXSKJffSS79eOjl9pvxV9ZqOWT0QejKY= -go.opentelemetry.io/otel/sdk v1.35.0/go.mod h1:+ga1bZliga3DxJ3CQGg3updiaAJoNECOgJREo9KHGQg= +go.opentelemetry.io/otel/sdk v1.36.0 h1:b6SYIuLRs88ztox4EyrvRti80uXIFy+Sqzoh9kFULbs= +go.opentelemetry.io/otel/sdk v1.36.0/go.mod h1:+lC+mTgD+MUWfjJubi2vvXWcVxyr9rmlshZni72pXeY= go.opentelemetry.io/otel/trace v1.36.0 h1:ahxWNuqZjpdiFAyrIoQ4GIiAIhxAunQR6MUoKrsNd4w= go.opentelemetry.io/otel/trace v1.36.0/go.mod h1:gQ+OnDZzrybY4k4seLzPAWNwVBBVlF2szhehOBB/tGA= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.38.0 h1:jt+WWG8IZlBnVbomuhg2Mdq0+BBQaHbtqHEFEigjUV8= -golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw= +golang.org/x/crypto v0.39.0 h1:SHs+kF4LP+f+p14esP5jAoDpHU8Gu/v9lFRK6IT5imM= +golang.org/x/crypto v0.39.0/go.mod h1:L+Xg3Wf6HoL4Bn4238Z6ft6KfEpN0tJGo53AAPC632U= golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 h1:e66Fs6Z+fZTbFBAxKfP3PALWBtpfqks2bwGcexMxgtk= golang.org/x/exp v0.0.0-20240909161429-701f63a606c0/go.mod h1:2TbTHSBQa924w8M6Xs1QcRcFwyucIwBGpK1p2f1YFFY= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.23.0 h1:Zb7khfcRGKk+kqfxFaP5tZqCnDZMjC5VtUBs87Hr6QM= -golang.org/x/mod v0.23.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/mod v0.25.0 h1:n7a+ZbQKQA/Ysbyb0/6IbB1H/X41mKgbhfv7AfG/44w= +golang.org/x/mod v0.25.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY= -golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= +golang.org/x/net v0.41.0 h1:vBTly1HeNPEn3wtREYfy4GZ/NECgw2Cnl+nK6Nz3uvw= +golang.org/x/net v0.41.0/go.mod h1:B/K4NNqkfmg07DQYrbwvSluqCJOOXwUjeb/5lOisjbA= golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI= golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -281,8 +281,8 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ= -golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.15.0 h1:KWH3jNZsfyT6xfAfKiz6MRNmd46ByHDYaZ7KSkCtdW8= +golang.org/x/sync v0.15.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -301,14 +301,14 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4= -golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA= +golang.org/x/text v0.26.0 h1:P42AVeLghgTYr4+xUnTRKDMqpar+PtX7KWuNQL21L8M= +golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.30.0 h1:BgcpHewrV5AUp2G9MebG4XPFI1E2W41zU1SaqVA9vJY= -golang.org/x/tools v0.30.0/go.mod h1:c347cR/OJfw5TI+GfX7RUPNMdDRRbjvYTS0jPyvsVtY= +golang.org/x/tools v0.33.0 h1:4qz2S3zmRxbGIhDIAgjxvFutSvH5EfnsYrRBj0UI0bc= +golang.org/x/tools v0.33.0/go.mod h1:CIJMaWEY88juyUfo7UbgPqbC8rU2OqfAV1h2Qp0oMYI= 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= From d2824d9ac92c985d07f1458dbd62e3da77f879b2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Jul 2025 16:24:14 +0200 Subject: [PATCH 390/401] deps: bump github.com/snowflakedb/gosnowflake from 1.14.1 to 1.15.0 (#767) Bumps [github.com/snowflakedb/gosnowflake](https://github.com/snowflakedb/gosnowflake) from 1.14.1 to 1.15.0. - [Release notes](https://github.com/snowflakedb/gosnowflake/releases) - [Changelog](https://github.com/snowflakedb/gosnowflake/blob/master/release.go) - [Commits](https://github.com/snowflakedb/gosnowflake/compare/v1.14.1...v1.15.0) --- updated-dependencies: - dependency-name: github.com/snowflakedb/gosnowflake dependency-version: 1.15.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 81c7bd7a..6331bef7 100644 --- a/go.mod +++ b/go.mod @@ -18,7 +18,7 @@ require ( github.com/prometheus/exporter-toolkit v0.14.0 github.com/sethvargo/go-envconfig v1.3.0 github.com/sijms/go-ora/v2 v2.9.0 - github.com/snowflakedb/gosnowflake v1.14.1 + github.com/snowflakedb/gosnowflake v1.15.0 github.com/vertica/vertica-sql-go v1.3.3 github.com/xo/dburl v0.23.8 google.golang.org/protobuf v1.36.6 diff --git a/go.sum b/go.sum index 47b166c7..4c7e0db2 100644 --- a/go.sum +++ b/go.sum @@ -217,8 +217,8 @@ github.com/sijms/go-ora/v2 v2.9.0 h1:+iQbUeTeCOFMb5BsOMgUhV8KWyrv9yjKpcK4x7+MFrg github.com/sijms/go-ora/v2 v2.9.0/go.mod h1:QgFInVi3ZWyqAiJwzBQA+nbKYKH77tdp1PYoCqhR2dU= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/snowflakedb/gosnowflake v1.14.1 h1:FnnlaSAm6Zyq3ujqa0JmeU1Ivj7Iz+A0C2YGV6nbRSw= -github.com/snowflakedb/gosnowflake v1.14.1/go.mod h1:+3Eh8swS12G6Fbt/wb5Vcse2Id7VU9HGgKSH8ydiumU= +github.com/snowflakedb/gosnowflake v1.15.0 h1:1V4dG1EmJ9O81Hv8y1LAE9koZebmx4tnRAPKWvDf8xA= +github.com/snowflakedb/gosnowflake v1.15.0/go.mod h1:+3Eh8swS12G6Fbt/wb5Vcse2Id7VU9HGgKSH8ydiumU= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= From 56880a874313ee0dbf8a9ee87953f79f32b6fba7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Jul 2025 18:00:48 +0200 Subject: [PATCH 391/401] deps: bump github.com/aws/aws-sdk-go-v2 from 1.36.3 to 1.36.5 (#770) Bumps [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) from 1.36.3 to 1.36.5. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.36.3...v1.36.5) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2 dependency-version: 1.36.5 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 6331bef7..fab2aaba 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.23.0 require ( github.com/ClickHouse/clickhouse-go/v2 v2.37.2 - github.com/aws/aws-sdk-go-v2 v1.36.3 + github.com/aws/aws-sdk-go-v2 v1.36.5 github.com/aws/aws-sdk-go-v2/config v1.29.15 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.5 github.com/go-sql-driver/mysql v1.9.3 @@ -55,7 +55,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/sso v1.25.3 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.33.20 // indirect - github.com/aws/smithy-go v1.22.2 // indirect + github.com/aws/smithy-go v1.22.4 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect diff --git a/go.sum b/go.sum index 4c7e0db2..1312d190 100644 --- a/go.sum +++ b/go.sum @@ -32,8 +32,8 @@ github.com/apache/arrow-go/v18 v18.0.0 h1:1dBDaSbH3LtulTyOVYaBCHO3yVRwjV+TZaqn3g github.com/apache/arrow-go/v18 v18.0.0/go.mod h1:t6+cWRSmKgdQ6HsxisQjok+jBpKGhRDiqcf3p0p/F+A= github.com/apache/thrift v0.21.0 h1:tdPmh/ptjE1IJnhbhrcl2++TauVjy242rkV/UzJChnE= github.com/apache/thrift v0.21.0/go.mod h1:W1H8aR/QRtYNvrPeFXBtobyRkd0/YVhTc6i07XIAgDw= -github.com/aws/aws-sdk-go-v2 v1.36.3 h1:mJoei2CxPutQVxaATCzDUjcZEjVRdpsiiXi2o38yqWM= -github.com/aws/aws-sdk-go-v2 v1.36.3/go.mod h1:LLXuLpgzEbD766Z5ECcRmi8AzSwfZItDtmABVkRLGzg= +github.com/aws/aws-sdk-go-v2 v1.36.5 h1:0OF9RiEMEdDdZEMqF9MRjevyxAQcf6gY+E7vwBILFj0= +github.com/aws/aws-sdk-go-v2 v1.36.5/go.mod h1:EYrzvCCN9CMUTa5+6lf6MM4tq3Zjp8UhSGR/cBsjai0= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg= github.com/aws/aws-sdk-go-v2/config v1.29.15 h1:I5XjesVMpDZXZEZonVfjI12VNMrYa38LtLnw4NtY5Ss= @@ -70,8 +70,8 @@ github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1 h1:hXmVKytPfTy5axZ+fYbR5d0c github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1/go.mod h1:MlYRNmYu/fGPoxBQVvBYr9nyr948aY/WLUvwBMBJubs= github.com/aws/aws-sdk-go-v2/service/sts v1.33.20 h1:oIaQ1e17CSKaWmUTu62MtraRWVIosn/iONMuZt0gbqc= github.com/aws/aws-sdk-go-v2/service/sts v1.33.20/go.mod h1:cQnB8CUnxbMU82JvlqjKR2HBOm3fe9pWorWBza6MBJ4= -github.com/aws/smithy-go v1.22.2 h1:6D9hW43xKFrRx/tXXfAlIZc4JI+yQe6snnWcQyxSyLQ= -github.com/aws/smithy-go v1.22.2/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= +github.com/aws/smithy-go v1.22.4 h1:uqXzVZNuNexwc/xrh6Tb56u89WDlJY6HS+KC0S4QSjw= +github.com/aws/smithy-go v1.22.4/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= From 8d83643a8c1de14bdadabbb8ee468ba446e3007d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Jul 2025 18:00:56 +0200 Subject: [PATCH 392/401] deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager from 1.35.5 to 1.35.7 (#769) deps: bump github.com/aws/aws-sdk-go-v2/service/secretsmanager Bumps [github.com/aws/aws-sdk-go-v2/service/secretsmanager](https://github.com/aws/aws-sdk-go-v2) from 1.35.5 to 1.35.7. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/ssm/v1.35.5...service/ssm/v1.35.7) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/service/secretsmanager dependency-version: 1.35.7 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index fab2aaba..c28da85a 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/ClickHouse/clickhouse-go/v2 v2.37.2 github.com/aws/aws-sdk-go-v2 v1.36.5 github.com/aws/aws-sdk-go-v2/config v1.29.15 - github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.5 + github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.7 github.com/go-sql-driver/mysql v1.9.3 github.com/jackc/pgx/v5 v5.7.5 github.com/kardianos/minwinsvc v1.0.2 @@ -43,8 +43,8 @@ require ( github.com/aws/aws-sdk-go-v2/credentials v1.17.68 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.36 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.36 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3 // indirect diff --git a/go.sum b/go.sum index 1312d190..2da66bcc 100644 --- a/go.sum +++ b/go.sum @@ -44,10 +44,10 @@ github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30 h1:x793wxmUWVDhshP8WW2mln github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30/go.mod h1:Jpne2tDnYiFascUEs2AWHJL9Yp7A5ZVy3TNyxaAjD6M= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 h1:7Zwtt/lP3KNRkeZre7soMELMGNoBrutx8nobg1jKWmo= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15/go.mod h1:436h2adoHb57yd+8W+gYPrrA9U/R/SuAuOO42Ushzhw= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34 h1:ZK5jHhnrioRkUNOc+hOgQKlUL5JeC3S6JgLxtQ+Rm0Q= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34/go.mod h1:p4VfIceZokChbA9FzMbRGz5OV+lekcVtHlPKEO0gSZY= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34 h1:SZwFm17ZUNNg5Np0ioo/gq8Mn6u9w19Mri8DnJ15Jf0= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34/go.mod h1:dFZsC0BLo346mvKQLWmoJxT+Sjp+qcVR1tRVHQGOH9Q= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.36 h1:SsytQyTMHMDPspp+spo7XwXTP44aJZZAC7fBV2C5+5s= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.36/go.mod h1:Q1lnJArKRXkenyog6+Y+zr7WDpk4e6XlR6gs20bbeNo= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.36 h1:i2vNHQiXUvKhs3quBR6aqlgJaiaexz/aNvdCktW/kAM= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.36/go.mod h1:UdyGa7Q91id/sdyHPwth+043HhmP6yP9MBHgbZM0xo8= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 h1:bIqFDwgGXXN1Kpp99pDOdKMTTb5d2KyU5X/BZxjOkRo= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3/go.mod h1:H5O/EsxDWyU+LP/V8i5sm8cxoZgc2fdNR9bxlOFrQTo= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 h1:81KE7vaZzrl7yHBYHVEzYB8sypz11NMOZ40YlWvPxsU= @@ -62,8 +62,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 h1:f9RyWNtS8oH7cZ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5/go.mod h1:h5CoMZV2VF297/VLhRhO1WF+XYWOzXo+4HsObA4HjBQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 h1:6cnno47Me9bRykw9AEv9zkXE+5or7jz8TsskTTccbgc= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1/go.mod h1:qmdkIIAC+GCLASF7R2whgNrJADz0QZPX+Seiw/i4S3o= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.5 h1:QLY+ScpXXDEZFUcJ/fsVMa4+jnwLHdik1PBCXJpDvAA= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.5/go.mod h1:yGhDiLKguA3iFJYxbrQkQiNzuy+ddxesSZYWVeeEH5Q= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.7 h1:d+mnMa4JbJlooSbYQfrJpit/YINaB30JEVgrhtjZneA= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.7/go.mod h1:1X1NotbcGHH7PCQJ98PsExSxsJj/VWzz8MfFz43+02M= github.com/aws/aws-sdk-go-v2/service/sso v1.25.3 h1:1Gw+9ajCV1jogloEv1RRnvfRFia2cL6c9cuKV2Ps+G8= github.com/aws/aws-sdk-go-v2/service/sso v1.25.3/go.mod h1:qs4a9T5EMLl/Cajiw2TcbNt2UNo/Hqlyp+GiuG4CFDI= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1 h1:hXmVKytPfTy5axZ+fYbR5d0cFmC3JvwLm5kM83luako= From 408bd0f8aede1bfc56cc7962ebc3aa4004fb9c43 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Jul 2025 18:07:27 +0200 Subject: [PATCH 393/401] deps: bump github.com/microsoft/go-mssqldb from 1.8.2 to 1.9.2 (#772) Bumps [github.com/microsoft/go-mssqldb](https://github.com/microsoft/go-mssqldb) from 1.8.2 to 1.9.2. - [Release notes](https://github.com/microsoft/go-mssqldb/releases) - [Changelog](https://github.com/microsoft/go-mssqldb/blob/main/CHANGELOG.md) - [Commits](https://github.com/microsoft/go-mssqldb/compare/v1.8.2...v1.9.2) --- updated-dependencies: - dependency-name: github.com/microsoft/go-mssqldb dependency-version: 1.9.2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 10 +++++----- go.sum | 38 ++++++++++++++++++++++++-------------- 2 files changed, 29 insertions(+), 19 deletions(-) diff --git a/go.mod b/go.mod index c28da85a..e71f431c 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/jackc/pgx/v5 v5.7.5 github.com/kardianos/minwinsvc v1.0.2 github.com/lib/pq v1.10.9 - github.com/microsoft/go-mssqldb v1.8.2 + github.com/microsoft/go-mssqldb v1.9.2 github.com/prometheus/client_golang v1.22.0 github.com/prometheus/client_model v0.6.2 github.com/prometheus/common v0.64.0 @@ -29,11 +29,11 @@ require ( filippo.io/edwards25519 v1.1.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.2 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.11.1 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.6.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/internal v1.8.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.1 // indirect + github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 // indirect github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0 // indirect - github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect + github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 // indirect github.com/BurntSushi/toml v1.4.0 // indirect github.com/ClickHouse/ch-go v0.66.1 // indirect github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c // indirect diff --git a/go.sum b/go.sum index 2da66bcc..a8c27b1c 100644 --- a/go.sum +++ b/go.sum @@ -4,20 +4,24 @@ github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 h1:/vQbFIOMb github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4/go.mod h1:hN7oaIRCjzsZ2dE+yG5k+rsdt3qcwykqK6HVGcKwsw4= github.com/99designs/keyring v1.2.2 h1:pZd3neh/EmUzWONb35LxQfvuY7kiSXAq3HQd97+XBn0= github.com/99designs/keyring v1.2.2/go.mod h1:wes/FrByc8j7lFOAGLGSNEg8f/PaI3cgTBqhFkHUrPk= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.11.1 h1:E+OJmp2tPvt1W+amx48v1eqbjDYsgN+RzP4q16yV5eM= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.11.1/go.mod h1:a6xsAQUZg+VsS3TJ05SRp524Hs4pZ/AeFSr5ENf0Yjo= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.6.0 h1:U2rTu3Ef+7w9FHKIAXM6ZyqF3UOWJZ12zIm8zECAFfg= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.6.0/go.mod h1:9kIvujWAA58nmPmWB1m23fyWic1kYZMxD9CxaWn4Qpg= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.8.0 h1:jBQA3cKT4L2rWMpgE7Yt3Hwh2aUj8KXjIGLxjHeYNNo= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.8.0/go.mod h1:4OG6tQ9EOP/MT0NMjDlRzWoVFxfu9rN9B2X+tlSVktg= -github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.0.1 h1:MyVTgWR8qd/Jw1Le0NZebGBUCLbtak3bJ3z1OlqZBpw= -github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.0.1/go.mod h1:GpPjLhVR9dnUoJMyHWSPy71xY9/lcmpzIPZXmF0FCVY= -github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.0.0 h1:D3occbWoio4EBLkbkevetNMAVX197GkzbUMtqjGWn80= -github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.0.0/go.mod h1:bTSOgj05NGRuHHhQwAdPnYr9TOdNmKlZTgGLL6nyAdI= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0 h1:Gt0j3wceWMwPmiazCa8MzMA0MfhmPIz0Qp0FJ6qcM0U= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0/go.mod h1:Ot/6aikWnKWi4l9QB7qVSwa8iMphQNqkWALMoNT3rzM= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.1 h1:B+blDbyVIG3WaikNxPnhPiJ1MThR03b3vKGtER95TP4= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.1/go.mod h1:JdM5psgjfBf5fo2uWOZhflPWyDBZ/O/CNAH9CtsuZE4= +github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2 h1:yz1bePFlP5Vws5+8ez6T3HWXPmwOK7Yvq8QxDBD3SKY= +github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2/go.mod h1:Pa9ZNPuoNu/GztvBSKk9J1cDJW6vk/n0zLtV4mgd8N8= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 h1:FPKJS1T+clwv+OLGt13a8UjqeRuh0O4SJ3lUriThc+4= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1/go.mod h1:j2chePtV91HrC22tGoRX3sGY42uF13WzmmV80/OdVAA= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.3.1 h1:Wgf5rZba3YZqeTNJPtvqZoBu1sBN/L4sry+u2U3Y75w= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.3.1/go.mod h1:xxCBG/f/4Vbmh2XQJBsOmNdxWUY5j/s27jujKPbQf14= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.1.1 h1:bFWuoEKg+gImo7pvkiQEFAc8ocibADgXeiLAxWhWmkI= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.1.1/go.mod h1:Vih/3yc6yac2JzU4hzpaDupBJP0Flaia9rXXrU8xyww= github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0 h1:u/LLAOFgsMv7HmNL4Qufg58y+qElGOt5qv0z1mURkRY= github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0/go.mod h1:2e8rMJtl2+2j+HXbTBwnyGpm5Nou7KhvSfxOq8JpTag= -github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 h1:XHOnouVk1mxXfQidrMEnLlPk9UMeRtyBTnEFtxkV0kU= -github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= +github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1 h1:WJTmL004Abzc5wDB5VtZG2PJk5ndYDgVacGqfirKxjM= +github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1/go.mod h1:tCcJZ0uHAmvjsVYzEFivsRTN00oz5BEsRgQHu5JZ9WE= +github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 h1:oygO0locgZJe7PpYPXT5A29ZkwJaPqcva7BVeemZOZs= +github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/ClickHouse/ch-go v0.66.1 h1:LQHFslfVYZsISOY0dnOYOXGkOUvpv376CCm8g7W74A4= @@ -84,6 +88,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/dvsekhvalnov/jose2go v1.6.0 h1:Y9gnSnP4qEI0+/uQkHvFXeD2PLPJeXEL+ySMEA2EjTY= github.com/dvsekhvalnov/jose2go v1.6.0/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB/mPZadG+mhXU= github.com/elastic/go-sysinfo v1.8.1 h1:4Yhj+HdV6WjbCRgGdZpPJ8lZQlXZLKDAeIkmQ/VRvi4= @@ -143,6 +149,8 @@ github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2E github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/kardianos/minwinsvc v1.0.2 h1:JmZKFJQrmTGa/WiW+vkJXKmfzdjabuEW4Tirj5lLdR0= github.com/kardianos/minwinsvc v1.0.2/go.mod h1:LUZNYhNmxujx2tR7FbdxqYJ9XDDoCd3MQcl1o//FWl4= +github.com/keybase/go-keychain v0.0.1 h1:way+bWYa6lDppZoZcgMbYsvC7GxljxrskdNInRtuthU= +github.com/keybase/go-keychain v0.0.1/go.mod h1:PdEILRW3i9D8JcdM+FmY6RwkHGnhHxXwkPPMeUgOK1k= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/asmfmt v1.3.2 h1:4Ri7ox3EwapiOjCki+hw14RyKk201CN4rzyCJRFLpK4= @@ -167,8 +175,8 @@ github.com/mdlayher/socket v0.4.1 h1:eM9y2/jlbs1M615oshPQOHZzj6R6wMT7bX5NPiQvn2U github.com/mdlayher/socket v0.4.1/go.mod h1:cAqeGjoufqdxWkD7DkpyS+wcefOtmu5OQ8KuoJGIReA= github.com/mdlayher/vsock v1.2.1 h1:pC1mTJTvjo1r9n9fbm7S1j04rCgCzhCOS5DY0zqHlnQ= github.com/mdlayher/vsock v1.2.1/go.mod h1:NRfCibel++DgeMD8z/hP+PPTjlNJsdPOmxcnENvE+SE= -github.com/microsoft/go-mssqldb v1.8.2 h1:236sewazvC8FvG6Dr3bszrVhMkAl4KYImryLkRMCd0I= -github.com/microsoft/go-mssqldb v1.8.2/go.mod h1:vp38dT33FGfVotRiTmDo3bFyaHq+p3LektQrjTULowo= +github.com/microsoft/go-mssqldb v1.9.2 h1:nY8TmFMQOHpm2qVWo6y4I2mAmVdZqlGiMGAYt64Ibbs= +github.com/microsoft/go-mssqldb v1.9.2/go.mod h1:GBbW9ASTiDC+mpgWDGKdm3FnFLTUsLYN3iFL90lQ+PA= github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8 h1:AMFGa4R4MiIpspGNG7Z948v4n35fFGB3RR3G/ry4FWs= github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY= github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3 h1:+n/aFZefKZp7spd8DFdX7uMikMLXX4oubIzJF4kv/wI= @@ -205,6 +213,8 @@ github.com/prometheus/exporter-toolkit v0.14.0/go.mod h1:Gu5LnVvt7Nr/oqTBUC23WIL github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= +github.com/redis/go-redis/v9 v9.8.0 h1:q3nRvjrlge/6UD7eTu/DSg2uYiU2mCL0G/uzBWqhicI= +github.com/redis/go-redis/v9 v9.8.0/go.mod h1:huWgSWd8mW6+m0VPhJjSSQ+d6Nh1VICQ6Q5lHuCH/Iw= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/segmentio/asm v1.2.0 h1:9BQrFxC+YOHJlTlHGkTrFWf59nbL3XnCoFLTwDCI7ys= From 79d7aa3df5c57a85562248ebda25ebf484f40470 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Jul 2025 18:07:46 +0200 Subject: [PATCH 394/401] deps: bump github.com/prometheus/common from 0.64.0 to 0.65.0 (#773) Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.64.0 to 0.65.0. - [Release notes](https://github.com/prometheus/common/releases) - [Changelog](https://github.com/prometheus/common/blob/main/RELEASE.md) - [Commits](https://github.com/prometheus/common/compare/v0.64.0...v0.65.0) --- updated-dependencies: - dependency-name: github.com/prometheus/common dependency-version: 0.65.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index e71f431c..3f5b3dcf 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/microsoft/go-mssqldb v1.9.2 github.com/prometheus/client_golang v1.22.0 github.com/prometheus/client_model v0.6.2 - github.com/prometheus/common v0.64.0 + github.com/prometheus/common v0.65.0 github.com/prometheus/exporter-toolkit v0.14.0 github.com/sethvargo/go-envconfig v1.3.0 github.com/sijms/go-ora/v2 v2.9.0 diff --git a/go.sum b/go.sum index a8c27b1c..1cf8db7f 100644 --- a/go.sum +++ b/go.sum @@ -206,8 +206,8 @@ github.com/prometheus/client_golang v1.22.0 h1:rb93p9lokFEsctTys46VnV1kLCDpVZ0a/ github.com/prometheus/client_golang v1.22.0/go.mod h1:R7ljNsLXhuQXYZYtw6GAE9AZg8Y7vEW5scdCXrWRXC0= github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= -github.com/prometheus/common v0.64.0 h1:pdZeA+g617P7oGv1CzdTzyeShxAGrTBsolKNOLQPGO4= -github.com/prometheus/common v0.64.0/go.mod h1:0gZns+BLRQ3V6NdaerOhMbwwRbNh9hkGINtQAsP5GS8= +github.com/prometheus/common v0.65.0 h1:QDwzd+G1twt//Kwj/Ww6E9FQq1iVMmODnILtW1t2VzE= +github.com/prometheus/common v0.65.0/go.mod h1:0gZns+BLRQ3V6NdaerOhMbwwRbNh9hkGINtQAsP5GS8= github.com/prometheus/exporter-toolkit v0.14.0 h1:NMlswfibpcZZ+H0sZBiTjrA3/aBFHkNZqE+iCj5EmRg= github.com/prometheus/exporter-toolkit v0.14.0/go.mod h1:Gu5LnVvt7Nr/oqTBUC23WILZepW0nffNo10XdhQcwWA= github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= From 4d802aecc026a21ccf59393f332e047385175f29 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 4 Jul 2025 20:45:22 +0200 Subject: [PATCH 395/401] deps: bump github.com/aws/aws-sdk-go-v2/config from 1.29.15 to 1.29.17 (#774) Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.29.15 to 1.29.17. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.29.15...config/v1.29.17) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/config dependency-version: 1.29.17 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 16 ++++++++-------- go.sum | 32 ++++++++++++++++---------------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/go.mod b/go.mod index 3f5b3dcf..6192d145 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.23.0 require ( github.com/ClickHouse/clickhouse-go/v2 v2.37.2 github.com/aws/aws-sdk-go-v2 v1.36.5 - github.com/aws/aws-sdk-go-v2/config v1.29.15 + github.com/aws/aws-sdk-go-v2/config v1.29.17 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.7 github.com/go-sql-driver/mysql v1.9.3 github.com/jackc/pgx/v5 v5.7.5 @@ -40,21 +40,21 @@ require ( github.com/andybalholm/brotli v1.1.1 // indirect github.com/apache/arrow-go/v18 v18.0.0 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.68 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.70 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.32 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.36 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.36 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.4 // indirect github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.17 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 // indirect github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.25.3 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.33.20 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.25.5 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.3 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.34.0 // indirect github.com/aws/smithy-go v1.22.4 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect diff --git a/go.sum b/go.sum index 1cf8db7f..2d650fb7 100644 --- a/go.sum +++ b/go.sum @@ -40,12 +40,12 @@ github.com/aws/aws-sdk-go-v2 v1.36.5 h1:0OF9RiEMEdDdZEMqF9MRjevyxAQcf6gY+E7vwBIL github.com/aws/aws-sdk-go-v2 v1.36.5/go.mod h1:EYrzvCCN9CMUTa5+6lf6MM4tq3Zjp8UhSGR/cBsjai0= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg= -github.com/aws/aws-sdk-go-v2/config v1.29.15 h1:I5XjesVMpDZXZEZonVfjI12VNMrYa38LtLnw4NtY5Ss= -github.com/aws/aws-sdk-go-v2/config v1.29.15/go.mod h1:tNIp4JIPonlsgaO5hxO372a6gjhN63aSWl2GVl5QoBQ= -github.com/aws/aws-sdk-go-v2/credentials v1.17.68 h1:cFb9yjI02/sWHBSYXAtkamjzCuRymvmeFmt0TC0MbYY= -github.com/aws/aws-sdk-go-v2/credentials v1.17.68/go.mod h1:H6E+jBzyqUu8u0vGaU6POkK3P0NylYEeRZ6ynBpMqIk= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30 h1:x793wxmUWVDhshP8WW2mlnXuFrO4cOd3HLBroh1paFw= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30/go.mod h1:Jpne2tDnYiFascUEs2AWHJL9Yp7A5ZVy3TNyxaAjD6M= +github.com/aws/aws-sdk-go-v2/config v1.29.17 h1:jSuiQ5jEe4SAMH6lLRMY9OVC+TqJLP5655pBGjmnjr0= +github.com/aws/aws-sdk-go-v2/config v1.29.17/go.mod h1:9P4wwACpbeXs9Pm9w1QTh6BwWwJjwYvJ1iCt5QbCXh8= +github.com/aws/aws-sdk-go-v2/credentials v1.17.70 h1:ONnH5CM16RTXRkS8Z1qg7/s2eDOhHhaXVd72mmyv4/0= +github.com/aws/aws-sdk-go-v2/credentials v1.17.70/go.mod h1:M+lWhhmomVGgtuPOhO85u4pEa3SmssPTdcYpP/5J/xc= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.32 h1:KAXP9JSHO1vKGCr5f4O6WmlVKLFFXgWYAGoJosorxzU= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.32/go.mod h1:h4Sg6FQdexC1yYG9RDnOvLbW1a/P986++/Y/a+GyEM8= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 h1:7Zwtt/lP3KNRkeZre7soMELMGNoBrutx8nobg1jKWmo= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15/go.mod h1:436h2adoHb57yd+8W+gYPrrA9U/R/SuAuOO42Ushzhw= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.36 h1:SsytQyTMHMDPspp+spo7XwXTP44aJZZAC7fBV2C5+5s= @@ -56,24 +56,24 @@ github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 h1:bIqFDwgGXXN1Kpp99pDOdKMTTb5d github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3/go.mod h1:H5O/EsxDWyU+LP/V8i5sm8cxoZgc2fdNR9bxlOFrQTo= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 h1:81KE7vaZzrl7yHBYHVEzYB8sypz11NMOZ40YlWvPxsU= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5/go.mod h1:LIt2rg7Mcgn09Ygbdh/RdIm0rQ+3BNkbP1gyVMFtRK0= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3 h1:eAh2A4b5IzM/lum78bZ590jy36+d/aFLgKF/4Vd1xPE= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3/go.mod h1:0yKJC/kb8sAnmlYa6Zs3QVYqaC8ug2AbnNChv5Ox3uA= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.4 h1:CXV68E2dNqhuynZJPB80bhPQwAKqBWVer887figW6Jc= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.4/go.mod h1:/xFi9KtvBXP97ppCz1TAEvU1Uf66qvid89rbem3wCzQ= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 h1:ZMeFZ5yk+Ek+jNr1+uwCd2tG89t6oTS5yVWpa6yy2es= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7/go.mod h1:mxV05U+4JiHqIpGqqYXOHLPKUC6bDXC44bsUhNjOEwY= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15 h1:dM9/92u2F1JbDaGooxTq18wmmFzbJRfXfVfy96/1CXM= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15/go.mod h1:SwFBy2vjtA0vZbjjaFtfN045boopadnoVPhu4Fv66vY= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.17 h1:t0E6FzREdtCsiLIoLCWsYliNsRBgyGD/MCK571qk4MI= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.17/go.mod h1:ygpklyoaypuyDvOM5ujWGrYWpAK3h7ugnmKCU/76Ys4= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 h1:f9RyWNtS8oH7cZlbn+/JNPpjUk5+5fLd5lM9M0i49Ys= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5/go.mod h1:h5CoMZV2VF297/VLhRhO1WF+XYWOzXo+4HsObA4HjBQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 h1:6cnno47Me9bRykw9AEv9zkXE+5or7jz8TsskTTccbgc= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1/go.mod h1:qmdkIIAC+GCLASF7R2whgNrJADz0QZPX+Seiw/i4S3o= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.7 h1:d+mnMa4JbJlooSbYQfrJpit/YINaB30JEVgrhtjZneA= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.7/go.mod h1:1X1NotbcGHH7PCQJ98PsExSxsJj/VWzz8MfFz43+02M= -github.com/aws/aws-sdk-go-v2/service/sso v1.25.3 h1:1Gw+9ajCV1jogloEv1RRnvfRFia2cL6c9cuKV2Ps+G8= -github.com/aws/aws-sdk-go-v2/service/sso v1.25.3/go.mod h1:qs4a9T5EMLl/Cajiw2TcbNt2UNo/Hqlyp+GiuG4CFDI= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1 h1:hXmVKytPfTy5axZ+fYbR5d0cFmC3JvwLm5kM83luako= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1/go.mod h1:MlYRNmYu/fGPoxBQVvBYr9nyr948aY/WLUvwBMBJubs= -github.com/aws/aws-sdk-go-v2/service/sts v1.33.20 h1:oIaQ1e17CSKaWmUTu62MtraRWVIosn/iONMuZt0gbqc= -github.com/aws/aws-sdk-go-v2/service/sts v1.33.20/go.mod h1:cQnB8CUnxbMU82JvlqjKR2HBOm3fe9pWorWBza6MBJ4= +github.com/aws/aws-sdk-go-v2/service/sso v1.25.5 h1:AIRJ3lfb2w/1/8wOOSqYb9fUKGwQbtysJ2H1MofRUPg= +github.com/aws/aws-sdk-go-v2/service/sso v1.25.5/go.mod h1:b7SiVprpU+iGazDUqvRSLf5XmCdn+JtT1on7uNL6Ipc= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.3 h1:BpOxT3yhLwSJ77qIY3DoHAQjZsc4HEGfMCE4NGy3uFg= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.3/go.mod h1:vq/GQR1gOFLquZMSrxUK/cpvKCNVYibNyJ1m7JrU88E= +github.com/aws/aws-sdk-go-v2/service/sts v1.34.0 h1:NFOJ/NXEGV4Rq//71Hs1jC/NvPs1ezajK+yQmkwnPV0= +github.com/aws/aws-sdk-go-v2/service/sts v1.34.0/go.mod h1:7ph2tGpfQvwzgistp2+zga9f+bCjlQJPkPUmMgDSD7w= github.com/aws/smithy-go v1.22.4 h1:uqXzVZNuNexwc/xrh6Tb56u89WDlJY6HS+KC0S4QSjw= github.com/aws/smithy-go v1.22.4/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= From e3901a7d7a44cb69afcb7aa2f8b93f5daf0950e6 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Wed, 16 Jul 2025 12:28:25 +0200 Subject: [PATCH 396/401] fix: move NULL messages under Debug log level (#778) fix: move NULL messages to Debug log level --- query.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/query.go b/query.go index 8b6be71b..fed479ed 100644 --- a/query.go +++ b/query.go @@ -213,17 +213,17 @@ func (q *Query) scanRow(rows *sql.Rows, dest []any) (map[string]any, errors.With switch q.columnTypes[column] { case columnTypeKey: if !dest[i].(*sql.NullString).Valid { - slog.Warn("Key column is NULL", "logContext", q.logContext, "column", column) + slog.Debug("Key column is NULL", "logContext", q.logContext, "column", column) } result[column] = *dest[i].(*sql.NullString) case columnTypeTime: if !dest[i].(*sql.NullTime).Valid { - slog.Warn("Time column is NULL", "logContext", q.logContext, "column", column) + slog.Debug("Time column is NULL", "logContext", q.logContext, "column", column) } result[column] = *dest[i].(*sql.NullTime) case columnTypeValue: if !dest[i].(*sql.NullFloat64).Valid { - slog.Warn("Value column is NULL", "logContext", q.logContext, "column", column) + slog.Debug("Value column is NULL", "logContext", q.logContext, "column", column) } result[column] = *dest[i].(*sql.NullFloat64) } From 928670cd8e2cd415c2d77917aa8b2b3051a69243 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Wed, 16 Jul 2025 12:28:41 +0200 Subject: [PATCH 397/401] fix: move NULL messages under Debug log level (#778) fix: move NULL messages to Debug log level From 6e73ff71a8976939c28ce9a0ddbeefe0801d0a37 Mon Sep 17 00:00:00 2001 From: Sergei Zyubin Date: Wed, 16 Jul 2025 15:21:27 +0200 Subject: [PATCH 398/401] Bump version to 0.18.1 (#779) --- README.md | 9 +++++++++ VERSION | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 506f0988..32e51da5 100644 --- a/README.md +++ b/README.md @@ -200,6 +200,15 @@ For additional details please refer to [xo/dburl](https://github.com/xo/dburl) d ## Miscellaneous +
+Handling NULL values + +Queries that return `NULL` values are supported, but they are not rendered as metrics. It's useful for situations, when +the result set depends on some conditions, so it may be empty. Whenever a query returns `NULL` values, the exporter +logs a message at the `Debug` level. If your query constantly returns `NULL` values, it most likely means that you need +to revisit your query logic. +
+
Multiple database connections diff --git a/VERSION b/VERSION index 66333910..249afd51 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.18.0 +0.18.1 From e4e66ea838e0c49d1bb87ef61e47c5615dd2f00a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Monteiro?= Date: Sun, 27 Jul 2025 08:56:05 +0100 Subject: [PATCH 399/401] update gitignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index da62d065..288d8adc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ /.project /.settings +.idea/ /sql_exporter /sql_exporter.yml +test_configs/ From 6e8398a47c8ae2338684bc70d89f16ae9490ee63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Monteiro?= Date: Sun, 27 Jul 2025 12:08:50 +0100 Subject: [PATCH 400/401] go mod tidy --- go.mod | 93 ++++------ go.sum | 539 +++++++++++---------------------------------------------- 2 files changed, 128 insertions(+), 504 deletions(-) diff --git a/go.mod b/go.mod index bc473f7b..7e5a8312 100644 --- a/go.mod +++ b/go.mod @@ -3,95 +3,62 @@ module github.com/burningalchemist/sql_exporter go 1.23.0 require ( + github.com/aws/aws-sdk-go-v2 v1.36.6 + github.com/aws/aws-sdk-go-v2/config v1.27.11 + github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.8 github.com/databricks/databricks-sql-go v1.0.1-0.20230105210901-69b282787450 github.com/kardianos/minwinsvc v1.0.0 - github.com/prometheus/client_golang v1.13.0 - github.com/prometheus/client_model v0.2.0 - github.com/prometheus/common v0.37.0 - github.com/prometheus/exporter-toolkit v0.7.1 + github.com/prometheus/client_golang v1.22.0 + github.com/prometheus/client_model v0.6.2 + github.com/prometheus/common v0.65.0 + github.com/prometheus/exporter-toolkit v0.14.0 + github.com/sethvargo/go-envconfig v1.3.0 github.com/trinodb/trino-go-client v0.309.0 - github.com/xo/dburl v0.12.4 - google.golang.org/protobuf v1.28.1 + github.com/xo/dburl v0.23.8 + google.golang.org/protobuf v1.36.6 gopkg.in/yaml.v3 v3.0.1 ) require ( - filippo.io/edwards25519 v1.1.0 // indirect - github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect - github.com/99designs/keyring v1.2.2 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.1 // indirect - github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 // indirect - github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0 // indirect - github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 // indirect - github.com/BurntSushi/toml v1.4.0 // indirect - github.com/ClickHouse/ch-go v0.66.1 // indirect - github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c // indirect - github.com/andybalholm/brotli v1.1.1 // indirect - github.com/apache/arrow-go/v18 v18.0.0 // indirect - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 // indirect + github.com/apache/thrift v0.21.0 // indirect github.com/aws/aws-sdk-go-v2/credentials v1.17.70 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.32 // indirect - github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.36 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.36 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.37 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.37 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.4 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 // indirect github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.17 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 // indirect - github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 // indirect github.com/aws/aws-sdk-go-v2/service/sso v1.25.5 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.3 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.34.0 // indirect github.com/aws/smithy-go v1.22.4 // indirect github.com/beorn7/perks v1.0.1 // indirect + github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect - github.com/danieljoos/wincred v1.2.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/dvsekhvalnov/jose2go v1.6.0 // indirect - github.com/elastic/go-sysinfo v1.8.1 // indirect - github.com/elastic/go-windows v1.0.0 // indirect - github.com/gabriel-vasile/mimetype v1.4.7 // indirect - github.com/go-faster/city v1.0.1 // indirect - github.com/go-faster/errors v0.7.1 // indirect - github.com/goccy/go-json v0.10.4 // indirect - github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect - github.com/golang-jwt/jwt/v5 v5.2.2 // indirect - github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 // indirect - github.com/golang-sql/sqlexp v0.1.0 // indirect - github.com/google/flatbuffers v24.12.23+incompatible // indirect - github.com/google/uuid v1.6.0 // indirect - github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect - github.com/jackc/pgpassfile v1.0.0 // indirect - github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect - github.com/jackc/puddle/v2 v2.2.2 // indirect - github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 // indirect + github.com/dnephin/pflag v1.0.7 // indirect + github.com/fatih/color v1.15.0 // indirect + github.com/fsnotify/fsnotify v1.5.4 // indirect + github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect + github.com/hashicorp/go-cleanhttp v0.5.1 // indirect + github.com/hashicorp/go-retryablehttp v0.7.1 // indirect + github.com/hashicorp/go-uuid v1.0.3 // indirect + github.com/jcmturner/gofork v1.0.0 // indirect github.com/jpillora/backoff v1.0.0 // indirect - github.com/klauspost/compress v1.18.0 // indirect - github.com/klauspost/cpuid/v2 v2.2.9 // indirect - github.com/kylelemons/godebug v1.1.0 // indirect + github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-isatty v0.0.19 // indirect github.com/mdlayher/socket v0.4.1 // indirect github.com/mdlayher/vsock v1.2.1 // indirect - github.com/mtibben/percent v0.2.1 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect - github.com/paulmach/orb v0.11.1 // indirect - github.com/pierrec/lz4/v4 v4.1.22 // indirect - github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/procfs v0.15.1 // indirect - github.com/segmentio/asm v1.2.0 // indirect - github.com/shopspring/decimal v1.4.0 // indirect + github.com/rogpeppe/go-internal v1.12.0 // indirect + github.com/rs/zerolog v1.28.0 // indirect github.com/sirupsen/logrus v1.9.3 // indirect - github.com/zeebo/xxh3 v1.0.2 // indirect - go.opentelemetry.io/otel v1.36.0 // indirect - go.opentelemetry.io/otel/trace v1.36.0 // indirect golang.org/x/crypto v0.39.0 // indirect - golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 // indirect golang.org/x/mod v0.25.0 // indirect golang.org/x/net v0.41.0 // indirect golang.org/x/oauth2 v0.30.0 // indirect @@ -100,10 +67,12 @@ require ( golang.org/x/term v0.32.0 // indirect golang.org/x/text v0.26.0 // indirect golang.org/x/tools v0.33.0 // indirect - golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect + gopkg.in/jcmturner/aescts.v1 v1.0.1 // indirect + gopkg.in/jcmturner/dnsutils.v1 v1.0.1 // indirect + gopkg.in/jcmturner/gokrb5.v6 v6.1.1 // indirect + gopkg.in/jcmturner/rpc.v1 v1.1.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gotest.tools/gotestsum v1.8.2 // indirect - howett.net/plist v0.0.0-20181124034731-591f970eefbb // indirect ) -replace github.com/xo/dburl v0.12.4 => github.com/a-monteiro/dburl v0.13.1 +replace github.com/xo/dburl v0.23.8 => github.com/a-monteiro/dburl v0.23.8-fork diff --git a/go.sum b/go.sum index 7d0cd6c5..319951f9 100644 --- a/go.sum +++ b/go.sum @@ -1,81 +1,62 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= -cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= -cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= -cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= -cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= -cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= -cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= -cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= -cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= -cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= -cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= -cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= -cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= -cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= -cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= -cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= -cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= -cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= -cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= -cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= -cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= -cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= -cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= -cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= -cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= -cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/Microsoft/go-winio v0.5.2 h1:a9IhgEQBCUEk6QCdml9CiJGhAws+YwffDHEMp1VMrpA= github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEVMRuU21PR1EtLVZJmdB18Gu3Rw= github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk= -github.com/a-monteiro/dburl v0.13.1 h1:/5H9lNTfTEP5qBPcaydseuzXZLXRy3wRrEOEMo0A+gY= -github.com/a-monteiro/dburl v0.13.1/go.mod h1:FssZaYwK7Ft/Wg6VqMJV6I0umR8bTv3Rktbi9bZ4PGo= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= -github.com/apache/thrift v0.17.0 h1:cMd2aj52n+8VoAtvSvLn4kDC3aZ6IAkBuqWQ2IDu7wo= -github.com/apache/thrift v0.17.0/go.mod h1:OLxhMRJxomX+1I/KUw03qoV3mMz16BwaKI+d4fPBx7Q= -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/a-monteiro/dburl v0.23.8-fork h1:O2+6KeAFE1znxOWLgbEap9Cdx6nAbEFIn4tKOfw+GNs= +github.com/a-monteiro/dburl v0.23.8-fork/go.mod h1:tgY/JvFUyXzD4b5S2Tx3e7A+C5Kf6IB+3GE/kcKwMAU= +github.com/apache/thrift v0.21.0 h1:tdPmh/ptjE1IJnhbhrcl2++TauVjy242rkV/UzJChnE= +github.com/apache/thrift v0.21.0/go.mod h1:W1H8aR/QRtYNvrPeFXBtobyRkd0/YVhTc6i07XIAgDw= +github.com/aws/aws-sdk-go-v2 v1.36.6 h1:zJqGjVbRdTPojeCGWn5IR5pbJwSQSBh5RWFTQcEQGdU= +github.com/aws/aws-sdk-go-v2 v1.36.6/go.mod h1:EYrzvCCN9CMUTa5+6lf6MM4tq3Zjp8UhSGR/cBsjai0= +github.com/aws/aws-sdk-go-v2/config v1.27.11 h1:f47rANd2LQEYHda2ddSCKYId18/8BhSRM4BULGmfgNA= +github.com/aws/aws-sdk-go-v2/config v1.27.11/go.mod h1:SMsV78RIOYdve1vf36z8LmnszlRWkwMQtomCAI0/mIE= +github.com/aws/aws-sdk-go-v2/credentials v1.17.70 h1:ONnH5CM16RTXRkS8Z1qg7/s2eDOhHhaXVd72mmyv4/0= +github.com/aws/aws-sdk-go-v2/credentials v1.17.70/go.mod h1:M+lWhhmomVGgtuPOhO85u4pEa3SmssPTdcYpP/5J/xc= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.32 h1:KAXP9JSHO1vKGCr5f4O6WmlVKLFFXgWYAGoJosorxzU= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.32/go.mod h1:h4Sg6FQdexC1yYG9RDnOvLbW1a/P986++/Y/a+GyEM8= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.37 h1:osMWfm/sC/L4tvEdQ65Gri5ZZDCUpuYJZbTTDrsn4I0= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.37/go.mod h1:ZV2/1fbjOPr4G4v38G3Ww5TBT4+hmsK45s/rxu1fGy0= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.37 h1:v+X21AvTb2wZ+ycg1gx+orkB/9U6L7AOp93R7qYxsxM= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.37/go.mod h1:G0uM1kyssELxmJ2VZEfG0q2npObR3BAkF3c1VsfVnfs= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 h1:bIqFDwgGXXN1Kpp99pDOdKMTTb5d2KyU5X/BZxjOkRo= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3/go.mod h1:H5O/EsxDWyU+LP/V8i5sm8cxoZgc2fdNR9bxlOFrQTo= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.4 h1:CXV68E2dNqhuynZJPB80bhPQwAKqBWVer887figW6Jc= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.4/go.mod h1:/xFi9KtvBXP97ppCz1TAEvU1Uf66qvid89rbem3wCzQ= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.17 h1:t0E6FzREdtCsiLIoLCWsYliNsRBgyGD/MCK571qk4MI= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.17/go.mod h1:ygpklyoaypuyDvOM5ujWGrYWpAK3h7ugnmKCU/76Ys4= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.8 h1:HD6R8K10gPbN9CNqRDOs42QombXlYeLOr4KkIxe2lQs= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.8/go.mod h1:x66GdH8qjYTr6Kb4ik38Ewl6moLsg8igbceNsmxVxeA= +github.com/aws/aws-sdk-go-v2/service/sso v1.25.5 h1:AIRJ3lfb2w/1/8wOOSqYb9fUKGwQbtysJ2H1MofRUPg= +github.com/aws/aws-sdk-go-v2/service/sso v1.25.5/go.mod h1:b7SiVprpU+iGazDUqvRSLf5XmCdn+JtT1on7uNL6Ipc= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.3 h1:BpOxT3yhLwSJ77qIY3DoHAQjZsc4HEGfMCE4NGy3uFg= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.3/go.mod h1:vq/GQR1gOFLquZMSrxUK/cpvKCNVYibNyJ1m7JrU88E= +github.com/aws/aws-sdk-go-v2/service/sts v1.34.0 h1:NFOJ/NXEGV4Rq//71Hs1jC/NvPs1ezajK+yQmkwnPV0= +github.com/aws/aws-sdk-go-v2/service/sts v1.34.0/go.mod h1:7ph2tGpfQvwzgistp2+zga9f+bCjlQJPkPUmMgDSD7w= +github.com/aws/smithy-go v1.22.4 h1:uqXzVZNuNexwc/xrh6Tb56u89WDlJY6HS+KC0S4QSjw= +github.com/aws/smithy-go v1.22.4/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/cenkalti/backoff/v4 v4.1.3 h1:cFAlzYUlVYDysBEH2T5hyJZMh3+5+WCBvSnK6Q8UtC4= github.com/cenkalti/backoff/v4 v4.1.3/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE= -github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= +github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/checkpoint-restore/go-criu/v5 v5.3.0/go.mod h1:E/eQpaFtUKGOOSEBZgmKAcn+zUUwWxqcaKZlF54wK8E= -github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= -github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= -github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/cilium/ebpf v0.7.0/go.mod h1:/oI2+1shJiTGAMgl6/RgJr36Eo1jzrRcAWbcXO2usCA= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U= github.com/containerd/continuity v0.3.0 h1:nisirsYROK15TAMVukJOUyGJjz4BNQJBVsNvAXZJ/eg= github.com/containerd/continuity v0.3.0/go.mod h1:wJEAIwKOm/pBZuBd0JmeTvnLquTB1Ag8espWhkykbPM= github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= +github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= -github.com/databricks/databricks-sql-go v0.2.2 h1:D4uy8m+KcfUwHYuwGo6Lnq8Z3e6SrHN52gql3eqHQgc= -github.com/databricks/databricks-sql-go v0.2.2/go.mod h1:qKEsB/mPgDM9EvhF2GzivfUEWtSxsM4MFury5GP1U5w= github.com/databricks/databricks-sql-go v1.0.1-0.20230105210901-69b282787450 h1:j+lJBSJ1xB7/eWDBUNpk56wOJJRlzb8iK+vP0F+AIlQ= github.com/databricks/databricks-sql-go v1.0.1-0.20230105210901-69b282787450/go.mod h1:qKEsB/mPgDM9EvhF2GzivfUEWtSxsM4MFury5GP1U5w= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -94,91 +75,27 @@ github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKoh github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= +github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= +github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwVZI= github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= -github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= -github.com/go-kit/log v0.2.0 h1:7i2K3eKTos3Vc0enKCfnVcgHh2olr/MyfboYq7cAcFw= -github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= -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-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA= -github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/godbus/dbus/v5 v5.0.6/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -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= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= -github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= -github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= -github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/hashicorp/go-cleanhttp v0.5.1 h1:dH3aiDG9Jvb5r5+bYHsikaOUIpcM0xvgMXVoDkXMzJM= github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-hclog v0.9.2 h1:CG6TE5H9/JXsFWJCfoIVpKFIkFe6ysEuHirp4DxCsHI= @@ -187,9 +104,6 @@ github.com/hashicorp/go-retryablehttp v0.7.1 h1:sUiuQAnLlbvmExtFQs72iFW/HXeUn8Z1 github.com/hashicorp/go-retryablehttp v0.7.1/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk= github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= @@ -197,38 +111,35 @@ github.com/jcmturner/gofork v1.0.0 h1:J7uCkflzTEhUZ64xqKnkDxq3kzc96ajM1Gli5ktUem github.com/jcmturner/gofork v1.0.0/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/UM3ncEo0o= github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= -github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= -github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= -github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/kardianos/minwinsvc v1.0.0 h1:+JfAi8IBJna0jY2dJGZqi7o15z13JelFIklJCAENALA= github.com/kardianos/minwinsvc v1.0.0/go.mod h1:Bgd0oc+D0Qo3bBytmNtyRKVlp85dAloLKhfxanPFFRc= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= +github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/lib/pq v0.0.0-20180327071824-d34b9ff171c2/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= -github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= -github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= +github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mdlayher/socket v0.4.1 h1:eM9y2/jlbs1M615oshPQOHZzj6R6wMT7bX5NPiQvn2U= +github.com/mdlayher/socket v0.4.1/go.mod h1:cAqeGjoufqdxWkD7DkpyS+wcefOtmu5OQ8KuoJGIReA= +github.com/mdlayher/vsock v1.2.1 h1:pC1mTJTvjo1r9n9fbm7S1j04rCgCzhCOS5DY0zqHlnQ= +github.com/mdlayher/vsock v1.2.1/go.mod h1:NRfCibel++DgeMD8z/hP+PPTjlNJsdPOmxcnENvE+SE= github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= @@ -236,13 +147,9 @@ github.com/moby/sys/mountinfo v0.5.0/go.mod h1:3bMD3Rg+zkqx8MRYPi7Pyb0Ie97QEBmdx github.com/moby/term v0.0.0-20201216013528-df9cb8a40635/go.mod h1:FBS0z0QWA44HXygs7VXDUOGoN/1TV3RuWkLO04am3wc= github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6 h1:dcztxKSvZ4Id8iPpHERQBbIJfabdt4wUm5qy3wOL2Zc= github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6/go.mod h1:E2VnQOmVuvZB6UYnnDB0qG5Nq/1tD9acaOpo6xmt0Kw= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ= -github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= @@ -256,69 +163,46 @@ github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417/go.m github.com/opencontainers/selinux v1.10.0/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI= github.com/ory/dockertest/v3 v3.9.1 h1:v4dkG+dlu76goxMiTT2j8zV7s4oPPEppKT8K8p2f1kY= github.com/ory/dockertest/v3 v3.9.1/go.mod h1:42Ir9hmvaAPm0Mgibk6mBPi7SFvTXxEcnztDYOJ//uM= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= -github.com/prometheus/client_golang v1.13.0 h1:b71QUfeo5M8gq2+evJdTPfZhYMAU0uKPkyPJ7TPsloU= -github.com/prometheus/client_golang v1.13.0/go.mod h1:vTeo+zgvILHsnnj/39Ou/1fPN5nJFOEMgftOUOmlvYQ= -github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= -github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= -github.com/prometheus/common v0.29.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/common v0.37.0 h1:ccBbHCgIiT9uSoFY0vX8H3zsNR5eLt17/RQLUvn8pXE= -github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA= -github.com/prometheus/exporter-toolkit v0.7.1 h1:c6RXaK8xBVercEeUQ4tRNL8UGWzDHfvj9dseo1FcK1Y= -github.com/prometheus/exporter-toolkit v0.7.1/go.mod h1:ZUBIj498ePooX9t/2xtDjeQYwvRpiPP2lh5u4iblj2g= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo= -github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/prometheus/client_golang v1.22.0 h1:rb93p9lokFEsctTys46VnV1kLCDpVZ0a/Y92Vm0Zc6Q= +github.com/prometheus/client_golang v1.22.0/go.mod h1:R7ljNsLXhuQXYZYtw6GAE9AZg8Y7vEW5scdCXrWRXC0= +github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= +github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= +github.com/prometheus/common v0.65.0 h1:QDwzd+G1twt//Kwj/Ww6E9FQq1iVMmODnILtW1t2VzE= +github.com/prometheus/common v0.65.0/go.mod h1:0gZns+BLRQ3V6NdaerOhMbwwRbNh9hkGINtQAsP5GS8= +github.com/prometheus/exporter-toolkit v0.14.0 h1:NMlswfibpcZZ+H0sZBiTjrA3/aBFHkNZqE+iCj5EmRg= +github.com/prometheus/exporter-toolkit v0.14.0/go.mod h1:Gu5LnVvt7Nr/oqTBUC23WILZepW0nffNo10XdhQcwWA= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= +github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= +github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/rs/xid v1.4.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/rs/zerolog v1.28.0 h1:MirSo27VyNi7RJYP3078AA1+Cyzd2GB66qy3aUHvsWY= github.com/rs/zerolog v1.28.0/go.mod h1:NILgTygv/Uej1ra5XxGf82ZFSLk58MFGAUS2o6usyD0= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/seccomp/libseccomp-golang v0.9.2-0.20210429002308-3879420cc921/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= github.com/seccomp/libseccomp-golang v0.9.2-0.20220502022130-f33da4d89646/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= +github.com/sethvargo/go-envconfig v1.3.0 h1:gJs+Fuv8+f05omTpwWIu6KmuseFAXKrIaOZSh8RMt0U= +github.com/sethvargo/go-envconfig v1.3.0/go.mod h1:JLd0KFWQYzyENqnEPWWZ49i4vzZo/6nRidxI8YvGiHw= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/simonpasquier/klog-gokit/v3 v3.1.0 h1:xQGqjZdgo1lFA4eZ9PcGnKKXgIPz9t+jc25q/fXooIE= -github.com/simonpasquier/klog-gokit/v3 v3.1.0/go.mod h1:+WRhGy707Lp2Q4r727m9Oc7FxazOHgW76FIyCr23nus= -github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/trinodb/trino-go-client v0.308.0 h1:JXO1Kt8XktqCG5cuFmArqlwz1OiBAYHhNm8cggn12vI= -github.com/trinodb/trino-go-client v0.308.0/go.mod h1:b3wyshZj60DHd7JsULwPvaq+JD6e3v+tQugVKZ+SqBw= github.com/trinodb/trino-go-client v0.309.0 h1:6TJDdUE69kcEmhv5dcY4IuJJ0MQDtjBrc/08T29SFbg= github.com/trinodb/trino-go-client v0.309.0/go.mod h1:b3wyshZj60DHd7JsULwPvaq+JD6e3v+tQugVKZ+SqBw= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= @@ -331,157 +215,56 @@ github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHo github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= -github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= -go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220919173607-35f4265a4bc0 h1:a5Yg6ylndHHYJqIPrdq0AhvR6KTvDTAvgBtaidhEevY= -golang.org/x/crypto v0.0.0-20220919173607-35f4265a4bc0/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= -golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= -golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -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-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= -golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b/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.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/crypto v0.39.0 h1:SHs+kF4LP+f+p14esP5jAoDpHU8Gu/v9lFRK6IT5imM= +golang.org/x/crypto v0.39.0/go.mod h1:L+Xg3Wf6HoL4Bn4238Z6ft6KfEpN0tJGo53AAPC632U= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -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= -golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/mod v0.25.0 h1:n7a+ZbQKQA/Ysbyb0/6IbB1H/X41mKgbhfv7AfG/44w= +golang.org/x/mod v0.25.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220706163947-c90051bbdb60/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.0.0-20220920203100-d0c6ba3f52d9 h1:asZqf0wXastQr+DudYagQS8uBO8bHKeYD1vbAvGmFL8= -golang.org/x/net v0.0.0-20220920203100-d0c6ba3f52d9/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b h1:clP8eMhB30EHdc0bd2Twtq6kgU7yl5ub2cQLSdrv1Dg= -golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/net v0.41.0 h1:vBTly1HeNPEn3wtREYfy4GZ/NECgw2Cnl+nK6Nz3uvw= +golang.org/x/net v0.41.0/go.mod h1:B/K4NNqkfmg07DQYrbwvSluqCJOOXwUjeb/5lOisjbA= +golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI= +golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f h1:Ax0t5p6N38Ga0dThY21weqDEyz2oklo4IvDkpigvkD8= golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sync v0.15.0 h1:KWH3jNZsfyT6xfAfKiz6MRNmd46ByHDYaZ7KSkCtdW8= +golang.org/x/sync v0.15.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200602225109-6fdc65e7d980/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -490,162 +273,47 @@ golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211116061358-0a5406a5449c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220405210540-1e041c57c461/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220708085239-5a0f0661e09d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220919091848-fb04ddd9f9c8 h1:h+EGohizhe9XlX18rfpa8k8RAc5XyaeamM+0VHRd4lc= -golang.org/x/sys v0.0.0-20220919091848-fb04ddd9f9c8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= +golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.0.0-20220526004731-065cf7ba2467 h1:CBpWXWQpIRjzmkkA+M7q9Fqnwd2mZr3AFqexg8YTfoM= golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/term v0.32.0 h1:DR4lr0TjUs3epypdhTOkMmuF5CDFJ/8pOnbzMZPQ7bg= +golang.org/x/term v0.32.0/go.mod h1:uZG1FhGx848Sqfsq4/DlJr3xGGsYMu/L5GW4abiaEPQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/text v0.26.0 h1:P42AVeLghgTYr4+xUnTRKDMqpar+PtX7KWuNQL21L8M= +golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/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.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= -golang.org/x/tools v0.1.11 h1:loJ25fNOEhSXfHrpoGj91eCUThwdNX6u24rO1xnNteY= golang.org/x/tools v0.1.11/go.mod h1:SgwaegtQh8clINPpECJMqnxLv9I09HLqnW3RMqW0CA4= +golang.org/x/tools v0.33.0 h1:4qz2S3zmRxbGIhDIAgjxvFutSvH5EfnsYrRBj0UI0bc= +golang.org/x/tools v0.33.0/go.mod h1:CIJMaWEY88juyUfo7UbgPqbC8rU2OqfAV1h2Qp0oMYI= 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= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= -google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= -google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.6 h1:lMO5rYAqUxkmaj76jAkRUvt5JZgFymx/+Q5Mzfivuhc= -google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= -google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= -google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= -google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= -google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/jcmturner/aescts.v1 v1.0.1 h1:cVVZBK2b1zY26haWB4vbBiZrfFQnfbTVrE3xZq6hrEw= gopkg.in/jcmturner/aescts.v1 v1.0.1/go.mod h1:nsR8qBOg+OucoIW+WMhB3GspUQXq9XorLnQb9XtvcOo= gopkg.in/jcmturner/dnsutils.v1 v1.0.1 h1:cIuC1OLRGZrld+16ZJvvZxVJeKPsvd5eUIvxfoN5hSM= @@ -656,10 +324,7 @@ gopkg.in/jcmturner/gokrb5.v6 v6.1.1 h1:n0KFjpbuM5pFMN38/Ay+Br3l91netGSVqHPHEXeWU gopkg.in/jcmturner/gokrb5.v6 v6.1.1/go.mod h1:NFjHNLrHQiruory+EmqDXCGv6CrjkeYeA+bR9mIfNFk= gopkg.in/jcmturner/rpc.v1 v1.1.0 h1:QHIUxTX1ISuAv9dD2wJ9HWQVuWDX/Zc0PfeC2tjc4rU= gopkg.in/jcmturner/rpc.v1 v1.1.0/go.mod h1:YIdkC4XfD6GXbzje11McwsDuOlZQSb9W4vfLvuNnlv8= -gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= @@ -673,13 +338,3 @@ gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= gotest.tools/v3 v3.2.0/go.mod h1:Mcr9QNxkg0uMvy/YElmo4SpXgJKWgQvYrT7Kw5RzJ1A= gotest.tools/v3 v3.3.0 h1:MfDY1b1/0xN1CyMlQDac0ziEy9zJQd9CXBRRDHw2jJo= gotest.tools/v3 v3.3.0/go.mod h1:Mcr9QNxkg0uMvy/YElmo4SpXgJKWgQvYrT7Kw5RzJ1A= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -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.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -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= -rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= -rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= From d2759587918553ee9abb54c16791f8a14342d990 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Monteiro?= Date: Sun, 27 Jul 2025 12:19:25 +0100 Subject: [PATCH 401/401] Update trino client to v0.326.0 --- go.mod | 58 ++++++++------- go.sum | 222 ++++++++++++++++++++++++--------------------------------- 2 files changed, 126 insertions(+), 154 deletions(-) diff --git a/go.mod b/go.mod index 7e5a8312..03e3205a 100644 --- a/go.mod +++ b/go.mod @@ -3,17 +3,17 @@ module github.com/burningalchemist/sql_exporter go 1.23.0 require ( - github.com/aws/aws-sdk-go-v2 v1.36.6 - github.com/aws/aws-sdk-go-v2/config v1.27.11 - github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.8 + github.com/aws/aws-sdk-go-v2 v1.36.5 + github.com/aws/aws-sdk-go-v2/config v1.29.17 + github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.7 github.com/databricks/databricks-sql-go v1.0.1-0.20230105210901-69b282787450 - github.com/kardianos/minwinsvc v1.0.0 + github.com/kardianos/minwinsvc v1.0.2 github.com/prometheus/client_golang v1.22.0 github.com/prometheus/client_model v0.6.2 github.com/prometheus/common v0.65.0 github.com/prometheus/exporter-toolkit v0.14.0 github.com/sethvargo/go-envconfig v1.3.0 - github.com/trinodb/trino-go-client v0.309.0 + github.com/trinodb/trino-go-client v0.326.0 github.com/xo/dburl v0.23.8 google.golang.org/protobuf v1.36.6 gopkg.in/yaml.v3 v3.0.1 @@ -21,10 +21,28 @@ require ( require ( github.com/apache/thrift v0.21.0 // indirect + github.com/dnephin/pflag v1.0.7 // indirect + github.com/docker/docker v28.2.2+incompatible // indirect + github.com/fatih/color v1.15.0 // indirect + github.com/fsnotify/fsnotify v1.5.4 // indirect + github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect + github.com/hashicorp/go-cleanhttp v0.5.1 // indirect + github.com/hashicorp/go-retryablehttp v0.7.1 // indirect + github.com/hashicorp/go-uuid v1.0.3 // indirect + github.com/jcmturner/gofork v1.7.6 // indirect + github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-isatty v0.0.19 // indirect + github.com/opencontainers/image-spec v1.1.1 // indirect + github.com/rogpeppe/go-internal v1.12.0 // indirect + github.com/rs/zerolog v1.28.0 // indirect + gotest.tools/gotestsum v1.8.2 // indirect +) + +require ( github.com/aws/aws-sdk-go-v2/credentials v1.17.70 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.32 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.37 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.37 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.36 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.36 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.4 // indirect github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.17 // indirect @@ -33,31 +51,24 @@ require ( github.com/aws/aws-sdk-go-v2/service/sts v1.34.0 // indirect github.com/aws/smithy-go v1.22.4 // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/dnephin/pflag v1.0.7 // indirect - github.com/fatih/color v1.15.0 // indirect - github.com/fsnotify/fsnotify v1.5.4 // indirect - github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect - github.com/hashicorp/go-cleanhttp v0.5.1 // indirect - github.com/hashicorp/go-retryablehttp v0.7.1 // indirect - github.com/hashicorp/go-uuid v1.0.3 // indirect - github.com/jcmturner/gofork v1.0.0 // indirect + github.com/jcmturner/aescts/v2 v2.0.0 // indirect + github.com/jcmturner/dnsutils/v2 v2.0.0 // indirect + github.com/jcmturner/goidentity/v6 v6.0.1 // indirect + github.com/jcmturner/gokrb5/v8 v8.4.4 // indirect + github.com/jcmturner/rpc/v2 v2.0.3 // indirect github.com/jpillora/backoff v1.0.0 // indirect - github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.19 // indirect + github.com/klauspost/compress v1.18.0 // indirect github.com/mdlayher/socket v0.4.1 // indirect github.com/mdlayher/vsock v1.2.1 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect + github.com/pierrec/lz4 v2.6.1+incompatible // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/procfs v0.15.1 // indirect - github.com/rogpeppe/go-internal v1.12.0 // indirect - github.com/rs/zerolog v1.28.0 // indirect - github.com/sirupsen/logrus v1.9.3 // indirect golang.org/x/crypto v0.39.0 // indirect golang.org/x/mod v0.25.0 // indirect golang.org/x/net v0.41.0 // indirect @@ -67,12 +78,7 @@ require ( golang.org/x/term v0.32.0 // indirect golang.org/x/text v0.26.0 // indirect golang.org/x/tools v0.33.0 // indirect - gopkg.in/jcmturner/aescts.v1 v1.0.1 // indirect - gopkg.in/jcmturner/dnsutils.v1 v1.0.1 // indirect - gopkg.in/jcmturner/gokrb5.v6 v6.1.1 // indirect - gopkg.in/jcmturner/rpc.v1 v1.1.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect - gotest.tools/gotestsum v1.8.2 // indirect ) replace github.com/xo/dburl v0.23.8 => github.com/a-monteiro/dburl v0.23.8-fork diff --git a/go.sum b/go.sum index 319951f9..ff4d2642 100644 --- a/go.sum +++ b/go.sum @@ -1,35 +1,49 @@ -github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= -github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= -github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/Microsoft/go-winio v0.5.2 h1:a9IhgEQBCUEk6QCdml9CiJGhAws+YwffDHEMp1VMrpA= -github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= +dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= +dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= +github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= +github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEVMRuU21PR1EtLVZJmdB18Gu3Rw= github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk= github.com/a-monteiro/dburl v0.23.8-fork h1:O2+6KeAFE1znxOWLgbEap9Cdx6nAbEFIn4tKOfw+GNs= github.com/a-monteiro/dburl v0.23.8-fork/go.mod h1:tgY/JvFUyXzD4b5S2Tx3e7A+C5Kf6IB+3GE/kcKwMAU= +github.com/ahmetb/dlog v0.0.0-20170105205344-4fb5f8204f26 h1:3YVZUqkoev4mL+aCwVOSWV4M7pN+NURHL38Z2zq5JKA= +github.com/ahmetb/dlog v0.0.0-20170105205344-4fb5f8204f26/go.mod h1:ymXt5bw5uSNu4jveerFxE0vNYxF8ncqbptntMaFMg3k= github.com/apache/thrift v0.21.0 h1:tdPmh/ptjE1IJnhbhrcl2++TauVjy242rkV/UzJChnE= github.com/apache/thrift v0.21.0/go.mod h1:W1H8aR/QRtYNvrPeFXBtobyRkd0/YVhTc6i07XIAgDw= -github.com/aws/aws-sdk-go-v2 v1.36.6 h1:zJqGjVbRdTPojeCGWn5IR5pbJwSQSBh5RWFTQcEQGdU= -github.com/aws/aws-sdk-go-v2 v1.36.6/go.mod h1:EYrzvCCN9CMUTa5+6lf6MM4tq3Zjp8UhSGR/cBsjai0= -github.com/aws/aws-sdk-go-v2/config v1.27.11 h1:f47rANd2LQEYHda2ddSCKYId18/8BhSRM4BULGmfgNA= -github.com/aws/aws-sdk-go-v2/config v1.27.11/go.mod h1:SMsV78RIOYdve1vf36z8LmnszlRWkwMQtomCAI0/mIE= +github.com/aws/aws-sdk-go v1.55.6 h1:cSg4pvZ3m8dgYcgqB97MrcdjUmZ1BeMYKUxMMB89IPk= +github.com/aws/aws-sdk-go v1.55.6/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= +github.com/aws/aws-sdk-go-v2 v1.36.5 h1:0OF9RiEMEdDdZEMqF9MRjevyxAQcf6gY+E7vwBILFj0= +github.com/aws/aws-sdk-go-v2 v1.36.5/go.mod h1:EYrzvCCN9CMUTa5+6lf6MM4tq3Zjp8UhSGR/cBsjai0= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.10 h1:zAybnyUQXIZ5mok5Jqwlf58/TFE7uvd3IAsa1aF9cXs= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.10/go.mod h1:qqvMj6gHLR/EXWZw4ZbqlPbQUyenf4h82UQUlKc+l14= +github.com/aws/aws-sdk-go-v2/config v1.29.17 h1:jSuiQ5jEe4SAMH6lLRMY9OVC+TqJLP5655pBGjmnjr0= +github.com/aws/aws-sdk-go-v2/config v1.29.17/go.mod h1:9P4wwACpbeXs9Pm9w1QTh6BwWwJjwYvJ1iCt5QbCXh8= github.com/aws/aws-sdk-go-v2/credentials v1.17.70 h1:ONnH5CM16RTXRkS8Z1qg7/s2eDOhHhaXVd72mmyv4/0= github.com/aws/aws-sdk-go-v2/credentials v1.17.70/go.mod h1:M+lWhhmomVGgtuPOhO85u4pEa3SmssPTdcYpP/5J/xc= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.32 h1:KAXP9JSHO1vKGCr5f4O6WmlVKLFFXgWYAGoJosorxzU= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.32/go.mod h1:h4Sg6FQdexC1yYG9RDnOvLbW1a/P986++/Y/a+GyEM8= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.37 h1:osMWfm/sC/L4tvEdQ65Gri5ZZDCUpuYJZbTTDrsn4I0= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.37/go.mod h1:ZV2/1fbjOPr4G4v38G3Ww5TBT4+hmsK45s/rxu1fGy0= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.37 h1:v+X21AvTb2wZ+ycg1gx+orkB/9U6L7AOp93R7qYxsxM= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.37/go.mod h1:G0uM1kyssELxmJ2VZEfG0q2npObR3BAkF3c1VsfVnfs= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.36 h1:SsytQyTMHMDPspp+spo7XwXTP44aJZZAC7fBV2C5+5s= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.36/go.mod h1:Q1lnJArKRXkenyog6+Y+zr7WDpk4e6XlR6gs20bbeNo= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.36 h1:i2vNHQiXUvKhs3quBR6aqlgJaiaexz/aNvdCktW/kAM= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.36/go.mod h1:UdyGa7Q91id/sdyHPwth+043HhmP6yP9MBHgbZM0xo8= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 h1:bIqFDwgGXXN1Kpp99pDOdKMTTb5d2KyU5X/BZxjOkRo= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3/go.mod h1:H5O/EsxDWyU+LP/V8i5sm8cxoZgc2fdNR9bxlOFrQTo= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.34 h1:ZNTqv4nIdE/DiBfUUfXcLZ/Spcuz+RjeziUtNJackkM= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.34/go.mod h1:zf7Vcd1ViW7cPqYWEHLHJkS50X0JS2IKz9Cgaj6ugrs= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.4 h1:CXV68E2dNqhuynZJPB80bhPQwAKqBWVer887figW6Jc= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.4/go.mod h1:/xFi9KtvBXP97ppCz1TAEvU1Uf66qvid89rbem3wCzQ= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.0 h1:lguz0bmOoGzozP9XfRJR1QIayEYo+2vP/No3OfLF0pU= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.0/go.mod h1:iu6FSzgt+M2/x3Dk8zhycdIcHjEFb36IS8HVUVFoMg0= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.17 h1:t0E6FzREdtCsiLIoLCWsYliNsRBgyGD/MCK571qk4MI= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.17/go.mod h1:ygpklyoaypuyDvOM5ujWGrYWpAK3h7ugnmKCU/76Ys4= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.8 h1:HD6R8K10gPbN9CNqRDOs42QombXlYeLOr4KkIxe2lQs= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.8/go.mod h1:x66GdH8qjYTr6Kb4ik38Ewl6moLsg8igbceNsmxVxeA= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15 h1:moLQUoVq91LiqT1nbvzDukyqAlCv89ZmwaHw/ZFlFZg= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15/go.mod h1:ZH34PJUc8ApjBIfgQCFvkWcUDBtl/WTD+uiYHjd8igA= +github.com/aws/aws-sdk-go-v2/service/s3 v1.79.0 h1:OIw2nryEApESTYI5deCZGcq4Gvz8DBAt4tJlNyg3v5o= +github.com/aws/aws-sdk-go-v2/service/s3 v1.79.0/go.mod h1:U5SNqwhXB3Xe6F47kXvWihPl/ilGaEDe8HD/50Z9wxc= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.7 h1:d+mnMa4JbJlooSbYQfrJpit/YINaB30JEVgrhtjZneA= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.7/go.mod h1:1X1NotbcGHH7PCQJ98PsExSxsJj/VWzz8MfFz43+02M= github.com/aws/aws-sdk-go-v2/service/sso v1.25.5 h1:AIRJ3lfb2w/1/8wOOSqYb9fUKGwQbtysJ2H1MofRUPg= github.com/aws/aws-sdk-go-v2/service/sso v1.25.5/go.mod h1:b7SiVprpU+iGazDUqvRSLf5XmCdn+JtT1on7uNL6Ipc= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.3 h1:BpOxT3yhLwSJ77qIY3DoHAQjZsc4HEGfMCE4NGy3uFg= @@ -40,23 +54,15 @@ github.com/aws/smithy-go v1.22.4 h1:uqXzVZNuNexwc/xrh6Tb56u89WDlJY6HS+KC0S4QSjw= github.com/aws/smithy-go v1.22.4/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/cenkalti/backoff/v4 v4.1.3/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/checkpoint-restore/go-criu/v5 v5.3.0/go.mod h1:E/eQpaFtUKGOOSEBZgmKAcn+zUUwWxqcaKZlF54wK8E= -github.com/cilium/ebpf v0.7.0/go.mod h1:/oI2+1shJiTGAMgl6/RgJr36Eo1jzrRcAWbcXO2usCA= -github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U= -github.com/containerd/continuity v0.3.0 h1:nisirsYROK15TAMVukJOUyGJjz4BNQJBVsNvAXZJ/eg= -github.com/containerd/continuity v0.3.0/go.mod h1:wJEAIwKOm/pBZuBd0JmeTvnLquTB1Ag8espWhkykbPM= -github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/containerd/continuity v0.4.3 h1:6HVkalIp+2u1ZLH1J/pYX2oBVXlJZvh1X1A7bEZ9Su8= +github.com/containerd/continuity v0.4.3/go.mod h1:F6PTNCKepoxEaXLQp3wDAjygEnImnZ/7o4JzpodfroQ= github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/databricks/databricks-sql-go v1.0.1-0.20230105210901-69b282787450 h1:j+lJBSJ1xB7/eWDBUNpk56wOJJRlzb8iK+vP0F+AIlQ= github.com/databricks/databricks-sql-go v1.0.1-0.20230105210901-69b282787450/go.mod h1:qKEsB/mPgDM9EvhF2GzivfUEWtSxsM4MFury5GP1U5w= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -65,68 +71,69 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dnephin/pflag v1.0.7 h1:oxONGlWxhmUct0YzKTgrpQv9AUA1wtPBn7zuSjJqptk= github.com/dnephin/pflag v1.0.7/go.mod h1:uxE91IoWURlOiTUIA8Mq5ZZkAv3dPUfZNaT80Zm7OQE= -github.com/docker/cli v20.10.14+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= -github.com/docker/cli v20.10.17+incompatible h1:eO2KS7ZFeov5UJeaDmIs1NFEDRf32PaqRpvoEkKBy5M= -github.com/docker/cli v20.10.17+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= -github.com/docker/docker v20.10.7+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v20.10.17+incompatible h1:JYCuMrWaVNophQTOrMMoSwudOVEfcegoZZrleKc1xwE= -github.com/docker/docker v20.10.17+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= -github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw= -github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/docker/cli v26.1.4+incompatible h1:I8PHdc0MtxEADqYJZvhBrW9bo8gawKwwenxRM7/rLu8= +github.com/docker/cli v26.1.4+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/docker v28.2.2+incompatible h1:CjwRSksz8Yo4+RmQ339Dp/D2tGO5JxwYeqtMOEe0LDw= +github.com/docker/docker v28.2.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= +github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= +github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= +github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= -github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwVZI= github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= -github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/godbus/dbus/v5 v5.0.6/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= +github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= +github.com/gorilla/securecookie v1.1.1 h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyCS8BvQ= +github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= +github.com/gorilla/sessions v1.2.1 h1:DHd3rPN5lE3Ts3D8rKkQ8x/0kqfeNmBAaiSi+o7FsgI= +github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= github.com/hashicorp/go-cleanhttp v0.5.1 h1:dH3aiDG9Jvb5r5+bYHsikaOUIpcM0xvgMXVoDkXMzJM= github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-hclog v0.9.2 h1:CG6TE5H9/JXsFWJCfoIVpKFIkFe6ysEuHirp4DxCsHI= github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= github.com/hashicorp/go-retryablehttp v0.7.1 h1:sUiuQAnLlbvmExtFQs72iFW/HXeUn8Z1aJLQ4LJJbTQ= github.com/hashicorp/go-retryablehttp v0.7.1/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= +github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= -github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk= -github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= -github.com/jcmturner/gofork v1.0.0 h1:J7uCkflzTEhUZ64xqKnkDxq3kzc96ajM1Gli5ktUem8= -github.com/jcmturner/gofork v1.0.0/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/UM3ncEo0o= +github.com/jcmturner/aescts/v2 v2.0.0 h1:9YKLH6ey7H4eDBXW8khjYslgyqG2xZikXP0EQFKrle8= +github.com/jcmturner/aescts/v2 v2.0.0/go.mod h1:AiaICIRyfYg35RUkr8yESTqvSy7csK90qZ5xfvvsoNs= +github.com/jcmturner/dnsutils/v2 v2.0.0 h1:lltnkeZGL0wILNvrNiVCR6Ro5PGU/SeBvVO/8c/iPbo= +github.com/jcmturner/dnsutils/v2 v2.0.0/go.mod h1:b0TnjGOvI/n42bZa+hmXL+kFJZsFT7G4t3HTlQ184QM= +github.com/jcmturner/gofork v1.7.6 h1:QH0l3hzAU1tfT3rZCnW5zXl+orbkNMMRGJfdJjHVETg= +github.com/jcmturner/gofork v1.7.6/go.mod h1:1622LH6i/EZqLloHfE7IeZ0uEJwMSUyQ/nDd82IeqRo= +github.com/jcmturner/goidentity/v6 v6.0.1 h1:VKnZd2oEIMorCTsFBnJWbExfNN7yZr3EhJAxwOkZg6o= +github.com/jcmturner/goidentity/v6 v6.0.1/go.mod h1:X1YW3bgtvwAXju7V3LCIMpY0Gbxyjn/mY9zx4tFonSg= +github.com/jcmturner/gokrb5/v8 v8.4.4 h1:x1Sv4HaTpepFkXbt2IkL29DXRf8sOfZXo8eRKh687T8= +github.com/jcmturner/gokrb5/v8 v8.4.4/go.mod h1:1btQEpgT6k+unzCwX1KdWMEwPPkkgBtP+F6aCACiMrs= +github.com/jcmturner/rpc/v2 v2.0.3 h1:7FXXj8Ti1IaVFpSAziCZWNzbNuZmnvw/i6CqLNdWfZY= +github.com/jcmturner/rpc/v2 v2.0.3/go.mod h1:VUJYCIDm3PVOEHw8sgt091/20OJjskO/YJki3ELg/Hc= github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= -github.com/kardianos/minwinsvc v1.0.0 h1:+JfAi8IBJna0jY2dJGZqi7o15z13JelFIklJCAENALA= -github.com/kardianos/minwinsvc v1.0.0/go.mod h1:Bgd0oc+D0Qo3bBytmNtyRKVlp85dAloLKhfxanPFFRc= -github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kardianos/minwinsvc v1.0.2 h1:JmZKFJQrmTGa/WiW+vkJXKmfzdjabuEW4Tirj5lLdR0= +github.com/kardianos/minwinsvc v1.0.2/go.mod h1:LUZNYhNmxujx2tR7FbdxqYJ9XDDoCd3MQcl1o//FWl4= github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/lib/pq v0.0.0-20180327071824-d34b9ff171c2/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= @@ -140,30 +147,26 @@ github.com/mdlayher/socket v0.4.1 h1:eM9y2/jlbs1M615oshPQOHZzj6R6wMT7bX5NPiQvn2U github.com/mdlayher/socket v0.4.1/go.mod h1:cAqeGjoufqdxWkD7DkpyS+wcefOtmu5OQ8KuoJGIReA= github.com/mdlayher/vsock v1.2.1 h1:pC1mTJTvjo1r9n9fbm7S1j04rCgCzhCOS5DY0zqHlnQ= github.com/mdlayher/vsock v1.2.1/go.mod h1:NRfCibel++DgeMD8z/hP+PPTjlNJsdPOmxcnENvE+SE= -github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/moby/sys/mountinfo v0.5.0/go.mod h1:3bMD3Rg+zkqx8MRYPi7Pyb0Ie97QEBmdxbhnCLlSvSU= -github.com/moby/term v0.0.0-20201216013528-df9cb8a40635/go.mod h1:FBS0z0QWA44HXygs7VXDUOGoN/1TV3RuWkLO04am3wc= -github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6 h1:dcztxKSvZ4Id8iPpHERQBbIJfabdt4wUm5qy3wOL2Zc= -github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6/go.mod h1:E2VnQOmVuvZB6UYnnDB0qG5Nq/1tD9acaOpo6xmt0Kw= -github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ= +github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0= +github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo= +github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= +github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.0.2 h1:9yCKha/T5XdGtO0q9Q9a6T5NUCsTn/DrBg0D7ufOcFM= -github.com/opencontainers/image-spec v1.0.2/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/runc v1.1.2/go.mod h1:Tj1hFw6eFWp/o33uxGf5yF2BX5yz2Z6iptFpuvbbKqc= -github.com/opencontainers/runc v1.1.3 h1:vIXrkId+0/J2Ymu2m7VjGvbSlAId9XNRPhn2p4b+d8w= -github.com/opencontainers/runc v1.1.3/go.mod h1:1J5XiS+vdZ3wCyZybsuxXZWGrgSr8fFJHLXuG2PsnNg= -github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/selinux v1.10.0/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI= -github.com/ory/dockertest/v3 v3.9.1 h1:v4dkG+dlu76goxMiTT2j8zV7s4oPPEppKT8K8p2f1kY= -github.com/ory/dockertest/v3 v3.9.1/go.mod h1:42Ir9hmvaAPm0Mgibk6mBPi7SFvTXxEcnztDYOJ//uM= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/opencontainers/image-spec v1.1.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040= +github.com/opencontainers/image-spec v1.1.1/go.mod h1:qpqAh3Dmcf36wStyyWU+kCeDgrGnAve2nCC8+7h8Q0M= +github.com/opencontainers/runc v1.1.13 h1:98S2srgG9vw0zWcDpFMn5TRrh8kLxa/5OFUstuUhmRs= +github.com/opencontainers/runc v1.1.13/go.mod h1:R016aXacfp/gwQBYw2FDGa9m+n6atbLWrYY8hNMT/sA= +github.com/ory/dockertest/v3 v3.11.0 h1:OiHcxKAvSDUwsEVh2BjxQQc/5EHz9n0va9awCtNGuyA= +github.com/ory/dockertest/v3 v3.11.0/go.mod h1:VIPxS1gwT9NpPOrfD3rACs8Y9Z7yhzO4SB194iUDnUI= +github.com/pierrec/lz4 v2.6.1+incompatible h1:9UY3+iC23yxF0UfGaYrGplQ+79Rg+h/q9FV9ix19jjM= +github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -184,157 +187,120 @@ github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99 github.com/rs/xid v1.4.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/rs/zerolog v1.28.0 h1:MirSo27VyNi7RJYP3078AA1+Cyzd2GB66qy3aUHvsWY= github.com/rs/zerolog v1.28.0/go.mod h1:NILgTygv/Uej1ra5XxGf82ZFSLk58MFGAUS2o6usyD0= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/seccomp/libseccomp-golang v0.9.2-0.20210429002308-3879420cc921/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= -github.com/seccomp/libseccomp-golang v0.9.2-0.20220502022130-f33da4d89646/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= github.com/sethvargo/go-envconfig v1.3.0 h1:gJs+Fuv8+f05omTpwWIu6KmuseFAXKrIaOZSh8RMt0U= github.com/sethvargo/go-envconfig v1.3.0/go.mod h1:JLd0KFWQYzyENqnEPWWZ49i4vzZo/6nRidxI8YvGiHw= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/trinodb/trino-go-client v0.309.0 h1:6TJDdUE69kcEmhv5dcY4IuJJ0MQDtjBrc/08T29SFbg= -github.com/trinodb/trino-go-client v0.309.0/go.mod h1:b3wyshZj60DHd7JsULwPvaq+JD6e3v+tQugVKZ+SqBw= -github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= -github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= -github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/trinodb/trino-go-client v0.326.0 h1:YBTww/DACsNFIBFh9SfFra3Q/3H9Cs/dnCkWoIYjMZk= +github.com/trinodb/trino-go-client v0.326.0/go.mod h1:e/nck9W6hy+9bbyZEpXKFlNsufn3lQGpUgDL1d5f1FI= github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo= github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= golang.org/x/crypto v0.39.0 h1:SHs+kF4LP+f+p14esP5jAoDpHU8Gu/v9lFRK6IT5imM= golang.org/x/crypto v0.39.0/go.mod h1:L+Xg3Wf6HoL4Bn4238Z6ft6KfEpN0tJGo53AAPC632U= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.25.0 h1:n7a+ZbQKQA/Ysbyb0/6IbB1H/X41mKgbhfv7AfG/44w= golang.org/x/mod v0.25.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220706163947-c90051bbdb60/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.41.0 h1:vBTly1HeNPEn3wtREYfy4GZ/NECgw2Cnl+nK6Nz3uvw= golang.org/x/net v0.41.0/go.mod h1:B/K4NNqkfmg07DQYrbwvSluqCJOOXwUjeb/5lOisjbA= golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI= golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.15.0 h1:KWH3jNZsfyT6xfAfKiz6MRNmd46ByHDYaZ7KSkCtdW8= golang.org/x/sync v0.15.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200602225109-6fdc65e7d980/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210906170528-6f6e22806c34/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211116061358-0a5406a5449c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220405210540-1e041c57c461/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220708085239-5a0f0661e09d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.32.0 h1:DR4lr0TjUs3epypdhTOkMmuF5CDFJ/8pOnbzMZPQ7bg= golang.org/x/term v0.32.0/go.mod h1:uZG1FhGx848Sqfsq4/DlJr3xGGsYMu/L5GW4abiaEPQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.26.0 h1:P42AVeLghgTYr4+xUnTRKDMqpar+PtX7KWuNQL21L8M= golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.11/go.mod h1:SgwaegtQh8clINPpECJMqnxLv9I09HLqnW3RMqW0CA4= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.33.0 h1:4qz2S3zmRxbGIhDIAgjxvFutSvH5EfnsYrRBj0UI0bc= golang.org/x/tools v0.33.0/go.mod h1:CIJMaWEY88juyUfo7UbgPqbC8rU2OqfAV1h2Qp0oMYI= 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= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/jcmturner/aescts.v1 v1.0.1 h1:cVVZBK2b1zY26haWB4vbBiZrfFQnfbTVrE3xZq6hrEw= -gopkg.in/jcmturner/aescts.v1 v1.0.1/go.mod h1:nsR8qBOg+OucoIW+WMhB3GspUQXq9XorLnQb9XtvcOo= -gopkg.in/jcmturner/dnsutils.v1 v1.0.1 h1:cIuC1OLRGZrld+16ZJvvZxVJeKPsvd5eUIvxfoN5hSM= -gopkg.in/jcmturner/dnsutils.v1 v1.0.1/go.mod h1:m3v+5svpVOhtFAP/wSz+yzh4Mc0Fg7eRhxkJMWSIz9Q= -gopkg.in/jcmturner/goidentity.v3 v3.0.0 h1:1duIyWiTaYvVx3YX2CYtpJbUFd7/UuPYCfgXtQ3VTbI= -gopkg.in/jcmturner/goidentity.v3 v3.0.0/go.mod h1:oG2kH0IvSYNIu80dVAyu/yoefjq1mNfM5bm88whjWx4= -gopkg.in/jcmturner/gokrb5.v6 v6.1.1 h1:n0KFjpbuM5pFMN38/Ay+Br3l91netGSVqHPHEXeWUqk= -gopkg.in/jcmturner/gokrb5.v6 v6.1.1/go.mod h1:NFjHNLrHQiruory+EmqDXCGv6CrjkeYeA+bR9mIfNFk= -gopkg.in/jcmturner/rpc.v1 v1.1.0 h1:QHIUxTX1ISuAv9dD2wJ9HWQVuWDX/Zc0PfeC2tjc4rU= -gopkg.in/jcmturner/rpc.v1 v1.1.0/go.mod h1:YIdkC4XfD6GXbzje11McwsDuOlZQSb9W4vfLvuNnlv8= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/gotestsum v1.8.2 h1:szU3TaSz8wMx/uG+w/A2+4JUPwH903YYaMI9yOOYAyI= gotest.tools/gotestsum v1.8.2/go.mod h1:6JHCiN6TEjA7Kaz23q1bH0e2Dc3YJjDUZ0DmctFZf+w= -gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= -gotest.tools/v3 v3.2.0/go.mod h1:Mcr9QNxkg0uMvy/YElmo4SpXgJKWgQvYrT7Kw5RzJ1A= gotest.tools/v3 v3.3.0 h1:MfDY1b1/0xN1CyMlQDac0ziEy9zJQd9CXBRRDHw2jJo= gotest.tools/v3 v3.3.0/go.mod h1:Mcr9QNxkg0uMvy/YElmo4SpXgJKWgQvYrT7Kw5RzJ1A=

ui@! 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�mM6eXn8)j^o_k;K8Sbw%y)n`l3yvTYTOFOWyV5fSpJLOeDCsXhZ4!u|Zjn%7MY)3yu-utQ^D* zL&6c>>EQ+IpctMvW9G|(4DM3RA@8uwy_=oGKl2s~A@2eeGVR$_#%?VL*l-?-qPsx& zK^KPagNMVmovc_=M1S8MuUj0|JMdk$^&2d$68}eYg-sp{Q-;IXSi`(%4n3GV4<-R> z^h(qPRopxooCfoDPK%6y!qAuj&})>nru3a}!M!uFeMg2u7VAxBL8bLxLmY!ONKARo zQ|z3_ByEst;KEV|kPt93s6XWI<5V`xfHDZfLcs|${w>1d;u+dcu~SKW`=1-^f7yP- zC}6wX?Yx38ewrn!=g6|LzH)qfb=#$R-5}i4rMMgnC}!TdzDjO-$#S@PNLUgAT6YJu zEuGk)8f6B4DhwlJO^xyZ_wy<>q06krQ#fo1ZF)8lB_LFGMHE~=s|%|JSWfES(POsG zFw(xvnCJ>V|JLc;Ce>L%H%4m9tfMFBodBR|!_wI1&9d}3sf(dy?;(^g(DlW7-8NW> z#mX`dKr;p3H=k{)8$ho4BMW)+&u=P|kVS3ed)4w;>YU48U z7FS09%B7#_+KqX=o*ehUlf@$ua8NOq5y#loq$d^tjCt?oGnC_&Y*Hm_<>U-2BX!bU zcc%=QW}z}?Q+_UrbFy*dN;D{i+Nru4*%&v8}G%z*9P*Kg?lLAd9bu?9Fn= zJIXd(>m=a_JV+g702Rh+uY8P}bbr;XfdigQn{FN$;^#!u{QDLHDn*^bbRo5I@r{qY z*dcUxxTX>j{@bPD?XYe5L^NLvea90oqGdB~z&41n-LtFhd^07IxZBTS#0epDG)ywB zo9qk5=``*3ouUgCh34#IK7Z{_%hHgK@CMDnt$9i2Ezr{r2(@*%B4DOu$F>cITj7wX zDl#EvG)9w~;&1KJRJp@uIB2!+UH}_fQ95ryuRbb(o@;zs@Q4nYN0;#D?(YxCKZcHl zifjM{@P3W@Fg&Q|IQM^*onIYB4^l%ddKv*umb9u-kQGDi2j6}+|fYvyw>jk6>k=o?mk*oO zK8aS8i}kJ$ErZp@d-LL8HCPE!H(#^^=s01lDY+t6w>X4;QH~h6ql$1OoXFx+RvG*X zK`WZjpS;52CloUdkr~ck9Ro8Rnjw5JaRHLcIfW+_H=X<+O#p3*+skY>J zd0#-D2~RP>h{&z{wCUlWdiM8EAJLckbgMuDS@lvy`tHIYpMv+QJzC(;f1o>;KcP+c zz45A0EzhssCI_HDP@&LAzD$=9I`&`bO52Gm+?wJC-hI`Qay&kd3e1AGy#CZ$X9&Y5 zt7@%^9c;0S!&>8NYFEi+{D`|Z6M>BUjWA;em7cmc!mT*BJOnXzFUyvt>~V?w1@`E_ zhoT{e1Sjr>7B$0>W@N%P#}~OtL#V8`UxwOzTaqQnoe||>{V2hrba%u`Lpo8OQOtYb z0>?i#rGfc#G}v5EElG>DEbUIX-u2AS3C{=9tQ3dIi*Qv(G3YirG`M8@I^_+-Nrx;= zHYV4E-H`b}ECw|3%ADZprj3M48x<&5c7#S1>c-Lx3cR`0E|3r^@7ch`M4pJO>d?s8VN>#-YT@^R0kWu4VnJfo zlMm|bIzgEr@aWRCtKPxx`113V()(d08o?2sWQ}vrqLNJ(vuyDk1VT-iKNh3Q&jl<{ zF5&Z9^&`l>G?=l<$kS@#uuf%;zsSZaACr41vh+Q@=>w3ehbO|^B!>sbMIk5Qi1A9|Q0l4c3-QPF zH(T7uX%}Nx*F~=siU&=!ijxj1-P7oT15q`?sMD7C9+m>8Qk)_9_~4YktN2?c%y|f4 zpVMhfY{v`GkV(WOo$dJ3@siq(a8bkk!w5?R1y^;q&llWYc4(ECO&f{e{w$ZwOZx|K zSN7wr#kTbf(|O3PZGxGK5RpQr$5b>?v>K6C8u9I@(fLUWYx0XQ_jtW#@;wR6Gqdw4 zOE#qjo}pXW&udMI#bOpPfdq9_!^)UYG)UU_;%$JfIuXm z{GDr$i3Xondb5CHLf_}Q-mPJ#@AEfv=I1tBH&QUlwur~$jx0Yd;e8UbI$_qNBKWX_ zk8LV>YfN7Fy5igYQ|DLT{lNm_+1Y3s{*&UdXs-%73Kc5$I7l?O&lLG4*y z4GdcFwF+SA-!-ord2QYziBMUJ zDecJT8V%cHf{W)GDPqX%5cYui))Kp6p-s}VK$P0DU6@N2Gp4K&3UbqHdzp0u+Go1q zpi%j?5BA@d(?2g?Ar#^RyO5blmxR*un!qM#v2_V>hyw~o-V1Prrm`ZaI(BDMF)N|- zU73|TeggH-X!OzKZ3@P+ZV$~yD$}aYU&px_j}BI^K4??Pr*@gjFio0tw8Adgh(+BQV*ifuO;52*G3Dh1GCX2I zBz4%l%I5pD5`A6xKW(`$E@e$G*KVEvf_qH-lq8@=8Y(hD@VkE>^lDnNQ}a*}p_u6A z790)VsTVY6(=`SIG}*~-XvE0U0Yb^?tLP*Y0G`vv|K%V;uVcq9K1Jx+Pm+{R zlyXoI!2Nm}eE22&O^D@Omvdips+!K`l*FKz_PmoWCu@}suF>w9%sDVgVT{(7x_ViL zFX*CNC4lfWupp^;j`A8M+6hqVh!98lWt0R1^@B1*4>HhYnx6Q;%H4{BcJksW(-@og zK0qtm>|R*~)oVV07Gd7P4r`|BtWV%Dse)>~W)~>hGNa5zs$n90YRpW-&UDMHxfxof zfoiGO4>Wy%_4bkAQRkl~tb(2~0mn`8eT+|K@r&L|GB{73Btj`J!H&1!jcBB0mKPy0 zbN^cJ=bNqNdi3f+Cy6Dv%}Pj@Y0|9Jra6tYjyI`itzMNa*aDiOKXrE^BW;ARIB$6PIj}7h{LGE_i zO3lNj6)HSa+7?ZM_Q5))*u-i~QyZR_K(sHggzS*I<)O2->L=NG+WAm^w#E7<%S~hR zLUZJ^NkO3>PsGC<>&ILt2E!e0i>tBt8fsiB^OU9AE%0L}?~JtsORtz|n#!9niv7Tg z&hy6MXqTer!)5R1KlV{2ybh22dDPCDxP{TqS<#NmH{O1^|B)Ic7K-uYEUj-I{eICe zlBqiBDH*w%G0Y6D&tzUxk=~PE9k2xEjJ#yFGFe%$)v||t$_w*6I7h1O0?_LeBlJ7f zUpFkCIShPrNDoHjQ{@=&qCBpyt^U0d$4t$;_?`C(F4VVW%V~!I_z9IgImO6NH%90K z{PH3HUeDV8zF;P6Hdyk_>~LJ^ZXo>n{DpLw+3R-X>4<05t z5*dSZs;=Wttpxb2ll3o2_AW}6S$1vfG8a{;8F*=3>-V&D#&o6Pu?m~Isrq(UbxN|s zdIi2RhE8l<{jAz)iEQ~ZN#&y96y;-F7nlcd2p}@6$;i9*`d)?f>zGO2eF~e7Cn%U~ zs3EKesn;gI!0yv$^|-oRjjjvxTq8i@^l>(X1DO+ z7N|@jYK`GUcVc8OEPRyeqCrPA@slGmvmC0J2O|v6Q!@9#*-~0ec!WRl&O8z4NSOg4 z=?`s8&=*`(bu2Nk9Uu+hk*Xhm z1ImPHNRvVjnv4?APnrR}+7^*)4*A$PZxvz&le}{sjJ$qX*bH{4X?FPnb8V+^!;7dQ zp{-49Ig9kXv|m_;>GYjm5WC*c_2b80hDo59FE#nGV6<9>8#~U1KdrlBQUGUZfbJMW zj0L{t=4#TCLz1=DUPLujJiFMIYatlja6EO0@siPr5aAX9^lni{5fDl^;6oXESi7qA z1Pn{(bxpGPU8s*AuzK09WF#JHh?2rn6#&FCeqg{x@g|zJi8{4iz;zs% zkF&{aAn3)r7xw!1(UiZcxRlnJ5Dh*3VmpOJo>QJ&21v&VV%Ovl(x*7bhNH>E&B>Hq zn?9Xv0Yc|<5#7-vr$8dV`;LzO%c`L1=tF&JYpXiPFI$`TgAIdUe|Pm>p1K^Cj?$sB z<^p}(-!Ebh^YnTGJ8fKYg#$oyE_BkSyj3JFh~m9wRR+Of-dJv+Z6cvArdBqKMX(4Q zdrG^W23&E=;D1}^=4oHMQo`jeAL@4Su)OS<`(#WVK;hF$wjcDh0tur^`7{yd*_HR} zu%iPL4l!OIC=ye$Sp~X(MhFa&%{dt+w69m->k5U2-k5H5q>hOe8Jkk1IBXJeE46+s zLuiE_$kEE8k{=W6yUvYbQEXdQxBF|cfd>=d$+gaDhd?HxF4n9w`SV^V&o=ji ziV&!(-%zvYYx^t^d2^1ECQlM4k8500KjIx95=~AYa(r4+ee!PO=a{zATf8IGg|}>I|6w=) z<@dehhdExYOfEjPdyE;#-1<{7@GBdDzM9kc+m3-BV!&<|@$E#0u=-4VJHc=9n)OZw z=XfHD0{!mX$_;kE#QOM}GRLvu=%y+RZF0d6J51UJWn2AYa7+$H*Ibxozsw;XNmpZ3 z1r(7h;4nF`q4P7`yxWnLI2%4qH(*Xm-H@#4@q}av=4l}t;wsNz#3bUwiP=z6; z$S@-+-Cr`sKOEOnU2lJT&(HoG_vAMF2zzv1b^TynTvXH3+h$eSURHApjERexh$Cp5 z_}#V*@cDC<$U4gfpGHeH@qCr*JaDl?dNA%YbYT!SGel`RW~P`0NJnwNc6+f}kU<)V zS4qJKqwJ!M(?`T!hr$Fy2AP?48~!Fued|b)9lg5sqOVEql?De}LeZ_(q0@ubu*Iwr z;IGq^As-UHn;K2)N`gDch=Ih9$D%wM*BY$Pd443TN)>H;LYrmX-s#S1ajCo_OR_O- zflWkNR)2olg!MGu8?R8?AV4GZ;y#F@b6CRKHb@0PcN&*XQN*B8&2w6S`K=C^p?08@ z&mcCOLVnYtPiwB6*wW10a{%xv4F4aYEJb&c5 z7Rfz(TB^W%hBDisQMvM*Rhg~pw2&z-@@wF^&!oa*WcKZpQ&*-sTf~9?J8Vt@qFAEW zAmQ5b6q6JsltP74Vo+5#X(!W(+ssg~8ZcbGjqdL17DM{m=&d1)J?*NQRW1O z^BW5yDgYoz!nI&g%%X_q3oj6U&6xNz@B73nr;S1PH|M&1us+=^mnwrJTGI`XWq+|^ zL(^)(C3(%!(%Tm1C3{0?^9g-l(Lb&`?VLy6+9gbSDz9Mb-;0AqSBA@pFr~bIcbLUtQv!U16yYe~D)|`*& zlSwi{C!WdD!(yV3pm+ZL6sC-~F~K`&uk*z`NDVy?Rg(<-f@3O?1LG8O<7B!+t_BXo zjL>B^wnE)6_xRz^jpe-}5GzP~nO^l@GBM&PYYWgCr|d0D)FtBZwS;MC3_&`ytIoQ# z46<493lV|?{ihNI@?jH-2u>+znIDcW6017EoQC|Kx?Su>G{Kw1FrLE8}h0B-k~5q5d~OP*%F>elO%1VS$1bwTy362(fBSl#`ZsTbnE{C~^58Ihh^J zbT$)Js_H!K-C21IHpf+vQt13j@?=bvz?Z{RXGf#(Mrm^wRMhn8Lpv0>c+90xXl!CF z%}Bt&PL{TUIH?eUYE^)FMH-0BIoVN`C#ph_#u@=W^uHsBOEH;QolJcV^1KQlv!q5s zQ9)?(%*Uyf5*x3{2>v72d8ZDx#eBWBSHr%;O@@cF)zUY}(9(dxloTTxfYPfoP|h3z z32w#UC1NIy2Eln1AYbDd(U0R^jo|`Y=0^5|B{X0Q{edIy(MCVpLxB<3@BO1J`x0bz z$7a8ESc|Dy$ctP#Wp99?UC2t<9~luZiEYQ5(z0S+-`lq3uF8C@VMBp#&LnCx>*;O0 zb3S$(_w}0*L_>4$9rUyP+6?W56zk(KH`CpP$!;@ z6_VBnwFIR|DSSC46CwEBv1T;So1F!Vh7DBc>+v)E;Eoea6PA?B0(liZRf!KoG6qcc&Gvk8`x2aQ3-0v7k#{9ZO$?%r@nO= z%H>7GXG5%cyd9nOfl;TxfQTg9tNUTVt2&{KalRrGj$|}U)0mF6>(kz*2M43N9hGa| zN&F)rlze5%@angol_or~5EqMFO#+PZkGAQEp~Z2WoWaqR|TKgk%NNcOi*tUc5! zc$qK+U(J)c$k_Wn{$RHl^G$1mQ@_D7K=pnIJn^ofIo2_XvIs zYl^CerXzX?14qI2#&~A^F z>{arm=q$o6j5Wq~Vgg~09}UWN6Bngpr)CkzMAQDxgxx;Qhp9DlrP4!mGxVC_Y7*yR z|Fw#-yMqbPz23@9rpj+o`sFrYF#dA=3e>%wf;Rn-g6c9I(y?l6M5I->&4JG*@?dMm zd4KGV46A8{EijKm)ywnvJ(}x2{81noIE#2dD*i~0vYRqCgDn(;+s;adIkT?^5%G)k zt@e4QRg34K!-^R^SbTRVR8EKZMv6cT(Io@g{nwX|9-dK)X!LV`(Xw3J3_iy~>B3Nw zI3GG?-brHltqdtLa$2PDu9x<94u)De=+C=XYHFxBl44ipx$yKeUgYV!#K&X!GDg5R z)dfo&qUiyiBf>Ewxmc`5&>LXnAs+igny_usJ~a@MXE)uQDp>`p4hRJL_TMj^}+FLw;ZY@ukku zg~1!Cew5i4#3p}guE5pnE;*le=lPhzx-`jdZt}$MS(@VGZi+Fn&u>rma7?g6=1E>| zJdJ+y@bm3DdCqTd5s0)xEBOA&SuM}^rZtz^)_Y`dNc8KSr-Oi5j>CZ$5t9KjmANVu zaUk-)r42sxI4Ie(n6z4~FN;~F<+$jX;h_W|k4g&$n%ZO1B``gDP+k+={;0?ibxndr z-9;W0^^pZp7P7UC-mU=DD_rJ#5%C0prffx5Q@vh8$?qQ3;+Hz!ihiOE==#YSoHq=n z+GY$PL1uv{6!YQ>m9!wnXh-Rlw9rj3>Xg&LsE?suWjbh?!D^{8eQhanSz8yn*4GlI zU~A!k!I*v)iUHHcsBLxAc<uch+0W!4|LtmS6imLwNZ^Z7Xs2oa> zB9a2hQ^#5|gV(qU+8c!>!h+?z$fj=8^k^Q2N(FfNd!mm4V(in~F8GfBH@HZ-4Kerb zS>`uEv9Kxh-q{1!jiiyu6pkBDb0!gFc(>e@1Z2#T=!sWZY0FUSnNA=aH4!Pkr_0Ho z9G+iz*yP&%V)#o9Na>A&fr$Tcjtj9hZsd49g-t=5xqMjbz0nWmz#^idiD$T;7|LRV zb4!#wd5OL#vxaR}3yymmuKy;b9b2K1s#1)Ns!Vf1;)^;3T|{hi7ZaL!o{ngnH;EO~ zl}?TZhsPS$C~vD`H=WV&w86~O&&-saob7S>vz^D9yGd?@klqN;`YNG(nIEL~ERE-L z$Y}7&d6(&+OaCX9Q40DvccQ#~p#8!|+e`e+x6UULE;5i4^kn#rMxb*?l%m@?Yp5gZR9 z{&)QOKYaQr1pMH49`&A$-Di&uX^$72<7VlfV!!Skt`~gkP*nS%p%Xm!0c47A^QTZR zn^=O9zi#9FLxYYrJDxhL4-fL68EaruO;PPT{JhWN53jne7qa@ELlr854$l;P%9=^% z-$(MFBeeT%14)a)=;XDNa{g>^PM!7rrKT2kpY-Ux|MoHw-$yo<>lmf`u=mHLX|U%m zrJPT`b9dtcIK`M2{rM)kw!{n`I^*8LVMP44-l3J5pPiil_ucs{)J=M4o?2INW2O;0 z0Tfn|TU;89vV$}Z{A~)fH>MqXhT@St3K5Q~lUhy|k^zoYBGMi8ZV%I1;^60E3b-w~5`r{+E>qR~l6xF~3WY%}Z(n&u>|J8(296DPZ@fCdTyS zal)!tVu44G)0_auZ~F-r^MuCcqM(>4mNPA_@F}PNdkFqH4pNh#2NG4}+j?4;NsOXr z1KZb;q)<@)n>wR27sU;M85DX?pkQ;ENiz@_b?Aa>)?`4%;8Y~UIhNUPyL`CHF;t-I-CbzRO3FjlfraX9mLx zEAf4AHM-ZRRo9kGo(z7zk|Cu#n3TIs+~+@Pc3f6vAGL7~jeU-OZ@KxC&Od*0NHqqU zDlL~-xA|^&ll%6aZ2UfTLB)q)Yz-#m%?VyK=nY0ASL!iX^tMXc4I~a62^ZROT{sk^ zkAB4rBN9iiPirG_?(M0|u^`ekHwF^ux5&|fY~N;kj)$Kbs}q-~D-geX&bVr;-RoF; zuCwzF{9Fg>Ajgx(ds3D-p&1H12YRgQaB;wob6bepy_HV=#JmpV;Srw*+%FkA;F=!?m4Y!37cfrg z&&h>DlJ<&9f>;0#g}+KLRyJDAxs$mU@z-Q5$x7n@bRU$OK^`wte-m*U+rE)H0OLx< z@EX26y&OW!*cX@p{&u=~b28A168CS_3U#AfqpC`gV}<|Y>Y^UangoOWo8<`e%PCP) zO-Dl$7Pn-0!+8VF2gQd?rcK@QQKuwEdej0t>wVFts3_ezUQS(6$j6F2V05}lrCgL@D!o$RFb1`2mEFhYn;ucWllvxGfLTT6)q zeO2>IP`xl{gVNQrpCyAF7YbLC1?0Di&1LOE3Y`0XsVYEIf0NUG$hG^gXb{A2xI@r0 zbOKHPYx}F}b~M5nDxb!bv&RuM8`ziYG7Os>!m-bIR3L_7-GZK-2A}cMQ)G?BOj1?;W%K(tEZ_&pnZ=>E|~$a^e&xK!!xPPlKnb z2q4-V2ako-${DGk}i4j#T)Z;h`9;D2C^k9ASY*%*bn+7>A@wH zjpABjWL$vUee`19Po7lM2Rz(GdqHM(h&F+WI9dEX?S6SCnEAJksjUe4oryUERxNR3 z`+N64d1^NSG1ekXA>=zArOT|7$X}Xy?lKj%PWzOPli$AY9|IZ-dA4nlZ$-5FSbxGV z@wfeMZYW%r$ zPL4nyE5$pf)^WOgrdI4VtTn(BSV?q2PHl1lnL#&n1OFA5K_Z`mT6U-*Up(@6Zyz4QAt8X5B;-C6&H2L6+{LIp2IG${ zlH6XS<6QcuwQ*=oCPxD_$rii4807H*deZx#Fuwki3f!;@>Yyh<*fOP*HvmxMy08s{ zm|>sT@dG~T_ly+ub`C|$FC(*!o`Ou*iiG5XKQO`WGH}TP^V>!BF75JC%8a9uR_4-S z3YP&|7ErFDH{lCn%D0bMNSW&s8q=v}Mm+UkX1wS|%|XhMbO_(hYo{42lgM+$ktO<- zBQwsd5(fbS4Jkw?WiS!?>La?!bPDRd)8+H%R%1n-(k|H}esQ1rbD zI|%q!2z?cQ7m76{=(d=r2Uvpw{7Nq2! zRn2sLA3G&+EX%``{?Vm~Wm&>3ruCnQ|-!zlJ+JKpw1da~y{dc)LVHZ~tpsEkdtz zkPVn<9P&H^|FM#q3sz>?L8i4r5nNf<)vyjb+q<8|E}kF>5(e%NQB3ya!Er+G1>3Kq ze3*t7jZAYd9cC5E$)?E$syI9^cU1mbcR#5+tSN%-tUYWjVm)m^4(ZQ?sIa zqqnW1#t^uQ&^_DNkP?0u>@OS{h5ji{u_Ai(0N8TiUz?zjA-p7Xd=z}(4oFA(Tg!nG zC*e`x<}wuU2fQdUd%^ZHW(DWivcli6L=T!Nc7P8Q-3AFN|NX}K1g zKJkEM`qpFH#k8h@>8BDEFr2Ef7yI){2i_S+d%i5|@*1=OrB)i?l$`Q-^8S;`w z*WcQytd57R2&Dt>B}(c65Q}3!FIl9x2&t(L6jCigMn_=@c$L6IE9gcj&bEKWVH4T0 z^jIjrj&|-U#<{MZ!t;ZJ2`I>IiHq7~tN@J9#-UG+FlIpU;RUuMF$h*HefW^>c5q6b$CGxuI%&aF<#`0i0>Ak}>cr@{$Ul&MVc zT)ZWd2jJ;~)K#-KVTW3wWmE6;IA@aNGB{FB;&pHo!z~zLJvV|n`4%}*_51NV={J2L zchd$Jn1;rMoNuqQ2hSy1H#h_wjr5m25!U=bV!OiBH(k;@h zsM6{*4nBh*_$^gI<`D#lg-Z6iW$Fp;icJg5-pUoKxNSWl58P! zdo0i)t8Y#cAYBoVM-Ni)?!Y#~vA=!qhL2^gy)*0er&-MErsd2kJA04#K#>Nw$6HjHO7A6vu_POb< zM1t^25psAh)iO-z6tG!E{oSNb{jc)umQA_4s0!GK^@uBHSZmGgwL7Ho{8^oDS6ZcH zm{R3Zqasns>Cbn7y?jiqh>(KTc3vJtu75>{bHVy%Gc(_OslW^k_Bm9RV#LO`SB+v)bCPe-hO~OqL0^MRDzd-WHdu5-C}Eh$a%x^oAUV%t zR8e>Bl5x@o3gKy77bzq!I|c&8coL1=v>>DAncMS_IG00Ec$aY;>bP5SsbZu$VsdB) zK)T%T$H1u-*-LjS_oOU94tG|lbKkU%zu-RHHs&gpnx#AQbH6C$eUiOqY7VeP$9{*M z3S3VSLA-gxG5_0(}UV zzoKFtc`S@;ewGYFp*#{F;&e9R#3OO!v)_D5*$f5uw+@xbEAc4o|u`iiYlPWzM!PcX39I68fYcDsh$XD2&n=ZJt50rd?@H-$GUqIZhfQf6qjn z>|;N)6~d3VDV@QA6nw9I4}eQvwW1W(Z7`_al|seZ%kF?rW5UVEJ2|%8h|i)&iDl!^ zO%~*lCfR--llM)t_$H3W@S_&IW~A_eY7cKf={uFc{^>);l(57H;jL(G%OYZFHP;oQ`eVwr#s(+qUhFojgf8R>#;`=e(=x-L-4}g8Rd~ zYK(D-5@My&_Tv#7aDGcxj;M0||6mbFjIVW}fk?GD<=qi0AUxn;Un(f*KvpSplo|oE z-e3#->rhNg-WnSZoLDPhbnwTK=|R0y>SVr^1In*@syNGY=%unWCNU1`ID4}En(4IW z0>5I+l{_rx*+)k?Pf`_m9uxHtm81Ka=2xOf$y$-VegHg*3PL7F)K2 z^r>do;veNSfEM6U4t7>Gbsl#8g`4W5I+%#_#Tde2<|li08E~I069()+dix6<0oW8@ z&h)zRV_R?siMdLY|tdM5Zw4g^)+{{Z$tWnr~eJCA+ zRJDESD0VhvemsQ%MlPT_nIY(^h2yqJ-%AD?m+;+&q^TMqi*$PxV{rd&gQNJk8GS2T zE2J(@>Vn=VoTVsnt%)>LiPoltn8c#(92t%IwnAr%>mUF$#ErJNJmvf6vab&ly%%t& zaYbD~}%4+|?P=mBvE?--46K7w(L1IzlJ`v7aJ0Y*G z{FsH3I;sMKW6<;22i{q?916fNTxM1u#Q!}bFDIP@>3Shj9Nqqb&(kk4R(uvY;~+5> z2$c$spXg(cfx`Z2Kz`35fSo}gHx^j*8{EU`AL!@-3(zSxa^BQURJ9}zo6xaA7i;!1 zo4C|x&$d@s!SGLxFUBrUS3h0^7x5BwB}ObpVH62;uhgcr3pxl6x%VzVPi8ljJ(wBY z2WaX`qXyHVmjkF@A{g%nwDB#GQbVG@uPL7V1R~lSX;A~yF%`-h{vh>W+6Wz@g1x1e z)DOr-1;i2*E@RAptq`JDcXBYy(?mh zlxlGmdU^}{=`j5IUGC%ow?FkEM6t_aa*n2d9jQt!wRHSSMTugo=QIIR+0U0X^6kKZ z6b}cY$-dzn@i#UFw1epn5`fz#UCK>OKj%QImQ69!3X`snc-`W&Qo^MEfQOK`rqj}0 zc%^OBOQ=yZpvf30vOlK8yrDO=@i=6y)Dv))iAY{T^olGBF}O+{L_O7ACjL&0S){Gz z)#?3TBU-;`0C+C*Vho1bB$dwENf4Lv5h?3l+A-ZC99%Tu;%bg$mgq2sekh4Vj#KHV zJo*3`D_%8CWuID_Rf#&ZA`J|TF-6F}v?KuV z$T+_N@g!Bvq<6}}YOBbga4J^`<)~8+q`EcgD3MMD+pwzV$eFg%*E9u~nnsg>$=W;C zP7G&&b&Z*Wm|GoaM96AYSKmrud*r^CWYhfa7GIXznLfe-7NfluHxXQw+`8XI`r={> zI5F;_h*sM05Y`;fM`953_QuSC|Id$NSDZ9@TX<5WXu!eWixZPlYyz8XZvM{YuhJeNH>Ioz zd0-W)a0m?A{!RR?3N`yN%k2U8-!pUK=|-;G=zc(F`s57-|9ps;I|M~|P=wFw@mgF2 z$g1`*XoeF?^h-p6@&u?Ku~9@lA60pM>%K`~8cvO+aco1Y2NAY@4uq52*e!0VgEve3 zgm$UsruL+BA*>9c#=VMAA2GJ?=^CYAzwvLAy>Q=}lWKWhrc$H+AM z;!EH&)S`p|Nk2NyCKz}6lqrtLI!?P#VGIYv$e5EQ)hx}uaxJXfPG{$QD9ZWxV51NQ zA&X0vTMEij@h?+3NZykz(n{Z-Qs3>I~&|X-NkCVKm4l7(c`thF@Xurqy>cv#Z9}Zo!j6v#CoP1`s>`rd4R9>(W=L zXfBslOvlN#a$8dPbjGr%plYOeXtc<+N}RK)Ct@6wCIV+hd1+C#yZwqA8ET0R9m2Pf zieoaGJ+{1S{Wm}T zhi!cVDjmzQK(YvM?3-p<3nG!2BzSZ(59nnbE@{@*nIX2Oh~Fo+1Prj*!9@DswI6ZM z2l%;6khbtBR@BW4c~(?9dNm_GC>XqqS5)tPhbp+z?XPs8;!Yx|9RB!nRrsWn{Yj82tSe3`< zJ}KWI)O8|#V2N3$U4jl3@^={qyqOmy951t!NC&GsXzqMm=rgB=#*vBv7h60wM0wB( zyvwTClSQ+`xJv-y(dd9Pyg?_lsc3QvY>QBaYGcs`ydE|XS>EUJ$P+v7{g)z;C`yT> z7|kC9g^{GYPTaQCKI7FIhOh02LzqN4=*vJ?CtzD~S$4G_+nOM_c@*FO9-Pi4^M9*t z;=m)h4ao7gB?0?kUokmg27NbZLD5cKiB+T{S+vcXe53eO!3ffwD8E0javYDvM;lyNBP`z1@tpJC;#_Ja}hOMCXHb#J^Hy|`04is%~;AtZX@ zKpTy-y7NrI@(y@RFQcMw0qg-oOs)irGHf zXJe~zQs)iL?0S36=0UJS?MF{8iH!yatm>aAEG6;v6isU;%RohfLu=Ezrz<;&v1Fci z1^)~aJ?Fkj*zX5zpe~qCkTM>lkK=W}Oeq*3!GM2u%>12~-ccddy><&Z8h3sC_p#vs&oS&soC1!0e@1Ho7hE}nM4OBByZsc*o?7J+a&mq9QEfnEfM%kwz9u}#y2!hz z^$Ob>bG|2pM}iGA#5jHZKO@2)W9H>%s5EJU^At;k1P=iHCKIJQ>==o6^LwWf_G{bS=UYNAtyPthp{cW zP#6pfze);n&p+kPl{;v&~8}WMwrd$x>jKq=`xgFlFZ|u0bcsf(`Tu!dI_z>r# zA4&<+W~NKN?L6~}#!8&95nz#qGRF8_UO*Vjumd?ePOG-{aBOT~rmuAa!6;O9BMmhAlNh{og3AsPYp zP^V_qm_*2>k^TBK#yHR-W>G<~xK-K5UOo1AW;rMZFV2{MG_kESQX0}KX5C4rCdT0{ z!1_#^4+p4fb*+5(5E?-?mhAl;7J8h{d`uyfs-LiQn;G)6jyrYEggH%^xpewN>l+cr z^__%vS}7+;&17oE+;fO@LGeOHcN*?5I0w~wihN*^?&RP4lQ4W{{o)Ve7@{Ed6!NDn z*DfQ^i%j{X-%r;eFATmqjFT%f+Qlc!yZ3rG&?z}{6Z}ux(bi9eTS%?E^WT_=f3EZM zxX=M|1w8dV$K>^3SgkG)IpPA5>A3o_!q5|vx(vArZctTtdx*$^7#^!ZyFn%f?$ef= z(P^LP#qmya63w7%?=eca7ptMCpeOox&4D6yFLUf1q5^~6c@BnYF+baLVPeq~a8ufYkeT7SWeKi^N^3CmX z`oBm^4LT@l+tXuO$=W}F4G5zs##gUK6)?vh>0D_pOu@ZFgBrYgly(4}y4A`7T}iPO z2A%vF1hw|dq|qn-d6v!nE2t`j#;QgESTEExH?;P zs<qaOzTgQT^Uok3@-|BcNO=o9(C~a=m!gd>(vGX3R~8D zHk&P@eCOd(mPS|h->@<{4>!)T+FN5nCn;qtmdrTVRE9_+|d^P1mF`kcM!@t*m6Qnerm~Y=R5PF<$=dO}t@fz36 z+>gj-l?yOa1*rFO3Xk^wX`9hd5MT=(xhHX?2TMc_b*mxH^OL>B`Fb$(F{8LUCzth) z{OHl;f-6jib^i=qC}e~VjK?c-b!JbXhX4D7e8({1?61ANiGB+<>v!FK@F#fW@JUIv z#}iuqQATkPNidcCNkr;ynChdU`}NPs)ahx4&tC9#YMtK;Tch0)r{~z_F5UU)iZ%P| z@iAtmenv9f&NFU@EtC<`!^1Mm6>{sQDv;a3f?J3OW)l4Bg64P z#6tKT$~CqaEFEdQ*R!(3m&$|8anRT(`q|LIZda%GfKIN*=)ry})RtC@{Y9ZB0A_q| zDx*%CO|hzn9XtxsBys)-1J_guFtAmjq4{0er#ITFcw@`u16^K_6>5cj9t?{zx}9HN zix2V95Ls_QW*kCq6vW!b1cjxhfcwxoF+6j>xG|w_gId}|$u^PCf!HvrDt|T!9gurD zQBGH$rq($mVz+p<#=D2{-859qL{pwNgv4NvT}SpilmiZ|C_Xq>GMb_ejCVa_LouKb z(3@9aQCK2Hj*uU3dTLe;4Olt)a6Y|`afvrES@i{25;aV6*eZP>8KfichSY9rAuokQ zVcL%t)zmRVaP{m>$LFc#h&-mi~J-owlU zn2&QnJMnXfV%5^%5ENP$@X(jTLxR6Jsm8E_#YSCOSm z21#?)Ja+ITr!iv$BW@@~fdb^Tgf%eoGFJN0&0GQ(bT+%BE!+{J$g>iFj?4zZ{PR4Z zeaxAR%PO*;Nbu{}Y0U=!jG2%ziaeM|u|N&Z!P}_W!qNC`R!ItFo>TXC3n9Sm3KOw} zje=Slo47|JxTvWbCc%&HMxg*biGGT~*_OrI_IlIjYr&cnYwa142=C$GX04;LuljoH zfh|Q?;cVV2Eb_bWuc>~8ISc1TwDDQTQeW*lSu#GuD);)QeWs#a-Y-=VOT1VtO#Qzb zG}lE#o6Mu@y{s4t)ISHPdCfTU!?5}D4v3Ooo|%8h;+zK^+ZNG;t2O3nH@xJWhr;I z{7NOC`@BDy`c|J&wqWjiGbbO1OXPFxmLt6XmG`F??0KMKWo505O8ooR@~;pSeTN2x z^>Gh4A1k+zHFTAQLShtAEktpXEPzG&w6(HcA&rI}c1cWm)j{jnUpL_x6!w`!1nL+b z8qO|-bq(jI7#!AoIt{z`k9Y|3a-ngjs?9{T_)K(4OM8BF2pME6z|^bvfco)=ULyN} z4LVko2DF5MvuV5&KlXUuIZ6d=uy_<&{=8dZj@I>_2nKR*d|Y4UjkB!6yr4^XDmyg4 zaa6Hk$Bz~Xp3jqdNiYjJt{Mf3(Pg~kTWYPM!zU<$K~6H;z8P}U^B zbMVr=3>la|6qDlge9&65#4>kPRou;ge`tnC1LIhC6hsE++kO7$02c^}*lf<)=)NnU znUR}Nuz;|bICJ*%JHa1`1|81n%hz41l7TLp%WgQVrf?F&$GtA+DD&=f!bsHhYSD48 z{y2b^UWlY5vgge#l=tM9(o+HQ{&2LmDTH;y&wh0hU`IQNamNbC ze6Ak*B0(q7{1%nGLVg;|>%9vc&r z8JM%6UVrtm5mJ399P4~P9h!rg?3~Lk^{|bIjGwf4~% zi4xA;<+ZPqvD1)%aW+4SJ@qxq?p7c7yV2tE`Iw5{JncG*9MEyc5>8_ByO0 z8RzK33N4iTP77OlMe7=w)6gD*QzF|EdR0mj&MkKVm4*=~R1*j8`LaHr zrE9i%8zN?pz+N?~zIILaJc=_j9Ds0cf(Os=6FHG@tL2l0j1r7=FU>N~kKI<8%%WCw zkE!gZ283%#5EEZv1$I{6tPEQ2$RoOO4G7dNWIk&$i$;=bi{}b2MFsH=5|#OkPudI! zZ0#KIzuX>#Q$TWW7qcSo-(`t$N?F>vo=>fdq^@7w`v+Hh-dCN!lrj-tlFI~?OG`_S z&Z=q?8W6Pk0Pct6*GjT?W~NJOvXTX|p7oR_fe5bOdwbOp$Owv-1q3VwO1nzR!x27j z9}=>4C3dwpxoh5$txqv<#Y^+&pIa)@2u#z3?1u0&ZlZB@EC^+0-Tk-_u;n5!$+FE1 z6)mB{01#d`Tn7nV&PUxtS7dq&Ia$2be^sIKo~hY(m)yjNytAH!X_8B<)$?5o?#<$v zncDLWOM&ePhvQF!l_7y-g5_g{c?i+dBBkSc*`5*c_{YEZgte&Rx}}qpl!g&IJ!AA2 z?ZP~j*2tfAGldW}Fq8Lp?y)syO$pWT^Z!9&AlY+&iFh8b`^VV>dJ&>AULM^)1z%R5 z`b1l81ocFQdc%-)x;`TGXdTW3yE>2M{Dv zO7!oN)FDH{6Q4}GNQq}f?JPXryOp4*_dNp4w--p_wblP7{tj_cDfFxXDT zl)4K4BHF-jByFb#inF^759&10SEh>2!g*c3#i)X@kwPWGcO!laRu}c}q(ko_i8#iz zU6q4DPii8ohx_C~K`&cZtZx0H)ZswT3;HvZRiR3A9pTSi{neU}ATTilS?`J^ifjsn(?8h5$oh(XCE^?0aDtl&;bVsp1@^ zj%+w1hIn(Si1@KycLYjDj?f*hJe0~Dmpwr{H4hOs7buc!$1mC{^WV8Qk~?AFj!X7v z=QGYfRnTLRXrExKc!f;=bkB+DuBwvQT~OEeEy;1;;c5I> zOEww1>>DD#HqJQu9eF+eElAGNe7TYM)a`w{tTVJ5oXCm}$tow)DHw_ZPoc~BPDEN+ zM4O5HWJ!VpqL0TBcB{hv6xo1PCA^ac%Uqd}@$N&3tWdy`?^ag5SU!4W?uYzIomO8A zrUii4rJk8FZi4enAzs%YCxdp$4eP2c5YW;ZrVASPS2MJ3kVd3U5Gh5ET1_*@>BR0j z@AX{-ZPU+gL!9KR&a5zi5fSGTc6m#bbhJTTv)jAdkLTCxmNU-q z@vPFK#1vN*hklmR%LE0EAHXt9fteQogJW115aTM8FJD=TXW7no<^K`Z4|K%X_KIjXMy@NR&8{-BYb{M&c1gQ|0- zQg1dk8;jdrJx!NvWtp6)He72+i0atkV!>VSPj)pwe`>{oZvao$Ip_r@qQUpXq(|Jg z^UCY_)z>4#$o)kGWXgLJc>yxjC4SrGm#J9|eCpGd6E72Z?Yg9P?sLCV{$pwK*@w$Z z(zfr?+<8a(BDeSW$OiKGe~wkg=!Yp8o7t&x8pVFve;(u8ux?PQy?4LT-uEPSQ{B5S`R^M0{99ZXHI@Z0>o}lP<-4yl>5HKx?jdqlP(lS4*Q+4FECGW6rYA^hy|1KWExI7O&&u?`LpTp*BnMX zjNh=>W_}9T28Bk7!)lCxvInVa0am@n=G#*snwOgoqO@RId+HK9RN zHrtVnJJ9Uno~wb5c_M>wY?gBv$MV`TmA@}DHO=k3%AJDSeKI9Y#^L2pCEWGf)$dhf zybYZ}5g#)cOhS^6<``XDmxe!J!rQ%1lDxXb75B{%EF#iMQ@@f#w^b|@2Sle3C(Bfv zGJCbw4S3T$^v`b=MsJG`A)lswSCsO&aSnc#YVOAln)r1Si)qobd?z+%cO=JuEJFy+ zmF}*YOG>*xtdX1eb(CK+7&LPCG0nvz;1r}O%b;{0+i=7qF&JkZok%yHzv2+&#V{yG zdJv}SpF)kYPdv7jS2gkl3zc>@+bLAP&kN{H*u}@^vPwpdNCt~cp~s$ZX`-b(Bl27A z6bZvSc>V{DBq*R3ZEY*bJqO_C63zMVdF~F0{E4z#1nQC}vG~45oLH(iuLDtmsZ9P1 zCIMzI;aq)cpEpRkq~>3L^Zp)P^<4XAci$3mPk1+G9(^Ducl&$Accb#2ms1yLgKBk$ z`+~utIm}6z~_?4O8cW&-LOD!BZv*a~exT~+U?+m)OxtjkRc7$<8@Nc}U z7M%09!$5b*G&vjH_Co(W2s{z5T>*OXRY?W@(zaq~G+($;Q(XMBjyNLLH0np9I66s| z&~0UgY-XBX)2X$XQx1PkgJc0@iOpbfVHyds8_^j^fqONrz(*&=gKWZ8@O>I?=6gT- z<+P=tMwl@U!$2(Za5(blYLUqMMJI5h=MP4mOPA`Q_JMlUOL+TcEQ|yy}2K)>N!+fc3;=sbC*8 z-jUtSaaHp$l8m1Dvz@cuxRlDp4zY-+U!G`Q4_S0UQ z2Ds04t+xq8*P)Ce_)~!5IdUR+xS0vJ9uYO7Nj`J{rqZn6Xw#pMKRhS7WG@wto`>0b zRQfLmZ7Oa(?~O!5jo^5^CnsvU47+%q?OR4(!6vP!N8XBiN^aKUf{Lf`;(Q_UGLLZw2uE}>g&@|o?h7`3avCDpiPr^5BGw>ULfA$ z$T{yVq#G44IrmMSDXGrq?^2ezKehh%fN{P1aSZ8srQa**=lQ{LcMQigzeaT(lsa)D z_~y#<*^UORq+?3&y6Ta)deYTVkWP8Zlr`I6V;(8EmSegl zzlyb)A{-ITD>C}gTz}__guAQ z#J@GIB@98UN2-EvnB7*R2mVWZU{xoWC?QocolWhmla3`l#YQwQ-=Rp`q8_Hdvrg3FK$C<#PDmaK~OxR=>BRk7!>RLd&19=m&S@tq04V`uQSMbs0q?Xo+?J4 z8}$(TD6I}_Oo(RgYKo!IVQViVQzfS`bvRS`a7uKQ94SYwz+Ed!IsHl>MD;$ZP`0wP zX__mM;rGb(FH|7@NS)3NxpZb*7y~_ zUg{V3HQu?>P6NRQ%5@M3rb<&(#u34<>qV=f?Z|IINdLkNs9#8em$x?%OZ`K3R`3hM z>mzf{PiNq>*^T5&WkeqKj-(6z-N@Kj2$@lzqpK;U! zmdq!6(0d1zuYzNQY;&1#+><;I(qu^HU1pfyiPX&04sdP8s@K8l7sWNkDuFVjQKZgt z6omFnm|$EC53q7O%&EQYL|N(V#tq7W-?^_YM&ES|+~NNL_0&&Isq z{apsxY1vFP*Fi5j5HeM7PL`lWwjl}!^OmJTn#tk>hjY%%akBP^&*1$Z#Oqcd;mBfU z?m`WlY>|I3aurlFs^etnj{Gs&p0K|3JJpjGRBF|K(NqD;4g;{55h7tX9Xw2d&0A<%qbavq+A)BD^@Td;@S_6V{tABFy%KgIp=L?cT-HU4!aRuh>-hE8 z`2_`r!(i(b(n-qx*DfzJb^bKoh8E1+5l@gw3~d`LPBjOgy1c*zb3VlDdcBT|#%PR@ zn>BG&1HMC?xg-Yd)(MR9mh+7<0{0+UdHIP{!9Eo^o`38w3@P}$?%Uz6nD;f8!XS^E z28n~smlY77#U z#^g(hr+V^NVe%+aFaQp%l=Pk|pzGgrpkU71vrt1c3$)oW7P3kY0_ghwWMJ&*)zb^G z+a<-~Z@to5>$_F3L82&6OG>|o_g)yz#0)0I_BO1#7LSynBcBT>;bc$+1%&_g2pDH> z#jR#h;ISv6h#s8|bm&0iB}4sLM%~fAQe-kYeHfYK^TS<`OBxCn1SXbY1as0A^>!&^~s7Y8X3{G)XwYJGR8|pA7oG_VUEw7SR1@ zxO$~;h0tMKV3ih1I)Jsdpa=!Dwj&}};%oi@D%C(KknEcvF}QO+ZDVI3P+OT{o!P^9 zi<~r~jeu(^#^BCJo(4wkad-?u0?5mMni%qg)7AjSz|d!T{^DGOcojpO!}BrixidG{ zbmhCy=jOx-N?UZ-peKBoN&rszle z4ZE%H*;H&+A8DlmUZWFmL(JNP|P?DJ}V5;SW4*M~Kc3+v`1G zqivYPxe255?fY5L;~M#@o>JT`?EOG*rG*5?;5V0W?ikAz8}DNH$OO{=f9+5lB_cX3 z0AgXAlIU~JU$iOxXnFU|SC+ai-F(of7@{Mx>)`X2Xt#v--mVwu-YI(ZsBNFL-F2OA zyE#K%i^pqh-}QlMnk{!{_dw~%{APY2UQQ;aXw(P(j+;TjV;l5#>lonEpf7VrCz$V=hy}$4QHbTc<9P zfqylA;>5DVjv2BV`*7|#l58LJI-%vxtoJjMl^1m`^Mb#};(6bw4@PCTC@LIBW9t+W zw@!!5p1$4xf|)6lClRRV`dv$nAhD=Cs0Dh0gc)`MgdPc9Df^I=@wAZ+Y7A*sKBf~9 zkF_dVJUOrJ?6u3UxowQaOHbg8BN5_xUpr|Kw)e=_zPEWt?YZ%@@t&s0qq!0P`#3cy zVD#SK>l_ElShm&CYx;K(a?Equ z@oI;I1YE($2KPL1_tQ?vi^~vP^`9q;c?^m;; zdl&~YZ>xb$#yL*>N9qKCx_Cw9!gT&Em;8h}b>iGPI?bm&i!S*&MP-k3j-cax;x&44 zQ4KZ+bfRUu*G&x#r=rYdWAT#&1zpR0j$0w?72X1w8IH|;>26Rez;K%#`V;DaC(BlD z3>}p*#&_)K#7{4ZO_s1i3%}@hHbmUC>(TRmDWgZ?|DIAdCC~U7sN?+Six%Iw*=DC% zb>}^8wScjbx?Z5{->Hn)6#f~Jl4C#W`jjr*R_LtCXwaeZ=c(nQ-$L0RzRx=SXVlBn zXr@3IMfcsPNNB9Mo3DC#HIKuqdsYE_m6Ue$Sx{IH9gQOqTEM30OCVC&+1{?^s7!oq zP&-;Lm|^&J)@&d>SkBBLj}SdfdkC!b5!SXE1`2=RiH{gYLvRT1eg`v1Dw+q(su(;e zL4wlEbXgT0{%v2(s|FUHI9$9n~qFQCxl|Y ztD6cd=qA3<&-Y12l!^6c&ZjLMtG=lc3sa)JEkFu9&ob$kyHkU$o#7jELm)8mFI~|v znau*8v9Jp`^kf|+gK=JD(%3oqKhA;5$mUE=*c4Vk&XAxZZwM%DXWAlmHXTO#QLNuw zc?ij0Nt$LuGbXo}0i_CKvb}E(7$e>7H;vMVtr8qP?LxmMZOV=8iFv{J(xAfGNOMP2 z`TmiGXE-POrtW|4+W5e4mN9;}+!c?@nCgXi3tEQ?i_)D*XhmQVlKDm{8j`yyeXQT5`VxhiJp2owZgX}yzVhA#mVX5M zo}B!;oE1H{!I=X9;XCIGnFrlA#gLAbC=rwl61dc83X}4=X89eVo-V`*jVk2LN|E4n zHNcep%nuS*z2b-t>}88bD7BGvsWSnd8m2?ODJ$m-MpJhdw|@tl)ys5?TR$$C^!Znx zAnT@^bPsfvwYiZFV+nXUJ$Uij%&(hgqaz~k*=3OGJ|esGLb6wvMt>L*>`?Mh6J>Y^ zfbo2M*=46J^rouKxA?J36F=n0&Q2RA3Xo-o^8(LyFH#$X(U!OMiRRXGQ7r}^WGu;T zeXty)!lVm1$14n@ZCmBr!;E*`#l@ijB*yup_T2BLy7_@0mRtmXu97=nP0p+4YIJV} z_JfnQ%cTjG2S(dz6_O3Nuz!Gs#TFX!W~>R^MO`+%M-={PPYGkQ=|9KC!kuhI1$W;E z3>FFjlEctBC4yvASk8@!6>FM*>?ssj$FSx)n^!^ZNh(#>n{n^3cbV#f>&i*=7ryRn4?fXXgU5Kl|)EM z379v_e#P!ZoFg}UNi&M*fE*A@}0|e?$ z{deR3I+|w%=|hhzlw0WN)h|sb9v*_!mI8K)2~9Aw88Ied@CN@vD81W0EpF~8sw5qz z|C0U)PG$20=*LhZiu336u-@oxb2qa(5LX0(5QsMo(n8Y<6W2FdqKlaCW4Rmf`}Vtu za0Aj3IMH&S=^V8GG{x4oZIC0aYO4s{co#SjN@=BEhd;sV)q&hFmqHl3nV>AEIbuNd6W#$@qLAq^$}DE2bE&W3}%hK7_+x4;$rnMtrA zzajCQYxcI76o^;JM{mIj?yxZWdCb_6!MQXUH3@b%#nqi?o}2n(Bc*>M9tD+H@*!|F z;{oWZj&bFzGqPOe(Zf0{NdZTNzfLH3ij@kLGY>%lBzs*(l_kvZ6tEh3R@v&dKQ{PB zjZWdld(aMo_RVI5B$bvMmv~3;^3!d^%aFLPk~ypY_gJoTdKSX-t>j_yUbhB%&Uq*5 zIDYp@V!f zT*-$wX&d-uwi~#yceed|Qe5L1n_SqV&1B6O)s(DR`kg`39tv&C*m=Oc6$(4|~TqCu!2XLfMqr^n{%;wH3l&nIaS z_aY^#*>7^h3O)wFy(-7(3>h(!hO4G}Z^o5uCn_!BacHzbqhF(upvAu{v@m6`O%W7E zG}UXJyD8OP1noBT#pi`@&JLS0<}L%sMqgxRfa7~EL9O@bcBZk68SIA*_euf{KRAEn zM-_R}M059)!%S`)(4~ygv*Cx&({MnBDC_B5(`pDpQGrJ|6j@e-7rWlN7W&GX}wEW7cdK zJM}&Vc-5u3Gi&TCjK6EbAPcQ!e`ho?#|Ex|abRZL$9#v^{aA=ANpRem^dx*OlFFkw z^h)np2@(P_oF*ea{36rmSsIuY(Uo)dS=`1ml%(4nH?M_qq}*hdZ{clq)K0FjSHL3F zOsj35;g&CuYbF7tFM5b;4O|ynGF*AR0PzPj+EI+p?%l67lw(i_tzuBEqQ0H^4)_`a zpnm2Vl$4{Uyw$l}Wb`Ak3AWw^_!@0?;9zA4v$lw;tQB)l0cucFNC{l~Sq( z4n%L-f7I|@zc2+(Z&SAI`c>`hwga&}>8qve+V_8SJf3~2TBFkHU$tMl->o%$3h8<8 z-~nfOuM@C(Z#1<&KYzPhPYaJ4@?buET$poJ;x9qE-<|Xv$39=RO?^{#EbHChsRru= zT5augeIn9#XMWs&v4zcddJo+oqt%DUM~;k@+y4;>3Uu;0a3)4H1pk`_Kskr3J+yHN zOxD+d$lKNx&q-vZl#eL~+h>#lnlPi$V_2jv#;uWSM8$`2y#KU`_0zh-cIb*G&e2eo ztE&9%WiDj2X%SC1>4Ebjfmw6pCy5{umf@bNGhHNeSKeShd)^*KeDL?$!n+pj zx`14F>CpHug;;$mwH=RGcUi0N1a31W4Fhe|?puykjIXR}6I6nZi6YMGxER#3OG`ON zHLLgeQhG(e^Zg4`y}REFSO$)3klk=c{J<& zG)XfSU%>$abiaZyefvNSC*YlePl3&}7?P|T72adx3=3G@8V`)@kNOpx2E>r}AM`|U z#gt7MndXC<*O<51LY`p7K-*CUQrdAEDm}HRC=AZnS3vL}+{cdsOwy*xM|^O2HE5s~ z&p^@!BF@JUxLafCS2N1THLD#+dJChMy4>WY^tmvI>mLKWcTsg7URBvX8b$Z zT0(UVVHrWyf-#Q+QQZx!I!uO+z9_e-mg}Q#*o4Y

+s>t${bLcqu5l&3JZMA1vEvj8t@Bqb&jvGp-urdoxp!$Z&PlVke1R&ClWW%@ zGCPFCdlX{0xfmm>F;D8RXI;G;p9%KvBMl)Rpcj{>(4Nds^K*1?^3JZBzcjuH%LbeC z+U@D!*TMrWe(|VU2Bbf_44m@t*!i6D^DbStEgX(@{z?_VA$RzbJiErZEG4Vc%q#rN z!sK$LnDU4SQz_mt?h*=>}qgZw@J7R}zhs5S{WzEveV)dn;om z?2rUsOy6+Jy1J5-2kA-$D`LAHkCQxoyf@qxoQa7JS*=5Pcnk87=P(;Cd?@a>gTH0X z{-AM3P{b$aRpI92G3nAc#~JJ<0D>pB{OyX@He(-g7PO*398qEZH5`RKjSWqcmoK-y z?M(3+xi^`r9kI zc+pYW$=P+mW>3$GP$C#1j_MV^cjPu#5}hYB3hyD75y6U{Rp%bqM+0H@Tj^CYnYF&p5cR8HO2D%gXGxB zArN1deFG|KJ$-;CCg-MT>Zj`kZDtj3qYu7DmQ#Pxp+bhN@p*Ehiyd`FtzMM8JgMs! z8`SP?p(#LnD|~sKhqsjB+NhQiM4zU&;tWTi->nEtSUH*DZQ@2y33K`6BaOgdR9ri4 zoqk}_7CvAqK2RNG~VaW@E1{nbX$Of0&R{le$O5x7UCfATF} zqw*DVPCR^~qS4~kOWq;l=U2L8wr8Z4S&^Wbvum@w1eeIBE=cn{B-o2~nPS?usiX9n zt-x34TS31aQ)^n1gO=uamP(S^)6$@!+0TLYd5(&TIiRwK94Vnh)9C=F|-L}WRxuWmEA{bEpSs4usafDQgxxsaQ->ro{8uEbO>9Av} z8?*PW?tcGhDei||$fQbluwQM06Ysh<7@`+&Gq zKwQU6rt1~=1sm`6sBMVDhyOOTZ2--a3|Z6M4QcY~f8J03x&QceKaWPtw?}K~Y6hfa za*oC<7ZK4solZ!b5JPSZ!Z*O-(EoP8dF7O{-)>JSUYvn3$R}{Hx%5igq&8R^(@DOd z(f(2A*`}eqA%r!85+Bkb*CK@FERT#Iev{s>p@wxeohSzR3Pq0DAnOcb(rV&nUDN$G z7?3hC%$bbH>>g?x;zt8j=f4ebg z`RvV`e5c+148cwb#MDwKZ+Q$5IglBAT+Rc@&|Wyc=j2~a&)C`s9Pahtug2a>Zn7t+ zd`zA>^!(P17g=0u_TXyK${9dfi{rt^xym(-oxeVt_1gC(B()$8@l9H-E$F&+hT?$+ z?A+UBQv~#jZXFUMKao=mc}?lHyMJdCVf5;dwByKQ&|*)wKxWlcE*muj@6O0kaF&iX zpkD3{3b0gj(7t_2J0;?A6}g5)g`=hAdpJ+jTtFU8t}Vd2=?U+;ED2`T|79#|7NY0w zVJAoWK{<~`N;tNDzaPwT>?9S)Wy9#Q(K4@en@1%PmJbS4rQX4fSN7REjjFfE{;_g^^`WZy-1mXcF?Gz=%*!e zzmLa2-bJFJD~Xy5!eRQ9U{ZP=^T!%fVI)0!_GHipL||O2hf%Bhbr>FDs?rmtLR-JK zFoLV9M9Tb`nM%i^enJvvu^~FSrTvEQ0E-x~w6oQmyXW8M0-_%M0t(qbsqINeJe-lK zRCkCj_h78J{`MXBPe2>4nxj#6v4G!GJR?CzX zto8Csz%@#NUK*8IIKo>C$aoZ`S^J@)$6pz9Y)6BqLR>Be9HXo4Aq_+Pnpn~M8YxIG z&qfH){1Q&2%7Zo~Qe=D&&eJ9?61$~zEBTVk{E6nG5fA2_P*>&nAC#loY>;3w^l5TBrdTHY|!2;y{@D11E&nPd&Xt{^?4 zoYg!Q>*{`-ltGY)9zS8uWpHt7XLrAp+qo*830)1j%=MHsniY&%1UG8+19N|be#^TaJ+nyD#WlOzO zBlsas_~8)m??2G$V}w5|SE!n?tG0nbPWqyRj{YD&K~eP@O-LgW;X_$l+)UjLQyJV} z9ymq7x7#&nSmG3-ZeE+C+hsLUR`)e>a9g)|s9DHw1@&6s@8lCK)@*Y^YJDM^FM+;8 z2uxhsVP0kB5^eW3*5rp;IO;{Y%U0IDSFh`PQ!FkU`q|&n@Hm@NyKIkPC>MFeG%Z{x z7u)}AK3hozI!7{)5#^jVP>o_*B}x>ujchjmp^GGu>bNFvi0mdLkdG%$`}l1`zTSDK zqMzj|$MUqVxIrSHUxU$du%HOjqv%TnSt^%Bn<{4}S#-%$=S+ z>K z`DPK;!G~N0vwnIh?;3P+E=kc-B;KGJjEGNcP~xvZF(Al?+N<>&Ex6g}L{5Y+Cs$1! zsc7W(3YgCICER>c(oaz29U6%|P+DO!!<4+yANJR2wNKjU=8JO3^W`PF7m;ddirqvR zp_8223l$kn@K|(MCU18>Sg5~zbt2FRYSnQUzuB7U%TaWk{5xU&Iys4y%%& zB7nxC)E+NMZ(@gY*6^2ahBUWUyTz6Y94ubClUep&ZU~#JHQ>66sCiof5FGd4^xY8q z-F5g1J!#NfUm43U3Pb(SXFz?r38ldO-l>$3_C@qhfA+SWSb973pQN$R+ zGc34=(Ez6viloEie-Jo&riG_QOnM6N@`EC=Tq7E{F~Vy+dH+v_qIzD9Iuwx@Q4%o` z84p?*Zg`z0t;dye8hARO?BrMYa4zm#^mxMl3}NWP&lH2WFwhlOxfkr@77-9Z;v<>k zJO5A=+vlnFD$0M#fZ;7>w@0Kq`^j>d&s$G2rslZ z=}jvr7`VO*o!P^Pb;AtRZnk8gOK19Klo^a1R%4TxUg80KPeQap3=fJrXzpKeetSkq zL)~y7t6p_Y&El{g8<4m$eGe8Y)kzmbW7Hmf9S*QU;4-$jY|%o-i;o+LZ_RE_(lEr- zK{1(OV)IWz6|$tN?Y{4*3Nmc-THQ=y^04P{pUi8N_jP_2rH)mH$i68Q<}e$-s4(;b z(5;I$u2?aH{;fG(j*=LTlA^Pu?|nN;bOo;dUXoiQ-zFo}j6-JTPQuSE;TbFRU z+}x+$Scu-S?ZeTo(pV^$A0ceKK4`HeIGIOXFP^QqC)$13r?%gi_qS7*6G(-^ni0O^ zH$>~87@Wm`(TbQe|Akg0IisP8P$C*7x!*ye;ETg3!J%FdW5GV*v3mY?`PBOOPPVm7 z;t_;V9ElDMO&Pfj(Peiwf2q3!PfO+&nXjv(#)xZNesWg^@lk|??%Te`j6 zHjsUyq8neZQrr8q_ZR4coM5jflr|Elue_^Ezlh{UfLrRr>WQP?k%E$^ijM%Kf&a%W zFvl{rNo4oAEzj$V>hPriy*+Ih5#4yxF}Za!v7TpS*wyD=(2Z}W5q&ag&@98jIPTRw z9nJE(^JuEHX93-7raLQ}S07NuBT&Q3nBOF0Cmx2e%gAIgGe0-3JEsGSo+0mq0-{F( zz1gWe{oCB^&nwpKTmk_PVgE;;wmmll)eG7a_uD^Ib`r9As-^h}f4^6b4LrG&81@U7 zv~|#LIDY$~S<^+Y?~0-S1-hR8M^5KaaPIA5D6BP5NyiT+C6ap^)4=^!0_Zn8xlDFHrC+{*D zlR;G%`SWV)N8C}Y`%Wl-&2L(bu(^(E1ejZ2?f5LiVkzX{t#6olibI3WJ0B0%mCjhl zUHX2_X~sk86+!`YmFjlM9c~8dAs{88DfNqj0g33bbG_A46Oj5`?+09kdUyDu2z*c- z^Z89;1HQh#eAv*Bz$6M;o6r$>IBJs-KiVagkSZ|H?QhuqIbXG*GBwHDc9dGFw!-nR zo@{0_3}gv9=IMHq2rxzVXRswWxM+Gc$iw4x9ZFk-48&r+E!~Dbgo2ton8J5Gjl*YG zg$Pl>19R-6@4y^CoAELwwBbu6>q?gAxLrapEs@9Py{e4m@1Kg+F6D;+X@gTR8z2`P ze|b|~tk$Z5A=~wg+A`fn4VRkN4{e&iu^C7G;@ZU2t!eQ326e}VtbhBt8-@RO4{vFv+faaB zNb5$vi$#Cr{P*5@pYw?sDkFuj3CJfJ1D`U)=Jg2q+{HWYEt$k%;}_g2#At zx?nT^Q*F4k1oVx@M`ke7Z0m^R)&3SHFbtHAQBCafLHZlXxXz(-pZ5YQiOR%%pjku_ z3HM@XYKNm*pTraw6jZSBp|9ru+G-G>_&JXM`IC688df`mz8{oly9ks|G+V>)zletP zGnw;JYg?JUo>#tCpL*pe1ib3OznF$Y{oFe!5vaUEVR~I8a@z|#JKJ$7^VnvW3H4y$#d-c&?GS z#XPTDh7uutVDd3E%y7L;@MR3wb+?US%AeN>(8vDHDx=-BDlw(T#^Iq#|Zey-YoR@JUG?|aTU#x?#e-Vlu<3L2FH znZA^vtMP>IniacNetm$CCj-mLO!`jm2W`Vwp<#h%G*KZ(MQY$@`=dYj+Aq*>?E3 zLTKn0TrbFB3f&4?)jCvd2%v}Ct10p?w@I5(^sXav;-KHdx17#3u9Jw@q(=+nV>9w0 zuGq?60oz@sC$Ul<{_EdAJ_;7r|A$K0Xwmt>V$`JxtbXnw5X=bLR^{|$9gRR&DsooV zN;qF_5p^dm+muhEqeLd`Am{qAph`&)>*s1bMyK1}W7UM}0>BJX5Dy$Z%qW}N*~ZLA z*rEF;I9y}N7cG+41xdZOHP@oPU>8d$elTs8Uk8T6Q$R2P4q7M{gz>08)(7<1pateVDSDgDiDB6r=p@&ZCC<)+sAC)4?mp#@bmfi zwc)yr4@{3GK-AaQ58Y5UXZ7?`EifWN*qX>*7>n5~v5~3n^&HRsEs{Cy#Txo^;8LTG zL&5v~W&UO;xNWxCz{BhMueUQon-y-a4-lQkd_ndO!mOY@i8?RA?(=8r?oj-XKjk&+ zFFPr{U{GP-IvZs=6TPE0NV9or)7O36<<3`FDjdb8-s6RTvIJc%eeO9W!6j`?R%X;) z07WWHWosNm|Gg^o?qc4^-Y`B5)x_MZ+0yQd>`NL$Gxm?{-%Ed-v+<^qXWV=B_+!nw zfFtw53ES%(Nm+Rh4vQ|BaxSYE<_xvs_B{@|yHYq30d%nsIjj2^b~hQ_3i2+t&;o;2 zMR42F$jW^s+RHYDpb?Tlsp>C0Zm&}VE_c_{4P|8Vh27%PaW9FwChKLbtgdx^WFuQP zT!v>KG~1*Nd5%+jv*R28E_R1+Lc3CNL}Z)3x0#$$-c8_;Ql{Th6W4ok1~{!aUlP8` zC3(Wo*e97|jX}G(R_zDwEou^Z2mpr#>+u8eG#v&~iqG+#%l@Cl!^LX#Ac_>Cg#|1T zLB$&a)JWB4X?ZxW2O-&}0LN4PUcV!N>1 z)JB4UJ|Fcu%V=N;)t{mw}X-fA0XAAr|g=3A?{MR;i<9iHq<2r)7 zKO#1-o+66$9Qq$Yt)$WH`;IFV^Uh zcK-O~f3QIUl5pz;iW@4=56DQQd@F%{7y`Hua<8NjM&0{xELEOT8DVb>b$L)K_3kWmFwXtl2aed%K3UT^hfH&P<%a72quOXE1h;%J*4j?|?x5RSD>qZ-dP9SatK>`B{wkMgW%7r` zXoJ$@!6B&qUO)M~8zkjerAF40uJ8@SO*O)4JvTGU;D`Mq$!+jvk4r4xQf@s_Je690 zu4m9)PS>fHXyDVU_EE^6uRYf?>GNvK^_axPc|4#zcoUHpK_iBO2ssR=@vAh)xV@FM zs`M!~Sm9>c^WI*yii9aY6?LO*s(?&Jk``(^GB2)2*29L>WC1nmU&9d^(f~n;fU#tO zc#Ys7CZtoV_i(PBk|Zhj2+C7%ul_2f7$w@7gdw+1|8)djcH#2XqpD#p*+QhA`?oT5 z3*Ut+--=O=ttlZ3!0b?>FM9Ru6hN;@7~X;h17vU!c0u2_Yl!mm!j>X|38K|dcXt^D z`cI}Q9XC$-RI8lBdS&wZ`9o~l;P(!}YnX%@6#L5y@&L1X+y98Gn!-1YiAlfm=9J?% z6tA24c5(*$8wbcE@)rKKqPr+E!CCxu`ANCRT6Ja*jJ$wL{z_&c4pdFCc~!jZd<->& zmN=t}L?}G;dT>9<^+;oE7Fc!Q^XYGI%rR^n)8(x<7KN_o5lLi#5|behy4%3~IP|ij z{mI>)tr%FheW1?W&SB(tn4Q@o>|kJ#2o+9a20$GMTns_*d4xSEYeD!RKw$O0DMXsD z4)!{Ia|72;5oIQ2E%q75Vx3BBuevoOtH^&1oF9hUtf%6HW*Tn{Kx( z-5OvXZ!>)xIn8CORhz(0)l4Jq_4cc@Y-pB4drdi5SNm? z72TbzFSHnZXt=I%a`2lT){h^fy%GIzbIkJOGHdRqZr?9Q$7Ld05w|QyX zpuv$w<<8L1I1Y;$9|uHaHKg|d1aw@c+7J|trR;syI|FcsCWr11q``QQrdK;L5{ppN z)8%x3iS2wp+PN4D&Fk}Irb`r1!16_bUYcsM?GRYi-5qotc@JMH$-?Wshn(8?8a~*0 zjahO;Lcyu4#7(Z&PUTREelXQ3-kT97#s)1De%*aN2r(_7hb%5QRTlSVw|!#6>2^}U z4l^i(AkK(hKOnZm=@92n{_T7Hrp=z-Z9f9`N+w+j8lsWtFeCF)1#kBq7zjL(Q?J`z zv!y=7wg`6b=~q7W1+I3JdFQ*qQ%63m88}(%8KMa*oSw<2Zz&njDkP_|R-Tf!w%q2d z9$@9yLT9YnQy3@-9u4t{h(#7ZfdO?yCiRmOa%I64!>PsJ4;7XolYON=knY%jTT3c`6v5Pp~pr_<0P;4;s=Jc7eZmk(j&Xb{48%D5!1IwB$Xj9-YB8lHNgI5 z!n=;4*S_J^$r>)x-e!d9 zOerc6DZP)Hd!@KAUYhqX$n}X5)uGSomSi>A^a%d32)43XGN@A)ToA6l+m1!b`|>ot z>psxkWh*+PxEVvX?x|;rgx*et?uAWb&UbcY{_&xfhH^WiXmQ=)&|i7wAzV~|3+nn3 ztq3~3dX!i~P9jE_fRCVXJ5!aM{2yXg4kF`M_Hl4-3Tk`|Y>id2#(_i1QOtHmrAKE@ zD{e3aW^r>N+B0(n6$L-|QaVKdSQpi?WY6jJ#u|OKrrlnV(B)Xo zL5-3pj`S-zd!{PCJMGJJs$$4{ADMp7bWog_c;Ec%aI*by&pgk(wcf)vFY<$Qhi+P5 zq1{P&e`Lguy;L&S`G<2!v3PiIc1_B)4m7+vSymC&2+m`<}3Wrx{r-!ec>InoRX>|BA+aXPi)lSLWm z*$&=bPHRX1_He!rB~Mj~i0Cl&y-c4Hr&5E(2nww}Q;?G|BVxj+kq z=Sb+OFIss_fBX{(F1BUey?f2?ae{#eBdcZvN6fxEO-Y3P=gSP=Hyi7&$5vrAmKpYG55Sq4FPoCAjIxTj%zzge(D~CP^VGK<=}7AUV!Ia-J1)rqG_?x;>0vkWMqyq& z6g@+q52Lm|qYPX9y2I_sn@sfUU&H`g?b;MIU#sAsAiU>j>Ar&T<*ZR~`mq}$JeWy| zyDOjQGzP5m*TA`~$LZWrBeiV@oCCxHCZ~JS0LElmg;}ny*GVz2lXC5Z#zL`J;)uTE zAI~jDWeT|1iV@6F0_`^3Kb9OtqBM`!Cj6fleX9u3rz4$%b_o}y+YXI+)9$T4Lh<$P z-+7XthfUpy2+i_!RbaTx>CM&$TYV{?T?NQ9hX^Vdsf3xqy$q3-_t5qNnV6VQ!Yy;z zT)1BbN$TzuA(8jL?muQ=>5|gG`M|Ei{>hi$l~@*m=-1z;Yw$;18XZ}lUhtz_YFx^& zE@Hn7!Geeeg8WuXe>9*{FJpz7@T}QU22}cd-1wjIlB^YA*`#T}w(>g1* zKCb@y&CV=D9%Z7iQh_&jvVj$P_xBCM1)`!N#Hxs^+qw`V0Y5M@F_?NmCRF(t`FXc{ zlmm;XGkCx4)Qnarx`K{+omjk=XzT6!-$CZ$69~`7^8v6a{ULU_`&V07-+uzhG&D#c zo){R`6*EY~-)EzRNaUQnyXvL|q8yc(INj?cq$ET$JEYjrFvcy^%IF&L8On%itHaVU z>df%@g)g_e$L<3<)K;(Ei>}OQ7TWiA#>hmFl4*f&l?P)_tC&;df*w^1`?rz6g%P}v zrFy12_8s4*Bgq@loA!y(Cl%h-&uv)q6H!>3BIr!lK6}4t#}iz`r*!X_T(1K!=bN>> zin^XRqPsUG>Cb@}i@4Zdn6$QwoD3Nj+m)Ae8efBsku{z$)RK-x|DJso zO4>g*<%uz!pMrQ4nvUkz@7#~v{TH}Y27^u@ctn0!4HK`DjlLC5crpEY_^|q!Z~NrG zzvxUPh<02*)VG(<1R7MB?tUOe?`iRWySDP4!vK1OMuP%LqdOY`$Rxcg5YtOeU$U@8 zeHTjB8r!1g8kpBl_C1m)6;E~odU~+M{-s1<62;I|7HDvQosQ^ft#Bp@P3PR=908t( zio4@Itf5N}>nZ_abn^vTc5G6=Jp8?H4g-y%X`M0J&CRrp4X=!N`DsBIT9Q+C1`odmGe3H2LcfzA{*|F@B$cq zM^ML3?=sq1gIneK)PIG3SuwcWUt}+?;YuZ8xD|pRH?)oX3(w&r=Kn2~ZMwb7LB8Ag z;-wR9c7Co~8a^rpD$-~y=j}TRbi=Z*}ON9xg=> zEHfD5LNM|2@HL0Vt>apE6Q(Vc_zA; zEnc3WF^Z2n7hE?|Ej&A%h7PK03v!=?5FW%h#g8xwh_d2(rHU4ZY zr7O#eONbHQFWS7!MHGbB^}^pIJ_hVxPcZiEXG`p^}K1=vH}xiSA*JLhm9^nAR4qf-D>LJOY%jg ze54Ze9k+|wy=FB`2EY+x;X~I=4B-i2XvjYMmYgv6i1#Lq3$%riDVSEl#yCz}m;a0I z>QUvQcpRv1a683mJ8QV*D#|9&STqPo-3fA5P-l||1=S*OLqJZ5?Xk4t%YFzaYJ<&7 zqSCUTDIiH(GlWYMzM4K>7{!-mU?#A9i5=G%NSVA)5gyvXjj+E(Z+y?c1!4H=i3(o@ z)WTYxOK`-(<4hZ1o`q&@1HlEs;xueLi9+@_K&ywSc!g zSr+>UA)!X}3fMq&{Nc7=>8atAr37JW`CI9Whg$$%?-+;0uM^jtr>fx~0o4Ko=0bh_ z@NN6NM&a8WwZqS7_7~lsY+l6AO7?BXN}3;C9a|QmUK|u*iSnFPJ|5d3VFZK=ML><_ zF!#=lT7qfoCku0%!sBALLkER+kKW}GC@%F7_{n1o3j~LJM?AaD{&(vzp5Y{x!P%Ey z&w3MZCsHsCK2o~K!Ai&F0lN$yvqzviL1}YQQ|D&TMet}QWibHmZ zf=Kz@Un1%8^`c!fz;*zmh7S?c7{2~qXG*j>*HF-9_~@W-`r}ck7#Zd{#G~k$iENVR zkjv)*ogcBrcJeH57?Ah!6|Mc93WPM*!JCYlRrI(Oa(j`6iauhVHtAecivI>b^#6`kA@0I0MxbzT^?HS zubIhlGf}(+30^RCF?T-WV&Tu9) zQ#nESDljbI-IJ!Ie7&0~s7ow|VkE;%DL%1uaT^T?@f^X~SKTSPN`aJ;Qc}%gKmXDe zpRRblMNa`{kA4nu`GvfNyB0p5RNfCuUWe$r^v@?)DW%Lrs<1wxF-_ByItu6H*)T;$ zT!&vNPB`xAynP5b_rbgDX9fr|em*Vk2Kw=n-WV`!)fjT81-a8qO?_eF;C{3|L_)GJ`Moqn4gA4QMpc`WMQ zm>V%L6#J)%Ax_H;sHr3|zWE_3y1YP}7^fEkPDbw$BPo)WJL|Aew&_FedY)_(;r9X06LcjBt@LnH8Yd;=&8zwe2UkZ^m) zFIwXZ3jU$eDi#HS1GnMk5L0{Xj|&YN>kb7o5ucys(i{3FitykFPu z!uFubI7Lzz4~Bq6`2EZ*Hhd|qMfRrUKy({7&TNbdeiYz6WMzdqHylZ?UJ|TizzWwv zx9NLdo&zUIQO`+Vlo7+(Z>_VkBkJU|O1cf=*3{7npw4SwVO@k0}P zmeU^9BLKz(s9<8T(c!bFh4=Nt2X|+Urp(JkBx)L} zu&*|Lv9^&nWK2D2N3d{ex{2W(xAm=x^j5~@C*KV~DDH)CPW7T8RM;`lZ>dmL?pD4IID0aki zwjC%oARCDNhXm=PI2{Ozd1DFi3KM)u4`BF~X}e>9C#FN<^Ao6#Y;tnZPNJ5TunkK1 z>pU%*%(a$d_&_PGobV`msIJ7P7{_w}KB&dxQL&rF!;lQph^eq(b6P@ltP(2~0PnI*(Wq-fRJ=v0|3n@5LFTydoikkb$?( zMf(794P4wkw|>b?JJ?s2R7`=@q2F0`_>mAAe}<;|Dt@F<>*G z8Ui|Cl_SWHBIY+kaN^6<7ICM5e(xWPvS+=pnpA zTpljT=ge%z^gm=<&=s~JrZx4x4ZS85!=0uEDzn-Nh8tPu*(S>p4< z(j1f=`VoIn4-THtcwQB>?+p^#OS>KjuJaTJ{_-9hG)hkAeh#?l+v`=3rnzB`fwH>b z<7b|qU#zI#-S}GdhX+&3Z>A3=varCm@tp~6w#7rDkBmnmP8LJ^)lGxlGNgtvr?ay<={bJtJ zkxp~>Eu(HchS9c*;ineEto;oQ`@|Bxd5&*HdyBksQgH;;a&~>VwB#-1pt2#dtOKg1 z&sDR}@UuDk+V1*%0oYY(R%70W&g_lHz>O9%+)aZYcqSX^J|wN`hXX>UqvnDlcOm)Q zl$Q!Ts!b&x{?o1K@Q2J&+<^CSz}_LCTjQeZmb}y5L8Qh9eHdmOAZ|9L@+~$&R&BO% zU-|JvmY6QUdGz=NVOjM%#qGyeMD3qo&ClsYfwJ2B*MR|=W4oR>YsDBTv0NJCgL9i9 zKV)ArAninC*ieLnxL=6yILd(AgOwr{T|Z^tz2tn*fK*A}xF+eH|E6xMWE}7FqVpTy z;+V^04ka?zDm57$kywQlf|SvgTpE^rnpwaL;oEDqpx>d*Y}^~Xe;@|CQAf?-=Hd`+ zgLH7esfFGJ!*f4Ks_Y=IR#>h0sbk{wRz*7u1qkK=`la)k6RseJ$fQTu)~)_u90dvt`{->;LnoEw_B@yT;1U+{-X zoEDS=;%4*;G3BPn&XSEbKEi!(2F-4k3%ljzXq*Yr7K{PuUvD4?DR+&O;eV3KetTEB zHOtx_uKqpcIzDzB1Br%DN#58 zd5}*M`!nos*h|f!Ky;hnU|e3+m7EuAEmG}V|WI&g8Z z!H${&)i}XB)==E^(URCmxt=8s^ktEK4xyobvz`6n{y2@@z9{TX3a4j{kq9vW!LKf} zZM%Wc!y#gT_Up@=dT6uwQ+{9~N+d0UET>$`u938Q=eU?qjoopQM=Cp(^^M5@K9^bT-UCZ2}KFm&Oow9!=N!eFwcaH32Krpk=d(AVt zG|IS~f;v9ih3Z7&Rm21)rZ@5MCW|ow_t4=dvw*wzV=5V)SSI_$Z`)FphEZL}$K= z{9=O=_B6mBQ3=gqXOdP1DAhie<}uA|b^xK5hCoAc>XLkqS(!&!K9TTSZOW#YPAtYo z8WiJQZ8dT#_#S8%%Sg*jeA?Sv zp693JYeRuBG0lZLfdL$j0jgkRhU{Ss!jL*dHY0~U!0A92%2-5%xb07Gx34;bsns|={j@I!cP;;GInhv!8AiRy68TI}iGV!8o!_s6^g zTC7&>RG$W3Pgg(ibG~+RUPyVj_}O>s&w2Ol;|Eg?BKg5n&hNcn8`^z)@JHYyMdfim z6&}%_xs*l7h}U#RJ8oAT7-W&K23d4$x_Crpps;LW6Qh})+!^& zZmybI*f8o{;i;)ry|jwUOG(FyEU0l`pA^JI?#|tk5GxRUhRNI!Vd%8kH8{O}I3#_J z#p5+WuW%FCgYjO64GJ(*5@}5es?7s+fTw;kg$Bq;4Zvcz?Ny3{S!Kfbhk4PQn1tqQ zdlDGOScA2qCyvJa5Wei=FsCT2A|yBk=X=F}85Yf(^kAvA`XN`rPd^_FF#g=576+N` zA5q3#kXP=3t3|YJ;aSvy&*0Ne@@Z~!cE2BR$c7c-u#ifmnA7E8?=#*kO)jJ)a*0JD zG!GYz%x#4xm$CPLktV6RD5br4IAMj%}iSH;L8@y z5j02NqGG^C`UI`FmQ|ZE!-+w;%Ph~tqxR^5$OrxfY+LQAM%PXJ<5z;Y(_c)pM=mFx zfE%|xAjPcdklinR)2S>XLSwT~)cg&bSC zj$2%H3yTK5MIAiP8Uf}4&srMjJ+d4A*s--8II4&|k3j?z_Wi`VoM9yFT41(q1`5@m zK>d3n+!A55P0=>It-~w2fPw>Q86bb7c20hfSEDZw#vuZ$g z8>iMso!m|WR=fgy>NxajbWb1|sf2kEJB^bu*+|Z`ydb0kbElfH;X@Y#Wn;owW(*R! z#oHBU_n74zSzHpc$`ygD-<-b{VO8GMS>8w z#A{ki<%5jT+gkLJZ^YFYux1LAS8NQf*Swvln?`SGq0&R*<%F}H+;J1XYoE4#iV1Bd zUd->(eItjlHo;8%(Gl=D{p*-(F^{qE)2UR^ zH>-8O8GJ(y+?QYAY7`2iw7M-OA3$A9bu#FgNhFg_Ng zj}J!(YrCsXx!980e!smTKZU%%Kd8II*pj)DVMF`kT(6*9#r`cOR{0{6bdkyshLsMS zv;rO<-ELthJmz40N;-?BOovD)$rEK~QLKO(bo~&0NpvE2Sqzj3*_CO#=qpHTXK24< zr3zj0+$BPx0&6-?A5Vl8Pe>->^R0F4oggxG_1d$SS)4RzEX3Dvjm-oufvu|tW z7SuZ2>#_XqBcX=SORSD0V6Odkep(1=l~0)oM&EmlQ%(8naL1DP{pR#3SesTxWo#^m z4R|JMI`j~-W-rr}X_4domP)oLVU9VB|h)B}I9&$qg~-XRXR}q@eXB9F_?;%jC>&UYhJn9&zODQLWKWjmXe3UbyzGE^b|ff=J)_+O|8Nv5 zcoVnqrrg8BNk*Bh{dM~6Vjp)CCyP0|=xfx7;`Q?e6iWa7w|neBA9}>$v%pud2xj~c z*x)Z`VlQnEzwEmMHx*jmVNIfbSIZIF_~nE-+7oJ zQty4(m1>0_SHO*IB&J2p6_Pj?G|3bI%E6!{*b=0kX!A{MxcywI8Z;wT^H^@PR2!&e zk6n}^D>`k6{vxITP?J~?0eWs3Qu$8yg#d{k8RmU!tgv+c9c?36o~h>r8B+rYaSDQ6 zYf!*t!u#UNB|)O$nOj z)KS<{2m!yEh!6=K`vD!Tkivw@*zdz#YYB+NxoQo-3xDTaeX%60N#!&JR83u)x8m6a zL%w7~Ak>@C`%d@d+nNzJ(IPL0OJZV+!R@|z#oQmeS;Tb8Pq`3HM!4DN*I!1vkZUY( zd{ygxwmQuH?Ulv z(hIJc^aCR76!lpi8`~ab&0HK9zBv-hDmGi?;xsA7h|fwH({NA>V>LJJl3(?5IZdiA zh0G*&#K&?uo(K*N>O~UE5Cv<6d`PkDbX~+j9r+D+hMDy94O}aT>U3T!L!O!bX zPWYEI<@X@D-}U^q+3M7JGw7OMND>j{*LU?Gd8{Lmlkv_s8D@5sM_;LeZ+o*y^Qjbq zP;tb6whwcIRkI-RMNsmZ2df3WuYL*8D_qv-sQ9h6-_8&ZWtW+doDEtPOLiO@m*&O= zEk7)}Q<9IqfGgqdJ@Lps-f@^GDD{=BzByO%P7^hO$>vQ_V6 z;L^gnI|;9azrw)4$c;PkmB^?aG}L@N1s8^*kG#%0{{6di>xF~9OJii5z~Ztd`SN%& zj@yKvh9J{A$7DI(P?*05OgP3C1)6yU!-WG30#$y~U-|pQsj!Ss!!K}AmAhSnNUWYM zr#gghF^^Z*TvukD_B*e}Vv~3RRzti^BcA+9{nxE#KAK0X8CuQro2(Rge~rzFR*e`vUc8tJ5d@t@x4%qI&ge)u zaP8duAi-XRjE)!3wsq$*n*6IN@alz9d|9(Fwi{=A-p1ooGpqX!+`d-YgGp%A?d{twG{;RPr5)hZZohjH)2+=esXB=6J*>DNY}nb^ zsZ&00U_|*Kb3&mea0|=m7-}t1mrEn1mz-eG8@A{dvP;S18k6T<-wC5-@qahwW#BLm zuIbS!r~j6ezhttN9iH&;C;rspoNy6}J&!NfKsfOHEFnd_p}6K}bjSS`d=269B$42& zN0QJzl19K~CYA$p3MSeyaV8ei_HpQEJti#iK{X?|K^9}yl_1PbsB$Tk zq@}F!Kd7eD@)URL3TF==Gd`q9=ma4MC-2L-ued0O02qdVeRJh2Am^pL&kEno=ffK! zy$m!TakZh*Q_=^A$_#y6#C}({)pv#nn}cnpUT1v53c!FjxBf9Z-BLy;5f2xAkQBy)N{8qR#2b6f%fzoNUEY@`mR}= zy)E0e+PBd-`SB?!r$RpU`O+?Hjbv6{&XhKAhyG%Kz58bqM#k*???(twc>*Jy14b@Q z#U`*<+zLUNyq2liCK2ezer4DexSm{iHHkrz8c1cY_#(v4Ow!cPL9#qDoz#l2p0yH4||?gFD7_?Sn4+H=_&RB;UR|z9Xb#$?|!uH+*Iye zeQ8K620+;g$Dov zVXtupPn4{;Dq_EJv(M8zw&Sgc(0wSI7$ss@Sg1cNSj?zD$Fc@=AZqA9fV!p z-hx9h99F$S6iZ3``70fd}C@4J_DrSa!8@p>lEO9{IA+Z7psnrbr`D- zi6lh9(Y95X4ooQZ1+vzlb6HsH-xc9MX0%qazl zh;v?O(q|$be6-zw8#=(krb~hUgtN`Tgm2-PX$Sfa)(RI7gT}VoUk}*zn&X!=?&C1s z*fPBEX~@;rkM#i~qn8e%$SSF}i5Mu3PoIv|v8kv{G|s)-AQ|3Ade|D+$iE;#>W%DKT&cNf9D&U$Q|UA(mXE=`0>MIu{4%XxvWHw zVjSN2Fg=(37sA@4Xy&)#0ZQ0uy=WYYw&zb-b0%^^CC;$V57 zQ6wCnTH_Ja`r}qTq$_8d|Bk9eK}?}HC^!ffwI1LAMa!^e*@`VZS`ZQJtjQ!&!m zm&LJsp9NQooZcCeU-!t#1)^_X`ZhdY1Ra?8-qJR%LP7-AdM0@d{ir6g@*mgD6G>@Y z2;0G-#m507L{4ah1a%X{czBJafm@Et9S1I4HAM#s|N8G@P9)4j9d?Kp28w?1U>sH3?cYnWZ_fH=G@t+91=Zok{dlO-Cg$IFq6JQ$^?p$Z3 z6duHg~~C1G!y{^hB-bYc~cdx>OT{wUdrp z4@3@*WeE+{?gKUYW1|t* ztfUW6jv9Bs7|2Gj{-DN2hS!7SP8g!8SUK^N-M30$r*FG#8nVBliBpfETO0-na}3>l zjOhTLHeB-JqbD@fha9SRcUoN9O<@QYDneiD?qn=A5+-_eRHH7);IsW73qUXgmdbb;da35<&IBV=sE3Gz98AcOm^gHpEW04) z#zN!9x?d&S3<8whf&;mLa~biZ5_={>Lnb>KnK0SBp%$M9Fl0|?s=g%NnO4@7S6t;Fy0?VRi|8KX{ExP>u=T^Ds24)cGpk z#;RK)`CxfAz+uv~-d&N_71%ujcSfT}b1%tk`RO%-rtsc>hwoP*3cNqUQT}#dGe|O; z)zN}3!Jswa@u{@5i`Sx^l4iu}TUB>pJk2`}63fOn;W~6? zHw2EB%wUZR?_AAHW}OeZjJJWeeak0nYXNwKYlg1Zh&}IfBB;`f=tdW>XP>&al53x7 zT8RIB>0eS^Vg$UXl-^91SZup#P5he-%{hrkD%K4RqIAwzo*ldy&YZnR)agwuCBAQt{DYcX%jO3NGT#Bge0M+Hz- z5(xgDlX46PQO#=@Ks>V>7?XnQc4RY$_qI!lfr7a_BCLO^7oGb|X;NsnL78gCa(%-9 zD;1HFSLLo?+^n#*P{LJLx?E0@oyl(U|J$6J#Bpzxgm;PhvVeNBG4n{h@$3BD5MlmY zhV!)Le@otrD7f+->e$u{YVdbW*ss4UKT=BF^lmO>H(21Xhmlr6h%M(4PPxqBeg`r> zEi%J=ghU8>+@FntfP#$3GrGd#ah$6gj=4WDd9g3jOe%)AGfT%sMJMOy%Qhy}-3BxL zu&vm95KCWj=I|O}RGT~C6HNb5NppA(j-B;m1sStDBAP3iEWCGXW@h6DRct8wuZ-3W z?X7DB7+@GDG77c4a#$jdq`+~C;A{RW3qq`W$rkn(1060NXTXCDFikdU3ham!(o4}C z`@iG+KaKT~BzVWIBCv9iZwPWLq%)%1BWDfx`2dZisfV8*q~6obvncC!th9%U7e8$O z7!J7cS5R5k=p^y%)5CZ2UY+2-xBmc z)}z{duqP3^(^b9Zpv6lwG2Tl;ypVvvd{vT$_!sdjP8X+XReB1OjGJpHLv}BUma!mb zZmZUT_UsR(f1F1R7?>EtDs+p9x6+=2`>07%x)^ z65bPxv%MG~AVP{NJRx`e(XrKwNuE0+0@;u`tG_pDWGOF`J7vO-H9Ht4=j-qr;3xEV zt|HA)Zso2r+Q1QzpAUm{TR{4zTTg>B(CJ~XFmmsI8U#hkie)5L6w1HpGl3VVocQFR z06SMNb`R{BBTj^8{7B8Vf;?GmNC0Pi2M_9Hdc)AU%p@edL}0lJPZTNZCNFOH4YT8dhP5)9wTUez=yCQlay+o@_|IeoNHJupSV&ipfmO7?| zKB`A$?z7$p?_UG?{Bu~FXHLA9S!e+n0$ZK^A@ z(9*;gluk~}K$EsPbr4`&oOV_J%Ara3NIHP|v*oK-Ypn`L}>1A*TE z95MgTS{5P&9{UugHUq1~mx$kpT#C&Tj^tg}!lfl+YXJVlzK74-lL6khs6tPOK#OYR zTf0(^?kK2JTv;^tpe>i$_`&L#(ibA6BWB88T>d7|vj#D{U1Zd_9;{)pknOR_V6#lEGMAuU!c~w14c5p zN&JmQ0x$*oC8<(|G}e^XcYzF>rraUSPCnM6^~lvFntIJH;uJYw&QGKSoj+EU9Q{{+ zkttUU)ZXt`6Iu{u7R#5V*MZwj~0K;I&A z6mIgw`Svy9MaGQ!;fEh(3=SUw-@JYs{*b!kisCTu)P>4 zRfwS?xF3q=2iU{OZ=K{uy1H&UV|>8}-2G~&T(zE|simZu9`JLKU|AeM&#WtZZFodj z8|ELh|BtG745%z%+eWiJnUi<6ZQD)8RMTYb++^%*d#cH{ZA_DG?`)i&_c`x5-}iU@ zT7TBPuKT(#R1jklA%X4pDC0Ec@X3(K^Gd+N|Mt5OZ0!I@NxwsVuA;$l^QMWeN$)Yo z+w*YRlfM^r4jeGPhVs(^^RN#q6EqQE5F?!CB8x6KQCcj|;F{XrR^$l~Cjw4)9y;}Z zzQMwT%C;k#b6KRNyw3zW>b_&)6X%N)hd?*Ox{~j1&Mv@YfNfc5CtyEhD0EC*d^0(d zn)_BG;bMgkj@%&^KUex8Ze3MZ@fgDzfL)VhH8STZmKtbMAMT6b5tR%37lZ(gJKE9LLf3=dkXVX|*9Ayt_qne3{ zsq@-@S!=V}SPuT3atz8%Sdn}BDN*?XCE&$vZec4(9P%QnW=1uW*&gp+^2==zNt^Ng z0gNEY@LF!K7$`ZI1H!dwa;fB=8vDUeR5W1z-{NV`LH*YN$J=!WQT)5B_tMJpzuuhq zFY8XZJe=aj4R{MS1cGPPpu2TjKpvC=5Bf6MKEsVtjbEZ9RAzmBJ#yJdfXoUZigYm# z2R6nI?Y^6xN!5>mVKTdd#3VRUb4ajxWEm|MNa)JRR22{gl>lEm1bCUd6pbyAb-XDy zF`_g}pz^(~O?a6+?SYmCvLCg6MAfpni?G5AQ{E4(o1N8Mpz>Uzo$F`Bvt#3ao}-V_ znXA$Kc@`aV4+jOmH?y`^uZ3~CHgIao+01IUb6j*&_{k^KOVcT?2y=M_h~=RWVaiMk z8id(Zs=|mOxO6io`L2pwJgySZvmhhZUb59@J?GUB4dpf^6yMy{?Q%;!B*=Fu_p+JLUs;89}(y>cM|{ z4wIMImhK7SlC@UMXvo*YPfE(+v~m?S*K6D(=2BS6_+z5^-1rC&?HqoB3jaGQv}EBq zJAvD&%0lHGv0$_x)f_(CM3A7Oy0L|?+8p|rmwWfCWc|<76SD5Onu*ys2NWw7DphS_0t^I?~Begd^xSWQ| zc}CZ2is0Rp{(-(MtnF0q~BK@+@2&ZPwc~T90+?9#tOd}y!=i_qg(Ubh%2XX_ z(Nog)(O&^6r(CTY!d$>DF?Xih zV_lFyx&P8kI$f{Y<|JcSv~n(t$TK4;SHAC{>a}f|%1x8j$GY_62f716 z+p}8e7N@co$@iW9gN79g{6GH}@%(42JF`SmeLVk3m-?s{M$b7rG@X;6&wJ9q^V8{1 z$Gt>Vcs8{ZyOVPCfR$1R2lllOT?5Eg>cJ@IS{NKNWmf4}2a?5)$$}Ip?%FcP7u>4Y z!)(GpAq`+Dph%5uyj)_0oew?e+)4GDM@|MVr^3qZ$~7Yx;L-5Hv~9a$M*Sp z4wI?S9n!mtEhn<)Jn9Rc#>(LvJ8nE(@9l}5VeRK)&lRUl0>FSGzgDjvdqpR;LiK4B zRatNeK7XU)_br&Wf07qh&$E8$+1ieJKSkmmP1CTCOHz{|kN2s<#GJI`tt%W8)(Exc zI3e{a{^@f_9x*{!X~(^i(}W`!i|0;@F_tB~*ga?OD!{lj+vR-ffVABw z*ScJ@t_CNxoPC`8KFh zV)h#{6{Rij1-vn0Fb^+yG-YAI9vVCUDR4{bBFuJXVc|EDkp^G+-BrboE-29CTNfTs zn3GpGxpa7nS8Yo8)F&b)CSDpC)!ht??|2$wNJ!>D+HJ6&m&0&=dVG25Rp^u$Hu1ji z_p=E==rP_%$x4+rHrfB#?*-Do3d`DDS@`3ogrz2@R0ylUa4_jN(Z?+~%r?O_`z41O z<_0a4{b~44WJHN)lUk#Ml-^_0CG+RhbYe@X^#n)WqQPo_}{ob+FJ9&B6w-|3)nTPWn=AOS!AaCSQ zNqm7R!Bg>cfd@^*fzBGUL7wYR6Y}_{o~)>}L34%3cK`X*A=NYu-2MK>qj&e#?ELW- zEAIv8e6RxIT+4NHYji$uOdY-Bd6lD4k=|g%m-6(#6fV5ltCT{v9FjTLa(HWCq%LrRHfwYx=# zEEXarP1i#k)l$Z79ajQv#uY=L`v6g2#&D3Ysx>F8OtYBdkGP51zYVZ#zDh0S!fi_> zC8J+!V7~4Qa=xN)%8RBG-deKCu2im~$4G!#L%lh$H|Th#NLghTlw?6V5?bcjlUv)r zwzk}%UM`E|bfyHTK7 z@!VE=PSruG-{ZZ*Ic0F@bLs-C;}7Yc9sm>~A?(5e&fx5L<1W8jsjXY)V@h*}q9V+p;&RIci#vuuyjU519G;QCaUU!evZwqZm5DZ!9S4=W2?*dr%7 z^}22sX~pN?_U(#N=Hq_Hfh+GVnL{)QAL>(M>c*Tki^C*(SEa?R= zLm0y%E$$?Ab^t9e&HFSn$q3+7r;l2IpbGb)xYl|^^;n5vl^*mIk@dBVr;5#B-t67N zY@J3`mDa?#dkp^jXZ@ET%HxI=HuQa>v18WRS`(TlJw0T%TUv$QvkLH0V)RH228IHW zRrxvii>1s(>h-n=i?jS^+%&DxdtlQO8eA*@9aSa97x+rF*j0!aXECxq2W!0>TBj5c zpmdf}zji0_jLBaK$7ilSJP~J&Z^gg*!|A*h`FRJ7Su6HXGq4>-nL8F6O3scHF}G@y zaAs&-6Zxw#-*s1p{i0=4_Q$<7{y%z*$6rCp7v969K;$N_-dYwUb~|s{J%4=Lf*SDp zRHC{RHN{}bwimp-+pO0bS%-@Cyp!=G=<0r8Kk0=ZBf<Xzk<$2!iFDN{GNzfU+Xp*erk*LY7?-T zC4FYb2qmPaGsOx$2cVE~DU(+<*{z=&=EMt$zvPh@GypSUwmcU$ECfZqB>Z(V)Epw5 z#cQ|OC&H#VrlXrfk&r+Dq5n(Uyzi^z7wFz{%u-1Ho${T_wV_~Yp}=Q#!q?*LQSQf9 z%X3ENUX4U-(r0SXKWlhPo_*ap3J7VOxxz&QQ`zGIpCdbPlv5i<_AnM^;#al!Gy!WV z^DqLYK9?ev7j{%h!S6WW!T=)={2KWhogD8AF218Yx;npp{dB=&lh%)o?vcT6eq&TS z&Oj#>w1!(NV!{LKGv32Bg}oJ9`=pf>!Z(l6!Bja($)Yuvhe_vwc#b`f?oRC?m9$_P z=hTkRVt{OY){Ak~9_QJ|VQ*dm@3et|0XcPjT#(bRa45vT*0@#F+%($k>~)r()jf54 zLCyIJ$e-6e=*}K(0dR4^x32#6hO3KXC~jKSmw%LnRe|}xM>e;|w(^HCjcqE##CI3e z<-$P;!Sjf9rZ-R#@+6ROep~1m9)Hg^`GAB+{ug?2?{~*~=idP}lm%ZJ*~!8;R28{F z=xVaD&{PiVhLXS+ zWoE6i5a&IY4Avw`6Szp0#;<^DvuaTI&xQHF6zhKo$)#y*lLiM4b~%oMys{=udLG}X z;9;8IehwRX<(+yIJxiKDzmZ4uqYZXPsQRSPff8vW=Sat4(KRCtP;%rEG-u#wV;TsA zPzuFk-=Ci$jlz%&Meywm1k9cQARL^>U#3?X-qqFiB-0vBN~y`xgdteYD1~vfMrT_@ ztC>v-uSOlR=cMEv?!#Adba+!%@iBv+T+%r;DPWK2?zize}($V)oz8TNq#|W_!qa_ z_3p5L7@ojADu|@23h@OQCU|`+8a%p0kg9OK)LLhGWelkh`ZAu_Dh>njER<&t`NeRN zo-1Us1$Pamiq6X5H(c2=0sXsU-VX^he8u&8-^eE~mmTLZEjtoaEX)L|ch2Ew$B!#Z-jQ0%>^)}67_ ztq5TQZhHfkX~DOm0h-_PK0hn6{8rNIzMua{=i3D~tWmRcvKzZ6f#<_xa*c0o>8b&# zKY>dn#g-#s3b^Bkxy)+l50&4z#|GrWMvisf)O@Z4UmTCko~~~!d3m&(?4Q(dI(R-d z*8|p&l2wGi(U38D>Yxei=<>bR6lx**j8{I44d*f@A0CP@z=o`D%^FAe`EZ&IIaNi_ z5g?IE?oOq27^J(8Z2tio-QJ(porHm@p;euv!W*25SWN5s@_l~S4$yDNK^{2JjchWC z2)qfV^E%ZrK7#%Ce!V!Pw$kRJ_4f(3-h24RW!gV?g7Afm2nn-@!iDtGOLjp6yfhz9 zD=O0iX?N`Z@%|1(-E1Z$DnCaM3LfOR{-N6P^Szn;7^~P-Zm>D=G5y+FG3>hGb!xs` zTd(PE&l2Yi?kpZ|9VYXKi&xISURZV5@>3LJHbCEy5b`>D3i65n3~IT}g#uo}g$$W| z(eOM9ROl&V1^}Uh2)^sY`d3K|ghzDOq?U&zd!X0M+cj@LHk1#mLq~y9_!w37VV@# zmG<70B)_M+WQT~^Wp)zk>>3>XxSrH6gZ>He3mcyN@sQ`uGK3P>#nY{2mfqIWI@+Z^ zj6$HUEQL4ZT#5=)>Md{UP_2IIL>?C-I(&dg|HkeVEa-h#%dr2Vf+v4p8Wc^W%TtjU zu^os>!Qk+=h;+quT*_h5A4!dc8C!HwnbTRyC*!q$zSblMt3q3N%R9dT7b_or)@wT2 zgb+(wQc3oot?YlHRu4u|zyYYIqcCw>2`yI4Yeoh-VHD?g7rp#8m##(!u1||dRtAmS z@xu)@V5(ESiPi=s^rwzY_C(vOl*Co#m@}ydBeybohsrj(!+4Wrtb#SYNyM5cE#G}! zcRp)zZDBE^&Y#gapen#>9?B?Okl{uJXi$SIe#c2+>V|Ses0{C`MbU00IV#hfvM4t+ zU$%8fSp0hn88Ljqk%48V1q*JZdvig&v$x>b6&T5Wn2EA?fYPj@zsHY}D;Whj~# z&U<;;rQ%S&&ENE#sL6+B^QVvAPJft$)5V&#te1vI-k=Z2gqW1WO$dGMEpH;r35r74 zeGCO34^8M6p%p?6E&fXGdd>xzibVc}P%<>jvCn{SFRp*@!@f&DhJS}$^dt*i%DR1? zXTCS!O4xa?;RlSgnpn>3_1vcT6&X3YAh3i`04)&GZ1N=edc^!@?-1`*Txi7R4EX*O z!VZ~pq{T`c<>sLiZ zO=E7Ph2-MCHt}U|c9=8;wpy6QT z8t+42PH~CZYlS25;9kH!sk-Y?_riaRjnDodqWxF^^|o_MGa`lmu3H0})dC(M9xyUoQ=#?Uyxz(BMC@p8WUIeitN+MGO>5 zK^G+FX3q^2F7tx^Ej2cj$nOYL%xQw&(?9E7JTUmaXJ2#!)0_GW1-=9EO@0QX>u-c( z*n$pEOapewIf3&%=2Q*R{I;1?)Gh_?hlgZGe8FFa?asvOL>`jA}z=S736P(p{s0Z__`q< z+C7LaATei>Huwx#fvg0tjVe_Tf9LBm>0H>==BPL+2pv^s)wQ&(y#v~Fpr53XmQGVy zQWBUp<$>ZU*gscda_H1=wO*-VxJd5IbeBXR-Vf40~8ea-45K? z_m}ExaI(LI&C1#_DJAe-n=H58!y6o8^sEvL#rp0MAI@S`$p2r1Ge;dF=UFxFi%((< zwbtM%$QtI`1!qa8h8kf4<9_Sr56Mqq7J0(UpbsLP$i-OZS}hrwXgW8}{#ebI>V&;` z8QJqGK~2a_iG^XcDG0JTSp4bBCC$EP#1>OKA19bYk=0iL*!U`OlziNvVYINpBtxb|A z-2N0|a^WaFMknRFZIbhvOeFh74oIo|IFL%C0iU>-VvC^$^F$;KB}E><Qn>Gn!J<)IRjt@y8_2y?V!k{Sb27kuzSt)ptN zV2LO3%kSuXZ3PFAdn}4wB6VoCnk;We8Q2GeFY++$%e?l4Gh3p?Nd3Ov(W4{PR zHq$Vd2*cmYMMNvZ&#UuN2z`Y=mG@TcUPLEsfiexY6li*g$Rj=s#T{CJI$uhzt!{1g zeA9~&{t>!&@D339c$$VtcB!R5^n6v}*`#xFLUev!rd7ZcTnBfYngUc0=e$*KaACHV zKUQp6#yi3;f?qS}%8m)FEm2YuIf!TY&g<+}wIjln;*jt;5p)`1XQ{eh)>)Q1=?xLv zZ_ZpklDdV2Ro=lL7x5gQ;gVCrhh|Tha{mx}8~yqTThA5`#|Kjl$h*U2-bOFY{7*Jx z={U7W3S;L4@-M@@d6(5A71E6h|707nl7QA=md9cF24?F!{q(0 zdh2)CJ7p2+U8)|X!WTT4Y*(Oxt_z1t<(TGGTO|>A<5jiAbLR44STyvAA`~D#92Xb$*(+ z5Vok=!-+5?IV?|-SEvuMeE>}fsX%$JqsUls0pJ`{1GCMX9v$;`YH~t#Jv}pc2@*;R`Tjd*;Z-)zISbkk-c?DM%;XvK$Lm0V9^=Jl z!nDLCCI7cCu-D1h-K zIu&Jq)Y5xsJvedLv#Ts6=e?&ICczq8@LCV0ALMI?xA`;|Y9*`bg|Ou*i@rL(Cg;|5 z>g!Hk_SL}3y;n}AlT?&)pTl!5KaS7Ap)xUiPYnxYw3vW5;Ro2Q@oU&U^qU+c9XqvB zB)4CPAnDyDeFi|p?;}3A_uDY;FaDXT2XTQQRZi`t7TWgi9JlGa5XoW%t>f={FL$e0 ziE(8t$cL3qLQc{AUuCP`ubGxxu6@sTS+aH9oH*&YkYC1Sm|JdOBIF^=QNeUU)Go6S zRxaIi2`Yz_w_HSgv@7t#BSoh_gVAVu@p&X5Fu*)TQ%vk zQWsT4xXfQ1`4ej#_ON6@$55h^6>l+B>+ruSr~g7wR!)GZQE_>re!(y)nh~=UeYY28 zB+)hX1@_`r``03lVOUGhQBtjRpZS5g%b}XR3>N*pZExW37$IePWSw#E*lbgeg(n^Q z?eDMdwM9yNi1FxT5MP9eoCEWZTsHdNOSchGX$=U3&lQ19GCgAD^KmM~mT>KxmZ}Mh zsTGoQ$F87#X-pdt?Cu~BC~;I2Qff!mh@`kQ(>a4i<<~X(yIB--jeHEk^l)OjfS204 zL6M8dG6YgaU50}s>tE`^gfoK^PU^6RK7>gn*_BmE*X>r*wg+VV27g@eps$a=M~tU2 zQZwMmsZtd-W&cfss~hSwAaI&%j7yC_x;ynZKXZ*O@WEHZ%1)@VtE0)T@Wr1|D#UOz z7lk>`Sts>_uAlB8iEqIHl+T|pSwx{Zdx+eTCVq>X(&)vEXd_GOhuxOr{n5;4H;Ev( zsGmv8$Ki)KTra!av_l;sC*LCo3~OWI1WFEs$sdQJQ+tnR) zPQZKD<190<)U+jLzN|i9d-+`8Sv~m@hjIm9sFL}J2#NNV@p1wwZ5nc#RZ#3fqqdbQ zl;^RVZHIwi&>0{wK42)OB1_GA)3K~O|uX%r~dbr z=dcS=nlJ@x?*u@<@*588U3pMwBe*o~6I9}?ny1nzmdve?v3@JF?zUh5!R2nz2XPZM z&XN#eK2%E(ncpx)APmPR%Y9-nx%_1=91eB3mHlKdIW<>;O1s48rZPWMw{6d`_4&^! zml&rvQ&S-rJ&%P_*JL&YWslgVe|+%U*Kt0b^4s4K4~#diHEA!4udD6%J+Zf3Xwk%e zE$~`lA>MrWn|e^cGAnmoQh%#r}pOEH5Vp8ntQ*09o^4?+5O>B*;+#C6Zcc?l7(+^XYke7M%B+3LQu ztd3+%p6Q~Y3XP=Z2gfI}NK@@OXb8v;*rp<$2zVp0-h}&{W=#!Z8K*l%h3*UqO40L# z+2Ma!4^A>N$<3GGUdz)!tb8v`da7%Ibb(Sm|Hgw%`zq?M%AwNzhkuL`5K(E#`VECU zS&d5u*UnRz@$=E*qnNgElJBL0QpWF=s_oFbG)xso>IypC0-pZFC1oM55PfkYa$OFZ zda;(5R?bf{h|8{#W&FH6e$D7Tn#EYm?F(!3@`C*Pblg6DtfCPS9UTYS{$jd*Fg`p; zHA#9`;12bz%|LoWJ_!@vO4d`Yu`;{P=)2M`%ZW#Wo2oNerb%d8BcsKtb*zHCfca-9bM|14q+VCx(k0=&4~ zrd7ZmGn>8uUZa8>8UD^|(wZZPGYG*7wb?1JE=@*RyH(qcQM-XxT`lCSNM)uh9~tTa z4E_0jUqh% zP4L`nRXrIT4SS&Efs&wm21M|ZrNIiv2-Yz?4a<>f>OR62_m9LQPoK++x)+B(M@q&S zyQ#^hrpWUif}~tUJNBv#0BSSLGikFr1e&@G*SmSJIAoGvO3MM7#_q8=Q`V>O!mcuu zDBo2F2EHq6@9G&?6W_z4@za64tdk5RttZ4eXK+Ifk2tOe&)_HMaduYY8A9!rhkuCj zNQDix6UQpGf`Md?#_c>18PGNiJ&@!)hzr=^ck{`IV(C((o2}%-UByq?Gd9>Nh{Y+q z#7`fWofyh4zR6{~DgiELwb-AjTLSbW3+en^A(o>tZn;OD$=vUf%P71R7F6TQ|Mt_J z8NUJ`!liwQ+9sY{Hep23VnMdS@i^XjxX$csQ-Xl3>i8BPwgc~an2^Dd7_%{|SDqTE z_9973D2mu2{f$Ft0OyXWf`XP(E!8mk?tvJKP;ydLn;j%J+iI;Z3pBIju6--ULv(si zmNfF%CTf6T0g4U1&y1lx#Mx~I_ zMN8zuQ}!#EbpM$3>)!sMZFhwgp-_|kdLZ{Z`_D&&C;NS!gzR`~TSyzJ$C9WEAJMAd zIWiS%$w+)CcgBucWXI2jY#&qS}t-YNkEJy?o-VbyPG|Ka9|(q6UGI>6DiNqzmXGRIDESI^UduQ^U78R?zom zd;BpG~Op_K4 zCNuXMKc;kmjD(yNeUSb^eXsl-(+)3xClj(#sFfbOcp@z?mxwf9$xeb;8hf^^%R+SS zDgD#7uf__=O+kFm6a)g3z8BDzW_hzEwdQxJ4y8Om0cRPY{-g6*z%;Ie)@tTzaYYM( zA`k%|svR%f&`R(GZx2~<0S;hr#cubRmGh#?YPf6?{NrEL*n7zLMa}Mn;nMPxxU2dE z%%?euYN5wJPFW}=5|$$VB6ND)8p>@yxI1)5aP8xLc;P`Ju4n~%Jw@A6C%UDt4$$T# ziAlwzn3{DAAIFc_PCr}l{J!j_6&H4DC9n@2JzyXh1V20L)m$jgJJ8;MErgg?uV7Nh z0^(MbgXb4g_Q-=bcn_9n7|Fk(hXi9z^yKOBnD6Vh#%>m|Y^PbjI*J%e1ei3a(^hDl zGr64*eCBR?t+4dK=dV{{W#ZB$ub%FWZcc#fmn(9~D9vNXAPqDb@2T-IjldhLh0}g; z>c3tbQ>CX-iW*3F|TIG=d_|E{tBk^Xi3f)d^e zS(S$zWOqTzi-@Zc^k_Bgb6(^qg5rUZAETGFLJ_$Yj35+JAe0w|pU0sjUt@Sq<0#5! zHI|-y3qn)vxTZsdnXvVCp-w|RM55e;;HA%Z=Su2fD>KJ&AK&5fCd{iK z#B@_bHkUa_qco)N7)Ad3!j2uI1?o8Wfb`!Z!k|$K$^80v-X;d?aSMQ*%CO(sx3fh! z5G!cpdHg3Z84CfQaLmOQcisuk7AK?wFWc7ueXh3J_PdC1a;9P=sjwgsT&!%_MwhZ_ z!E@qnFlU~%Iy|(b<~73IGgzTa@^9;NZ}zJJTemLX zXsf1>3uEzwZ9X)@#BO&6+FqNA@=8TG74E+!X_pQMZ=Dy?5g?kkV+;O~m70V}+gJqLz-~;s$ct{RUA1z_5ra7~)sl z#*4>PwqhF9Unp|LEh9gR?;GCD*&ds|AMeIJo5NS6@*|sbbXQGDP)H7Ud-W=W+s99b zMxg5Mw=sag{0NSYL6|9uM{z>886TSIQpsBhao}_s^xmGv6nEfi^G41u%vOokRC^$8 zDN8?D^G#f6s_QPT($dv^N9t*Mn5bOQwD1ee-)X)>gTRT3UH~0ErzdC9Ps9CTz0I8= zA~2_~k?SnM?>7Lw?B4n|J+rB+(FQxQ^GN*q(DS{3gJ{IK;bQBFjSq9k+$U!jWR>Gx z0KHj1)d3;ErqY-B;k_LEbfUlbFZ6A#4uO-CHyW<%^@QWB`$IF!e+ulhYh2aaa7=6R z7_Rns)bHVK8Sv}A{wAh9FJ(j4*ykP+Nqf(f_FcQI62L~jTIBe0a>^2yK1r<1aB~}Z z;7>~um&V^yaavy8^~>~R?sBB?gWU}$h9OYCnK}y3S3@3j-xZ50Y%bTqoORiN9?^Hs?|x?hZU}}{;d?UI z6LOr8nas^wbE|QNioZX*%^)~$s5Kq2mp}Zcio^loHbZ)3F@iph6ghY?H#))gr8CwI zsm`;@7BgQ*JOj&ncXUcbdMcdcF@edMUE>00r8{cDUQ;-CO?T*9j7i;yG+aZ1 z*?9lpeVkMeg$ZU2f-Vf>r??oBTDPhs-`p$!aojMGU0Um^6)^6d%K5@2OWFY~f8ZNf zLp%p(*vHax(jtsA6^XV;Bj>C&DqmsvO?kKUC#9r^;orOZXsFYqB#erz8ydLiHRK>~ z>;?IS$vfG6U(LCm_>qq%I|(u#jozIJotZ|SLkGla{W9x({+=6H;aK`JotE^H;D5Dc zeA1?gKl`vet4eE>l8a_(&^Ckeb0XC`ZfT2H={)kpm#R!F)#*5^8Jo#*G1y1lPXy;*&A9ojx{&GA>Yd?vXcL zGE>14Y;Wjf@!Y9u32A-I$v|1sncCX~o4jkAC##QQ^_UhId|{36KB52_J7@#Rv7tv^WD0&)&f*YVG%1be+#xa<1J;< zb&aJ2e%PKU@DX2?62_Kf9uOAYbYN%yImEJVn`#rbOwU#%7?${Wrwv6Rh&)Xj__hIy zB$u3=JXy3xw*6Ve(`%w%8A~dJ>)-t%_E~5Gg;LC3P~%9QQmy-|B-fX?dGp!B=V_mK zZ=Z=v`y#o4T_?Veik?5?B{->r$Ud)2=7yJR7I-ugMJK* zIh&)Yf5=6;$h+YUW&)JmwuAlb5-J&HA5}!&^2RR@zHvAX?k}=wE+`hh;`7)G9zK-u z@%Z-&9&GYrgS#HME;=6^2AZNx>k8QXc9=Cm22t4_8=smnviFD1CEr+IC0?d|PA8m@ z4|PKvI^DG^!%i>i?^Dkk0C@v>OdX*Y0zm}M*)OvB3-1p@3ex$Gd-202C}2xvW#)z1 z@g49-$M{;m(p})?;xv=TMxfYot7h7Iq*gg{bl+}ev$54ugGicN#ibpe&ycb2z9+Uu z8IRW)8l0q%fPT<(1we1yL!3W`{{)!WzT2pi%dtVi)%Y*z%T4i^^A)&S)K{WY4k&Ex zXkYE=QEFFyiGkE~OAKk>hsss#cWQHkjvSw+Ps4;n@X@l$=-#%KWH1r&x$89`-h&Bk!;d!{ZoaO8|;q1 zP~j?XEfbx<)#La0)`?&aO^e(m(2w0rM87mCQCWa;1gVEdtZR+}-pmILEW0$cc!gmQ07Or>iiy~Z=V4#&-qgFve1 zMxMpd%KDePDoXaIcz9};zC9Rd`{OH7K}K|=-_6MykwgY@u|+#O>WH^ z7sp(3OgId7T^v-s#Is` z^5dTI|5s6|52_5YBM}YK&6OuHk4~O=ockB}mN5>_9-G$YA*w{b7 zw`)qKwPCeZahg7rcv=skb-NvS(07Dg3e5w5(B*(>5h4$Q!W(Drm1=2jQgp(;vFW74 zW=5QGXz8t_E|%z(JuG*#yZR;A3rLl+m>H)XZSd0P`z2D3BQpOyNC&(ixP9G}<60@s zKd9DPfsClva>-5s`^ zf}1n%6%-UM&v}f^lxBYnvP)QMCG%CQ3et1tv0Rw;U9XuIUai%~l1DFq6KT$4I78c? z?-oNI@7t^KkNcnO+YZ_koMvHD-9UF!_qEz=zZz@wa+*PuPGbpOAMdsYZLSwlI)*N6 zQ+%gTJU$;mji(D{tewgRrY-z5X5BETQ0l-@b2{HGlPuqbtH)DgaPQ?dsHPR7ge?-R6=A@;+zY{z^I-(`EU zY#C}Kl^}Rm8SAfZWsZu9Qp!f$Z5rZ ze6MHiN6`uYlqJ20s1JKjza+rd!~~^0g46fr$AosG0nR(Rv7iZqGcOE8LZnW-DK9b+ z|931Q;SL6OPHt*qMmmET%7uIu$J3QC7vIXA48fQIH`JW=W0I=TpRu+Hf7xL)IG8H^ zJU%ohUd#}M{k+KQ6nCz>TET|H-F$vBtPu9SbFI9G(=2AM7c%Uwf!K)~_X<;))0xSqaNYwc-GH(~5gV8VhfO!u%KqjO$Hmc+_9~YT%{tpc9}`{%#C;KO6C@Y5 zMAB4~%_xjzEo0Nl$RoN=upau~zaA(XoxUPPuDZ|OC8tGcYVV#EYwrO-5mKYu(aQ8kqoyQ8EYU$rMX_$BX3*8Hj~QS&s5cvdsd2 zVD0n!2uEsHvg**Gq?Ui2kyB2jXvB5TXN`ZSaE5dT(YWLhU%6pp*_VKLkknaQ1l8B8jT-Ru;Z2# zk({ylTzDzoHW_}<%(c!XzP2LQ$?@4!6xjfGI&iY@A=y$Q~&j@u(AC&>!vGZ zHREUt@=C6l&Zhdxzs5tH*|c$bdTRsK9|g+;SDp(lMwU4)@O5FVZUL)HT<|(C>e@e) z9zux?&&SFqynrni32$rk7}j=}PRZ7!31fGWlLQK8V?4e8zMl-Rvmmas)QhVb)gcLh zMNkWAh_|x0xPue1p(b@N*Gm9)URbA*3x$r8Dy7uj`|%D1f{S9{KIbkMnp|i8p)%|dF#E!wBLqM%nHK?&QJidg7O-V&hzgCNtFfgi_2 zSN+4&*Pj2%M^<<6KIkEby(%VOVsNb~!|8Tuf!~O$j=y++HxN@4r(#;rS8eZ#$kFnO zGr(I?`5(mg-+lNQ2dYScXq*9q$Ekt9T?_L|3T;t>w0%k8o1!!+Rs8KUC zIjeai&%d~hl8|~l%qEzmf(^KsmCR6vUm^9*sD<9T<^8I)*9xH<`47Q5KU7C5 zoKSKTgJ5$71E}<$9;iNo%0Ec`6ROp|CS}Zhx%pibJMGZ&gKvgiXc zv01+wlI}^{L9<*j3#E)VT!NALW(*7b=-z{yTH~u$L~v^47^SM+QiuaQ(#!c5gJEp* z8k$1@6f{v)X2{r_kc^$D$GuvYGVy*<7T1_)nH zQ)RmfsD9&i!|C!|&B{#l_t5>@fU8D(O&$4$&=W$?+8aa>sxUDn&1TTV)glJb1<4Mb zU?mBuw*6SrL_EMik=%RLi>fHv%$DnHnkUC_xLkMzKeH?S!@Jng4#s6xKS@-(Z#uqk z*y*`1YS_AwnFZxd`+9fa5om#iZ!#sfK;CbQs7nMOl2uWXn%L?+(5G{uzO63Ati(oE zLs_M=b^dp(FTU(9R6Q=MAiw}}f6%d#N+F4q!Aod^ zLR{Y|SFF8|`vnyl0ee&}$42U$N%*#N6x>Om=+CviD8b%!7JFufwRq&9(Y!uCxIx~7vL zUBoE9BA5_$h{X8tjWu;uL@YAkB7UJ*I4pK0M!tvj=G%05PT@vdSl9FH^S?HN-gm?4 z@Tx`rn1h=_uBy8-t6nZrq3+R$h>@uYPEz7)@raVZ?-+@h3UmdhhKopEjnzWp)B323 zehvVEHHR`SU`wHC_k%6W?M|E{UkJJ;&;tKU`mtqxTI9NM@WmImoLI@HHgyXJ9xRr% zcdOUeI}RVQuuS-wx0M*M59?>TiLsV`aPdudZ?Z~G*fp0M_D?GcnjHI{SyFtK7#6`5 zu@D(HV{vlX$sL+sI8;5MY7iI8ltqQzOs~{60~^Ft4&sy&@twerLDjDIcyHkJ;4B+8 z=Fds4w41jukXzQo8p^KCx|Re@Xh0dT-B-{KEAq++#&$L%$z!%Beu5H{EMo3ovO#=g z@u}~`RGc*z_8bqTO+a7o6>Px~#5X<6!lnO*sc#IAv|GBKWHPZj?5JZ*Y}>Z&2`9BR5+qRtvC$?>Vd7g95cfEi5+JE}$`>x(qd)2DitE9=~?MfWs{$4meXut|xLt+X2 zY9ZgpaRiEy$mn1dp2uhz{eN;mevfjy^Z$g2YiJ1kMMItY2G8+xG2Jp zI5B`_I~jL)mDHNdTZz0t{S;wi*%4N>UwK9pGk2)}0E%QYCRW)WvVCIvwi2=jp`+I+ z#rrw4Ny&wKWY0kGMFizd+WUVjMoM7`jR5}(tPyQG^nkd@P3A2oXUV{(SF1tJo zZG2nv25i>NX)liE+e-gI!xS(Prm2W;?&moKamvIVIA&C;btH#lFfw1zb6_3u*oaD= zN=+FVSpx?zI^ecriR3#Q;h857!rDR>h%#XY5={{b(a|l-ur5?tmEU>fIU^k5-VQYk zFOcJm1SG>YI=v$>=yB_Ru)~AV8aTN*k^K^r;TNK*00PxC2DH%aYr9^z0@vkd{RE7R zlG(XdDYkM`UIH#?stV@I0j&?1({P^}Emcw`+miU`?Tu)=z*2+;mn zzhc4zTcA#;eTuhTpgMZo#~8Kyu2u81B_sp~jsyBRvE4K830$$UOE%i(eYIv z4HyZRy7A^W<~*{Tu%x0<)RtH#G-cuDMV7`&Oxp@b$573U^ehIl6 zti|Y$3d>E91eQvjh{sb@=3PuW>MkC+%}Wgj3yHiV_vg>`^#zf7nW;ld-W&tcq%j9l z$;eVGMT{v6UU)g<9XV7eDRdPg|C~a&<>gO5YgbzEmOW+iPiL6K7Cci9CXc?2h#dLs0 z*V!%)q$wi%Q=??Jfgs)lXrlXYOe-SAp7O$$0fFQ>okaM0Ja&jeDo==*rqpa9-a5;_P<4xkGLg>hQDhG1XUE?J zv6C2f)o!~P%t}XwikziIj~|KE7rA1nkE2#GdbP~eRT^f;Yl<994gj}tdLE77Fb}4O zc3<&bGP;fqB-HQxT2?OU2LZ;hX%655Jb3i|2<2pRfzP_L0Ws(Ypmp?x%rvrUUnl4(y?_~vfqEB96sv|86T-g)8g&SVe4h$+s$k#M=CR5 z=`%xyM~Tg}!wMHnb56k3%6Np-Ko4u;7_3F$a~ zU0@6nTae%1vE8$}l9w4HAY%vz36YG(z+E&A7_U$C-YK&4Ci zLo7_?p=?=E0%l)fb4-~3sE_$~>^+V1CH9}Z%;E?D#j-mc2ra^r>6h@2`fnnOt+q)F zT=6BmL*%GB+SFur46{;%rNWB~=C64D-`5gzQL)J5XhbICBrbDXOX)4JLC_fW|uM1RStC zBwkM-8++Rt9py#@=m@g?Mut#ZGMN`q0>6tpTx+Zs$`+{mqk+CP44#Ou6VB6!1QXYs zd9t`!TK(lYho>q^o(m6=6e(mk(1RVf#{AA@|NkM)?N^A^;OqvePJ#K-W%$KUe&y*r zr}%X;u=h!oEVfd6BpvYc?70*ZBSS{f&?w*;Es~R{L|7dy8O7HKHX@sp<3>fEa?Iea z!8TKHJs6ErOVLwc)^3u*_<7YfEOV;jk70B-B8gSpZ%EY~$=9{*@TLt0mlu=2{Ml=V z-&42B(qtYtzuqgH!;JT7D5!^Bs$;1_(s{&k`3D6tX{SWB=l5`V za54V-=$imA1>qGp9PHPi>3UeCDCCvjZve2q-`Tzr-;7drs{)QfE#VDL*d%I_VPOl? zj;eCpN~eZ~M&?`)t1LHj>;Q08aygFTamk;0DdXR(y!+w&8SGrI1fK)x`xRC;g%@&3 zwTf-_LKh*=LN-OSJ$ZzOL~|=e1)VYY{A)Cb6}xFlSR`w1tpXW0SKuA#bx#+P$NEAf zt3Dhl*>0(WE;Uf?$C@|2;Fkszso-xPpNbYPC*r;mF`#|p-hRZ|>U-?<=r^irCAQ>$} z+1Kg(Q_lUT{_q2$ytj{u_TG$7xckUXA&jJ@bo2|{JQ_+E>9t79& zz4w45R7psowlv()@C`0s0`d13XCxm z47`5}|Btm~Ay)cONf}d|YqRqA$lB2=DvW@j#!k`t2eSAt-}cg`g_=s=L_?;nckjC! z1Nnij<{Rmkkiuv^$x$YkiHMy93zy&KP0j-4!4NfHgu+9$$Qpr!n=Ec?sj0rdK%o6Iygc!#* zH|zNlND~$rCM?2$ZYy1N1mCb*p!i|{bApF9om5^bteJ=gvICpHSv%h6vEd~*pTI9x;8(gp!!nV)$7Yj^z{jSV%&G9!pI@BU0sj174#Lo?@w3cwjhdlmn?W9vz4G!jaK#QBWZdjh}-4t$U_`Cg9V}A|?E*lkQTnTiOFE25jaOryD(w^X| z=-H9!5a>g%VqI=(f`kbg3^mP<2w{?#91AU7O4~MS)x3Q#u`48i6&aI^W~2weh&z)> zqtc-8dtT7|WfBPZvM4U3!Nf>DIDflvzok{Y)k<1lJS5WY#|y&pocPu*^Ry^ZL_!iwT*aDh81eQ1YUvoLB z6$kd=$5VCBI4aJGr8`b*zDjdhOr^=I`W>u{nvx&{8@)$jP)b@LCtv^*iaJRyX*6_t zJO~+p&Gy_2bS0uBs47};4pGicdZ0hpC1sYPf|}Gkk*V^Xtr#)V>iE#)*(@j=K9>2> zmLwe5Sbv8M&R!*j3;dy!yQaRx)&3@2u~=jwbTwn%Zj54-6rEVpiV2!)B~>A-Pt!vj z)gu1Xk_>1I-Rce$BO(iVQYt+L07fD9y-t?l{#)|Q?jqKA4SDy1I(uv*+6;y!_1;N~ z1RTvv5>Zi8#uHkl`>RtJy#@wCPM$Y4veqH&^<4@KJK|~6y{g(E1`V1UqP$qg9F2Yt zwyE`q)5{0%;-AUb&J&_{mY}HQr~<>xWCke!#$9_@NR0&LL`2mA#xlGqEht608vZlH zeF_SH+5R-TM37+zi?CzI#Ir+GRB&&)CX>y}5%cuTD&+wrbVMqMIEC-RFPtdZES8Xj zj!8!;k~r8s8MrgQ)D8XbE#v^u>EOq|4X_|d8BxBuO3|AfZ?RuJDglO~1>i8o2dtak z@EPlZuzLq#170>wZ|i7VEkbri+$VNn>tG#ySjb*kJ-tDKHUaR7r5 zCPe$K7yzET`qSuMp(n5fno$ z6ZG(0j;|#NDHGV8^e?sgd`NSlbXYL&I7WEk^sl5;Wi$K*5{x{)*FRKej0nSJVR=qh_31s{eNbc16+>f@Cnk^sbm_) zK}%x;^a75zm)YoQ_C|152X(kr{e>N?G1im+&1w8#!N#N@=Fbk}dTx~um$DwkXP68W z5X-eSWvQjU_A{aWw$Cf(hZZx@AuL^F0!wFW9q;&L4(!Zh#DhW7IhEn?UrTn^y9Yg; zrwIyL=6zXC5+wt1ZJUn1+5==Y+XCusHo_hHUcI%?>Ox;^`V?Or>c4%pW< zvi#t#rBTD(gTkEj&bkz`DV^X@r(PgkS8t-x(&l&Lvb`LpgWD1p3z#9qyldM*yNAsZ zwIF@*pG?@#{h}=3jxtj8)>)Q7bYl_(BOI)$wHKKgT-;Z+n*q1_Kf8H^)Odd`=;;%R zmK`&zD{Z$otgijZ3aK{8Ux+tQQMR+5E)rO#UB&N{{s)JB_~pNI_xAPG{JNt&?YK~W z-3!!;_+>PIEQss8IwCG3HKd}J8I?mkIBl`w?Xmb}|0msYDl&oZoccm2SYBQVoo^<# zNqu2aQII#vAdFw-++AtWGtAdqg&4J{YJpnjOvBA($8@M!0yz%G`zN3@~kY9FTlnDn9kv`<)CUYi+7a{u{>n*dx8d zR~nU7KLs7_h1sx=QPQA|K8k5IzyC21JZElFet|dN zNskT}Btk|9361KmgL(4F5HsJ=#;ws4AWi~gMZWaeS8BI{2W58A1(J|u5 z0+`2mVD4?Gw>HAOoHanaNVno%c(TBMxIP#`F6xXP_&c-)C0C=}-RQxUmKxeFj|?ds z*->-3hAbi-6t(-a>cQkOR@veu;JM?6?e_OPo+tgNDfDmW>sxZugmt4W<>)#?lKY1ne8_HbMY}S0IR6I1r~XZOP{LAlaW(!iGmHyzurx3y>Y86Vm1?Wod%$Iq ze;NAMovreqArg9tIVrKN5gOR~KmjUGW0zAe_29h(1`$)A`}dX17M=&bzc!jD1>wuL@!& zeLmqp=Gj!<_zx(A5dL7cy7)?jnyX^!Kmy9jBA*tp5O@}qCFSwXqlTF~&3D8fK>QG8 z)VafB%LPL`L04<>;w;DS=b`-m0Vgw5d+C}CF6t<;;>|^*g}DViN;V)!P3fr{bL^GLJ`F3euu4y#pL#GZT6wioa6+US&kMd z>N9sSF)K-uSnyN;7R*hC{o(^1%{1QeQkjMbNGq{o5I@F~qjFq$3SKC~`r7qWH~aZO z;n1xCUAAin;=xhfD_K$qeS0OpT>QRvO}?TVIpO=Q6oG>P^W^Ee4~- z8hZoA^8F^5nJj6x>o}>?4Jx=JD65U!7+WTQpSPkECEerxgSNVfkhP(Ky16r`bXR(x zVRo@%C4VLu7RgzdpsO5NBjnaU;;(OgA|G}t(O4rTwO&`W;PqB8tdbY_48Dc+4MsqI zY_%pKzm_pBsb8;I`#PU&_LdZiP&q_t+;W8F`W5~jd zMq<-9PkJXH54xq4*^I32fR;KDf{>r9tEM!NDWS{aN@{&bJmM^6mN>lL(q4+xkS;2@!FID0Rw@NXKme{~no|9$=cm46(faCY@VKv#?eO}6{$Np4 zO&1^-p15KW4@IUTDHIJ8F;_S|Eh$zOKdAOuoqeU^rOl~=EB{J31|||FEou-0>P8Em z#HOB5+nL~NSg=#Jiv}^zpcaGauT#k9mAPvJZ&|Nq7*{?TAq(2*6neiMJmd4KruT96 zk?JBcR)g!vA6o|^-(B8!e#GGNh9Q_PmZC?^gXnN4YJf5qIYV-Z(yj9UA+DVmy9v+O@0VC|Dw z8}n6PMh<8vJt;Xi>uJ}+fLe`GHTro>v74kFvc<7uH~;&yEs2}g@QdVe8pA`;l>E#6 z)1zZUEB4q&THmPTSHi8V1}4Zec3c}iz9bNZU2)ak4UtSzlVX9J(dBLy#@0#_VmGKr zdeC`_$sa6#_3AR+v3_ojCD$u;217`y{8=82B_PMF2E@Gq?;_@`+r|DDkF!2yTopRt zt1ewV`TxLN6abk{;UXjnNUOX3?Ha}X9!^)V`pCM@8XYFS@9&MwV=h#1D1csZxyB0- z5!l7oi0=tabB;QKqlkOl~fcT7JS6Ml?*#c%e4-$p#qh5))A_I1@ zs&8}G6ka+*Tv0yJqBUyGCOEP_CL004x;v*0KTP0zo`SZz4@Ur99;-P=!1H#Hvf2k1 z<}WQXi?Z(2K!zp9X%2Sdq_WFVwg;4i8t5YMu{7tpc%BMnS$2x-Btj4ihBnpO&_WB_ zgP!s(vnnIoC@1__D@2?#c38YH6uLxuPL!!8$CSv}=;c{DlDx_b)^_fmLN+|f+QI&M zS}NKnxUk}J;-tod!ezpeNIB{cylcNJQnG3b@O$cYww#fV4i8@?`NK?F&9d=k&LcXV zXXYsZ)4`R=FRDy~@Z?02`R*E={OEvI?uOMxgCAh9T%^yxka6n)6bm5fC|)I>m)gKv zB_A!r+)VbY5|L3rFcF&4KX|*}HR`Ex>k-W&!(> z*fAyW?Y|918W4VxTM9Z_eM!5>!eT?&?YZNtXaRoTcOFc=5OLXuapS&)xL=8`HtWq{ zZm>jFe!S#vbe`u0s1n4)$gtlAdk|kT`TJmk3&kU5IKt1E9zxqJI%Yteh=|B*r%Qqp zk3DT*3X~k@4iPJ%AY*HV<$*}*kQp=IW*G9mw!4x4~46Wa;BJ*QfM}Q0cM4mFmV0Kb<6j-E7)Q`w9pO`axNcuH@7$QOo(Lq zP!c7YZ`qgGdAp1{45`AgIeh_oFUm4BNXiH=okLvFc zLlpH;;3e8#&SVp3t_M{Dj)*N=-UoLP`7H!_Ciz^y4O$I(`d1-)zXY?9gcpDw@-^&H zFAv-m={;Pi627;p{V&1irzao)GnI*e()A-0>sPyl(iLQP+9SPnKcQ80@;C6jV`S#E z4sMrI>$RADX(9F@zUNHT{XnhuShH$>o00m}ey=4e?Vx{Qx5(fym5}^$LiOl6StVO* zY0tmPyPzKFxFIBFv@4qzlbB*9sPc3gNiI@WujpInvY+K1h3ioAabf>u5%y} z1}=y=Y+wujr2Bn%K5{1j)3Y%%C-evHXK;V$kXGdtRr29-^$fVDWH3RvpE`U)Ohyan zaCXBjk+A&ka$o2(D+625-G&C2gy&n{12qjtgmsfNX5V#QdBBqv(!vhS`r-j;GA*t zOq(Uw`Rv{NSpK(qs{ieBlq-wN(H@LDPAB#1P05ON$mI*MH;Hk+{+Z9mR<^lPbbPGY zy^LN$!#)vF8pF$&#-qg@qw+^R3TlvUFdo@1@O@rQCqpWPM+PA_SLF2o-1pYGi8VG5cywcrh>o1bsE zTjH@Mcz0UW15(9F#CvL_S@p8}m;B}chbBd*UO)FrLS#?G){G%9=+AAX%@`TaCt-3f z8Vfk*%Q%4AEguAH84!o55E`c!rRwmZ8Wn3A)C}I?(tizMw=~11>D)sp6O*Kx(GvMS zAif!-GV|ueGP^@XpPdSm0F`;ho9*@1!O?;cS2r9LtMGS~yH)=D3j4^&A+1bH0Ruba zx*7ftGjehy%eFOv>{!)T6r!zS?cezYq!b!*h2E9hvbUcb4-0=3xbgnRlka ze0*zv=yeOLW4i!-9EplaFY>ItRVcSv0xZh281i%;&zsXYH;*TeP$cLSCq|k@x9TXD z3AOFPhRaGwk-_~?E34PD@@Qx0s3jXKLG>U z5o@c7{>yo*Q z%@(%Ry*5o{v!dZ)dSUWH1O08Ya8T^fz1f+K*#j*)>m50lGIMtRmIAO|hyo=862vl9s2RAb$plR<{dc1p;~h<}lz8l7X$fq}ei!;QT{CDq^y}5yIGKN~ z4P7+n%dSg&sD3{*6j{_ZlQLj{KHFP}hDKS?ykxt>MkXI!18YP)&-91B6^cdKn7mw+ z(VooZC=`1cA$LK-+nMk160|aPmC%}8`$PVk2f8Z3H>QG^(&O0G z3)Qs`z0ox%y&R1#3#0I2cYIEAGE=x^A=-^;EM$3M60C&1o=l7bGbH1jv$TNb5`;96 z6`;a$CyV8q6lxm5#B4j54Q*U_KtxD~st|u&6z9yG3b(_tW1h|_dMcj8Rhk;pJKZcq ze&$IMx;X!5gsf?we7EUkLyj~O?y3S({%UJpl)54cT*frlA?wDDX z9E@@`a?Yi>NA5}*!0)Lkx1;gVxdTFG`VM9Ca7j8M>hSqb&Hr`7X*pzQ?0_KFun>^pox+3uq}o8WL&ql^xZ5?dV0ZA=N6n^$nh%Ebb3wgOny> z!om=#M_^mZF1J7NwOU!0k>T~PBUg@1$365}C9v35JK$yg%j|m2ngw)eZ*A3eaVjFl zp$MgLy&qH#B&IotB%tSB#{h)6ErUX3nV)y38OmkFNnmlzV~9^M0737A(vU>lfo}n9 zjCy|0iXwbrQ^=(;6cu5;nwtC*l?8^$JlaK7< z*+7x&zll^nCfkP+2k3E`yTL2-QCL>)W%4B?Utgs@DUC3zRyw&4`Y%gmMG2nUx5Isf zLUQ~JM@ILO_z#IkUCa|9VArOoOODwvm_p^tFY`}yP#qgB2C~a@-X%#?3eIt zB%-6GT26UwJWP;8-WB?J79(8s*M~9q42XD|5}_ICS?_!?qFLbF#x#7V8=8#3bMQ^L zBzYETj>Q*|rQpY(<#auz?JnHBbcl!++Jku;V<@@ab3E*{+DpTQ+=<8pQy2a9@PPYFS)4SlofCZ>@ahIjFPkdhNjsh=u>0Zy z81bc}LKD-lk0rK}g_`fNOUG*5c=lL+9o)mo%5mE2Q0WG(>+f00Gt*&^)&;{6F9gOe z!q#);$?xptZfQvabq$W)d-tgq>wm8+7F+hM$dv&wirTq5Pt5;xbRIxk-s9k8NJk|= zUlUIxV%pIlz5EAqwh|yK!$u8@52*iWANBJ%t)C+a|AA8H8qVW3V6uq4z4?-|aUFmm z1{Xg`hI{9D7szqQ*u?ws9b9Dev;13Hnp{004))>!OzRNR(3t_CVaD@pr!^xZ5McZL zOp4A{_*s$L0-pDmZ5qS_C>%9vOZ}Lyg2;HrH?sq{FpAGCeJv@g`QBcVm~Vp}k6B$j zVWt|I_p2a0k#pwtY@=G3PD_u< zi`Ui?6Z&5Y;jn=Kdl*{Q1`(}||B}zF=wLHjx~?H(AJcR$Fb35Xm#8@BO@f*OTPLnl z*(H8rckB16D;q})zkvy65lvxkw%W|ihsb)K_t`B!lR_~76;;fzxgr?X-r4oBl_%rZ z*FI6RkuoGT=E$tM?#x}8^*Q^bc(yaKzTqlw$F2O8dnRcGk8M$BOI8lzW%ti%+)it8 z{I;_!xjXJ$B=KD^W*)Su>l+R0lVLV9&&%l|I}SWezMIQ9Ms^i7GS*}BkqdtY(I(l_ zoqAx+RhH#{q8Th)S{V7%JAS66zSdyA*$OVur>)PNnk++GEtr|TOErIYe7$)?x3?V~ zs_+8jc%OVEN;(JS$v}S`&qdNa=&f!I<@0xK-<*d}{D&F`Q6~HizV?X$-}#wt?ZIX^gOEwwEMna?DQwW;1Tl1!6!N#$zpW*SZAC0q_B#MQc<`;eKzQf;sFF{c6ZI zQ9r{7vn*6^6|u5j%|Lbd{x+I!t)Fyt{~q8NzPf_^+`PXUK{Je z-4&eQ`}Xj+;|E=2gTb>u2m)5=;(V!?mqZqWBXYoNfuiFvV0@;-MLo4A1bL|2cibRZ!NlKdx zk)ks7t6tDC@x|13AmhSFfoMuRSl%{zmW$%f!e`h=;UPN28CTPEZKAD4hEe~PAbsC` zd=5L44}tMX2`TFPI!F8+H^u~iv|fW&PNv%Z&r1rvdQ@3Sp}GtW85-4GMfyB2IZf3p zxrlXV*8Jz5HWFB$cYi-oF&fBkW}p}i13jlfwCa_&(3{D>aP1imJaFq!C?LpohD%5? z>U~to3^5TA88$Pl0ET-fHxC0REW#PWBdf+e(%FNWb-kwM$G_|fKRuEDBN8RIA7y@m z&ulj~HckwO{ui3wUr$_UGRh9aC;5D6fK=7xnl0HQFHLUN%^Vx22#3MG%9u%)C6-w{ zr2k`@e>)bQx#)5_Tm|+W`sR+?EB>sX`C5QDK_fkSM(C*u6yhA1%_yv?>CrxLGbr@} z{#8f_3>5toyoF-P0Z8sMkdY1gpDH>~k_K8?{5(#sb8c_lm@zXLv;8{H!V*ZR0<3;) zWns+An0OP+z5V)7`Bo*r{~2h=3*vV82PAqDVdSziCmh^JcA=-8O8Hb@4kZJ{v3) z{qtwRsc%7fz1O>)2ep?t-CfEdp2^)L4aLA7vEuAx$aASxbt*IyYeHiYn#B4G%*LVTOL7A#Im@zC-59y5i95gv9G|e}n1xQfoAE0InJ@X@1ud!2}^ zm1PNg!xe~;5$(rJ)>2hOM9#{I@if-9&9VZ`eD`ZHU6UePg)8-?mK08gi!i2U*zmE| z&9K(%tTeJwM-LKVlI5+{3##u2RlpokGVFDt1NP)*x`DD=Lp_zhX2^VKeBn}SM-@58!QsD{=hXBX?20gX1#3NXov)oi}tgVww?!&gf zlllXlbu9j>Rc2;$a5IqS$x zzST{Z3q5#_257AKQ0Eyd;{1O~W`iKRqm3>u@nNDI{A7TfrW)ZI^}P5FQm2~b3WL@P zJg3CS+#|88oe7D<_^=qUj{~zKUrw*SrOQd%2sUwwzj}G$5#hmo$G+?6`-Q>d>idMd zLvJ7>H1Xe~>(yYn1R^3L?%rW)@R+k<{fhc_+y-<~JRNaFl66@Vm7eR!opU{H&lVT% z2mAZB|H9&1TJXRR=)wHG4z7vJCNgmC#6LtNQ(Pa6r#!BF#HOD@22)pAVi!Y~F-9?6 zzeof35C=pswL=9`G}P-%(LrvHUetOuy}O{8Rzcw)T{D!?v(5uA_M33~8iymB=7aMt z!~Ws3>Ui*vvZ^PhfAkA@_^_|up)NKDFf-{Tku)ezAiqh)#OCJKqR5b7d)S$W{}o!9nsYO^*Oe- z>rHsv<;}$7^8JJU=L??QyDKK~C%+`ErORNsP(E1U{GKq1mW2MAh^cJhDXc)y<@a!R zNgUZzZ$323L<$CnInh_q^a_)rJUv{NlM3Qud%Kzfaymdrj!9mQ*G27c879PW#R_U^ z?8m{_`KLNIGMtIqk%4*BqgB{P6f_qjv%Nk!S+O~BmzGjpeTpkwPHI&-mPZL8@nH|) zdJ=6Pj?|gWc)Z^2^9lO7SI}Wzk(1^?4^UOMgW68pxjNXeFK31>b^;DSLq6lU@RQi# zb(8G)HOeHRR{-Bu|Ec*2wm09U$jv(~5URI(@QLfPQPtaJ+uWq6q$K5aB3+-1^XunO zJ%d3m0qOQ?Xj0Y{p+XRM#1dXqem}|X!NJ!0%LQv_KJ!9CF2mA8?D~?BwjV-;YekF{ zT^nMX>`EWE+=j;sDaiGax6WHtRc&i@tWtm#UAz@jQ|q6GpM$P*fve{`V{xL0Au)Px zE+_c^bVgZFUDT{bJcu*AT2|kHXg$)GrlS*HXGe90e@@ZF)Q;M8&hC8JSgx$!>7wf37E4+v0b4v*t^ z4s@M&!L{^>wTZynMNE5X{-@oL--dWo(S8`E)7@^!KyPj9$sB}h25^Z_@_8=ZNYBDALmm9je8kZSu;%wfB z^e~FYpZWX@*h+}(!Is|#DVX|$l@lw(OkA--LIKS;k>1;veTBs2x<>}1kQ z-wrZw+=*Wo+R-_sK!hm9ty=9i=F(`I#RT41h#a>R+TL$6;`x4}TLJg$?%q~SYcB2A z*K@^2hw0=XcSQHI7Nl?GC&BYh`!5f5riu#n>lBcbRFVp^BEy71co8QbOLI=0Vj>~| zF!m%wKcz5^_I6`x+)O|qmrDt0o=f@o_{t&Vbu9zM>e?@S6VHj@FT{3zS??D9FY{=; z7d$C0S5K~c1w|$8!EAR8yrqw;tG~uN*x#F#-a8`F>3i)9=T#@V!02XLDw+Y1yY%3B z+o|Nhq&EN^HE8}e|JNDeTnWi@*NKhjuV0}(#)~=+`MD05?YFNxrU>6&bZ52P#lJm7 z2M?Q->*)A!oxfs6^1Y)eE42{rB`s&6#$KLtF+H|N^c7(0i417A!!QB+czC482ghw9 z)FKv661{#l-eNbr{j09w+bPI@@kOJ5G*s2S%FCHXi}+(J1Or*;G$m^(2kNz77hp#l71tpy6^8kpxs?OZOO*R9=|Jfpd_ncO^J8h98EfboJr0;=I9Wirx@6 zpqR5b-I=tBrbX+T?Xg)sj@Wpt*So~2bj*{>dYK@*0VOOsF7kL>f_geGhEK#sBkd zoZ-AG)>n!<>L5vPw=KJ5AJt)={QxSZ8nat>P10vXFh&2VAsSn=t1^J&{WL%>E;9y= z{afVW&Zz4@Hmg7YBmV$^{WvYCuy(@X!1vuo@jn_MwG7OQO!YgOyBB*8<-WOAoJ-Pi z!TJ>h-{%c-M=r`_M3CdX!{6OUWKvxqwN%^LQ(GV6yZETW8bGsnJeYjLg2SA=7ZhrD|!lyzGSu@HG3I7P#O0hqcj z*hQI~c-}2XQQ`*dpW^%Mqv412l=P~V+P=h*OPFGy7CO}mT4qUvjQ0D~k3Oyoj{wj6 zw9vN)o-ciYQT=}}-lKGh(edg=vIB(i(4h`=9LOTM&h@3UyuR@8%9^6#7X>t)bUG+6 z3F@JZO6CM0a#^KnP>H460%duRpgo?Cppu0R={diD8_Ke6Rj}<~-62i?bsf|ElKHo| zf3*8a`A|6leW&K5Gx$fQYv1_h=U}f>JFbJ8jM;6LK^AAYp6Qv21&f(hN1z;7Cz?0D z_jPB=%}5dckL2aND9&|l_gR=Cg%tF_4ZUBi=$=74CpMkg(cU(vtuO0n&qxD*ZM=PP zem2i*w+&^+U5%wLqnY9R2_Y?qjb{9kPWe^Mk(9szWSO65-@f#;U9EvKT8VktDy5nd zQ@xib{<1WCLNd*>J3cohpsC6E^W(1!`(8Y81l#z%awy2V_hPy~TGgiW3G2N528`*) znaHS#{k>~Z>W_>0McwWthMnpQFQ^$SiWPOrZ#Vxq=kVv_gp9bKThqs&Tm|8G_SFo5 zgz2a#7htbzhR)+AS{xWrSNX4|pw4r)Pm$|_POx<98i!q`nh$sx&`%9RHX2&eNX2*Gj z_?EO8yl3o2mv+;C*5L8#ZF{tFneXWBf39qaZJ#-J_P2ynBge&uW;mt)iC}%0k1XHV z6Va6(0G>=}+npYtFEvqmm z9<|2sg)A2=67M6DvEml{-52sI%C8M3V~LyUqb~hL;%!KGtEJSBoy!jwI&Zk6D%eTvFQw~w2|C>)hi4Pm(C|akXnQsOiNN#$1oVWUh_+>?#x7cTd!2Pq<$H}rv?tq<#B;`+QM+Rrkiu+6^> zG9Ld5X~SZDmrkP73vF8W81Nr)_mfm2t&b~G$Fl!AfD&cq#!!2R%8p6^?4N@R#H5ZUgqz1i)u9QC96%gK$l&%`+VO7HZLKLP31p9VM)+VUVU$! zkAH34k{;Ao>0FSUJ$8>!l1A9Ni)q79S z#itNkR)8Fz*W#;cKWs(DFYLn-VMgXwqQYRc`Hwdw_I}(Z?qJ`ZPg%!*_$<#*{!4jA zPfqKLjF9OWxTC$K%v^mZhz^{@?PJRizfZX~U{9U}rEwfJgtD-D*)XimNVCdhj;&%Q zj6}&->0xp_d+(8g!h#gcykFkK6SbYKxR#-+X|}RonIH|0wgVO#e;hB&;m1L)dcaYs`&sTdi- z2P|P3G8ZI>WOe)tdfh~(&+LQnoS284Hmn(que|oq4^p@ZBBaCD7iOLlUx>cRVI(lw zykD4*kQ6Z~t1;XY6WSB-ARCkB=cdD}giC3+o02NVktZ9?lR0R#K6yQ&Sr31YD72ktjKB6z?2eG^rDTNiw zKak$)yVc3b7LCL;q5dJHTNHRZYYKYM*^JEBlkaQ8sZ1+wkDu}R}=nOYU&e7_h* zg^m&Y$uA(;o!&<~>W0?`f+`vY_Sep$ERTHD&mEtk8u%(1S4185qR9l+xQVZ~B;MWb zyAgcM(3R7k@fNdT+l9COkhZ?Zv%qN86plu^d4co`-XOmrPPk

y>MjwRNfqX;v3jL6|c-;^>n-()00KGG5?U-!$RCbJDc{(g8Of=$le z1_f;kjZ2BB9RaOTCtGJnSh8w#G<7x=Q)l(4lv~MZIW#(ssz%Ehp`3a{vL&;Tw-isJ zX7SG)g5v)WgS7t!siKAA9G|hqzP`M&>~Ewk(dj>IVvH79CqUhQpy;aH$|~~~&fc7H z9`3{@2741apxoKsu858k84+ISx4TmwQ@ioxb@q$6KTI;wza$wxcc4P!RJJ2LUb?>* zPtcpCnF38iMLvQ455Stl1pZZVM4~f)JDgG=CNyrkWZiO-W2-1SR^ic`s4?ZnCR(2Bl42c?&Q)eN~zf#`@fBA8oyy zQn~vm#vGHRw`_J-S@yJ0yUjcOhY?y|7~E$82Ewv9$!6{>2yqhQY=wfdtYRuh8E^!D z&K#&BAn0w?9OXGjov>^=+~4kKT4U$~OjK`9VoK^e ztjY4ZHYI-}Y_ueXQ63x@E+B>LrRO#J<6c|!&I?E*=;bAt&haRH+P~HHmUOo2`D8|6a!-9;h`OiX3fdJ z9RxLhj@r}gY!r>Q;_e`osOnEC#>1ssGTxtNR)~U}R`bs8C$;`)m|v7a1nvvftM$d1 z&K)o{g(4}a?c%Wwe29MkdgTD)jV^(nMv@T_Q|Y+6`bqN8@h`+G(pf^65EZmj-N_}E z^8Qo1J+NZ2)VziNC6P_CuQ~oZ3L-M%vbXpZw7qg)_|EtY|r|B9W z^56CDiIuvY>fa5^9{a zVdC(y?G0EqyEonV6$VNffjI5&c_lKRaW?mzYqmfk%<&iihZ;t-*PEq_ix09$SH1AJ znw5Hthl{a&h-CU}Xt2P3+bEEs>6cAR8P;!l4X?`@8X)S zmx7u~Pxt%N&)uhz$F&AkHYd_XJZYzcR;ea=7z72j&Yr{P%$N4~)wKC(Ela<8eNr5- ziT1SzN!Bv0!pWblFF3TF+V|Rz__=l*^GtCtTw1#Vr<#>B`ym2*aT;r+#d(sXP)i6@y~9i z9XFlnhvW)Oe_mzK%6$gvp3Rz2nU1Z(!uu|+xiQkb>#*+Xa6WuTo`XE|9_|vH z;+@^>bw+%ydcr%0y+ycpc(EPTO@z}tGid`9O_Qy;))^zlCQ3{#{QYE$A)&Gi>8Sz4 zrAxekEcV?Vw!QGQQv{;~e+O6|tWq1lyYYW_K1On=n+XJQ(irkMEH8RvRfh;c;Y&!A zUCA$|*iBnK40yT{RcEuJ-&o~e6m|k+#tBd(m2|v>$4B{-(7;7sb;NSQ4EwD7ynzIg zZ{#bne?Jy<7|Z&VdXvz(5`B_9=yGE7?))Am_h(eZ4&4uysBlaOdqClEe`IS0}4!Cm7%Cd9nX>OXT+4#`K@c3>&VU*ON z+EZv5#Qn|dG>l;bfGI9!e>amHqPicXI3vqEj47rJG(7da)`Bg;&0vpZ&ah`3& z<*aP7B54C1{7oO8yLoGVTs%NRLMB8Ao~|_#EJ)giM@KKVup_yL(ff4zkfWo@&cGSM zmFhEzin5;TYm;WU)~@kqzy@rJM>E+WH!-)wlVX_ z1dLq85oCrXH<+TvXIYi4gM+Pd(=}}d!4OTW1^mi=Z+@_cH9gJmeomKn9~p^n9|w>( zf9B_Jcbq2*;n|C=XCbe_(-&DnnUoT0$OW*Sb>MS*5=UJBZkOv1^97)BjljXf9o2f( z#`)Jdcthzs(J%v4Ma4v~V)OV<<$@*s4zd@=XkTcZW>l#uIdC_m58gX2hPQz976CBUk z!FdCrPwd7N#t9Ao797I&oIPZp zu#4~e8xee5oI(i~LlE2X87Xvc&8aTGwN<3dp6&h(lEsBJqogD&xOhfY6 z6wVB;&`^kR;}{V>q>#&?Tf{2Ym7m#mQg)&G9>c4R0bB?P{R%Q{Wfsy0PAqYTaj-U6 z3nLlH@3N-O?YlEuAwKo?>yqsk`mpYqcPGmqI|!OUN4ktb2LFVOEb zs0>wA6Y2-Gc&f&SkQ$8E89(~=1h2a^JlM|`ZKV;-uYTX`^qzr$^CVncrX&0k%^nB# zyyQ+2#>WVU_C9Lq&Ggo4GZH|qU`It=k`jA2cxO&_vC)vW!#C$GPIp~~C%jmWeej4b zR4D&k=P}M`v?R5_*$Z+&K3=Q}g6xWMZrlB^jCN%>abiWk0~|a2B>Q~yP*%7j=V3ku(2ITnS-zCUVEuhXM}@Q1tp!>aX{E`P%B z+&lNGpLoQP;SRDq^DxDc-gQcrIB(4OhOmq61S-5s{SYo*E}z!pYGhX$kExA}KABz> zkg+EKEP9XxFFihh>r!W_uTri7Nm^{a8l4+I2F1$vExMb}LpPy1u-i?+EaUC-&_(>} zPo#m=dRz!yKe`RI>rTj+(@HaZg=CdN>Ti&(TqKc}6}>}j*l~CD=FKhseA+{N<#swF zM*m>7QhY*;|Dw0JGA#Pd*`MMQYx^G#W?b1omNZmHHr;R(eWI@k3v$PeBsBT1BR4V)W_=!|@MZcxVq&Tppnn}O#uxr3RmB8QX~pW&Kpt)vRIJIb zI*U~wc#IQ>5zGSEPd8$56t%QW|H`2JTYCOSF=-iN>(!f_lJc>8N&|bC4`I@Z#{^p= zlGKT-OmE{_$NlQk!tAVF+wtA|wa}-}{Gxec&Ku9IO&6?zDWP5eXY$vgA?db{V0`jgjMu#=e{%J;0mDe{Trc@n;c zgex3soKNyhPkpsduNFewPBuBi+D-N*mVU=ynBmF8usa7yZ{!G2iKy7Anx$A*5q)+v#)j290*Y^fy{TCD;K#K;^DwBOpo8R(7ys8ML%Bf$z z*F+HuY6vh}UKCIHffGn`tNF6@`V&s&G5|EOA$C3cQmfrBue(QbUKeKh5MM!AcH@?t zqmox$=)+mhAH*L}6ZWe=OOr!bt`$r<1%|xbZ=6%P9Dn}e7!WcX7e`LOwM#|A_UBfm z_#2hg>qOhmL8{&`WC9kFA@bWz;)agmyrzC?qaEMyAhhRboe-{d$q@c-{fOWE6-DTs z+&g5h%&qk&e-}a;W!Lj%hI5y5`W*5fT0*QIGWm)V6A0H>Vl#c(F=RrFByIKnQUg8& zfCrn>FQtqV5~7SGM{d#~-j}7sJV4=zEC8dJ;Hzp5upK*UK+7to(*bgWU{sSiK2Pka z{PJm5Nl+7$fsapel)UJ8>YOicv%yY4m(=sb;qXz!;t`9t^#k5V|8|2_vwl32BxkGT zD>E8B>$wWL(-qeQTeh3JsvAY^n(vLsPxY}0ys{qD%OD)e>#H~_VPh69V3*hJJdZnO zKk;0E^WmD>Z_3css6#d7XPcQKJ5Be)Li3}KlA?j$C32}6JJ~du*h8rXf<#ZBqV8GB zG-nFsSo89FX4=g-hoL6vjtDT*pZfv|Et)n|Q9wo~OYv8yO$H1M!yr>U=trntu7HS__SX=bTrRY;QM~otLvzOxPg5SU*l2gZ&-2RtbX|B zV?UhnDHFFD-lV~Mv5~K;HOkIVYzLsor0 zyX2Nph(n|CfGXIjr{kyv0oYK`<8YJk>^c{Fv2`6Msc;nORPhUwk~$hN1 z^1(b<=HgC1hz$1VvQ4g&5IH$e<6=EN^C1->zq@^T!KUnK*3W;yV(Z77nx9HX?+sEd z*U$sfnn^2z zHLoq|#iL}QS|)LE_vTPd)^)CY6Mt7$lhu3ziiQ=Wppy=SQiR=JoR&%1fs#e*;q9ZoUcQ5_2 zfKNKk4^cn+T4XD6c-sS^C$WCrchA+1I=Vw95sngvIA1122PS)$oxE7I$>*|5TugPZwOi}Q%J4*}cO)JEbEW{>?PSjco z(=1QdFK0%auQZgKZoDk3w$3G5Prcs!%#$^b&Sk^hoyTF&C}?iK=#}HRZ3=hfVHQUz zqvnT0A%*1FhovdppU7sA_#jktdm4MZbaI=zgpE#@gXzHo(~O)9aKDm?wwNwTouaMy z@osV8dMb3xT`_Buu}p`Qu|sX);7xxceR(}fOTyn?9Ta-^@nxdZ!UQKw{f_L8@W;|y z*puU}cV7sr+-#9Om>w0^^GeNn<-JVNS#NlqV2y4l&Fz74d-O@UOrz3YkVi(N;srYB zM2ejCtN%qBHI1xbDd_D_?f1t&$CHH`(FeP{=n;CG$Cdp-_ASNEFA89}j=PpI!F2XJ z{FGriffyO!MQpF&zQ5q}&Fm!ocF#FA27}qCAS@cC8x8cs`uaMwKKh^t7jj@~aOfBB zqL73{&%3h}hQvWR#W>O%!WJ^44*dLB_tOn%0{Qcl&ev8sc3?{T2R*hQi&AAoLT?XF z=#%rN6IldxyRi~8g=%Q-pj$Un5`e(n*#^tw6>b~?a5g@Qx<#x*p^m5WtK{v$D12-L$e4NavSk#wa@eM9WU*>c4sA_6i&Z-?I> zPp=A{3AZ@qe~i7oVMiI{m9pp^w8``wFv1_~mRatPmhW5DrO-Bqi1@rC7& zKCRk!DJDH$zbAdbVMIbiBRu#cAX=+aLUtQ$*8vd#noO3%^f7&)!#R;BE_%P?GzM9u z8WhXN8Th1se7wR5+a!i(j`M`!aK89{D++uar*$M|DkE^+|Ilu1`?H*o$Kei>Mi$C| z&MG|l55ni4gEO8XJSrL7HhCeV_ib)*>P)yGJi7lhv&-jpYFP)SQErRa!#56g>f0tF zY1pVqi`OcW@OKt&;(g32q>jqQGTA>#$BgzuWCpp%DXqHMCgY6a9(CR{{;)tpDLY;1 zWcfA}&PKL)jNdNQ>K}JFSM>`Se@YBx2yc77*74E!CH&=~&$1$5lLgFuPjGiCX4;^( z#_h4RmfNr3y`kz$ArVuA+W$xZ*tNO6*@kQT__DSW?KX$-s^4_i%p&)RcyWv%(d>5= zjp$5x?;Y0aGkd$W$Ue;;MvY9jvy~YG@?$RYNuf&`cUM&VLVF>MD4lxQL)6``SfN9z zuiVvALSJDVYy7?d%M!f&JG{Mr<>g9^a@_Qgw7HJX%MCF=Z`W#q23z0!@b0ieQhyq~ zxA3tJC4jld7DG%5I^8B8n>=s_G-d8P{Mdlk2NP3$#iFSdUz^kh=aYuXaoH!%QZEd9 zz{2WNKsu2sW^E3Gl-|r}U!0sWW?rYg1t&ZfU3pikEQ9k6z1wHrpfbYyQ>Fhniw*dPE;K$Q;{^#>=gWF9>&jq9!B~djWy(=8GdSv;_p${6(P)J&Jv|I48QT< zE?s8JNOs2Xt%{si8n~4wRLMze9&(|qI~MuRg8I)1_jfJ+422*K-Gj-AmUHJF9aVae zrd_NbvNzf`6cBh9qP@(FZ`UXQ#^7rcI%~U1khgHIiJzE|#OC*8vhN%csN{*#toQ3; zcA)Q%dfo|uFwu~*GT@A83a1skdZ7LuY$`<988?XRDAFf-vAb!aGM%C`7;1J%Ed0Km zUuOg|kQJ2n;2zGQ3O(sNvPmErAY-k}vrIe47b{-4V7{EEJXG&?|Dx)MVz+nnr+0uf zwHG$hQt`w7h2h2r#V&l=&|YOlYy;|V#qp}Jc>X*J=^RQMAIn_CQ@2^+w+@3=oGc6jLRw~wF$CQCr=0V+8yS> zTsAABBPrDdysX5d3s)HDxuRlwzb=~7_}yqm49GJLnMv8bYQBvIwv(Q4_rSCMIdVx6 znTZ_Esn+G80-HTg+tdOt0qdJ&!x6B)T`w=$?RPq(56N38kjwFwC7WAjr~DQZSu>!p zueiY5Bqjp_iqg7cYmd9YS-Lb!L1Et~RHht+g7%FD`;TX)= z)cDiY&xb{l(biyfNn8a4rGz2rBXK`a;-kJG;glNDh1R9&)nv>^RRW_q#cV!?P%%`- zJc)JC-eK~T^by-=xeT>Z4qzvn0qdqWbtguUnABCP^W6yf%5N+oi#`*v(QezpXghD^ zUi#`|+I!o#GQGB{IC1iAStZU7eLU_IT%;}rl38t%(JQhQ71~X*O>|PyOfe)LUelek zMJ`SbkUbf+fuTvPY8sAv6IA73`6MTHp%{fPSMUk*$SU{{Bq9!>i?WJ9!96#-ATGCb1T&tf3<{&g&+ zBn=V`m;yPgpt%*4^LD1G_2oKjC>d{G6L7rP&LR1CF;K<$y^_1*L_wV0GnS@b_=Qr# zxbvgWFlrD%QPOqlX&jH0|KH089AQq2`o#{Zgw^b%qo&gs!bEnbW@i4WHW34TA}e%9 zj*adYd206dP9+kY?tUGtleiig9WNvhEtY@UgD=&}i#Q3Th+=vZ;546mO;7u*MoV@W zjDP9nYLWFqPEAC&-J^Borh|$VpDW-bIcgf^UR9UkT;;fbVnxFRh|kJs;Y^bY$kWNG zo)zXWoOjGwdo)E6u ziAzda(c@_bdGLkow!gGx*C=uwdGlKbG)BU}U8}@h{Mcqgii%34n^f`g@_yygzW)+* zkgp4eD4yU4*DK)ZI=t}lIG(7mgcesxUK-sX#Ck{ecG?80P$Up<4|Z4G9fSQLFpz%) zKaOv7+e!qQPKM!wfTn0~-z{e%hLaiZFo9=G3DJ&$WtdrW_Ao-5m>64M(kHv8){vjz zLR^#AC$Ewd$d+A;MB&TwtwRQ*MEH%NQ;|T{=n3k?G)}+89LKk{7MQEhG#q9vXsH#eNBxQH{^J9M6Eaa2a2r};k$LkD3~{NB&)#UXQ_ zEBP6>jT(mYFPk0pj{U9^PW~+VmS9V5pzU~Lx)2GN2W1UJIP>#1XiT*i5W?_$UP?WT z?qMIZ0f3FlY3A@{BkC+Ky-*St(DLSRdzkX*dj)WWc{;qG?~m>h@mE)y?54eVZxk*4 zrd;*fZjvNMac!2Z*l6wYNL#~pSCOeStB3`HvUY1R3#USnMz8kd<~;j0a&L_Tz8?uL zB$_aAQETn9>Q#^uxY9GXojkk84lFT+#W~#E8RkU$3=ue!!pMVx+-bZj6!#2E8*Xx=5Hv+ zh5)EXxKLSwy=#fQI4TX9zToksk&GS4$j_X>upG;uwi%uYM*Lj?9!MidU(`ob zitr@wpu=v`~wWW;n_jW-#uyi4M)E+lwY@v2pl6G znd!YOURfl?rSB@Vx6QVgd@J=zR}G8Rj4T-v2>Szjlh?;S&U9#MG6ajS0di!T861{E zpQpoyS~*`(uq=G<*QM7LO$3JncoBTns=rai;R+o`*b%a8+e^)eMThf6V%?_wSnN;S z%hC90EVesii0O(+Dr;>xz!%)2bVcR0up{Bb6@_=~jp+U%%|2KZnZ^zd|7~_KwL)n0 zkBY&c&DrEKIfY%p5@^csJb5;D%$+ zJbfu$a>`?~J|~*Jp#2nfOi9STc=)r{fD#t^rdq8}g_x%~u@o5H{Bvfg5zdl2bwbR70BV^SttJp<1GyB`+bPw zaN}p9=>QKo!`0o_Q`6l8D)x|#DbuYv)_W#mcjvF_SeWC@9N`NL_@I#HR3aZrvE_7U?Doo74y7o6MUkm%zdSVw;Z3*}M+ zi{}Mt;f^5FVmyZXWbh1DR)ee6{ifHk*7luin{?;HtV||9_JkYz#w$vI+!= zhCQze`E`%|97o{A($~FX#?AE@7J7e=enD%$7LDfSi5}Q+-G7l zn0_j4ip*RDr|#Wy>ri1YfQ1oP+|%Zjeaj0X7# zipk)Dz(q0VBoC7lp&CuWw?ELfZZpd2uBvAHeKi7fKsJ<8dCV7|rcT0yBBuklIgr0T zn(p4j3m!J%H>;$|DAVENCfk(YUn!PnF%Z;W4j6Ayd|w%=xxB>=R4qi5rR57?NQ9-U zfrsnQYPSi8uSR&k;-LTPqD!Od2%Uq-;1L*iXU2+4rD_IMl6nJ2-sL1lMxmch2%Val^#Gc1H|JHM9L{O9>6=}0jy;(J z?6&dh&F%^)2p3PDy=vj%O`E4vdW1b`f_U!q;EVk)tkaWDEH8SQR4a89-1l%sc_v+7 z-=4`b3Nmwr9=1$qc%E;Me^>X`3cs4|jr5@5FE(CyQQN(T4C40<%$Gd^FrA81y)WXH zTD&7Mon3RO+2t@@Cadh~;9)C7zvV^@!HQR-$uf(cs#q*NAIIKbh*GA%-ao`E17*j% zA4XVSF?MX$GxiXcap~LMmKo=QYp1?`vPoIw1gNyOM-e`DocQbG95{2ljI!7Hyb|8d zfl%j`T{lpfqBd_MF8ReYZjaVcPOE>qC$(d=MivwhNk<3W)!32$KqEu#@iwl+MTdd1 zTuI_p#rJRpJqa15j!2SM;rXQIf)RmKzx4HgV7G2x4F3lyzkz zc3B3=IYlW&Wd)7tm_kBXh9RTP|3n6)U16$rdN#>q21Ba=v3o7lq-Qr21n{i|7`_Jh zQx})!Qdabgw&S_nx$=JT<*J3&2z#oSlKrJCxG0C1LXSUEWqwELU#%Qh3QMvrSNS zEt{DV;FDFFzzlB1UNOy!pDHQS2^+K;C4~GHqt#unlw`MLl(V#xqAbz5b810wUxd1B zIdE3#E6_lji|(EAorw^<0R<~^Tf9BAvlp5_HM}n;&#IAXrJ2Vd5c^-Xn%c?r0t};a z1-&EMV|Uk~pHU1jbYs}N_7h}LXbgKSUyksVglZL=)7{B&ywM=XG&M5GrMFBTvZFS1Zt0mWeLzO z8j}RJk5)TcmzTrLU@O3oS3`#0=Om`*q$I}M0*~JphWk@LYV>p=C)^^?MAJ@Je~F2` z#I+lCCb=V-Q&h{SxMLuK`h=NLB(#`uZqWGWa60UygXV%TTBak%O>qQ&eUo>7@#^?Z zh#55)$3sbBY%;PLf$J&y)Muzi?kf^RSVqt9_U&Nuic_>wASU_f_1T9}0wW+)X3vJI zUooC?U`}|{+p;?*(0@_-NX(Do0M!`K;8oty4tws8jz5=5QI8$|2{Vyti=;o!eC$vp zA&}QgzdsEXVTb|bOI(gpbdMp{TL>TDY}99PHNk&6FK3DP1Q_P0;i-+ze+6v(slg`w zcDl7K(g79*sxNTzPJ8WpZ0`%? zJ$WRnwAs>Dx(?IXc8(+#a~;OzByMR1O;PLrg?#@fxZ4%;Gq(U-$>|GO$mH&y$%|?l zrM1EkC7HE$)+%1kBBH=zxy)b5F2O4Wf-?b1BRhw50gEEiZgl#a_9AggH)sJ&ohIWU z>|GrHS~kM%QdGFpR3^6kX*s`Ddks|P03Ah1H?#`XGnRD>>mo?e@wvdfD9QRwqqU## z0a#b!-_L|Ei5&pHo8ri$SY*dm4z(N5~&_~Dd_C(vQT46C3 z>kX7t3-Ra0#tjkQ4X(xXteAr`GNJRfz-L)?3d*7Xxbck^>7Y`Xisc$^cRUeowG#Nu zb(2_+&(WL3{L724xvO5{8xo=U@&v+MyitFz z3fc!>kUNoInjr#9%J{j(WH#6U_G>vtGoxe91u=E`Qckrba&lDqucITEa%4kPfZa|Q z#V8cIXw+gbg&)w1Jx+zX_s_u9a*fgeG*kaimaO^Y!^UC+2ZE;oLk6{?EWo=L^gwir z5UCW9jaJ-TlYB!yN3l2XwtliS{3w3b?9V~&$fALFxgBV<%G=ZIVk))(r^@1&`GvVi zt`WcQpf%MF6C^z&oyFl|qjsVs5!FXIPs8fVA z)|>;v9l+xXHi{z;IPAvLmEU>3@l$c*X{q@^WWFGulAJVEjW=phe zuSuXu(Dn+WW)&?pMHtE;6Czqjg|VosN9&h9ARwX<<<<5_v!{g$2Z%E&^FFSrz%Emf zud4B-Lng$VUAoR3ZSK@oXi~!H`P88aikCmaPr3lL;Jdskp0YHmTGtn`&NxPLjH@O_Z3` zFW-AD-7>(Kp*I0JEP+~>8Et)BvivZiHR&pIh1eaDIuvsXR_7HAo1@_J9_M6A0t z$V2|SG`|zUJP^y>-#S@L9(`!)pKLIHb0C7SujMVwLHni>EcI=+0}u;vB&Tr-MA;uk zw)}uC6^nw0KjTQwJQ{BzB@Cg9EmVPU2SMS$1CT$5h2(vyRB!JIrPdUNh`Q3ZW^Ovi zpvDZSiKb9BIXND4EG$=7eB#fjE{*{Re9XI}VpbBZ> zhp2#?)*3N~X?$PQ7Othw3&D02#bQ+C*UmvfBq?js&EuYwP3$LlvBgq7{$e5tNJa%| z!u&ViOB(q<+`0sZiu=F7nhIh1S%l=JU`9CN=O1ukdV2N<6NG{A@4Ltom}h}QbuxfB z;Nfg>=Ke?eF9pq*ln0Z!sSOAw(7CXeQhLC*sjXL?Z+ncNg8F5sZT(MIUFMT7$b6Ov z!eb))q)&c6ufQq9jMh*YW$^Ew4F3$zM09v}2h#|3OwP)UUZv0L5R9I=TRK1LLSa~TP zPG`E9qj!YSqip^;z302~!1N?9swT5R0X__+Td2T3kTfKEB;xuzv6_WMZ%r=BqxVC* zE3!%8QyMsg zH12J`(1+2zH0o{dt2u`7eor4@C~-*V7XDs`e@hCgSnOriS}Fj>1#);{9069+NRej8 zz54XPVQkeH0WJ7?+nqfzHHq^=5TN<`ZevV(_ECNeDBW^th(Wqo;4a4Pem+h-(=JsL zlof@;x;Q5Td;s!o8_}rZzQt*>Nc(m+>1{7UhOc(`WHm+A^(AeDh33g ze;?(H3kyX%UhC2mk?E4NZ)=F|GLlW_ zdd0)tqwMk=a5vy+phI4Z8gNHvl3 z1=^ei|5=9oLhD1KgPJI+|HJoyOkd(EXlg2rG*1Yug>7uykNrL0)4zKg{q{D-`OYm>C z6L`YCmu{Gnwe;6~a3Uot6>RWfO{u9lgSDL%zvAaYA*v|`CneB*Rt|Rr@@xhAaM_u$ zu!3^=NLd86o#?lPJ9Nb_Chdteg&UxA zYJO?tIBXgRi$piPG$Qy{OlS=+5zItC6M~zd@67zX%EgM2`#h4%JQQz(5lqgB+`l2g zTN?;;5lY zo@@}&APEDr_?*=BJ%!{y;5f%$rvl4A{}(L5;P0o%gS>qy{NwYaG#bppS6mO)NvbC1 zDckmsP;l3)qBm1#!hr&s&oe_3vCtc673V37&`ee3QAUyg+ z0!bB$BHcpd@4m&8w;Fdc9K+ado-s!IhSUtj&hx#N=UJ1skuCHT;QY{@d9kAAJ$3i%EI~+GQjA zo_$Q(CI4m3@yK}+4Du4HVN&y^mS_6nT!f!M%91_3tFP-xVk_Dc?z7yEV4sOI@wQ&m z&sZ87;^z}N*LRsU-(@$f8_1`;pHzdXH^i%4?#?;-h1dDAmpy5l{J`f53~+19e>JN7Q@H@wAt0#?iRvwN>QSuk z7*5Z*WJ@oV!ZAFLqtD$`V?Y>OW%1AI}vPo!>7nchL_7EGvJubHnCjqA1}Mnoc~ z-luK@6yf0!Cfc9P@7TSXnr4rKaxkfpnJG$*G5BP`Bi?b+$;FJ$sc+A90`Wf5D==>Hv?Zu0MH zFbR~f-&(IpY=5ZCg#9yk(x(VoJ`SZFI7M&&23c{;2>soCf!me3TiX-}#g>oK)N<1d znh1<`!Q1(sjfuK3^+RZT!m3rc`||(Z^0!&&-#Pf-Q^FACcX=Ug)IEOq&rjWbVSZI0 ze~UqNbW&=#nL=2bALX8^GJEWX&;zBhqnFy zHYFiLy?=r^>u)qch<#sC=RW-lIo?P3MUrpp5j(n($HF7VeqpR|j|w?+nQ_&fCME^@ zf-!bv6|MY_=XDE*7)I69DDQkq-&^yeG2!em` zer$1w2{gr_Rg7RZjf}xQT7W9mxj&y&;Kjv_ld4iOlZpl(8)!2=;B`1_h>>n zp2Z?pE_Ag3zz&u3>mo~*RqX%#_Q?^!gF>FvZ?sSM-;-b90V6+i^~D!a0s5aQ5WXUh zBMll%E+ImU-DTi4lcSJvLd;>*KU2)`5>OQYfUA6FLVz%wU@0os(A$=1qQwLHRb&ds-L;-0OH=>3 z{(&3a5LJH>`P+rKJQ8IlyBF1-^^JP8+T{Eg3kyp^4^5!PM?PA@RR^)=@B*1c$u(U) zur-JU@nlVmCJhG%hmpM-x7%*Ojx(Y~uK+dSL3mU|tKHaE5Y!m_f4}&@g?&E}@&OFC zAgKtkZ;FtRLIm>SH3CTGjv z>+aOMn|#V)QW8NYQ<42ayygq~e72R#S&d0r+pNu(;x0z9|F;DJ*pDH7e8OD2SVbd) z?zH;pkI|8e1)w6)t8tM=MeUliN#(2{%Z4ZR57BJ*dL4!xL;b%KM&b2tE6Y=fBZ z@~tCt?BL<~Qmji+P3Ozc?*@afB)*Fz#QHZp3rug^3selmC!6+~EUTh2Ym%?i+cbHd z{e5{IcPtUwUfK>z6W*Ak<0D(OYbnjBFVU;SzD@Ug&+Ga`ZGth2v0XHsA$LCe>*R6x zkazqfoZJNPD@{w>_8f2}@Fkj% zO%k7ftuGX;)mB=DR^FfRm9TU-7OV_;e|g_|HTMYGTlMI100@QE+9IGmm!-S? zGk+KKRDS$XoM$$vtXKQgh`az*PHF;SAe;E&z^G+b+c20PP+eI17vR}~VL-*|@1uY( zJb)*Yxg5-iL&BRJ1^dgJ4e#(KbQ!Y8;qm{cBwnbP{Y1{CYYO_^W%{5QNUfOzb<`n( zZDr~Jxr{+bOr4YdYp7ePGf9{C+VBd8%D2*h%0$wa!N28d_%RIOaMQPBcPyRX=ZcUD z?BOzd#qnf{ql6Y4gqYdF_wSzaodl9_x>qqLiCIuEg(k)=g%7=f+5=Rzvh8XCNkfJrX98Hj5 z>6?vh&GnU1%8IigZ`jj`Y6f~lcID>w_xBH(#qAIFic#C#30MBI8#74{jU`q&7a?P1 z_3rv$-_5obN$?S3Fyh1P%V-kXo|} zz~jvfp!(_J<{_>R>iC48CgN3Rjt9=bTD%_Xe7e*Lrn{p_Q}8HRwmlw?D4|IETXlOc zHMcNi#g{1#0M7DAOtgj{5eDYuh{JL4uK9G{*|F!cEb zQq1bs*XYg|0qm!pJ4upt=A%_hHo@bOBIFoQC%z}1UW*RLCjky|a>i_MJQK@JJo-vm zf*&y~lp@?xY!eV)Q#=A!AEeH=xB5b--B^!-pk|}Zz0Y4C9x-EDfQJdDlNq<~IT$V3 zuc>Cm(C(O!*$)1#vDsuM8>~{~&f#Bs)0##V&fJdV8gFM>)TTHgJrr38^9$rs6%ixj z#OCZ5sUaf0qz#o1RCN6lkGiO~cT(riL++gTw|T-pw`>#lbK#m0ATZuhNByDk#yFig z$(9+sj>j5g&r$h&ggBO?cgud8NY%*vtltmr+YQLz{r%6`@dA%Q9?yDn(Hs&A zMg6>=xO@8*cw|-cx)x6%Mu^|MvkQfQHhFV7IZ#?mP*n8qcev#z3@85?jbx3fFVvR~ zhe;!T-P2Xp{{?J%Sq*uy)y!P3`AVUX*};&_=aLHU>>7SVIw%+*s_e&t`{_@14;DX) zD1i)3Y%wWTlnqZXGrge8jjXQDCFZG7@-j@bnQcwPX3#}8YmeqEj=xe8KryEJ3DX1I z-%eN2_ihMIV$jpj_pHn#1PhITU{?N#F$ik%gZ@hk0K5llAxzO{L;kM%pp=pfBFAIt z?w*|Tn@gTc=b{wUt}7ti7K;t)DIuXBhy>6oT3O=$ii+gQhbQ?E!CFi_!s|2Z$kLtW zd-K2^2Sw`k!4KM2li)`tt)q8|aya@y4we@uz_z+WS-abBJ1VQSS?a~q+2&x28-#|m5 zX5S{$>rf+HN$ob>g&ra}wFN4r&R*44Q>*1B-)ixmxFL}3_Ty5B82p{Ic^9#2xvO_L zM0}U|Eyu|Yvi*SWN@tu{ismk-x(&m|>h}%utkjM8R1v}E0=Zmg0!1sDP+vc=V!rgo zn!6del>;-4zpF7DZdy1Fr;5B@RQNl3=r3|lOL>;BRSBlQjRUEq`pi~0iKruUeFNBA zox|xacu7_u`{?96L zrBvv$u&0XB(BaJ*u7QPICeQ9k&vNQq4p4`q9IUa5=V($f0vb#&F&zV*kY9N`IPpJo?)=W0VmQ5ghdKryG@?SD)#9T-FvvjFjIjqV!=aX++0gb&8E zr2@WJ*uX^{sG4Eku%F|6{amSL{2AgYPJb!JY!e9=+)ao#H^%-q9uo?I82{8fDY|nZ zJgLsJfP#B}_JvL(85GwAjYc}XxH~t%GyDTavCJl-wC3M<3<6RyNij>1COA@ng+@+* zArf~o5zW&DcX*4139mXnm55ud7ZeP~DgzT`&|oc4*!+5PeXiQ3A@F$D#_ot3LSJPK zV(co%I4E=){3h$_#aB{2mc=e{PsU+dFju*#yi$LfpF^5Of4+3tRBv^i@$G!6w3y5H zR-shoSB^(Ak79@m{Po`~N)-bNfe*&|-a|V1t9rH*te^=MMA92g11q8#A?~pV-u>hE z9~FA{#m;d4@@RmN54(*SQ^U|gZ}Ok*H|XtFJ83_9`ZB9CYHCtZM}Os7nO$1XQ)2=y z?Il3I!jG;raI;!~e&5b?z7nOi!N?NePqw<8(zF=)#pd;(?^QlIwcMOci)85u6pAii zT^)8CH5V7CLj_X*#)xA9b&}EecGqzKL&MQ9%Qh|KHjhP4v3{iX5Ph`)BF(Ruq3FzE4^qK`_HVD9B{AfN37ybET`&I$hUQ z507T>w6(2_-aWm%SBG>Rg@)UMrep{|3r6rmJnYtLbillFifZH9o`PYlIq156keTUo zqrwb)B*q6^X69Q$q1c*Xt9~-3rmi=~dKShoe<_;tCTII6)InPJRWP*!dv z5duYH;O~v=gUR6?n(GE#nR8l{<481? zD5HJEzhnaFske4*eyuYfFUq_#oR)86u^S-bi-dcR6(ppcFPjgTs1aoc7l-BG(9X(D zfbSdGS2(zu=n!de<92db{qGkX?GBINoAb?AxJlEtkN3|L!D6<@5cLhM zjq`{>3I#Fi=fAx_E<-zxnvi=7y%_rKj$}(|M!KF%DRdGGYJIj_X2uiI>RftI2RonK zC9s=F0>8TX`{+?n)8XecqO@23p}9XTA=~abpoq?x!#mKjnCGW9i2X~LVTFX`-J4%D z2vWRA%@dO>Vfk^EclIGv@C|qAqd}uMRNnicgsYI_WDq<~lG&F!jq#&#G@M<9z}`%x zdyz_Yg5?Nq2QwETXNWsyQX8^dpwKfvKh*p8T=jeWK}Q!NPx>J195dc;izxd8|E7Ei z;(lexqMveDK4HOJa?@!7fx6M*ePuN^JLjY7%^J`D-9TBu0`nlR1X8e-uZY6GOs|kC zDQnkSCUpM(j&cpJn6FW-ofmyAx>U;RWG=nPLMFWzk!<=@Z(xYbK)uaYfi1yPVXWof zcrzV}Iky(yW?-cN8FAoY67~I|+NAzu+O3rmcBD5jJtv!CKnLFsxM+Smum$Lw{ zIb`@Mc8jNw{I(N2NqLd=NgFHa6kX4jKf)qm&&dd6{eoTt-8tDv7aOTH%a|HtX! zB24J78Q>U##(~`@1i%XHk)M72`5Sq0O|3l_ohSkc!F`8~7_1@W!=Tv+6_wCH^JHCr zbFwTVb~NQG$)MJle-ogRP+sEc^N`bQelzWvX!pD$dlD!1T&QzpgWUDM2|Yi={}OsWR7a-P`2Ao&AW1+K3%!9CQ5PEK083v{jAvA7T!r2L#v}R^ zpG=;rXr#^^oL4eKae`|Xpn^Bq`_r)woAHad`Phs4+mlT+VQ_Bsb%59BKXUHJm6}|( zsH4j@M%iQ8_iekAn!?tA=dAYmy6Bbn&X*l5Jq$%#OE%QP0|Yh@%sB+xZLhVr2OI%A z!V<#wcDAI9etq@)s2mCJXO~pti!vY%$PhxBR}d^CXFK(y7Ti2sEB|&&M*~6h*-Lxj zwLwRtN{e~j^Cq=y5>Wn{V7le!6S%kTs+WB6gAVR=>TYS*0xhV-^Xbqc>0--`-#}uy zPO0Z-zuqv!!t`Gzj#>X=Uq5tixuBZZ@G!XHcrBPWy|@t{ z!rD$9i94RipynHYMs8Vx1=gtk*!K4L70%yzEVP!}`bN|7ZjHblZF1_oeO^E1T}7$Y z`BmAaZ`lc<4>mgwgtkGBJujc)p(@HDbqC>&)S6^uhJ?ew;^}q{_OQy3^#QhA>VpEG zAv>OcWLhHK832|7l zW4Rga*2QP63cul!MZ1_5mc9(#z|7jgRfU=+{W+7=SU6*gIn6^N(py#x*e=@bA5SEA zfQ7j4BE@3Iy_KQ!hlDKitM0~OExjTh{ha%^o#$r^#2iEa)rEBK)^-n>JvXFBbKI|e zD6rzjHU@OBSpHUTOu^oC^C$ej02Z7-7_dJ;$>Pi!u%5K)dd*^UC;a4*{~POVd(c6( z%8LeYUo7%~F~&rWY~Y9)f;aJ%!{Ty&)3#4;qMI?zPe1W=wdwF&*Z(VC2y+M?fsj#_ zuIP)|2hC0#7TqtjZ(La0Djc#o;HYu0%#07iBn&0Q+#%^XJ&8BPi7wZjWw48%_xFjD zF9Oewoo{Cs=J<4zSoiPc%U9Py0ORWUU}sP9|6=Q{quP4ugLPO;){ z#ogVZNU%cD;)UWC+}(;(T!OnhH_uPr_rA})e`T>&NG50I%*^@D{_Oo^Ew-QJ_CS+d zm%i)NY;cbgVNB)h#B(_FC8th(>9}hoZS;d`BDe+jAlwj!GA1hL6Vz{-T zrfgzBWm5HEf2i`fdO?fk_INT>0X5OsWbfep=$1AfIJ}0SR_~+;j;-~6 zLYN~5Os)9X^?+=KtGzcyTqX@XY_j9>wlh`i$-KpR6bimqeUN0+6>VsV6s)t=76<7a zANl(6V;@+q(# z%G0$LTqG7)H}%4`X15$9f{Gs>#)*+ZWgVX2W zcKK#IEOabV1_nB!%}l2`nF24ZOD~Et^IjWzv&?08E#R(s9! z%P(j3+u@RwQjJN|vcfO9yfpmcUT49&_ z#FVOY)U6H6l>S)DFYgJS67c7>7GcwzDG0S$sj-Kq(13+eMJZA)A37)|J~cy`QiXgl zd#y_rvgfaDR@#~l{AW%~CU zMQtU6uAs4r5^&jR-;NilUJy`IV>mb<&jlFg6N?maBJsoTw6Z|fSJNd5t zZA?2>t(fsoaNM7h;fSPzRWKy2r#7=<%Dt+BoAaxMF&^763O|$;s@~$~vEYb98>JgdF-LdouTZ#1ku9*(_2UqOEE!bOvn)jGb$LuChowUwkk7gbz0o zYPRtfjub#hpPPdPx$CA$zbX8{@6iWYIwea)qSJYaSEF&;&P6yUn#F)V%8GOK;b_yY zS7xC`y;Fgp!5nQZ35-kKn7S$N_EbiDq+E;owrPvRACM1`x?G(!8(F1{r|8qJ|K!EJ zdcbP&2U2biC~5Whz7s;018@|o-;(f~udl7jd*B4N)e}8tWVQZ9MAbyO(?LZ_&(~si za!7Zq$zbNxICWFm=2@X*?B<0a%RGHB3C`m8)>!vXYR-<(#f4JJDpt%WxhtM9_`|T2 z#2c6tR=74FPf_Qz4*Wk*)JN`F>H6^eT)T@q3`yCFP+M&?#lSz;x5s}fbAaQS9h556 zvjo}!T&R=dBYD4pgD)|2TaJy^Mft&xxBf~{v3=trx6e1H1Xq%NPv#vbVSs*qNt^E00&<4NL*cH=RX?WNFsBt`Cuz0bI| z>Akcrwpv>w1mfX=nHLuP1xRnOS=HAUWh)-u2o~b7_-H;811_AC#Cxle6=t&SX*PnA zgcFWc&JidhQ&>5L0~(WG`l#})HJ&W~oJ@x^4lF*;=zie;wSC!3XlciaILgDs82-H*^Dl?ktUhd|LlOvd{kh0&mNQ~r&4Z!~tcp^H~ zhF`rHDS24j$y@dgX4qy#p{k9oKT)qtrw03S;ql|+@=(n>h3Bxh&FiD!{lq>YFC^8| zmt~-XD<|oW!c8-eJD?22rop7!R+uQX8hUPg-BYmED6uSjA!##bGM2AR=z>>zkKcUZKUJ`P^DT-Y7YW5`Jf~PbyATn#@ZU2^Ss3V*Dmx5} zwbqJ4u&toH>0aa$y)uE93gu>Zs`xW10tWRz^}ECvtPQ_Vwl^BVH5o+o2+E8|g3(^U zlk6oWC5TR?FQf$OE$h$7&=A8{IpufLjEeeM0Z$4zM1>k{cT@_=Q|d!Am$haNZ5WN0)29_B5@zxjwl^6JDDn;hQ|z#X-;K zP^Tg+z%Usff_IEO!39QRqwgew{1YS4w#c?k!)s)l=ZBr=5oV2m1-5Tmgcu}Of#oK{ zPHPPNeB+e&ZCqMx64l^7)hq zG$WwX4v0ViqLTX^Dq4`yOt+Zgm9Y6kj}0CG?m8@|;M_4e%C_d|aYlO~9nIuVI zaxPt7MWjH$npHOPd`cp-H^YJZ7E!+&&BIV3*u6w`Rq@BC2w0f*Ig(#sn2z-9DU=}3S1F*O>y*(Qqz0)cFzm|qH_jxEY`1bFdfV4iJz_&!~w9ryr68Y7<}A19~xjircYF>Ae8 z38)mcH20p($+2Te7YUgCQy4pR$p>Lr4= zCbXHLKpG>x&HGY}l6RgUF0j%t+N)g#A{w%zwJHI5E{-StU1Hpn2olhS6A&=aJsPlo zyFQ=0-TfHT>ACe9tZ8)-hM;|M8T@w{9a1_kRE8y3{(cqNw0@B13N>(ldLu?}KPEPY z%Ru=pD=kDU%H^Sl@Z+VEON;Fd@^IG2NTPX|8gb93d8L++3Ky{LG|sRVy$Vs)px@v7N2^|cFSCf_n-%LS8lt z1Z0eQjmJJD(b&82N&C#eCHh#R0rs9nxlm$!iKKhu4uncWKujC1Vg*^0linV?KBfw} z5#e1gL7DE&XC;OJr*$?){rWH;0LKmvb%N^s#N&q@9|+Gziy|cSs@ux>`ute@@J`lt z@iCLRHAAn^x2jV8@Iu|^87?bXoSN#6nz09hvyH=q`9GevCbeWgC^gIbqW7%NO8mI^ zu>Q)T-=HkPc673cuY)cO&G;Ww`BnJysm(_w&H$0*>g4mh?m5!oaK>xHE2k#Znx$ZB zNG&G)@=9gPcd9tv6@UocW`$4f#TiS6Ll0I2s z<+HI7%mZZE)K6X*U>ZDJcvf^&KyFu!+FYu$!rB%o!6wze9%~~#t(E{XAft$|bN~PY z^CeLk_%g7I2!up2{&D7mV;Ks+n>dkso7IGVzcszIi;1XYT)r3o7QpUqTo{ODa`Jdh zNJAd@9DK`6w^_`QOCqNnj~}7`;~d0+W^If-_~9-iOrK(s;!NgyV|G76qw}rrE`s;} z3rNGn$fjX#1O2C(>DW1^EFA#AHoHcn)hjguDn!BIqbD6(&onZ-oYyDfQc!%$Efvi- zMI`n$L?0+gxW6p#7MK@s_c9vB_%oY8D&irdNeM0a(qghLQ1-bXp6nBmp*{lo=_l-r zwW--`HXAMmk57RwQppXU&Ke{qaw2r5>ixi+55)PEwGWSn1f2!%>1$>Tu*hI#9c7(b zX9!}A$GqQDI*VEGUF@CZ=VyJq82QnEwUf~AdXsRv3vvbjo=Hv`P=4gcPvO(nMC}FgJYmk^ohWn&(JO92FbR2~WNG-(eTRE&fo&*EvSZ1( z;DK*Z&nUtqKR&M?q}5w3@LX8xi!ez3yP`W$!(_Rh2PfBIyej187~LQB((bUYsPZNp zJwUxxg;cUt2;Mrko?1F4Q@l0RJwSHbe=8MyVEF?10xk^A5P_bo92f zZE^_!HgPU7X-_|zq>`h#Z4YoBa-78~6TS1t)>?6yt1;3N0fnUcf8yYGmGCq1%`ts9 z^zv|**AGDG^;`_Rb;NjFNpN|{LRt2@%6)q=3SnJ2crnIYx-KF$~ z4z4jpBJ5#j>16!}*`th8{|~aq-CPpUoXPJGaFPHwM6vX*>O&SKh4Z`c4NyuQ$`;)ygOjPo0CTd0J;;|APok8LTC1_Hxb;99QI`$b1UfSNe3?J?b zFsfJOBsAUqtD5{S9zR&h97Eq~iR#-&=D>@*o-%4B-SKh5yoSjeTp zDfun?o2DoiH=!mejR05ndbJN{l0kO|<>yp_0W=yAAUr>(^9A8L#a%W~^ep}z1$V2b zOfGEqd{b3wZ>WEjZbN3KXM_dEvHtDx>oddC-RrxAhNhIT0tAk5b7tWLhBm7jmA9{) z1ZI-JH#(`Sh5lYMa?Er?ckAtsvXH_C=+bE;w zqB`^bz84q$83T{vhYk$1_F&e#S<6~uEW>Y4m@J;~iXo_mh@%hJGrD2|8WFGO za;KP=5W^f=)6-k2guGz1;tLTZBrkfVQ)>hS-o1yImeh$8?#}-*oV&N4AQURn&*0?k zlPSP9jVyq~_lW8?_~5Tmi5!j>n1;(USjCcrQ0*0l@pcrLP^y=W)NO&mtSFd)NkH-o zbd2NWveO9ghRaZkYBO@IA=wy`dcCY#nRXRck0EIit7_D>qW9u3x*oq?aSMXTXZ0zv zTKv%N8eF)^dGH;kG*fh*KkMq-?W)%-C$06oAV9N@DFZIgYI|HI}O$|FLU{b ztUo!yEn)dZ@d_USfNn}U2MRu&wTB6F67yVM)2-i){;}xV$d?Yf!T{i(JN8Dn3j~7? zbzcK;$ z73)RyHu&pyUR7hN>EUWO8HvM1^QQ({zP>ya^o@paaD-bldr*?FEMMoX4|5{c`A-Ei ztmx!orQiN#O^%xJ*@OEiiHqP-?G%Vfc&Qr1xzzx%L|yy+-UKvZ01JzbJPvc^9Ts_* zEjG&H^J5btQ=i=XE5V@riE_FQU&lV)q#ZG6}}eU89*!-aUP1^?X2xAGgq5paqF|3a-5F zBD{C|Trd1^K8WMd*{h1QHoY;E~N?-f1F2*3KX+QK0$BNNndp&MvkW$bA z^e#9_I>r@CpN}#p9;mkKV!<#=vo( z{EHK^#=38jhZk0<6pu}pUX;tjCMvS3{h*0L9KD~s_^v-mNF$cnvhnQQ#yPc6?Pn&k_*Lai4L-QL&SV)#g z0g_wbvwu+gWdU8N;Em#!u4nC^1kTbkLb`hH37JX3U6!pyI)Iyp?DiJAzt5RDLb*Gn zUWh@pA7_S#U5|l!B1& z${tRxM-F+rFe%B>nx$5dshPOX^PO9lqI^K2T8S5R0QnNXheqwGo|v`Y1GuCGLvVPi zJ55kP4rmdTj7LTUTb0!F)`T2;B3p@Gh^r8R&tyF);>$rJ@w==Taq#x)svrvbsfZfA zYE)3kdy1Z9u5tBaK z-MJqd&Tto)hpeKQlNJiSC^44YH?Vn(8!+}Co@@|qrV2`9D+_D^e~ViKF`(B_+PQp2 zg7ZQzPg_}m6|xkv$ZH@=N_>hpyWy|lYHOx&h72di^yn(MB65Cm}FnFcCOsE4wola^v_2+ z3;SMEc`_OLnoE-G$%W7$kJiy)4gLQKf%75gR0b87Gl zA2x5jX@QMve^^*bmg4Q29zvWKZO+Bb$`B+7b6?~jv0v4(e||RSrGd-vp{Y_;EhjUe z%`6o@_I-WvXdal@JFB2>|G*%`=D8+bYu(L4z~G-K*;>?g<>8z4NaUiV4?GjCOo-G* z0-N^1eH^%Z%VZX!O?HiJLhwz(#N_aV!+A@m z46dgb1`qBNLB!}SiOJeeJV)N-@GGq$Jw)i8@chF4ez5|o zb`I-L#2;L~d0Af0753+%pR(KQc}jlQ?c(rNI{6~sti!kAK)$M zob|D34`$r^GPn^vTsYC!%7BPN#AOpZy1&i5DzeYw4|vu|PSO6Q`{`_W>|(myNJWWe z{7Fb6Bh~K*YCLP@VovwS<8MT55zDc3pO;0toGNG+~yZ}iQMgHFz$rxxh?iFp8Q~8x2Wby$fMn(7t(W2P!&vxEYA5_L^ zX{B1-4)eEzVS9_mk3J5@Yg=Ah_^GhvSLRRMPGHu|;tD5XBuv)KnypjEks~EcCf1eq zww{#(ift|QGOPqyb|{24Vr&U#zdqO9U?EQlhWwgY3iwWAIm7}in+?X9!{u?ei*0$DiCEUShad|N#2+NL{3irN9Rc;ZVrOai?c~P`w zSMfWio`-Sj`(y|uy28#x$&_1QJY_`zAX+-TYjqb5f14c+29h=to=Em|=LTkkkDc&a zV5ZnPol_qC0Y!4^t^}g#{92K%$3cal_YHrDG7q(B>`YC?2M{#+;~zQk7U?+p++HA- z5!oan0UB#3)6()A5xV7Cq%=7;L9x6<}J>)gTPV zo@3O6KawNH#y8mUB7%%m+Bhy_OBjhwM>4~W+4MVb59xi^a44@Svq*-O%9nSI)}Oi8 zRM_-e=-AtRv6sIMK-Ye#wsyL?Rx;f;$Bth)Q zA|Gm;IlnBy5q`Xi!I?nv^d4;$x~TNLehI*qSo@7Mru=s`LnI0+*X*Dp0KKM(Uqtp< z-H8n0wo5fV4@=Ussw*5b2Bh`Q^h1+Ix|SV1_I&{?oJ5 z-OA+81}5<{AIK5!YS38aQZv*$FCMyjXL=zN9iO!cP~9q!d$M4XTGm>nS1b%72d2vI zGR~pmpg)q^ui1nVR6`H5;197Tj&nVWOl^%L4TQj+H&&wPfpeb`jNgsmVnP+P;qSIi zAo;|>H&fUZoG>8V3d2l>eoqYzrQv4LI78c%Z6x&t|40e^8AB(v4pHr~O{0khpc8Fa zXQ7^BByQ8kE5OEmB^fo5NswOx7HM`OL`E1pm=MB))(Hs|*n_%cV_W)vC_5m|h(F;# zSkK$PSkDhMGyGogwf49E$eJ_WLjRzi{H_PWNspO#xMYFQhL{NGaB^%rC3%#b|FWJ^ zY(X%H+x6rROq|s9sI)j>FDmZw1J}Ji6mPh13n9*LD0mEocl2pWEOKqv2Qx~I)Yn>+ zn20oz6V%U7x?z_ls$7Ay;d>ZpYgJ%?0Z72*ee*~J>-U}KGBf#e{b1*`JDJKuHr4$P z!wHGTNEUoWsU+147i1&Pw2^A;f2yo|ja{tSX^N}}WDR97RutIt$g^aoU5Il1YXS)# zVXn?C$H__uoe1?r<3(9o6v|(M)+hxV?dMyt^maKnK;IA|ZgyXm(+c*j#>{%=p5IO@ z<|>oC1HWNz@Li8)Dh-kq;9d~MuSp(rnaK1staEfCxZZHUl3bxV>%(>lM)R9m4~f7$ zc^q)!_MwpJj;65&Z}RB6>@wy}8k4v_o6!_h>@SlH&VEj+&ajdQAO}>D3VMs*M2bAJ zXT!#m2*!LMXCTDNk0MjQMqX-kjnwCJ*I#Mpip395IRrfzI@7{`_)v2wBwB@y4fq+E zSLK~+A%KY8XOfR_gQF6 zgS4rQmtz6@25xfFzs#(Zmx^P6cQCTnOqq6T*#A_@D~tGgLKuro@whhdOqquFK|14` zr(h#cNv{bp8ERTJkVQy?uIpW>gXPPnLldMR-v_!$Qao>_==}n*#QF}-&0g-NXfG4_ z?e93P!nN~sVP;OUSS|E`T#ziuVTY>29Y;P3$ad0YEs!Ah0wucEmDec+8{Z!d$rd<*l4K5hQ6Np8L^ERl||wg zV5K*dv0cFjgySsdxR2-fi0Bq_PnX%z)sg5T5ZnY*BvY<6+k=2S{Q16Ba-lqt;F=$7 zF1OR2CA6Q}eTB?N_F)n_Tx*^D*p?difY$`r5x=rhRw@F71hRLAQGkE}`It!ZQ@LiC z;2VyAkuT492y_QbI&Z$>db_*h4wD%%GV>?<0HHTv9640fnv+k=XH~d|tRP2+5iEb) z*n(3gP<=6Ti`hf$HX3fkC$xy(Cd`aj?!XcvjawM-_96uRd~X&G3oJS*zU3~QJ%D~! z&N$>dK^ziPgfoUsrUMpPOMBM+hFu)}3wsE3isr|?mUL|lW0z(od^Xts9y!N$r7oZ@ zeqru6MTUK^@omsbX5Y7yJggka5vj0Pu}$*>XVth}KT|!qD19+R=D&E;Kf|K;lExqJ zQim9R5l_lcQ^;i|%TkT$zr(s%qw~=F>_|kRLLyvY4m(Ud(7T{%B#E^rf-oJ_nJdYb z8dXOh%q%{$H}X}801<)Ev8^5{CsBgi&2UEboQ7G4d_u~b+zPn+K6+I2K|g7{ldC!4 zGnZAPoi>A>c6+ZL80MG&5H->BrT1tnL|=!Jrd?DXWOSnffzJiG7}1i^Gq%3VQb$FZ|eM zv0&ie^r%8cNU%WA-WIugKb)7UwGn*&AtZ9cEWv_?4*S@3Wm51+412f2U%4NKcI&QU zs%b@8JY-!$OheuC15Ng!;cWCW<1BeeO=7gq(yJ2hM)>-Y^r0zs%5wnnllmU^D8ZtJ zR|SL`4fml%ZxOEyX8DI1B{0oxwiDh!H}YaZN@#_EKK-MG!EhUEx7Rb8=2yF4GZn+) z*bTI0JvacmjF6JRld-NUi=(O9l%T9`e0A(pCSNC)X|3+d#rmNt35ISRL*v;6_Ts!tyFwc2{CV@GYa{|@dO|KdLt#(!lBNs>XX+Pm^w zwnh<=!%!-4J{aeM;nKdyovpoV5(#imHaQ8$&tvx7%`^M{tuA~H_oc0 z1&LndBo}-9A!O^q16;?l$x!1D69a_#^ZB#+a#kq zTgE_Qh?*)m(c<_08Emi7mc1Q$JB5(R&VomQ->Hgvuc5^RC*yPWiE+D4)Xwdv5)~w2 z@ybc<^))SV5O^CiybYdljaFpJ%FQ>I$L?3LrIVvRVfUQ2l2Bh8Hv`rxgh9E) zQK*O9w{ow}sOqvFs@C^=-tJ=(XN*9p%NpsiXPh7 zDWCsD4B8`*T8?qv*C9U?(d%3uTs{**xFK0zQtn7zG3LK7UE^+4-urOtwQDs$3=t}L z0UTPjL0@`86>-|ReLB`r@DDQMa`}{#qo?Y6V-mF3C;>$8u{8Y$ViFoX*BxkuAU>i6 zOQ*v){ugtY2TSejK-Pw-M=t55$X39e+iPm~$cRg?6{4zMe`cr01W>v7MhoAsAA^zN`sAW=7#s{oNY z<>=w$}l2HfrmG7he#pJfduUjHA)cdyV4Tx-wUI1d=%95Z_JcuC$$M5K0b zXBizhepFj%a!um6+WaY{=2c=mSTZM|MBd*AGf>r@d%M(}Xy!zyk^91e{7;=~~!n=;e%p?hN6O*2t^JnI{dL|}K zzbl)zJECvGw|RWucKkYz61BJkq=HVEdI*BgyZD?KWC^|X@_%!rY53KnIIRjg?I+Ta z6mA}lq{@zxvK|5g z-vi<9P`t!wh1c)znCvF({yMBcg^7WpcY8BClZSF+YCZq(6t{G2`SI2t|4*p~lYM=@ z(sTy}D^s+5z6KR;5-UVwq-KutvXp*2X1h)}7Wesi(zOG$&Gps4BD>db{pHkuVQ=lO z{Vr!ucyGrF6(jTp5$3kd4>s1dp??p{7a*c--Fo<8Y?5_N>pP_}A^}W95T#QMb>10y z$@X+icP30X8GF!o25fw8m0>85Q{Rq~`NN^++ie0oxqrCvAD44u;=>b=X2 z8qWLOwcneH_e<8gcH4nzFU4jZ(uV&uMTWWy4k<;#$po%L3H+>1TFG;sd>2ewectx7 zmY(GqIfw&cG??N@`FlcPJ*z|)CI>7k^#9*W@Ea3M$?hy9?WiMhpn6>rJ za^xo(;xVo~*S+f>)bg?aYG^Y9rqeYIzLeRoq;BzdewnU(%<0YPk$z8eJuiKzI2k&A^b1kc5|~BswH`cG3=s~=(-rcqM78U zR)C&JVrWQK>ux0g^pdsII!(D<{{MXD1TTzXPL7w>WJY?F8@?Xn6P9Flu6hm65$AZ{9}ZTm_(vv&gE#3jYyuCyf^OuwPnwcVf5u2mm&AtCd=5T9H+UHOpJI>`_}X%qvZ*b1AvFh z>|oZ1i0*G0?sm`hcHG=|LOqRjsPo&izHJYDB9FFVG68wk7JtuZNR)}_fM8xDfR?4m zLhiy^4Q&~s1{pS(@-=`)NFR?Z10ROi)i9}M1nvLMAi*do&`j4ncI#|XDEN4e>{SIg zu^L|XYmEjl@7@*W1qPAG@-skG^AS8Gu#ue5_vaU>!2X!>kY`CSEF50nQ*dta&BcWp zt*PINKuRiOaCnSd^baYpv3yKpF!IFsa--aQJ~zZ+utO{#TkS`fxw-jJ_pHWJ?FX@# zNGY4|q~Wxqiht_m{QUikoMfW{$OYVFd1xxMrxe0u6uN^#TsAhKHFr;xl(j-=y4K%H z1Gp}7{GWD=F9Ei%sfkIwgw|$iNa(08z0iYGx2CkzG<*!Q%M)#Y}$m?B2T2;eX3LL8wuY-Du#l=&{_ z8)7d?{ks#wzJ;>Zhymnfp*L6vTX-QJyLj^knC|4F{NI6F*G^sg<3!0crt-avg=#Jj0^-@_Q9T~})fmvQQ59GGM<%d;TRSa) z5v!cz6Dtgs*N#2Acqd_I`c(oO>(PCsiP@S()(uff_ z(|)ehs0_ggtIgq41&!dY+4Z*E^Fdr=JT`;OXu|PW^{5~Ld?`SzqOhIVPi)JW$l;93 zYAtrOWqPfZ6`xymr}JdZ0Wvz|srAlBTEUWt>BYROY)^M*=}UFRRM91plIiNSR^lr} z<1XV3O1NjVrM!4I11V*B=5WJV-}VWXs+~izsVnRH?)p&~)tjRv3q*){?S+0iU^CFv znW{D2!;XAaa-5l43siiSI*MV`Q$rVBI>ZRKHeJzO^>i;dO3ljXwC=cV<(^L5iDn?A zn`6=*2LUW6G8y%_X2N!mCXrHq(*KM^UfaG&UZ9Eo<i7JR(sChSAjl|o<6-~uKeu{ zzFVhbz*GAGPPyLp+9e-OE{#IOq!p|6df;RXaX!Q>vFq(l(I_)$kFeYJi?~gRi32A7 zoO55h>U!oio3KlgKuC>~n+)n9f4kIM99(o~rfqTaW;Cj7>l+wk8cz0!0{{tr(3mI8 zKrSaV=XKCCziSK*9OKdUNx}A%4gHf|o%~14v?q(@TYG^@KKz=uC$RuL1ZV@g;`%;*0?YM}{O;n6RDE%dZuLA~}Q@{>Ih%#Lhu zPVZcQft};C6HYGyO@Rw0jGq@Ip8bT(m)S7M0QeC%!;rf5;s5L${@LhFph9Cpb-b$b zJme7o4svB{cI1;YoMkzun_(W-56Tn^in{DQSEwD^UgO6ej#Lh&Ipp(CtJCuM%Vl`q@aXhnW^4#E}_S!U^6j%(|e zV_X;#Hu$tRc|yJi;R`f$#i&|Httl2IkXE77p+n|yRR}3w%Mfzy5+AI#ey{I7OJgMmPEDyA z5WeW{aX(y?ID(Tq+OOTNpYC0+X{G)&d|{+fvwjFR93CK=_~rVq7eJxc!MbOju1;Z5 zk*%(g4kY8SO_VIKt)bq3o7Bb+%_&HIs@wPi2zMEf3sJ77p-neULiI<1r+;o2e?Lp) zZE2%+R@DJGy^)H8nOQYSLc;OTG%h`TF3>fy$^?PFK-16%n!+vX*gTrynKC!Eiu_J8Ul1i zPp`MQYW>D-8R28e8YwYpkmRDQa((4=xjR*G$M`^yjIpZGQng<5`)c+erH`LmAIU+R z1A5?t5&_v^;N~BX-CRDKwzj)dV%@iLcK4(&RqbL=%KFycwN9Ht-r!U#-1Ua?bn>Pg zSV49(uwJz9VD!p>c~`A}@Tp^1*z0Melya&pSk=Pc$1=wVpx{qiT_9zluVds^yz6+8dcCY@X|@ z@*RZ2`herB`0M>O1tOj{^=R3JZz@Tj>xvbc9N70#%5isR5Ri1R@gb%XNqDTfBey4d zMVjBA3RM%Ejw2ctYaWLV&p>-(-q*iNX!!Ufhhr^9@yz0Vq590s(HS?@x+H$>bP#ah z;Q0kl{{WwCWgL`Aat$vi2{w)Fy&x!D zG>`6iRx!O%>_bf85}UmI>rudokut9WJ~Y_1A4>qfsXAjX`Cw=OZ<3M9`co2SMcR{^=Jx%TH9HYEi5ri~|`LK^(-@ z9#xQGfe$Og*68S(zi$zy{x{W3o_1V3m#h1sxAkF8cnh#SQ;Bqbb z@Jrk|>}~TA{*)Zb)pb9W7+hAi^#ERVNLZSTgS|(|s~Xnb<>+Lo9-d=`?5q10-)E>I z?*|uLP0IEBmr;2y#mwtEq3ewT)x1uYm#3Tg+XlObyyF#+#BltwLnrah2ns~%p#0$0 zC3Bbq&S}*hrnb+S0{HQllIwFn*Z=~WwX7keES&<3iF<9pi!R~0w^8%}vL(}f6k0#N z)`!0QGy1dgqjdP2szkblRhomyX^6CKZ}uj+?hnZDg&EwS-Fn1yI8o(^{kGAgn#pRG=6lv|1POlE2p|yD9Z6wCa4G!NhPsvSezY78Zo9;e4u`p%n+mS=zLEy* zoz71qhbc=-)1@RihOC@xjbbz=^nJ^@JieN^!bSAdcl+*+$lL-K7HQ^uA-i0X&k-QK zwKYF#wGXM(3g3(BdB1}2O_1vJ241eSH7d0f3+H31U;R2M!%1XqxXu>Qfbi?;Vp5`D^fo*+ZKf|VVxdE;C2;m+@D*u zvaR;Rz$|ojx%d>GZq?4*VB?ZM3mzGqOG~@1e%sB&k$Ro9J?Lx=VJDmHOd)+iP<{zn zGbPb&+?8!%f72xCl3{ncgS->s2&0`o$DA&Ah4-tFq+*3H0cYSPNXx$sLothw4EA0> zI)9kJUWO`^3$Oqi5SqwNB`-$4dPWM81^>Y_c4kSRA1J=4M-a zRtdoOXTz|`J#;and0O9~rHMOERL0oVEJgYJf8AWovRLOqRE*xEKA`QI32eh+&K|4h z?``+m3weuIP;#}59z}|z^PfWG)7-&N+Tu*H2B!uwIE+lc&U{6E#GI9B$yW=(*W5(cM_9+H5E9_=$>P+cdCPRlBfZ(3vxK(MxrS17K{ds^S>e&UN9Vy#l>EhC zxPrrWzM_1&&0*VYLAGk`rF#iC3C#SehAoM)RiFV0fUPlWy*_*>KD7;LTj1_6{Ke~W zyjJ$XE32L*_7q&Y*!hqqXmNR626T4HU0J9_W0^O-)*Zmf@2P*FaIV}A(+pf z7$LMxrk zAkK9=GhsB1k^M&O_R;KBIbsgUV4QF>-)SlGpBfV(WupI;l1fRq3^b!wH58f4=G)xO zn4h#%uAF59Pq&0`bdOrBB7$teP3mlJ7wfGD%jK4 z{i<+KEzfl-sazO;CZNHZJ$uWS#mreeycLg}D%EVg$3%s@=+vfg{wQLg@tboCxnih< zBdza?lPmZPKd=0iQ~{Bxu5`8qX+(@^m_RSoA#dL_CK#lm5l{Zy^@%B^Dolr5FXcE7 zg>|H*UC?6MQAFWuW&=1TLVHL+N4pwb25E#lwOr#JBz{hd`1yrUpQwFdTcQH?O`1vb zCzb2oi^?#9n^sRxuLYWxQSxyqx&@<|DF?%y>q%~qh1>_r1wQ=29$DUkFikTjamZ^kQSVb<;z+0Sx04~Z7L3|UV4hew z^VpW)i_37m95@O`-Qg5Q*PXlJ&Jm$&i>WS^EOTruEVy)?qtxS4-CsQX_@6H(sWKo! zrh11t=|kQ&-R-jGsJJXU8T)2(>PF&5JD}~y!=KBUpPeQp%CrjNfs~^gKfav&(G*WN zOR27QijGuZ1CoBUolh=O*gbm1V|AFCJ9+Lt>Q(bP4Pj3@g(;Jd%&Fnt8i}|O@?(Az-9}(Zy0~NW*GP@^tRWzNUOmXjdrBj zmDyB@yJc4zboz%FEU4rBAK$DPJlC&Q7w1XC)jWA0W#3dHM+Uyi$>Tv(%BoxQRX|QK zb2%LF9rj)a8u9x%pC5#>ozWDC4E6GV>a3b{eL0}`!WT>s^|zf*QP7c-h#i`dU}ajy zUcVHRm6TUJV`Km5%m1=~-!ODk)fpYCaBKXUub9KBMmD-SNQ>eOi^p=m!&hRFL+yql z+Z0eg9it$t>gkaok7xNa_UA`}y`(5LaeNaq(JieqL%pBIl?HJ5ZuLFeZQ0P+5jDcL zb3e;nb-?nPMGmWvwb=9CjNe)n@O~kR4}f1M%kDHf$9uLlu9U3raRY;2286@gX znd*XB8C6~Tq9gxEU9<%vW_CFki1OxAzl&vud?-@A>6luk0U zI=E}~M2N`f^Vg_~dZnr+-oIQupXnYpnQIVvAc+Cx5h{%&j~nalqeX4o^8S^zc#eTf z;kb)5+#w+$?(PlrTI#~jQ)c3$P$IBxY^0yGAnL-hZkKX#Mqc-kDo(hV$=&g@U>DcW z>(>oZBt*svHqbNXmE@?D!lzF&+)%9|`oi|XJt=|o*t ztjMw796K`dv~c@lQdI*V*1LuA!`ZBD7o>xX7!VGcZQoiPrO)Y0RJb*|M}VmJ(C;VVD;U~xv$3zqUc2?H;;=pg1?48OF2J+G=BQ~LQfL;uQNZYxiA(2tMT^&0lQ_kN+ z4i`YFw?i{^^^p0;8TR)(zZ+F-SPG^oLVs|)+J;CL7e$coerYLo!Efo-Yj6R1Q5%ko z^R5<$$uKu}Z8hie_{Y?X>r?1{<$uWJv8Su2qx>vscd!-H!(--^o8*tpxk#eJ8MH>jdu%w}sIr=F*r&=tv^Me$g zuOLKDBa~o+c~*R`@J>|Zkyf`b#lq;GrgiO4hkZU2Hq+-|P~m-LJ)V-!TNXA5p`#_h zT&kR)6^u0(Ht)*E3URt1)kp}(W(GChwpPjL-P^Ejj}OUKvr4HbwKinei|YvdCcJRo zoD)#YxGEy1s2PkchLa{~?*X-@z@#+3-E&2L)*%D=`a@pYKVG8~8&JL@236Lr7l+Vc zHZr<(6F--%d(TYGb?;$D>|N)kO^}{pQE@cv!8AWgY}1` zQ6nA76;4!v27u1E##F0{TegUJ>DDP4 zbXas2k>IH{pK-Y%xI%y7P^?}H=g;ggRTsv5V$rH*MhSjBN9r$RfJ@BxcZ(Gt?%i?4 zfWWmTK)>8;n%=nc@_0^txKYaX1~pO(ax4v}Y8q14M_%LCjtWQYt)SK$Nf_rip?KX? zpf~}~8Si*rV1QgGTmrOeS0mJeV|$7Ml(p{1l)l2fzkLlq1l~BFI05OeSOyc685=_c zX;iRA^4D|_O}AMy8zT}K9gQlWy#4#z*$F@hYWPB|ox zeny%4Ty*vrQ30}WPnW)fA$D-ckb9eO&;#5QQ5Bma2>881I)5M2dR~`Ua7f799zKql zBiE#fq173zI+v+FRQQqbtL9qU$=d(t^B*JKUN1cwj?%yewHru5?l^Xn++O7%f)B*| z>$?4pPaV2!HDlsAjrdOY3(?4`egTHghXO&qmI1*8)it`lMma@)G4|Qu>znGBupo52B{7JE6frQ53pok5`ai zm*rB6@^`L0XeLt?Ye{RTo%=<8Cw^bFUH#=5{Axdq!kk7 zdZfw2@=Gg3iE!o9>L<=0k7ety>57zUDTAX@sVlAy#|NMJnw^(XxZz4@^&_OgnO7l~ zRrQDrh=fmRC(@XH+s_mz4aMW|rO0Q0wLHTd2Dw9lGjm;Q6YcqS9dmOcF4;0W=XH5j z7dVI^uymRgpg_a-%i@zA&pi&0H{>ZZ1cq=zV_V$z;Vd?rEEo?9!v_jGFms|Hb=6Ob zq2EX4>5hegt=s6^o)mpe-xgV0oloFf)Hz2Z5`#+&dp7HSM8MQ1l*@P`$y=@7kU=r} zi@_u1-5MLlCGlo&(d_J?*F|YD^vL6vy`95X*4j(Nq|(6+^8;rptX&Vl`d*GMtY%+( z7WDPz39`w)w8U3wH_D_9AmhMu0CdP%CR+I`H5d}rX^cLb0QDlZgir!ULi0cgOLq!H z7B}Zd-dZp%^U05vjypSv4Gi%DY4p0n&EMBP&kR5urY`dyuMZ&&ga;Ese9MG=lp(D$ zl6vJy3T?|>(yev%l!nI`R{jC3M5hR+@ywhjc|e9@2SkCqO_mQ@XhNnEiU~3q7J#=m z>h;G|%F|;k-|;O8j~rIBw7$R2G=Z{MfoHs=!D-%ov8lDFrXB^gfW+(V0azScVZN&? z(gsghO)8IG!YrWNe^BH13An4FSx8QVb_mB1=5RfZVQ)>GhmKkv=ebsY8$6nDd%wG~ zyj$`xF@B){~a>XfwFyr9=B)_(>%QyU#Tq#<9c6j{5flj5K-R$bIc5wnY| z>5$j)z@zG5UTyZhST${HedDV9(IdWn*3y2T#IhA5$`Ffg{rxvYWuj~f4gA)Jp$+c} zam`$Ji8kWfp|9EeVJz!&3%nOe;qGNvX^X6w7L*@}hKVtQ6lv++TQm!}$#RX@_SNjo zE(nn2wSP!q(&stxW#peQ$Gd*e&8;WzBHXp*tD>*=e}0Co=6!@+^QX`-dwesit1+kz zXeEoqH&yrgy7L98a{ZX?W5XS-5sK-@Qec6xR}ytmH{Q=7$EL4i84{ZM^gEVpn$@a> z&m0g5kTgT(=n;^4hB{)uvw{MLMiiff4UV3&KsB^P8nhIt?3U1>teUNC3J~U_zXKg& zRVCY9eR0S4tYrk&p&q}c(rb#p4d~rl?Cl0`UkvTsgxfWH2pk1P@BRcV?k%xdURmhO zWRtei73EE3bM|#Dcj0S!(Lk)LS_+FIrt-Kl%?nMFwSJb?n;j2lAztC^_@GzAU6ce{ zU#cGQAm{eD?0THQXtm4Y^snKAFiBZbW3!M??=$pe`enWQycJ@zho@!kpm2hyB8Fli zMUHjzOUdIf6W5htEBra=X6A18Dd?n z^JLq#T}VbZ^o?#SZeh1u5c{cKSy*$uf_g4^2m$Z|4SxLTKq_f5u@#H(RozvAAo)L%FtI1~|} zE8yTd{-TCvk2)q5mc+6$sx{E?PJQcnedg;NesI4JOYccbWq*yWsl{Q+DGM0^U$-9*C_nmhKqNom_m>q)t!5rs zZaoZHrBsiqs(_eAUU-E|c46=E^mhv1HwV!6X*V_g~4y{6DF;o zFLn^{_%QJX4VE=`AvU!mf##=6b(DS2CPaq*{AyklX%ONwcn)M^{ccxz=L`Zg@;O?H zLc(pQHEAPN7ThK{TyH+x?_bL)5SLfT@VIa2kAoLqLbux^0NMV_VDvQ&)K(*asGWfx zECXB?2hWtKz0bI)5Izddd5hM|KP#72)YNFvd`OO-4>HJ~9|1A6e`p00tSiPkj1R8s zinssdJ&aJo$I~&sy*wr=5E%|}{E?Vv8J?6HqGt#Vd-OimfUf59yxcf z#2$Iviv8VSIhz=Hn$h1Dyl*-3P;1GneenwIPoIdUQXDeeFdOpxw4*iXXvZ7y0;&lO zxErmE|26sqtj*K`N|HRLxSi)oTs^k9o;hrqeaNI&m$NuVG_sX7exOM65wY+}u{xm? zAMvI0$4Q|$`xv@!AZHZS43IA)xl(aiFDO0Rpwu&>+Rn(~sTU~iV0eXZ!;=RO3eo1Y z=3tgqH^e)Kfid^?76|3qg6IUi0zefwu8?>b_^LtYuK~`_BtZ|rxh}#P}x1U#< zwsqvaY7U|786xCm_!wIBPAMQaV-l&iVv?oV=69$cUfU9WbgU2oQDswU6!A72e|0_% zN#Jo@6o{n_UJv2^Od0OGn%GA(0 zG3Ho*;ldzP%Gsf^etej6a@`}SLs&HQ%OC6who(djwt7}MSeRi23ABaq`jlMQtGqJ> zyk|1rJJJTW)7WR?qas4$AA(j9T3s@O({*Lk*xGmkJ2&w7~qmnmk3chb9BMNol-cv zqz&$V(j=YFMbgwKsU$Q@8bpr7pE0HgQnDzelpUBLuu;0>u+co_BZ+(>RO@9am7qMl zuU>0LfV8^R&#p`dsSgm%b=wE2KU?M?|Cn~^K!frnfkR3<&QxlJ?UhHoGljASZ#6eBKT&0UIcsrbdjq#@H6i*>0R2^Ti$ zS60~dUKd6KqTQ?XdvNNd^sc2bloimb2th%xkXz4z9*WUvZt(()*yEa$ZOrJh7|iya z*GVvtwQ$S4=4iGamjKz*v+s7uO-luP}4*+k*2EyUZ2o>QUB~f`_CL@jfqEq)sC5nN1N!u zREh`AL+gD05(ZOCZve!i+mANw-ff!p40nbBFxGX>ZQn@n_?1oN#BEjJKLXH(D{QJL z9%!4RaT!bZGCZHz zl=w6Kl$7ghqhD`VGY0_=M7(tl9P;BsDT$P=wRPVHWrsyQLTxM^El>B=F9w5dHAr#4S7HAOm=-F%)ec{v zhW_GnPtS)+2^zM68tZjQvU%r?jC-NKJKeXZh9+p{0uZ%LDyaC0qPs8De1BV6<)@m} zvNeAv-+5?|)%p_)tK~Meh)PJM@J#v&+gzLE=D$l*n*u-$`tN#uF#$_zRZsk27;REg zG~bN0gad51JrLj#R1Qc08coHjv8*aWEE*6pEYr)pZs%z~K!&1Dr=UVmC4fs&zl-Db z^_Lr2%$g)71oJK%;aXYc9wN%HN`1JDXdo28KZzI#ZPIClsd(};mR?}1K2YyjTE@Zn zBuord33`IxfUcBMFp{ zjCEFX?7cGls5cHH8c0pI*E;cM@R)v0p4@-!kg_R_)Ke5O(smPkO}pH_Hi>5qUDo{L z;=Ff};PKZd*Za{xZ{jucf7}@rJKQEtCN~ZZp|IHXPWd^jLejgH!1Po?gBEjGbn-&?Yvd^rTIad4h+deY&copHHJ+5(_1kLTP+e@;+R? zXNwU7EG`pDe{o&h`TDu>>KO&V#AI+QM^JC?@r&N?-OYflp@jSfWaoKfE!{rJA0E(9 z(q>~xS=5}(ZKvF`_DeP)Bauoxs3YeGp))Yw4*CgNv^`dudTEdJ;$W%x+=$aED?P{3 z?MFr{eUr@2?6tZah~ZI57@DQz0xDdhgXTc0hMZWBhoOKh9XO zv@=?{YdX?XRc%dN7bX*bl*#?3sUjaGLA?|Ar%I1S_iJg2B!BpsgInSErk7o&vAmg? zw`aD=8UDj(bqef^yc_YHTw=(lau-GgJik0zGYHX=x%_gz^ zczd3w+<2bXfqR6a7})2KGqC$wj!ijEO4~itc(=E$yi7V;HSwy|)Q_H~j!~H1x$h1n z^9RGxKzSx6sJoZ#`_v6vfYlJ;@;X4X428Of?Jy&*;?}0K zo*09ese>rZ&g35y>}pE_%pI@wb2vOX&WX_uBxHJ}nSU;_g9CF==2N}w!|c~yq^7#` zGv0*IULS2zqnIx)q+PQ|Zf?Er(`zkEKsOirTs=~Fr=4v=Wx^Y-LxZ&7 z%;fN`X-ACb7#nCt(+6WZw|E-G+mn26?luz`U2%bp6Zmg7FqEGsLtOcP8<^>(n(qf97eh^FX4bhgpsDiR&Sl#UzPM zjl*1i_2v4x89(*O-dGGv+TLB_8kYOI)AEkrWGaupVC>bXAzwB7KQdMws3)P*=njz+ zvQ8Sa-a+2%E3RmtZ~;`x?_yIU9?aKt#qq0Of{VHNNZ=a=as6sgas-*lanGNd!u~cS zfGj7y>Q#4muM+9FzvyepJ;+1*aBUWAYWuXysDr1$X& zCAwb(0Y|sNyh6@hV=1F%AuEGq+60NJUn0ztDVhwz1}aovywd=EO(I=trKPs6@oGI< zF~Wv%&N(i}cQIlTALY_3OdELDHGyelh`}}C96%uR0{&!! z)lRq1N7{ce%dJXiAnk?-H|7$`KTiz?tEGMA9AC8Kp0aTUmOMp!J{U)|5(CWZU154lXq|vR(xr+?vP+oe_$}cBD-Oi<|yD$37g&@sG*Yb3E8g zb+Ef1{ioZWrgVwOu;=<2ijmG(py{5en(wgCGWqVHBO{=tq5!ss{NM} z1K%`CJ(^BkK$T816Qp;@7?C{M9o^yq>_hpm*~j*TT|jZRQMc6n;MbVzGJ*uW~8Nh!-LYv}H&*7+K>09Rx_tB+|&Jn5C`mZa*RG{2luLMagV)Jh)_ubH-sGt9uB=ERLDF269l$!epueE8 z(L~M~7AK)I7`3v1PooswIwS%N`JwI~ZDhMl)Tu7BsO@`UdNL9c%>+XXOKt#LHcd-kh9jmA(9Vt zD36(d8Y#DauORTgE@OS+Ks#DP=$t4*B}8P!3UzL!?ib^1A6~0?F`UOB?}Q?Iy_bvl zyW`Bf2DipCEY#Z+e%LsL@bymq zmEn%ew`osLS{vz!iA=_cEUe#8C|5h&q2zm5s~4Czt{K`iC93$NFhJc_<@$kz95{|E1fjFw$oNM zTpi$&OqBX8QN5DYJP|hqPLlc0R1M*HNRWZbXF@#r|GXHaKwGHt-?vv+gHhfj8;u~% zrX(>^Zt>i9L~Amu3vh&Xh*Wo(fJ0t~Sf z6`5CK0`^HB&l%~{7_lx3L>dISwPn(o=d+6>O zwnvdz37&3;?CuRU>;7fhDdxP;pvPAQqt8#mKP*EnX4A~`gHQYWj`EkErj-jFG>o z?3b+no+UR#;B&~ou6nb+(1f8NLWZf{BwHFqu9nEih2#&~7dOCFs<9n6M>W0aN_h}I za4`_Ojl6JjHIMv#=lLLopu`952YsxjRg)Rq@?Qg2XjIA*ic3qz_Trn8CTd$HOkL#i z9|(S5CzNNf;s@wqm$f3YY{D`Mc-?!c3J@(A;xAR#dRk27{IE=;(>Fl*5%=ijHXi_( zOwY_DbN;5dyoWwpLdCC1h|cdoEO28$=Rk~qLsBt!CGbf7=ZoNDhVFk2V!cCg0TuB~ z4{Vm_oPQyqq$KDLqsYUqt|lJ)rq>Q1qz!)FX$zGH^i0?bM6Do{c$RS6mzevT z{>CkA&Mkchf4tnj0xIDcNse zpkWTQ3N3cJLOnP3=n{XS2>DXhbN9_dB$ziUJa+1^2zV%Rg{<(oc#k%F?!E60`s~iC zX}uB22x7EU7zqhqi{Sg(_sa*3XbG4KdKOF<1O>{po=$}x6v?Ftp9-Ve0;uFf`HoBy zlj2yNI~4Aqk3o|(y2!&&vw)98TTu z36`f@7jH0lbZhwDCoJq0Z=QQbF|_J`gjP5Iw%YufCGZJAi40VYql0&KqZ? zIl~1??zEM1dXBV$4 z8$TdIE@si0%$64rhSd7U;gG*9_x%WVZ5m)1r(70mt7*{6eQw@f&@1%HQ1FQh_&jBL zCJ2x>nZDTom=FU9#{o~T7!-Urh|=``tWsI9z%zh6UllJ7al}sIBipmp{StN$h3v^P zTuODsR$l;_FnD)^O;3>mPqhhS@;`iauRj`iH=#1#F4MZ??ygy=4C(s;l@~)TWb@2F zGjH1v&f%S^u-^C4ZZ!joIy5S@LY)v`m4xefs%Zntv=IiD)F&=gYdflOml&0d+`-q| z#QnK^rO_dWu$D>$ow2w(oVt(W5~8H&a4O2p2-ZtnR%IHTXP8zy$u@l-mDkXfOE~;} zRLBifH%Qa%FQ6g9R~Yi5k^7Uex8o| zwPQ?wrP(8+BT57YH8lk2aFrgK>w3wnsQ>~AhyzH599FBvBU|3*+)I!TFV$!zB{tKW zSKTVQL8I2in3zaa0eD2?o%^OhYye3~u2HM^b10ooAKVw_IB~;**syUtR1s_ZM^ZAB z_IkUzg7Y13tAk_Hb}{1E2Jj(r{_CSyr$ITT8`i|di0vBMXe`(WKK2DAzDeVVj`5@_ z%IqO@!>q3@?iGB(=#@j4g!Ek7jOJ{Py%f@J`?nlUK{U7P)msgvLX)3Q?s>}G)ZbSU zikC)gF-^w~h$q$!i#=K~stE-xPO}ah8R2zxq5 z>ixQm-rGet(jSaE8W%buz14}#r_^4k+C!PhY2W_hSD36!RXpZ)#99q}Th3ZfH z&!O_ap6^jXsHgQy&ojwKKKk)NHbGp811dF2J2APEQ+$2;mW@ApVJIIeOCuxF*W}`A zvx^n;1Q<~svi2^X!sV0G0lU>B9VD_9N1xOkre2+YA`!fV;=Jvv5*;*nAv>q+tI?^n zJ?)Hi2}yZKw{UJMmk?pwjscU+m#XksU$SdM#v8;Eut6wo!m`0J9hGd@n4ebG>jRLP z^&wo@N&BsGKhhwdrb4)cyqcz!d<}Mdd}XC+?moBX%Q6>DY;BwJMORr#oQ1@yP7Y^7Uq$GMCdO-5;}d&Cv%S>7vxjqqia7D}u~WgZV+zw7m=s0~C>YIjTk& zvmTeGz-wK2+KyeDaP%h~;lFI1AV-%bokmqv@ywRx5`$WTz|*#=(|HqT z1S(cCZ?kh37^F|1K@B=7-M-#3NLbBk z87ji-Js(QiEp|;luh-sxF!?t?W<7RwQhB< z?q&6H%_=$@P3H8aM?tz}1Lv+MQ|zbaYF)D{O~cU}b403NmeQ@FHH?gxzCwG}=<^#L z?qekLe(CUg-MAQEY%Tm~q;A`5zHgNTf??nOTK^&P@jI~VW=>YWL@x8@=DF7oBR>P| z6iHB8rq|XjgCv-GxKa3XDAZ#gGDBi#&kL~{zi z$$TZEkJWxwBp2wRZzrY2JZ1MC)KRuUt6C~I*H$h%vdqpnYo7HK!iC4-6;c(*yEu9U z*Ay^rzaJSG?PE|9;~M_AMa{9xJY zzkL0zNXZmOZx(M6G`eOK#$JURgpHcVYW0;kNtFNKcjnea+?Eip^*{K_e?9k~Kv5O> z&uul4`$MI{9)5z_bCAcfFWxlLNrC63*1Lwd(oaH{AeJA{)$R^=P3FI7__l zbyVm|f7x9IL%fe%`lWqA!#G{4O?9B@`6KwjIvPKBv!t6_2vB4(l&qewL@nk^_{^T={yIG5a`jI?kaeon!suX%n z<@WAb(edLYGOYQ zhK9%px3>M*@3c3!XIsJ=i!&Y=kx3n26e6xlL`$HGFG4Pn87erRvFdKwynrOHfQ|@a zlyPIXbSPP<(O2BOysdfVd-tv|s18#rR}!C}V~itNpHn&km&71W!C$obAkeH5pvF}G zAtudlFCK-Z-XEMX|I>`0!6eW79lP!QC0p1B%97h96cZKVaObO{iN7kXVc`!9;wnx& zK(WJpmeUZn=4l(5a1!`j$RNh;y7Oi5+^^$mnXtMqNko(hc0F%Qt6{Br9d74Bn-VHz z)8;n@Gj=y?#n%{kp3xVwaxt2m27d|HH)BgwhUmN$$`eWv88Ah+wcrvG`nsnq_ucwnp{9ZLQYV;|*-R)ADVf+|ftqn^}6K>TH#?=qh6RiBF@;=-5+!nI8 zT}aUC{A$%vtS26JrP$fgin#LH=UQ#Fh@Z^lkcS{IN{C{sk!sYvNIA`3rv!C*YV;SO z3^Sc-wcU`onl6JRTvkdSPM$AqZYS+C%OliV8@lzm@QyYm8>TbT6F}m@)~GZpSsZJi zigBnqpn<-4WQ~MIyB%~lZUeF2sRfp64+d7h>k|1s)}wo?!w_5Qi(LJfu`qt5&GFO{ ziQti{an~y3Ux&-Re+R)a(RNq;Lj6f_sNj)=0!OOwBCq_*eBJOK=SdL}G{+IQD$Tas zo|WDfR7M$>|Jy_tNe0GBETUN9U{!)c%+&nuv4Paz=wfSI%IBn5u@#RP7HA~ZVLSO7X06U0@4q(ZHjjdEiG7+y%!pPG!kmR zO~8CRHSr<9UNQO2Bae9pr0Y#C(g}5g)p$fEc`s6{(9v&cqw}~;lmDxW?d|;C@!XZOVsQvf3oPc@ubBAdZr->KrB%2k zTU1)J)xp^6){m%Z9qXlHpb8IZW+!`omJq+I}7QY3Wjg$0@{eb?M?`8~DA5m50FCSTR_fVIPPpkej zx?rWs?l!bPmRzhkQ{%P%91)a_``C*8>q4sk?m%&f7MvqOS{e@ ze!K75`QvD{7E!n5EMMVGq6%SU%}5M!?I0XH>hKri$ruM3oMZYeR4B*;wDke5Yx%fv zdd*U5>PyHm6`c#)O#~dqEvZnMnp;O`IO5^O0;lxdLH)K;M@%#<-qcqs;1L_E*%z!# z2f)Ciz_4!N5PY?(z{eRy1wuop6C_qYW#Exp%n#p=>QImkm$b}&(PlAuM(|B0FE}U_ z)IyRl|6_mZqIP^Y)ZeDtzUNKdu5$;6itk85uG*@g_bUt3jYz??QdT2+Y4?edf_O5FjZDhpH)68nS$!Lxt%T%F` zAv7^mgDfhI8bt6+Dk9i#uljA)j1>?`Owb5Eal#0;jy6G<)`s7gL|ZI-~!nV^K( z)P8GOM_G>oY!6?jQ49tK6LUD^B&~NIl&+;*!AbD(B{9@?&gmlr5|$1TnIbFi46cxg zcE9jh5R9^&72k52zS$8s z>%9q3dEUg>r9CG>7@#9ntP*qBxN^4G@lBu{Pb0Eob-Q6A471`f$hc9+Mm#gNnY}%owr_2&`-3Y$>PIW@ZG^%dHjuv3(7u3c$$?1P#ldFJ@%cciaTnPQwO#~Oxi z4Nzih8jHw9#Lp#Ai@y3Rj{(abV$Fq%i)qhdZ};buD-ZngQhFaY`}=dIr)WzWVq z#AWa~=4^j`g4-%$y{?UibhQJ!-Vpu4P!g6x;M(;(@)D1+X>YJ>2S0(IEH6jpZ&yA& z8{H>_6GCY_Ri&4h0-FAdAO1Il$l)j4mv1Ab3k*$XG@5)$o&3i?5K!-_=a|TDb-yqC zn*|UFOZ+FZ%z(u(Gbx2!85*zZafNZT8p}*ZQu^T_VdmgwqBhO@!mgUW3^RH6098xT zhwX%(F=5<^4p}nhN!nj^Ht!divVqq%t!tSGl{R#%vbE27EJi3;Yqc&v1F!qVZ==Ja zZh3WgsdHjq9ep7x%3|TE&=cC#(NN;NZeLWuFrXh@erU8>8)qMqUr2;Tr7jG~?n%fmh-2$Jvb=@B zn;xvq4zM2%lA$4{Akp05wE{ufy8Tju?23EQu8LbT$lZj=FhO7-q~NRz8Cj?q=4kl7 z{#vo^GhG8V6l8EY>bO9S`GL^`#a$`oSEJS--$4uL^~2V=;t#}SKI@AMOlz=Df4N{rNY~-G@D$qJ zRa2HKCvcDb* zPVHo&LvLeSAKu-GLr83%^=zuVn)y zGvSy092Y#X8`pEu`s`_t^U4)c&{UehIp~<%5mOXpM>f6E&W)}Xmy^4!;n7c5czVLv zS0Kq4!TzSVeVE|8-%p|9%5ppXt>gzH9-D2wkwwgj9|*=- z2?r0Syix{!$H>S6eBUN%o^7UG;7iF#zL%AVeTGB+&fD#L;y^zljj2^$?sE3j>f(RO zp}x&A!L7GX=-Jy-K@P1$f!kxY$3q5sMr=emNj>acbYGz7fw-$F14GE0Sb=m_NS| zi^`}*bAQ62bYo7UXQ8|*V+_pcW@)|kg;P+F+Y+A)DGcsWR-r}qP?h%bKmCfY7~yS zHH~1mA)@zZ(x$Q(h?dkfIhOb+eR4d7-E)S+wLNlREYto@u?UpK246--m%Mt!UGvK2)vZ;`gRQK;DRlJmX zqjy4DA|eV|+?iyUbWRoXZID$qD^7USisO14(p@HBAb+B1c@xb4wI+4%rx=tlE9CpT zzVI{$Vk?Ouh?^*4Q6Lm2)^D%7xT#~f4!-Yi&F@|mJoNYoo-ulJ>iSlCFXIcv&ZNSp zr>~`6Yap7|_p%#F%_}7iCF2Kf2EUez`)$i#P#T^LN6aR5<@pQg|flpB?!o3OyB=+u~$bKS3_@e$R(yXPC{F85~G%N?C={HP>ZjaXRW z`r-gnAG)B@-gHw^?!z~J#55-CsdmxCU-8Mpy^*voX4B5!9beCS?_Z?14B#g9b;D4B zA{Qch@vNV+Q<7)xl>%oRdp*N7ELzCE${QJhvP7ChC6EXro_~CwcD+Q7{ux_mYrR}! zuFyCVoBgw9M?kcSEF5i;J0qUJb1G1`*-m-a_&!U$fp8FN|?xyaZIC5>v_FN?!0l*w0i3;I{9gT@@tILW6tT&ei}6gQo`>|eL83PFtKbuvy69K z-+hZ&Fy{G%#-_E?hWCAQo}6!mhE?Q_-)%ol97aGkX(u^mdzNsTYg-? z#0n|%3@oEOLEPyx58&t>5_X|;s12SA2rmVuWxC1dSwH)cfyo|eh0xCz*_-5Os(*aU zg(BpfewkwN{{uU>*GKWf_oDvvvF=1$XH0mq@$eA&v&cIXqz|84uDV8tNIs1cLy@|V zKe?l<{qL#$7peq61n29H#(niU6Z?JhEf}ZL`==_3PMo+h^evo@!UV)+5Lp8X3srfQ zX~HGRh#v*w;Z))uhjbCyz~W+$a~{p>`6=15^t{9#5Q*ozK+U278OoEh{zA&1koc26 z_?XFRz7)B^9-x62K{~*{^#&Rv&-E@xR~dY(KulU9RS7$*Sv8f%vjyANQDv9I&MGB) zs2j+PF9}@wn#e@lYN<)_E#4B}rk+*DP!7+LhKN#Kx8jMW@~yiPqre7J6ms)IcxyaK zEr{peok-Rcb61p;GD|}sHNW!8h_*+VOvZjiZC0NMLp8d-0mWW$5UdR^E*#LQrREp% zb>55*-^{|kp`R9qCJ`N=pY8?%*T^lO;&QAbv_U=czgSe3Z(=Conbn z5h}5A22{`!S>g9*LC&EB-pfu&joQKqllGK;-a@;`_T(S;Q=ko^27DhA1GAvqwiY}b zuOQQ7uD@6+k^E+_l|=>C&XL&aHl)Vn10-X=+25NvsHy{uKZYUKrU-D^pRL_l^;r3! z!Pu7B)VJPO77M?HC1rvn^3=lb!nR5F5~#3a^V$Z!_uoA)yEw5ZU}QnpR|OpK6V4o# zVLnj9fP`Ej4=HJ$_-oX=)7rVatd>?QgJHc|vx}%zHIB z)u1Npwsz}wmt$6?7!t9B^IG<2kHN+Qj$YU;@z=s|lLIf-HTh7j^i_y?Cig&IgCU+k%dH)Ny&AdQ`4rEiwF-qxEpM!Dxs~R2*{( z(%e86`PaTM>pje1?XHOy=)gQs3u)^L(yAe{w+)S7b*H%vLb|DU=npv z{byH`d&IU*?8mda~S=QAfsv27RcZm=x05L?r&ks9m_cvlQF4!wN!Y^=xciK^KJ zM7_eIB^Q25xy>%DBfcGIxmiq5Y?6YReh3rvRlL6dH^+BTpyaazZ*X2#Kt7sUd?)t1 z!{3GFUl5{!V+*AO)1RfJ=pHzSqa=>%1vomMqQSWb_`ps?X0T$L8#*;C^^x|w@HQbH zgksT_rXjGvSqqpv2|;}_Ku%{zg^$cgt$atvUUxHd6FPC-Up}i!IH{Y>F-Zm0KkFKHi%8V!lYIJiyLczbOie=7{u>6^Baan>*a7ae4Sb$D7TT5+R`)A zDfM8A(=aHy?!bX}2@644@cDM;m=y}(g2$jH5|xsG>_9bq)BJtwguGm7_zFGvFC}jQ zNlc=8Iq#>C@JKQTa;Wl-hbu(2e!HbJyau9WHK{_S*0b9r*gwr_7q#x`DoS@V87%5B zCYw?a$9UNKbm4NQdEXsA#H9OtB*`j-wUIcTK?gVqz4;*gnQ$>n9qXTzL$%2cS_yCW z%M7jEy46;=j9In&jQ$ROy0P{0EsFE+8RgDL!dlXfAFF87f>_OcWW*CGbX0pIzGZgR zS)4tRfJHJx-#G3g-`rpo6&0tQW_g4#oLO#RX^QVQ;LikJFQ5W7tLGd}JY2IsceF3O zOm3`AwbbU@M0&= zE9d*J>zp5uWbc((vu4fQa(VYeEm~Hbo^#V`RF(pjT26a z=wiR_eUTA&z^VYG2;_^I5qXe9!@!U$T1CLSso8b|IX_KEP}5q#Y8$&9FLoR(5%vg0BeI9k)ij52Bg5RLR@arkNdn8f+PeZ8O<(tK-Ub3f<*21$r}s?o23` z4WHWI3%q=ExdCivynel+3^{J=`3zL3Mp!4d-n+F2(%QoBGTREwsuQ=O(!c>fNsgYE z#N&CFx;HQ(!LvYWmbN1OM?(ALjnuf=@sA3&|ESS(B9F1yoiutmZ!*CGsdg{Xh6M>Y zLN+nISuSVw4)PxW-OFZK~*k$XPw^~IocBr3)#q*2Q%%haqBbmU*y!~W<<{M4cF zcPLQU*8?Jbd^Fb^+v1mSt{MtS8Hyox&Bq}&))SyR+ISA3<{V zGIVPUhzLll;YP@Dj4HbDhU`76zq)2jyaPeUXZ*r_H9{}RNz9D3H(g=DM%@=})MS2r zs;;JoxI`?wWAVxX4Xpi&SIr869Iin>anazCj(!Pp7-66zYqr`DHi#{zc{{AbHcJ&; z+@_oLg?C!-PTz3(#e`mP-Frm+lz0+=CxaK_5Q;t<=g)+8$nb^>h96^AFp{0Nu)uV` zxs#G zjn?ohI(zH;0gA={{GO+*u#+lqFp`^arBMFWjHgCfP`7bJ<-H+9=<)T75du%2sCeZE z3h-v9`rVmps`Sl#Ml;Ndy1K5Bu;?k^LMP)z^(^K#H^KIhG1Xlu0`YXBt=5t21+8bM z>*^=8wz}WSKX^McMl@5?Ck;|e$dRPML5}USUt+40`}8}Hy|JuOtFBTyyR03*GN|zv zOS?Ugh5wUMW7%Di;u(9G!O$B3oShyJOU0M=d0x369OPZ#Kkotb1q*}8gg#d=(EIh| z(VA;+2T6mb;xbEHoMH99;Uf8tJyU+Y{O!tRqCH29_3 z#|}cY0pmaNE6I&YG4Kf^^|z-<+EDmYef7jM0xLby1t+-wDT?B)*$Hu!&ymB_>#s_X zDW7~M1w1=*x^XXEQix#fEi#YF_mbAY(3eFBe6RPJkAgkh^zsCa8Fn+$C^C$(t3jlE zL37V`I*xzPhh05)nvUgJ`OoOSvF{bzHj+5hRn<}eHys~m!D!spJjt*NtfA&gDuE-z z9JG=m@X^@M;pVEJYf#qkm=NHf^mUmOU`VVbpZB{wQlx7XX3Vt4(TGcXT|q$yE-YL* zwgPA<$cKKFCB-YGWzDH^aMEnqQUNHxbE5@L#FKdWB5>eO(SpY;v&}1=dg&hW@2e%* zPt6i=d8q?%uP0kEa?MLlW2C_~66-3F!-Y~K{#53j-)UZ^3L-txnOR& znKRa7L%{;zJtbHc0kwF$(EXi54_~NLIZE!fvRzr3Z2X~QIYEtL^dw!aA*WVD1s=PW%In8| znN0FA<*Z*I&GYqvCYAXilimGL2stOdd_B>Aa!537@2_&XD%IqVef!_~r^v%WTR}(t zRxMOu)vb(;_2S;*ey2X!!GA>~9Y6dq0>Ol0qZVe1ctJE*UI)kB7((L!14n0bM_|mo z%7yHwSxYd?=$Ne5SP)n2c_mjt@Vr$9`G$OHkEWSWv2-b|^w*qb*7=E9uRjRU_mS9H z+CqvB7C24S?!!z_2k!ap-Xtj5V{7`6sMD9Nqvt9I8_Rv&aOc>ldUcxqtt2~^wHLQ* z4x#AIV{)=a$ei>d(?x~z4)X4j=) zWENe=wwcqV;1lyIKgcM{qfd41ki?_^TG*yoI9ke9yJ&6V$e$wku+w=JGyVe^mf1k1 z(R#P~6%Weq!Y9|+GBV5Ug^9umap1nof%lHFjZsc(S&(Q(s!okia#PN|V$8M(2JLv8 z^xDw(twQfDWI^rioChq+5mp}wh>-0pI*@N=;{HDH;L^2UICr7(6UMpUt*z;Ygb`yB z+?Efe6IK@m#A*EBlMBRrb&8;Xlsf%j$>q0idiy5_bEY!6!l5NJ5hQQls*@D=<+i0} z@EHpI0!oq16FL%{9lD?EYO;K0vgSS_^rP9+mSXP0yEhV9$yD9dDZSM!OQUn$DS$XI8;PzNfu z5;)=K1g1k8&NwG+-__qwCz}i1pAhF> zodMi`)G}BCZG;0rB`5*8+u>iZx#2~6AXnSoST18b1F=L@<%V=zLo_n=_0mh% zU;S7`hkg;mw4wfCaCU3hyo~U}l zXrwag-c1oMyr5=sc?utY-8uflF!cwIAN5GsJf|{Uj+pAq#9CBScgD`ZUJT9Qr0)fv zG5-}w|HS2vrsTV@)*3D&@2@v-%zzv#tL-9k2sGi+eGP20K`TERk`}HR zu{jC1K(I}5?RD_WdfQ4{@iugl(RV(7ULLYS49CE)){drB2&!sT%*!?8T+xHF(hHzroN7QsjX+1KfK=W#{<@3~kmj0hawTj*45{YQqU@Ik6AyvBwRm-u-6%6jk3c$}2$D2;W zpg>ELAmIG*XlidTXf)E|>f>D@B_4LZ-Z^QiK-cd(BPVvhxqpWNhbhng!xx$CvW2q!7yTX*=8-a7!}&-Rt5(W zL>5&{8512Q-uLXs*37pNBhN>r97}3*umAONzzLEW4M}#29&@YJ?V=$Gql1n?m+cfR zXMD4$+7^?$yW%koVTneU>m8n%JGKN9?pH~u9L!>sDk~z~{WwbTcX zUd`D#`Tpx1+u5ZZ^mP;gU7`wmt2tBMIL-Px8Ld!a4pb#?k)H(!?-u74CL7G+Qo#7j z|KAlefWLq`a0FK}HkJOk4GpZupu!)W@=+qGCB%!O5YihZY{b^^wfwKc>EBNS4J38=u4OYK zV?S^3W}g@iJSW)bgq?`O9LW<`2}{tYigLA688}6rVwy>8V>|+W@%NT7aS?DooGy>j zYw>N!@i^=JPr>=0hx%8U;e!My8K%8raRfX5&*T30C!sk}I%GQOCsJu9fBg4naPY|J z#Dsnlg&5n*z|+Th8ccHmZ|_?U_3UNUFpRU*JMy0TtL2rz9tG!!ReqG@pSD1yPUjbz zYd9Xt-Q~u7>mBbvI_>4NG;Znl=s)p4k)MhG=TFB{EM#eq0tm*+aG3TdFhQ9!3VcQ) zXg0hyvk@s<`gCXu(go<|Q^}iy_2flfWq_3k(`t87F~E&8bxWT|8fTONmKSb(1WVGO> zA<`cjD(aFHmXCagi7yn)G^fs6@>OitbEgJJ8A$x<7UIUZhhn(RRu$=7KKu~Bj(jJO zX#A1U`}waNUpq~cUmQt+9vKd0?UxwLc>am2u)rxk?yJ!k4wK%Rr=LT-X~38T1C^KZ zlN3$b;b!Lm4zz8jBGe}Yw^Hs7cblllmi!WV9(znpa&7b^ zdQ3I=nokfocB8$Vus_u;QT8Nr#|~kJ@Q_RijZ1a;p-(tsquY@May6PbpgHWA#_*3Qz7&MH6>0R!(hB>lRUa&$mJ@r5DGyk6 zhAr6A$&fap$^3Ic?JIeTxr+y&L_w1@6=G&252SP&P6avAS~B+zt0fB*Hh9Gu?H%=q zbM;s!+DTQt4|Hah?1wGkfnrJwWKYPkz1d-`D0Oi6qJTd%_31pBpgYVMym{?zYz&zD zi^5Mgcz(Y%->GgX!SEqiBHo=R^cIi`zra!{E0@9^!ugX=%zE}lp+t&(?>OO~#dYX? zD8mn<6laRQFAcex9D-ZGKm@VV*-FhTISO0M#Wo;D21!O^&}^CC{9)*Q#ff<3&`=q@ zU?vK=s|@>axkwI9MSXN``jEQY@Q&u|XawxvK>sp-DoBxzf>7rR4xWn6Bp2ZMq7XYr z1~l0B@;9sw&-E^W&xwD#zZ;@t7NK9UX50UW7FOu~`1fGGK92rF12C-=oJ@hT^z$0T z8nEth5ZbU7s6(Yh4;#5?)x&*7%V9R={_sb$+ml_zY@dQqBM!tI9n0RgCGh3 z5;qc!DVv2I;zqPC_RSnkgL#5m`Spe?CLlt|%=Q(uo2h;8RzR_i|7G1tSZ&fj+MeA4n$0pBS+}=QsdW(Gn_$IG@bB;?K7V*9E7rouxgoe$I z|2GgR6yX<#|0WG5B#XaF!9vmLJJfIKnzYf=qTnDlaQ}7b#oNXD7EVf&MuqNgU8L`5 znrjPX2Ty4*%XVJu@dLSW9m=27;TQ)GM`C-^a;ZT=`1vqb+xYu*26Ee-wn6o7tK3 zBgRe9`?Lertm%v?%Y*B?%?j7jveetk9d52aAzv<*HMPo%UW2+1;_r;<k(z@;yi>|<>WTTVV^V34Zug*s>*ful$u1ep zffjPJf2~`Wk3eg@H7*&|R5NS6*5zo#8+34_NQJ@GM5TUmKh$yF>sHPxXn2_JPrP7{{a z0_dwwf$VUtIpIqJvgFl^QtAn%DjZh&(>Q}AzXNgjR} zSKUgh(=AG+R}Mx@Cc+FN;Bev|upHR=cHk?R(&_j7umAy8-Ma6dG5c2evEL-GaOv^> zW6o5e-^8hFH+}t>jnNx1og@GbWTF4jG?7Hgd@A6aa<$2Uu#MGgnJg?u=5zx42K0o%6^<9 zJej`9O}`%iD`ikl5QSM458>95fUrJUMq zUz)a5LIb+GdLCs>;uF`MZ2_XIx(;YFyIofjC*z_kBrgojCm{$7p2E`ibZw%Gj(QB16v}=uc#4oy;_~xI5JT$nR#jI zQ4K8}4y*aIub$p_L<)-3Y#E69!yMC`KM703w^}h#s3?)p*MnBoB4bQ7nR4f}Nd)a# zPzhe&gEQ-K{O&4PL|Jrd*y6L<7Tx8ax#aKx^D9R(4-;E`qLRXyl8f(V8VtqwD)xhz zyoXDlOK3uLs?Kn6c8c%40B&sh9Kp4EjUo{1O07sld|105vJY&g4eOHjOEt9=EE0Pg z6O^2+P>t^pcN@}(Iy=zg(di)RHxfL}bL;&>)wIo@+V9^0#?LR;lj2ArwMc&G?-A*h z0ZCxLx_7&ejA~MYe}54+s!r(oAo#gulQ06`1LkG~~83SRCTbzcvt@yc{lc z1)V{Ej|I&hv*NSrWrZV#^DU*$qiT4w1jmTFl`gUd_rs>4NbLmr-^b)f(OKlsCcpzI zl@)Pe#7SQZhlofo&s}{{ER$Xyf9#s+dNnT}%;+y(4Y+JO>)NMn|M-?YomBU$D4nCw zuQnT2x}yKt-SR-6GI#@JT9~N^%Vy38osh*qrYP_Z0XcNyM;(5!l8EW$4ARy|R1^^w zcwvc3ty?!HgGoYf3$!k(*$rMGAo}%_XTJ1Le>%6LNWu`;tQSqX)}5 zY}F(lAIk4)w8f7X`oe$UCYVpWq8mm|3`hb^9RA-64IMK4A0G9xlmjw&Q##!J=YUCJ zMRM%%xFS-y)FA{C%ZcDibN^c1Z$-1u)^Rtlb+{FOk3EC`ai*|E+GM&x3fZw~LL81)x^qaO_b%RL zjZR*QK)5*>(4Xr5Iq|Etm>Q9BXs=tap;l4V#DV%;0?a11i+}a%KL--A=+j10wW!G? z!}`bz!bM22k$9wIZ_O7BmIZpe`rKxYr;Ul#^SP`Ucu74<<%tJUdT)lW2g^xP!8hB$7K zw1u#aRqt}e*Vn3QmEx`K>C?pgsXX1eO5XhA#kvzXrv)cQ$0 zeMI91k4-}%Ig>*hdrNA|FPSEi+#rMF6L#3~8HADTQ4!A`SSX6R5>z+v{mUZ>g$OXt z)H#AN?0u>yIQ0JQuV?*@kOa|k4D7Bc4H~svLJqvOhJf8-g&Iis#>%`O_UO_w74clI zjCSzSCVIzQ^ZWda77D<6ceq;%fr8>JJnGNd)BQFpXaw_9j`5`cYsq>dNgquA9u0av zUkWXgEwsH@r^Eg!E#|mmN18YSdQogEvkI-Vc!C z^VX-)%oj@pr!Ib*fc8g1C$IN!lwZnd^q{E==teT~CXtm8gwNzuQ;{p^(xLO!NOeT* z3MyA}xL>Q^nfFsSX|6{@&&SUXI=}k~#qT=Eu;AP>wdhn9(|RL{jo3@YDn`mzspRr+ z7(d-@>Q2o-Vi|8g%vSQ*-*DxMqZbL3XqHzg9aI-BJ3-u7ScPqaHCj=U5oPC1Z2v!7 zSs4CvEU=N^ruT{ml)nbB}MtP zZ-QE84eoS)wpq=xJIbgzq#WOQ3FkLi?6%7)%L%N8W%sr#8+>h-@9KS|dU%(OjQ_~u zbmqV_hyZ7ZK{*mpbaCXpXwdiBa?`vqqvBE)fY9N{PG8C$4sFAx1a(5@haEX<`AUMH zbm>qPg9@y?0(vi=O)>fh`#-UPtrm0{h?f{{KCv>oVM@`>*NC8lzvoc%1F)c2``{k^ z%ygFOsnu$7c%|GeVFi4U%Q%?O>`J96gjsvS;ZOZZb3)O5zI2RfosJ=TrIfY&Zdn^s zKRqsELPjrESbkg@I8`319&Av)J&_F0N+~dWga?0)F?w37Q1kKeSRry^hEsxZOgSU< zY%3@YJ?y-2U2up55Y7S>CO0G&F1)M1Y@_ad&r6drvl95dzICLn)@7SQBP$_tu^jrI zOwHxG?WLMXot=;7r)+0~*5EUt*q58LW#l4KlG>sVK=+s;A1x zy`2z3HU@uhm-NT$qdzaiS_$3NQYDuzD_;`{JmDzfT8x4BMV(C&X|c8`a6^(L@8gIL zr8pX15btPp3^>+0tY3^H|2i^`h*T;SDnVIX)`rn30))WAtYs&0&3GTb79zG)fuG{w zf^O@zMOmbLPn0e8-1Z_o6_<^NWERl}K+aOHI(Yu?R}O?oykjm13to(d4<3gR9_&V2 ztN*>)xi-KAZMV@!B5I0Spw|?`XPoF{p*%dJKpO+-QLNK&Ss`wDgk=E$l7k=Hu+VHH z1u>quX38y+b>O8OQ5kL%)web2s23*2>a_?(GB z*|L$3;U%*|o+lLvuaAt#!oeo%yU_u-XZku`Kguot-Y7!B39-}rE}MA=Cks|lEa~|_ z>l5RavRpbcVBq}hh{2uC@f&2vI=LwK^f7N&R-Tm|~^G1-_bhgy|D zwt)|J+`(IHrLb91k~VCAM@W-AW?o-{Q`#==Owi86kVm0$}~)rDNP$?R)%# z{dpAH#sZcUvd7FCBo0`5Ht9aMjr2dEvdQQWsy&&#F7Ex<0c~@Mk=Rr;;7>}-2kb!l z%aF*`nLXmr2k^?3(GWb-yv5GDwLLS!j5Fj8%GIl#4}(D;|2I@}L#hb3A;Hz0H;ebww3qrpLpyX{i&X*o&r| z7Ec;b$8wKwAD!$FAN6O5EQ{^N=IhxJHjUOucDq>%-bLcJ(9)CT5lqf=s${E0WA>h#yDw~i$(7biAW?QVU-UIXYq|^t? zRKj2#?wV*`=ym?PYG4XHA00(Asz{wk-z0i91pgh4mfvso3x3JMO!BmIR5Z8VPyl6) zM-E&#MaV4e!gqbfT!FyW@gFX0W$03kOW8Z&p*)0AecMoaz~9B;94mPL(I=j1T5fe6 zAsoni$(TIsEehKm-AS3lQ>qHvejLh(A(~Wq4OfF+D`F>0Cj&+8L3syv7L^$05u-i> zur>Pn7r1*OF|UZ{?tog5j0raFb1zDzC~jji*`t^gr*2rJ7jCUyyNDDJe#*ipT_sP5 zM3@&6F99*ViJ*FOV@eS5`cpTo@=+rlg3m-Fk@#T3qSN*B_VLDdqsyHeM`G)3xLezO zlQlYPsF#BKsseFFABi44~2csSuI^tr{?E@7h zF{DR5FYtPO993WKPsBceubNa}aG|r4AQ%_suuKR6{4IR~Lvf6;e)putTM$1#;O;E= z=Em&vH+Q7O<+|JawCQzB6yO(;DqrO!Uly#9rf6EhBx&FAev6ow{L)ruDef0Myjr+ukz03D}nwfZsQ7t5S1LEPmcs*c|=V^g!bcaM&Fl<0|?IwGCDeb-_;+4-|25W+*x>qE`ly^kk_;GJh z4a57}CHKu=4^$Ys)5iuE;Mg!QWi>7*(K**K&wPA9B8`pB|DKKbz%%(!Ic>E{?uQTD z2Z<7kfJh@Q9~634=7S?L_;|Qmsk=BT;LO3`53Hk27xi132b@szx$}00}|2*WhkD2 z&aNDC-UJ35wkr8@90dbZTyrWWM07VJ?Ku-kLatX4A#;%=@{F%|Pg8CiGc78;U^zEo zMu;EXt97VcYM5WE5AJlNVuNC33A|7!UFR5ejyU@1>mriNEeX6O?)VFyCZ%?5&bD87 zmZG>S^_D8(vt&#VF9XBFoQLyX0VxRu!qI~Ad%OTp3ZJ6^E_MBH`wK({LECvuzf`p6 z3kPPMQS8GhH^FGg@TJd$;HmWqfg1rH(Y$|+t9f@gV$zRZ7@Y+50zSRvuZE?=L0Kbz zwP8|VZ}$XGm1SdiTb%5PF|5_%J54fIOk6^Z;D7PG5B?4msU0qgjYP$FV@eEqA7z{x z;B$S5o<|1=9x6-XN@(U7SieO;k)@|QdP&q;$=%$JVmzrj+RKlE9eCq56@M-%Z2SD! z|9lN3xw;3^T9%BOi=#{5zo^2v2R8OYSMwWfGFE^;LD{Z%U>DhblG1*csud_CE=Y4wD{T$hg(r!{y z-7UK1_*+YwY(aW_BYyedw|;ZGYvRQXFMQmqwHy>7Ona*Vt;m%gD~&jU+1` z^d{^~>G${AW3;EIJMG@z z_Y0Gux6i_s7Wx15o&F8+`q#uQR30AY8P=IPytV!E@%Yxm9IImnunDP#P2M3-$^7a}|Zhek$a=pc`F-qMMoCA^DbSyU68HX~blmAs&Rkx~vlAD9IWT=~uHC zmrLblJh<@Y{$5V9uaQl<@8qC#K_YHUnHhp6xshY=K&lbhbE*tAW4cFYj2lKDeE?NV z1;qLx8SXau2w3n~{Y^6ezghs_83+!ahLPa9x3NYDQ!zf|O#I;VO)>L+k*KGm${vUU z_?1an->M12TBF2L(5uY8jGuB&zr6~or2Bz4zkf;=?nQT@QD0KH4Ol3AnB2>i?p^TO z+P?H6Y&)W9D4faUs1K882s)y)J6p}o!+MtY2`&&v#YCc%FoZ*OW>BkQ3=b#zRJ@Yi zeR?}@5|2$N_hjL3F_O+0Nvng-O^j(hQ;)tKB2`t#VnHO5Hja4nryFONf5aPHDlG}I ziDy{EdNkRxe@!Y7_Ll>fKR?{A&}-rQTIX~|O=m_+f|%=OJvhi#V;o2h(65hPVJXs-ljjSB zWyM`qkau?}(h*P(Px}4m+#kJYD9!o{?uxxr88qe>{Ui6&AFf{m2ryo~QI#?mQlFa) zua_Yv`N@?-Gfh(o$GAJ~QO_dS<0|vN5>GpHeMa$_{fquT18pm84OT9;vPEg)g;rIM z1NSotNnrgUHKTp@`1}i#` z@*bA4p%Hv`SoxYJ>|sm0{A9zV_Dmb;kBlDE;#EF)Jv3H?Y2vUYSP;K&B{y0a%<=F& zX&?hzFK-Gh3f}4K*faH@Dm_9*w_ua;4iqSIWnBKhyO1=t7Bd#c-$^9w)g-Py@B)GVPC}Dk6~=H$4cpmH3JUiM ztKs9C#@xida=Xze`2zk;x<&R_Y4dUfQi_pY{kl?Ol%^@bR88-^I(MmrX3TH%OoVUJ zA%$~?U!PUq8ou%+BqSM}ZO6-aUG0ZpB3VO^BTWsRYpZ2m<-wEQn;SDXcvpE;C&i04 zd>J|h@Mkif978e*Z zjFqVzXO18$rLZANpc5+YZCL4y$VlU*XYvhwcwuqzzcqacloB5sC%SRj@oJ%ux{0J50K$;CvCMFf@`?{b_Mc#dPncrwQ!4 z;~zs*bL7_sQ?0G|zDDA55B!iQeg{3p={91lEfkXxY+vDm%)uMyx_6j}Mc-X_T~Kho zV~9m6o+-~h9jX8Xf!;I}GUNf4;^9Ax4tkii`b~LT5xal>EJz}_ zc=>3$0h-b0&l3zuEtF+>aZ?8niZ%~7JL=kqpbRq|8LhQpfflsaO66?vRwT<1yq_cN zkcg*^W|ZV7_%rk3`T4-xY283@@9*w zcD`$L^oI`2uO17}DA4_y^{YNBtorcRC5uPU6T(yo)SyiCcCicmm|9%^s+?G%a?F_F zeS|!TYJP|D_&npq1c&TQt-}lJ<%dBg>TUpAQc-mjtsL<#tu!u9LQji9y{MkxXB$A= zr6wWbJbuop zTE;q5Ee0T(uuJ*{z6TxT#9VTI5){q=sDS1j&|4DGJb(5}d*_OK)Uk*%;WglDVeOP#NNCV<2Pk}5V|p3s+5xMw8>{eU512Y<&r(zYh#rAig3IC`5fN-RAHqG9UrKZmuLJG&at1;d@NCixgzu(hiSv5(UzkbPn8b zMihHwL70){u#GUr&IU{@@}Z_yl%Fl znKzqAg*|9jt0CbQSIbV)9Kw{gMs{23J+~V?n-6kbcN*s1SNML@gZB3``E6nQB%pLF zI^}G(6uHFw<8Kd;c#6rVt6YZks_Y{RI;SeBsI0e-E{shY5Ju%>BG@`dDBwAzIBY+! z&FqTivd#u_nBRz{R!cIh|qKmX6J|RB<-f zVdMrup3)nnpAQ3$fm)Bx=tjhoM5Z|Bin*6;SL<27n}MR|OFo$A@_14RXxlGBRC0Oh zC*Uw0d_!VDdJoyeg=5^98{_rYd7LMg%6hS?44hax$j#Z)fadrkG?-7yO#vF>`jfwD~p`cIyhH@jo^iS9Y&bSib^^Xcv$AWJW!9)I<8oLP8DYjlNQ?T)> zQDm+`$(Mkr$xEqT5ZfA{J?ZcIjC_+hz?|ZG80@GJQiL9tq=GcC7v^rL=jfz3c{Kd= zO)LwC0-Dq^F1^)@yxVdn?menMqbxF9@@6ls(OI+H3%zt#%-2bY-??USaGxoJ{S2aBgcPJ# zG^i-uFB0&iAlrk3FDKlSf$>>vSZAWuX84x!gn3 zI0PGl#P`7+BG=Tpj&3iLE;YSu!tCLG_!Ey>mT-wk^VJ@nrNd!})x3uFFG2@XGN2FOCFK++J z3;G$wpN0>%xT|l!?6qpWf(o~+1meM(N`|?9oZ_v99Z^ZuDt9Rm^;Qe;_&YtWdYXz9 z)cx@AP*dzek)@01%8za!`o)-SN6~hj{~NN*}6+YD6nJBsqz@pJ+tN{L7(BIa{5c5fDsc zeMI!-h#SLQa@UVy_uD(%W&H#UnVs^!{q7H)Co>a5#KwTcU~Nh^rX= zi9~uk@qzF zg^Dy)RQN$o_m|rqtM`Rs8l@z=O7hIjboT?ipBkEn+VPin=AB0g=EBc7NdKze61_ADA@JRmq4e^2Kl(OrqxlR|e21)rsgB9-YT=27Xc}o%OP+j?06h0Yw*j}0 zAc;(h0?nt>$LB!j038f$mOHKi2?ZH_jgH(35`z!b5g`-y`H*Z!Uh1ldegNDx+tMDL zSTRkaz*s!bp(Gc%dnXW7S7I*4^x4{dzXj_z_;;tevvD8ZIgTGU7MvL2(RHD+gCmaE zXBD!5s663#ZwUP!Smw~rUb$w~);T?%x|-fYfKxHqmKei@ih)kh)4NAUkQs}AB1Zc? z5?eS;^AR_TIfiUoKJsX8a5yMiwD{woHj{l(rl702soAGlem@@Z7~01EHF1{COCr!i zs+riVC0f0lbetu2*C7VeyX1MUM$uwY>0IG-m#@8b-z_iFSqbNbDdRToq$yxfir1>c z;qFg@F3Qc}Pd^_oNQMC810qY86m&jntR^86H@a9|-7JgG9$iGa1wE{CcOUZ|S{!DX zZI@BKnaRAFB~d|WM+Q{30d7mF+KlS`Qtt04FgrD;m(td^O()!EUG+N)pE$jm`$6i_ zv=8aF7^dWcIvaUzpW_%^cDnZX9e)Zlec^~M!uR%RNI?{d_SwHuD2hIX_K@rDDQ5Nz z&}`I7PxUjhwXod|N3lKfCtWP6fyn#Mk`shYmNjhkmoX9i{encC3$pu~IF4Qz_Fw;G zS;Z8_asqHnKai<-mwj=)w~X!$A;c8LdxPpAZK5eA1dc-rMb`_bl_p=vDjGyhMQS=e zDr%tGlNDVc!ts#wm(U)V2Q=0PJW92u6FDmL)NeiVMFEio{(StH(Gu#%Ngnhdo9s<>^p zrA}=%}qfzN?22`Mu!g%kV(R47~p-T*@G$^ViU}JhGWfLb&(&r@6Gt9 zsAH*DB5i$eU<}vR5%!w-4;z7k0XE4yOV?+EeBU34ePP@GT=SLqB1!X^g5LuO5|>Ce z)d3s-F8q7-GHW^qNIsRCzwf>~=owl=;e)zP`LC=NUAbVpHYj&tRLTEtoNVVSpE)%>;P2JpNyUt|i`=ShsWuH*L>?k@ity^^E#ori6=EsWlu|MWpLj;RS ztv?3LXM|o7t(zx_-WmV!gMt^2V%i6!ZR8B&wuB%fJHE&-u|-036XFIHrtdGXpP2m3 ziP)!)70%Q%22z5X`_2RxkasyX8J^&pD%m*2B5HKnnt{TX$w84Xx1Xt?YM5*94rBw8 zlKQjM@C(kqpAkMYw78^Yw{W%wy9azT9i_XY{b?#pp>U?%yLCed5!*_Cj@=Jc!l7Vn zk#KK-h*HPgCz5<4q?y2fq_-9bq1WQDJ{fU9bBRf$gb1xW`tU!}2B*95c4E7!By$r* zVm`i8X2k5OwM^VU-=1#2_5Bzb?dy2;G#9NB%4RB3UC5`m^yT{C3qBm37`&$>V%aAE zQKzCf*@(s(^}~dZE!{Y}&5`9}wZ-SszCe%Dcc4Kl;#fr+s>}7yD~6PvDu!clCNlb$ zT54dq#FFc zoLEMO&rv4|A0yv$^N6IIB>>ZL`w*EKTN*KHa`xfF)8j@E@8vtvNxMJC!i~!#$jx>v zphOa3Q}*jT03MGT_yr>u+@ojHgOAiG1;5h{*lFT;(2)Cb!3Y?DMX%sGqCG9&FfbCF z17%c2Owl-EJZA{sJ*8X3UYRx6s@(c=;ESFyR?ip2+7zbgJcQ-GBT}Z+_P&Et6Zp(M z8atMoENO%K{St z=37V`1x3q((udyL*DW zdkF5q-6gmNcXto&8Z-P1WSGAZoy#1N5qQv@p4@w4Eiob%LpbinHhI4_>DRio1T{4FP#n%_k~U@GFhaz z>OPp2P^$lRsU{zYy>s^aETMly#0c$TEQC&%2vk{)8B|xy-;5n|2WT@7Wi6mMs#xNH zPK2<|pASEy4w(ZYIw`q%LiRM^Lf9dM6BiJ)YAb7IYW53^Kj#E~btszb zD3shD%AG(?UUo7YUE^jad+tG${HFe1sKJ49B;U_;3IbT!U-kN$;BaF(tHe!c{xX$L z4KsV8GXiIdlfo2-*G>4)R>zGYR~YsyGXe);`u=>Ce7(&Fg>Tz2Ly~JPniz`A%*J*z z^Z5Mr$ULj?6UMZXRD;2`PCB1Oy<&P_%{cVO)hPi{243gW@ES#kt}2AYvuI*YGK?_< z1$8+`?*LHaCZyxS=d@s&FYEFLB#OUjb%}RAH#XV#cs)F@_MhISe!lP~*|4_}bUpp< zEodD_0EdD@OvB}p5bOATK)AUvmG-{i6ZHG__<7;3?}Nf7In^nt%arYdrHaR0IzWw8 z1Vv~pgyTCYx4WX?RahhsHbct);77N~L0;rGw8SdG704kfRIAIrMws`&@9B5#RIU#J z9PE2}xpM?*2@rJ^Z*+VbB4DYgG~KYhHLP!7-hKMPv2Am`SmpKoE1gDIhIHpB0K&Q3iP@;N8s|CVn4~AMH=AErFt_b0I%dNj< zd$ht}3>K*f3+z&chGxcJlbRPA4baV0Z5nvAY9muP0h3+c%YPSeheV_#`TFFNjGQq8 zwvLqYL?~(X8#84yS(HKiGsW$1e4LDv12s;+c>^{Wcf}Qw*-XdA(r1ebND>xR16f>m zL9%pS032+crgnT7fIMWF6I$p&Vy8Z8k~YVQ6cgN+bS_Iss6tBVr1%s@?J~v8WEC;g z;9mOpE!mL%Vo@XX^==fHvs8e-yAqG<>96pb!@IjVm3ffN+mOl1T+TkQ5RvVv2p(uM zFzR@GBekXSrRiO-31&2JmTn1!-%mX;h+qGj@@Q$>ckJ;iCY6}mwj9@&Y2-QbAP2TE zBtr7}93OD_9eEjBKG7X}w9)q46LrJi$`U+2zeTa#oGpAxF<9udMSjUWei)66;?Y|| zO=GDvp8^LWU^Io0eZWZUQ>y?n^pdR$^|lNsBO4ck089299eF-vgzE*{Jni<|1S3h@ zRzGRF&PP$Rp#+6?I6Q@1PTr6ces`eUZz$SmG+54~Tirx}@?C9If5wQ#p{gcXTUp&CPeb|NoQLWAM(C!ko zx@1%4j@U*oFC?T{`JQLDa0{hV;(_})Nm7aj1%VAj#&v8p3)p-YLo&(G3J>xi<%4kG zVnVFU0D^)ATX|$2De!LfLWYtiasC84V(8`&@zl$Y@oQ8;-7=;ce40J^^v1tAniK*M znV2*5u@PoKpSKt(Z;fAtoWvs8RMbXoM?gQwX!%O3&|u$?tj$a={H+}TAaKlMM!&IF<@L9oRH?CtX7IbWr+!MhFYpq8;h z$N6LBiqY8wYCB&8Abq>|q{L@>UWPVi(eO*xA7(({*pyU*hyR< zkat3kxO|Gku9*eq66$$VW|Pt+Xt0_i{LE@^&_20KtuSh=*{|sS3JV3aHsAfld~)q^ zG@wzh9sRKr1v;dx-nR=n_^kod#!MBr_$l{C1w%p<{9o=?*+AGKdj2Mn0qI(cYZ#CH zWWat1ASYOa`b)OQ0XKij?2rZ%sk+gbcJlr{%#_qRkJ^4>>{lsy3Vx%^{{BN$w|&@+ zPUY)IZSDJym+nioripV^`nn*jbuKIENe}(^x$81;HuFg~xck@O?GoU@NL2)e(e2AM zHoC@bpeOs~8qP!lmA*kIDMm6oU@~i+X;SiF)WE{eMOPkS4+SO@8r~Mt9eV+ zqelhr_|%2EywTJYCWaFN!T8IMP}-Y8_p1T(0=;!h3<84ULE3T!P<2-$-NnwCOXL<5 z=z-H^Kk3a*(fVVCFjAil&u5Nu=95uSz~~PLN0WWQU#9AZC%VK$$=FF|D@yyBl+KU- zU(WME@4rz)?ekNcU+eIe1Pq@2&mbF7U(BEU#rsSf9%&C^*IVHQ1<&5?+ z#NUM0ahWox^)6Z9LPH)KtYU)qQVsJ|!52<4t5JjeQ_t7x%;aYjzj!xNG=@ucNivxK zzPP?9%LIFG_hfvIx(*a|qw0pe7+cD}F?upw64HXLBA_Fd7qxJad9D#9-3O$8?QnIq zUMCq}XT?Ow11%TGG(@tUD4hQ2Ua2Bq@5NPTV3%;_Fw#DCm?>GYY z9D?ugX`s7d!%!Z@^~&$r_yi(OXm4f=Ku|0GeVlGyv&9(3rytq+r--DA{_!&;sjw9x z%ea!Dtcci~POXqf*?Bebe^|g2a3DD|x>VtN&lN$R} ztPFQJs8g35Z^0oySnhZ=nb~u2gt%@83r<1kC&+dZTEs#L!h2tg;t+-OYG`2cCdgbxkTGNjDr_)wSs1z#(O@{v?V?pq59~>NTMAFy$);8L z8RjcLY`&H9IV&{8rMwjbIC-b{pWFQI2X#n4>GqLd{6b89+krXw{F2ouHU5ASovW5 z{7Ej4Xau>kyGTBJ+6F=9p8N}z6M5RT@~?J&6aVZ?FyhR$R^cr?JOYXzpUaiD59T9D zfex!v90kJfcAkGg5TDA&J6Pa^jdnhv9kL}&8N29d#oadOQdgF}tf$p)|%(xLqoKy1B0I_mk(xdcdnSo1ntoitu?_ zGNf>1&Qk~_jpnQMICfoCSotP65^8dP|8-IfIeL#K4Dq0!hqvA3VlW zHftV7*AGgd=BBcNb6tO7F~Mv4aKPyI1|c%$i?DPwnLX{y>1&UJz{0d6V7)4gt2eF{ zkFuLVgftXGELItjqb|8ZbYy{>z7Py*K7cko8Q z;O#p>b~Xq!C~+rB!)XDuKWl@yaxd}>B92HN1;irG$_u@Is>Xa-R4{EMdS&R{BcK?ueaxFL|d7ugV%4sxV=v` zGsjpXSQ$ys1(#6qLMvz-Wvs(MRpvT6)y7)F69-2ly58d2zu}H-b+0k2zO47Nf2M2m zX=~a=VoKptl&4LqQxbTrPn;`PQxN5iCc5ol$`vQE;0OU&#Y65N=0UQ7@J}A+Eh}t9 zDF%Sa5RzC?o~Vh{p?LKzQXkOD^5%Gb*;on1I9d+Mzr76m(3B_t%=@dq& zCASa1nokO`LY;7F4|F^^8ZS3K5)Uwx0HGTzNch@ZFV^T31XWa4>fa>q`eZ7M!%*wx zPV3_H9>`conK_(a?Bi??5QeL=m0r+crsByJ2{2<{9ucH%XvF+}@Dq+k3s*xq&o)m# zZZWd$gw?LElLjJcMLa z@6#=Q1jW1>ssEdn??;p}?;M?vt)bh+JApklaFN6|c!Fe5$(*)2srqP5^YhV$wmN%& ztNa4h5;o;x10@^&pn^F*8T5@x$qb`t8|jKX8|I`7i9YN&sd4R63UZk z?i^T5%Caw{#incu%2X5=ZQhTywtskBQs4?%!lGR&C-TJ#gqja5HST8hKb)~4UUl#gOOy*!cBx~I z1gMDDstvOkbURfs)4JA=MJ=Ah5&u;Ua^swTBo?G|iPWBA*mL+<;pwbNYv!)cRk>W! z0r@qB)wmN%!@ZiwZ3nh%GJ}qGcKYX8Fx}^N^v<*1mf7|%jB~|HtN!go%w51%&x)5% zmT4wmb{vU=`@cQ`L|%7Wc0rOk3gm`f=7$Q0&^G24v%{T6dB#6yt1GX}&huEO>L%#^Ys?HWX`u9`--dPb949EKX2#ygODCXol=0 zHI*M&Hf19~a|SOM^lK;gyv=q`+B*-91mhte-*YOr%$&`d%>JAlYJv@&#vV8nD{wmA z<2frD;`aLzkbDC*Ncc5E8_^&OgWJ#LIG>k%p+UFxZhp-gbMT$Qbd;a=$e@3&Y%z5u z$~?P*_O-W{R5n`t~1w2i=E&GnVM6mI#ZXw3BV6$XYJ{j0ROx z!x_o+xjcbMP+L^l_Eo$D=l7i*;n8uU*n+JXw(I_xH5y|vi}S6xkaN?L0{=~mQ33_V zQtnN!O*)P5$|jf>5n+uSSj;`HTwA7*AXA*<}uXmPJfPC$$dfouniXs*>*5vAiYc@sWFc3U`oas!N4i%Fs7EE^YRb&VJLj zMD_8*<6i!qBbwd^W=?ncGNC?dWfCls_-lL~C; zwm{)NbURHZl{6Vr!Nki9sg+^YKDBh<$PnTFyoP>iJBW~P)}Nil=26bFhuB9;iF4GC zgE!6gs+(`lCbNW9(YM-inmm}q3&E@4eni6~$Lh+vgUKf`P zKigyE`9OSfc>D=nhe-%YmveW%K_wa*^QYwLwg-&#rXJ)cedv%?a*1~um8)_~(Gn$0 zgh~;~0>FvPR4OK$(H!bZr^BUYUhfu}BR`7{E^B*^V<`Ct&&E@MYF9VS1dBZQ2jN)C z(CyMo6E%ygg|>`tJ}~Llbap=pK}q^mH|vlvar|@vOg+Vr$WcxoSklcQixJE?4G<|_ zw9#6-D8irEkAML*2|znw^QfAj&PXK12j+~Y)kuzUyR%5H)LYQ`y?2O!;JZvu1A;u~ zFOH98fu^twFR$@^eeS<0NT6E5P@*6O4V0feZ}sB2ol;0yjbY?w1Wq(01RtQY_3-2S zUuZ<~D>OSbH=s7Zy&U69p6U_dIDJs1WdTWg*ep!#ic3p1-%?X{c3(*c$kX&XA`^bn zd42-PbePg%1*pO(Y0dfx*#&bvNYkm6QrUHTg^iYi-9XZnbrMd?u$kT_ZTE$JD`x(D zqi_?8F+iMZC@Rqhxkuud4pm%hyik4=(f4#~#gVye2dbYucZoBK6xpeC8RvlZMR=i& z90Kv#^#9N+!$X7uD?W%DPx!l;DQDnQ;2b!l=QuHn<>xm~O^prm2!dSwUkkz0iHvBg zo+-hTax21*MY3TD-<|rLE?qBHI`UuqTYN__3hhqv+0A9KLTmo4u(_iN{0ipNE}WR! z-LH6b-&x^b;`75ySH@{Qy|;h105OmTGXZm5li7Jgcx;Q4;MfTNmE#I{=YwFfwf)eV zuKqCq=+ZykbYlQl5NvKoVct1+%$no+E0ZNoPgw*0I4z_QV&TXnrOK30vE%zdHznz*v z4KLgDtW^!TJ#-o7VzfRp4nJmUojYJ{ZI z5NWlu&#tJ=BEa|zj*X^j2Hp43@2(d*fn5S+B#kuxbhSyMlW+-Ds^mR>ZTPXqd--BT zV+oVEAk*gS0{NFXTp-_?d-Ws%s)lZeBXwI?7*(0kZ1UROc<=r0DeBGpRiLk_+$(!_L3R0qhG z7~KbWJRwOllM9@a;Z+97B@|sIJ<6f@dY=hFtNEuG`0*y&bqan@xA?KeK1%%Z`xMfs zMG)>hNusj94ka`sx6RA!Hesd1JnWAUqI#t!nXI&c&kEN>d=htJ8&jMg(S2gnvqv+L zG4QDv+TG{|!As%aXjX4DlCFKeWO3Nc)PX_2#FM98J*Qw;ZFZgh4AQauIy1?`cmn_c zK9XyQ7w~5LflbQa&p)%fH9F6$g@{6dD{L(kgg0II2JKai0vtZruCMe#Jy|(zt=!i( zfCX|K^ys*OuyFgQEp=&-tyT}E6F(NmH1yp>)5;-PQbwrjeAAs*Gd)N5SX&!+_>Fgk z;Uh==-fj18KP{LL$pbEDIPHWR16=r{$t^N1vP1Cil+3zc+tsgKdXKWCSyO~}DT!nf zsTv9#<*+>%`>3unKXHlMIerY~sd{gLkqW!To-%AUAp#I@avx}`G}7h_$*wosoKJbJ zeQy>h-LPe`74@q3g-eZ;u!>T#$d-aGYoxDzv$)yD#8e4&vfC0+VYX5E0;jjrlc`{h zzdC~E&`y1o3(}+>Fn)0|IQS(VbaTfJujdgp_`Mu+pDhWMWhU4n$D)f~Bt`{i*j227 z5#fEVc-94!utCp>VwocsYY2bVy%8u;>N=b{Ff;LSM;*vn{?;W@S77T2Btus-c2Vkk+2>&ihzqLG{b;WOZE z(TKo&dGvzye4^$XAL>gM+w4P}Y2D=B^B;vpGU_N3mh&_U_78aU#z$}HB(~noVL^n3 z;YRd5oNjtq?a;92(XLB^3c>@~i-|q#oUpuj`X$etJxy znK2A~LsP`7G2y1;@*g~uA*|6L7cSs{8Z2|F)=7v9JmtnZtR#K#eNfzcHx3R`KZHXL zy|;;xR&YV2WP`DA4*i$#@BsNk<)W4f-(R&BY|WA8paDz6^Ab<`;+#~AHK3?F8xsua zOI9gC#BX`0H{CJe7)W^{3`E$4HE7Ii#Ol3P|7qD8^dX27HyRqWu>2>49CB(E3N|se zRT=j;a|NP#A67wc@7Lr!X!1{K?E9fjv-4KJ^$jM6i0@o=9>5tFxx)GJu(F61j|Rj@ z^|?+@u;#A!M+F?_N~Wrjv4BqA1;RPJu%;r)yNF7B+d}1WZC*l0uy)u$zR*|p{!EEX zRh`-JrXQWD&6@j5TyV@>EguSpjh1T5-TkgSiUv4XJ%WH5G`hP9YolwM|3jz`fsc^mU!+-upFVr24Y|l8ljHNkM#a4LJ(w=| zk$!hXcYQ-bLibUv6eiWvE^2U?)bY4U2i4|!hKb&2K4?kg3;9hg;d&uz#z)X<;KTTZJ*a-r}xP7sefDOO>qA_5Z+k{vync;c?wmJ@T_ z8;@2a3=aEtQDUrQ_0cJFQwQ+TFlTwnjr`fp`qs#22`9OVKmg0;weN)8>`HZ;A{Kv~ zhW)4F%=Ub+b&>m2c2pd7xYfszEc$z!-Tt`&{FCFQ6|)%jV~9m_q&(k)U}Kxf&ko3g zJUY!F1P-RHr!F1mRX}`E9Wc~NhkSR7eZQeU)3E&F%PD97X#FgtOWtYJ)L4QTNhMr$ z*P*)z6avO3>C43H3vU403x)nolU1Ck5|P)) z6G0VfqNc_MImHd%!;Mx4wyAQGa4m8exqY5DB|Gp-;yc&WCi2uI{KgkO39S@T;9!0j z&8pL-az0c{IO-KSF&}1PY+Hdkxw*Nu-17bP#M7^!ol!czbJzy1>=XC25;aJ;qk>sA zT9W$qa>8&_|CKLno*4S}Sa$>B46%@L%oUOD0bHN-mSBQFz(S#iXq^2<@)(#el)0}ADU)Zf+~YqLp6F=l zkv|Ww8z>DXz|ICGput8!mC=P{N)G*M9h>(+H&euEGV6+jp`$q6j@c1gJKO ztKD@SaG>+{OWzGI1t*CFPkX_;GlfsLf+wbJL~pO~$>LNY;ll;Tox+{!Y!R_DQUWRz zH0)?QbeF}sQog@KrJJ{n%7NoeKYWQ!O~S$ON`uo6@Ap@*5slpMr=ojNzwA26V^itK z+0EsWll`hv2(~;3^aV4e{J`B-JjEOqo?Q(5j{YH_rQ7UxH0yuKNH#^a7k>b0S;NUE=B}u6WdKfGNr(8TFq|i*TD`r}ZRmp(otl)EN$kl%M820qWbe}7=7+U7MF2X6s zJ70s9kEwvemlxy4o}~QVcM7T{v-O=`)ZwkisW^+oN1M);?t^~T&pW}N{=}ZcHi8V5 zcS4BMxL)bpjrsHUta3|18)c@h!D~Nz&T_w*R@O7{7F1hbso%LsmY5p z3D%su(GGeJwGf>)-Lv}@`rp}xGB{+Z@Gkb)4xvKm6q$@1FwQN3!~E8lgsu4+)lP>r zcJZ;yzCwOU6ve-nREN4%+9d#ss#%HX;u8g*6W+V%Mp=1ztvgd1#TPmiD@fU6<14)5 zo?xQAn2=*>0>nxdrPy6AW*rjInm~Au%*}%j&Z8Knj&l>*&d&96Z{&>>Iu^$9*bJ1l zb4KKJeB12vB!JrNYf42*|?p5h$i}niV zE@oVbWzqd|z!Ia5JFB(Q*|Kus?1G3yA4^$Uy!10MQPcW+@U_uz!(zH9-)Eb=f^uCI zS#CAcYX#`i?uaCB8|IaSipr887fLQZnXMI@nLB@GEH+7Z_20299VmzN7*E7_ zL^k)LDQv=8n#V!hE8mcgb@2OnT-G_&YONnJqQR5$BLfhl2`j-d;ZK>sX@<8AcVY#7 z6F=R43gm{Q;XQ4VypU^ei?~@vh>fWetN&f`lTsABshRW2+in3suek|6Sr>i1lRfBE z4Vc=Z@+#U|bALAg|8(xhxBE=L%^elw?{IN_REQSNlkTDrMZGZ?M@d zl0G@)f-6CvcLa5mcCzpbZK->@wYAqbzD;!5Z}WLIh?C!djao`v3Lq*AMBZ?MT|9#M zaPGXGzfJaKl58jhJPBAAzs>d<`>l(Wr$R~k|98`70f!T>zx>w23DzbLK{34px7C5_ zCc%wg2VEJF`S4S7;719jF3*6SZGPs6-4H*55cCm+dqJzBFrj7ugQ?h3hiHUdqIIGn ze%*XW;@93UghsAh@Hkueb(Ys#Tuy(`ZR(Y|JFEo0U5pkc>#AhkgpiF^2DD=I(b;-S z;OA}?pJX7O8V+2@8tq_W4y7x09=`fpS(>`^I#J_t%J=n4T>LP3PAR>DxzzsDO~GYst^$(~ zEP(2Nv;cgBbEa)~^Ul@-OgY%yIJ@LuX(B)8%hLp*SI95o65qS#F(f>6rE;!|3p=EpDvuwRy5Z8o9+H<#{f_GW(6bO^fhX<_4|2wdLFN`WK>HI zMSY;E-+FsC)mogn+vuB`z>oTJFOjB;HZPPWGQVXe+1>?C_;63_omwI@nv;5X+c>xR zH(f#}J3Aj6hsoXS#o5N9XG6Eq^U|E`$vz*7t#JRMXVgc&^`P^q*rL`hKVOlat)mZbW%p6k0_SJt7afs&F6r-Ty63m&6OA&rwVae%q5o~Ae{HdU-Tw#= zPRI9gB*cLIuSfsa{kv?Tie6D4ogU`_sq@uI0pA2L__)7r-TLVEsg%}VO{23g_G7c+ z>|y`$eKw|js-UHjyAV{sdpWR{4ITj@VP|KDzbc*bAOEP$2M&c4EDOF2!3G0?y&#t) zc#N^__V>3D&_Sw5@0S#zq3Y~ip(WvBV`yl&1Gwnobg4u7`yYeBr`3`R3i>rkD!wf- z%8q~e|%T3zn{>3 zj`ru#bhKM=gGW5DcRY%Bg2Ml4{k!k}OqsyF!O~718oxP-&}XT?bfX{xye0Vm_}5(^ zj5h}15c!QHeE5f1?y|u4V|~nrKmP4_ZXxCpx2J&&b?;l^U*E_7w*QG6Le>3Ki_9R* z|MS#2N}&)5U9uNYr~X%K{oni3dvJ63eWIc%ktFuq|C{Bap}(g&u z4Nz-)sIdsKrKNONS6ArFb|3xcly`CdFZ(W4A{Non(+_xY?!%7~w}~cu{LKjdP<$Zo z6Xc`gBO@d0pW571(K;vpOUL)8@dk8JDC((GJw87ArK5hJ@jJz#GW$pWSRCe0?suAd z**!`Jhu`_;tE{S{s-SdE_0KEmV#0x(x4N2TxzXlpM+#ArpzB1O#6MoBYpnkW@wTCI z{-ytvPICCeS{2kNv+{DJ=;X7gxq!v3dkg?Wv>EMEKEI;X51i-wh$;17*1v zyM-^n+|D0-|52v_Y!+fKe^8Y&X|F4T)+F(@}kpJtp z<1sF;)H|wEHEd2A?NUJwwyf6%@VE1@@@lWwO-@ec&GKq%WbWS7Z@+byvap!A0(%F$ zT72Ed-dEO9X3!R$sOeg{oVm^uP$(%aRlZ4*{fFyD#|i0rzyKlkKr6*KcnC;{fvG7C zX=&+#`torTsNoO3ApiMQ3%iH9x4O8uyKAiGp5SH=Rtswm6sjW! zwY0jnf>Sim2T_b+W`-m(!f9j0=pJWH`|2-Z;wxZX?d|QtFgIQ^dT?lzbUL}ZztPco zGl|cxZ*P-bO3ErmKijOzB%fc;`dHA?TglIA-(Q3qfCbQ)f2~9iUzNKzenNhQ)S@C| z(2@OKTJpMOBlJ6{QKTflg4Z2+JN<8dn;Q@6%gkBSV-QeNzhA zk7n$1bVyrnYSGctQMjB%WcY-S5EhEupGD3Xw=prUwsT0FT&AegT?mzIQxq|N;{<-O z5QKn$xRY#jINqWDmoE!lQ*L2n6JBJrmA;`zMnxq2+#!22__S#?nH>)Xe@X>jP7@Iu z*_146hMmX$vI=aH@*K5<508rfrskbg0yNZzxoKO*8VkKPuqVd;KpBr7pU^?-1xpGY zD0$HOiQDO>1p^zKv1-y?PJ5_d(sSiw%i#`vf&OM61v|ZHw%-vqJSsA_&uXR|^y*Jm}ERG}*WgkD4 z`8?=$i`4Zm*jU%hM{txm2dHUI*unWqjE;^`eBx4F`Ib$f=4rj$Du(O+=zwxkwFTt* zW951<2r56QFgQj&?d}0HT+j=?ivokW{pv#2^>t{H?d)xcLPrC|kXTvRFra)s;67i0 zk0#RhT`ghdh>l7P%D@y<=e}#7c79%&<;pc7W=zgvr|MuMIipFFQ9LjxP`0`Iv)=Fn zF&16{)sFAy+@T2i@)$=2(x(}{4##lW)?Fg*o$qgsfP!$~Z7Q)9KF{(fb$K;{y4X;| z;u?cPX>ow#Zse3eT-*C=H7Jqt0i*c#z2%TI{cX4dW3eM&777an!b}ASRYLb z3P#E8p2yWm$6`PfvP^AswIaoN@8Pgb8 zc;9|qR11N_-XKd;WUfk~*>;0@*b^YFO)M$dk#Ln!N|>4^XO}fjY+G75zKErsJRjg zdRBye`tF;H1T=C)eFPm(|NFp?LIIv=-dMsnYa!tQV?1kP+0vnoYv1v79LWZFu7Xba zh{v32?5$T`X~%*378V+u<_#9<(A?*9eg!DB+w7YtOpcB5$h&MdAAM!BKCGca3^@s8 zpy49{7?dMXLJb0Aban;am}qI|SvzuK=6&Qs?FWB*}M^t zn0XRd(@EXZ!;L~kb5gYXj?h38_7dzlHd=l5@qUqdDi`@1{u9z8>S|mG!klH!zn?sJ z8(wky_ob{BIjB3sr1qyh{uwBug7!tCiLI;&J2K^%L`ws|K`KEwC{)V143GQdW!5F3 zZIr4-WpOUUG5`6@SusYK1*XHEHhIUDkAX*>k#*r?VWZ_;bcqX6;9{ko+4JQPGndW^ z1;tV>L68*%fL*nMJy7j&d-p`S_Ym9)7Uo_I8X7p!q%T=^h$kf@Q{z~DD)f54<`p)c z%`St1v6>!eqB}~*d;VgvS@VOIH1nFPveZBhqEI0ML0oG&{qyi5f?P?p$2Apwr^%Jw z9ee=%Q07}N#xEAPI>Kvsq~y^A2!Qhf3JqMYkiWfBY5PLCwzd-=8-6QO@SY=!VCb{CkNN~>8^ut205pxI_x5fQGg1oP>fFt$c4w=^n#;ea_w&4_XM z>&TufhQ{I{j%#VylQ_aICRQslG=jI=s6O^RPc$ZeY03T3V;dr?nmPH#GPM~GR#Yk= zM6pbrp~Mioau+CyazuZ!P&mx5LOl|CyX<;;*%y-p%U;7yJ~tk6seJ3gs4e-`0_Q=1Y_z>S_Q^nTdjB$e2AEH28#&1)Wp9$Xh2g# z*Qbt_w|a{~5gScXQ?Y?gY`?752vCplV|oEcI&Ufl2^~j`K8)13Ek?JZ!#+CF_kx1+ z(19kP+8sff_VDqq^ah#{=2PqTuwDp=Bom(NeMfdJ=c0!OD&M{q)*7;ZmWi%``v*B%P7Dc;GY%-Nf9L(xA8 zSEdyK|I!1IvZv#opRPicTcsF6A!j3OrBmbmx;?q|yfu8`puL^%@%YEo{@9dYxzgO0 zcQGbB=DQ@K->cX!+3att=YC9GJ3QP48pMyjlWxF`HoGO#nDD&3tCn%630C9MSI5+l>fb<*v>}s)5XNK3b>dRWrrjTtbHbIQ#X(kq~h^u>-^mWbgK!{&BKNRMZ#>U^s;v02JR%$45z^}`NV zGq~%%XVvlTVU^;`&~2TWpABLmkIPY>G=i@C!Tzq2?csFE4{N1D`HhrlHs6=5m0#I( zLxrOf#C{~WYdliwReH3{?U&6he4%RN^1yLN-Dx!?I*q6fJs!7XOB=4&x!*hcXO!=q zei6ZCBK?$JYKZy^-)6$njIwd!2F$6#gumlNCHK<`U#+92ey% zX`boZnBDc`A29Aiyik<+V0Iu$Hcl? z*yOqmWnvbL`Alm~^t@6w#vO4{paS(7I~EbSc#JZ1zo1KlYTlajtY*67eURf$cz(fV zo`mKLdRjox@9k28=6!w6bg&nv%MO>Mn;Wcnp>0>6ZUU%w=O(vfHTJz+~pTUIUp>QxUxCgPLD zX4T!_4tryKeIopI#-k>PnkpF`8F<2CGW@#~@0j`>&#Pw7Zk+<4Z(pM0bSvk{Hxpbb z>`53#%qt=uOJvwPDYa6C;WFW}sJn|iQBssmTNM3~@#6i0@i`{hT=Qt)@39Nm2>%gw z9%s&yo9+iV)7cQMA z6atohldR7+2_{J~Zlw1}AGzlCg3{77xzFlPiUBBlD_?RB}5$du@cNQ8I%WkZbd@^gGwwAegmpb}l=@jNnUk?k3T z)rb9>m97*TZDpa13Z zRrlL%5G^0i30bAr`|B2{G3+Yvl_S=eNxtX9jDYRC2QxJXGJJG9Lr3DglZK%j zQZ^k!2_zw2nnvE-%Ty_w4zVnQxR7hSw@fW(cMhK&P!g^CJ%n0KU(PH^e`|npt18$` zJfr!s@|b?N9$r1rsox*Iokm(NYNmML`VoXcsf#9;?NEGOSJ3r()x4fXq>r(xY}2W1 zJ;q4qdj!X3gBfA&dZCa&I-+(fnHP6Zs>$>iY?W-p&Q3uVwGsaQ^+6ZlY~`G(KmV-HxGXXt@5jU>)COHA{J7 zx~h)5+6CT~BuPbAxr|S8Zx@B; zfEgVNf0mktca7Qvkui`T5A(HVI(;M_br=f)?|c%*F2T#qc!+s%Bq|00*n^|hB57BH zV~+3jZ8lfapdXYX#(9pmT}&iNCF(}Dp`n_Li{;N_yx^#z@G=P z^tTEHdS69pd+EFNX*Qe>C!`hAsQlc*TS3HCE>o{iY@yJInGw@goZPb>RY#0ToM^c4 zPByO29l`dz8p`s3&BBW`xR!~0sxri?`N5SKKrH)(PSA9Rz3{ghXanECLkr4-T6 z6l_S?=Dol^R9@+d9b>ly{Ax)=iydT4>v&b|743AED^HJy_~-G7s;0ZX_@luRF{GV{ zxn%Q6!FRGU$jZLlVcII1#OFE2r6k%WsX*sjNEU}EAQ4U2yQYJU#Ulbigk?@>H9G4hpdic&vgqA4KG`2fiKD{e*W@p z4UyuZVZi@&tV$rU$?Rq5ZlDZx)q!&})S-=1HVqdWdsJC1S4cRa41AWIZPvv_(VW}! zkR_e}LrMKJENaJG@DQk2I3puxa$LQ+1ZI0bKHGfC8{niFhr*#@ndJ70f)_=^d106m zxc;uTjiLPl9SEzgNXmb0U9FwSM{a|$DqUWQ74#F#wnKSVd2hx~r=nLf#d@h)?}Kyw zi|#E~a5!~NHq$j=qUN2O`|IgSumvCH1CqE%cJkQU+!7K0z6D3D-@yQ2eqt`(u_w(h zZPO4=oV2uCsCV>}prHPvE~AZE=VQbf?{;wFM3IAuNquG|{rZkt`t4X?&fK_P0%6x{ zWw_&{79f3dN34sv`mUF*@FGt_svRamL0TGzrgtl*oSebbc^>EQ5kmqbh%|#R0{@X$ z+jXyuKrq(hI1v|Oj2KZ@`y|*#mG|b0)oOI~Yv*zsCciS1$e2FTU6N$0>Hm+guZ)Ug z>$VMU0TKxA?iwJthTu-)?!kfvcL>4Voj|b0Y21RlySuwf1Fw_w-TTft_q}n);74^+ z4b{7L?Y-8VbIo;5@3boNv1=XmQ9v{8ufR+i!Ds_KF9KAQi&S@Cxiwl`;XDt z{C@l#m!-2?gDiqIUPKEnu_!FfQ#Zy4I=XI&<{YiT)HMh%Lf|t2h=c?ObZSAcgeYcd z{1;?vA^980rj(lzhmejyM1!RWC|X!J*&DF{Uk%(<@7sL-;%A$jBW`e?h{Gf*=CJjm zJ$evSW3?!<|0_o38KADIJz1{m+t^$+L`7(BB$&_1#`-r=J`4AR>$w$$!nqugu*$kn zu#aQRuVabS)yht}H>9b#?hvLC8A>-W^6POsmtg%Rps>9vKF31Z94m5>~bRcah%K zN+JVNbGzw$@-RF`1WzIdB{Pg~PJRkGl*j2l-x=qW(h`(G7K$x@P+y1s?xKBs{wtM$ zP=deXo(RdW-o1;Km~c{ht5enCY!j}9wUm1fnu%bQrEp(cv81ruJgM zgr<6{B)M{cjDy5n=^qeaL!d?~smte5ne0Nmjh~Q{9WLC0Rea?u&VymJwT-j2So=s) z)2-h-{eJ3!;5g93pnhHMyG%5?kozd(T!ua0fLya_Rk{NNG0H{BAvJfiO3ThJ-2WCi z7^7%zVG>U7E2;{m3=DlEG#?F;k0h}#?xrhZ_@F`d1QUd062obwUedIF5}TNkV;iX= z*VCRXBzgGJKR3UOKLAdB#(p@s)<#Vn4db1H4xuUSUGQ%V8$bOO7BOmMJQjrR;=qCa z-tr2{FaynujFghvC0=%U##yn}o#ZKSV(qN+G3~meH>;WD)aN3n`NO8z=klE)$ueH> zw0}-hv%n=F48^|VJ7%}~VGuMN5*ukYWrJ00V-_?V z{K345j`l1iN91_`!Eg3DPX^s&@RFhN1+QE~>T$;8rnmReaWJMEL6 zV0Z(1NX>5H89=s?utv{gM6Ez8Npu{2N!u!NgER;8$}W2)7^5OD*r^kEZ`D=@XsQkk z4=H$MJoVRI_$ySCT+4ntR>?@cWjG%W`=RbPF6eREMzuV>0b`FKbLn`Dt0PFZZ9SC8 zg%rZ2wpw<97>h}`)H>(#;e+h-=B`{CR|;c*y_ar752O*c_uaGA?}P)0OiLNfI&&Le zGfy9UKX_}okCp`TdL*W<05gxl8IpK|TWe%&zic`c=$l6f>TgH0yE*oh%zR+%5LLWB z_&J>^%D}7$55f8ex;@`BG%|Hf3d3^@1T<0TXQUp z1%5w@P`iXpSC z&DMX(ZrPOpQQgQ{*;#MP1-@6Yxc$Jux6vBk{mM?t`bWu6j+|k6V$a|p_#3hc5)3t0 zxFXYTB>bhv0uuB7@`KF7(82N;`%T;GY5AaHr(c0>6lB@VREDA73+rdtbp}z1zBbb_ zt)aVKev@sGhYS6RPYI4w5LBGi3F9PPHE@&*x)j;-3li6NPH|rEPLe6P`v@{?7yzG^ ztwxuM&az8MX&N6(L|=btg>;v}A;;`lw!K%BD2BflOY7CMkLW5w0jkIoG2L3QURA2= zSarZ1^g0VKMTv-g`|-Wq9Tqu3K^5sbh@NIdOgy|aCFVW$qKIs;u1MniYoX3XpXVw3(&Q>-_rP^kLbuOM+ls3=jkZ3c zas8XNO}LO&?{IRq%R6Lx>A5*_|PUcR-f)?~k}% z&n!aPp6y)phd`|cQSbE22qwuY$HV*X#nqk@P0f^xGqIP%ce+~~)^m1o=EcQW0(Nnx z?5OnW)SOQuZgSD@Ew{dnx+D^)0X2SJyY=HHY?k4Aw1gA*6bvZSXbTZqd33Q$$y%34 z6S=tUpxrN0sn79{>NG4=P;?#yfd7(1SO`Ny#6QBxz)%R}=Jv)H->3;Kl5HPd#kgKY z)PEbAdJtubl25TNW~W#bh9T0nbzgr+5UIrTtgUK7-N<-jOAhq{0VUcv3Xd#F$1_Fs zAlv;1GIqs*-B4SW`-4&hR!lbL1x}$%p~?_6nc^s))y-^dW~0`^XMR)-h_51gvQa1c zX~cmvN`L+k;+XJS*w&Jxf-;owBJd?6P*C`Dwf!LWWt_+DRR6&!m(*~l!c_Y<0}}y| z$NS0Ik5Q{u6~oBbhV>*J9UJYtxkLEPx;7SZdf+A^@rq0-?U*gFwQ(~tZEH%&e6S6G zXTP7XJ}}54U;`Z{qj3>yKk&J^hXqPz%V%>~y|l3al)3oA*}deR;dldA>yI27D>N;K zJpqHRz*%P`K|44qm}xo-UsklD&JcTz_xXl|P4U5s^~OBYUGq(a-3qt?yKd9(b5v2* z$|FSdV>ntlXJ>;zce;=zs__|i{~Es9Mw=@&Yo)DdbnUQ=h(^8G0j_sqLV0^Ql6kbvxq7xcwXV*LDNMWvv!`}(HmuYVM0<7BYbaI0{Sw^bpbj{8sE42$i}O?Z4_7gb z4ls~KRet6vE@J&{FuLNb`iEkmI@uxT9Ip`!FSE10>-uNs7mr>@zP~}`Gsj~<=Fj!x zII;Ng@S&saub>50s-1?G)~QN`%=;Z{C4!>>^`AVy64vQ#KmQ~PdMdop`EaH&)}jGI z4J^Xf;0jax>Q)W!aZSEH-fdJvI4LM*yt}Pi^(G4gxb{u9Z?0MZqX@6ZAGRU9mffLh z|Hw!@OY5D6p4YJ{kJXi1m0o~@&)Kg<yp#V;UM78SAhB8FtaZG0#TX z<4KQh-@R2ChuS9G4QR)U2{5K)S7D zd7iEF^f%#eXV2$s3tC!ow86+P|&}4+H6}=v*2>@b0Bs2 zBBe3PGM`Njd3yAe*Jkk1GE~Uxp=F}=N9u;UZBjRVq3|BmBM|r+Rq!tR`6pZ&ACO6l zc!q}7{OM`ueaNKm)|C0`~Y~$K;=}jAFI4Is4^A!>}+tHO zMW{0#2DgA^I(sFGpLf{Ei&4MzBhyUVY`s6*LrcN{PuP|@5lwKAM5;IRK!m9bPCvTP zP%JkQOu0_0#tut*Tb#~&2pV>%3f!^pS*69nCti=`D{j)+1}yGSxfAYcWo3|!ml|Evu zt@fdLb@%~!0Yl|mjf^xGk7bHhgy&7a$AV7=%A~lN^Y%B*g*xSg6v2lx-2^{&Di5!p zL#pEAU)o+QLvj0zNPNJVz}XunfFOiZ30D0oEUlb^?9g+2K+J75X$Ja)UYvMd%r}bu z7p>w&y%sA3?q;CpUD+`q4HRx7!o$kPG!XYZKY4GY_B$$xM_Qu_fnr(WB%`8sjz`w* z-xSn@@hKH)w4`V1Hl?am@oDjdP?8i|Ga)Wgk@DdREk2=i^tR)to!^KVAXrPxlItec z#1C~L)T)-E9UXareoK*8gJ?AC0;s02K*0l3NeQ7bZJ^fXa=8#JBce~qDM-pi;Pbn|t_RnRI$}gY%e1vu-p~?QReo!&}5?7=+g` z#!*CuS>M;$?K?Op^0iq|TlbL1TE#@Xe*^G-*q>gtQQ5I1mxLPb)^!s>ZKJ#3Fa4Go z`F*4EbzyyntIcKR2E@h2>w`%tC=2&%UxC9otTeLP zILb%HW7iu+8Q81pdAANgWj@X;!GOxA>!~CoJ@X=pVi?}Uy-8%f9&pk+=?G&^8f0mb z#z`)XE}A?^v~!m5Tr7>tk7_*1$gvmuDcd04czeV^*Jx2v#t(D<8gg~@Yv0u{io(YD zpP02M{<8}ilp`gBbCB)m`ET&aP=4oAF3_$@--3fu_zL|yMC*RJ+KjTf20cLEwO$>xAYNkA}@ABTDDiZ&Edf2?x-{OjJV|y67 zoHE)(P5J3J;c+X_5l`5MPK9x_{gwju8kRxk$?}+Sx-tDhkwy*5cwE#Ip{wHTteLDkdX8CMeaBFbGbGyc8CU4HbSFCqqn$4vISSkTd>%rO z`F#?3b-K<9B6sP3g*)8XbF1iJkbW$9)9bpT&$MJXkD3psvqz3i2Fzgl_Gw7uvCP<2 z{grK>^g6vnye6dP=uNzK?-B79emcsg$?bWaN)HkCO^#kV3QATqYfo^~q9^F8hkJ41 z$CE#!FTb6B5Px(&X|-^qFG`8BfL`G-Dhg6Hf23z1uh@E|v`|Kn^vnyd0}M7G-_)ef z(CcxZyjBYP2TTrA!ap>KY*KN4jo5(4<>=A9{P{oYU~X5 zi~vJ6NTM^qG~)N3{t6m*%y=y$r3jlmA%DWBU6EjIV;cp^_#|r8s!ZAs0N3h)fAqmQ zc19h5U!y$uD_M=rthYmC%(YkWc^P6QyHODCJMVf+(F%s5WI7)gA420`h0p+XgIO`jP`TBt>4>{ zn7?!nYik&+_W{UJ0UmE%zd~-qj$FHv`&v+1&N*`)wP0*gW1qB|qcsTu?WU`v+#UfV zxx>@~6>npLmdxF0MJ$l+mVlv}%SLt58_O0VQAi~(XrM1oy>K>Kgxq5^V#swBo^iY4 z_?rJEMw~N;j^1C}!9mHaVxMp})dm@fF&)II{_OPbW%tZd=t2G~=(`DlXb>SxAEp@g zpVeiV+!v>8^BWRe_DXv@E}O8HsKY}PKtXP~>c`2o|9qpaLQ7)(&;KahK(K{pg{Hrl z{@Mk8%DrOtTNj;;StEtvkhuT(S)Zyl6EgeqG40+Fw=xmIKK{`mKBm2*zJEJap8s=a z$w$MD6(Z{TyG)ql3$zAMt-I3avbFDs=(qZf%=f$ezom75N1Xn1JeK!cR+7g;LhwK2 zj{iRU6$BbQ6a2q=?SH8^|Ldj21?2l#TqH#k{jaBHcLd!2^LzaLJN@TaIF1G)%_H|NjnB`624;R4|pv|9)!W*_y!rl;-~How2RoL%794#`mvZ{6Ag> zA)Nl#IQ@S|$B$aU7deXB2WkF)Jrzoy{NI1Z@24m!E2|7h>D7K z%_8Iue|mMRd@G6y6Rf!^pg(~Jz zAIr?AO4p10BmJhd6Nac!?S)w{DgQM?JY-&lB7OPtMMVday-yXNqesL;D4SoEoYRj> zhfyI4?}UVe&LPrD&XUAw;*0a7t-P-gNhmNhl2kJ(lUi9*&5<8c)<(y`Qg=$*R%dEO zzXkt~Ngmw}1<`c&LWvDy{%iUlp+b?6kW>%&R&8dfFH=4}5L3Tj^%iS=v5yQ43hLjY zLzjO1N+f&l*L-ied_K2{J}|SS(?24auxQ&Rfwn(A3lxNSjXK{ylqlq>BxM#4Y0&pZ zaEp)d?TR9yqQ+6lJjZ*Sw&-HS@oBxER8c>*pXZV)`zrjl^Pj{qrJVs}D%cyiU0VNp zXoO!S5@BIs6-Of`JU%~tBed^&<*cyHB=pQ7K`(<$S!t!t^IVUaUsLmu%XYy)jYv<6 znx9cejai>@vOtKXmzYm9ky-nXFoy56USa^$I=|{gCPBidd@^yWC~snB+Ba{mPg-hZ zw7rwoqlH2;Ue$S2{=;1!oIdI z!;Q{4-VcR?B`7c6kviNv9KTgK>?UX96HTiz6Srf}5H>qANucUQQA$o>Hkn)yfq-cA z@5|NL7;I_;a2-kZGFm9L&S`7E(f;qH1j6sBv!O~DLi2zI5k2L$q)DP$QFT3DXXhwI zNd)iE0SWoaN>YH1aHp4^s<1&U8&E{mh*amqTR9|S7Toju*znhJ7Tj(D&4gg zuFy!^T~)2EQiM)vc=p3%E@t??Sn5P-nTkSmcasPiP8+mtH}fy4gC)^@xM73iZ7-zN zE3UW8DHBSi%*tv^N!x=-(#ngJFym@M>Sa32DMeO!Vg)A`ku#`PQ9mLHNhOHwhfR$EuJ2cIVBT*UFnV1E#y$RHxicU^axF5-mW39> zq$179dS|U9E|L$Qbz?!4qekjpd(11+qT;|vZ6{09*5V11XE#aTuhJswX~Z{dOSK$Y zw2@-~3hYMb=$14bp$CZW1-b~=VBcmJ+A(OpPzM%aAcY)}KmU@D5|Nh%8FkXF=ZiFZ zQS$D?($US4nu@3C&Jb^CC73qw-^i7UUadwxeT}D@HU*7xO`fJ7kot&1y)9J3OPNnm z)~f)(M51?^vX!85lqS&gze$F)r}tLQwJm+PC1I2x=22vR>}{Cf&54LlOpunhjZ_6R zlsW5pXHr@$-aDl2J{o!cX+y$~lcl}85#&Zz0@qM-L& zu`>P#L##-GZRU?Kzo}xzhSV|45kL=1&74iW>`?e9uCMPuIQ(PU#8IprlF;MPg>A<( zoFo!UWKfU@@qOX~K7WMnO~{k?x>g0ue5e_I@NWe$=z79*Oe5znJ!}!Y$$4T_4pJN>yBEg_7T$ z8DFX@lm77iz7P;vmx+Fm7mxw;L1=m#u?F5+Yed{q^mrc&cN((LWVpMHdeV#5^A%v4 z@Z?Pt?s%CFS+R22KVHUg^6QT7Q2x0=$fw(ai1Ket*39ek>bqbITY$ymIPY`b(<%-O z4gw0*ewD=_cA}z2K3QAjBGk1eUWC`idlN4;g_zSoWGL~l#k~}Qg2nY`C}Za#^i-Bk zsH{k5l~UmF@OOUIIiwl$1Cz^amFpWgxHQ{TX_S1%rS0}u)cI@znM>P}{Y-BFyy;Xn zO;<@-dIT)qhU9)qy0S4!iEW>>KmxLnM3*`7*xRA{!ryhy&!qb`+oa6|T|?<hlN}h-UVKHRAXP-)l)8`W?GnAft|^cnZX42={6|sXlQlB&_CTE_)T<&p{&2tFvY0Q6#hf6X;;A(d{49ZeSGDQ)r zVK+2^Q^)`E)u)XBS5^q(0-{f>St z+d%Bg-*u6~m{h(K6MQmxpcV*DDe_H z_-~n%D_gzxNekz8>KeWnxf-`zA2(-V;@2S(esy&*K@K9Gr_OlDAg@+k_gk$R367kY zBjPbr@^>Uh<-LXDG3o1$1-ZA%*Cts!s~q1Es3=6oy_|<%;XCD+6fnjUGR;$9v2a+v z#}+fYdKcw%IHQv3dE_=<^ZAF<$r9jqg~Gi`0*R#K4&+V!ohMQv4q zjy&dgLJJhZ^`1im2183EqIxFtj^UiMnTUeecL98W6TvC`M z>=@0-?_8$kYl(J&fJL0i%zFFx5S@bo8q3tp(msZ=&5Khv@dd2kuLln4aw4X;;U%FG z$r+!SedUY_YO!nrYF{J_J%W+;=bjMHQA6Vr+PvtGJ&4NHh{a5LU}$6lM?k?{#Z5FI z+;i0LNwFQn7s~`6q^%uDq)ym$c7~euIyT*9N-QEmlzuW7-jErR*NW2YsU&$)EORnT zMg162EQ!GYiSm3@17Adf2DMAoqj|6J=(O3B`iGi=zqihNH`JFQ4)t9@?4|qc7y!VUUNmAC<=@3?+$>CI>PRc~K zIWYKJf4%)nytZuyc?B3Xo z5GQtH;|EjB=~6W*B*FmBk-Qr=PE@Oq0W_zTmemt}%l4XRREN29(WX_D6YH--)6H!S zw~HAPmnYXFEfm2SDR$^c(d}hO901KumGaa8$if?3z%c0b_gq0P`4zR3GhCCF;9XG% zG!%RbB+@g#7X7?>%gE!|1;W5!6I&KZDDo&UK=nR$5U4rY#lyhPpzYN=izf71;pm@m z#k~}2SmnMeCZNrWZ22brD-lqPYtM6ib%CZR6Lwu?It)#>lt^_r%Nz}6VlZ9&){TLi z6AE3@PkYyGKe3kiL)bCKN4J;q>>Q5{RGatJLF*5;{-F@y47|WbymNoR7# zq3BL(n-&#F^EDwB%t*IX^${!=YPe5+fryow4%de!rq7Ne%X zB63PWF12Njdy6**4vsWISdDh0(A(m@BLa+H;b7~@ojKvezenwKo2LcBBB3EyS%qt$ ziR1SzNj)mh6a{4ceZ~%l3CATtg2qU*zk)_+$A3ok)N99^G!mI#>#pcVCb{9f&892P zeh^Hj{*b0QuahzToJr_1d^k}oM?(iOQuPve&h4F+&P@P=&%G?qE0iupL)KEkWn;c8 zeq@FY;JKH$)wbkfk;uUz%dQX`s9QC?V(xPkOI@33Kl)n{ZAIO8m^XJgL?k6;^(!1W zfVn!O=fxc@lmWCa5tn}Ppa=8)xm!v+`}yiBvTGbXrw7WzTNZsmxKbqWT_Ki4S-R_f zT`n}dbX2zWpJ$Y@M)4xN~2&gqRLbo=pI&=J|J zgUYKriv4Ai4g-t1%HqZm18-IY#z#Moxn#ohq)CMmVhbstUds9E9dfaBrQ^wER%&a! z)~k!P!jX%^+0ntAUfmy|SS0tCm%UWvY)aCA92HH!??mK6Pp8c1v)q&|@cNVj4_PHA zK;$h*Fa$Cl+#Rm*j%q$Kr5hSf1gFbp?71X}y^b1iST4hMXh%jS)~IuJQ$MZI`iJNV zLS)kVrJlRJhiqKB9jVWpUiY29sW?h8VEl#BIvqRxz)<~i0Ee4VyB8nktM~ds`bda~ z(f(j)U7G@i{nXDL2Yq7|igZlfV%Z&b*YpiLGrBj`Zo1=tB^_MlO>r#{PRaroTF+7! zvKi%LP_lB!*D(~AOg|lX7jv`7I7}wWI0a{7yj_)?=~Kmx$$ zHGy>_5j4;(Y#jutApD(p+dXVO&&&QUywBR3H_wjoX`J* zDL*UX=*Gwq@)>+oC>D?`t=e|`HzKFE8fohUQ))2D!BTGLW^}`=lp;#UHPd>^nziDd z;2!{~Y^Wgy5K7qPkAOm(HGE8gRaTT)-wyeuY_9$no8Mg?&7laD!y#*E>9{gVsTbM_tWC zmi$F_D$?ADoy!lOy!}e2Qz;~_@w+z&k_{4>0NZe>F4Z@fm6A8|^H9tXvS7B!xSW0$ zHwRl=25)!vX6_Q3r@sDdzOY5eRiR!ZTI^Wh4=3OPJuEq6cbZteOt^(k&!1j0&zi;b zIeJRj8$3Vy&5a9RhKXq#&xY>Fn(-EE5rWN*AtLPw6Zv%=Qul6jMrz8U^gg{~6gEKh zcd*O}dr7S=*$!-)>2eo6$n( zSsRQ>So2iod8eh{rVDJ(P7Tg1ze%TUa0x+n7U_ zzD&nn-n)o@*db_f_?b~yxi*Fli#=Pkics_GzW*O)75@WKhg4}n*owrYgp9xAYkvnt z|8wk@DDKN#sx@*dIR3`>i_0I`3#lK3!|^^%`ELLY9|3AWBVv=c0t>P&Jw~;k z^!?_Fgr0#Zf3CM31`5m#2MhbXt*z}LxA!9+76~z{J?4RZ1~$Dw>b0rau4J}2=A7W_c=4ZEtWbjH)O^tecdmG_- ziyu-Y{5xR^z_6n$BdC#9`}AKJegzI}dPsWK`}g_W-T=VipEgi6!7#u{-~$vc%a9<{Ord**lKKtqrs0|2v!x zF+llEt1#mc{4rFb9GgJAbM=r(U{=`4fhIuqrfA~07G7z3W}i-&^oD0Ur@k=lz$z>bz4sCYMQ(n5AKbTF z;>Itxx0XC9IJIdwA~8l?Q*O%#T-Jhj-ozC=ycxZ*(!BlJkmSgsUFS98W`ELnt<^+i zE0`Je!*iMIM|uI5VVj4jhd|==lQ*$OeNuOAMrT9>O_}o`_v-lUS~e*X5?ZCVSjhJ7 zE=^8O&c^9!+o&{CO)0a2=k1h!fn3uAhuT0s52Xioyu$L~?#hSV)~hZQLVJZ-k5PIW zh0$1#r^iO!x?_t``O&PE&TCNRPaop4q7t9!(?)@YqFay(qXIO7->a3DR>2hqOB|v7 zw^h1amKtnX8Q0_pIi~znf2M{mv~w>VDqDIxcdr+4a&G@kS@OQelW&4Hbn=#C4OL zG6K?=7ZnxNjQ}^d#s#Q#n1CHny+(7q;5^35kPqY~^)L|5)-qF-azC&fBq5sBBBvnF zhX9tXo6UzGY+`Y3WR{^&BZDlSv}(2f^mW*&}Gq0szW`R>_R`xfezayvR*l36A0 zNi#Hh8@S90!W0yfDM7YO`C8b$XC#=X4Q`7jhd-||2*;%#i5R-6x@Wkq_&he@oo!EC zKdds3SDr8U_z0X(8N^k3x5VSv#?1xR&ZwPm!Wgv&b1WLwauclLuIMA z;2Cfm=iOdQ79Esf%mg*_$^aK7%M#yV^_6Zw?cw`ERNospa*7{EZh;%G`x~-i`J5^r zOPe3O0(aqWMNW3EG4SF@m0WSKnpVW$s3{6MGp#r$#3nB(fv>!seP%VbAv8cly0C4K zWbcd~`#Q=~Mw!#{>NOY7g!V+4HP!RV10(11tai)t=AVs%I~w-pYj|@Bmk~IzV3Wb~ z+delc_Gtu9PDVaG`gRF;nx4H%BsG*51wcKY7-PwfLmeFe9iVzbTgN6C`5`F}qnM75 zGz!N?n}O{-giFw7fL(IgD&P>V!SKgGT=X(|XNR1;)5SXX0}2m86}`zDe(mTMHs(=D zg}19~cAwK;HRv&^qMyC@yEKgap>rw}H{J5&jF#8Zzn^SueeENEfB11gCeL~ChD+a<2d;oPcyPtjU0l3(k)V@DGf$pS_|E=I--_xI#-MLX zc~-gHH>@ojj{2{~Y;4^yIQZC>ESJa`ftKIXD%q|_KchVEM_UkQ{S|I3O*Ubi(#e9U zscJ!fFx1R!zYz4e)s(f!?RnQp@-Z*1RAv^MmQuL+PwwJun70+V z=Qdm4#iF92iNas*I_un*Bxq0;=h5#P;{k~;$;J}M)SE9FSHUKS1|YBAGOm=!kf$!L zkl4%^+fb}s-OxrDFpPYXCz0YlZuhY_^UbE!jL9!Qx^t1KeXF*bJ^ zN+}4a9)t>;sHj^S*Z4JvlCn0=+v_3a!eYinU*l%$hF7E{t^x0})%D|79>cBA?#&vl zSx*TcyQ$~ah#96P0Z>6->t_5`7N*`MC4{0SLk0=NMYZ?r);9D$NVGX2sreNfb~!i9YOEht@(tN;3ql3w-R3T~cBAG->@QD3L=iX zIPfX|Vd=*gR~&<}Nb|>Ny_V|~9rIauY56>8K-u=Tb^I@}Z)wpN*Xmhw-b>fsE(Yjb9s>@;JXm;&GIU9H-`s2x4-Jl1yP(``dIbrNJg8+c z=zB#j)>N|Z>HlWHJ!XlkJiFPYG^>{~U6v?ZUqsG%uJ$%TKEE!ucS$Ve^xRp#R_!9Z zzNOAdr=tbD-Q_1Zxn3jgaQt}RnKAIZ41c-9Tn+||IqZFq2G9^^?(s>o(?++hO2s>$>`J8jo<5)BOJhAgpl*pYNTy#G*Iu`Cs7WK{>9+&M0*NVJ| z6a{!j2Q>qBIz*ZJ$^|?K$uE8G`+M>Ts+{~aRAQOi{X7o`$}jvPrDB#AcL_Vat(!<3 zZ`M`#SoE}rUoY`+yQSC8cmUCSN>pB4EmgdFqjAFO9!R_c2@5VR!|U|oP#a&NBSYss zEPV4m-e)U7MYx!3z)nWr8!yS~w=FuH=+ei6Iq5|28-bLj#aJg~p#b3hUcb^5`#jKx zsleIbz0TrD1u;N5FZGbSQO~j?may&N`4mo=AI5;P-OIBo?dp^sc#!*PNxu(a-cm(A z(&=zY3X8;>*=?{ii`wd-CF2LmFgzOXr;d(}-?ffaKaJV8S{WOmcMUQevx9n{8!!E(*8jTZeTJO5|ERkO# zf2ZrSsi9e89n!Vm<>-q>Zg=GO_*3R|#mjUl(CRq&F?@V?aQmfRi>BZQh-oF3@A<16 zq^<2%MxB0jV{b&83dD;;_VI1+K^R9yVHWSPZGYboYe`g`0uhtCo_%RoZ`};Zi*(xA z3vu;Bk0lcyvLQs}fkX-+p>J>7W?wNgymg^_=N`vH$aRCr=yr0yBl*E!XK_ zLJZ<4q_#{F^B!WF(6j8R4Ke^NmwlE#z;^?O1RpiFZ@`8k%ASymaJT!SAr~_0##|mb zmPWb@D=&{P(j=aa$#j(rvy|LYm+!L0Rk)cC(>-oWXhX3>Hk=20ia*w=$=_x&A7~`n0P`kpoxqODxRYR^ z3X_gYuhZqptqQRyj?6XqUp2}B_^U!Tp`PGzK6a7v<)nVz^fgmR_+5Sj)EU_>+p_ z4i?to6Nid>VMU13F=+D&FS%HHNXT?C5!GSdbap@-N7r&RwKa6>uv{pv=>(tUn9sSS z60zFf;~YU$)P2E{$9Za=U1U|H^?_)VG7#zY4$d>Levcm8r$_?(P#u@yVGNus1M_}G z@sSpY>Cq>wchvw99`6oacFQRXl^H-WXi9>ljRjqhwR@qS>Vtxw=RT9l&00#!%|ROQ z2x257qpV!jqH>c9>0AMg5cKLDe$WGQkB@>>Fs?GNSK7%vNA%Q1i2nlDdheOYjF2B| zNAPzVXfXhLrMpW|Sf=~rWaRPT(NEntzelW?)=$)MS9FBiN!@r0t3>?(`4lnEp0$ig z5#_rDkwk|-LE^Avg>`VpD`RDiE@S>i>wOaXCIPd}RT*YHre*i58GD@+rmOa3Tx0(5 z;M#rq3k#wE<0>p{Y+Pew&#-wOA$?IJQU+X9bH-sEaK0mWWA&;Jwb{Cr1N)L zhc59*%rY821Zl>md?o~a__*(Lhzbdeox?NATQ7L=SPd$|pLSP=nAmy_BV(a8=y8JK7?v$8anXvP!1Re%^M`@sX8}fowxmq@AWzH*f^a_n;%CGC)99Og{7c1 zaZn7#i0cC!^!w1z;iBbg_s|hge)<00(#&$d z49ROTr0t?d@a$@exdlC$d%_cgDUVCJ;Uqq9@an(F41#I7f$T9rD5e_Mn{d|SS+ z-sk0Uej-Q31z?ROqhXN@)T-1V_Bwho>0A4;4VMs=<#D6Lw9QnIWuFPY95{5=BkjO{ z2xI1M7BTgqMX>XFckit*LfDOGp2=d|t7kPz_W%;bQP%aC1oSL6WKCQ@6LNgqW&SCz z-Yu7y?lB_8iBg*WZD-4NT5u#cSl)Ns+g2h~ZwXu=@tWs?#V5I-@-Zobk7 z^tQh|UOAMYAAYRm3z6izVZ~;&D)Cibo(ew+T*mBu=SD)j^(!EojS7#`^s&1t=)~|2 z&;o_VOiE->Y2dwu{QE*16Ob)EBX`9(FeHt)>7414I zwjweEICN$#F&FwBVtgQNr5h2Mu!qa)d^)er+y=JnA4@oxB=Hjd6v?eg!#5gFU<*#- zzu8m8<9Djp@jN%JvYt0`yV&1%NI=UTnYk%d_S+i%pcgxm(FkeWW+`;l=fzcs5QjQl zR@`IRB2gmVfm2L+e>aJ40v@)QT-{zqUx^`6t&I7RNc{@Uk6I)_05_ed%#nJ9T{D3- zsSi?9L;t1i@+Up##&7mB(f-3SH65Lm4dBW3*f_k=G_@FWT$k4+PNpV9;<+g?wz3(0!KY_3*Ak6Fn=$2jmh${_N>n2HzPUAybMUO^Sib`!orbkm`N!e!gS)qKjD1cemMnkNH>#QR-NZ? zIk|Nh=JcsM?35b)c>rxPkV**!qNbw% zyB*sY;^3=l{=3a`e?$zRH$+Kly;vb?U%qRA{AMOw7yN6WeymWVY1QoT$@efe^Zw;1 z1EE>rnxL1&L(gN>3R7G)PqJo8sH7%XS=ys8JQ|=(OOI70DkGiGk$3c#d|-vbgIe@u z^znY#@u?AS9%r|q{84+?bM)Rj>-0ALa%i-A2%polUHTwZpHgDG8^GeYyEau6cU+oT zK0mA#2ML2BX7)KA*PgsvZAX}VTGQRjJ-DXcI}oo8HDAvxsBHipk4E5c7e1AGq)Vfo zG|yVfD5bR-lwF_R*8bAIbIc1=mX&^4a%-EnDtD>OOC4QS-mCw@Pu5MUI6^YzKAOte zMCfB9pmOX@w}j5&J#}K`RH6&0j9PA6!~BRzEa^Z{li^t3w8CORIzS{JH`EMEkZbOTzeBK@B*%)0D=m?CEc zy(8r3r$lhLZ-wC;UWp{Vne>}PFz=1{u>2VZPpsxnb$%hnR#oBtd)zem1j;UK^2Y9w= zD{K19!yZ@}xhw3o`x`xM*#(Kcb}e=tk$eNJJnRarjW%sxvUAU^U>|-s$fhVTv+2{V z?5?}+bB9Ne>2x&u#}PX`I4KtvH=H%Q1nK?}WLC8O1(qU}oEOMFJQ)u}k|QOn*wZ_#lg!ZZR|-aPsIxVP!S&%?aQ(+}H^GAJ^LVV{0rLxy~9S4l|0;lZ=f zBem6^2O!k>Aj?}mQqB-6h(N%D*ENd z>u<7G6m^bZN9yknqrS7Zd%s}|m7y?Ba9cHMTw%qEmGD#DBxlV=J&%bhLBMR-@J4If zuCqUD*@0&+FjQZDG1QWzN^gJf+~&BkY%5YkFj0D5H&^sK^hL?i*7*KM?QHc0h)7#!Zx7iy#`rBq1(VMnv=KEqq#*uK_ZFT%RFH@&av2My3xva*O;>j+HRV|bc zJ{)MD4t?MEDJPhqbIV2M3xS^KrpgyyY^BSTwGE2sg2?QcKK&3-;1|DPn+cXm(uuwCWC5Td5u-Ceucfzv5iArU42bGIhO9W zx8+E=_nx;rDyNK`2`_hkQ~X_Nm&##s3-1qMFnzd}zQRAtmfD*}5OBcIC zYU-5n*1SarD_NqHGGmfk4hfH~+cdRtlO|dr$x9H&p=Jx~=Ke;H#5+9L#+oN{ff^RI zYTw{aBpiQ0v3>U05cRK{Wz3q>3g#g#zXUE+QAGEr4>dOh1 z-qs5yZSZ^j?c*VXj!6`bpX4~a0PmDRjKZ--!Ib~my27IwWM?+lXg<}6|iyqfA`&F zyR_Qn?(hJf?r0nyfqcC|DgGaRFu)aErL##%c-bM}-W}N2`-Bq_r^u(DM6MegfZ5~# zfyfd=k!arXDO)e4{dqYP2loHS9kpDuCFHY<@|J3-{_~zfK--OkfzAf1b~qJURyy;F$w@e4;nPMpX+&*FTT_s>h`we z{ysMRi;wLr!419Alcjxwp(tiXWg|QdL;VFf`#*}|A5|Bt=eTab=nl`*`t-$Z>y@{wU=J*q3qwrMqNO3 zt`b5qKuOMZws@9>CML zUr*OtSsP^iqi2!nu>qb9>MNdnB=vWv-F(a43S7I*`{VrAxiM}xYxam7S%nhxX^M~n z9p0gD-w5k-~{be>?KK?iVq!1y0+qW&vYy4cW> zA@(D{>v$6S2yn*)-4QVLwX)eqjr_`h{6>clY#?Mm{XA{5XO@FdF>~hhcn4r`=ZIv} z%kijn$lScxv9))-hV-jyg4e~#w@%km23>2c=OZPVhz_3^D5*?=uU4sgsa4hgB~k>-pHtQsINmPcJJu*VuIANs ztWt&Zu>gO5LJZ1LVZ^s!~3zsV61L2F*TPUvtRG^M{zNJWQ(D*-u?A9Buzu6&=Ug`FdjL&NYF?F$@8~jY_H8gGdu%~(>@BvrD^YZJjBXvkn3{VON zzxTOPqm`-g`41k=-nUN=KSo*^v`fgi{@uta_QN-0t*eA(p7Ti+)%3;iVfLpS1bzE{ zO#27rM=IihyS`R7$~I4hIGgiHz)46;C=l8THkteOH#mo8PbN@II> zP(O!zLI}l)gD?&)P^3Ht+e#N+;tmZW?$c_FC_uZnZL%D4{1Ak}vA_7@M>$GH*ejjn zIOx#Q1wvq(pgZnp=+2hWqrZ2-Fo+^z&QV4qr7E+`{$x)VuGF1vI_=7fM#{TH*i+U+P{`j3ul(4u+YYt;L zSs$Os;qkb#WylU#Fn^x*8R?1-Sv?R+&jo_R0^(?dAh*`2Sbg@aS=^bycFw^ZzoSf) z>?)-G+UtG!*~f+xgov{kIW-=AM_Y}4fg zfkx|^yGKsVTsd?4_xqHk1x&(EQb^7%U(x&e+niax4P_JfJMKTRTFVd_+98D;I9)iP z%gJJrnJwI=XkiuY$evE?TXq8d6jI26kOLtHPD>6XQ8fO}t-CGz+3D+O6XYn zuXqqW%eTe)zOo`BnSuZbfsi z|9yo!BFID~NNTj?-$I3o*yE2i^>$<-1i?3*UwX}DmVW(vxlGnb5#%^e&~Gs4;{?d6 zED5NHg2c)zdv%cV%cm0et=hBdtVe%HH@ficVysh*oavD9gOe_&;yjM4?k;zlQg zN~^xx`R7-%88Y6Ym*AMW=kEI)!nnfUF6s{A z{K23LoqhJX9^h70&IG7}g0gVX2tUk<7L{Hr-EX1#4peO+1-2EJLj}kqvUP#eS}Z*i zod#;#>Um}AUf{uTWUOCy*;UrA_4B?hk1}g2RJg!{<={h_j9L8mz~~J0GJU|2^PRHf zkzdgjAfSr~{37fBv(JV)Kkm5w9(Q(>J@*37aQ_GYt5$c%1Z|&f-o~?saa=_DRMQ<^ ze{S8Vb`MKGDq^1q9RTN6EkUl9Kkq_Yvuc^^g47zD5a;k{*s!tdHSfJQ!1Yh`PUx2=`NIoUlW1JlzCETM-ZshNg-+ygc<(PUx>j~X*yKLAeT4&+fi0C5u zt$DLYZM5oBlDz?Z8H657whZ!nW+emwca3fu(C@$huJP8lX>oG>t+zIGX9?>OIuQ;W z#(*7#;6nn$=FXdAx8Kpov*59-{1~?u*DGTvTkd>TM*(uo{UX_2QpV}U^pz0@&Y5rI zG{Lcl&f2VbI|VdWk&R`l*BQ(%XVB3&J2=;2XLvA3aPmmS!8=Oo3f`nAo_x?IO&skI z2(6xNFSv+89N#^u9iDIP1xkoEZQJHWUx-A8f&;y6`&JnXo^&HptvWY2W^hbQMz{S; zm@w8Jd+c5rPR?@ABRFOOUif2=ZdSx&7mr>fwTbHVA%z?WIS_InvPGPU-E)wm6t^5y+pV%N7fBGP4Bo%k8!9F9}|#i3`d7w7fx;>C}+fbzYf z9dO7K0S}Stykx}+|GawjYBwMw*nqQ|kT5_~nC=G^@_wU7KC7!^7b#Lqku7&g(7w=m zNC28SYo<2?+mo>nQI7E(EYPy&R*K3r*^&#ffyqy#$X8eEyfE}(j@Vd===1F#7B{$_#rs55XI_n&fst% z?HqwHI)kTRTrp~*gm4lpTKtvZxo)b4W2A;Y zm7}4W)$9ne?HDiSqAwg86W8*jK(%GYieP+4!k{T4~7ME8Qpcla>cjg(XC zN@W9#mjXpb141@y9QycU1oB9_HR(;ltG(Xi6(1@PQ)DPZWRUs0&qX9Ei#2mBi2i%gzc_`6d)YgE-|~zPuFax?Lqn;( zTMjHD`G9>R>jT1Ba`rhDZ03xgl%?~4qT&8$C>b;4@W5G%QobcFTWYJW*AdeEbMP0R=Idb{I zE|H;}%z&G2y2ig_?8f*B0qvP3Lst9r)9+o@ty%9X+byH{v(G;7SqXPN+|aYx$-o~! z_Gh(-$YS)HOpFH}xYLi*ty^z54A;80nt#uy4EGNPePVard5;Yl`hjY2{1q?9p=Tfq zVQ}5LX|o4uW6*7_;1}rYuP4N3pO;nu7tVk-Z6ZN${rZ3G+3LV#@u;ERT}}le0i(M> zS?<(EgMjrV+q*!4SpQD82*-i;_5BY2P9_ThQpozq=)fLha0We~oB~(M2^MJdm{IZB z_wT>|g`k4Y^R~#TGX=p6^e%+aADtr5ANY-aTz~zQe3XOWTkG2S4ZFYb6ZU40E|Q(s z3eI)0Enl+01F?dv`E3gNgRTVtYhSoEV3g4#-@ zV?j8U)=OR=GkT=M`clsYc;I255A#g;iWgS({m6JBONZJn&{pZy4exHO43P?6my!9r zHg2wmeg28nSLQMWsvBb)*Ne_dF#%=9xC`>>!N_PcepwCNj2Q^mtGO6(JV#iT2R> ziNlwW10e@O4ul*yrW}X}UUGK)DW`|vtWu>-X{plapZ5d($8BeS+TqKO7U2HXK}nuK z1@Sz=IiFGj^hFn6;({LOnLJ+tL2axAEufz6ZFIZWcEAxr#>cr8D%mb&77SE<2MTaK z`uP2FgeXN;0&DPWBGMwAo|zB^?HX09`R81@aw||ERXp?%KL*b*449-7V`zj1z1v$w z#joT=>AK4H41a;Lht^kfI>kbfr)SX|v5$ z7#jx)H8$$izuKXIs2frL#ycD%b&)bQsBv;m+473^7->6H69PO}1W}64kq!D1ou++vATtBRO!FD=loN zn0jKSw2B~FrzpZEk3S=xr1b0#OD5h(=>AoX3~0oNFNBBNNY{HeD^M`jx^#KVVHPqd zO9*ENP-G}#0|YHVT0BGs4B16sDkH>0yu%v^r_`|^)(N=FxfBt3(M44SYcSa}n2Jlj z-Xv$m{JFDinle7xYVIF->^{x&M#uY26_dpskvKc**1K8obB}rLp{JjE&@$_~1l|Ax z1u{C6Rf=U&DORkd?SE|Z-=dW=|KX&*L>xa9pyXP@ISRp_^vc@Fm?49|^Bv+k!BNET z!9RsliJ}ayAry9M`Y_MnPA4ROV;lRhZ_v(6$uWjSgDFKnZFdoQzXj( zs9}P?faS%=i?ahNq`)m?9iV$@V|)K{c%0;M#%!L^WI_Z4e9+3cb6lYPm#Z!W#(eCT za~Cg;$Z$~)0(1|#dMta+9IBnRTiF}SgF|_s3&Cx<^T+D9zwPIl)8c9un5~oJ#)FU~ zw-dq7^Cpl9$-K>yC96HCnvlp7p9-ESr*y+7o3wO!l)x>B_Cep%spbb`p+8Vemh3L` z5QqciR5gl`)+ZTL6;HSP@Aa_+xRGHyd3D}WF=?M=as z{qVyyyY=QfZ1%jlzAbmIyjlwpUIWETeFriKhJW_0L&jFCTEq9FwhK<8AAkJW^%8>d z3CKhLX0BJSTIu_pcYbAuPa{)%iGuDxLI`9>-{Azlpdb9R5I6H6+PllMY6!-AyZ4(8 zKMa4+FF;qI-7;mu?A^KDdcQTm*Hhz1?zPOS|AM12kV_*6J3gIXB9^!s+Iqv)p;mr!-UTt5jm1L?9gSGUt@La-rz-of1UNSps!}=!9Gj1Cf@Sr+9QuPm4IB- z4eXPZ;mAKxBQ=x>0RfMNvAU`<2PXdXlYKSp8&7}Ery2c{sKKi$&`e~j~ivx)t3NA zm#CVU4Ey+m(}BJO#@TM&-|^J!K?C3M_Be0?10sSoSqeC0pr@aH(CZygwCuz8``hjv zTOF5lhYa;CTQ{{lGUk)DLFUV5Wo;0}0ZuD?g)XdI%{ssQn&7ntC?)wzdsI+k=PRxI zn-QP+cCtuFaR+9M=$451x=-Jl`STPPxT6j3@C@N=%ht`FCXFz4o-$Gp*4?orA-Smp zvnEeHWHm0mOey8(D)lxZKy%V>zMUi`XpNu$sVACQk)p+|=2aI-8Ic4eK9MOy(R&CZ zYim-;m5L2tfxUd_=EoRYnVhAvqw92j6jWk~g5Akg^6pQ>M?X%-k`4h|E&FR;*a& zMcBbj&aHYRtWSu5790Z5p51#qYw7m8ZuD9o@R+O`96mT}7<*zRu90ar{Bt1mzG{ke9*+J#VPQNWItFuGIcuG34e`!W0UdD~K^%V=v*)?*9X zoq{g-RL}t52}>8E2s!t-iWMpdTJIaHqVeFQ0v_S^+v~=6XR_7-3KrPY(DJ1Vl)-(6 zV`wiC`~rkBl^BR?1xM+8@jSQ#xgQ2(DqO@Jb0!il#!on{em*VK5$YH`26mGo(^MEqQqG~ zHss_?3P^$`P8e;uB(GgAooYaT$vTovaW;^_aNTt`Sqs6*cIeQ;mU$qLvRjq0KpO}H z`0CXW#|d%*#{Pf^@E{-?qE;J}LD}E4R6``cAV1N82<8sRgWx3p1V;$;AhvT{#=2_R zV%LufNe=tu>b$I?2*DZm|r8qWFz66IQPZQ(1?pcERO2~h7 ziY@Duoi8uhKl-Gsb$Cc!xQUa;TYt?hx-eP!pcIe^L?#Mz_(@zQe2G$L+b7b|Uso0g zP{Oy|e5Zl|Z?UdISzt{s*SYG{uI@S$a#>yl2TmOKgAf`TSuW`)(3CiRt^SR-tDeLR zmzxQ|gJ&m){(WAut%UvAebK=L&O|Be3fTW8_rmtQ5jLuLO=5pv{jY6*f;fL=`SUH4bt zwx^zc#C5C)-;*eqGq2b981Yp^f9m*hdmB7JHFPxZ1fFu7h=cCPW@_Kn{2$wc(Toz% z^4TZ61vpy}P!lQBXY#^9e9x=&|BbpZDXz(d;=f7x10n!CxM!Yj>E6_#DoEN->G*gL zxnO^lm#A2Y(yC5B%cE_xo@;bdC)}IJRD~toRnkGr8D6gg-xgGIR91=yi^&IdExP2#^M-1 z94MG%?ku4_$BDlgCs;RJ+kr4kK{udX5X>kde$D@`lMtw;62`#y1YQVZbHDz*y-?e2 zw>EGG|5w95v2&h&P7m^{?Ny~mQ*64pio{jDq`DguIb}Zu1pxWDLH4uXcW2>B_=#T@*3gRjypcqns#e z9?%oQEhW08hHy(Mnn$K&e`SAAkPl}>S!G<1#R7dRj8=@FZ@oRpK38G#TW@aQeHkGP zR47)0JJ_)p>!}ApAIFW4CdeFax4)76NJFbf0|6$ zltHpiiq1H@=9=27v(VAz30wDG!S-OprKlT1{xoH%pfHgx4^Aw#FnX(?JH}odSIi|T z=mRx3z?fm^@Bi*Qey;6uR9x24&;S5H07*naRN!FnLhMp}SU)u`y~1mAz#EQ7vHPEX zp6*dvWUVxjlVrMzw}VwoKar_{n+p2v2ljEW9+Nrm`E8bPcQ4nxGndRos}}7%s)<6> ztjj=g+VA?-dSV|Gj0{Cm-5f68eb}BZZz+`I^ecdFRbO_NEH^)xYi*)pf{Y zAAK~~=KeaS%=0fG5Y}o%HJ!O0gzmgKG{bDCRSe9Z~kKRN?Z}ulKW$mAO$}&PuR_zx*oVbi)CO za{BYn)08ze$qOM8>_csgfrAIQ^7rt=P24e1Uoc`QYv4;m#{zbhHL_Z3w^+$C29(`T zKTUQhSrox_8#XBFYq_8mDo8;nBkbR-o+(68PMj_{J1SPHYOPy7?`!Sjp&!^yy550H zY7V)R9*7;ReT;tAe?y*D#f-4N9ArFfh zy8eMPB!h`-5JO5(Lui>IK${Czpp2ZYIHy1OaG>)nfZVMi=Xk=lz@TxS(@_sN7W0@G zj*$Y}&laFkRKtV1U%M6k94K*#p@U%`LJou+2svkn|G_U65f_pRjf<}#l5vqA6mb9on;eT3wor84A_g@GPLo9nK-(Pb&@oakiqJ$m2- zav@Jb1WgcJgv>?23;G{A2nCmMvOpNJ^GK(hGI^{!Z!Q#E7n$c6t$$y$+G`%tKPZI) zJ2-yOca#Wp8UC?*?%cM?GeFKMd#>QDD!I{_K)V{!`+iX{8G6f8O`dg!#5Z4m=CWT< zOGHEa7a`BmZ-U+4|KMHE4(8lFdv-G*fib94H?Zb4bq&-VWYRLF&a#grPu7&4laT*G z_5?vQ(S3SaeIn?lQKMTNPIt}P-|dN~9(E%-odW8)y7a5v%KDl7lc0`8)OUDC^Ggko zM`bJrVw!CAf^rT_6Z*j|l4skrec1*K>|;-9Zqdg_jrqa8|Na~20fpRq_Ikq}Q)Ur$ zP#QnjKyiNf2@`*?S6+MBdpBs% zXI|Tdg7TG=5RgSS3><-Dw2r7(86+nhuc5Fel4{K(3txP3H7{@vEOvfDOIN($A_eS4 z?DZdfG)S;$-?-krZ22;W)-I|Htyf;{ zF*O#Cc8(6);lUtD!2wDE47z~e zga7FMoNk|kF$VAPH{;W6puzZp_i&u2_5`0P*JxrGC)dgmT`zk6|1Ft1RfgnNAZI>5 z#-YS;RwZHs<0i9Xf6fkViYJ`wK}5_~D*RkY>A$}yngl|)MCc;}@d-%g#LlTe*mQQ$SaNF0JN^)I?fC?VQnri|UscYMwo3uBYQ&KOpC zt|1%~jRIjD=6uz344f+nJ|sT#Onk9pYp*lH@qszYE{xkH5@tJfYUddd6upx`#DvL$je<6p(O~MF0Z_(?1)xg_v2a_Ng3OakKeP8hYa%m zVC3hS-|oeBmQ%*ZKlJ=YU@26jq{B^tn~HPd2|)`n=2a4K-s<_9!wSK>PKxdTdh4MF zpY$~_dCGWuwtY)wip0jJcOwS?^@Ot{Ux6alvgK25WUi^qmYNzYLiAgzMFGtfUhaf( zqx8vFiWg%iqHM%BUs?8C`Ru*HeJwV&u=-TT+9--2L9Tc29;#C@$*39f%rg(EZG?Cp zfO}iFZhe2=Gj?jV3>?%)0?G~>{`tqMhjF!4tayH;axgo zs69stKqM`F>QCeCT`2_^?>lvT)%iPY*hkjqoj0UmrI7>gC07dCwe93{i18c603sSM zHnxzQIJK>RpGYeDI2Bv}ZsgbMd!eHiO8q3q;e~5+y)tevLW3tfNl|4ux~O^K(SDj^ z4BtS{U8)R@a^=eV{e(i0FLr+3dvuN*hVULZw&&Zw?CTZ?G@uoT#v}6WHYxAz+H?~C z_ZW^QuCZ9v{x}wyFM-3RnUqDcE&BG46k8_{iPZchs_W6Y>kBHN`GATtK7(%T>H9df zARMGb@6nfsAL6=_nL|bi9FRCXUVXibuAdybrtA4-vU=4jd#Q5=Aq1w<`Sv(J{6Ht^ zh35%r^vjkkuy*Y_D7io8x11KP{@DDKg{i@7?Yss#vkI z%~fq8?y)#dGiHcHGghy0l~I3?X9&@i7*f2r<>QTfv|YL?0#WN?wu-J6Em~YbU&2(@ zwMaJlC6``#z_x{omel>~=remx63b8P({j&@I5(ub=}Sy1o(<@e{uaK390)lOa^Upj zfbMbVS@{ZQv}7qV2anK0j+I;Ep1=00oZa4tD4n21Acq1^wLck|z$@sZA@51Xe9B(v z(A8ylbPu4DG6|NalWN&z%bwHaFi>K4{P~9s9z4L?VE_ke6C%)S*sxJwA*bfng$>fGG4md-mFU@AcR7{A=I;V+CW^t9O&# ze}AMt0`(zq&|s8CcVuhR=D zL-_TTJ}z`ZsE>^6WVt{2L{rI- zJ3VtA7%Ozs=~E{P68KrWQ;0wN_@6wU|HzRonz#LDpOl3HjgStG4oM9a0#?RKpFoG| z-+!o_E5F+>(xXe3I>*m}z6)x?H=m7kep2IN-fzEHXZ=$L$nO}n20-`Pl#o@_#Sv-G^fjof@ zhAn}hBrQn~Tmrh9?1ab0Jga%#K~XzYD>85ck4O1l%raYt*fCgFPnv@`+QYSdoGSJ@Tqg-w*9< z!31=Axt)C=?`g@i&avNS&xk&RRlM*LUwkkNC9MASx5(pmmqUFJz4gW${XK)@^2-Hl zA!vz(irBpGzT4z%DdV2LH(q;3k$1zaeY@tK^$`v4kScX5SB!$2uiwqNQy)iyXE