Repository: influxdata/kapacitor
Pull request #2492 (2021-03-05 05:21:09)

fix: tests weren't running properly in CI
Tests were not properly running in CI.  This makes them run properly.


Patch:
diff --git a/build.py b/build.py
index 430067f5..6492e511 100755
--- a/build.py
+++ b/build.py
@@ -207,10 +207,9 @@ def run_tests(race, parallel, timeout, no_vet):
             logging.error("Go vet failed. Please run '{}' and fix any errors.".format(' '.join(vet_cmd)))
             logging.error("{}".format(exc.output))
             return False
-        return True
     else:
         logging.info("Skipping 'go vet' call...")
-    test_command = "go test"
+    test_command = "go test -v"
     if race:
         test_command += " -race"
     if parallel is not None:
diff --git a/go.mod b/go.mod
index 13b54e2a..659292b1 100644
--- a/go.mod
+++ b/go.mod
@@ -12,10 +12,8 @@ require (
 	github.com/armon/go-metrics v0.3.4 // indirect
 	github.com/armon/go-radix v1.0.0 // indirect
 	github.com/aws/aws-sdk-go v1.8.16
-	github.com/benbjohnson/tmpl v1.0.0 // indirect
 	github.com/blang/semver v3.5.0+incompatible // indirect
 	github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40 // indirect
-	github.com/boltdb/bolt v1.3.1
 	github.com/cenkalti/backoff v1.0.0
 	github.com/coreos/go-oidc v0.0.0-20170307191026-be73733bb8cc // indirect
 	github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf // indirect
@@ -93,8 +91,11 @@ require (
 	github.com/stretchr/testify v1.4.0
 	github.com/syndtr/goleveldb v0.0.0-20170409015612-8c81ea47d4c4 // indirect
 	github.com/ugorji/go v0.0.0-20170312112114-708a42d24682 // indirect
+	go.etcd.io/bbolt v1.3.5
+	golang.org/x/net v0.0.0-20201021035429-f5854403a974 // indirect
 	golang.org/x/oauth2 v0.0.0-20170412232759-a6bd8cefa181 // indirect
-	golang.org/x/tools/gopls v0.6.5 // indirect
+	golang.org/x/sys v0.0.0-20210305215415-5cdee2b1b5a0 // indirect
+	golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
 	google.golang.org/api v0.0.0-20170421051952-fbbaff182731 // indirect
 	google.golang.org/appengine v1.0.0 // indirect
 	google.golang.org/grpc v1.2.1 // indirect
diff --git a/go.sum b/go.sum
index d7edb374..1a509cea 100644
--- a/go.sum
+++ b/go.sum
@@ -4,18 +4,12 @@ github.com/Azure/azure-sdk-for-go v5.0.0-beta.0.20161028183111-bd73d950fa44+inco
 github.com/Azure/azure-sdk-for-go v5.0.0-beta.0.20161028183111-bd73d950fa44+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
 github.com/Azure/go-autorest v7.3.1+incompatible h1:5WhXcLZV87Edv8L/9OhwPe5a/3KG2pDYWi/ZsRpXayg=
 github.com/Azure/go-autorest v7.3.1+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
-github.com/BurntSushi/toml v0.3.1-0.20170626110600-a368813c5e64 h1:Qe/XfSxGMmeTFfxjzmp7w++HA+ia7Rve7ey/dzDZQNM=
-github.com/BurntSushi/toml v0.3.1-0.20170626110600-a368813c5e64/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
 github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
 github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
 github.com/DataDog/datadog-go v2.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ=
 github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ=
 github.com/DataDog/zstd v1.4.0 h1:vhoV+DUHnRZdKW1i5UMjAk2G4JY8wN4ayRfYDNdEhwo=
 github.com/DataDog/zstd v1.4.0/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo=
-github.com/Masterminds/semver v1.4.2 h1:WBLTQ37jOCzSLtXNdoo8bNM8876KhNqOKvrlGITgsTc=
-github.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=
-github.com/Masterminds/sprig v2.16.0+incompatible h1:QZbMUPxRQ50EKAq3LFMnxddMu88/EUUG3qmxwtDmPsY=
-github.com/Masterminds/sprig v2.16.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o=
 github.com/PuerkitoBio/purell v1.1.0 h1:rmGxhojJlM0tuKtfdvliR84CFHljx9ag64t2xmVkjK4=
 github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
 github.com/PuerkitoBio/urlesc v0.0.0-20170324140228-bbf7a2afc14f h1:tGG2bF6ewA2usFL4KBiG3NmWBpZXDEIZJ48iMZ7JILs=
@@ -26,8 +20,6 @@ github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuy
 github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
 github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4 h1:Hs82Z41s6SdL1CELW+XaDYmOH4hkBN4/N9og/AsOv7E=
 github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
-github.com/aokoli/goutils v1.0.1 h1:7fpzNGoJ3VA8qcrm++XEE1QUe0mIwNeLa02Nwq7RDkg=
-github.com/aokoli/goutils v1.0.1/go.mod h1:SijmP0QR8LtwsmDs8Yii5Z/S4trXFGFC2oO5g9DP+DQ=
 github.com/armon/go-metrics v0.0.0-20190430140413-ec5e00d3c878/go.mod h1:3AMJUQhVx52RsWOnlkpikZr01T/yAVN2gn0861vByNg=
 github.com/armon/go-metrics v0.3.4 h1:Xqf+7f2Vhl9tsqDYmXhnXInUdcrtgpRNpIA15/uldSc=
 github.com/armon/go-metrics v0.3.4/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc=
@@ -35,8 +27,6 @@ github.com/armon/go-radix v1.0.0 h1:F4z6KzEeeQIMeLFa97iZU6vupzoecKdU5TX24SNppXI=
 github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
 github.com/aws/aws-sdk-go v1.8.16 h1:U3mHT+1WfcyilzQApcrJ+AQB8iEXkn4sv7pwIpxdZow=
 github.com/aws/aws-sdk-go v1.8.16/go.mod h1:ZRmQr0FajVIyZ4ZzBYKG5P3ZqPz9IHG41ZoMu1ADI3k=
-github.com/benbjohnson/tmpl v1.0.0 h1:T5QPGJD0W6JJxyEEAlVnX3co/IkUrfHen1/42nlgAHo=
-github.com/benbjohnson/tmpl v1.0.0/go.mod h1:igT620JFIi44B6awvU9IsDhR77IXWtFigTLil/RPdps=
 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=
@@ -57,7 +47,6 @@ github.com/coreos/go-oidc v0.0.0-20170307191026-be73733bb8cc h1:9yuvA19Q5WFkLwJc
 github.com/coreos/go-oidc v0.0.0-20170307191026-be73733bb8cc/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc=
 github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf h1:CAKfRE2YtTUIjjh1bkBtyYFaUT/WmOqsJjgtihT0vMI=
 github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
-github.com/davecgh/go-spew v0.0.0-20161028175848-04cdfd42973b/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
@@ -138,8 +127,6 @@ github.com/google/go-cmp v0.5.4 h1:L8R9j+yAqZuZjsqh/z+F1NCffTKKLShY6zXTItVIZ8M=
 github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 github.com/google/gofuzz v1.0.0 h1:A8PeW59pxE9IoFRqBp37U+mSNaQoZ46F1f0f863XSXw=
 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/safehtml v0.0.2/go.mod h1:L4KWwDsUJdECRAEpZoBn3O64bQaywRscowZjJAzjHnU=
 github.com/google/uuid v1.0.0 h1:b4Gk+7WdP/d3HZH8EJsZpvV7EtDOgaZLtnaNGIu1adA=
 github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/googleapis/gax-go v0.0.0-20170321005343-9af46dd5a171 h1:sK7F8pvKHNOtBnlQjHqNScQ+Ff5EAZxb8FnmxrD0TYw=
@@ -184,17 +171,12 @@ github.com/hashicorp/raft-boltdb v0.0.0-20171010151810-6e5ba93211ea/go.mod h1:pN
 github.com/hashicorp/serf v0.8.1 h1:mYs6SMzu72+90OcPa5wr3nfznA4Dw9UyR791ZFNOIf4=
 github.com/hashicorp/serf v0.8.1/go.mod h1:h/Ru6tmZazX7WO/GDmwdpS975F019L4t5ng5IgwbNrE=
 github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
-github.com/huandu/xstrings v1.0.0 h1:pO2K/gKgKaat5LdpAhxhluX2GPQMaI3W5FUz/I/UnWk=
-github.com/huandu/xstrings v1.0.0/go.mod h1:4qWG/gcEcfX4z/mBDHJ++3ReCw9ibxbsNJbcucJdbSo=
-github.com/imdario/mergo v0.3.4 h1:mKkfHkZWD8dC7WxKx3N9WCF0Y+dLau45704YQmY6H94=
-github.com/imdario/mergo v0.3.4/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
 github.com/influxdata/influxdb v1.1.4 h1:VLf6ewC579GzI+JQCCZdU2Ijeb/bnf6L8u+ptZhKXVM=
 github.com/influxdata/influxdb v1.1.4/go.mod h1:qZna6X/4elxqT3yI9iZYdZrWWdeFOOprn86kgg4+IzY=
 github.com/influxdata/usage-client v0.0.0-20160829180054-6d3895376368 h1:+TUUmaFa4YD1Q+7bH9o5NCHQGPMqZCYJiNW6lIIS9z4=
 github.com/influxdata/usage-client v0.0.0-20160829180054-6d3895376368/go.mod h1:Wbbw6tYNvwa5dlB6304Sd+82Z3f7PmVZHVKU637d4po=
 github.com/influxdata/wlog v0.0.0-20160411224016-7c63b0a71ef8 h1:W2IgzRCb0L9VzMujq/QuTaZUKcH8096jWwP519mHN6Q=
 github.com/influxdata/wlog v0.0.0-20160411224016-7c63b0a71ef8/go.mod h1:/2NMgWB1DHM1ti/gqhOlg+LJeBVk6FqR5aVGYY0hlwI=
-github.com/jba/templatecheck v0.5.0/go.mod h1:/1k7EajoSErFI9GLHAsiIJEaNLt3ALKNw2TV7z2SYv4=
 github.com/jmespath/go-jmespath v0.0.0-20151117175822-3433f3ea46d9 h1:1SlajWtS+u/6x2Be5vrHyrbSxkeIf/+ISBu//kmjpnc=
 github.com/jmespath/go-jmespath v0.0.0-20151117175822-3433f3ea46d9/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
 github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo=
@@ -214,7 +196,6 @@ github.com/k-sone/snmpgo v3.2.0+incompatible h1:2NogYilKYSia0f+seO9P7aRa6MKG6Rcn
 github.com/k-sone/snmpgo v3.2.0+incompatible/go.mod h1:9MC6LeG1sGPgrwnmu/V/ncg9P2M5zS5IvE+c4KZj25g=
 github.com/kimor79/gollectd v1.0.0 h1:6APoEersLJ2W0iwWj8C7COlienQ8XTWh8np4w0ggI8k=
 github.com/kimor79/gollectd v1.0.0/go.mod h1:lDxzEAixH34FPZ0nBIpjCu2vR3ZdIKZbbnf2rc+b2ao=
-github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
 github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk=
 github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
 github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
@@ -267,7 +248,6 @@ github.com/pkg/errors v0.8.0 h1:WdK/asTD0HN+q6hsWO3/vpuAkAr+tw6aNJNDFFf0+qw=
 github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
 github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
-github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
 github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
 github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
 github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
@@ -290,22 +270,16 @@ github.com/prometheus/procfs v0.0.8 h1:+fpWZdT24pJBiqJdAwYBjPSk+5YmQzYNPYzQsdzLk
 github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
 github.com/rakyll/statik v0.1.7 h1:OF3QCZUuyPxuGEP7B4ypUa7sB/iHtqOTDYZXGM8KOdQ=
 github.com/rakyll/statik v0.1.7/go.mod h1:AlZONWzMtEnMs7W4e/1LURLiI49pIMmp6V9Unghqrcc=
-github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
-github.com/rogpeppe/go-internal v1.5.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
-github.com/rogpeppe/go-internal v1.6.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
 github.com/russross/blackfriday v0.0.0-20151110051855-0b647d0506a6 h1:NCdCpzq6sADll3AUyACrweBbe2AqzpU3dVepB3mEaRE=
 github.com/russross/blackfriday v0.0.0-20151110051855-0b647d0506a6/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
 github.com/samuel/go-zookeeper v0.0.0-20161028232340-1d7be4effb13 h1:4AQBn5RJY4WH8t8TLEMZUsWeXHAUcoao42TCAfpEJJE=
 github.com/samuel/go-zookeeper v0.0.0-20161028232340-1d7be4effb13/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E=
-github.com/sanity-io/litter v1.3.0/go.mod h1:5Z71SvaYy5kcGtyglXOC9rrUi3c1E8CamFWjQsazTh0=
 github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I=
 github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
 github.com/segmentio/kafka-go v0.3.5 h1:2JVT1inno7LxEASWj+HflHh5sWGfM0gkRiLAxkXhGG4=
 github.com/segmentio/kafka-go v0.3.5/go.mod h1:OT5KXBPbaJJTcvokhWR2KFmm0niEx3mnccTwjmLvSi4=
 github.com/serenize/snaker v0.0.0-20161123064335-543781d2b79b h1:B6dcIy62mIVH3xZ+Alc5J4fLDWthEa1RPzK7L7/glTw=
 github.com/serenize/snaker v0.0.0-20161123064335-543781d2b79b/go.mod h1:Yow6lPLSAXx2ifx470yD/nUe22Dv5vBvxK/UK9UUTVs=
-github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=
-github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
 github.com/shurcooL/go v0.0.0-20170331015642-20b4b0a35211 h1:+OTcQECFnrdh6oabESXRUNFuM3Ol347YZvD+sL/Nfv0=
 github.com/shurcooL/go v0.0.0-20170331015642-20b4b0a35211/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk=
 github.com/shurcooL/markdownfmt v0.0.0-20170214213350-10aae0a270ab h1:3IXOl4NXdcTFFqBEjb4YESwjBVIz0bRdk4gq1OZBCbA=
@@ -325,7 +299,6 @@ github.com/stevvooe/resumable v0.0.0-20180830230917-22b14a53ba50 h1:4bT0pPowCpQI
 github.com/stevvooe/resumable v0.0.0-20180830230917-22b14a53ba50/go.mod h1:1pdIZTAHUz+HDKDVZ++5xg/duPlhKAIzw9qy42CWYp4=
 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 v0.0.0-20161117074351-18a02ba4a312/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
 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 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
@@ -339,20 +312,14 @@ github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c h1:u40Z8hqBAAQyv+vATcGgV
 github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I=
 github.com/xdg/stringprep v1.0.0 h1:d9X0esnoa3dFsV0FG35rAT0RIhYFlPq7MiP+DW89La0=
 github.com/xdg/stringprep v1.0.0/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y=
-github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
-github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
-golang.org/x/crypto v0.0.0-20180505025534-4ec37c66abab/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
+go.etcd.io/bbolt v1.3.5 h1:XAzx9gjCb0Rxj7EoqcClPD1d5ZBxZJk0jbuoPHenBt0=
+go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ=
 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-20190506204251-e1dfcc566284 h1:rlLehGeYg6jfoyz/eDqDU1iRXLKfR42nnNh57ytKEWo=
 golang.org/x/crypto v0.0.0-20190506204251-e1dfcc566284/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 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI=
 golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-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.0 h1:8pl+sMODzuvGJkmj2W4kZihvVb5mKm8pB/X44PIQHv8=
-golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/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-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -360,8 +327,6 @@ golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn
 golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3 h1:0GoQqolDA55aaLxZyTzK/Y2ePZzZTUrRacwib7cNsYQ=
 golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 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-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0 h1:wBouT66WTYFXdxfVdz9sVWARVd/2vfGcmI45D2gj45M=
 golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
@@ -374,8 +339,6 @@ 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-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9 h1:SQFwaSi55rU7vdNs9Yr0Z324VNlrF+0wMqRXT4St8ck=
-golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/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-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -388,12 +351,13 @@ golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7w
 golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/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-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f h1:+Nyd8tzPX9R7BWHguqsrbFdRx3WQ/1ib8I44HXV5yTA=
 golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4 h1:myAQVi0cGEoqQVR5POX+8RR2mrocKqNN1hmeMqhX27k=
-golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210305215415-5cdee2b1b5a0 h1:MOJR6AyRlIYMexU2acorBot1aPks0cBDOyUA4hFlBhE=
+golang.org/x/sys v0.0.0-20210305215415-5cdee2b1b5a0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
 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=
@@ -402,16 +366,6 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
 golang.org/x/tools v0.0.0-20190424220101-1e8e1cfdf96b/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
-golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20200410194907-79a7a3126eef/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
-golang.org/x/tools v0.0.0-20210101214203-2dba1e4ea05c/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
-golang.org/x/tools v0.1.0 h1:po9/4sTYwZU9lPhi1tOrb4hCv3qrhiQ77LZfGa2OjwY=
-golang.org/x/tools v0.1.1-0.20210201201750-4d4ee958a9b7 h1:/wdPW261t381NDQd8TBo63/FyvACfLICwtH8wMRoHJQ=
-golang.org/x/tools v0.1.1-0.20210201201750-4d4ee958a9b7/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
-golang.org/x/tools/gopls v0.6.5 h1:kLt9rD/dWtVdvc8LmdcxagDFih6zxYXREpKSYYZu5KE=
-golang.org/x/tools/gopls v0.6.5/go.mod h1:JLbMquQT9C0L/sQRgVbFtE46mWf3BurU5nY9F61hAPg=
-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 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
 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=
@@ -434,11 +388,9 @@ gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLks
 gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc h1:2gGKlE2+asNV9m7xrywl36YYNnBG5ZQ0r/BOOxqPpmk=
 gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk=
 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-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/gomail.v2 v2.0.0-20150902115704-41f357289737 h1:NvePS/smRcFQ4bMtTddFtknbGCtoBkJxGmpSpVRafCc=
 gopkg.in/gomail.v2 v2.0.0-20150902115704-41f357289737/go.mod h1:LRQQ+SO6ZHR7tOkpBDuZnXENFzX8qRjMDMyPD6BRkCw=
 gopkg.in/inf.v0 v0.9.0 h1:3zYtXIO92bvsdS3ggAdA8Gb4Azj0YU+TVY1uGYNFA8o=
@@ -451,11 +403,5 @@ 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 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU=
 gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-honnef.co/go/tools v0.0.1-2020.1.6 h1:W18jzjh8mfPez+AwGLxmOImucz/IFjpNlrKVnaj2YVc=
-honnef.co/go/tools v0.0.1-2020.1.6/go.mod h1:pyyisuGw24ruLjrr1ddx39WE0y9OooInRzEYLhQB2YY=
 k8s.io/client-go v1.5.1 h1:XaX/lo2/u3/pmFau8HN+sB5C/b4dc4Dmm2eXjBH4p1E=
 k8s.io/client-go v1.5.1/go.mod h1:7vJpHMYJwNQCWgzmNV+VYUl1zCObLyodBc8nIyt8L5s=
-mvdan.cc/gofumpt v0.1.0 h1:hsVv+Y9UsZ/mFZTxJZuHVI6shSQCtzZ11h1JEFPAZLw=
-mvdan.cc/gofumpt v0.1.0/go.mod h1:yXG1r1WqZVKWbVRtBWKWX9+CxGYfA51nSomhM0woR48=
-mvdan.cc/xurls/v2 v2.2.0 h1:NSZPykBXJFCetGZykLAxaL6SIpvbVy/UFEniIfHAa8A=
-mvdan.cc/xurls/v2 v2.2.0/go.mod h1:EV1RMtya9D6G5DMYPGD8zTQzaHet6Jh8gFlRgGRJeO8=
diff --git a/services/storage/api.go b/services/storage/api.go
index 27e991fd..8c39a1e4 100644
--- a/services/storage/api.go
+++ b/services/storage/api.go
@@ -8,9 +8,9 @@ import (
 	"strconv"
 	"strings"
 
-	"github.com/boltdb/bolt"
 	client "github.com/influxdata/kapacitor/client/v1"
 	"github.com/influxdata/kapacitor/services/httpd"
+	bolt "go.etcd.io/bbolt"
 )
 
 const (
diff --git a/services/storage/bolt.go b/services/storage/bolt.go
index c8a54199..92c16618 100644
--- a/services/storage/bolt.go
+++ b/services/storage/bolt.go
@@ -3,7 +3,7 @@ package storage
 import (
 	"bytes"
 
-	"github.com/boltdb/bolt"
+	bolt "go.etcd.io/bbolt"
 )
 
 // Bolt implementation of Store
diff --git a/services/storage/service.go b/services/storage/service.go
index 377ec802..4d652c1b 100644
--- a/services/storage/service.go
+++ b/services/storage/service.go
@@ -5,9 +5,9 @@ import (
 	"path"
 	"sync"
 
-	"github.com/boltdb/bolt"
 	"github.com/influxdata/kapacitor/services/httpd"
 	"github.com/pkg/errors"
+	bolt "go.etcd.io/bbolt"
 )
 
 type Diagnostic interface {
diff --git a/services/task_store/service.go b/services/task_store/service.go
index 5b63e1f9..a89ca8f5 100644
--- a/services/task_store/service.go
+++ b/services/task_store/service.go
@@ -12,7 +12,6 @@ import (
 	"strconv"
 	"time"
 
-	"github.com/boltdb/bolt"
 	"github.com/influxdata/kapacitor"
 	"github.com/influxdata/kapacitor/client/v1"
 	"github.com/influxdata/kapacitor/keyvalue"
@@ -23,6 +22,7 @@ import (
 	"github.com/influxdata/kapacitor/tick/ast"
 	"github.com/influxdata/kapacitor/uuid"
 	"github.com/pkg/errors"
+	bolt "go.etcd.io/bbolt"
 )
 
 const (


Test patch:
diff --git a/influxdb/client_test.go b/influxdb/client_test.go
index 2ea33c89..febe07b8 100644
--- a/influxdb/client_test.go
+++ b/influxdb/client_test.go
@@ -11,6 +11,8 @@ import (
 	"sync"
 	"testing"
 	"time"
+
+	"github.com/google/go-cmp/cmp"
 )
 
 func TestClient_Query(t *testing.T) {
@@ -198,7 +200,11 @@ func TestClient_Write(t *testing.T) {
 }
 
 func TestClient_WriteLarge(t *testing.T) {
+	if testing.Short() {
+		t.Skip("Skipping slow test that writes a batch of 100,000 points")
+	}
 	expected := &bytes.Buffer{}
+	wg := sync.WaitGroup{}
 	ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
 		var data Response
 		uncompressedBody, err := gzip.NewReader(r.Body)
@@ -213,10 +219,14 @@ func TestClient_WriteLarge(t *testing.T) {
 			t.Errorf("expected gzip Content-Encoding but got %s", r.Header.Get("Content-Encoding"))
 		}
 		if string(bod) != expected.String() {
-			t.Errorf("unexpected send, expected '%s', got '%s'", expected, string(bod))
+			t.Errorf("unexpected send:\n%s",
+				cmp.Diff(
+					strings.Split(expected.String(), "\n"),
+					strings.Split(string(bod), "\n")))
 		}
 		w.WriteHeader(http.StatusNoContent)
 		_ = json.NewEncoder(w).Encode(data)
+		wg.Done()
 	}))
 	defer ts.Close()
 
@@ -229,7 +239,7 @@ func TestClient_WriteLarge(t *testing.T) {
 	}
 
 	startT := time.Date(1999, 11, 9, 0, 0, 0, 3, time.UTC)
-	for i := 0; i < 1000000; i++ {
+	for i := 0; i < 100000; i++ {
 		pt := Point{
 			Name:   "testpt",
 			Tags:   map[string]string{"tag1": "tag1"},
@@ -243,11 +253,12 @@ func TestClient_WriteLarge(t *testing.T) {
 	if err != nil {
 		t.Errorf("unexpected error.  expected %v, actual %v", nil, err)
 	}
-
+	wg.Add(1)
 	err = c.Write(bp)
 	if err != nil {
 		t.Errorf("unexpected error.  expected %v, actual %v", nil, err)
 	}
+	wg.Wait()
 }
 
 func TestClient_Write_noCompression(t *testing.T) {
diff --git a/integrations/helpers_test.go b/integrations/helpers_test.go
index f348e38c..f3f016da 100644
--- a/integrations/helpers_test.go
+++ b/integrations/helpers_test.go
@@ -46,7 +46,8 @@ func NewMockInfluxDBService(h http.Handler) *MockInfluxDBService {
 
 func (m *MockInfluxDBService) NewNamedClient(name string) (influxdb.Client, error) {
 	return influxdb.NewHTTPClient(influxdb.Config{
-		URLs: []string{m.ts.URL},
+		URLs:        []string{m.ts.URL},
+		Compression: "none",
 	})
 }
 
diff --git a/integrations/streamer_test.go b/integrations/streamer_test.go
index 3dbe2675..d7cdeeb2 100644
--- a/integrations/streamer_test.go
+++ b/integrations/streamer_test.go
@@ -2,6 +2,7 @@ package integrations
 
 import (
 	"bytes"
+	"compress/gzip"
 	"context"
 	"encoding/json"
 	"flag"
@@ -13413,9 +13414,15 @@ func testStreamerWithOutput(
 	if err != nil {
 		t.Fatal(err)
 	}
-
 	// Assert we got the expected result
 	result := models.Result{}
+	if resp.Header.Get("Content-Encoding") == "gzip" {
+		resp.Body, err = gzip.NewReader(resp.Body)
+		if err != nil {
+			t.Fatal(err)
+		}
+	}
+	defer resp.Body.Close()
 	err = json.NewDecoder(resp.Body).Decode(&result)
 	if err != nil {
 		t.Fatal(err)
diff --git a/pipeline/json_test.go b/pipeline/json_test.go
index 27c8de65..fe0dbd4d 100644
--- a/pipeline/json_test.go
+++ b/pipeline/json_test.go
@@ -832,6 +832,8 @@ func TestPipeline_unmarshalNode(t *testing.T) {
 				cmpopts.IgnoreUnexported(InfluxQLNode{}),
 				cmpopts.IgnoreUnexported(StatsNode{}),
 				cmpopts.IgnoreUnexported(UDFNode{}),
+				cmpopts.IgnoreUnexported(agent.Option{}),
+				cmpopts.IgnoreUnexported(agent.OptionValue{}),
 				cmpopts.IgnoreUnexported(node{}),
 				cmpopts.IgnoreFields(InfluxQLNode{}, "ReduceCreater"),
 			}
diff --git a/server/server_test.go b/server/server_test.go
index 21352b6c..7701d455 100644
--- a/server/server_test.go
+++ b/server/server_test.go
@@ -1,7 +1,9 @@
 package server_test
 
 import (
+	"bytes"
 	"context"
+	"encoding/gob"
 	"encoding/json"
 	"fmt"
 	"io"
@@ -4730,7 +4732,9 @@ func TestServer_ReplayQuery(t *testing.T) {
 	got := make([]response, 0)
 	for dec.More() {
 		g := response{}
-		dec.Decode(&g)
+		if err := dec.Decode(&g); err != nil {
+			t.Error(err)
+		}
 		got = append(got, g)
 	}
 	if !reflect.DeepEqual(exp, got) {
@@ -6302,6 +6306,7 @@ func TestServer_CreateReplay_ValidIDs(t *testing.T) {
 
 func TestServer_UpdateConfig(t *testing.T) {
 	type updateAction struct {
+		name         string
 		element      string
 		updateAction client.ConfigUpdateAction
 		expSection   client.ConfigSection
@@ -6310,6 +6315,80 @@ func TestServer_UpdateConfig(t *testing.T) {
 	db := NewInfluxDB(func(q string) *iclient.Response {
 		return &iclient.Response{}
 	})
+	defMap := map[string]interface{}{
+		"default":                     false,
+		"disable-subscriptions":       false,
+		"enabled":                     true,
+		"excluded-subscriptions":      map[string]interface{}{"_kapacitor": []interface{}{"autogen"}},
+		"http-port":                   float64(0),
+		"insecure-skip-verify":        false,
+		"kapacitor-hostname":          "",
+		"name":                        "default",
+		"password":                    true,
+		"ssl-ca":                      "",
+		"ssl-cert":                    "",
+		"ssl-key":                     "",
+		"startup-timeout":             "1h0m0s",
+		"subscription-protocol":       "http",
+		"subscription-mode":           "cluster",
+		"subscription-path":           "",
+		"subscriptions":               nil,
+		"subscriptions-sync-interval": "1m0s",
+		"timeout":                     "0s",
+		"udp-bind":                    "",
+		"udp-buffer":                  float64(1e3),
+		"udp-read-buffer":             float64(0),
+		"urls":                        []interface{}{db.URL()},
+		"username":                    "bob",
+		"compression":                 "gzip",
+	}
+
+	deepCopyMapWithReplace := func(m map[string]interface{}) func(replacements ...map[string]interface{}) map[string]interface{} {
+		var a interface{} = "" // we have to do this to prevent gob.Register from panicing
+		gob.Register([]string{})
+		gob.Register(map[string]interface{}{})
+		gob.Register([]interface{}{})
+		gob.Register(a)
+		return func(replacements ...map[string]interface{}) map[string]interface{} {
+			// we can't just use json here because json(foo) doesn't always equal decodedJson(foo)
+			var buf bytes.Buffer        // Stand-in for a network connection
+			enc := gob.NewEncoder(&buf) // Will write to network.
+			dec := gob.NewDecoder(&buf) // Will read from network.
+			if err := enc.Encode(m); err != nil {
+				t.Fatal(err)
+			}
+			mCopy := map[string]interface{}{}
+
+			if err := dec.Decode(&mCopy); err != nil {
+				t.Fatal(err)
+			}
+			for i := range replacements {
+				for k, v := range replacements[i] {
+					v := v
+					if err := enc.Encode(v); err != nil {
+						t.Fatal(err)
+					}
+					vCopy := reflect.Indirect(reflect.New(reflect.TypeOf(v)))
+					if err := dec.DecodeValue(vCopy); err != nil {
+						t.Fatal(err)
+					}
+					mCopy[k] = vCopy.Interface()
+				}
+			}
+			return mCopy
+		}
+	}
+	if !cmp.Equal(deepCopyMapWithReplace(defMap)(), defMap) {
+		t.Fatalf("deepCopyMapWithReplace is broken expected %v, got %v", defMap, deepCopyMapWithReplace(defMap)())
+	}
+	{ // new block to keep vars clean
+
+		mapReplaceRes := deepCopyMapWithReplace(map[string]interface{}{"1": []string{"ok"}, "2": 3})(map[string]interface{}{"1": []string{"oks"}})
+		if !cmp.Equal(mapReplaceRes, map[string]interface{}{"1": []string{"oks"}, "2": 3}) {
+			t.Fatal(cmp.Diff(mapReplaceRes, map[string]interface{}{"1": []string{"oks"}, "2": 3}))
+		}
+	}
+
 	testCases := []struct {
 		section           string
 		element           string
@@ -6332,153 +6411,55 @@ func TestServer_UpdateConfig(t *testing.T) {
 			expDefaultSection: client.ConfigSection{
 				Link: client.Link{Relation: client.Self, Href: "/kapacitor/v1/config/influxdb"},
 				Elements: []client.ConfigElement{{
-					Link: client.Link{Relation: client.Self, Href: "/kapacitor/v1/config/influxdb/default"},
-					Options: map[string]interface{}{
-						"default":                     false,
-						"disable-subscriptions":       false,
-						"enabled":                     true,
-						"excluded-subscriptions":      map[string]interface{}{"_kapacitor": []interface{}{"autogen"}},
-						"http-port":                   float64(0),
-						"insecure-skip-verify":        false,
-						"kapacitor-hostname":          "",
-						"name":                        "default",
-						"password":                    true,
-						"ssl-ca":                      "",
-						"ssl-cert":                    "",
-						"ssl-key":                     "",
-						"startup-timeout":             "1h0m0s",
-						"subscription-protocol":       "http",
-						"subscription-mode":           "cluster",
-						"subscription-path":           "",
-						"subscriptions":               nil,
-						"subscriptions-sync-interval": "1m0s",
-						"timeout":                     "0s",
-						"udp-bind":                    "",
-						"udp-buffer":                  float64(1e3),
-						"udp-read-buffer":             float64(0),
-						"urls":                        []interface{}{db.URL()},
-						"username":                    "bob",
-					},
+					Link:    client.Link{Relation: client.Self, Href: "/kapacitor/v1/config/influxdb/default"},
+					Options: deepCopyMapWithReplace(defMap)(),
 					Redacted: []string{
 						"password",
 					},
 				}},
 			},
 			expDefaultElement: client.ConfigElement{
-				Link: client.Link{Relation: client.Self, Href: "/kapacitor/v1/config/influxdb/default"},
-				Options: map[string]interface{}{
-					"default":                     false,
-					"disable-subscriptions":       false,
-					"enabled":                     true,
-					"excluded-subscriptions":      map[string]interface{}{"_kapacitor": []interface{}{"autogen"}},
-					"http-port":                   float64(0),
-					"insecure-skip-verify":        false,
-					"kapacitor-hostname":          "",
-					"name":                        "default",
-					"password":                    true,
-					"ssl-ca":                      "",
-					"ssl-cert":                    "",
-					"ssl-key":                     "",
-					"startup-timeout":             "1h0m0s",
-					"subscription-protocol":       "http",
-					"subscription-mode":           "cluster",
-					"subscription-path":           "",
-					"subscriptions":               nil,
-					"subscriptions-sync-interval": "1m0s",
-					"timeout":                     "0s",
-					"udp-bind":                    "",
-					"udp-buffer":                  float64(1e3),
-					"udp-read-buffer":             float64(0),
-					"urls":                        []interface{}{db.URL()},
-					"username":                    "bob",
-				},
+				Link:    client.Link{Relation: client.Self, Href: "/kapacitor/v1/config/influxdb/default"},
+				Options: deepCopyMapWithReplace(defMap)(),
 				Redacted: []string{
 					"password",
 				},
 			},
 			updates: []updateAction{
 				{
+					name: "update url",
 					// Set Invalid URL to make sure we can fix it without waiting for connection timeouts
 					updateAction: client.ConfigUpdateAction{
 						Set: map[string]interface{}{
-							"urls": []string{"http://192.0.2.0:8086"},
+							"urls": []interface{}{"http://192.0.2.0:8086"},
 						},
 					},
 					element: "default",
 					expSection: client.ConfigSection{
 						Link: client.Link{Relation: client.Self, Href: "/kapacitor/v1/config/influxdb"},
 						Elements: []client.ConfigElement{{
-							Link: client.Link{Relation: client.Self, Href: "/kapacitor/v1/config/influxdb/default"},
-							Options: map[string]interface{}{
-								"default":                     false,
-								"disable-subscriptions":       false,
-								"enabled":                     true,
-								"excluded-subscriptions":      map[string]interface{}{"_kapacitor": []interface{}{"autogen"}},
-								"http-port":                   float64(0),
-								"insecure-skip-verify":        false,
-								"kapacitor-hostname":          "",
-								"name":                        "default",
-								"password":                    true,
-								"ssl-ca":                      "",
-								"ssl-cert":                    "",
-								"ssl-key":                     "",
-								"startup-timeout":             "1h0m0s",
-								"subscription-protocol":       "http",
-								"subscription-mode":           "cluster",
-								"subscription-path":           "",
-								"subscriptions":               nil,
-								"subscriptions-sync-interval": "1m0s",
-								"timeout":                     "0s",
-								"udp-bind":                    "",
-								"udp-buffer":                  float64(1e3),
-								"udp-read-buffer":             float64(0),
-								"urls":                        []interface{}{"http://192.0.2.0:8086"},
-								"username":                    "bob",
-							},
+							Link:    client.Link{Relation: client.Self, Href: "/kapacitor/v1/config/influxdb/default"},
+							Options: deepCopyMapWithReplace(defMap)(map[string]interface{}{"urls": []interface{}{"http://192.0.2.0:8086"}}),
 							Redacted: []string{
 								"password",
 							},
 						}},
 					},
 					expElement: client.ConfigElement{
-						Link: client.Link{Relation: client.Self, Href: "/kapacitor/v1/config/influxdb/default"},
-						Options: map[string]interface{}{
-							"default":                     false,
-							"disable-subscriptions":       false,
-							"enabled":                     true,
-							"excluded-subscriptions":      map[string]interface{}{"_kapacitor": []interface{}{"autogen"}},
-							"http-port":                   float64(0),
-							"insecure-skip-verify":        false,
-							"kapacitor-hostname":          "",
-							"name":                        "default",
-							"password":                    true,
-							"ssl-ca":                      "",
-							"ssl-cert":                    "",
-							"ssl-key":                     "",
-							"startup-timeout":             "1h0m0s",
-							"subscription-protocol":       "http",
-							"subscription-mode":           "cluster",
-							"subscription-path":           "",
-							"subscriptions":               nil,
-							"subscriptions-sync-interval": "1m0s",
-							"timeout":                     "0s",
-							"udp-bind":                    "",
-							"udp-buffer":                  float64(1e3),
-							"udp-read-buffer":             float64(0),
-							"urls":                        []interface{}{"http://192.0.2.0:8086"},
-							"username":                    "bob",
-						},
+						Link:    client.Link{Relation: client.Self, Href: "/kapacitor/v1/config/influxdb/default"},
+						Options: deepCopyMapWithReplace(defMap)(map[string]interface{}{"urls": []interface{}{"http://192.0.2.0:8086"}}),
 						Redacted: []string{
 							"password",
 						},
 					},
 				},
 				{
+					name: "update default,  subscription-protocol, subscriptions",
 					updateAction: client.ConfigUpdateAction{
 						Set: map[string]interface{}{
 							"default":               true,
 							"subscription-protocol": "https",
-							"subscriptions":         map[string][]string{"_internal": []string{"monitor"}},
+							"subscriptions":         map[string]interface{}{"_internal": []interface{}{"monitor"}},
 						},
 					},
 					element: "default",
@@ -6486,32 +6467,13 @@ func TestServer_UpdateConfig(t *testing.T) {
 						Link: client.Link{Relation: client.Self, Href: "/kapacitor/v1/config/influxdb"},
 						Elements: []client.ConfigElement{{
 							Link: client.Link{Relation: client.Self, Href: "/kapacitor/v1/config/influxdb/default"},
-							Options: map[string]interface{}{
-								"default":                     true,
-								"disable-subscriptions":       false,
-								"enabled":                     true,
-								"excluded-subscriptions":      map[string]interface{}{"_kapacitor": []interface{}{"autogen"}},
-								"http-port":                   float64(0),
-								"insecure-skip-verify":        false,
-								"kapacitor-hostname":          "",
-								"name":                        "default",
-								"password":                    true,
-								"ssl-ca":                      "",
-								"ssl-cert":                    "",
-								"ssl-key":                     "",
-								"startup-timeout":             "1h0m0s",
-								"subscription-protocol":       "https",
-								"subscription-mode":           "cluster",
-								"subscription-path":           "",
-								"subscriptions":               map[string]interface{}{"_internal": []interface{}{"monitor"}},
-								"subscriptions-sync-interval": "1m0s",
-								"timeout":                     "0s",
-								"udp-bind":                    "",
-								"udp-buffer":                  float64(1e3),
-								"udp-read-buffer":             float64(0),
-								"urls":                        []interface{}{"http://192.0.2.0:8086"},
-								"username":                    "bob",
-							},
+							Options: deepCopyMapWithReplace(defMap)(
+								map[string]interface{}{"urls": []interface{}{"http://192.0.2.0:8086"}},
+								map[string]interface{}{
+									"default":               true,
+									"subscription-protocol": "https",
+									"subscriptions":         map[string]interface{}{"_internal": []interface{}{"monitor"}},
+								}),
 							Redacted: []string{
 								"password",
 							},
@@ -6519,38 +6481,20 @@ func TestServer_UpdateConfig(t *testing.T) {
 					},
 					expElement: client.ConfigElement{
 						Link: client.Link{Relation: client.Self, Href: "/kapacitor/v1/config/influxdb/default"},
-						Options: map[string]interface{}{
-							"default":                     true,
-							"disable-subscriptions":       false,
-							"enabled":                     true,
-							"excluded-subscriptions":      map[string]interface{}{"_kapacitor": []interface{}{"autogen"}},
-							"http-port":                   float64(0),
-							"insecure-skip-verify":        false,
-							"kapacitor-hostname":          "",
-							"name":                        "default",
-							"password":                    true,
-							"ssl-ca":                      "",
-							"ssl-cert":                    "",
-							"ssl-key":                     "",
-							"startup-timeout":             "1h0m0s",
-							"subscription-protocol":       "https",
-							"subscription-mode":           "cluster",
-							"subscription-path":           "",
-							"subscriptions":               map[string]interface{}{"_internal": []interface{}{"monitor"}},
-							"subscriptions-sync-interval": "1m0s",
-							"timeout":                     "0s",
-							"udp-bind":                    "",
-							"udp-buffer":                  float64(1e3),
-							"udp-read-buffer":             float64(0),
-							"urls":                        []interface{}{"http://192.0.2.0:8086"},
-							"username":                    "bob",
-						},
+						Options: deepCopyMapWithReplace(defMap)(
+							map[string]interface{}{"urls": []interface{}{"http://192.0.2.0:8086"}},
+							map[string]interface{}{
+								"default":               true,
+								"subscription-protocol": "https",
+								"subscriptions":         map[string]interface{}{"_internal": []interface{}{"monitor"}},
+							}),
 						Redacted: []string{
 							"password",
 						},
 					},
 				},
 				{
+					name: "delete urls",
 					updateAction: client.ConfigUpdateAction{
 						Delete: []string{"urls"},
 					},
@@ -6559,32 +6503,12 @@ func TestServer_UpdateConfig(t *testing.T) {
 						Link: client.Link{Relation: client.Self, Href: "/kapacitor/v1/config/influxdb"},
 						Elements: []client.ConfigElement{{
 							Link: client.Link{Relation: client.Self, Href: "/kapacitor/v1/config/influxdb/default"},
-							Options: map[string]interface{}{
-								"default":                     true,
-								"disable-subscriptions":       false,
-								"enabled":                     true,
-								"excluded-subscriptions":      map[string]interface{}{"_kapacitor": []interface{}{"autogen"}},
-								"http-port":                   float64(0),
-								"insecure-skip-verify":        false,
-								"kapacitor-hostname":          "",
-								"name":                        "default",
-								"password":                    true,
-								"ssl-ca":                      "",
-								"ssl-cert":                    "",
-								"ssl-key":                     "",
-								"startup-timeout":             "1h0m0s",
-								"subscription-protocol":       "https",
-								"subscription-mode":           "cluster",
-								"subscription-path":           "",
-								"subscriptions":               map[string]interface{}{"_internal": []interface{}{"monitor"}},
-								"subscriptions-sync-interval": "1m0s",
-								"timeout":                     "0s",
-								"udp-bind":                    "",
-								"udp-buffer":                  float64(1e3),
-								"udp-read-buffer":             float64(0),
-								"urls":                        []interface{}{db.URL()},
-								"username":                    "bob",
-							},
+							Options: deepCopyMapWithReplace(defMap)(
+								map[string]interface{}{
+									"default":               true,
+									"subscription-protocol": "https",
+									"subscriptions":         map[string]interface{}{"_internal": []interface{}{"monitor"}},
+								}),
 							Redacted: []string{
 								"password",
 							},
@@ -6592,38 +6516,19 @@ func TestServer_UpdateConfig(t *testing.T) {
 					},
 					expElement: client.ConfigElement{
 						Link: client.Link{Relation: client.Self, Href: "/kapacitor/v1/config/influxdb/default"},
-						Options: map[string]interface{}{
-							"default":                     true,
-							"disable-subscriptions":       false,
-							"enabled":                     true,
-							"excluded-subscriptions":      map[string]interface{}{"_kapacitor": []interface{}{"autogen"}},
-							"http-port":                   float64(0),
-							"insecure-skip-verify":        false,
-							"kapacitor-hostname":          "",
-							"name":                        "default",
-							"password":                    true,
-							"ssl-ca":                      "",
-							"ssl-cert":                    "",
-							"ssl-key":                     "",
-							"startup-timeout":             "1h0m0s",
-							"subscription-protocol":       "https",
-							"subscription-mode":           "cluster",
-							"subscription-path":           "",
-							"subscriptions":               map[string]interface{}{"_internal": []interface{}{"monitor"}},
-							"subscriptions-sync-interval": "1m0s",
-							"timeout":                     "0s",
-							"udp-bind":                    "",
-							"udp-buffer":                  float64(1e3),
-							"udp-read-buffer":             float64(0),
-							"urls":                        []interface{}{db.URL()},
-							"username":                    "bob",
-						},
+						Options: deepCopyMapWithReplace(defMap)(
+							map[string]interface{}{
+								"default":               true,
+								"subscription-protocol": "https",
+								"subscriptions":         map[string]interface{}{"_internal": []interface{}{"monitor"}},
+							}),
 						Redacted: []string{
 							"password",
 						},
 					},
 				},
 				{
+					name: "new",
 					updateAction: client.ConfigUpdateAction{
 						Add: map[string]interface{}{
 							"name": "new",
@@ -6636,64 +6541,26 @@ func TestServer_UpdateConfig(t *testing.T) {
 						Elements: []client.ConfigElement{
 							{
 								Link: client.Link{Relation: client.Self, Href: "/kapacitor/v1/config/influxdb/default"},
-								Options: map[string]interface{}{
-									"default":                     true,
-									"disable-subscriptions":       false,
-									"enabled":                     true,
-									"excluded-subscriptions":      map[string]interface{}{"_kapacitor": []interface{}{"autogen"}},
-									"http-port":                   float64(0),
-									"insecure-skip-verify":        false,
-									"kapacitor-hostname":          "",
-									"name":                        "default",
-									"password":                    true,
-									"ssl-ca":                      "",
-									"ssl-cert":                    "",
-									"ssl-key":                     "",
-									"startup-timeout":             "1h0m0s",
-									"subscription-protocol":       "https",
-									"subscription-mode":           "cluster",
-									"subscription-path":           "",
-									"subscriptions":               map[string]interface{}{"_internal": []interface{}{"monitor"}},
-									"subscriptions-sync-interval": "1m0s",
-									"timeout":                     "0s",
-									"udp-bind":                    "",
-									"udp-buffer":                  float64(1e3),
-									"udp-read-buffer":             float64(0),
-									"urls":                        []interface{}{db.URL()},
-									"username":                    "bob",
-								},
+								Options: deepCopyMapWithReplace(defMap)(
+									map[string]interface{}{
+										"default":               true,
+										"subscription-protocol": "https",
+										"subscriptions":         map[string]interface{}{"_internal": []interface{}{"monitor"}},
+									}),
 								Redacted: []string{
 									"password",
 								},
 							},
 							{
 								Link: client.Link{Relation: client.Self, Href: "/kapacitor/v1/config/influxdb/new"},
-								Options: map[string]interface{}{
-									"default":                     false,
-									"disable-subscriptions":       false,
-									"enabled":                     false,
-									"excluded-subscriptions":      map[string]interface{}{"_kapacitor": []interface{}{"autogen"}},
-									"http-port":                   float64(0),
-									"insecure-skip-verify":        false,
-									"kapacitor-hostname":          "",
-									"name":                        "new",
-									"password":                    false,
-									"ssl-ca":                      "",
-									"ssl-cert":                    "",
-									"ssl-key":                     "",
-									"startup-timeout":             "5m0s",
-									"subscription-protocol":       "http",
-									"subscription-mode":           "cluster",
-									"subscription-path":           "",
-									"subscriptions":               nil,
-									"subscriptions-sync-interval": "1m0s",
-									"timeout":                     "0s",
-									"udp-bind":                    "",
-									"udp-buffer":                  float64(1e3),
-									"udp-read-buffer":             float64(0),
-									"urls":                        []interface{}{db.URL()},
-									"username":                    "",
-								},
+								Options: deepCopyMapWithReplace(defMap)(
+									map[string]interface{}{
+										"name":            "new",
+										"enabled":         false,
+										"password":        false,
+										"startup-timeout": "5m0s",
+										"username":        "",
+									}),
 								Redacted: []string{
 									"password",
 								},
@@ -6702,32 +6569,14 @@ func TestServer_UpdateConfig(t *testing.T) {
 					},
 					expElement: client.ConfigElement{
 						Link: client.Link{Relation: client.Self, Href: "/kapacitor/v1/config/influxdb/new"},
-						Options: map[string]interface{}{
-							"default":                     false,
-							"disable-subscriptions":       false,
-							"enabled":                     false,
-							"excluded-subscriptions":      map[string]interface{}{"_kapacitor": []interface{}{"autogen"}},
-							"http-port":                   float64(0),
-							"insecure-skip-verify":        false,
-							"kapacitor-hostname":          "",
-							"name":                        "new",
-							"password":                    false,
-							"ssl-ca":                      "",
-							"ssl-cert":                    "",
-							"ssl-key":                     "",
-							"startup-timeout":             "5m0s",
-							"subscription-protocol":       "http",
-							"subscriptions":               nil,
-							"subscription-mode":           "cluster",
-							"subscription-path":           "",
-							"subscriptions-sync-interval": "1m0s",
-							"timeout":                     "0s",
-							"udp-bind":                    "",
-							"udp-buffer":                  float64(1e3),
-							"udp-read-buffer":             float64(0),
-							"urls":                        []interface{}{db.URL()},
-							"username":                    "",
-						},
+						Options: deepCopyMapWithReplace(defMap)(
+							map[string]interface{}{
+								"name":            "new",
+								"enabled":         false,
+								"password":        false,
+								"startup-timeout": "5m0s",
+								"username":        "",
+							}),
 						Redacted: []string{
 							"password",
 						},
@@ -8721,26 +8570,17 @@ func TestServer_UpdateConfig(t *testing.T) {
 		if got.Link != exp.Link {
 			return fmt.Errorf("elements have different links, got %v exp %v", got.Link, exp.Link)
 		}
-		for k, v := range exp.Options {
-			if g, ok := got.Options[k]; !ok {
-				return fmt.Errorf("missing option %q", k)
-			} else if !reflect.DeepEqual(g, v) {
-				return fmt.Errorf("unexpected config option %q got %#v exp %#v types: got %T exp %T", k, g, v, g, v)
-			}
-		}
-		for k := range got.Options {
-			if v, ok := exp.Options[k]; !ok {
-				return fmt.Errorf("extra option %q with value %#v", k, v)
-			}
+		if !cmp.Equal(exp.Options, got.Options) {
+			return fmt.Errorf("unexpected config option difference \n %s", cmp.Diff(exp.Options, got.Options))
 		}
 		if len(got.Redacted) != len(exp.Redacted) {
-			return fmt.Errorf("unexpected element redacted lists: got %v exp %v", got.Redacted, exp.Redacted)
+			return fmt.Errorf("unexpected element redacted lists: %s, \n%s", got.Redacted, cmp.Diff(got.Redacted, exp.Redacted))
 		}
 		sort.Strings(got.Redacted)
 		sort.Strings(exp.Redacted)
 		for i := range exp.Redacted {
 			if got.Redacted[i] != exp.Redacted[i] {
-				return fmt.Errorf("unexpected element redacted lists: got %v exp %v", got.Redacted, exp.Redacted)
+				return fmt.Errorf("unexpected element redacted lists: %s, \n%s", got.Redacted, cmp.Diff(got.Redacted, exp.Redacted))
 			}
 		}
 		return nil
@@ -8812,23 +8652,26 @@ func TestServer_UpdateConfig(t *testing.T) {
 			}
 
 			for i, ua := range tc.updates {
-				link := cli.ConfigElementLink(tc.section, ua.element)
+				t.Run(ua.name, func(t *testing.T) {
+					link := cli.ConfigElementLink(tc.section, ua.element)
 
-				if len(ua.updateAction.Add) > 0 ||
-					len(ua.updateAction.Remove) > 0 {
-					link = cli.ConfigSectionLink(tc.section)
-				}
+					if len(ua.updateAction.Add) > 0 ||
+						len(ua.updateAction.Remove) > 0 {
+						link = cli.ConfigSectionLink(tc.section)
+					}
 
-				if err := cli.ConfigUpdate(link, ua.updateAction); err != nil {
-					t.Fatal(err)
-				}
-				if err := validate(cli, tc.section, ua.element, ua.expSection, ua.expElement); err != nil {
-					t.Errorf("unexpected update result %d for %s/%s: %v", i, tc.section, ua.element, err)
-				}
+					if err := cli.ConfigUpdate(link, ua.updateAction); err != nil {
+						t.Fatal(err)
+					}
+					if err := validate(cli, tc.section, ua.element, ua.expSection, ua.expElement); err != nil {
+						t.Errorf("unexpected update result %d for %s/%s: %v", i, tc.section, ua.element, err)
+					}
+				})
 			}
 		})
 	}
 }
+
 func TestServer_ListServiceTests(t *testing.T) {
 	s, cli := OpenDefaultServer()
 	defer s.Close()
@@ -9846,7 +9689,7 @@ func TestServer_AlertHandlers(t *testing.T) {
 			},
 			setup: func(c *server.Config, ha *client.TopicHandler) (context.Context, error) {
 				ts := bigpandatest.NewServer()
-				ctxt := context.WithValue(nil, "server", ts)
+				ctxt := context.WithValue(context.Background(), "server", ts)
 
 				c.BigPanda.Enabled = true
 				c.BigPanda.Token = "my-token-123"
diff --git a/services/influxdb/service_test.go b/services/influxdb/service_test.go
index 8802dbdc..ff86a0f9 100644
--- a/services/influxdb/service_test.go
+++ b/services/influxdb/service_test.go
@@ -1152,6 +1152,7 @@ func NewDefaultTestConfigs(clusters []string) []influxdb.Config {
 			Default:              true,
 			SubscriptionProtocol: "http",
 			StartUpTimeout:       0,
+			Compression:          "gzip",
 			// Do not start syncing goroutines
 			SubscriptionSyncInterval: 0,
 		}
diff --git a/services/storage/storage_test.go b/services/storage/storage_test.go
index 5a1b2158..19f5dae0 100644
--- a/services/storage/storage_test.go
+++ b/services/storage/storage_test.go
@@ -8,9 +8,9 @@ import (
 	"path/filepath"
 	"testing"
 
-	"github.com/boltdb/bolt"
 	"github.com/influxdata/kapacitor/services/storage"
 	"github.com/pkg/errors"
+	bolt "go.etcd.io/bbolt"
 )
 
 // Error used to specifically trigger a rollback for tests.
diff --git a/udf/agent/io_test.go b/udf/agent/io_test.go
index 6207ca5a..74482169 100644
--- a/udf/agent/io_test.go
+++ b/udf/agent/io_test.go
@@ -2,9 +2,10 @@ package agent_test
 
 import (
 	"bytes"
-	"reflect"
 	"testing"
 
+	"github.com/google/go-cmp/cmp"
+	"github.com/google/go-cmp/cmp/cmpopts"
 	"github.com/influxdata/kapacitor/udf/agent"
 )
 
@@ -30,8 +31,8 @@ func TestMessage_ReadWrite(t *testing.T) {
 		t.Fatal(err)
 	}
 
-	if !reflect.DeepEqual(req, nreq) {
-		t.Errorf("unexpected request: \ngot %v\nexp %v", nreq, req)
+	if !cmp.Equal(req, nreq, cmpopts.IgnoreUnexported(agent.Request{}, agent.KeepaliveRequest{})) {
+		t.Errorf("unexpected request: \n%s", cmp.Diff(nreq, req))
 	}
 }
 
@@ -62,8 +63,8 @@ func TestMessage_ReadWriteMultiple(t *testing.T) {
 			t.Fatal(err)
 		}
 
-		if !reflect.DeepEqual(req, nreq) {
-			t.Fatalf("unexpected request: i:%d \ngot %v\nexp %v", i, nreq, req)
+		if !cmp.Equal(req, nreq, cmpopts.IgnoreUnexported(agent.Request{}, agent.KeepaliveRequest{})) {
+			t.Fatalf("unexpected request: i:%d \n%s", i, cmp.Diff(nreq, req))
 		}
 	}
 }