Merge ~athos-ribeiro/ubuntu-docker-images/+git/cortex:1.11-22.04 into ~ubuntu-docker-images/ubuntu-docker-images/+git/cortex:1.10-21.10

Proposed by Athos Ribeiro
Status: Merged
Merge reported by: Athos Ribeiro
Merged at revision: f72aa3a518d892b96a374e1f9bd8d2d2b3d1bb2e
Proposed branch: ~athos-ribeiro/ubuntu-docker-images/+git/cortex:1.11-22.04
Merge into: ~ubuntu-docker-images/ubuntu-docker-images/+git/cortex:1.10-21.10
Diff against target: 245179 lines (+111396/-21911)
1761 files modified
.errcheck-exclude (+1/-1)
.github/workflows/test-build-deploy.yml (+9/-8)
.golangci.yml (+7/-0)
CHANGELOG.md (+64/-0)
MAINTAINERS (+1/-0)
Makefile (+1/-1)
README.md (+1/-1)
VERSION (+1/-1)
build-image/Dockerfile (+1/-1)
cmd/blocksconvert/main.go (+2/-2)
cmd/cortex/main.go (+2/-2)
cmd/query-tee/main.go (+3/-2)
cmd/test-exporter/main.go (+2/-2)
dev/null (+0/-653)
docs/_index.md (+3/-0)
docs/architecture.md (+1/-1)
docs/blocks-storage/compactor.md (+6/-2)
docs/blocks-storage/querier.md (+15/-0)
docs/blocks-storage/store-gateway.md (+18/-3)
docs/chunks-storage/running-chunks-storage-with-cassandra.md (+2/-2)
docs/configuration/arguments.md (+4/-0)
docs/configuration/config-file-reference.md (+67/-34)
docs/configuration/v1-guarantees.md (+14/-0)
docs/contributing/how-to-add-a-maintainer.md (+1/-1)
docs/contributing/how-to-upgrade-golang-version.md (+1/-0)
docs/guides/authentication-and-authorisation.md (+13/-6)
docs/guides/security.md (+12/-0)
docs/guides/zone-replication.md (+1/-1)
docs/proposals/block-storage-time-series-deletion.md (+255/-0)
docs/proposals/parallel-compaction.md (+67/-0)
go.mod (+36/-33)
go.sum (+766/-174)
integration/alertmanager_test.go (+6/-0)
integration/backward_compatibility_test.go (+11/-10)
integration/e2e/composite_service.go (+3/-4)
integration/e2e/db/db.go (+8/-4)
integration/e2e/logger.go (+1/-1)
integration/e2e/scenario_test.go (+1/-1)
integration/e2e/service.go (+6/-7)
integration/e2e/service_test.go (+4/-5)
integration/e2ecortex/client.go (+5/-0)
integration/e2ecortex/storage.go (+2/-2)
integration/getting_started_with_gossiped_ring_test.go (+6/-0)
integration/integration_memberlist_single_binary_test.go (+27/-13)
integration/kv_test.go (+30/-18)
integration/ruler_test.go (+160/-0)
integration/s3_storage_client_test.go (+6/-1)
oci/Dockerfile.ubuntu (+5/-3)
oci/cortex.yaml (+95/-0)
pkg/alertmanager/alertmanager.go (+10/-6)
pkg/alertmanager/alertmanager_client.go (+1/-1)
pkg/alertmanager/alertmanager_http.go (+2/-2)
pkg/alertmanager/alertmanager_http_test.go (+2/-1)
pkg/alertmanager/alertmanager_ring.go (+5/-5)
pkg/alertmanager/alertmanager_test.go (+1/-1)
pkg/alertmanager/alertstore/bucketclient/bucket_client.go (+1/-1)
pkg/alertmanager/alertstore/objectclient/store.go (+1/-1)
pkg/alertmanager/alertstore/store.go (+1/-1)
pkg/alertmanager/alertstore/store_test.go (+1/-1)
pkg/alertmanager/api.go (+2/-2)
pkg/alertmanager/api_test.go (+7/-10)
pkg/alertmanager/distributor.go (+3/-3)
pkg/alertmanager/distributor_test.go (+14/-10)
pkg/alertmanager/multitenant.go (+18/-10)
pkg/alertmanager/multitenant_test.go (+46/-25)
pkg/alertmanager/state_persister.go (+3/-3)
pkg/alertmanager/state_persister_test.go (+2/-2)
pkg/alertmanager/state_replication.go (+3/-3)
pkg/alertmanager/state_replication_test.go (+2/-4)
pkg/api/api.go (+2/-2)
pkg/api/api_test.go (+6/-5)
pkg/api/handlers.go (+2/-2)
pkg/chunk/aws/dynamodb_index_reader.go (+2/-2)
pkg/chunk/aws/dynamodb_storage_client.go (+6/-5)
pkg/chunk/aws/dynamodb_table_client.go (+4/-4)
pkg/chunk/aws/fixtures.go (+2/-2)
pkg/chunk/aws/metrics_autoscaling.go (+1/-1)
pkg/chunk/aws/mock.go (+1/-1)
pkg/chunk/aws/retryer.go (+4/-5)
pkg/chunk/aws/s3_storage_client.go (+1/-1)
pkg/chunk/azure/blob_storage_client.go (+3/-2)
pkg/chunk/cache/cache.go (+1/-1)
pkg/chunk/cache/cache_test.go (+25/-1)
pkg/chunk/cache/fifo_cache.go (+3/-3)
pkg/chunk/cache/fifo_cache_test.go (+1/-1)
pkg/chunk/cache/memcached.go (+40/-28)
pkg/chunk/cache/memcached_client.go (+2/-2)
pkg/chunk/cache/memcached_test.go (+37/-1)
pkg/chunk/cache/redis_cache.go (+6/-6)
pkg/chunk/cache/redis_cache_test.go (+1/-1)
pkg/chunk/cache/redis_client.go (+1/-2)
pkg/chunk/cache/snappy.go (+2/-2)
pkg/chunk/cassandra/fixtures.go (+2/-1)
pkg/chunk/cassandra/storage_client.go (+3/-3)
pkg/chunk/cassandra/storage_client_test.go (+1/-2)
pkg/chunk/chunk_store.go (+2/-2)
pkg/chunk/chunk_store_test.go (+2/-2)
pkg/chunk/chunk_store_utils.go (+39/-18)
pkg/chunk/gcp/bigtable_index_client.go (+1/-1)
pkg/chunk/inmemory_storage_client.go (+1/-1)
pkg/chunk/local/boltdb_index_client.go (+1/-1)
pkg/chunk/local/fs_object_client.go (+1/-1)
pkg/chunk/purger/purger.go (+3/-3)
pkg/chunk/purger/purger_test.go (+3/-4)
pkg/chunk/purger/request_handler.go (+1/-1)
pkg/chunk/purger/tenant_deletion_api.go (+2/-2)
pkg/chunk/purger/tenant_deletion_api_test.go (+1/-1)
pkg/chunk/purger/tombstones.go (+1/-1)
pkg/chunk/schema.go (+1/-1)
pkg/chunk/schema_config.go (+1/-1)
pkg/chunk/series_store.go (+1/-1)
pkg/chunk/storage/caching_fixtures.go (+2/-2)
pkg/chunk/storage/caching_index_client.go (+2/-2)
pkg/chunk/storage/caching_index_client_test.go (+1/-1)
pkg/chunk/storage/factory.go (+2/-2)
pkg/chunk/storage/factory_test.go (+2/-2)
pkg/chunk/storage/index_client_test.go (+1/-1)
pkg/chunk/table_manager.go (+2/-2)
pkg/chunk/testutils/testutils.go (+1/-1)
pkg/compactor/blocks_cleaner.go (+3/-3)
pkg/compactor/blocks_cleaner_test.go (+2/-2)
pkg/compactor/compactor.go (+17/-10)
pkg/compactor/compactor_http.go (+2/-2)
pkg/compactor/compactor_ring.go (+13/-6)
pkg/compactor/compactor_ring_test.go (+1/-1)
pkg/compactor/compactor_test.go (+53/-16)
pkg/compactor/syncer_metrics.go (+1/-1)
pkg/configs/api/api.go (+1/-1)
pkg/configs/client/client.go (+2/-2)
pkg/configs/db/postgres/postgres.go (+1/-1)
pkg/configs/db/traced.go (+1/-1)
pkg/configs/legacy_promql/engine.go (+2/-2)
pkg/configs/legacy_promql/engine_test.go (+5/-3)
pkg/configs/legacy_promql/test.go (+1/-1)
pkg/configs/userconfig/config.go (+10/-2)
pkg/configs/userconfig/config_test.go (+2/-1)
pkg/cortex/cortex.go (+11/-11)
pkg/cortex/cortex_test.go (+14/-3)
pkg/cortex/modules.go (+21/-11)
pkg/cortex/runtime_config.go (+2/-2)
pkg/cortex/server_service.go (+2/-2)
pkg/cortex/server_service_test.go (+4/-5)
pkg/distributor/distributor.go (+19/-8)
pkg/distributor/distributor_ring.go (+5/-5)
pkg/distributor/distributor_ring_test.go (+1/-1)
pkg/distributor/distributor_test.go (+54/-14)
pkg/distributor/ha_tracker.go (+23/-11)
pkg/distributor/ha_tracker_test.go (+73/-13)
pkg/distributor/ingester_client_pool.go (+1/-1)
pkg/distributor/query.go (+10/-24)
pkg/flusher/flusher.go (+5/-5)
pkg/frontend/config.go (+2/-2)
pkg/frontend/downstream_roundtripper.go (+4/-3)
pkg/frontend/frontend_test.go (+3/-3)
pkg/frontend/transport/handler.go (+26/-4)
pkg/frontend/transport/handler_test.go (+63/-0)
pkg/frontend/transport/roundtripper.go (+11/-1)
pkg/frontend/v1/frontend.go (+3/-3)
pkg/frontend/v1/frontend_test.go (+3/-3)
pkg/frontend/v1/queue_test.go (+3/-3)
pkg/frontend/v2/frontend.go (+4/-4)
pkg/frontend/v2/frontend_scheduler_worker.go (+6/-5)
pkg/frontend/v2/frontend_test.go (+3/-3)
pkg/ingester/client/client.go (+1/-1)
pkg/ingester/flush.go (+1/-1)
pkg/ingester/flush_test.go (+3/-3)
pkg/ingester/ingester.go (+42/-36)
pkg/ingester/ingester_test.go (+26/-19)
pkg/ingester/ingester_v2.go (+46/-5)
pkg/ingester/ingester_v2_test.go (+44/-44)
pkg/ingester/lifecycle_test.go (+15/-11)
pkg/ingester/mapper.go (+2/-2)
pkg/ingester/mapper_test.go (+1/-1)
pkg/ingester/transfer.go (+3/-3)
pkg/ingester/user_metrics_metadata.go (+3/-1)
pkg/ingester/user_state.go (+2/-2)
pkg/ingester/user_state_test.go (+1/-1)
pkg/ingester/wal.go (+2/-2)
pkg/ingester/wal_test.go (+4/-4)
pkg/querier/astmapper/parallel.go (+1/-1)
pkg/querier/batch/batch_test.go (+4/-0)
pkg/querier/batch/chunk_test.go (+1/-0)
pkg/querier/batch/merge.go (+3/-4)
pkg/querier/blocks_consistency_checker.go (+2/-2)
pkg/querier/blocks_consistency_checker_test.go (+1/-1)
pkg/querier/blocks_finder_bucket_index.go (+2/-2)
pkg/querier/blocks_finder_bucket_index_test.go (+2/-2)
pkg/querier/blocks_finder_bucket_scan.go (+5/-4)
pkg/querier/blocks_finder_bucket_scan_test.go (+2/-2)
pkg/querier/blocks_store_balanced_set.go (+3/-3)
pkg/querier/blocks_store_balanced_set_test.go (+2/-3)
pkg/querier/blocks_store_queryable.go (+44/-25)
pkg/querier/blocks_store_queryable_test.go (+61/-5)
pkg/querier/blocks_store_replicated_set.go (+2/-2)
pkg/querier/blocks_store_replicated_set_test.go (+10/-6)
pkg/querier/chunk_store_queryable.go (+8/-3)
pkg/querier/chunk_tar_test.go (+1/-1)
pkg/querier/distributor_queryable.go (+44/-8)
pkg/querier/distributor_queryable_test.go (+32/-43)
pkg/querier/duplicates_test.go (+2/-2)
pkg/querier/error_translate_queryable.go (+56/-24)
pkg/querier/error_translate_queryable_test.go (+3/-3)
pkg/querier/lazyquery/lazyquery.go (+2/-2)
pkg/querier/metadata_handler_test.go (+2/-2)
pkg/querier/querier.go (+17/-15)
pkg/querier/querier_test.go (+45/-22)
pkg/querier/queryrange/instrumentation.go (+2/-2)
pkg/querier/queryrange/limits.go (+1/-1)
pkg/querier/queryrange/promql_test.go (+5/-3)
pkg/querier/queryrange/query_range.go (+28/-11)
pkg/querier/queryrange/queryable.go (+1/-1)
pkg/querier/queryrange/querysharding.go (+2/-2)
pkg/querier/queryrange/querysharding_test.go (+1/-1)
pkg/querier/queryrange/results_cache.go (+6/-4)
pkg/querier/queryrange/results_cache_test.go (+2/-2)
pkg/querier/queryrange/retry.go (+2/-2)
pkg/querier/queryrange/retry_test.go (+1/-1)
pkg/querier/queryrange/roundtrip.go (+8/-3)
pkg/querier/queryrange/roundtrip_test.go (+1/-1)
pkg/querier/queryrange/split_by_interval.go (+39/-4)
pkg/querier/queryrange/split_by_interval_test.go (+57/-6)
pkg/querier/queryrange/test_utils.go (+1/-1)
pkg/querier/remote_read.go (+2/-2)
pkg/querier/remote_read_test.go (+2/-2)
pkg/querier/stats/stats.go (+34/-0)
pkg/querier/stats/stats.pb.go (+102/-16)
pkg/querier/stats/stats.proto (+4/-0)
pkg/querier/stats/stats_test.go (+91/-0)
pkg/querier/store_gateway_client.go (+1/-1)
pkg/querier/store_gateway_client_test.go (+1/-1)
pkg/querier/tenantfederation/merge_queryable.go (+25/-27)
pkg/querier/tenantfederation/merge_queryable_test.go (+86/-3)
pkg/querier/testutils.go (+67/-0)
pkg/querier/worker/frontend_processor.go (+5/-5)
pkg/querier/worker/frontend_processor_test.go (+1/-1)
pkg/querier/worker/scheduler_processor.go (+6/-7)
pkg/querier/worker/worker.go (+5/-3)
pkg/querier/worker/worker_test.go (+45/-32)
pkg/ring/basic_lifecycler.go (+14/-13)
pkg/ring/basic_lifecycler_delegates.go (+2/-2)
pkg/ring/basic_lifecycler_delegates_test.go (+8/-8)
pkg/ring/basic_lifecycler_test.go (+22/-16)
pkg/ring/client/pool.go (+3/-3)
pkg/ring/client/pool_test.go (+2/-3)
pkg/ring/http.go (+1/-1)
pkg/ring/lifecycler.go (+28/-14)
pkg/ring/lifecycler_test.go (+143/-16)
pkg/ring/model.go (+18/-5)
pkg/ring/model_test.go (+8/-0)
pkg/ring/ring.go (+11/-6)
pkg/ring/ring_test.go (+31/-9)
pkg/ring/testutils/testutils.go (+2/-2)
pkg/ring/util.go (+4/-2)
pkg/ring/util_test.go (+115/-0)
pkg/ruler/api.go (+2/-2)
pkg/ruler/api_test.go (+19/-18)
pkg/ruler/client_pool.go (+26/-3)
pkg/ruler/client_pool_test.go (+1/-1)
pkg/ruler/compat.go (+91/-13)
pkg/ruler/compat_test.go (+15/-2)
pkg/ruler/lifecycle_test.go (+12/-8)
pkg/ruler/manager.go (+3/-3)
pkg/ruler/manager_test.go (+2/-2)
pkg/ruler/mapper.go (+2/-2)
pkg/ruler/mapper_test.go (+2/-2)
pkg/ruler/notifier.go (+2/-2)
pkg/ruler/ruler.go (+35/-17)
pkg/ruler/ruler_ring.go (+5/-4)
pkg/ruler/ruler_test.go (+418/-34)
pkg/ruler/rulestore/bucketclient/bucket_client.go (+2/-2)
pkg/ruler/rulestore/bucketclient/bucket_client_test.go (+1/-1)
pkg/ruler/rulestore/config.go (+2/-1)
pkg/ruler/rulestore/config_test.go (+1/-2)
pkg/ruler/rulestore/objectclient/rule_store.go (+2/-2)
pkg/ruler/storage.go (+1/-1)
pkg/ruler/store_mock_test.go (+2/-0)
pkg/scheduler/queue/queue.go (+1/-2)
pkg/scheduler/queue/queue_test.go (+1/-2)
pkg/scheduler/scheduler.go (+3/-3)
pkg/scheduler/scheduler_test.go (+3/-3)
pkg/storage/bucket/azure/bucket_client.go (+1/-1)
pkg/storage/bucket/azure/config.go (+1/-1)
pkg/storage/bucket/bucket_util.go (+2/-2)
pkg/storage/bucket/bucket_util_test.go (+1/-1)
pkg/storage/bucket/client.go (+1/-1)
pkg/storage/bucket/client_test.go (+1/-1)
pkg/storage/bucket/gcs/bucket_client.go (+1/-1)
pkg/storage/bucket/gcs/config.go (+1/-1)
pkg/storage/bucket/s3/bucket_client.go (+1/-1)
pkg/storage/bucket/s3/config.go (+1/-1)
pkg/storage/bucket/s3/config_test.go (+1/-2)
pkg/storage/bucket/sse_bucket_client_test.go (+2/-2)
pkg/storage/bucket/swift/bucket_client.go (+1/-1)
pkg/storage/tsdb/bucketindex/loader.go (+3/-3)
pkg/storage/tsdb/bucketindex/loader_test.go (+2/-2)
pkg/storage/tsdb/bucketindex/storage.go (+1/-1)
pkg/storage/tsdb/bucketindex/storage_test.go (+1/-1)
pkg/storage/tsdb/bucketindex/updater.go (+2/-2)
pkg/storage/tsdb/bucketindex/updater_test.go (+1/-1)
pkg/storage/tsdb/caching_bucket.go (+1/-1)
pkg/storage/tsdb/config_test.go (+1/-1)
pkg/storage/tsdb/index_cache.go (+1/-1)
pkg/storage/tsdb/index_cache_test.go (+1/-2)
pkg/storage/tsdb/memcache_client_config.go (+3/-0)
pkg/storage/tsdb/tenant_deletion_mark.go (+1/-1)
pkg/storage/tsdb/users_scanner.go (+2/-2)
pkg/storage/tsdb/users_scanner_test.go (+1/-1)
pkg/storegateway/bucket_index_metadata_fetcher.go (+2/-2)
pkg/storegateway/bucket_index_metadata_fetcher_test.go (+1/-1)
pkg/storegateway/bucket_stores.go (+4/-4)
pkg/storegateway/bucket_stores_test.go (+3/-3)
pkg/storegateway/gateway.go (+6/-5)
pkg/storegateway/gateway_http.go (+2/-2)
pkg/storegateway/gateway_ring.go (+5/-5)
pkg/storegateway/gateway_test.go (+26/-15)
pkg/storegateway/metadata_fetcher_filters.go (+1/-1)
pkg/storegateway/metadata_fetcher_filters_test.go (+1/-1)
pkg/storegateway/sharding_strategy.go (+2/-2)
pkg/storegateway/sharding_strategy_test.go (+7/-5)
pkg/testexporter/correctness/delete_series.go (+1/-1)
pkg/testexporter/correctness/runner.go (+1/-1)
pkg/testexporter/correctness/simple.go (+1/-1)
pkg/util/active_user.go (+1/-2)
pkg/util/dns_watcher.go (+1/-1)
pkg/util/events.go (+1/-1)
pkg/util/grpc/healthcheck/health_check.go (+1/-2)
pkg/util/grpc/healthcheck/health_check_test.go (+1/-2)
pkg/util/grpcclient/backoff_retry.go (+3/-4)
pkg/util/grpcclient/grpcclient.go (+5/-5)
pkg/util/http.go (+2/-2)
pkg/util/limiter/query_limiter.go (+20/-5)
pkg/util/limiter/query_limiter_test.go (+4/-4)
pkg/util/log/experimental.go (+1/-1)
pkg/util/log/log.go (+21/-4)
pkg/util/log/wrappers.go (+4/-4)
pkg/util/metrics_helper.go (+25/-7)
pkg/util/net.go (+1/-1)
pkg/util/net/firewall_dialer.go (+1/-2)
pkg/util/net/firewall_dialer_test.go (+1/-2)
pkg/util/push/push.go (+1/-1)
pkg/util/spanlogger/spanlogger.go (+2/-2)
pkg/util/spanlogger/spanlogger_test.go (+1/-1)
pkg/util/time.go (+11/-0)
pkg/util/time_test.go (+28/-0)
pkg/util/validation/limits.go (+3/-6)
pkg/util/validation/limits_test.go (+1/-2)
pkg/util/validation/notifications_limit_flag.go (+1/-1)
pkg/util/validation/validate.go (+2/-2)
tools/blocksconvert/builder/builder.go (+6/-6)
tools/blocksconvert/builder/tsdb.go (+2/-2)
tools/blocksconvert/builder/tsdb_test.go (+1/-1)
tools/blocksconvert/cleaner/cleaner.go (+5/-5)
tools/blocksconvert/planprocessor/heartbeat.go (+3/-3)
tools/blocksconvert/planprocessor/service.go (+3/-3)
tools/blocksconvert/scanner/bigtable_index_reader.go (+2/-2)
tools/blocksconvert/scanner/cassandra_index_reader.go (+2/-2)
tools/blocksconvert/scanner/scanner.go (+6/-6)
tools/blocksconvert/scanner/scanner_test.go (+1/-1)
tools/blocksconvert/scheduler/scheduler.go (+3/-3)
tools/blocksconvert/scheduler/scheduler_test.go (+1/-1)
tools/blocksconvert/shared_config.go (+1/-1)
tools/doc-generator/main.go (+3/-3)
tools/doc-generator/parser.go (+1/-2)
tools/querytee/instrumentation.go (+1/-1)
tools/querytee/proxy.go (+2/-2)
tools/querytee/proxy_endpoint.go (+8/-3)
tools/querytee/proxy_endpoint_test.go (+1/-1)
tools/querytee/proxy_test.go (+10/-2)
tools/querytee/response_comparator.go (+1/-1)
tools/thanosconvert/thanosconvert.go (+2/-2)
tools/thanosconvert/thanosconvert_test.go (+1/-1)
vendor/cloud.google.com/go/CHANGES.md (+226/-0)
vendor/cloud.google.com/go/CONTRIBUTING.md (+27/-3)
vendor/cloud.google.com/go/README.md (+4/-2)
vendor/cloud.google.com/go/SECURITY.md (+7/-0)
vendor/cloud.google.com/go/bigtable/CHANGES.md (+5/-0)
vendor/cloud.google.com/go/bigtable/admin.go (+12/-13)
vendor/cloud.google.com/go/bigtable/bigtable.go (+5/-5)
vendor/cloud.google.com/go/bigtable/go.mod (+9/-8)
vendor/cloud.google.com/go/bigtable/go.sum (+57/-8)
vendor/cloud.google.com/go/doc.go (+81/-3)
vendor/cloud.google.com/go/go.mod (+8/-14)
vendor/cloud.google.com/go/go.sum (+80/-18)
vendor/cloud.google.com/go/internal/.repo-metadata-full.json (+677/-286)
vendor/cloud.google.com/go/longrunning/autogen/doc.go (+4/-2)
vendor/cloud.google.com/go/longrunning/autogen/operations_client.go (+152/-70)
vendor/github.com/Azure/azure-pipeline-go/pipeline/error.go (+3/-0)
vendor/github.com/Azure/azure-storage-blob-go/azblob/bytes_writer.go (+24/-0)
vendor/github.com/Azure/azure-storage-blob-go/azblob/chunkwriting.go (+219/-0)
vendor/github.com/Azure/azure-storage-blob-go/azblob/common_utils.go (+1/-0)
vendor/github.com/Azure/azure-storage-blob-go/azblob/highlevel.go (+221/-198)
vendor/github.com/Azure/azure-storage-blob-go/azblob/parsing_urls.go (+20/-1)
vendor/github.com/Azure/azure-storage-blob-go/azblob/request_common.go (+33/-0)
vendor/github.com/Azure/azure-storage-blob-go/azblob/sas_service.go (+32/-4)
vendor/github.com/Azure/azure-storage-blob-go/azblob/section_writer.go (+47/-0)
vendor/github.com/Azure/azure-storage-blob-go/azblob/service_codes_blob.go (+5/-2)
vendor/github.com/Azure/azure-storage-blob-go/azblob/url_append_blob.go (+38/-8)
vendor/github.com/Azure/azure-storage-blob-go/azblob/url_blob.go (+139/-36)
vendor/github.com/Azure/azure-storage-blob-go/azblob/url_block_blob.go (+66/-69)
vendor/github.com/Azure/azure-storage-blob-go/azblob/url_container.go (+14/-2)
vendor/github.com/Azure/azure-storage-blob-go/azblob/url_page_blob.go (+67/-17)
vendor/github.com/Azure/azure-storage-blob-go/azblob/url_service.go (+32/-3)
vendor/github.com/Azure/azure-storage-blob-go/azblob/version.go (+1/-1)
vendor/github.com/Azure/azure-storage-blob-go/azblob/zc_pipeline.go (+0/-1)
vendor/github.com/Azure/azure-storage-blob-go/azblob/zc_policy_request_log.go (+14/-8)
vendor/github.com/Azure/azure-storage-blob-go/azblob/zc_policy_retry.go (+2/-0)
vendor/github.com/Azure/azure-storage-blob-go/azblob/zc_policy_unique_request_id.go (+16/-3)
vendor/github.com/Azure/azure-storage-blob-go/azblob/zc_retry_reader.go (+10/-2)
vendor/github.com/Azure/azure-storage-blob-go/azblob/zc_sas_account.go (+17/-2)
vendor/github.com/Azure/azure-storage-blob-go/azblob/zc_sas_query_params.go (+43/-7)
vendor/github.com/Azure/azure-storage-blob-go/azblob/zc_service_codes_common.go (+3/-0)
vendor/github.com/Azure/azure-storage-blob-go/azblob/zc_storage_error.go (+1/-1)
vendor/github.com/Azure/azure-storage-blob-go/azblob/zz_generated_append_blob.go (+214/-46)
vendor/github.com/Azure/azure-storage-blob-go/azblob/zz_generated_blob.go (+937/-107)
vendor/github.com/Azure/azure-storage-blob-go/azblob/zz_generated_block_blob.go (+184/-59)
vendor/github.com/Azure/azure-storage-blob-go/azblob/zz_generated_client.go (+1/-1)
vendor/github.com/Azure/azure-storage-blob-go/azblob/zz_generated_container.go (+77/-3)
vendor/github.com/Azure/azure-storage-blob-go/azblob/zz_generated_models.go (+2431/-214)
vendor/github.com/Azure/azure-storage-blob-go/azblob/zz_generated_page_blob.go (+216/-78)
vendor/github.com/Azure/azure-storage-blob-go/azblob/zz_generated_service.go (+156/-5)
vendor/github.com/Azure/azure-storage-blob-go/azblob/zz_generated_version.go (+1/-1)
vendor/github.com/Azure/azure-storage-blob-go/azblob/zz_response_helpers.go (+4/-6)
vendor/github.com/Azure/go-autorest/.gitignore (+32/-0)
vendor/github.com/Azure/go-autorest/CHANGELOG.md (+1004/-0)
vendor/github.com/Azure/go-autorest/GNUmakefile (+23/-0)
vendor/github.com/Azure/go-autorest/Gopkg.lock (+324/-0)
vendor/github.com/Azure/go-autorest/Gopkg.toml (+59/-0)
vendor/github.com/Azure/go-autorest/LICENSE (+191/-0)
vendor/github.com/Azure/go-autorest/README.md (+165/-0)
vendor/github.com/Azure/go-autorest/autorest/LICENSE (+191/-0)
vendor/github.com/Azure/go-autorest/autorest/adal/LICENSE (+191/-0)
vendor/github.com/Azure/go-autorest/autorest/adal/README.md (+292/-0)
vendor/github.com/Azure/go-autorest/autorest/adal/config.go (+151/-0)
vendor/github.com/Azure/go-autorest/autorest/adal/devicetoken.go (+273/-0)
vendor/github.com/Azure/go-autorest/autorest/adal/go.mod (+13/-0)
vendor/github.com/Azure/go-autorest/autorest/adal/go.sum (+19/-0)
vendor/github.com/Azure/go-autorest/autorest/adal/go_mod_tidy_hack.go (+25/-0)
vendor/github.com/Azure/go-autorest/autorest/adal/persist.go (+135/-0)
vendor/github.com/Azure/go-autorest/autorest/adal/sender.go (+96/-0)
vendor/github.com/Azure/go-autorest/autorest/adal/token.go (+1336/-0)
vendor/github.com/Azure/go-autorest/autorest/adal/token_1.13.go (+76/-0)
vendor/github.com/Azure/go-autorest/autorest/adal/token_legacy.go (+75/-0)
vendor/github.com/Azure/go-autorest/autorest/adal/version.go (+45/-0)
vendor/github.com/Azure/go-autorest/autorest/authorization.go (+353/-0)
vendor/github.com/Azure/go-autorest/autorest/authorization_sas.go (+66/-0)
vendor/github.com/Azure/go-autorest/autorest/authorization_storage.go (+307/-0)
vendor/github.com/Azure/go-autorest/autorest/autorest.go (+150/-0)
vendor/github.com/Azure/go-autorest/autorest/azure/async.go (+995/-0)
vendor/github.com/Azure/go-autorest/autorest/azure/auth/LICENSE (+191/-0)
vendor/github.com/Azure/go-autorest/autorest/azure/auth/auth.go (+757/-0)
vendor/github.com/Azure/go-autorest/autorest/azure/auth/go.mod (+13/-0)
vendor/github.com/Azure/go-autorest/autorest/azure/auth/go.sum (+37/-0)
vendor/github.com/Azure/go-autorest/autorest/azure/auth/go_mod_tidy_hack.go (+24/-0)
vendor/github.com/Azure/go-autorest/autorest/azure/azure.go (+388/-0)
vendor/github.com/Azure/go-autorest/autorest/azure/cli/LICENSE (+191/-0)
vendor/github.com/Azure/go-autorest/autorest/azure/cli/go.mod (+11/-0)
vendor/github.com/Azure/go-autorest/autorest/azure/cli/go.sum (+24/-0)
vendor/github.com/Azure/go-autorest/autorest/azure/cli/go_mod_tidy_hack.go (+24/-0)
vendor/github.com/Azure/go-autorest/autorest/azure/cli/profile.go (+83/-0)
vendor/github.com/Azure/go-autorest/autorest/azure/cli/token.go (+175/-0)
vendor/github.com/Azure/go-autorest/autorest/azure/environments.go (+289/-0)
vendor/github.com/Azure/go-autorest/autorest/azure/metadata_environment.go (+245/-0)
vendor/github.com/Azure/go-autorest/autorest/azure/rp.go (+204/-0)
vendor/github.com/Azure/go-autorest/autorest/client.go (+328/-0)
vendor/github.com/Azure/go-autorest/autorest/date/LICENSE (+191/-0)
vendor/github.com/Azure/go-autorest/autorest/date/date.go (+96/-0)
vendor/github.com/Azure/go-autorest/autorest/date/go.mod (+5/-0)
vendor/github.com/Azure/go-autorest/autorest/date/go.sum (+2/-0)
vendor/github.com/Azure/go-autorest/autorest/date/go_mod_tidy_hack.go (+24/-0)
vendor/github.com/Azure/go-autorest/autorest/date/time.go (+103/-0)
vendor/github.com/Azure/go-autorest/autorest/date/timerfc1123.go (+100/-0)
vendor/github.com/Azure/go-autorest/autorest/date/unixtime.go (+123/-0)
vendor/github.com/Azure/go-autorest/autorest/date/utility.go (+25/-0)
vendor/github.com/Azure/go-autorest/autorest/error.go (+103/-0)
vendor/github.com/Azure/go-autorest/autorest/go.mod (+12/-0)
vendor/github.com/Azure/go-autorest/autorest/go.sum (+23/-0)
vendor/github.com/Azure/go-autorest/autorest/go_mod_tidy_hack.go (+25/-0)
vendor/github.com/Azure/go-autorest/autorest/preparer.go (+547/-0)
vendor/github.com/Azure/go-autorest/autorest/responder.go (+269/-0)
vendor/github.com/Azure/go-autorest/autorest/retriablerequest.go (+52/-0)
vendor/github.com/Azure/go-autorest/autorest/retriablerequest_1.7.go (+55/-0)
vendor/github.com/Azure/go-autorest/autorest/retriablerequest_1.8.go (+67/-0)
vendor/github.com/Azure/go-autorest/autorest/sender.go (+454/-0)
vendor/github.com/Azure/go-autorest/autorest/utility.go (+232/-0)
vendor/github.com/Azure/go-autorest/autorest/utility_1.13.go (+30/-0)
vendor/github.com/Azure/go-autorest/autorest/utility_legacy.go (+32/-0)
vendor/github.com/Azure/go-autorest/autorest/version.go (+41/-0)
vendor/github.com/Azure/go-autorest/azure-pipelines.yml (+105/-0)
vendor/github.com/Azure/go-autorest/doc.go (+18/-0)
vendor/github.com/Azure/go-autorest/logger/LICENSE (+191/-0)
vendor/github.com/Azure/go-autorest/logger/go.mod (+5/-0)
vendor/github.com/Azure/go-autorest/logger/go.sum (+2/-0)
vendor/github.com/Azure/go-autorest/logger/go_mod_tidy_hack.go (+24/-0)
vendor/github.com/Azure/go-autorest/logger/logger.go (+337/-0)
vendor/github.com/Azure/go-autorest/tracing/LICENSE (+191/-0)
vendor/github.com/Azure/go-autorest/tracing/go.mod (+5/-0)
vendor/github.com/Azure/go-autorest/tracing/go.sum (+2/-0)
vendor/github.com/Azure/go-autorest/tracing/go_mod_tidy_hack.go (+24/-0)
vendor/github.com/Azure/go-autorest/tracing/tracing.go (+67/-0)
vendor/github.com/armon/go-metrics/inmem.go (+24/-20)
vendor/github.com/armon/go-metrics/inmem_endpoint.go (+32/-1)
vendor/github.com/armon/go-metrics/prometheus/prometheus.go (+16/-18)
vendor/github.com/aws/aws-sdk-go/aws/awsutil/prettify.go (+11/-1)
vendor/github.com/aws/aws-sdk-go/aws/awsutil/string_value.go (+2/-0)
vendor/github.com/aws/aws-sdk-go/aws/context_1_5.go (+1/-0)
vendor/github.com/aws/aws-sdk-go/aws/context_1_9.go (+1/-0)
vendor/github.com/aws/aws-sdk-go/aws/context_background_1_5.go (+1/-0)
vendor/github.com/aws/aws-sdk-go/aws/context_background_1_7.go (+1/-0)
vendor/github.com/aws/aws-sdk-go/aws/credentials/context_background_go1.5.go (+1/-0)
vendor/github.com/aws/aws-sdk-go/aws/credentials/context_background_go1.7.go (+1/-0)
vendor/github.com/aws/aws-sdk-go/aws/credentials/context_go1.5.go (+1/-0)
vendor/github.com/aws/aws-sdk-go/aws/credentials/context_go1.9.go (+1/-0)
vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/os.go (+1/-0)
vendor/github.com/aws/aws-sdk-go/aws/crr/sync_map.go (+1/-0)
vendor/github.com/aws/aws-sdk-go/aws/crr/sync_map_1_8.go (+1/-0)
vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/service.go (+2/-2)
vendor/github.com/aws/aws-sdk-go/aws/endpoints/decode.go (+0/-14)
vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go (+733/-89)
vendor/github.com/aws/aws-sdk-go/aws/endpoints/endpoints.go (+53/-2)
vendor/github.com/aws/aws-sdk-go/aws/endpoints/v3model.go (+36/-0)
vendor/github.com/aws/aws-sdk-go/aws/endpoints/v3model_codegen.go (+1/-0)
vendor/github.com/aws/aws-sdk-go/aws/request/request.go (+16/-1)
vendor/github.com/aws/aws-sdk-go/aws/request/request_1_7.go (+1/-0)
vendor/github.com/aws/aws-sdk-go/aws/request/request_1_8.go (+1/-0)
vendor/github.com/aws/aws-sdk-go/aws/request/request_context.go (+1/-0)
vendor/github.com/aws/aws-sdk-go/aws/request/request_context_1_6.go (+1/-0)
vendor/github.com/aws/aws-sdk-go/aws/session/credentials.go (+7/-7)
vendor/github.com/aws/aws-sdk-go/aws/session/custom_transport.go (+1/-0)
vendor/github.com/aws/aws-sdk-go/aws/session/custom_transport_go1.12.go (+1/-0)
vendor/github.com/aws/aws-sdk-go/aws/session/custom_transport_go1.5.go (+1/-0)
vendor/github.com/aws/aws-sdk-go/aws/session/custom_transport_go1.6.go (+1/-0)
vendor/github.com/aws/aws-sdk-go/aws/session/doc.go (+1/-1)
vendor/github.com/aws/aws-sdk-go/aws/session/env_config.go (+26/-1)
vendor/github.com/aws/aws-sdk-go/aws/session/session.go (+41/-12)
vendor/github.com/aws/aws-sdk-go/aws/session/shared_config.go (+34/-1)
vendor/github.com/aws/aws-sdk-go/aws/signer/v4/header_rules.go (+8/-8)
vendor/github.com/aws/aws-sdk-go/aws/signer/v4/request_context_go1.5.go (+1/-0)
vendor/github.com/aws/aws-sdk-go/aws/signer/v4/request_context_go1.7.go (+1/-0)
vendor/github.com/aws/aws-sdk-go/aws/signer/v4/uri_path.go (+1/-0)
vendor/github.com/aws/aws-sdk-go/aws/signer/v4/v4.go (+7/-6)
vendor/github.com/aws/aws-sdk-go/aws/url.go (+1/-0)
vendor/github.com/aws/aws-sdk-go/aws/url_1_7.go (+1/-0)
vendor/github.com/aws/aws-sdk-go/aws/version.go (+1/-1)
vendor/github.com/aws/aws-sdk-go/internal/context/background_go1.5.go (+1/-0)
vendor/github.com/aws/aws-sdk-go/internal/ini/doc.go (+23/-10)
vendor/github.com/aws/aws-sdk-go/internal/ini/fuzz.go (+1/-0)
vendor/github.com/aws/aws-sdk-go/internal/ini/ini_parser.go (+22/-29)
vendor/github.com/aws/aws-sdk-go/internal/ini/visitor.go (+4/-1)
vendor/github.com/aws/aws-sdk-go/internal/s3shared/arn/arn.go (+4/-0)
vendor/github.com/aws/aws-sdk-go/internal/s3shared/endpoint_errors.go (+13/-0)
vendor/github.com/aws/aws-sdk-go/internal/s3shared/resource_request.go (+2/-0)
vendor/github.com/aws/aws-sdk-go/internal/sdkio/io_go1.6.go (+1/-0)
vendor/github.com/aws/aws-sdk-go/internal/sdkio/io_go1.7.go (+1/-0)
vendor/github.com/aws/aws-sdk-go/internal/sdkmath/floor.go (+1/-0)
vendor/github.com/aws/aws-sdk-go/internal/sdkmath/floor_go1.9.go (+1/-0)
vendor/github.com/aws/aws-sdk-go/internal/sdkrand/read.go (+1/-0)
vendor/github.com/aws/aws-sdk-go/internal/sdkrand/read_1_5.go (+1/-0)
vendor/github.com/aws/aws-sdk-go/private/protocol/rest/build.go (+1/-1)
vendor/github.com/aws/aws-sdk-go/private/protocol/timestamp.go (+55/-6)
vendor/github.com/aws/aws-sdk-go/service/s3/api.go (+762/-653)
vendor/github.com/aws/aws-sdk-go/service/s3/customizations.go (+1/-1)
vendor/github.com/aws/aws-sdk-go/service/s3/endpoint.go (+3/-2)
vendor/github.com/aws/aws-sdk-go/service/s3/errors.go (+4/-4)
vendor/github.com/aws/aws-sdk-go/service/s3/platform_handlers.go (+1/-0)
vendor/github.com/aws/aws-sdk-go/service/s3/platform_handlers_go1.6.go (+1/-0)
vendor/github.com/aws/aws-sdk-go/service/s3/statusok_error.go (+6/-1)
vendor/github.com/aws/aws-sdk-go/service/sns/api.go (+8143/-0)
vendor/github.com/aws/aws-sdk-go/service/sns/doc.go (+44/-0)
vendor/github.com/aws/aws-sdk-go/service/sns/errors.go (+186/-0)
vendor/github.com/aws/aws-sdk-go/service/sns/service.go (+98/-0)
vendor/github.com/aws/aws-sdk-go/service/sts/api.go (+331/-301)
vendor/github.com/aws/aws-sdk-go/service/sts/doc.go (+5/-5)
vendor/github.com/aws/aws-sdk-go/service/sts/errors.go (+10/-8)
vendor/github.com/blang/semver/v4/LICENSE (+22/-0)
vendor/github.com/blang/semver/v4/go.mod (+3/-0)
vendor/github.com/blang/semver/v4/json.go (+23/-0)
vendor/github.com/blang/semver/v4/range.go (+416/-0)
vendor/github.com/blang/semver/v4/semver.go (+476/-0)
vendor/github.com/blang/semver/v4/sort.go (+28/-0)
vendor/github.com/blang/semver/v4/sql.go (+30/-0)
vendor/github.com/cenkalti/backoff/v4/context.go (+1/-5)
vendor/github.com/cenkalti/backoff/v4/retry.go (+4/-0)
vendor/github.com/cespare/xxhash/v2/README.md (+4/-2)
vendor/github.com/cespare/xxhash/v2/xxhash.go (+0/-1)
vendor/github.com/cespare/xxhash/v2/xxhash_amd64.s (+31/-31)
vendor/github.com/cespare/xxhash/v2/xxhash_unsafe.go (+32/-21)
vendor/github.com/coreos/etcd/LICENSE (+202/-0)
vendor/github.com/coreos/etcd/NOTICE (+5/-0)
vendor/github.com/coreos/etcd/pkg/fileutil/dir_unix.go (+22/-0)
vendor/github.com/coreos/etcd/pkg/fileutil/dir_windows.go (+46/-0)
vendor/github.com/coreos/etcd/pkg/fileutil/fileutil.go (+122/-0)
vendor/github.com/coreos/etcd/pkg/fileutil/lock_linux.go (+97/-0)
vendor/github.com/coreos/etcd/pkg/fileutil/lock_windows.go (+125/-0)
vendor/github.com/coreos/etcd/pkg/fileutil/preallocate_darwin.go (+65/-0)
vendor/github.com/coreos/etcd/pkg/fileutil/purge.go (+78/-0)
vendor/github.com/coreos/etcd/pkg/fileutil/sync_darwin.go (+40/-0)
vendor/github.com/coreos/etcd/pkg/tlsutil/tlsutil.go (+0/-1)
vendor/github.com/coreos/go-systemd/LICENSE (+191/-0)
vendor/github.com/coreos/go-systemd/NOTICE (+5/-0)
vendor/github.com/coreos/go-systemd/journal/journal.go (+225/-0)
vendor/github.com/coreos/go-systemd/v22/journal/journal.go (+0/-179)
vendor/github.com/coreos/go-systemd/v22/journal/journal_unix.go (+210/-0)
vendor/github.com/coreos/go-systemd/v22/journal/journal_windows.go (+35/-0)
vendor/github.com/coreos/pkg/LICENSE (+202/-0)
vendor/github.com/coreos/pkg/NOTICE (+5/-0)
vendor/github.com/coreos/pkg/capnslog/README.md (+39/-0)
vendor/github.com/coreos/pkg/capnslog/formatters.go (+157/-0)
vendor/github.com/coreos/pkg/capnslog/glog_formatter.go (+96/-0)
vendor/github.com/coreos/pkg/capnslog/init.go (+49/-0)
vendor/github.com/coreos/pkg/capnslog/init_windows.go (+25/-0)
vendor/github.com/coreos/pkg/capnslog/journald_formatter.go (+68/-0)
vendor/github.com/coreos/pkg/capnslog/log_hijack.go (+39/-0)
vendor/github.com/coreos/pkg/capnslog/logmap.go (+245/-0)
vendor/github.com/coreos/pkg/capnslog/pkg_logger.go (+191/-0)
vendor/github.com/coreos/pkg/capnslog/syslog_formatter.go (+65/-0)
vendor/github.com/dennwc/varint/.gitignore (+2/-0)
vendor/github.com/dennwc/varint/.travis.yml (+7/-0)
vendor/github.com/dennwc/varint/LICENSE (+21/-0)
vendor/github.com/dennwc/varint/README.md (+47/-0)
vendor/github.com/dennwc/varint/go.mod (+3/-0)
vendor/github.com/dennwc/varint/proto.go (+244/-0)
vendor/github.com/dennwc/varint/varint.go (+270/-0)
vendor/github.com/dimchansky/utfbom/.gitignore (+37/-0)
vendor/github.com/dimchansky/utfbom/.travis.yml (+29/-0)
vendor/github.com/dimchansky/utfbom/LICENSE (+201/-0)
vendor/github.com/dimchansky/utfbom/README.md (+66/-0)
vendor/github.com/dimchansky/utfbom/go.mod (+1/-0)
vendor/github.com/dimchansky/utfbom/utfbom.go (+192/-0)
vendor/github.com/fatih/color/README.md (+13/-17)
vendor/github.com/fatih/color/color.go (+20/-5)
vendor/github.com/fatih/color/doc.go (+2/-0)
vendor/github.com/fatih/color/go.mod (+2/-2)
vendor/github.com/fatih/color/go.sum (+7/-8)
vendor/github.com/form3tech-oss/jwt-go/map_claims.go (+15/-7)
vendor/github.com/go-kit/kit/log/README.md (+9/-0)
vendor/github.com/go-kit/kit/log/doc.go (+4/-2)
vendor/github.com/go-kit/kit/log/json_logger.go (+3/-79)
vendor/github.com/go-kit/kit/log/level/doc.go (+6/-3)
vendor/github.com/go-kit/kit/log/level/level.go (+28/-113)
vendor/github.com/go-kit/kit/log/log.go (+18/-102)
vendor/github.com/go-kit/kit/log/logfmt_logger.go (+2/-49)
vendor/github.com/go-kit/kit/log/nop_logger.go (+4/-4)
vendor/github.com/go-kit/kit/log/stdlib.go (+19/-81)
vendor/github.com/go-kit/kit/log/sync.go (+5/-84)
vendor/github.com/go-kit/kit/log/value.go (+12/-70)
vendor/github.com/go-kit/log/.gitignore (+15/-0)
vendor/github.com/go-kit/log/LICENSE (+21/-0)
vendor/github.com/go-kit/log/README.md (+151/-0)
vendor/github.com/go-kit/log/doc.go (+116/-0)
vendor/github.com/go-kit/log/go.mod (+5/-0)
vendor/github.com/go-kit/log/go.sum (+2/-0)
vendor/github.com/go-kit/log/json_logger.go (+91/-0)
vendor/github.com/go-kit/log/level/doc.go (+22/-0)
vendor/github.com/go-kit/log/level/level.go (+205/-0)
vendor/github.com/go-kit/log/log.go (+179/-0)
vendor/github.com/go-kit/log/logfmt_logger.go (+62/-0)
vendor/github.com/go-kit/log/nop_logger.go (+8/-0)
vendor/github.com/go-kit/log/stdlib.go (+151/-0)
vendor/github.com/go-kit/log/sync.go (+113/-0)
vendor/github.com/go-kit/log/value.go (+110/-0)
vendor/github.com/go-logfmt/logfmt/README.md (+33/-33)
vendor/github.com/go-logfmt/logfmt/go.mod (+1/-1)
vendor/github.com/go-openapi/strfmt/bson.go (+1/-1)
vendor/github.com/gogo/googleapis/google/rpc/code.pb.go (+22/-18)
vendor/github.com/gogo/googleapis/google/rpc/code.proto (+4/-4)
vendor/github.com/gogo/googleapis/google/rpc/error_details.pb.go (+1278/-426)
vendor/github.com/gogo/googleapis/google/rpc/error_details.proto (+53/-7)
vendor/github.com/gogo/googleapis/google/rpc/status.pb.go (+121/-164)
vendor/github.com/gogo/googleapis/google/rpc/status.proto (+8/-53)
vendor/github.com/gogo/status/go.mod (+12/-0)
vendor/github.com/gogo/status/go.sum (+12/-0)
vendor/github.com/golang-jwt/jwt/v4/.gitignore (+4/-0)
vendor/github.com/golang-jwt/jwt/v4/LICENSE (+9/-0)
vendor/github.com/golang-jwt/jwt/v4/MIGRATION_GUIDE.md (+22/-0)
vendor/github.com/golang-jwt/jwt/v4/README.md (+113/-0)
vendor/github.com/golang-jwt/jwt/v4/VERSION_HISTORY.md (+135/-0)
vendor/github.com/golang-jwt/jwt/v4/claims.go (+145/-0)
vendor/github.com/golang-jwt/jwt/v4/doc.go (+4/-0)
vendor/github.com/golang-jwt/jwt/v4/ecdsa.go (+142/-0)
vendor/github.com/golang-jwt/jwt/v4/ecdsa_utils.go (+69/-0)
vendor/github.com/golang-jwt/jwt/v4/ed25519.go (+81/-0)
vendor/github.com/golang-jwt/jwt/v4/ed25519_utils.go (+64/-0)
vendor/github.com/golang-jwt/jwt/v4/errors.go (+59/-0)
vendor/github.com/golang-jwt/jwt/v4/go.mod (+3/-0)
vendor/github.com/golang-jwt/jwt/v4/go.sum (+0/-0)
vendor/github.com/golang-jwt/jwt/v4/hmac.go (+95/-0)
vendor/github.com/golang-jwt/jwt/v4/map_claims.go (+120/-0)
vendor/github.com/golang-jwt/jwt/v4/none.go (+52/-0)
vendor/github.com/golang-jwt/jwt/v4/parser.go (+148/-0)
vendor/github.com/golang-jwt/jwt/v4/rsa.go (+101/-0)
vendor/github.com/golang-jwt/jwt/v4/rsa_pss.go (+142/-0)
vendor/github.com/golang-jwt/jwt/v4/rsa_utils.go (+105/-0)
vendor/github.com/golang-jwt/jwt/v4/signing_method.go (+35/-0)
vendor/github.com/golang-jwt/jwt/v4/staticcheck.conf (+1/-0)
vendor/github.com/golang-jwt/jwt/v4/token.go (+110/-0)
vendor/github.com/golang/snappy/AUTHORS (+1/-0)
vendor/github.com/golang/snappy/CONTRIBUTORS (+2/-0)
vendor/github.com/golang/snappy/decode.go (+53/-30)
vendor/github.com/golang/snappy/encode_arm64.s (+2/-2)
vendor/github.com/google/btree/btree.go (+1/-1)
vendor/github.com/google/btree/go.mod (+17/-0)
vendor/github.com/google/go-cmp/cmp/path.go (+1/-1)
vendor/github.com/google/go-cmp/cmp/report_slices.go (+175/-27)
vendor/github.com/google/uuid/hash.go (+2/-2)
vendor/github.com/google/uuid/sql.go (+1/-1)
vendor/github.com/google/uuid/uuid.go (+8/-2)
vendor/github.com/google/uuid/version4.go (+8/-0)
vendor/github.com/googleapis/gax-go/v2/apierror/apierror.go (+296/-0)
vendor/github.com/googleapis/gax-go/v2/apierror/internal/proto/README.md (+30/-0)
vendor/github.com/googleapis/gax-go/v2/apierror/internal/proto/error.pb.go (+278/-0)
vendor/github.com/googleapis/gax-go/v2/apierror/internal/proto/error.proto (+46/-0)
vendor/github.com/googleapis/gax-go/v2/call_option.go (+37/-9)
vendor/github.com/googleapis/gax-go/v2/gax.go (+1/-1)
vendor/github.com/googleapis/gax-go/v2/go.mod (+10/-1)
vendor/github.com/googleapis/gax-go/v2/go.sum (+510/-8)
vendor/github.com/googleapis/gax-go/v2/invoke.go (+10/-5)
vendor/github.com/gorilla/mux/README.md (+89/-2)
vendor/github.com/gorilla/mux/go.mod (+2/-0)
vendor/github.com/gorilla/mux/middleware.go (+10/-15)
vendor/github.com/gorilla/mux/mux.go (+15/-16)
vendor/github.com/gorilla/mux/regexp.go (+57/-14)
vendor/github.com/gorilla/mux/route.go (+32/-6)
vendor/github.com/gorilla/mux/test_helpers.go (+1/-1)
vendor/github.com/grafana/dskit/LICENSE (+201/-0)
vendor/github.com/grafana/dskit/backoff/backoff.go (+9/-9)
vendor/github.com/grafana/dskit/closer/closer.go (+9/-0)
vendor/github.com/grafana/dskit/flagext/deprecated.go (+8/-9)
vendor/github.com/grafana/dskit/kv/client.go (+17/-16)
vendor/github.com/grafana/dskit/kv/consul/client.go (+33/-26)
vendor/github.com/grafana/dskit/kv/consul/metrics.go (+25/-20)
vendor/github.com/grafana/dskit/kv/consul/mock.go (+54/-22)
vendor/github.com/grafana/dskit/kv/etcd/etcd.go (+31/-29)
vendor/github.com/grafana/dskit/kv/etcd/mock.go (+10/-21)
vendor/github.com/grafana/dskit/kv/kvtls/tls.go (+87/-0)
vendor/github.com/grafana/dskit/kv/memberlist/broadcast.go (+3/-4)
vendor/github.com/grafana/dskit/kv/memberlist/dnsprovider.go (+15/-0)
vendor/github.com/grafana/dskit/kv/memberlist/kv_init_service.go (+75/-41)
vendor/github.com/grafana/dskit/kv/memberlist/memberlist_client.go (+105/-122)
vendor/github.com/grafana/dskit/kv/memberlist/memberlist_logger.go (+1/-1)
vendor/github.com/grafana/dskit/kv/memberlist/mergeable.go (+3/-0)
vendor/github.com/grafana/dskit/kv/memberlist/metrics.go (+21/-58)
vendor/github.com/grafana/dskit/kv/memberlist/tcp_transport.go (+17/-38)
vendor/github.com/grafana/dskit/kv/metrics.go (+3/-4)
vendor/github.com/grafana/dskit/kv/mock.go (+3/-4)
vendor/github.com/grafana/dskit/kv/multi.go (+37/-37)
vendor/github.com/grafana/dskit/modules/module_service.go (+16/-11)
vendor/github.com/grafana/dskit/modules/module_service_wrapper.go (+5/-4)
vendor/github.com/grafana/dskit/modules/modules.go (+6/-3)
vendor/github.com/grafana/dskit/runtimeconfig/manager.go (+14/-12)
vendor/github.com/grafana/dskit/services/basic_service.go (+3/-3)
vendor/github.com/grafana/dskit/services/failure_watcher.go (+1/-1)
vendor/github.com/grafana/dskit/services/manager.go (+13/-13)
vendor/github.com/grafana/dskit/services/service.go (+12/-11)
vendor/github.com/grafana/dskit/services/services.go (+3/-3)
vendor/github.com/grpc-ecosystem/go-grpc-middleware/.travis.yml (+0/-2)
vendor/github.com/grpc-ecosystem/go-grpc-middleware/README.md (+3/-2)
vendor/github.com/grpc-ecosystem/go-grpc-middleware/go.mod (+2/-5)
vendor/github.com/grpc-ecosystem/go-grpc-middleware/go.sum (+23/-41)
vendor/github.com/hashicorp/consul/api/acl.go (+94/-47)
vendor/github.com/hashicorp/consul/api/agent.go (+101/-39)
vendor/github.com/hashicorp/consul/api/api.go (+62/-7)
vendor/github.com/hashicorp/consul/api/catalog.go (+9/-9)
vendor/github.com/hashicorp/consul/api/config_entry.go (+141/-22)
vendor/github.com/hashicorp/consul/api/config_entry_cluster.go (+53/-0)
vendor/github.com/hashicorp/consul/api/connect_ca.go (+11/-4)
vendor/github.com/hashicorp/consul/api/connect_intention.go (+10/-10)
vendor/github.com/hashicorp/consul/api/coordinate.go (+4/-4)
vendor/github.com/hashicorp/consul/api/debug.go (+20/-4)
vendor/github.com/hashicorp/consul/api/discovery_chain.go (+1/-1)
vendor/github.com/hashicorp/consul/api/event.go (+3/-2)
vendor/github.com/hashicorp/consul/api/go.mod (+1/-1)
vendor/github.com/hashicorp/consul/api/go.sum (+1/-12)
vendor/github.com/hashicorp/consul/api/health.go (+5/-4)
vendor/github.com/hashicorp/consul/api/kv.go (+8/-7)
vendor/github.com/hashicorp/consul/api/namespace.go (+5/-5)
vendor/github.com/hashicorp/consul/api/operator_area.go (+4/-4)
vendor/github.com/hashicorp/consul/api/operator_autopilot.go (+19/-6)
vendor/github.com/hashicorp/consul/api/operator_keyring.go (+4/-4)
vendor/github.com/hashicorp/consul/api/operator_license.go (+8/-3)
vendor/github.com/hashicorp/consul/api/operator_raft.go (+3/-3)
vendor/github.com/hashicorp/consul/api/prepared_query.go (+2/-2)
vendor/github.com/hashicorp/consul/api/session.go (+1/-1)
vendor/github.com/hashicorp/consul/api/snapshot.go (+1/-0)
vendor/github.com/hashicorp/consul/api/status.go (+2/-2)
vendor/github.com/hashicorp/consul/api/txn.go (+1/-1)
vendor/github.com/hashicorp/go-cleanhttp/cleanhttp.go (+1/-0)
vendor/github.com/hashicorp/go-cleanhttp/go.mod (+2/-0)
vendor/github.com/hashicorp/go-hclog/exclude.go (+71/-0)
vendor/github.com/hashicorp/go-hclog/interceptlogger.go (+31/-74)
vendor/github.com/hashicorp/go-hclog/intlogger.go (+141/-57)
vendor/github.com/hashicorp/go-hclog/logger.go (+49/-3)
vendor/github.com/hashicorp/go-hclog/stdlog.go (+22/-1)
vendor/github.com/hashicorp/go-immutable-radix/CHANGELOG.md (+14/-0)
vendor/github.com/hashicorp/go-immutable-radix/iter.go (+39/-22)
vendor/github.com/hashicorp/go-immutable-radix/node.go (+30/-0)
vendor/github.com/hashicorp/go-immutable-radix/raw_iter.go (+1/-1)
vendor/github.com/hashicorp/go-immutable-radix/reverse_iter.go (+239/-0)
vendor/github.com/hashicorp/golang-lru/.gitignore (+23/-0)
vendor/github.com/hashicorp/golang-lru/2q.go (+223/-0)
vendor/github.com/hashicorp/golang-lru/README.md (+25/-0)
vendor/github.com/hashicorp/golang-lru/arc.go (+257/-0)
vendor/github.com/hashicorp/golang-lru/doc.go (+21/-0)
vendor/github.com/hashicorp/golang-lru/go.mod (+3/-0)
vendor/github.com/hashicorp/golang-lru/lru.go (+150/-0)
vendor/github.com/hashicorp/memberlist/net.go (+4/-0)
vendor/github.com/hashicorp/memberlist/transport.go (+6/-20)
vendor/github.com/hashicorp/memberlist/util.go (+4/-4)
vendor/github.com/json-iterator/go/README.md (+0/-2)
vendor/github.com/json-iterator/go/go.mod (+1/-1)
vendor/github.com/json-iterator/go/go.sum (+2/-3)
vendor/github.com/mattn/go-colorable/colorable_windows.go (+19/-9)
vendor/github.com/mattn/go-ieproxy/ieproxy_windows.go (+30/-14)
vendor/github.com/mattn/go-isatty/go.mod (+1/-1)
vendor/github.com/mattn/go-isatty/isatty_bsd.go (+1/-0)
vendor/github.com/mattn/go-isatty/isatty_others.go (+2/-1)
vendor/github.com/mattn/go-isatty/isatty_plan9.go (+1/-0)
vendor/github.com/mattn/go-isatty/isatty_solaris.go (+4/-5)
vendor/github.com/mattn/go-isatty/isatty_tcgets.go (+2/-1)
vendor/github.com/mattn/go-isatty/isatty_windows.go (+3/-3)
vendor/github.com/miekg/dns/README.md (+1/-0)
vendor/github.com/miekg/dns/acceptfunc.go (+1/-0)
vendor/github.com/miekg/dns/dnssec.go (+11/-3)
vendor/github.com/miekg/dns/doc.go (+5/-5)
vendor/github.com/miekg/dns/edns.go (+148/-2)
vendor/github.com/miekg/dns/go.mod (+1/-1)
vendor/github.com/miekg/dns/msg_helpers.go (+0/-29)
vendor/github.com/miekg/dns/privaterr.go (+1/-1)
vendor/github.com/miekg/dns/scan.go (+3/-0)
vendor/github.com/miekg/dns/scan_rr.go (+5/-1)
vendor/github.com/miekg/dns/svcb.go (+13/-2)
vendor/github.com/miekg/dns/types.go (+13/-16)
vendor/github.com/miekg/dns/version.go (+1/-1)
vendor/github.com/mitchellh/mapstructure/CHANGELOG.md (+8/-2)
vendor/github.com/mitchellh/mapstructure/decode_hooks.go (+2/-1)
vendor/github.com/mitchellh/mapstructure/mapstructure.go (+11/-2)
vendor/github.com/modern-go/reflect2/.travis.yml (+1/-1)
vendor/github.com/modern-go/reflect2/Gopkg.lock (+1/-7)
vendor/github.com/modern-go/reflect2/Gopkg.toml (+0/-4)
vendor/github.com/modern-go/reflect2/go.mod (+3/-0)
vendor/github.com/modern-go/reflect2/go_above_118.go (+23/-0)
vendor/github.com/modern-go/reflect2/go_above_19.go (+3/-0)
vendor/github.com/modern-go/reflect2/go_below_118.go (+21/-0)
vendor/github.com/modern-go/reflect2/reflect2.go (+11/-9)
vendor/github.com/modern-go/reflect2/type_map.go (+4/-47)
vendor/github.com/modern-go/reflect2/unsafe_link.go (+16/-10)
vendor/github.com/modern-go/reflect2/unsafe_map.go (+0/-8)
vendor/github.com/prometheus/alertmanager/api/api.go (+1/-1)
vendor/github.com/prometheus/alertmanager/api/v1/api.go (+2/-2)
vendor/github.com/prometheus/alertmanager/api/v2/api.go (+2/-2)
vendor/github.com/prometheus/alertmanager/asset/assets_vfsdata.go (+2/-2)
vendor/github.com/prometheus/alertmanager/cluster/channel.go (+2/-2)
vendor/github.com/prometheus/alertmanager/cluster/cluster.go (+11/-3)
vendor/github.com/prometheus/alertmanager/cluster/clusterpb/cluster.pb.go (+338/-12)
vendor/github.com/prometheus/alertmanager/cluster/clusterpb/cluster.proto (+11/-0)
vendor/github.com/prometheus/alertmanager/cluster/connection_pool.go (+84/-0)
vendor/github.com/prometheus/alertmanager/cluster/delegate.go (+2/-2)
vendor/github.com/prometheus/alertmanager/cluster/tls_config.go (+45/-0)
vendor/github.com/prometheus/alertmanager/cluster/tls_connection.go (+188/-0)
vendor/github.com/prometheus/alertmanager/cluster/tls_transport.go (+346/-0)
vendor/github.com/prometheus/alertmanager/config/config.go (+9/-0)
vendor/github.com/prometheus/alertmanager/config/coordinator.go (+2/-2)
vendor/github.com/prometheus/alertmanager/config/notifiers.go (+52/-10)
vendor/github.com/prometheus/alertmanager/dispatch/dispatch.go (+2/-2)
vendor/github.com/prometheus/alertmanager/inhibit/inhibit.go (+2/-2)
vendor/github.com/prometheus/alertmanager/nflog/nflog.go (+39/-26)
vendor/github.com/prometheus/alertmanager/notify/email/email.go (+2/-2)
vendor/github.com/prometheus/alertmanager/notify/notify.go (+4/-3)
vendor/github.com/prometheus/alertmanager/notify/opsgenie/opsgenie.go (+96/-30)
vendor/github.com/prometheus/alertmanager/notify/pagerduty/pagerduty.go (+2/-2)
vendor/github.com/prometheus/alertmanager/notify/pushover/pushover.go (+2/-2)
vendor/github.com/prometheus/alertmanager/notify/slack/slack.go (+1/-1)
vendor/github.com/prometheus/alertmanager/notify/sns/sns.go (+214/-0)
vendor/github.com/prometheus/alertmanager/notify/util.go (+2/-2)
vendor/github.com/prometheus/alertmanager/notify/victorops/victorops.go (+2/-2)
vendor/github.com/prometheus/alertmanager/notify/webhook/webhook.go (+2/-2)
vendor/github.com/prometheus/alertmanager/notify/wechat/wechat.go (+2/-2)
vendor/github.com/prometheus/alertmanager/pkg/labels/matcher.go (+4/-1)
vendor/github.com/prometheus/alertmanager/pkg/labels/parse.go (+21/-14)
vendor/github.com/prometheus/alertmanager/provider/mem/mem.go (+2/-2)
vendor/github.com/prometheus/alertmanager/silence/silence.go (+72/-50)
vendor/github.com/prometheus/alertmanager/template/default.tmpl (+12/-0)
vendor/github.com/prometheus/alertmanager/types/types.go (+37/-57)
vendor/github.com/prometheus/alertmanager/ui/web.go (+1/-1)
vendor/github.com/prometheus/client_golang/api/prometheus/v1/api.go (+87/-32)
vendor/github.com/prometheus/client_golang/prometheus/collectors/collectors.go (+16/-0)
vendor/github.com/prometheus/client_golang/prometheus/collectors/dbstats_collector.go (+119/-0)
vendor/github.com/prometheus/client_golang/prometheus/collectors/dbstats_collector_go115.go (+30/-0)
vendor/github.com/prometheus/client_golang/prometheus/collectors/dbstats_collector_pre_go115.go (+26/-0)
vendor/github.com/prometheus/client_golang/prometheus/collectors/expvar_collector.go (+57/-0)
vendor/github.com/prometheus/client_golang/prometheus/collectors/go_collector.go (+69/-0)
vendor/github.com/prometheus/client_golang/prometheus/collectors/process_collector.go (+56/-0)
vendor/github.com/prometheus/client_golang/prometheus/expvar_collector.go (+3/-36)
vendor/github.com/prometheus/client_golang/prometheus/go_collector.go (+6/-41)
vendor/github.com/prometheus/client_golang/prometheus/histogram.go (+6/-1)
vendor/github.com/prometheus/client_golang/prometheus/process_collector.go (+3/-9)
vendor/github.com/prometheus/client_golang/prometheus/summary.go (+9/-2)
vendor/github.com/prometheus/common/config/http_config.go (+28/-13)
vendor/github.com/prometheus/common/expfmt/encode.go (+1/-1)
vendor/github.com/prometheus/common/expfmt/text_parse.go (+1/-1)
vendor/github.com/prometheus/common/sigv4/LICENSE (+201/-0)
vendor/github.com/prometheus/common/sigv4/Makefile (+22/-0)
vendor/github.com/prometheus/common/sigv4/go.mod (+11/-0)
vendor/github.com/prometheus/common/sigv4/go.sum (+479/-0)
vendor/github.com/prometheus/common/sigv4/sigv4.go (+3/-4)
vendor/github.com/prometheus/common/sigv4/sigv4_config.go (+47/-0)
vendor/github.com/prometheus/exporter-toolkit/LICENSE (+201/-0)
vendor/github.com/prometheus/exporter-toolkit/web/README.md (+10/-0)
vendor/github.com/prometheus/exporter-toolkit/web/cache.go (+91/-0)
vendor/github.com/prometheus/exporter-toolkit/web/tls_config.go (+352/-0)
vendor/github.com/prometheus/exporter-toolkit/web/users.go (+98/-0)
vendor/github.com/prometheus/exporter-toolkit/web/web-config.yml (+6/-0)
vendor/github.com/prometheus/procfs/Makefile (+2/-0)
vendor/github.com/prometheus/procfs/Makefile.common (+12/-3)
vendor/github.com/prometheus/procfs/README.md (+2/-2)
vendor/github.com/prometheus/procfs/cmdline.go (+30/-0)
vendor/github.com/prometheus/procfs/doc.go (+1/-1)
vendor/github.com/prometheus/procfs/fixtures.ttar (+1193/-73)
vendor/github.com/prometheus/procfs/mdstat.go (+77/-28)
vendor/github.com/prometheus/procfs/net_ip_socket.go (+8/-2)
vendor/github.com/prometheus/procfs/netstat.go (+68/-0)
vendor/github.com/prometheus/procfs/proc_cgroup.go (+1/-1)
vendor/github.com/prometheus/procfs/proc_stat.go (+30/-2)
vendor/github.com/prometheus/procfs/zoneinfo.go (+0/-1)
vendor/github.com/prometheus/prometheus/config/config.go (+35/-16)
vendor/github.com/prometheus/prometheus/discovery/README.md (+1/-1)
vendor/github.com/prometheus/prometheus/discovery/discovery.go (+1/-1)
vendor/github.com/prometheus/prometheus/discovery/dns/dns.go (+3/-4)
vendor/github.com/prometheus/prometheus/discovery/file/file.go (+16/-23)
vendor/github.com/prometheus/prometheus/discovery/manager.go (+7/-5)
vendor/github.com/prometheus/prometheus/discovery/refresh/refresh.go (+2/-2)
vendor/github.com/prometheus/prometheus/notifier/notifier.go (+2/-2)
vendor/github.com/prometheus/prometheus/pkg/labels/matcher.go (+10/-9)
vendor/github.com/prometheus/prometheus/pkg/logging/dedupe.go (+1/-1)
vendor/github.com/prometheus/prometheus/pkg/logging/file.go (+1/-1)
vendor/github.com/prometheus/prometheus/pkg/logging/ratelimit.go (+1/-1)
vendor/github.com/prometheus/prometheus/pkg/relabel/relabel.go (+3/-0)
vendor/github.com/prometheus/prometheus/pkg/rulefmt/rulefmt.go (+2/-1)
vendor/github.com/prometheus/prometheus/pkg/textparse/openmetricsparse.go (+10/-6)
vendor/github.com/prometheus/prometheus/promql/engine.go (+11/-4)
vendor/github.com/prometheus/prometheus/promql/functions.go (+8/-0)
vendor/github.com/prometheus/prometheus/promql/fuzz.go (+1/-0)
vendor/github.com/prometheus/prometheus/promql/parser/functions.go (+5/-0)
vendor/github.com/prometheus/prometheus/promql/parser/generated_parser.y (+2/-2)
vendor/github.com/prometheus/prometheus/promql/parser/generated_parser.y.go (+270/-261)
vendor/github.com/prometheus/prometheus/promql/parser/parse.go (+2/-2)
vendor/github.com/prometheus/prometheus/promql/parser/printer.go (+4/-1)
vendor/github.com/prometheus/prometheus/promql/query_logger.go (+2/-2)
vendor/github.com/prometheus/prometheus/promql/test.go (+14/-4)
vendor/github.com/prometheus/prometheus/promql/value.go (+2/-2)
vendor/github.com/prometheus/prometheus/rules/alerting.go (+9/-16)
vendor/github.com/prometheus/prometheus/rules/manager.go (+8/-5)
vendor/github.com/prometheus/prometheus/rules/recording.go (+1/-6)
vendor/github.com/prometheus/prometheus/scrape/manager.go (+17/-52)
vendor/github.com/prometheus/prometheus/scrape/scrape.go (+134/-55)
vendor/github.com/prometheus/prometheus/scrape/target.go (+70/-4)
vendor/github.com/prometheus/prometheus/storage/fanout.go (+2/-2)
vendor/github.com/prometheus/prometheus/storage/interface.go (+5/-3)
vendor/github.com/prometheus/prometheus/storage/merge.go (+3/-3)
vendor/github.com/prometheus/prometheus/storage/noop.go (+2/-2)
vendor/github.com/prometheus/prometheus/storage/remote/client.go (+3/-3)
vendor/github.com/prometheus/prometheus/storage/remote/metadata_watcher.go (+2/-2)
vendor/github.com/prometheus/prometheus/storage/remote/queue_manager.go (+50/-53)
vendor/github.com/prometheus/prometheus/storage/remote/read.go (+1/-1)
vendor/github.com/prometheus/prometheus/storage/remote/read_handler.go (+2/-2)
vendor/github.com/prometheus/prometheus/storage/remote/storage.go (+1/-1)
vendor/github.com/prometheus/prometheus/storage/remote/write.go (+1/-1)
vendor/github.com/prometheus/prometheus/storage/remote/write_handler.go (+2/-2)
vendor/github.com/prometheus/prometheus/storage/secondary.go (+2/-2)
vendor/github.com/prometheus/prometheus/storage/series.go (+32/-5)
vendor/github.com/prometheus/prometheus/template/template.go (+3/-1)
vendor/github.com/prometheus/prometheus/tsdb/README.md (+1/-1)
vendor/github.com/prometheus/prometheus/tsdb/block.go (+22/-8)
vendor/github.com/prometheus/prometheus/tsdb/blockwriter.go (+4/-4)
vendor/github.com/prometheus/prometheus/tsdb/chunkenc/bstream.go (+1/-1)
vendor/github.com/prometheus/prometheus/tsdb/chunkenc/xor.go (+9/-9)
vendor/github.com/prometheus/prometheus/tsdb/chunks/head_chunks.go (+1/-1)
vendor/github.com/prometheus/prometheus/tsdb/chunks/head_chunks_other.go (+1/-0)
vendor/github.com/prometheus/prometheus/tsdb/compact.go (+13/-7)
vendor/github.com/prometheus/prometheus/tsdb/db.go (+139/-30)
vendor/github.com/prometheus/prometheus/tsdb/encoding/encoding.go (+26/-3)
vendor/github.com/prometheus/prometheus/tsdb/exemplar.go (+184/-55)
vendor/github.com/prometheus/prometheus/tsdb/fileutil/dir_unix.go (+1/-0)
vendor/github.com/prometheus/prometheus/tsdb/fileutil/dir_windows.go (+1/-0)
vendor/github.com/prometheus/prometheus/tsdb/fileutil/flock_solaris.go (+1/-0)
vendor/github.com/prometheus/prometheus/tsdb/fileutil/flock_unix.go (+1/-0)
vendor/github.com/prometheus/prometheus/tsdb/fileutil/mmap_386.go (+1/-0)
vendor/github.com/prometheus/prometheus/tsdb/fileutil/mmap_amd64.go (+1/-0)
vendor/github.com/prometheus/prometheus/tsdb/fileutil/mmap_unix.go (+1/-0)
vendor/github.com/prometheus/prometheus/tsdb/fileutil/preallocate_other.go (+1/-0)
vendor/github.com/prometheus/prometheus/tsdb/fileutil/sync.go (+1/-0)
vendor/github.com/prometheus/prometheus/tsdb/fileutil/sync_darwin.go (+1/-0)
vendor/github.com/prometheus/prometheus/tsdb/fileutil/sync_linux.go (+1/-0)
vendor/github.com/prometheus/prometheus/tsdb/goversion/goversion.go (+1/-0)
vendor/github.com/prometheus/prometheus/tsdb/head.go (+445/-1560)
vendor/github.com/prometheus/prometheus/tsdb/head_append.go (+593/-0)
vendor/github.com/prometheus/prometheus/tsdb/head_read.go (+513/-0)
vendor/github.com/prometheus/prometheus/tsdb/head_wal.go (+1008/-0)
vendor/github.com/prometheus/prometheus/tsdb/index/index.go (+78/-5)
vendor/github.com/prometheus/prometheus/tsdb/index/postings.go (+23/-0)
vendor/github.com/prometheus/prometheus/tsdb/isolation.go (+26/-3)
vendor/github.com/prometheus/prometheus/tsdb/querier.go (+19/-2)
vendor/github.com/prometheus/prometheus/tsdb/record/record.go (+11/-2)
vendor/github.com/prometheus/prometheus/tsdb/repair.go (+2/-2)
vendor/github.com/prometheus/prometheus/tsdb/tombstones/tombstones.go (+2/-2)
vendor/github.com/prometheus/prometheus/tsdb/tsdbblockutil.go (+1/-1)
vendor/github.com/prometheus/prometheus/tsdb/tsdbutil/chunks.go (+12/-0)
vendor/github.com/prometheus/prometheus/tsdb/wal.go (+4/-4)
vendor/github.com/prometheus/prometheus/tsdb/wal/checkpoint.go (+2/-2)
vendor/github.com/prometheus/prometheus/tsdb/wal/live_reader.go (+2/-2)
vendor/github.com/prometheus/prometheus/tsdb/wal/wal.go (+33/-2)
vendor/github.com/prometheus/prometheus/tsdb/wal/watcher.go (+52/-13)
vendor/github.com/prometheus/prometheus/util/osutil/hostname.go (+63/-0)
vendor/github.com/prometheus/prometheus/util/teststorage/storage.go (+6/-3)
vendor/github.com/prometheus/prometheus/util/testutil/logging.go (+1/-1)
vendor/github.com/prometheus/prometheus/web/api/v1/api.go (+37/-19)
vendor/github.com/rs/cors/.travis.yml (+1/-3)
vendor/github.com/rs/cors/cors.go (+11/-4)
vendor/github.com/rs/cors/go.mod (+6/-0)
vendor/github.com/rs/cors/go.sum (+25/-0)
vendor/github.com/rs/cors/utils.go (+1/-1)
vendor/github.com/sirupsen/logrus/.travis.yml (+6/-8)
vendor/github.com/sirupsen/logrus/CHANGELOG.md (+36/-0)
vendor/github.com/sirupsen/logrus/README.md (+1/-1)
vendor/github.com/sirupsen/logrus/entry.go (+41/-32)
vendor/github.com/sirupsen/logrus/go.sum (+0/-2)
vendor/github.com/sirupsen/logrus/json_formatter.go (+4/-1)
vendor/github.com/sirupsen/logrus/logger.go (+1/-1)
vendor/github.com/sirupsen/logrus/terminal_check_unix.go (+1/-1)
vendor/github.com/sirupsen/logrus/text_formatter.go (+6/-1)
vendor/github.com/spf13/afero/.gitignore (+2/-0)
vendor/github.com/spf13/afero/.travis.yml (+22/-21)
vendor/github.com/spf13/afero/README.md (+5/-27)
vendor/github.com/spf13/afero/appveyor.yml (+2/-2)
vendor/github.com/spf13/afero/basepath.go (+26/-0)
vendor/github.com/spf13/afero/const_bsds.go (+1/-1)
vendor/github.com/spf13/afero/const_win_unix.go (+1/-0)
vendor/github.com/spf13/afero/copyOnWriteFs.go (+20/-0)
vendor/github.com/spf13/afero/go.mod (+7/-1)
vendor/github.com/spf13/afero/go.sum (+27/-0)
vendor/github.com/spf13/afero/ioutil.go (+21/-11)
vendor/github.com/spf13/afero/match.go (+1/-1)
vendor/github.com/spf13/afero/mem/file.go (+7/-1)
vendor/github.com/spf13/afero/memmap.go (+36/-12)
vendor/github.com/spf13/afero/os.go (+8/-0)
vendor/github.com/spf13/afero/readonlyfs.go (+12/-0)
vendor/github.com/spf13/afero/regexpfs.go (+3/-0)
vendor/github.com/spf13/afero/symlink.go (+55/-0)
vendor/github.com/thanos-io/thanos/pkg/block/block.go (+1/-1)
vendor/github.com/thanos-io/thanos/pkg/block/fetcher.go (+52/-16)
vendor/github.com/thanos-io/thanos/pkg/block/index.go (+19/-12)
vendor/github.com/thanos-io/thanos/pkg/block/indexheader/binary_reader.go (+3/-3)
vendor/github.com/thanos-io/thanos/pkg/block/indexheader/lazy_binary_reader.go (+1/-1)
vendor/github.com/thanos-io/thanos/pkg/block/indexheader/reader_pool.go (+16/-4)
vendor/github.com/thanos-io/thanos/pkg/block/metadata/hash.go (+2/-1)
vendor/github.com/thanos-io/thanos/pkg/block/metadata/markers.go (+2/-0)
vendor/github.com/thanos-io/thanos/pkg/block/metadata/meta.go (+7/-2)
vendor/github.com/thanos-io/thanos/pkg/block/writer.go (+1/-1)
vendor/github.com/thanos-io/thanos/pkg/cache/cache.go (+2/-0)
vendor/github.com/thanos-io/thanos/pkg/cache/inmemory.go (+6/-0)
vendor/github.com/thanos-io/thanos/pkg/cache/memcached.go (+6/-0)
vendor/github.com/thanos-io/thanos/pkg/cache/tracing_cache.go (+5/-0)
vendor/github.com/thanos-io/thanos/pkg/cacheutil/memcached_client.go (+41/-16)
vendor/github.com/thanos-io/thanos/pkg/compact/blocks_cleaner.go (+1/-1)
vendor/github.com/thanos-io/thanos/pkg/compact/compact.go (+82/-25)
vendor/github.com/thanos-io/thanos/pkg/compact/downsample/downsample.go (+15/-4)
vendor/github.com/thanos-io/thanos/pkg/component/component.go (+19/-0)
vendor/github.com/thanos-io/thanos/pkg/discovery/dns/provider.go (+1/-1)
vendor/github.com/thanos-io/thanos/pkg/discovery/memcache/provider.go (+114/-0)
vendor/github.com/thanos-io/thanos/pkg/discovery/memcache/resolver.go (+111/-0)
vendor/github.com/thanos-io/thanos/pkg/exemplars/exemplarspb/custom.go (+26/-15)
vendor/github.com/thanos-io/thanos/pkg/extprom/http/instrument_client.go (+111/-0)
vendor/github.com/thanos-io/thanos/pkg/extprom/http/instrument_server.go (+166/-0)
vendor/github.com/thanos-io/thanos/pkg/gate/gate.go (+7/-0)
vendor/github.com/thanos-io/thanos/pkg/http/http.go (+15/-5)
vendor/github.com/thanos-io/thanos/pkg/objstore/azure/azure.go (+141/-47)
vendor/github.com/thanos-io/thanos/pkg/objstore/azure/helpers.go (+104/-14)
vendor/github.com/thanos-io/thanos/pkg/objstore/filesystem/filesystem.go (+2/-2)
vendor/github.com/thanos-io/thanos/pkg/objstore/objstore.go (+2/-2)
vendor/github.com/thanos-io/thanos/pkg/objstore/s3/s3.go (+1/-1)
vendor/github.com/thanos-io/thanos/pkg/objstore/swift/swift.go (+2/-2)
vendor/github.com/thanos-io/thanos/pkg/objstore/testing.go (+64/-1)
vendor/github.com/thanos-io/thanos/pkg/promclient/promclient.go (+43/-12)
vendor/github.com/thanos-io/thanos/pkg/rules/rulespb/custom.go (+1/-1)
vendor/github.com/thanos-io/thanos/pkg/shipper/shipper.go (+3/-3)
vendor/github.com/thanos-io/thanos/pkg/store/bucket.go (+61/-41)
vendor/github.com/thanos-io/thanos/pkg/store/cache/caching_bucket.go (+2/-2)
vendor/github.com/thanos-io/thanos/pkg/store/labelpb/label.go (+1/-1)
vendor/github.com/thanos-io/thanos/pkg/store/multitsdb.go (+1/-1)
vendor/github.com/thanos-io/thanos/pkg/store/prometheus.go (+129/-25)
vendor/github.com/thanos-io/thanos/pkg/store/proxy.go (+33/-10)
vendor/github.com/thanos-io/thanos/pkg/store/storepb/custom.go (+61/-1)
vendor/github.com/thanos-io/thanos/pkg/store/storepb/prompb/remote.pb.go (+98/-34)
vendor/github.com/thanos-io/thanos/pkg/store/storepb/prompb/remote.proto (+4/-0)
vendor/github.com/thanos-io/thanos/pkg/store/storepb/prompb/types.pb.go (+734/-67)
vendor/github.com/thanos-io/thanos/pkg/store/storepb/prompb/types.proto (+39/-9)
vendor/github.com/thanos-io/thanos/pkg/store/storepb/rpc.pb.go (+2/-4)
vendor/github.com/thanos-io/thanos/pkg/store/storepb/rpc.proto (+1/-2)
vendor/github.com/thanos-io/thanos/pkg/store/tsdb.go (+38/-6)
vendor/github.com/thanos-io/thanos/pkg/targets/targetspb/custom.go (+1/-1)
vendor/github.com/thanos-io/thanos/pkg/testutil/testutil.go (+116/-2)
vendor/github.com/thanos-io/thanos/pkg/tracing/tracing.go (+15/-7)
vendor/github.com/tmc/grpc-websocket-proxy/wsproxy/websocket_proxy.go (+1/-1)
vendor/github.com/uber/jaeger-client-go/CHANGELOG.md (+15/-0)
vendor/github.com/uber/jaeger-client-go/Makefile (+18/-3)
vendor/github.com/uber/jaeger-client-go/constants.go (+1/-1)
vendor/github.com/uber/jaeger-client-go/internal/baggage/remote/restriction_manager.go (+3/-2)
vendor/github.com/uber/jaeger-client-go/thrift-gen/agent/GoUnusedProtection__.go (+6/-0)
vendor/github.com/uber/jaeger-client-go/thrift-gen/agent/agent-consts.go (+8/-3)
vendor/github.com/uber/jaeger-client-go/thrift-gen/agent/agent.go (+296/-311)
vendor/github.com/uber/jaeger-client-go/thrift-gen/baggage/GoUnusedProtection__.go (+6/-0)
vendor/github.com/uber/jaeger-client-go/thrift-gen/baggage/baggage-consts.go (+8/-3)
vendor/github.com/uber/jaeger-client-go/thrift-gen/baggage/baggage.go (+565/-0)
vendor/github.com/uber/jaeger-client-go/thrift-gen/jaeger/GoUnusedProtection__.go (+6/-0)
vendor/github.com/uber/jaeger-client-go/thrift-gen/jaeger/jaeger-consts.go (+8/-3)
vendor/github.com/uber/jaeger-client-go/thrift-gen/jaeger/jaeger.go (+2698/-0)
vendor/github.com/uber/jaeger-client-go/thrift-gen/sampling/GoUnusedProtection__.go (+6/-0)
vendor/github.com/uber/jaeger-client-go/thrift-gen/sampling/sampling-consts.go (+8/-3)
vendor/github.com/uber/jaeger-client-go/thrift-gen/sampling/sampling.go (+1183/-733)
vendor/github.com/uber/jaeger-client-go/thrift-gen/zipkincore/GoUnusedProtection__.go (+6/-0)
vendor/github.com/uber/jaeger-client-go/thrift-gen/zipkincore/zipkincore-consts.go (+7/-3)
vendor/github.com/uber/jaeger-client-go/thrift-gen/zipkincore/zipkincore.go (+1853/-0)
vendor/github.com/uber/jaeger-client-go/thrift/README.md (+7/-3)
vendor/github.com/uber/jaeger-client-go/thrift/application_exception.go (+69/-31)
vendor/github.com/uber/jaeger-client-go/thrift/binary_protocol.go (+189/-148)
vendor/github.com/uber/jaeger-client-go/thrift/client.go (+109/-0)
vendor/github.com/uber/jaeger-client-go/thrift/compact_protocol.go (+133/-83)
vendor/github.com/uber/jaeger-client-go/thrift/configuration.go (+378/-0)
vendor/github.com/uber/jaeger-client-go/thrift/context.go (+2/-8)
vendor/github.com/uber/jaeger-client-go/thrift/exception.go (+79/-7)
vendor/github.com/uber/jaeger-client-go/thrift/header_context.go (+110/-0)
vendor/github.com/uber/jaeger-client-go/thrift/header_protocol.go (+351/-0)
vendor/github.com/uber/jaeger-client-go/thrift/header_transport.go (+810/-0)
vendor/github.com/uber/jaeger-client-go/thrift/logger.go (+59/-0)
vendor/github.com/uber/jaeger-client-go/thrift/memory_buffer.go (+5/-4)
vendor/github.com/uber/jaeger-client-go/thrift/numeric.go (+2/-2)
vendor/github.com/uber/jaeger-client-go/thrift/processor_factory.go (+80/-0)
vendor/github.com/uber/jaeger-client-go/thrift/protocol.go (+75/-73)
vendor/github.com/uber/jaeger-client-go/thrift/protocol_exception.go (+35/-9)
vendor/github.com/uber/jaeger-client-go/thrift/response_helper.go (+94/-0)
vendor/github.com/uber/jaeger-client-go/thrift/rich_transport.go (+5/-3)
vendor/github.com/uber/jaeger-client-go/thrift/serializer.go (+74/-13)
vendor/github.com/uber/jaeger-client-go/thrift/server_transport.go (+34/-0)
vendor/github.com/uber/jaeger-client-go/thrift/simple_json_protocol.go (+181/-145)
vendor/github.com/uber/jaeger-client-go/thrift/simple_server.go (+332/-0)
vendor/github.com/uber/jaeger-client-go/thrift/transport.go (+7/-5)
vendor/github.com/uber/jaeger-client-go/thrift/transport_exception.go (+53/-12)
vendor/github.com/uber/jaeger-client-go/thrift/transport_factory.go (+3/-3)
vendor/github.com/uber/jaeger-client-go/transport/http.go (+2/-1)
vendor/github.com/uber/jaeger-client-go/transport_udp.go (+3/-2)
vendor/github.com/uber/jaeger-client-go/utils/udp_client.go (+4/-4)
vendor/github.com/weaveworks/common/instrument/instrument.go (+24/-9)
vendor/github.com/weaveworks/common/middleware/grpc_instrumentation.go (+5/-4)
vendor/github.com/weaveworks/common/middleware/http_tracing.go (+0/-31)
vendor/github.com/weaveworks/common/middleware/instrument.go (+3/-11)
vendor/github.com/weaveworks/common/middleware/logging.go (+2/-1)
vendor/github.com/weaveworks/common/server/server.go (+24/-3)
vendor/github.com/weaveworks/common/tracing/tracing.go (+40/-4)
vendor/go.etcd.io/bbolt/.gitignore (+2/-0)
vendor/go.etcd.io/bbolt/.travis.yml (+2/-1)
vendor/go.etcd.io/bbolt/Makefile (+0/-2)
vendor/go.etcd.io/bbolt/README.md (+3/-2)
vendor/go.etcd.io/bbolt/bolt_unix.go (+5/-12)
vendor/go.etcd.io/bbolt/compact.go (+114/-0)
vendor/go.etcd.io/bbolt/db.go (+62/-4)
vendor/go.etcd.io/bbolt/freelist_hmap.go (+3/-3)
vendor/go.etcd.io/bbolt/go.mod (+1/-1)
vendor/go.etcd.io/bbolt/go.sum (+2/-2)
vendor/go.etcd.io/bbolt/mlock_unix.go (+36/-0)
vendor/go.etcd.io/bbolt/mlock_windows.go (+11/-0)
vendor/go.etcd.io/bbolt/tx.go (+1/-2)
vendor/go.etcd.io/etcd/api/v3/authpb/auth.pb.go (+4/-16)
vendor/go.etcd.io/etcd/api/v3/etcdserverpb/etcdserver.pb.go (+2/-8)
vendor/go.etcd.io/etcd/api/v3/etcdserverpb/raft_internal.pb.go (+4/-16)
vendor/go.etcd.io/etcd/api/v3/etcdserverpb/rpc.pb.go (+101/-382)
vendor/go.etcd.io/etcd/api/v3/membershippb/membership.pb.go (+6/-24)
vendor/go.etcd.io/etcd/api/v3/mvccpb/kv.pb.go (+2/-8)
vendor/go.etcd.io/etcd/api/v3/v3rpc/rpctypes/error.go (+4/-0)
vendor/go.etcd.io/etcd/api/v3/version/version.go (+1/-1)
vendor/go.etcd.io/etcd/client/pkg/v3/LICENSE (+202/-0)
vendor/go.etcd.io/etcd/client/pkg/v3/fileutil/dir_unix.go (+1/-0)
vendor/go.etcd.io/etcd/client/pkg/v3/fileutil/dir_windows.go (+1/-0)
vendor/go.etcd.io/etcd/client/pkg/v3/fileutil/fileutil.go (+38/-3)
vendor/go.etcd.io/etcd/client/pkg/v3/fileutil/lock.go (+11/-16)
vendor/go.etcd.io/etcd/client/pkg/v3/fileutil/lock_flock.go (+50/-0)
vendor/go.etcd.io/etcd/client/pkg/v3/fileutil/lock_linux.go (+1/-0)
vendor/go.etcd.io/etcd/client/pkg/v3/fileutil/lock_plan9.go (+45/-0)
vendor/go.etcd.io/etcd/client/pkg/v3/fileutil/lock_solaris.go (+63/-0)
vendor/go.etcd.io/etcd/client/pkg/v3/fileutil/lock_unix.go (+30/-0)
vendor/go.etcd.io/etcd/client/pkg/v3/fileutil/lock_windows.go (+1/-0)
vendor/go.etcd.io/etcd/client/pkg/v3/fileutil/preallocate.go (+54/-0)
vendor/go.etcd.io/etcd/client/pkg/v3/fileutil/preallocate_darwin.go (+1/-0)
vendor/go.etcd.io/etcd/client/pkg/v3/fileutil/preallocate_unix.go (+50/-0)
vendor/go.etcd.io/etcd/client/pkg/v3/fileutil/preallocate_unsupported.go (+26/-0)
vendor/go.etcd.io/etcd/client/pkg/v3/fileutil/sync.go (+30/-0)
vendor/go.etcd.io/etcd/client/pkg/v3/fileutil/sync_darwin.go (+1/-0)
vendor/go.etcd.io/etcd/client/pkg/v3/fileutil/sync_linux.go (+35/-0)
vendor/go.etcd.io/etcd/client/pkg/v3/logutil/log_level.go (+4/-20)
vendor/go.etcd.io/etcd/client/pkg/v3/logutil/zap_journal.go (+2/-1)
vendor/go.etcd.io/etcd/client/pkg/v3/srv/srv.go (+1/-1)
vendor/go.etcd.io/etcd/client/pkg/v3/transport/listener.go (+115/-18)
vendor/go.etcd.io/etcd/client/pkg/v3/transport/listener_opts.go (+76/-0)
vendor/go.etcd.io/etcd/client/pkg/v3/transport/sockopt.go (+45/-0)
vendor/go.etcd.io/etcd/client/pkg/v3/transport/sockopt_unix.go (+22/-0)
vendor/go.etcd.io/etcd/client/pkg/v3/transport/sockopt_windows.go (+19/-0)
vendor/go.etcd.io/etcd/client/pkg/v3/transport/timeout_conn.go (+6/-6)
vendor/go.etcd.io/etcd/client/pkg/v3/transport/timeout_dialer.go (+3/-3)
vendor/go.etcd.io/etcd/client/pkg/v3/transport/timeout_listener.go (+7/-19)
vendor/go.etcd.io/etcd/client/pkg/v3/transport/transport.go (+13/-7)
vendor/go.etcd.io/etcd/client/v2/client.go (+8/-1)
vendor/go.etcd.io/etcd/client/v2/discover.go (+1/-1)
vendor/go.etcd.io/etcd/client/v2/go.mod (+7/-6)
vendor/go.etcd.io/etcd/client/v2/go.sum (+83/-40)
vendor/go.etcd.io/etcd/client/v2/json.go (+3/-2)
vendor/go.etcd.io/etcd/client/v2/keys.go (+2/-1)
vendor/go.etcd.io/etcd/client/v2/members.go (+1/-1)
vendor/go.etcd.io/etcd/client/v3/README.md (+2/-2)
vendor/go.etcd.io/etcd/client/v3/client.go (+36/-13)
vendor/go.etcd.io/etcd/client/v3/cluster.go (+1/-1)
vendor/go.etcd.io/etcd/client/v3/config.go (+4/-0)
vendor/go.etcd.io/etcd/client/v3/doc.go (+1/-1)
vendor/go.etcd.io/etcd/client/v3/go.mod (+8/-7)
vendor/go.etcd.io/etcd/client/v3/go.sum (+125/-57)
vendor/go.etcd.io/etcd/client/v3/internal/endpoint/endpoint.go (+1/-1)
vendor/go.etcd.io/etcd/client/v3/lease.go (+10/-10)
vendor/go.etcd.io/etcd/client/v3/logger.go (+43/-67)
vendor/go.etcd.io/etcd/client/v3/options.go (+8/-4)
vendor/go.etcd.io/etcd/client/v3/retry_interceptor.go (+8/-8)
vendor/go.etcd.io/etcd/client/v3/watch.go (+6/-4)
vendor/go.etcd.io/etcd/pkg/transport/listener.go (+34/-179)
vendor/go.etcd.io/etcd/pkg/transport/timeout_listener.go (+1/-1)
vendor/go.etcd.io/etcd/pkg/v3/debugutil/pprof.go (+1/-1)
vendor/go.etcd.io/etcd/pkg/v3/flags/unique_urls.go (+1/-1)
vendor/go.etcd.io/etcd/pkg/v3/flags/urls.go (+1/-1)
vendor/go.etcd.io/etcd/pkg/v3/ioutil/util.go (+1/-1)
vendor/go.etcd.io/etcd/pkg/v3/netutil/netutil.go (+1/-1)
vendor/go.etcd.io/etcd/pkg/v3/netutil/routes.go (+1/-0)
vendor/go.etcd.io/etcd/pkg/v3/netutil/routes_linux.go (+1/-0)
vendor/go.etcd.io/etcd/pkg/v3/runtime/fds_other.go (+1/-0)
vendor/go.etcd.io/etcd/pkg/v3/wait/wait.go (+34/-15)
vendor/go.etcd.io/etcd/raft/v3/README.md (+1/-1)
vendor/go.etcd.io/etcd/raft/v3/confchange/confchange.go (+2/-3)
vendor/go.etcd.io/etcd/raft/v3/doc.go (+1/-1)
vendor/go.etcd.io/etcd/raft/v3/go.mod (+6/-5)
vendor/go.etcd.io/etcd/raft/v3/go.sum (+42/-69)
vendor/go.etcd.io/etcd/raft/v3/logger.go (+10/-0)
vendor/go.etcd.io/etcd/raft/v3/node.go (+2/-0)
vendor/go.etcd.io/etcd/raft/v3/raft.go (+47/-17)
vendor/go.etcd.io/etcd/raft/v3/raftpb/confstate.go (+0/-1)
vendor/go.etcd.io/etcd/raft/v3/raftpb/raft.pb.go (+113/-231)
vendor/go.etcd.io/etcd/raft/v3/raftpb/raft.proto (+3/-0)
vendor/go.etcd.io/etcd/raft/v3/status.go (+2/-3)
vendor/go.etcd.io/etcd/raft/v3/storage.go (+4/-4)
vendor/go.etcd.io/etcd/raft/v3/tracker/tracker.go (+1/-1)
vendor/go.etcd.io/etcd/server/v3/auth/metrics.go (+2/-1)
vendor/go.etcd.io/etcd/server/v3/auth/store.go (+24/-43)
vendor/go.etcd.io/etcd/server/v3/config/config.go (+41/-22)
vendor/go.etcd.io/etcd/server/v3/config/v2_deprecation.go (+50/-0)
vendor/go.etcd.io/etcd/server/v3/datadir/datadir.go (+40/-0)
vendor/go.etcd.io/etcd/server/v3/datadir/doc.go (+17/-0)
vendor/go.etcd.io/etcd/server/v3/embed/config.go (+100/-32)
vendor/go.etcd.io/etcd/server/v3/embed/config_logging.go (+101/-75)
vendor/go.etcd.io/etcd/server/v3/embed/config_logging_journal_unix.go (+2/-1)
vendor/go.etcd.io/etcd/server/v3/embed/config_logging_journal_windows.go (+1/-0)
vendor/go.etcd.io/etcd/server/v3/embed/etcd.go (+191/-67)
vendor/go.etcd.io/etcd/server/v3/embed/serve.go (+11/-2)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/cluster.go (+1/-1)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/etcdhttp/metrics.go (+40/-12)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/etcdhttp/peer.go (+1/-1)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/membership/cluster.go (+56/-25)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/membership/confstate.go (+63/-0)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/membership/member.go (+23/-18)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/membership/store.go (+116/-15)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/membership/storev2.go (+36/-0)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/rafthttp/http.go (+1/-1)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/rafthttp/msgappv2_codec.go (+1/-1)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/rafthttp/peer.go (+1/-1)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/rafthttp/peer_status.go (+1/-1)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/rafthttp/pipeline.go (+4/-2)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/rafthttp/remote.go (+1/-1)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/rafthttp/snapshot_sender.go (+1/-1)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/rafthttp/stream.go (+2/-2)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/rafthttp/transport.go (+2/-2)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/rafthttp/urlpick.go (+1/-1)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/rafthttp/util.go (+3/-3)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/snap/db.go (+1/-1)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/snap/snappb/snap.pb.go (+1/-4)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/v2auth/auth.go (+1/-1)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/v2discovery/discovery.go (+2/-2)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/v2error/error.go (+1/-1)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/v2http/client.go (+1/-1)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/v2http/httptypes/member.go (+1/-1)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/v2http/metrics.go (+1/-2)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/v2store/store.go (+1/-1)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/v2v3/cluster.go (+1/-1)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/v2v3/server.go (+1/-1)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/v3alarm/alarms.go (+6/-9)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/v3client/v3client.go (+1/-5)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/v3election/v3electionpb/v3election.pb.go (+9/-36)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/v3lock/v3lockpb/v3lock.pb.go (+4/-16)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/v3rpc/codec.go (+1/-1)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/v3rpc/grpc.go (+19/-5)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/v3rpc/interceptor.go (+3/-2)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/v3rpc/maintenance.go (+1/-1)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/v3rpc/member.go (+1/-1)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/v3rpc/quota.go (+1/-1)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/v3rpc/util.go (+5/-0)
vendor/go.etcd.io/etcd/server/v3/etcdserver/api/v3rpc/watch.go (+5/-1)
vendor/go.etcd.io/etcd/server/v3/etcdserver/apply.go (+55/-33)
vendor/go.etcd.io/etcd/server/v3/etcdserver/apply_auth.go (+3/-2)
vendor/go.etcd.io/etcd/server/v3/etcdserver/apply_v2.go (+13/-8)
vendor/go.etcd.io/etcd/server/v3/etcdserver/backend.go (+14/-12)
vendor/go.etcd.io/etcd/server/v3/etcdserver/cindex/cindex.go (+113/-38)
vendor/go.etcd.io/etcd/server/v3/etcdserver/cluster_util.go (+2/-2)
vendor/go.etcd.io/etcd/server/v3/etcdserver/corrupt.go (+6/-6)
vendor/go.etcd.io/etcd/server/v3/etcdserver/quota.go (+1/-1)
vendor/go.etcd.io/etcd/server/v3/etcdserver/raft.go (+11/-42)
vendor/go.etcd.io/etcd/server/v3/etcdserver/server.go (+307/-129)
vendor/go.etcd.io/etcd/server/v3/etcdserver/snapshot_merge.go (+1/-1)
vendor/go.etcd.io/etcd/server/v3/etcdserver/storage.go (+4/-3)
vendor/go.etcd.io/etcd/server/v3/etcdserver/util.go (+23/-17)
vendor/go.etcd.io/etcd/server/v3/etcdserver/v2_server.go (+2/-1)
vendor/go.etcd.io/etcd/server/v3/etcdserver/v3_server.go (+122/-69)
vendor/go.etcd.io/etcd/server/v3/lease/leasepb/lease.pb.go (+3/-12)
vendor/go.etcd.io/etcd/server/v3/lease/lessor.go (+10/-21)
vendor/go.etcd.io/etcd/server/v3/mvcc/backend/backend.go (+109/-33)
vendor/go.etcd.io/etcd/server/v3/mvcc/backend/batch_tx.go (+71/-34)
vendor/go.etcd.io/etcd/server/v3/mvcc/backend/config_default.go (+1/-0)
vendor/go.etcd.io/etcd/server/v3/mvcc/backend/config_windows.go (+1/-0)
vendor/go.etcd.io/etcd/server/v3/mvcc/backend/hooks.go (+36/-0)
vendor/go.etcd.io/etcd/server/v3/mvcc/backend/read_tx.go (+15/-18)
vendor/go.etcd.io/etcd/server/v3/mvcc/backend/tx_buffer.go (+44/-16)
vendor/go.etcd.io/etcd/server/v3/mvcc/buckets/bucket.go (+80/-0)
vendor/go.etcd.io/etcd/server/v3/mvcc/index.go (+10/-13)
vendor/go.etcd.io/etcd/server/v3/mvcc/kv.go (+10/-12)
vendor/go.etcd.io/etcd/server/v3/mvcc/kv_view.go (+3/-3)
vendor/go.etcd.io/etcd/server/v3/mvcc/kvstore.go (+16/-53)
vendor/go.etcd.io/etcd/server/v3/mvcc/kvstore_compaction.go (+4/-3)
vendor/go.etcd.io/etcd/server/v3/mvcc/kvstore_txn.go (+21/-13)
vendor/go.etcd.io/etcd/server/v3/mvcc/metrics.go (+0/-40)
vendor/go.etcd.io/etcd/server/v3/mvcc/metrics_txn.go (+0/-3)
vendor/go.etcd.io/etcd/server/v3/mvcc/util.go (+2/-22)
vendor/go.etcd.io/etcd/server/v3/mvcc/watchable_store.go (+7/-8)
vendor/go.etcd.io/etcd/server/v3/verify/doc.go (+20/-0)
vendor/go.etcd.io/etcd/server/v3/verify/verify.go (+148/-0)
vendor/go.etcd.io/etcd/server/v3/wal/file_pipeline.go (+1/-1)
vendor/go.etcd.io/etcd/server/v3/wal/repair.go (+1/-1)
vendor/go.etcd.io/etcd/server/v3/wal/util.go (+1/-1)
vendor/go.etcd.io/etcd/server/v3/wal/wal.go (+22/-15)
vendor/go.etcd.io/etcd/server/v3/wal/walpb/record.go (+12/-0)
vendor/go.etcd.io/etcd/server/v3/wal/walpb/record.pb.go (+79/-26)
vendor/go.etcd.io/etcd/server/v3/wal/walpb/record.proto (+4/-0)
vendor/go.opentelemetry.io/contrib/.gitignore (+13/-0)
vendor/go.opentelemetry.io/contrib/.golangci.yml (+32/-0)
vendor/go.opentelemetry.io/contrib/CHANGELOG.md (+319/-0)
vendor/go.opentelemetry.io/contrib/CODEOWNERS (+17/-0)
vendor/go.opentelemetry.io/contrib/CONTRIBUTING.md (+135/-0)
vendor/go.opentelemetry.io/contrib/LICENSE (+201/-0)
vendor/go.opentelemetry.io/contrib/Makefile (+203/-0)
vendor/go.opentelemetry.io/contrib/README.md (+25/-0)
vendor/go.opentelemetry.io/contrib/RELEASING.md (+96/-0)
vendor/go.opentelemetry.io/contrib/contrib.go (+28/-0)
vendor/go.opentelemetry.io/contrib/doc.go (+20/-0)
vendor/go.opentelemetry.io/contrib/go.mod (+3/-0)
vendor/go.opentelemetry.io/contrib/go.sum (+0/-0)
vendor/go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc/LICENSE (+201/-0)
vendor/go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc/go.mod (+16/-0)
vendor/go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc/go.sum (+122/-0)
vendor/go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc/grpctrace.go (+132/-0)
vendor/go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc/interceptor.go (+499/-0)
vendor/go.opentelemetry.io/contrib/pre_release.sh (+158/-0)
vendor/go.opentelemetry.io/contrib/tag.sh (+178/-0)
vendor/go.opentelemetry.io/otel/baggage/baggage.go (+67/-0)
vendor/go.opentelemetry.io/otel/baggage/doc.go (+24/-0)
vendor/go.opentelemetry.io/otel/exporters/otlp/LICENSE (+201/-0)
vendor/go.opentelemetry.io/otel/exporters/otlp/README.md (+31/-0)
vendor/go.opentelemetry.io/otel/exporters/otlp/doc.go (+20/-0)
vendor/go.opentelemetry.io/otel/exporters/otlp/go.mod (+62/-0)
vendor/go.opentelemetry.io/otel/exporters/otlp/go.sum (+123/-0)
vendor/go.opentelemetry.io/otel/exporters/otlp/internal/otlpconfig/envconfig.go (+196/-0)
vendor/go.opentelemetry.io/otel/exporters/otlp/internal/otlpconfig/options.go (+376/-0)
vendor/go.opentelemetry.io/otel/exporters/otlp/internal/otlpconfig/tls.go (+69/-0)
vendor/go.opentelemetry.io/otel/exporters/otlp/internal/transform/attribute.go (+141/-0)
vendor/go.opentelemetry.io/otel/exporters/otlp/internal/transform/instrumentation.go (+31/-0)
vendor/go.opentelemetry.io/otel/exporters/otlp/internal/transform/metric.go (+631/-0)
vendor/go.opentelemetry.io/otel/exporters/otlp/internal/transform/resource.go (+29/-0)
vendor/go.opentelemetry.io/otel/exporters/otlp/internal/transform/span.go (+218/-0)
vendor/go.opentelemetry.io/otel/exporters/otlp/options.go (+45/-0)
vendor/go.opentelemetry.io/otel/exporters/otlp/optiontypes.go (+38/-0)
vendor/go.opentelemetry.io/otel/exporters/otlp/otlp.go (+179/-0)
vendor/go.opentelemetry.io/otel/exporters/otlp/otlpgrpc/connection.go (+278/-0)
vendor/go.opentelemetry.io/otel/exporters/otlp/otlpgrpc/doc.go (+25/-0)
vendor/go.opentelemetry.io/otel/exporters/otlp/otlpgrpc/driver.go (+195/-0)
vendor/go.opentelemetry.io/otel/exporters/otlp/otlpgrpc/options.go (+202/-0)
vendor/go.opentelemetry.io/otel/exporters/otlp/protocoldriver.go (+145/-0)
vendor/go.opentelemetry.io/otel/internal/metric/async.go (+148/-0)
vendor/go.opentelemetry.io/otel/sdk/LICENSE (+201/-0)
vendor/go.opentelemetry.io/otel/sdk/export/metric/LICENSE (+201/-0)
vendor/go.opentelemetry.io/otel/sdk/export/metric/aggregation/aggregation.go (+154/-0)
vendor/go.opentelemetry.io/otel/sdk/export/metric/exportkind_string.go (+25/-0)
vendor/go.opentelemetry.io/otel/sdk/export/metric/go.mod (+54/-0)
vendor/go.opentelemetry.io/otel/sdk/export/metric/go.sum (+15/-0)
vendor/go.opentelemetry.io/otel/sdk/export/metric/metric.go (+445/-0)
vendor/go.opentelemetry.io/otel/sdk/instrumentation/library.go (+35/-0)
vendor/go.opentelemetry.io/otel/sdk/internal/internal.go (+37/-0)
vendor/go.opentelemetry.io/otel/sdk/internal/sanitize.go (+50/-0)
vendor/go.opentelemetry.io/otel/sdk/metric/LICENSE (+201/-0)
vendor/go.opentelemetry.io/otel/sdk/metric/aggregator/aggregator.go (+52/-0)
vendor/go.opentelemetry.io/otel/sdk/metric/aggregator/exact/exact.go (+130/-0)
vendor/go.opentelemetry.io/otel/sdk/metric/aggregator/histogram/histogram.go (+270/-0)
vendor/go.opentelemetry.io/otel/sdk/metric/aggregator/lastvalue/lastvalue.go (+135/-0)
vendor/go.opentelemetry.io/otel/sdk/metric/aggregator/minmaxsumcount/mmsc.go (+165/-0)
vendor/go.opentelemetry.io/otel/sdk/metric/aggregator/sum/sum.go (+106/-0)
vendor/go.opentelemetry.io/otel/sdk/metric/atomicfields.go (+24/-0)
vendor/go.opentelemetry.io/otel/sdk/metric/controller/basic/config.go (+122/-0)
vendor/go.opentelemetry.io/otel/sdk/metric/controller/basic/controller.go (+312/-0)
vendor/go.opentelemetry.io/otel/sdk/metric/controller/time/time.go (+59/-0)
vendor/go.opentelemetry.io/otel/sdk/metric/doc.go (+141/-0)
vendor/go.opentelemetry.io/otel/sdk/metric/go.mod (+56/-0)
vendor/go.opentelemetry.io/otel/sdk/metric/go.sum (+17/-0)
vendor/go.opentelemetry.io/otel/sdk/metric/processor/basic/basic.go (+377/-0)
vendor/go.opentelemetry.io/otel/sdk/metric/processor/basic/config.go (+42/-0)
vendor/go.opentelemetry.io/otel/sdk/metric/refcount_mapped.go (+59/-0)
vendor/go.opentelemetry.io/otel/sdk/metric/sdk.go (+555/-0)
vendor/go.opentelemetry.io/otel/sdk/metric/selector/simple/simple.go (+120/-0)
vendor/go.opentelemetry.io/otel/sdk/resource/auto.go (+64/-0)
vendor/go.opentelemetry.io/otel/sdk/resource/builtin.go (+103/-0)
vendor/go.opentelemetry.io/otel/sdk/resource/config.go (+165/-0)
vendor/go.opentelemetry.io/otel/sdk/resource/doc.go (+32/-0)
vendor/go.opentelemetry.io/otel/sdk/resource/env.go (+72/-0)
vendor/go.opentelemetry.io/otel/sdk/resource/os.go (+39/-0)
vendor/go.opentelemetry.io/otel/sdk/resource/process.go (+237/-0)
vendor/go.opentelemetry.io/otel/sdk/resource/resource.go (+196/-0)
vendor/go.opentelemetry.io/otel/sdk/trace/attributesmap.go (+91/-0)
vendor/go.opentelemetry.io/otel/sdk/trace/batch_span_processor.go (+328/-0)
vendor/go.opentelemetry.io/otel/sdk/trace/config.go (+68/-0)
vendor/go.opentelemetry.io/otel/sdk/trace/doc.go (+25/-0)
vendor/go.opentelemetry.io/otel/sdk/trace/evictedqueue.go (+38/-0)
vendor/go.opentelemetry.io/otel/sdk/trace/id_generator.go (+67/-0)
vendor/go.opentelemetry.io/otel/sdk/trace/provider.go (+324/-0)
vendor/go.opentelemetry.io/otel/sdk/trace/sampling.go (+290/-0)
vendor/go.opentelemetry.io/otel/sdk/trace/simple_span_processor.go (+80/-0)
vendor/go.opentelemetry.io/otel/sdk/trace/span.go (+617/-0)
vendor/go.opentelemetry.io/otel/sdk/trace/span_exporter.go (+39/-0)
vendor/go.opentelemetry.io/otel/sdk/trace/span_processor.go (+56/-0)
vendor/go.opentelemetry.io/otel/sdk/trace/tracer.go (+75/-0)
vendor/go.opentelemetry.io/otel/semconv/doc.go (+24/-0)
vendor/go.opentelemetry.io/otel/semconv/exception.go (+39/-0)
vendor/go.opentelemetry.io/otel/semconv/http.go (+297/-0)
vendor/go.opentelemetry.io/otel/semconv/resource.go (+257/-0)
vendor/go.opentelemetry.io/otel/semconv/trace.go (+376/-0)
vendor/go.opentelemetry.io/proto/otlp/LICENSE (+201/-0)
vendor/go.opentelemetry.io/proto/otlp/collector/metrics/v1/metrics_service.pb.go (+255/-0)
vendor/go.opentelemetry.io/proto/otlp/collector/metrics/v1/metrics_service.pb.gw.go (+169/-0)
vendor/go.opentelemetry.io/proto/otlp/collector/metrics/v1/metrics_service_grpc.pb.go (+101/-0)
vendor/go.opentelemetry.io/proto/otlp/collector/trace/v1/trace_config.pb.go (+573/-0)
vendor/go.opentelemetry.io/proto/otlp/collector/trace/v1/trace_service.pb.go (+252/-0)
vendor/go.opentelemetry.io/proto/otlp/collector/trace/v1/trace_service.pb.gw.go (+169/-0)
vendor/go.opentelemetry.io/proto/otlp/collector/trace/v1/trace_service_grpc.pb.go (+101/-0)
vendor/go.opentelemetry.io/proto/otlp/common/v1/common.pb.go (+659/-0)
vendor/go.opentelemetry.io/proto/otlp/metrics/v1/metrics.pb.go (+2469/-0)
vendor/go.opentelemetry.io/proto/otlp/resource/v1/resource.pb.go (+194/-0)
vendor/go.opentelemetry.io/proto/otlp/trace/v1/trace.pb.go (+1206/-0)
vendor/go.uber.org/atomic/.gitignore (+3/-0)
vendor/go.uber.org/atomic/CHANGELOG.md (+34/-10)
vendor/go.uber.org/atomic/Makefile (+1/-0)
vendor/go.uber.org/atomic/README.md (+2/-2)
vendor/go.uber.org/atomic/bool.go (+10/-10)
vendor/go.uber.org/atomic/bool_ext.go (+1/-1)
vendor/go.uber.org/atomic/duration.go (+10/-10)
vendor/go.uber.org/atomic/duration_ext.go (+4/-4)
vendor/go.uber.org/atomic/error.go (+6/-6)
vendor/go.uber.org/atomic/float64.go (+10/-9)
vendor/go.uber.org/atomic/float64_ext.go (+28/-6)
vendor/go.uber.org/atomic/gen.go (+1/-0)
vendor/go.uber.org/atomic/go.sum (+0/-1)
vendor/go.uber.org/atomic/int32.go (+12/-12)
vendor/go.uber.org/atomic/int64.go (+12/-12)
vendor/go.uber.org/atomic/string.go (+6/-6)
vendor/go.uber.org/atomic/string_ext.go (+2/-0)
vendor/go.uber.org/atomic/time.go (+55/-0)
vendor/go.uber.org/atomic/time_ext.go (+15/-7)
vendor/go.uber.org/atomic/uint32.go (+12/-12)
vendor/go.uber.org/atomic/uint64.go (+12/-12)
vendor/go.uber.org/atomic/uintptr.go (+102/-0)
vendor/go.uber.org/atomic/unsafe_pointer.go (+33/-27)
vendor/go.uber.org/goleak/README.md (+3/-3)
vendor/go.uber.org/goleak/go.mod (+2/-2)
vendor/go.uber.org/goleak/go.sum (+25/-7)
vendor/go.uber.org/multierr/CHANGELOG.md (+12/-0)
vendor/go.uber.org/multierr/LICENSE.txt (+1/-1)
vendor/go.uber.org/multierr/Makefile (+3/-7)
vendor/go.uber.org/multierr/README.md (+4/-4)
vendor/go.uber.org/multierr/error.go (+199/-9)
vendor/go.uber.org/multierr/go.mod (+4/-7)
vendor/go.uber.org/multierr/go.sum (+9/-38)
vendor/go.uber.org/zap/CHANGELOG.md (+84/-0)
vendor/go.uber.org/zap/CONTRIBUTING.md (+0/-6)
vendor/go.uber.org/zap/FAQ.md (+8/-0)
vendor/go.uber.org/zap/Makefile (+13/-3)
vendor/go.uber.org/zap/README.md (+4/-4)
vendor/go.uber.org/zap/buffer/buffer.go (+18/-0)
vendor/go.uber.org/zap/field.go (+10/-0)
vendor/go.uber.org/zap/go.mod (+7/-6)
vendor/go.uber.org/zap/go.sum (+34/-27)
vendor/go.uber.org/zap/http_handler.go (+75/-24)
vendor/go.uber.org/zap/logger.go (+11/-7)
vendor/go.uber.org/zap/options.go (+8/-0)
vendor/go.uber.org/zap/sugar.go (+21/-10)
vendor/go.uber.org/zap/zapcore/buffered_write_syncer.go (+188/-0)
vendor/go.uber.org/zap/zapcore/clock.go (+50/-0)
vendor/go.uber.org/zap/zapcore/console_encoder.go (+1/-1)
vendor/go.uber.org/zap/zapcore/entry.go (+4/-6)
vendor/go.uber.org/zap/zapcore/error.go (+19/-2)
vendor/go.uber.org/zap/zapcore/field.go (+7/-1)
vendor/go.uber.org/zap/zapcore/json_encoder.go (+10/-2)
vendor/go.uber.org/zap/zapcore/sampler.go (+8/-6)
vendor/go.uber.org/zap/zapcore/write_syncer.go (+1/-2)
vendor/go.uber.org/zap/zapgrpc/zapgrpc.go (+241/-0)
vendor/golang.org/x/crypto/argon2/blamka_amd64.s (+1/-0)
vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.s (+1/-0)
vendor/golang.org/x/crypto/blake2b/blake2b_amd64.s (+1/-0)
vendor/golang.org/x/crypto/pkcs12/bmp-string.go (+50/-0)
vendor/golang.org/x/crypto/pkcs12/crypto.go (+131/-0)
vendor/golang.org/x/crypto/pkcs12/errors.go (+23/-0)
vendor/golang.org/x/crypto/pkcs12/internal/rc2/rc2.go (+271/-0)
vendor/golang.org/x/crypto/pkcs12/mac.go (+45/-0)
vendor/golang.org/x/crypto/pkcs12/pbkdf.go (+170/-0)
vendor/golang.org/x/crypto/pkcs12/pkcs12.go (+360/-0)
vendor/golang.org/x/crypto/pkcs12/safebags.go (+57/-0)
vendor/golang.org/x/net/http2/ascii.go (+4/-0)
vendor/golang.org/x/net/http2/errors.go (+12/-0)
vendor/golang.org/x/net/http2/frame.go (+1/-1)
vendor/golang.org/x/net/http2/server.go (+79/-40)
vendor/golang.org/x/net/http2/transport.go (+289/-143)
vendor/golang.org/x/net/internal/socket/complete_dontwait.go (+26/-0)
vendor/golang.org/x/net/internal/socket/complete_nodontwait.go (+22/-0)
vendor/golang.org/x/net/internal/socket/rawconn_mmsg.go (+2/-9)
vendor/golang.org/x/net/internal/socket/rawconn_msg.go (+2/-9)
vendor/golang.org/x/oauth2/google/doc.go (+3/-3)
vendor/golang.org/x/oauth2/google/google.go (+1/-1)
vendor/golang.org/x/oauth2/google/internal/externalaccount/aws.go (+5/-1)
vendor/golang.org/x/oauth2/google/internal/externalaccount/basecredentials.go (+99/-16)
vendor/golang.org/x/oauth2/google/internal/externalaccount/clientauth.go (+5/-1)
vendor/golang.org/x/oauth2/google/internal/externalaccount/impersonate.go (+3/-2)
vendor/golang.org/x/oauth2/google/internal/externalaccount/sts_exchange.go (+3/-0)
vendor/golang.org/x/oauth2/google/internal/externalaccount/urlcredsource.go (+2/-1)
vendor/golang.org/x/oauth2/google/jwt.go (+32/-5)
vendor/golang.org/x/sys/cpu/cpu.go (+3/-3)
vendor/golang.org/x/sys/cpu/cpu_aix.go (+1/-0)
vendor/golang.org/x/sys/cpu/cpu_x86.go (+2/-0)
vendor/golang.org/x/sys/unix/README.md (+3/-3)
vendor/golang.org/x/sys/unix/asm_bsd_386.s (+2/-2)
vendor/golang.org/x/sys/unix/asm_bsd_arm.s (+2/-2)
vendor/golang.org/x/sys/unix/ifreq_linux.go (+149/-0)
vendor/golang.org/x/sys/unix/ioctl_linux.go (+39/-39)
vendor/golang.org/x/sys/unix/mkall.sh (+0/-12)
vendor/golang.org/x/sys/unix/mkerrors.sh (+12/-3)
vendor/golang.org/x/sys/unix/syscall_darwin.1_13.go (+2/-2)
vendor/golang.org/x/sys/unix/syscall_darwin.go (+33/-0)
vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go (+1/-8)
vendor/golang.org/x/sys/unix/syscall_illumos.go (+8/-0)
vendor/golang.org/x/sys/unix/syscall_linux.go (+122/-30)
vendor/golang.org/x/sys/unix/syscall_linux_386.go (+6/-30)
vendor/golang.org/x/sys/unix/syscall_linux_amd64.go (+4/-38)
vendor/golang.org/x/sys/unix/syscall_linux_arm.go (+6/-34)
vendor/golang.org/x/sys/unix/syscall_linux_arm64.go (+4/-35)
vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go (+2/-27)
vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go (+6/-27)
vendor/golang.org/x/sys/unix/syscall_linux_ppc.go (+5/-30)
vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go (+2/-26)
vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go (+2/-33)
vendor/golang.org/x/sys/unix/syscall_linux_s390x.go (+4/-26)
vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go (+2/-25)
vendor/golang.org/x/sys/unix/syscall_solaris.go (+240/-0)
vendor/golang.org/x/sys/unix/syscall_unix.go (+4/-0)
vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go (+6/-0)
vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go (+6/-0)
vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go (+5/-0)
vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go (+5/-0)
vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go (+5/-0)
vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go (+5/-0)
vendor/golang.org/x/sys/unix/zerrors_linux.go (+152/-12)
vendor/golang.org/x/sys/unix/zerrors_linux_386.go (+21/-0)
vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go (+21/-0)
vendor/golang.org/x/sys/unix/zerrors_linux_arm.go (+21/-0)
vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go (+21/-0)
vendor/golang.org/x/sys/unix/zerrors_linux_mips.go (+21/-0)
vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go (+21/-0)
vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go (+21/-0)
vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go (+21/-0)
vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go (+21/-0)
vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go (+21/-0)
vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go (+21/-0)
vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go (+21/-0)
vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go (+21/-0)
vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go (+21/-0)
vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go (+3/-0)
vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go (+3/-0)
vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.go (+4/-4)
vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.s (+15/-3)
vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go (+286/-286)
vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s (+710/-142)
vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.go (+4/-4)
vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.s (+15/-3)
vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go (+286/-286)
vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s (+710/-142)
vendor/golang.org/x/sys/unix/zsyscall_linux.go (+35/-3)
vendor/golang.org/x/sys/unix/zsyscall_linux_386.go (+0/-32)
vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go (+0/-32)
vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go (+0/-32)
vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go (+0/-34)
vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go (+0/-11)
vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go (+0/-11)
vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go (+0/-34)
vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go (+0/-32)
vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go (+0/-32)
vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go (+0/-32)
vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go (+0/-22)
vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go (+0/-21)
vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go (+71/-1)
vendor/golang.org/x/sys/unix/zsysnum_linux_386.go (+5/-0)
vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go (+359/-354)
vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go (+4/-0)
vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go (+304/-299)
vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go (+4/-0)
vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go (+351/-347)
vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go (+351/-347)
vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go (+4/-0)
vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go (+4/-0)
vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go (+400/-396)
vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go (+400/-396)
vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go (+302/-298)
vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go (+365/-361)
vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go (+379/-375)
vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go (+104/-0)
vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go (+104/-0)
vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go (+3/-0)
vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go (+5/-2)
vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go (+5/-2)
vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go (+5/-2)
vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go (+5/-2)
vendor/golang.org/x/sys/unix/ztypes_illumos_amd64.go (+2/-0)
vendor/golang.org/x/sys/unix/ztypes_linux.go (+201/-7)
vendor/golang.org/x/sys/unix/ztypes_linux_386.go (+24/-3)
vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go (+24/-3)
vendor/golang.org/x/sys/unix/ztypes_linux_arm.go (+24/-3)
vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go (+24/-3)
vendor/golang.org/x/sys/unix/ztypes_linux_mips.go (+24/-3)
vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go (+24/-3)
vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go (+24/-3)
vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go (+24/-3)
vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go (+24/-3)
vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go (+24/-3)
vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go (+24/-3)
vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go (+24/-3)
vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go (+24/-3)
vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go (+24/-3)
vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go (+3/-1)
vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go (+3/-1)
vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go (+3/-1)
vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go (+3/-1)
vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go (+3/-1)
vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go (+3/-1)
vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go (+3/-1)
vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go (+3/-1)
vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go (+3/-1)
vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go (+40/-0)
vendor/golang.org/x/sys/windows/empty.s (+1/-0)
vendor/golang.org/x/sys/windows/exec_windows.go (+72/-9)
vendor/golang.org/x/sys/windows/security_windows.go (+1/-0)
vendor/golang.org/x/sys/windows/syscall_windows.go (+1/-0)
vendor/golang.org/x/sys/windows/types_windows.go (+10/-9)
vendor/golang.org/x/sys/windows/zsyscall_windows.go (+20/-0)
vendor/golang.org/x/time/rate/rate.go (+3/-17)
vendor/google.golang.org/api/cloudresourcemanager/v1/cloudresourcemanager-api.json (+5/-5)
vendor/google.golang.org/api/cloudresourcemanager/v1/cloudresourcemanager-gen.go (+233/-231)
vendor/google.golang.org/api/googleapi/googleapi.go (+28/-0)
vendor/google.golang.org/api/internal/creds.go (+46/-30)
vendor/google.golang.org/api/internal/gensupport/params.go (+7/-1)
vendor/google.golang.org/api/internal/gensupport/retryable_linux.go (+1/-0)
vendor/google.golang.org/api/internal/settings.go (+41/-25)
vendor/google.golang.org/api/option/credentials_go19.go (+1/-0)
vendor/google.golang.org/api/option/credentials_notgo19.go (+1/-0)
vendor/google.golang.org/api/option/internaloption/internaloption.go (+40/-0)
vendor/google.golang.org/api/storage/v1/storage-gen.go (+220/-220)
vendor/google.golang.org/api/transport/grpc/dial.go (+5/-2)
vendor/google.golang.org/api/transport/grpc/dial_appengine.go (+1/-0)
vendor/google.golang.org/api/transport/grpc/dial_socketopt.go (+1/-0)
vendor/google.golang.org/api/transport/http/configure_http2_go116.go (+2/-1)
vendor/google.golang.org/api/transport/http/configure_http2_not_go116.go (+1/-0)
vendor/google.golang.org/api/transport/http/default_transport_go113.go (+1/-0)
vendor/google.golang.org/api/transport/http/default_transport_not_go113.go (+1/-0)
vendor/google.golang.org/api/transport/http/dial_appengine.go (+1/-0)
vendor/google.golang.org/api/transport/http/internal/propagation/http.go (+1/-0)
vendor/google.golang.org/api/transport/internal/dca/dca.go (+0/-2)
vendor/google.golang.org/genproto/googleapis/api/annotations/annotations.pb.go (+1/-6)
vendor/google.golang.org/genproto/googleapis/api/annotations/client.pb.go (+1/-6)
vendor/google.golang.org/genproto/googleapis/api/annotations/field_behavior.pb.go (+25/-21)
vendor/google.golang.org/genproto/googleapis/api/annotations/http.pb.go (+1/-6)
vendor/google.golang.org/genproto/googleapis/api/annotations/resource.pb.go (+1/-6)
vendor/google.golang.org/genproto/googleapis/api/httpbody/httpbody.pb.go (+1/-6)
vendor/google.golang.org/genproto/googleapis/bigtable/admin/v2/bigtable_instance_admin.pb.go (+2/-7)
vendor/google.golang.org/genproto/googleapis/bigtable/admin/v2/bigtable_table_admin.pb.go (+6/-11)
vendor/google.golang.org/genproto/googleapis/bigtable/admin/v2/common.pb.go (+2/-7)
vendor/google.golang.org/genproto/googleapis/bigtable/admin/v2/instance.pb.go (+55/-47)
vendor/google.golang.org/genproto/googleapis/bigtable/admin/v2/table.pb.go (+2/-7)
vendor/google.golang.org/genproto/googleapis/bigtable/v2/bigtable.pb.go (+2/-7)
vendor/google.golang.org/genproto/googleapis/bigtable/v2/data.pb.go (+2/-7)
vendor/google.golang.org/genproto/googleapis/iam/v1/iam_policy.pb.go (+2/-7)
vendor/google.golang.org/genproto/googleapis/iam/v1/options.pb.go (+2/-7)
vendor/google.golang.org/genproto/googleapis/iam/v1/policy.pb.go (+2/-7)
vendor/google.golang.org/genproto/googleapis/longrunning/operations.pb.go (+2/-7)
vendor/google.golang.org/genproto/googleapis/rpc/code/code.pb.go (+2/-7)
vendor/google.golang.org/genproto/googleapis/rpc/errdetails/error_details.pb.go (+1278/-0)
vendor/google.golang.org/genproto/googleapis/rpc/status/status.pb.go (+2/-7)
vendor/google.golang.org/genproto/googleapis/type/expr/expr.pb.go (+2/-7)
vendor/google.golang.org/grpc/balancer/grpclb/grpc_lb_v1/load_balancer_grpc.pb.go (+4/-0)
vendor/google.golang.org/grpc/balancer_conn_wrappers.go (+2/-2)
vendor/google.golang.org/grpc/clientconn.go (+6/-6)
vendor/google.golang.org/grpc/credentials/alts/internal/proto/grpc_gcp/handshaker_grpc.pb.go (+4/-0)
vendor/google.golang.org/grpc/credentials/credentials.go (+4/-20)
vendor/google.golang.org/grpc/credentials/google/google.go (+11/-2)
vendor/google.golang.org/grpc/credentials/google/xds.go (+90/-0)
vendor/google.golang.org/grpc/dialoptions.go (+1/-16)
vendor/google.golang.org/grpc/go.sum (+0/-3)
vendor/google.golang.org/grpc/health/grpc_health_v1/health_grpc.pb.go (+4/-0)
vendor/google.golang.org/grpc/internal/credentials/credentials.go (+49/-0)
vendor/google.golang.org/grpc/internal/internal.go (+5/-6)
vendor/google.golang.org/grpc/internal/resolver/dns/dns_resolver.go (+30/-13)
vendor/google.golang.org/grpc/internal/serviceconfig/serviceconfig.go (+16/-0)
vendor/google.golang.org/grpc/internal/transport/controlbuf.go (+32/-0)
vendor/google.golang.org/grpc/internal/transport/http2_client.go (+45/-32)
vendor/google.golang.org/grpc/internal/transport/http2_server.go (+19/-20)
vendor/google.golang.org/grpc/internal/transport/transport.go (+4/-3)
vendor/google.golang.org/grpc/internal/xds_handshake_cluster.go (+40/-0)
vendor/google.golang.org/grpc/metadata/metadata.go (+14/-12)
vendor/google.golang.org/grpc/regenerate.sh (+0/-10)
vendor/google.golang.org/grpc/resolver/resolver.go (+1/-1)
vendor/google.golang.org/grpc/resolver_conn_wrapper.go (+9/-54)
vendor/google.golang.org/grpc/rpc_util.go (+15/-4)
vendor/google.golang.org/grpc/server.go (+93/-20)
vendor/google.golang.org/grpc/stream.go (+13/-7)
vendor/google.golang.org/grpc/tap/tap.go (+8/-8)
vendor/google.golang.org/grpc/version.go (+1/-1)
vendor/google.golang.org/grpc/vet.sh (+14/-10)
vendor/google.golang.org/protobuf/encoding/prototext/decode.go (+0/-3)
vendor/google.golang.org/protobuf/internal/encoding/text/encode.go (+5/-0)
vendor/google.golang.org/protobuf/internal/impl/legacy_message.go (+7/-0)
vendor/google.golang.org/protobuf/internal/version/version.go (+2/-2)
vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go (+27/-16)
vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go (+0/-82)
vendor/gopkg.in/natefinch/lumberjack.v2/.gitignore (+23/-0)
vendor/gopkg.in/natefinch/lumberjack.v2/.travis.yml (+6/-0)
vendor/gopkg.in/natefinch/lumberjack.v2/LICENSE (+21/-0)
vendor/gopkg.in/natefinch/lumberjack.v2/README.md (+179/-0)
vendor/gopkg.in/natefinch/lumberjack.v2/chown.go (+11/-0)
vendor/gopkg.in/natefinch/lumberjack.v2/chown_linux.go (+19/-0)
vendor/gopkg.in/natefinch/lumberjack.v2/lumberjack.go (+541/-0)
vendor/modules.txt (+197/-123)
website/config.toml (+1/-1)
website/content/en/_index.html (+1/-1)
Reviewer Review Type Date Requested Status
Sergio Durigan Junior Approve
Bryce Harrington Pending
Canonical Server Pending
Review via email: mp+419325@code.launchpad.net

Description of the change

This is a proposal for the new 22.04 cortex OCI branch.

As usual, the proposal will not be merged into the target for this MP. Instead, a new 1.11-22.04 branch will be created in the repository.

This MP includes:

- A merge for the upstream v.1.11 tag to pull in the latest stable release;
- an update to the Dockerfile for the 22.04 release; and
- a proposal to maintain the image's cortex configuration file in the oci directory. The upstream configuration file have been changing when we need new versions of this image and, like now, the changes may not be fit for testing our images.

To post a comment you must log in.
Revision history for this message
Sergio Durigan Junior (sergiodj) wrote :

Thanks, Athos.

Built & tested fine locally. LGTM. I also like the idea of maintining our own, simplified version of the configuration file.

review: Approve
Revision history for this message
Athos Ribeiro (athos-ribeiro) wrote :

Thanks, Sergio!

Merged :)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/.errcheck-exclude b/.errcheck-exclude
2index cdf86dc..b8e1dc9 100644
3--- a/.errcheck-exclude
4+++ b/.errcheck-exclude
5@@ -1,6 +1,6 @@
6 io/ioutil.WriteFile
7 io/ioutil.ReadFile
8-(github.com/go-kit/kit/log.Logger).Log
9+(github.com/go-kit/log.Logger).Log
10 io.Copy
11 (github.com/opentracing/opentracing-go.Tracer).Inject
12 (*github.com/cortexproject/cortex/pkg/util/spanlogger.SpanLogger).Error
13diff --git a/.github/workflows/test-build-deploy.yml b/.github/workflows/test-build-deploy.yml
14index db10325..d356243 100644
15--- a/.github/workflows/test-build-deploy.yml
16+++ b/.github/workflows/test-build-deploy.yml
17@@ -10,7 +10,7 @@ jobs:
18 lint:
19 runs-on: ubuntu-20.04
20 container:
21- image: quay.io/cortexproject/build-image:build-image-multiarch-1d2497ff6
22+ image: quay.io/cortexproject/build-image:release-1.11-go-1-16-15-ebfea1212
23 steps:
24 - name: Checkout Repo
25 uses: actions/checkout@v2
26@@ -34,7 +34,7 @@ jobs:
27 test:
28 runs-on: ubuntu-20.04
29 container:
30- image: quay.io/cortexproject/build-image:build-image-multiarch-1d2497ff6
31+ image: quay.io/cortexproject/build-image:release-1.11-go-1-16-15-ebfea1212
32 services:
33 cassandra:
34 image: cassandra:3.11
35@@ -55,7 +55,7 @@ jobs:
36 build:
37 runs-on: ubuntu-20.04
38 container:
39- image: quay.io/cortexproject/build-image:build-image-multiarch-1d2497ff6
40+ image: quay.io/cortexproject/build-image:release-1.11-go-1-16-15-ebfea1212
41 steps:
42 - name: Checkout Repo
43 uses: actions/checkout@v2
44@@ -98,8 +98,8 @@ jobs:
45 - name: Upgrade golang
46 run: |
47 cd /tmp
48- wget https://dl.google.com/go/go1.16.3.linux-amd64.tar.gz
49- tar -zxvf go1.16.3.linux-amd64.tar.gz
50+ wget https://dl.google.com/go/go1.16.15.linux-amd64.tar.gz
51+ tar -zxvf go1.16.15.linux-amd64.tar.gz
52 sudo rm -fr /usr/local/go
53 sudo mv /tmp/go /usr/local/go
54 cd -
55@@ -140,6 +140,7 @@ jobs:
56 docker pull quay.io/cortexproject/cortex:v1.7.0
57 docker pull quay.io/cortexproject/cortex:v1.8.0
58 docker pull quay.io/cortexproject/cortex:v1.9.0
59+ docker pull quay.io/cortexproject/cortex:v1.10.0
60 docker pull shopify/bigtable-emulator:0.1.0
61 docker pull rinscy/cassandra:3.11.0
62 docker pull memcached:1.6.1
63@@ -174,14 +175,14 @@ jobs:
64 run: |
65 touch build-image/.uptodate
66 MIGRATIONS_DIR=$(pwd)/cmd/cortex/migrations
67- make BUILD_IMAGE=quay.io/cortexproject/build-image:build-image-multiarch-1d2497ff6 TTY='' configs-integration-test
68+ make BUILD_IMAGE=quay.io/cortexproject/build-image:release-1.11-go-1-16-15-ebfea1212 TTY='' configs-integration-test
69
70 deploy_website:
71 needs: [build, test]
72 if: (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/')) && github.repository == 'cortexproject/cortex'
73 runs-on: ubuntu-20.04
74 container:
75- image: quay.io/cortexproject/build-image:build-image-multiarch-1d2497ff6
76+ image: quay.io/cortexproject/build-image:release-1.11-go-1-16-15-ebfea1212
77 steps:
78 - name: Checkout Repo
79 uses: actions/checkout@v2
80@@ -218,7 +219,7 @@ jobs:
81 if: (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/')) && github.repository == 'cortexproject/cortex'
82 runs-on: ubuntu-20.04
83 container:
84- image: quay.io/cortexproject/build-image:build-image-multiarch-1d2497ff6
85+ image: quay.io/cortexproject/build-image:release-1.11-go-1-16-15-ebfea1212
86 steps:
87 - name: Checkout Repo
88 uses: actions/checkout@v2
89diff --git a/.golangci.yml b/.golangci.yml
90index 17a354d..38334b9 100644
91--- a/.golangci.yml
92+++ b/.golangci.yml
93@@ -7,6 +7,7 @@ linters:
94 - golint
95 - gofmt
96 - misspell
97+ - depguard
98
99 linters-settings:
100 errcheck:
101@@ -16,6 +17,12 @@ linters-settings:
102 goimports:
103 local-prefixes: "github.com/cortexproject/cortex"
104
105+ depguard:
106+ list-type: blacklist
107+ include-go-root: true
108+ packages-with-error-message:
109+ - github.com/go-kit/kit/log: "Use github.com/go-kit/log instead of github.com/go-kit/kit/log"
110+
111 run:
112 timeout: 5m
113
114diff --git a/CHANGELOG.md b/CHANGELOG.md
115index a0ec492..00f5fe8 100644
116--- a/CHANGELOG.md
117+++ b/CHANGELOG.md
118@@ -2,6 +2,70 @@
119
120 ## master / unreleased
121
122+
123+## 1.11.1 2022-03-08
124+* [ENHANCEMENT] Build with Go 1.16.15 to address CVE-2022-24921 "stack exhaustion via a deeply nested expression" #4663
125+
126+## 1.11.0 2021-11-25
127+* [BUGFIX] Update go-kit package to fix spurious log messages #4544
128+* [CHANGE] Memberlist: Expose default configuration values to the command line options. Note that setting these explicitly to zero will no longer cause the default to be used. If the default is desired, then do set the option. The following are affected: #4276
129+ - `-memberlist.stream-timeout`
130+ - `-memberlist.retransmit-factor`
131+ - `-memberlist.pull-push-interval`
132+ - `-memberlist.gossip-interval`
133+ - `-memberlist.gossip-nodes`
134+ - `-memberlist.gossip-to-dead-nodes-time`
135+ - `-memberlist.dead-node-reclaim-time`
136+* [CHANGE] `-querier.max-fetched-chunks-per-query` previously applied to chunks from ingesters and store separately; now the two combined should not exceed the limit. #4260
137+* [CHANGE] Memberlist: the metric `memberlist_kv_store_value_bytes` has been removed due to values no longer being stored in-memory as encoded bytes. #4345
138+* [CHANGE] Some files and directories created by Cortex components on local disk now have stricter permissions, and are only readable by owner, but not group or others. #4394
139+* [CHANGE] The metric `cortex_deprecated_flags_inuse_total` has been renamed to `deprecated_flags_inuse_total` as part of using grafana/dskit functionality. #4443
140+* [FEATURE] Ruler: Add new `-ruler.query-stats-enabled` which when enabled will report the `cortex_ruler_query_seconds_total` as a per-user metric that tracks the sum of the wall time of executing queries in the ruler in seconds. #4317
141+* [FEATURE] Query Frontend: Add `cortex_query_fetched_series_total` and `cortex_query_fetched_chunks_bytes_total` per-user counters to expose the number of series and bytes fetched as part of queries. These metrics can be enabled with the `-frontend.query-stats-enabled` flag (or its respective YAML config option `query_stats_enabled`). #4343
142+* [FEATURE] AlertManager: Add support for SNS Receiver. #4382
143+* [FEATURE] Distributor: Add label `status` to metric `cortex_distributor_ingester_append_failures_total` #4442
144+* [FEATURE] Queries: Added `present_over_time` PromQL function, also some TSDB optimisations. #4505
145+* [ENHANCEMENT] Add timeout for waiting on compactor to become ACTIVE in the ring. #4262
146+* [ENHANCEMENT] Reduce memory used by streaming queries, particularly in ruler. #4341
147+* [ENHANCEMENT] Ring: allow experimental configuration of disabling of heartbeat timeouts by setting the relevant configuration value to zero. Applies to the following: #4342
148+ * `-distributor.ring.heartbeat-timeout`
149+ * `-ring.heartbeat-timeout`
150+ * `-ruler.ring.heartbeat-timeout`
151+ * `-alertmanager.sharding-ring.heartbeat-timeout`
152+ * `-compactor.ring.heartbeat-timeout`
153+ * `-store-gateway.sharding-ring.heartbeat-timeout`
154+* [ENHANCEMENT] Ring: allow heartbeats to be explicitly disabled by setting the interval to zero. This is considered experimental. This applies to the following configuration options: #4344
155+ * `-distributor.ring.heartbeat-period`
156+ * `-ingester.heartbeat-period`
157+ * `-ruler.ring.heartbeat-period`
158+ * `-alertmanager.sharding-ring.heartbeat-period`
159+ * `-compactor.ring.heartbeat-period`
160+ * `-store-gateway.sharding-ring.heartbeat-period`
161+* [ENHANCEMENT] Memberlist: optimized receive path for processing ring state updates, to help reduce CPU utilization in large clusters. #4345
162+* [ENHANCEMENT] Memberlist: expose configuration of memberlist packet compression via `-memberlist.compression=enabled`. #4346
163+* [ENHANCEMENT] Update Go version to 1.16.6. #4362
164+* [ENHANCEMENT] Updated Prometheus to include changes from prometheus/prometheus#9083. Now whenever `/labels` API calls include matchers, blocks store is queried for `LabelNames` with matchers instead of `Series` calls which was inefficient. #4380
165+* [ENHANCEMENT] Querier: performance improvements in socket and memory handling. #4429 #4377
166+* [ENHANCEMENT] Exemplars are now emitted for all gRPC calls and many operations tracked by histograms. #4462
167+* [ENHANCEMENT] New options `-server.http-listen-network` and `-server.grpc-listen-network` allow binding as 'tcp4' or 'tcp6'. #4462
168+* [ENHANCEMENT] Rulers: Using shuffle sharding subring on GetRules API. #4466
169+* [ENHANCEMENT] Support memcached auto-discovery via `auto-discovery` flag, introduced by thanos in https://github.com/thanos-io/thanos/pull/4487. Both AWS and Google Cloud memcached service support auto-discovery, which returns a list of nodes of the memcached cluster. #4412
170+* [BUGFIX] Fixes a panic in the query-tee when comparing result. #4465
171+* [BUGFIX] Frontend: Fixes @ modifier functions (start/end) when splitting queries by time. #4464
172+* [BUGFIX] Compactor: compactor will no longer try to compact blocks that are already marked for deletion. Previously compactor would consider blocks marked for deletion within `-compactor.deletion-delay / 2` period as eligible for compaction. #4328
173+* [BUGFIX] HA Tracker: when cleaning up obsolete elected replicas from KV store, tracker didn't update number of cluster per user correctly. #4336
174+* [BUGFIX] Ruler: fixed counting of PromQL evaluation errors as user-errors when updating `cortex_ruler_queries_failed_total`. #4335
175+* [BUGFIX] Ingester: When using block storage, prevent any reads or writes while the ingester is stopping. This will prevent accessing TSDB blocks once they have been already closed. #4304
176+* [BUGFIX] Ingester: fixed ingester stuck on start up (LEAVING ring state) when `-ingester.heartbeat-period=0` and `-ingester.unregister-on-shutdown=false`. #4366
177+* [BUGFIX] Ingester: panic during shutdown while fetching batches from cache. #4397
178+* [BUGFIX] Querier: After query-frontend restart, querier may have lower than configured concurrency. #4417
179+* [BUGFIX] Memberlist: forward only changes, not entire original message. #4419
180+* [BUGFIX] Memberlist: don't accept old tombstones as incoming change, and don't forward such messages to other gossip members. #4420
181+* [BUGFIX] Querier: fixed panic when querying exemplars and using `-distributor.shard-by-all-labels=false`. #4473
182+* [BUGFIX] Querier: honor querier minT,maxT if `nil` SelectHints are passed to Select(). #4413
183+* [BUGFIX] Compactor: fixed panic while collecting Prometheus metrics. #4483
184+
185+
186 ## 1.10.0 / 2021-08-03
187
188 * [CHANGE] Prevent path traversal attack from users able to control the HTTP header `X-Scope-OrgID`. #4375 (CVE-2021-36157)
189diff --git a/MAINTAINERS b/MAINTAINERS
190index f482974..f9df6c1 100644
191--- a/MAINTAINERS
192+++ b/MAINTAINERS
193@@ -1,3 +1,4 @@
194+Alvin Lin, Amazon Web Services <alvinlin123@gmail.com> (@alvinlin123)
195 Bryan Boreham <bjboreham@gmail.com> (@bboreham)
196 Goutham Veeramachaneni, Grafana Labs <gouthamve@gmail.com> (@gouthamve)
197 Jacob Lisi, Grafana Labs <jacob.t.lisi@gmail.com> (@jtlisi)
198diff --git a/Makefile b/Makefile
199index c3dc9aa..99187f8 100644
200--- a/Makefile
201+++ b/Makefile
202@@ -119,7 +119,7 @@ build-image/$(UPTODATE): build-image/*
203 SUDO := $(shell docker info >/dev/null 2>&1 || echo "sudo -E")
204 BUILD_IN_CONTAINER := true
205 BUILD_IMAGE ?= $(IMAGE_PREFIX)build-image
206-LATEST_BUILD_IMAGE_TAG ?= build-image-multiarch-1d2497ff6
207+LATEST_BUILD_IMAGE_TAG ?= release-1.11-go-1-16-15-ebfea1212
208
209 # TTY is parameterized to allow Google Cloud Builder to run builds,
210 # as it currently disallows TTY devices. This value needs to be overridden
211diff --git a/README.md b/README.md
212index 151a821..53e4663 100644
213--- a/README.md
214+++ b/README.md
215@@ -132,7 +132,7 @@ For security issues see https://github.com/cortexproject/cortex/security/policy
216
217 ## Community Meetings
218
219-The Cortex community call happens every three weeks on Thursday at 03:30pm – 04:15pm UTC to get calendar invite join the [google groups](https://groups.google.com/forum/#!forum/cortex-monitoring).
220+The Cortex community call happens every two weeks on Thursday, alternating at 1200 UTC and 1700 UTC. To get a calendar invite join the [google groups](https://groups.google.com/forum/#!forum/cortex-monitoring) or check out [the CNCF community calendar](https://www.cncf.io/calendar/).
221
222 Meeting notes are held [here](https://docs.google.com/document/d/1shtXSAqp3t7fiC-9uZcKkq3mgwsItAJlH6YW6x1joZo/edit).
223
224diff --git a/VERSION b/VERSION
225index ed21137..720c738 100644
226--- a/VERSION
227+++ b/VERSION
228@@ -1 +1 @@
229-1.10.0
230\ No newline at end of file
231+1.11.1
232diff --git a/build-image/Dockerfile b/build-image/Dockerfile
233index 263996f..9077fcb 100644
234--- a/build-image/Dockerfile
235+++ b/build-image/Dockerfile
236@@ -1,4 +1,4 @@
237-FROM golang:1.16.3-buster
238+FROM golang:1.16.15-buster
239 ARG goproxyValue
240 ENV GOPROXY=${goproxyValue}
241 RUN apt-get update && apt-get install -y curl python-requests python-yaml file jq unzip protobuf-compiler libprotobuf-dev && \
242diff --git a/cmd/blocksconvert/main.go b/cmd/blocksconvert/main.go
243index fb5e1f3..c10180e 100644
244--- a/cmd/blocksconvert/main.go
245+++ b/cmd/blocksconvert/main.go
246@@ -7,14 +7,14 @@ import (
247 "os"
248 "strings"
249
250- "github.com/go-kit/kit/log/level"
251+ "github.com/go-kit/log/level"
252+ "github.com/grafana/dskit/services"
253 "github.com/prometheus/client_golang/prometheus"
254 "github.com/weaveworks/common/server"
255 "github.com/weaveworks/common/signals"
256
257 "github.com/cortexproject/cortex/pkg/cortex"
258 util_log "github.com/cortexproject/cortex/pkg/util/log"
259- "github.com/cortexproject/cortex/pkg/util/services"
260 "github.com/cortexproject/cortex/tools/blocksconvert"
261 "github.com/cortexproject/cortex/tools/blocksconvert/builder"
262 "github.com/cortexproject/cortex/tools/blocksconvert/cleaner"
263diff --git a/cmd/cortex/main.go b/cmd/cortex/main.go
264index b67b96a..15ec60f 100644
265--- a/cmd/cortex/main.go
266+++ b/cmd/cortex/main.go
267@@ -12,7 +12,8 @@ import (
268 "strings"
269 "time"
270
271- "github.com/go-kit/kit/log/level"
272+ "github.com/go-kit/log/level"
273+ "github.com/grafana/dskit/flagext"
274 "github.com/pkg/errors"
275 "github.com/prometheus/client_golang/prometheus"
276 "github.com/prometheus/common/version"
277@@ -21,7 +22,6 @@ import (
278
279 "github.com/cortexproject/cortex/pkg/cortex"
280 "github.com/cortexproject/cortex/pkg/util"
281- "github.com/cortexproject/cortex/pkg/util/flagext"
282 util_log "github.com/cortexproject/cortex/pkg/util/log"
283 )
284
285diff --git a/cmd/query-tee/main.go b/cmd/query-tee/main.go
286index 87bd657..6d6b083 100644
287--- a/cmd/query-tee/main.go
288+++ b/cmd/query-tee/main.go
289@@ -4,8 +4,9 @@ import (
290 "flag"
291 "os"
292
293- "github.com/go-kit/kit/log/level"
294+ "github.com/go-kit/log/level"
295 "github.com/prometheus/client_golang/prometheus"
296+ "github.com/prometheus/client_golang/prometheus/collectors"
297 "github.com/weaveworks/common/logging"
298 "github.com/weaveworks/common/server"
299
300@@ -35,7 +36,7 @@ func main() {
301
302 // Run the instrumentation server.
303 registry := prometheus.NewRegistry()
304- registry.MustRegister(prometheus.NewGoCollector())
305+ registry.MustRegister(collectors.NewGoCollector())
306
307 i := querytee.NewInstrumentationServer(cfg.ServerMetricsPort, registry)
308 if err := i.Start(); err != nil {
309diff --git a/cmd/test-exporter/main.go b/cmd/test-exporter/main.go
310index 5697ef1..0094e0f 100644
311--- a/cmd/test-exporter/main.go
312+++ b/cmd/test-exporter/main.go
313@@ -5,13 +5,13 @@ import (
314 "math"
315 "time"
316
317- "github.com/go-kit/kit/log/level"
318+ "github.com/go-kit/log/level"
319+ "github.com/grafana/dskit/flagext"
320 "github.com/prometheus/client_golang/prometheus"
321 "github.com/weaveworks/common/server"
322 "github.com/weaveworks/common/tracing"
323
324 "github.com/cortexproject/cortex/pkg/testexporter/correctness"
325- "github.com/cortexproject/cortex/pkg/util/flagext"
326 "github.com/cortexproject/cortex/pkg/util/log"
327 )
328
329diff --git a/docs/_index.md b/docs/_index.md
330index b97ef3a..a11bead 100644
331--- a/docs/_index.md
332+++ b/docs/_index.md
333@@ -36,6 +36,9 @@ should read:
334 1. [Getting started with Cortex](getting-started/_index.md)
335 1. [Information regarding configuring Cortex](configuration/_index.md)
336
337+There are also individual [guides](guides/_index.md) to many tasks.
338+Please review the important [security advice](guides/security.md) before deploying.
339+
340 For a guide to contributing to Cortex, see the [contributor guidelines](contributing/).
341
342 ## Further reading
343diff --git a/docs/architecture.md b/docs/architecture.md
344index 0bf04bb..f5925d4 100644
345--- a/docs/architecture.md
346+++ b/docs/architecture.md
347@@ -117,7 +117,7 @@ Cortex supports two hashing strategies:
348 1. Hash the metric name and tenant ID (default)
349 2. Hash the metric name, labels and tenant ID (enabled with `-distributor.shard-by-all-labels=true`)
350
351-The trade-off associated with the latter is that writes are more balanced across ingesters but each query needs to talk to any ingester since a metric could be spread across multiple ingesters given different label sets.
352+The trade-off associated with the latter is that writes are more balanced across ingesters but each query needs to talk to all ingesters since a metric could be spread across multiple ingesters given different label sets.
353
354 #### The hash ring
355
356diff --git a/docs/blocks-storage/compactor.md b/docs/blocks-storage/compactor.md
357index 2134058..ca30832 100644
358--- a/docs/blocks-storage/compactor.md
359+++ b/docs/blocks-storage/compactor.md
360@@ -209,12 +209,12 @@ compactor:
361 # CLI flag: -compactor.ring.multi.mirror-timeout
362 [mirror_timeout: <duration> | default = 2s]
363
364- # Period at which to heartbeat to the ring.
365+ # Period at which to heartbeat to the ring. 0 = disabled.
366 # CLI flag: -compactor.ring.heartbeat-period
367 [heartbeat_period: <duration> | default = 5s]
368
369 # The heartbeat timeout after which compactors are considered unhealthy
370- # within the ring.
371+ # within the ring. 0 = never (timeout disabled).
372 # CLI flag: -compactor.ring.heartbeat-timeout
373 [heartbeat_timeout: <duration> | default = 1m]
374
375@@ -230,4 +230,8 @@ compactor:
376 # Name of network interface to read address from.
377 # CLI flag: -compactor.ring.instance-interface-names
378 [instance_interface_names: <list of string> | default = [eth0 en0]]
379+
380+ # Timeout for waiting on compactor to become ACTIVE in the ring.
381+ # CLI flag: -compactor.ring.wait-active-instance-timeout
382+ [wait_active_instance_timeout: <duration> | default = 10m]
383 ```
384diff --git a/docs/blocks-storage/querier.md b/docs/blocks-storage/querier.md
385index a7080d4..9bfb2a4 100644
386--- a/docs/blocks-storage/querier.md
387+++ b/docs/blocks-storage/querier.md
388@@ -512,6 +512,11 @@ blocks_storage:
389 # CLI flag: -blocks-storage.bucket-store.index-cache.memcached.max-item-size
390 [max_item_size: <int> | default = 1048576]
391
392+ # Use memcached auto-discovery mechanism provided by some cloud provider
393+ # like GCP and AWS
394+ # CLI flag: -blocks-storage.bucket-store.index-cache.memcached.auto-discovery
395+ [auto_discovery: <boolean> | default = false]
396+
397 chunks_cache:
398 # Backend for chunks cache, if not empty. Supported values: memcached.
399 # CLI flag: -blocks-storage.bucket-store.chunks-cache.backend
400@@ -559,6 +564,11 @@ blocks_storage:
401 # CLI flag: -blocks-storage.bucket-store.chunks-cache.memcached.max-item-size
402 [max_item_size: <int> | default = 1048576]
403
404+ # Use memcached auto-discovery mechanism provided by some cloud provider
405+ # like GCP and AWS
406+ # CLI flag: -blocks-storage.bucket-store.chunks-cache.memcached.auto-discovery
407+ [auto_discovery: <boolean> | default = false]
408+
409 # Size of each subrange that bucket object is split into for better
410 # caching.
411 # CLI flag: -blocks-storage.bucket-store.chunks-cache.subrange-size
412@@ -625,6 +635,11 @@ blocks_storage:
413 # CLI flag: -blocks-storage.bucket-store.metadata-cache.memcached.max-item-size
414 [max_item_size: <int> | default = 1048576]
415
416+ # Use memcached auto-discovery mechanism provided by some cloud provider
417+ # like GCP and AWS
418+ # CLI flag: -blocks-storage.bucket-store.metadata-cache.memcached.auto-discovery
419+ [auto_discovery: <boolean> | default = false]
420+
421 # How long to cache list of tenants in the bucket.
422 # CLI flag: -blocks-storage.bucket-store.metadata-cache.tenants-list-ttl
423 [tenants_list_ttl: <duration> | default = 15m]
424diff --git a/docs/blocks-storage/store-gateway.md b/docs/blocks-storage/store-gateway.md
425index d24813b..d82fdcf 100644
426--- a/docs/blocks-storage/store-gateway.md
427+++ b/docs/blocks-storage/store-gateway.md
428@@ -232,13 +232,13 @@ store_gateway:
429 # CLI flag: -store-gateway.sharding-ring.multi.mirror-timeout
430 [mirror_timeout: <duration> | default = 2s]
431
432- # Period at which to heartbeat to the ring.
433+ # Period at which to heartbeat to the ring. 0 = disabled.
434 # CLI flag: -store-gateway.sharding-ring.heartbeat-period
435 [heartbeat_period: <duration> | default = 15s]
436
437 # The heartbeat timeout after which store gateways are considered unhealthy
438- # within the ring. This option needs be set both on the store-gateway and
439- # querier when running in microservices mode.
440+ # within the ring. 0 = never (timeout disabled). This option needs be set
441+ # both on the store-gateway and querier when running in microservices mode.
442 # CLI flag: -store-gateway.sharding-ring.heartbeat-timeout
443 [heartbeat_timeout: <duration> | default = 1m]
444
445@@ -576,6 +576,11 @@ blocks_storage:
446 # CLI flag: -blocks-storage.bucket-store.index-cache.memcached.max-item-size
447 [max_item_size: <int> | default = 1048576]
448
449+ # Use memcached auto-discovery mechanism provided by some cloud provider
450+ # like GCP and AWS
451+ # CLI flag: -blocks-storage.bucket-store.index-cache.memcached.auto-discovery
452+ [auto_discovery: <boolean> | default = false]
453+
454 chunks_cache:
455 # Backend for chunks cache, if not empty. Supported values: memcached.
456 # CLI flag: -blocks-storage.bucket-store.chunks-cache.backend
457@@ -623,6 +628,11 @@ blocks_storage:
458 # CLI flag: -blocks-storage.bucket-store.chunks-cache.memcached.max-item-size
459 [max_item_size: <int> | default = 1048576]
460
461+ # Use memcached auto-discovery mechanism provided by some cloud provider
462+ # like GCP and AWS
463+ # CLI flag: -blocks-storage.bucket-store.chunks-cache.memcached.auto-discovery
464+ [auto_discovery: <boolean> | default = false]
465+
466 # Size of each subrange that bucket object is split into for better
467 # caching.
468 # CLI flag: -blocks-storage.bucket-store.chunks-cache.subrange-size
469@@ -689,6 +699,11 @@ blocks_storage:
470 # CLI flag: -blocks-storage.bucket-store.metadata-cache.memcached.max-item-size
471 [max_item_size: <int> | default = 1048576]
472
473+ # Use memcached auto-discovery mechanism provided by some cloud provider
474+ # like GCP and AWS
475+ # CLI flag: -blocks-storage.bucket-store.metadata-cache.memcached.auto-discovery
476+ [auto_discovery: <boolean> | default = false]
477+
478 # How long to cache list of tenants in the bucket.
479 # CLI flag: -blocks-storage.bucket-store.metadata-cache.tenants-list-ttl
480 [tenants_list_ttl: <duration> | default = 15m]
481diff --git a/docs/chunks-storage/running-chunks-storage-with-cassandra.md b/docs/chunks-storage/running-chunks-storage-with-cassandra.md
482index b2aac69..b0971c3 100644
483--- a/docs/chunks-storage/running-chunks-storage-with-cassandra.md
484+++ b/docs/chunks-storage/running-chunks-storage-with-cassandra.md
485@@ -111,12 +111,12 @@ storage:
486 ```
487
488 The latest tag is not published for the Cortex docker image. Visit quay.io/repository/cortexproject/cortex
489-to find the latest stable version tag and use it in the command below (currently it is `v1.10.0`).
490+to find the latest stable version tag and use it in the command below (currently it is `v1.11.1`).
491
492 Run Cortex using the latest stable version:
493
494 ```
495-docker run -d --name=cortex -v $(pwd)/single-process-config.yaml:/etc/single-process-config.yaml -p 9009:9009 quay.io/cortexproject/cortex:v1.10.0 -config.file=/etc/single-process-config.yaml
496+docker run -d --name=cortex -v $(pwd)/single-process-config.yaml:/etc/single-process-config.yaml -p 9009:9009 quay.io/cortexproject/cortex:v1.11.1 -config.file=/etc/single-process-config.yaml
497 ```
498 In case you prefer to run the master version, please follow this [documentation](./chunks-storage-getting-started.md) on how to build Cortex from source.
499
500diff --git a/docs/configuration/arguments.md b/docs/configuration/arguments.md
501index 997399b..7fdd3b7 100644
502--- a/docs/configuration/arguments.md
503+++ b/docs/configuration/arguments.md
504@@ -142,6 +142,8 @@ The ingester query API was improved over time, but defaults to the old behaviour
505
506 **Upgrade notes**: As this flag also makes all queries always read from all ingesters, the upgrade path is pretty trivial; just enable the flag. When you do enable it, you'll see a spike in the number of active series as the writes are "reshuffled" amongst the ingesters, but over the next stale period all the old series will be flushed, and you should end up with much better load balancing. With this flag enabled in the queriers, reads will always catch all the data from all ingesters.
507
508+ **Warning**: disabling this flag can lead to a much less balanced distribution of load among the ingesters.
509+
510 - `-distributor.extra-query-delay`
511 This is used by a component with an embedded distributor (Querier and Ruler) to control how long to wait until sending more than the minimum amount of queries needed for a successful response.
512
513@@ -531,6 +533,8 @@ The DNS service discovery, inspired from Thanos DNS SD, supports different disco
514
515 If **no prefix** is provided, the provided IP or hostname will be used straightaway without pre-resolving it.
516
517+If you are using a managed memcached service from [Google Cloud](https://cloud.google.com/memorystore/docs/memcached/auto-discovery-overview), or [AWS](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/AutoDiscovery.HowAutoDiscoveryWorks.html), use the [auto-discovery](./config-file-reference.md#memcached-client-config) flag instead of DNS discovery, then use the discovery/configuration endpoint as the domain name without any prefix.
518+
519 ## Logging of IP of reverse proxy
520
521 If a reverse proxy is used in front of Cortex it might be diffult to troubleshoot errors. The following 3 settings can be used to log the IP address passed along by the reverse proxy in headers like X-Forwarded-For.
522diff --git a/docs/configuration/config-file-reference.md b/docs/configuration/config-file-reference.md
523index 801dc78..547ffdb 100644
524--- a/docs/configuration/config-file-reference.md
525+++ b/docs/configuration/config-file-reference.md
526@@ -268,6 +268,10 @@ query_scheduler:
527 The `server_config` configures the HTTP and gRPC server of the launched service(s).
528
529 ```yaml
530+# HTTP server listen network, default tcp
531+# CLI flag: -server.http-listen-network
532+[http_listen_network: <string> | default = "tcp"]
533+
534 # HTTP server listen address.
535 # CLI flag: -server.http-listen-address
536 [http_listen_address: <string> | default = ""]
537@@ -280,6 +284,10 @@ The `server_config` configures the HTTP and gRPC server of the launched service(
538 # CLI flag: -server.http-conn-limit
539 [http_listen_conn_limit: <int> | default = 0]
540
541+# gRPC server listen network
542+# CLI flag: -server.grpc-listen-network
543+[grpc_listen_network: <string> | default = "tcp"]
544+
545 # gRPC server listen address.
546 # CLI flag: -server.grpc-listen-address
547 [grpc_listen_address: <string> | default = ""]
548@@ -563,12 +571,12 @@ ring:
549 # CLI flag: -distributor.ring.multi.mirror-timeout
550 [mirror_timeout: <duration> | default = 2s]
551
552- # Period at which to heartbeat to the ring.
553+ # Period at which to heartbeat to the ring. 0 = disabled.
554 # CLI flag: -distributor.ring.heartbeat-period
555 [heartbeat_period: <duration> | default = 5s]
556
557 # The heartbeat timeout after which distributors are considered unhealthy
558- # within the ring.
559+ # within the ring. 0 = never (timeout disabled).
560 # CLI flag: -distributor.ring.heartbeat-timeout
561 [heartbeat_timeout: <duration> | default = 1m]
562
563@@ -662,6 +670,7 @@ lifecycler:
564 [mirror_timeout: <duration> | default = 2s]
565
566 # The heartbeat timeout after which ingesters are skipped for reads/writes.
567+ # 0 = never (timeout disabled).
568 # CLI flag: -ring.heartbeat-timeout
569 [heartbeat_timeout: <duration> | default = 1m]
570
571@@ -678,7 +687,7 @@ lifecycler:
572 # CLI flag: -ingester.num-tokens
573 [num_tokens: <int> | default = 128]
574
575- # Period at which to heartbeat to consul.
576+ # Period at which to heartbeat to consul. 0 = disabled.
577 # CLI flag: -ingester.heartbeat-period
578 [heartbeat_period: <duration> | default = 5s]
579
580@@ -1580,12 +1589,12 @@ ring:
581 # CLI flag: -ruler.ring.multi.mirror-timeout
582 [mirror_timeout: <duration> | default = 2s]
583
584- # Period at which to heartbeat to the ring.
585+ # Period at which to heartbeat to the ring. 0 = disabled.
586 # CLI flag: -ruler.ring.heartbeat-period
587 [heartbeat_period: <duration> | default = 5s]
588
589 # The heartbeat timeout after which rulers are considered unhealthy within the
590- # ring.
591+ # ring. 0 = never (timeout disabled).
592 # CLI flag: -ruler.ring.heartbeat-timeout
593 [heartbeat_timeout: <duration> | default = 1m]
594
595@@ -1616,6 +1625,11 @@ ring:
596 # processing will ignore them instead. Subject to sharding.
597 # CLI flag: -ruler.disabled-tenants
598 [disabled_tenants: <string> | default = ""]
599+
600+# Report the wall time for ruler queries to complete as a per user metric and as
601+# an info level log message.
602+# CLI flag: -ruler.query-stats-enabled
603+[query_stats_enabled: <boolean> | default = false]
604 ```
605
606 ### `ruler_storage_config`
607@@ -1901,12 +1915,12 @@ sharding_ring:
608 # CLI flag: -alertmanager.sharding-ring.multi.mirror-timeout
609 [mirror_timeout: <duration> | default = 2s]
610
611- # Period at which to heartbeat to the ring.
612+ # Period at which to heartbeat to the ring. 0 = disabled.
613 # CLI flag: -alertmanager.sharding-ring.heartbeat-period
614 [heartbeat_period: <duration> | default = 15s]
615
616 # The heartbeat timeout after which alertmanagers are considered unhealthy
617- # within the ring.
618+ # within the ring. 0 = never (timeout disabled).
619 # CLI flag: -alertmanager.sharding-ring.heartbeat-timeout
620 [heartbeat_timeout: <duration> | default = 1m]
621
622@@ -3761,40 +3775,42 @@ The `memberlist_config` configures the Gossip memberlist.
623 [randomize_node_name: <boolean> | default = true]
624
625 # The timeout for establishing a connection with a remote node, and for
626-# read/write operations. Uses memberlist LAN defaults if 0.
627+# read/write operations.
628 # CLI flag: -memberlist.stream-timeout
629-[stream_timeout: <duration> | default = 0s]
630+[stream_timeout: <duration> | default = 10s]
631
632 # Multiplication factor used when sending out messages (factor * log(N+1)).
633 # CLI flag: -memberlist.retransmit-factor
634-[retransmit_factor: <int> | default = 0]
635+[retransmit_factor: <int> | default = 4]
636
637-# How often to use pull/push sync. Uses memberlist LAN defaults if 0.
638+# How often to use pull/push sync.
639 # CLI flag: -memberlist.pullpush-interval
640-[pull_push_interval: <duration> | default = 0s]
641+[pull_push_interval: <duration> | default = 30s]
642
643-# How often to gossip. Uses memberlist LAN defaults if 0.
644+# How often to gossip.
645 # CLI flag: -memberlist.gossip-interval
646-[gossip_interval: <duration> | default = 0s]
647+[gossip_interval: <duration> | default = 200ms]
648
649-# How many nodes to gossip to. Uses memberlist LAN defaults if 0.
650+# How many nodes to gossip to.
651 # CLI flag: -memberlist.gossip-nodes
652-[gossip_nodes: <int> | default = 0]
653+[gossip_nodes: <int> | default = 3]
654
655 # How long to keep gossiping to dead nodes, to give them chance to refute their
656-# death. Uses memberlist LAN defaults if 0.
657+# death.
658 # CLI flag: -memberlist.gossip-to-dead-nodes-time
659-[gossip_to_dead_nodes_time: <duration> | default = 0s]
660+[gossip_to_dead_nodes_time: <duration> | default = 30s]
661
662-# How soon can dead node's name be reclaimed with new address. Defaults to 0,
663-# which is disabled.
664+# How soon can dead node's name be reclaimed with new address. 0 to disable.
665 # CLI flag: -memberlist.dead-node-reclaim-time
666 [dead_node_reclaim_time: <duration> | default = 0s]
667
668+# Enable message compression. This can be used to reduce bandwidth usage at the
669+# cost of slightly more CPU utilization.
670+# CLI flag: -memberlist.compression-enabled
671+[compression_enabled: <boolean> | default = true]
672+
673 # Other cluster members to join. Can be specified multiple times. It can be an
674-# IP, hostname or an entry specified in the DNS Service Discovery format (see
675-# https://cortexmetrics.io/docs/configuration/arguments/#dns-service-discovery
676-# for more details).
677+# IP, hostname or an entry specified in the DNS Service Discovery format.
678 # CLI flag: -memberlist.join
679 [join_members: <list of string> | default = []]
680
681@@ -4043,11 +4059,9 @@ The `limits_config` configures default and per-tenant limits imposed by Cortex s
682 [max_chunks_per_query: <int> | default = 2000000]
683
684 # Maximum number of chunks that can be fetched in a single query from ingesters
685-# and long-term storage: the total number of actual fetched chunks could be 2x
686-# the limit, being independently applied when querying ingesters and long-term
687-# storage. This limit is enforced in the ingester (if chunks streaming is
688-# enabled), querier, ruler and store-gateway. Takes precedence over the
689-# deprecated -store.query-chunk-limit. 0 to disable.
690+# and long-term storage. This limit is enforced in the querier, ruler and
691+# store-gateway. Takes precedence over the deprecated -store.query-chunk-limit.
692+# 0 to disable.
693 # CLI flag: -querier.max-fetched-chunks-per-query
694 [max_fetched_chunks_per_query: <int> | default = 0]
695
696@@ -4169,7 +4183,7 @@ The `limits_config` configures default and per-tenant limits imposed by Cortex s
697 # is given in JSON format. Rate limit has the same meaning as
698 # -alertmanager.notification-rate-limit, but only applies for specific
699 # integration. Allowed integration names: webhook, email, pagerduty, opsgenie,
700-# wechat, slack, victorops, pushover.
701+# wechat, slack, victorops, pushover, sns.
702 # CLI flag: -alertmanager.notification-rate-limit-per-integration
703 [alertmanager_notification_rate_limit_per_integration: <map of string to float64> | default = {}]
704
705@@ -4751,6 +4765,11 @@ bucket_store:
706 # CLI flag: -blocks-storage.bucket-store.index-cache.memcached.max-item-size
707 [max_item_size: <int> | default = 1048576]
708
709+ # Use memcached auto-discovery mechanism provided by some cloud provider
710+ # like GCP and AWS
711+ # CLI flag: -blocks-storage.bucket-store.index-cache.memcached.auto-discovery
712+ [auto_discovery: <boolean> | default = false]
713+
714 chunks_cache:
715 # Backend for chunks cache, if not empty. Supported values: memcached.
716 # CLI flag: -blocks-storage.bucket-store.chunks-cache.backend
717@@ -4798,6 +4817,11 @@ bucket_store:
718 # CLI flag: -blocks-storage.bucket-store.chunks-cache.memcached.max-item-size
719 [max_item_size: <int> | default = 1048576]
720
721+ # Use memcached auto-discovery mechanism provided by some cloud provider
722+ # like GCP and AWS
723+ # CLI flag: -blocks-storage.bucket-store.chunks-cache.memcached.auto-discovery
724+ [auto_discovery: <boolean> | default = false]
725+
726 # Size of each subrange that bucket object is split into for better caching.
727 # CLI flag: -blocks-storage.bucket-store.chunks-cache.subrange-size
728 [subrange_size: <int> | default = 16000]
729@@ -4863,6 +4887,11 @@ bucket_store:
730 # CLI flag: -blocks-storage.bucket-store.metadata-cache.memcached.max-item-size
731 [max_item_size: <int> | default = 1048576]
732
733+ # Use memcached auto-discovery mechanism provided by some cloud provider
734+ # like GCP and AWS
735+ # CLI flag: -blocks-storage.bucket-store.metadata-cache.memcached.auto-discovery
736+ [auto_discovery: <boolean> | default = false]
737+
738 # How long to cache list of tenants in the bucket.
739 # CLI flag: -blocks-storage.bucket-store.metadata-cache.tenants-list-ttl
740 [tenants_list_ttl: <duration> | default = 15m]
741@@ -5176,12 +5205,12 @@ sharding_ring:
742 # CLI flag: -compactor.ring.multi.mirror-timeout
743 [mirror_timeout: <duration> | default = 2s]
744
745- # Period at which to heartbeat to the ring.
746+ # Period at which to heartbeat to the ring. 0 = disabled.
747 # CLI flag: -compactor.ring.heartbeat-period
748 [heartbeat_period: <duration> | default = 5s]
749
750 # The heartbeat timeout after which compactors are considered unhealthy within
751- # the ring.
752+ # the ring. 0 = never (timeout disabled).
753 # CLI flag: -compactor.ring.heartbeat-timeout
754 [heartbeat_timeout: <duration> | default = 1m]
755
756@@ -5197,6 +5226,10 @@ sharding_ring:
757 # Name of network interface to read address from.
758 # CLI flag: -compactor.ring.instance-interface-names
759 [instance_interface_names: <list of string> | default = [eth0 en0]]
760+
761+ # Timeout for waiting on compactor to become ACTIVE in the ring.
762+ # CLI flag: -compactor.ring.wait-active-instance-timeout
763+ [wait_active_instance_timeout: <duration> | default = 10m]
764 ```
765
766 ### `store_gateway_config`
767@@ -5250,13 +5283,13 @@ sharding_ring:
768 # CLI flag: -store-gateway.sharding-ring.multi.mirror-timeout
769 [mirror_timeout: <duration> | default = 2s]
770
771- # Period at which to heartbeat to the ring.
772+ # Period at which to heartbeat to the ring. 0 = disabled.
773 # CLI flag: -store-gateway.sharding-ring.heartbeat-period
774 [heartbeat_period: <duration> | default = 15s]
775
776 # The heartbeat timeout after which store gateways are considered unhealthy
777- # within the ring. This option needs be set both on the store-gateway and
778- # querier when running in microservices mode.
779+ # within the ring. 0 = never (timeout disabled). This option needs be set both
780+ # on the store-gateway and querier when running in microservices mode.
781 # CLI flag: -store-gateway.sharding-ring.heartbeat-timeout
782 [heartbeat_timeout: <duration> | default = 1m]
783
784diff --git a/docs/configuration/v1-guarantees.md b/docs/configuration/v1-guarantees.md
785index 8c87104..3af5dd4 100644
786--- a/docs/configuration/v1-guarantees.md
787+++ b/docs/configuration/v1-guarantees.md
788@@ -81,3 +81,17 @@ Currently experimental features are:
789 - user config size (`-alertmanager.max-config-size-bytes`)
790 - templates count in user config (`-alertmanager.max-templates-count`)
791 - max template size (`-alertmanager.max-template-size-bytes`)
792+- Disabling ring heartbeat timeouts
793+ - `-distributor.ring.heartbeat-timeout=0`
794+ - `-ring.heartbeat-timeout=0`
795+ - `-ruler.ring.heartbeat-timeout=0`
796+ - `-alertmanager.sharding-ring.heartbeat-timeout=0`
797+ - `-compactor.ring.heartbeat-timeout=0`
798+ - `-store-gateway.sharding-ring.heartbeat-timeout=0`
799+- Disabling ring heartbeats
800+ - `-distributor.ring.heartbeat-period=0`
801+ - `-ingester.heartbeat-period=0`
802+ - `-ruler.ring.heartbeat-period=0`
803+ - `-alertmanager.sharding-ring.heartbeat-period=0`
804+ - `-compactor.ring.heartbeat-period=0`
805+ - `-store-gateway.sharding-ring.heartbeat-period=0`
806diff --git a/docs/contributing/how-to-add-a-maintainer.md b/docs/contributing/how-to-add-a-maintainer.md
807index 0bc9407..d428bcd 100644
808--- a/docs/contributing/how-to-add-a-maintainer.md
809+++ b/docs/contributing/how-to-add-a-maintainer.md
810@@ -5,7 +5,7 @@ weight: 10
811 slug: how-to-add-a-maintainer
812 ---
813
814-New maintainers are proposed by an existing maintainer and are elected by [majority vote](./_index.md#changes-in-maintainership). Once the vote passed, the following steps should be done to add a new member to the maintainers team:
815+New maintainers are proposed by an existing maintainer and are elected by [majority vote](./governance.md#voting). Once the vote passed, the following steps should be done to add a new member to the maintainers team:
816
817 1. Submit a PR to add the new member to `MAINTAINERS`
818 2. Invite to [GitHub organization](https://github.com/orgs/cortexproject/people)
819diff --git a/docs/contributing/how-to-upgrade-golang-version.md b/docs/contributing/how-to-upgrade-golang-version.md
820index f1c630d..9c700d5 100644
821--- a/docs/contributing/how-to-upgrade-golang-version.md
822+++ b/docs/contributing/how-to-upgrade-golang-version.md
823@@ -14,6 +14,7 @@ To upgrade the Golang version:
824 - Update the Docker image tag in `.github/workflows/*`
825 2. Upgrade integration tests version
826 - Update the Golang version installed in the `integration` job in `.github/workflows/*`
827+3. Upgrade the reference to the latest build image called `LATEST_BUILD_IMAGE_TAG` in `Makefile`
828
829 If the minimum support Golang version should be upgraded as well:
830
831diff --git a/docs/guides/authentication-and-authorisation.md b/docs/guides/authentication-and-authorisation.md
832index 423a7db..7a742b8 100644
833--- a/docs/guides/authentication-and-authorisation.md
834+++ b/docs/guides/authentication-and-authorisation.md
835@@ -15,12 +15,19 @@ of protection.
836 Typically this means you run Cortex behind a reverse proxy, and you must
837 ensure that all callers, both machines sending data over the `remote_write`
838 interface and humans sending queries from GUIs, supply credentials
839-which identify them and confirm they are authorised.
840-
841-When configuring the `remote_write` API in Prometheus there is no way to
842-add extra headers. The user and password fields of http Basic auth, or
843-Bearer token, can be used to convey the tenant ID and/or credentials.
844-See the **Cortex-Tenant** section below for one way to solve this.
845+which identify them and confirm they are authorised. When configuring the
846+`remote_write` API in Prometheus, the user and password fields of http Basic
847+auth, or Bearer token, can be used to convey the tenant ID and/or credentials.
848+See the [Cortex-Tenant](#cortex-tenant) section below for one way to solve this.
849+
850+In trusted environments, Prometheus can send the `X-Scope-OrgID` header itself
851+by configuring the `headers` field in its [`remote_write` configuration](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#remote_write):
852+```
853+remote_write:
854+ - url: http://<cortex>/prometheus/api/v1/push
855+ headers:
856+ X-Scope-OrgID: <org>
857+```
858
859 To disable the multi-tenant functionality, you can pass the argument
860 `-auth.enabled=false` to every Cortex component, which will set the OrgID
861diff --git a/docs/guides/security.md b/docs/guides/security.md
862new file mode 100644
863index 0000000..9659271
864--- /dev/null
865+++ b/docs/guides/security.md
866@@ -0,0 +1,12 @@
867+---
868+title: "Security"
869+linkTitle: "Security"
870+weight: 10
871+slug: security
872+---
873+
874+Cortex must be deployed with due care over system configuration, using principles such as "least privilege" to limit any exposure due to flaws in the source code.
875+
876+You must configure authorisation and authentication externally to Cortex; see [this guide](./authentication-and-authorisation.md)
877+
878+Information about security disclosures and mailing lists is [in the main repo](https://github.com/cortexproject/cortex/blob/master/SECURITY.md)
879diff --git a/docs/guides/zone-replication.md b/docs/guides/zone-replication.md
880index 56abf3a..a2254d3 100644
881--- a/docs/guides/zone-replication.md
882+++ b/docs/guides/zone-replication.md
883@@ -30,7 +30,7 @@ The Cortex time-series replication is used to hold multiple (typically 3) replic
884
885 The `-distributor.shard-by-all-labels` setting has an impact on read availability. When enabled, a metric is sharded across all ingesters and querier needs to fetch series from all ingesters while, when disabled, a metric is sharded only across `<replication factor>` ingesters.
886
887-In the event of a large outage impacting ingesters in more than 1 zone, when `-distributor.shard-by-all-labels=true` all queries will fail, while when disabled some queries may still succeed if the ingesters holding the required metric are not impacted by the outage.
888+In the event of a large outage impacting ingesters in more than 1 zone, when `-distributor.shard-by-all-labels=true` all queries will fail, while when disabled some queries may still succeed if the ingesters holding the required metric are not impacted by the outage. To learn more about this flag, please refer to [distributor arguments](../configuration/arguments.md#distributor).
889
890 ## Store-gateways: blocks replication
891
892diff --git a/docs/proposals/block-storage-time-series-deletion.md b/docs/proposals/block-storage-time-series-deletion.md
893new file mode 100644
894index 0000000..20d7a34
895--- /dev/null
896+++ b/docs/proposals/block-storage-time-series-deletion.md
897@@ -0,0 +1,255 @@
898+---
899+title: "Time Series Deletion from Blocks Storage"
900+linkTitle: "Time Series Deletion from Blocks Storage"
901+weight: 1
902+slug: block-storage-time-series-deletion
903+---
904+
905+- Author: [Ilan Gofman](https://github.com/ilangofman)
906+- Date: June 2021
907+- Status: Proposal
908+
909+## Problem
910+
911+Currently, Cortex only implements a time series deletion API for chunk storage. We present a design for implementing time series deletion with block storage. We would like to have the same API for deleting series as currently implemented in Prometheus and in Cortex with chunk storage.
912+
913+
914+This can be very important for users to have as confidential or accidental data might have been incorrectly pushed and needs to be removed. As well as potentially removing high cardinality data that is causing inefficient queries.
915+
916+## Related works
917+
918+As previously mentioned, the deletion feature is already implemented with chunk storage. The main functionality is implemented through the purger service. It accepts requests for deletion and processes them. At first, when a deletion request is made, a tombstone is created. This is used to filter out the data for queries. After some time, a deletion plan is executed where the data is permanently removed from chunk storage.
919+
920+Can find more info here:
921+
922+- [Cortex documentation for chunk store deletion](https://cortexmetrics.io/docs/guides/deleting-series/)
923+- [Chunk deletion proposal](https://docs.google.com/document/d/1PeKwP3aGo3xVrR-2qJdoFdzTJxT8FcAbLm2ew_6UQyQ/edit)
924+
925+
926+
927+## Background on current storage
928+
929+With a block-storage configuration, Cortex stores data that could be potentially deleted by a user in:
930+
931+- Object store (GCS, S3, etc..) for long term storage of blocks
932+- Ingesters for more recent data that should be eventually transferred to the object store
933+- Cache
934+ - Index cache
935+ - Metadata cache
936+ - Chunks cache (stores the potentially to be deleted data)
937+ - Query results cache (stores the potentially to be deleted data)
938+- Compactor during the compaction process
939+- Store-gateway
940+
941+
942+## Proposal
943+
944+The deletion will not happen right away. Initially, the data will be filtered out from queries using tombstones and will be deleted afterward. This will allow the user some time to cancel the delete request.
945+
946+### API Endpoints
947+
948+The existing purger service will be used to process the incoming requests for deletion. The API will follow the same structure as the chunk storage endpoints for deletion, which is also based on the Prometheus deletion API.
949+
950+This will enable the following endpoints for Cortex when using block storage:
951+
952+`POST /api/v1/admin/tsdb/delete_series` - Accepts [Prometheus style delete request](https://prometheus.io/docs/prometheus/latest/querying/api/#delete-series) for deleting series.
953+
954+Parameters:
955+
956+- `start=<rfc3339 | unix_timestamp>`
957+ - Optional. If not provided, will be set to minimum possible time.
958+- `end=<rfc3339 | unix_timestamp> `
959+ - Optional. If not provided, will be set to maximum possible time (time when request was made). End time cannot be greater than the current UTC time.
960+- `match[]=<series_selector>`
961+ - Cannot be empty, must contain at least one label matcher argument.
962+
963+
964+`POST /api/v1/admin/tsdb/cancel_delete_request` - To cancel a request if it has not been processed yet for permanent deletion. This can only be done before the `-purger.delete-request-cancel-period` has passed.
965+Parameters:
966+
967+- `request_id`
968+
969+`GET /api/v1/admin/tsdb/delete_series` - Get all delete requests id’s and their current status.
970+
971+Prometheus also implements a [clean_tombstones](https://prometheus.io/docs/prometheus/latest/querying/api/#clean-tombstones) API which is not included in this proposal. The tombstones will be deleted automatically once the permanent deletion has taken place which is described in the section below. By default, this should take approximately 24 hours.
972+
973+### Deletion Lifecycle
974+
975+The deletion request lifecycle can follow these 3 states:
976+
977+1. Pending - Tombstone file is created. During this state, the queriers will be performing query time filtering. The initial time period configured by `-purger.delete-request-cancel-period`, no data will be deleted. Once this period is over, permanent deletion processing will begin and the request is no longer cancellable.
978+2. Processed - All requested data has been deleted. Initially, will still need to do query time filtering while waiting for the bucket index and store-gateway to pick up the new blocks. Once that period has passed, will no longer require any query time filtering.
979+3. Deleted - The deletion request was cancelled. A grace period configured by `-purger.delete-request-cancel-period` will allow the user some time to cancel the deletion request if it was made by mistake. The request is no longer cancelable after this period has passed.
980+
981+
982+
983+### Filtering data during queries while not yet deleted:
984+
985+Once a deletion request is received, a tombstone entry will be created. The object store such as S3, GCS, Azure storage, can be used to store all the deletion requests. See the section below for more detail on how the tombstones will be stored. Using the tombstones, the querier will be able to filter the to-be-deleted data initially. If a cancel delete request is made, then the tombstone file will be deleted. In addition, the existing cache will be invalidated using cache generation numbers, which are described in the later sections.
986+
987+The compactor's _BlocksCleaner_ service will scan for new tombstone files and will update the bucket-index with the tombstone information regarding the deletion requests. This will enable the querier to periodically check the bucket index if there are any new tombstone files that are required to be used for filtering. One drawback of this approach is the time it could take to start filtering the data. Since the compactor will update the bucket index with the new tombstones every `-compactor.cleanup-interval` (default 15 min). Then the cached bucket index is refreshed in the querier every `-blocks-storage.bucket-store.sync-interval` (default 15 min). Potentially could take almost 30 min for queriers to start filtering deleted data when using the default values. If the information requested for deletion is confidential/classified, the time delay is something that the user should be aware of, in addition to the time that the data has already been in Cortex.
988+
989+An additional thing to consider is that this would mean that the bucket-index would have to be enabled for this API to work. Since the plan is to make to the bucket-index mandatory in the future for block storage, this shouldn't be an issue.
990+
991+Similar to the chunk storage deletion implementation, the initial filtering of the deleted data will be done inside the Querier. This will allow filtering the data read from both the store gateway and the ingester. This functionality already exists for the chunk storage implementation. By implementing it in the querier, this would mean that the ruler will be supported too (ruler internally runs the querier).
992+
993+#### Storing tombstones in object store
994+
995+
996+The Purger will write the new tombstone entries in a separate folder called `tombstones` in the object store (e.g. S3 bucket) in the respective tenant folder. Each tombstone can have a separate JSON file outlining all the necessary information about the deletion request such as the parameters passed in the request, as well as some meta-data such as the creation date of the file. The name of the file can be a hash of the API parameters (start, end, markers). This way if a user calls the API twice by accident with the same parameters, it will only create one tombstone. To keep track of the request state, filename extensions can be used. This will allow the tombstone files to be immutable. The 3 different file extensions will be `pending, processed, deleted`. Each time the deletion request moves to a new state, a new file will be added with the same deletion information but a different extension to indicate the new state. The file containing the previous state will be deleted once the new one is created. If a deletion request is cancelled, then a tombstone file with the `.deleted` filename extension will be created.
997+
998+When it is determined that the request should move to the next state, then it will first write a new file containing the tombstone information to the object store. The information inside the file will be the same except the `stateCreationTime`, which is replaced with the current timestamp. The extension of the new file will be different to reflect the new state. If the new file is successfully written, the file with the previous state is deleted. If the write of the new file fails, then the previous file is not going to be deleted. Next time the service runs to check the state of each tombstone, it will retry creating the new file with the updated state. If the write is successful but the deletion of the old file is unsuccessful then there will be 2 tombstone files with the same filename but different extension. When `BlocksCleaner` writes the tombstones to the bucket index, the compactor will check for duplicate tombstone files but with different extensions. It will use the tombstone with the most recently updated state and try to delete the file with the older state. There could be a scenario where there are two files with the same request ID but different extensions: {`.pending`, `.processed`} or {`.pending`, `.deleted`}. In this case, the `.processed` or `.deleted ` file will be selected as it is always the later state compared to the `pending` state.
999+
1000+The tombstone will be stored in a single JSON file per request and state:
1001+
1002+- `/<tenantId>/tombstones/<request_id>.json.<state>`
1003+
1004+
1005+The schema of the JSON file is:
1006+
1007+
1008+```
1009+{
1010+ "requestId": <string>,
1011+ "startTime": <int>,
1012+ "endTime": <int>,
1013+ "requestCreationTime": <int>,
1014+ "stateCreationTime": <int>,
1015+ "matchers": [
1016+ "<string matcher 1>",
1017+ ..,
1018+ "<string matcher n>"
1019+ ]
1020+ },
1021+ "userID": <string>,
1022+}
1023+```
1024+
1025+
1026+Pros:
1027+- Allows deletion and un-delete to be done in a single operation.
1028+
1029+Cons:
1030+
1031+- Negative impact on query performance when there are active tombstones. As in the chunk storage implementation, all the series will have to be compared to the matchers contained in the active tombstone files. The impact on performance should be the same as the deletion would have with chunk storage.
1032+
1033+- With the default config, potential 30 minute wait for the data to begin filtering if using the default configuration.
1034+
1035+#### Invalidating cache
1036+
1037+Using block store, the different caches available are:
1038+- Index cache
1039+- Metadata cache
1040+- Chunks cache (stores the potentially to be deleted chunks of data)
1041+- Query results cache (stores the potentially to be deleted data)
1042+
1043+There are two potential caches that could contain deleted data, the chunks cache, and the query results cache. Using the tombstones, the queriers filter out the data received from the ingesters and store-gateway. The cache not being processed through the querier needs to be invalidated to prevent deleted data from coming up in queries.
1044+
1045+Firstly, the query results cache needs to be invalidated for each new delete request or a cancellation of one. This can be accomplished by utilizing cache generation numbers. For each tenant, their cache is prefixed with a cache generation number. When the query front-end discovers a cache generation number that is greater than the previous generation number, then it knows to invalidate the query results cache. However, the cache can only be invalidated once the queriers have loaded the tombstones from the bucket index and have begun filtering the data. Otherwise, to-be deleted data might show up in queries and be cached again. One of the way to guarantee that all the queriers are using the new tombstones is to wait until the bucket index staleness period has passed from the time the tombstones have been written to the bucket index. The staleness period can be configured using the following flag: `-blocks-storage.bucket-store.bucket-index.max-stale-period`. We can use the bucket index staleness period as the delay to wait before the cache generation number is increased. A query will fail inside the querier, if the bucket index last update is older the staleness period. Once this period is over, all the queriers should have the updated tombstones and the query results cache can be invalidated. Here is the proposed method for accomplishing this:
1046+
1047+
1048+- The cache generation number will be a timestamp. The default value will be 0.
1049+- The bucket index will store the cache generation number. The query front-end will periodically fetch the bucket index.
1050+- Inside the compactor, the _BlocksCleaner_ will load the tombstones from object store and update the bucket index accordingly. It will calculate the cache generation number by iterating through all the tombstones and their respective times (next bullet point) and selecting the maximum timestamp that is less than (current time minus `-blocks-storage.bucket-store.bucket-index.max-stale-period`). This would mean that if a deletion request is made or cancelled, the compactor will only update the cache generation number once the staleness period is over, ensuring that all queriers have the updated tombstones.
1051+- For requests in a pending or processed state, the `requestCreationTime` will be used when comparing the maximum timestamps. If a request is in a deleted state, it will use the `stateCreationTime` for comparing the timestamps. This means that the cache gets invalidated only once it has been created or deleted, and the bucket index staleness period has passed. The cache will not be invalidated again when a request advances from pending to processed state.
1052+- The query front-end will fetch the cache generation number from the bucket index. The query front end will compare it to the current cache generation number stored in the front-end. If the cache generation number from the front-end is less than the one from bucket index, then the cache is invalidated.
1053+
1054+In regards to the chunks cache, since it is retrieved from the store gateway and passed to the querier, it will be filtered out like the rest of the time series data in the querier using the tombstones, with the mechanism described in the previous section.
1055+
1056+### Permanently deleting the data
1057+
1058+The proposed approach is to perform the deletions from the compactor. A new background service inside the compactor called _DeletedSeriesCleaner_ can be created and is responsible for executing the deletion.
1059+
1060+#### Processing
1061+
1062+
1063+This will happen after a grace period has passed once the API request has been made. By default this should be 24 hours. A background task can be created to process the permanent deletion of time series. This background task can be executed each hour.
1064+
1065+To delete the data from the blocks, the same logic as the [Bucket Rewrite Tool](https://thanos.io/tip/components/tools.md/#bucket-rewrite
1066+) from Thanos can be leveraged. This tool does the following: `tools bucket rewrite rewrites chosen blocks in the bucket, while deleting or modifying series`. The tool itself is a CLI tool that we won’t be using, but instead we can utilize the logic inside it. For more information about the way this tool runs, please see the code [here](https://github.com/thanos-io/thanos/blob/d8b21e708bee6d19f46ca32b158b0509ca9b7fed/cmd/thanos/tools_bucket.go#L809).
1067+
1068+The compactor’s _DeletedSeriesCleaner_ will apply this logic on individual blocks and each time it is run, it creates a new block without the data that matched the deletion request. The original individual blocks containing the data that was requested to be deleted, need to be marked for deletion by the compactor.
1069+
1070+While deleting the data permanently from the block storage, the `meta.json` files will be used to keep track of the deletion progress. Inside each `meta.json` file, we will add a new field called `tombstonesFiltered`. This will store an array of deletion request id's that were used to create this block. Once the rewrite logic is applied to a block, the new block's `meta.json` file will append the deletion request id(s) used for the rewrite operation inside this field. This will let the _DeletedSeriesCleaner_ know that this block has already processed the particular deletions requests listed in this field. Assuming that the deletion requests are quite rare, the size of the meta.json files should remain small.
1071+
1072+The _DeletedSeriesCleaner_ can iterate through all the blocks that the deletion request could apply to. For each of these blocks, if the deletion request ID isn't inside the meta.json `tombstonesFiltered` field, then the compactor can apply the rewrite logic to this block. If there are multiple tombstones that are currently being processing for deletions and apply to a particular block, then the _DeletedSeriesCleaner_ will process both at the same time to prevent additional blocks from being created. If after iterating through all the blocks, it doesn’t find any such blocks requiring deletion, then the `Pending` state is complete and the request progresses to the `Processed` state.
1073+
1074+One important thing to note regarding this rewrite tool is that it should not be used at the same time as when another compactor is touching a block. If the tool is run at the same time as compaction on a particular block, it can cause overlap and the data marked for deletion can already be part of the compacted block. To mitigate such issues, these are some of the proposed solutions:
1075+
1076+Option 1: Only apply the deletion once the blocks are in the final state of compaction.
1077+
1078+Pros:
1079+- Simpler implementation as everything is contained within the DeletedSeriesCleaner.
1080+
1081+Cons:
1082+- Might have to wait for a longer period of time for the compaction to be finished.
1083+ - This would mean the earliest time to be able to run the deletion would be once the last time from the block_ranges in the [compactor_config](https://cortexmetrics.io/docs/blocks-storage/compactor/#compactor-configuration) has passed. By default this value is 24 hours, so only once 24 hours have passed and the new compacted blocks have been created, then the rewrite can be safely run.
1084+
1085+
1086+
1087+
1088+Option 2: For blocks that still need to be compacted further after the deletion request cancel period is over, the deletion logic can be applied before the blocks are compacted. This will generate a new block which can then be used instead for compaction with other blocks.
1089+
1090+Pros:
1091+- The deletion can be applied earlier than the previous options.
1092+ - Only applies if the deletion request cancel period is less than the last time interval for compaction is.
1093+Cons:
1094+- Added coupling between the compaction and the DeletedSeriesCleaner.
1095+- Might block compaction for a short time while doing the deletion.
1096+
1097+
1098+
1099+Once all the applicable blocks have been rewritten without the deleted data, the deletion request state moves to the `Processed` state. Once in this state, the queriers will still have to perform query time filtering using the tombstones until the old blocks that were marked for deletion are no longer queried by the queriers. This will mean that the query time filtering will last for an additional length of `-compactor.deletion-delay + -compactor.cleanup-interval + -blocks-storage.bucket-store.sync-interval` in the `Processed` state. Once that time period has passed, the queriers should no longer be querying any of the old blocks that were marked for deletion. The tombstone will no longer be used after this.
1100+
1101+
1102+#### Cancelled Delete Requests
1103+
1104+If a request was successfully cancelled, then a tombstone file a `.deleted` extension is created. This is done to help ensure that the cache generation number is updated and the query results cache is invalidated. The compactor's blocks cleaner can take care of cleaning up `.deleted` tombstones after a period of time of when they are no longer required for cache invalidation. This can be done after 10 times the bucket index max staleness time period has passed. Before removing the file from the object store, the current cache generation number must greater than or equal to when the tombstone was cancelled.
1105+
1106+#### Handling failed/unfinished delete jobs:
1107+
1108+Deletions will be completed and the tombstones will be deleted only when the DeletedSeriesCleaner iterates over all blocks that match the time interval and confirms that they have been re-written without the deleted data. Otherwise, it will keep iterating over the blocks and process the blocks that haven't been rewritten according to the information in the `meta.json` file. In case of any failure that causes the deletion to stop, any unfinished deletions will be resumed once the service is restarted. If the block rewrite was not completed on a particular block, then the original block will not be marked for deletion. The compactor will continue to iterate over the blocks and process the block again.
1109+
1110+
1111+#### Tenant Deletion API
1112+
1113+If a request is made to delete a tenant, then all the tombstones will be deleted for that user.
1114+
1115+
1116+## Current Open Questions:
1117+
1118+- If the start and end time is very far apart, it might result in a lot of the data being re-written. Since we create a new block without the deleted data and mark the old one for deletion, there may be a period of time with lots of extra blocks and space used for large deletion queries.
1119+- There will be a delay between the deletion request and the deleted data being filtered during queries.
1120+ - In Prometheus, there is no delay.
1121+ - One way to filter out immediately is to load the tombstones during query time but this will cause a negative performance impact.
1122+- Adding limits to the API such as:
1123+ - Max number of deletion requests allowed in the last 24 hours for a given tenent.
1124+ - Max number of pending tombstones for a given tenant.
1125+
1126+
1127+## Alternatives Considered
1128+
1129+
1130+#### Adding a Pre-processing State
1131+
1132+The process of permanently deleting the data can be separated into 2 stages, preprocessing and processing.
1133+
1134+Pre-processing will begin after the `-purger.delete-request-cancel-period` has passed since the API request has been made. The deletion request will move to a new state called `BuildingPlan`. The compactor will outline all the blocks that may contain data to be deleted. For each separate block that the deletion may be applicable to, the compactor will begin the process by adding a series deletion marker inside the series-deletion-marker.json file. The JSON file will contain an array of deletion request id's that need to be applied to the block, which allows the ability to handle the situation when there are multiple tombstones that could be applicable to a particular block. Then during the processing step, instead of checking the meta.json file, we only need to check if a marker file exists with a specific deletion request id. If the marker file exists, then we apply the rewrite logic.
1135+
1136+#### Alternative Permanent Deletion Processing
1137+
1138+For processing the actual deletions, an alternative approach is not to wait until the final compaction has been completed and filter out the data during compaction. If the data is marked to be deleted, then don’t include it the new bigger block during compaction. For the remaining blocks where the data wasn’t filtered during compaction, the deletion can be done the same as in the previous section.
1139+
1140+Pros:
1141+
1142+- The deletion can happen sooner.
1143+- The rewrite tools creates additional blocks. By filtering the metrics during compaction, the intermediary re-written block will be avoided.
1144+
1145+Cons:
1146+
1147+- A more complicated implementation requiring add more logic to the compactor
1148+- Slower compaction if it needs to filter all the data
1149+- Need to manage which blocks should be deleted with the rewrite vs which blocks already had data filtered during compaction.
1150+- Would need to run the rewrite logic during and outside of compaction because some blocks that might need to be deleted are already in the final compaction state. So that would mean the deletion functionality has to be implemented in multiple places.
1151+- Won’t be leveraging the rewrites tools from Thanos for all the deletion, so potentially more work is duplicated
1152+
1153diff --git a/docs/proposals/parallel-compaction.md b/docs/proposals/parallel-compaction.md
1154new file mode 100644
1155index 0000000..ee20dbd
1156--- /dev/null
1157+++ b/docs/proposals/parallel-compaction.md
1158@@ -0,0 +1,67 @@
1159+---
1160+title: "Parallel Compaction by Time Interval"
1161+linkTitle: "Parallel Compaction by Time Interval"
1162+weight: 1
1163+slug: parallel-compaction
1164+---
1165+
1166+- Author: [Roy Chiang](https://github.com/roystchiang)
1167+- Date: May 2021
1168+- Status: Proposed
1169+---
1170+
1171+## Introduction
1172+As a part of pushing Cortex’s scaling capability at AWS, we have done performance testing with Cortex and found the compactor to be one of the main limiting factors for higher active timeseries limit per tenant. The documentation [Compactor](https://cortexmetrics.io/docs/blocks-storage/compactor/#how-compaction-works) describes the responsibilities of a compactor, and this proposal focuses on the limitations of the current compactor architecture. In the current architecture, compactor has simple sharding, meaning that a single tenant is sharded to a single compactor. The compactor generates compaction groups, which are groups of Prometheus TSDB blocks that can be compacted together, independently of another group. However, a compactor currnetly handles compaction groups of a single tenant iteratively, meaning that blocks belonging non-overlapping times are not compacted in parallel.
1173+
1174+Cortex ingesters are responsible for uploading TSDB blocks with data emitted by a tenant. These blocks are considered as level-1 blocks, as they contain duplicate timeseries for the same time interval, depending on the replication factor. [Vertical compaction](https://cortexmetrics.io/docs/blocks-storage/compactor/#how-compaction-works) is done to merge all the blocks with the same time interval and deduplicate the samples. These merged blocks are level-2 blocks. Subsequent compactions such as horizontal compaction can happen, further increasing the compaction level of the blocks.
1175+
1176+### Problem and Requirements
1177+Currently, a compactor is able to compact up to 20M timeseries within 2 hours for a level-2 compaction, including the time to download blocks, compact, and upload the newly compacted block. We would like to increase the timeseries limit per tenant, and compaction is one of the limiting factors. In addition, we would like to achieve the following:
1178+
1179+* Compact multiple non-overlapping time intervals concurrently, so we can achieve higher throughput for the compaction of a single tenant
1180+* We should be able to scale up, down compactor as needed, depending on how many compactions are pending
1181+* Insight into the compaction progress of a tenant, such as the number of compactions required in order to catch up to the newest blocks
1182+
1183+## Design
1184+
1185+We accept the fact that a single compaction can potentially take more than 2 hours to compact, and we achieve higher compaction throughput through horizontally scaling the compactor. To compact more blocks in parallel for a single tenant, we distribute the compaction groups to compactors, instead of introducing more parallelism within a compactor.
1186+
1187+### Parallelize Work
1188+
1189+This proposal builds heavily on top of the [GrafanaLabs approach of introducing parallelism via time intervals](https://github.com/cortexproject/cortex/pull/2616). The difference being that a single tenant is now sharded across multiple compactors instead of just a single compactor. The initial approach will be to work on distinct time intervals, but the compactor planner can be later extended to introduce parallelism within a time interval as well.
1190+
1191+The following is an example of parallelize work at each level:
1192+
1193+![Parallel Compaction Grouping](/images/proposals/parallel-compaction-grouping.png)
1194+
1195+Compactors are shuffle-sharded, meaning that 1 tenant can belong to multiple compactors, and these subset of compactors determine which blocks should be compacted together. Compactors determine amongst themselves the responsibility of the compaction blocks, by using a hash of time interval and tenant id, and putting it on the sharding ring.
1196+
1197+The benefit of this approach is that this aligns with what Cortex currently does in Ruler. The downside is that a compaction job can only be assigned to a single compactor, rather than all of the compactors sharded for the tenant. If a compaction job takes forever, other tenants sharded to the same compactor will be blocked until the issue is resolved. With the scheduler approach, any compactor assigned to a given tenant can pick up any work required.
1198+
1199+![Parallel Compaction Without Scheduler](/images/proposals/parallel-compaction-without-scheduler.png)
1200+
1201+## Scenarios
1202+
1203+### Bad block resulting in non-ideal compaction groups
1204+
1205+A Cortex operator configures the compaction block range as 2h and 6h. If a full 6-hour block cannot be compacted due to compaction failures, the compactor should not split up the group into subgroups, as this may cause suboptimal grouping of block. Cortex has full information regarding all the available blocks, so we should utilize this information to achieve the best compaction group possible.
1206+
1207+## Alternatives
1208+
1209+### Shard compaction jobs amongst compactors with a scheduler
1210+![Parallel Compaction Architecture](/images/proposals/parallel-compaction-design.png)
1211+
1212+We add a new component Compactor Scheduler, which is responsible for calculating the compaction plan, and distributing compaction groups to compactors. The planner is sharded by tenant id, so that we can horizontally scale the planner as needed in order to accept more tenants in the cortex cluster. A tenant will have two queues inside the planner, a compaction queue and a clean up queue, similar to how the query frontend currently holds queues of pending queries.
1213+
1214+Once a compactor scheduler pushes a job to a compactor, the job is no longer available. Every set interval, or once the compaction is done, a compactor will update the compactor schedule the current status of the compaction job. If a compactor does not provide an update to the scheduler within a timeout, the compaction job becomes available to be assigned to other compactors.
1215+
1216+#### Concurrency
1217+
1218+To achieve concurrency within a single tenant, compactor scheduler will push jobs to compactors. Compactors are shuffle-sharded by tenant id, to prevent a large tenant from impacting the compaction of other tenants. Compactor will download blocks from long term storage, compact, and upload. Compactor will also pull from the clean up queues from scheduler, and delete blocks marked for deletion.
1219+
1220+#### Consistency
1221+
1222+On resharding of compactor schedulers, a tenant might move to a different scheduler. We can either drop the current compactor job in order to prevent duplicate compaction jobs, or continue compaction. I propose that the compactor drops the compaction job if the compaction group no longer belongs to the original compactor scheduler. This way, we do not have duplicate compactions happening, and we can minimize work wasted.
1223+
1224+### Contribute to Thanos for a more scalable compactor
1225+Instead of introducing parallelism on the Cortex compactor level, we move the parallelism to the Thanos compactor itself. Thanos has a [proposal to make compactor more scalable](https://docs.google.com/document/d/1xi0V8DB0hE54XgkogJRnNL6yH7C5JThJywlLFoC6dCQ/), and a [PR](https://github.com/thanos-io/thanos/pull/3807). Cortex will enjoy higher throughput per tenant if Thanos is able to speed up the compaction, and we can keep the Cortex architecture the same. However, this approach means that a single tenant is still sharded to a single compactor. In order to compact more groups at once, we must scale up compactor vertically. Although vertical scaling can get us far, we should scale horizontally where we can.
1226diff --git a/go.mod b/go.mod
1227index 0b795d5..4d77a1d 100644
1228--- a/go.mod
1229+++ b/go.mod
1230@@ -3,39 +3,36 @@ module github.com/cortexproject/cortex
1231 go 1.16
1232
1233 require (
1234- cloud.google.com/go/bigtable v1.2.0
1235+ cloud.google.com/go/bigtable v1.3.0
1236 cloud.google.com/go/storage v1.10.0
1237- github.com/Azure/azure-pipeline-go v0.2.2
1238- github.com/Azure/azure-storage-blob-go v0.8.0
1239+ github.com/Azure/azure-pipeline-go v0.2.3
1240+ github.com/Azure/azure-storage-blob-go v0.13.0
1241 github.com/Masterminds/squirrel v0.0.0-20161115235646-20f192218cf5
1242 github.com/NYTimes/gziphandler v1.1.1
1243 github.com/alecthomas/units v0.0.0-20210208195552-ff826a37aa15
1244 github.com/alicebob/miniredis/v2 v2.14.3
1245- github.com/armon/go-metrics v0.3.6
1246- github.com/aws/aws-sdk-go v1.38.35
1247+ github.com/aws/aws-sdk-go v1.40.45
1248 github.com/bradfitz/gomemcache v0.0.0-20190913173617-a41fca850d0b
1249 github.com/cespare/xxhash v1.1.0
1250 github.com/dustin/go-humanize v1.0.0
1251 github.com/facette/natsort v0.0.0-20181210072756-2cd4dd1e2dcb
1252 github.com/felixge/fgprof v0.9.1
1253 github.com/fsouza/fake-gcs-server v1.7.0
1254- github.com/go-kit/kit v0.10.0
1255- github.com/go-openapi/strfmt v0.20.1
1256+ github.com/go-kit/kit v0.12.0 // indirect
1257+ github.com/go-kit/log v0.2.0
1258+ github.com/go-openapi/strfmt v0.20.2
1259 github.com/go-openapi/swag v0.19.15
1260 github.com/go-redis/redis/v8 v8.9.0
1261 github.com/gocql/gocql v0.0.0-20200526081602-cd04bd7f22a7
1262 github.com/gogo/protobuf v1.3.2
1263- github.com/gogo/status v1.0.3
1264+ github.com/gogo/status v1.1.0
1265 github.com/golang-migrate/migrate/v4 v4.7.0
1266 github.com/golang/protobuf v1.5.2
1267- github.com/golang/snappy v0.0.3
1268- github.com/gorilla/mux v1.7.3
1269- github.com/grpc-ecosystem/go-grpc-middleware v1.2.2
1270- github.com/hashicorp/consul/api v1.8.1
1271- github.com/hashicorp/go-cleanhttp v0.5.1
1272- github.com/hashicorp/go-sockaddr v1.0.2
1273- github.com/hashicorp/memberlist v0.2.3
1274- github.com/json-iterator/go v1.1.11
1275+ github.com/golang/snappy v0.0.4
1276+ github.com/gorilla/mux v1.8.0
1277+ github.com/grafana/dskit v0.0.0-20210908150159-fcf48cb19aa4
1278+ github.com/grpc-ecosystem/go-grpc-middleware v1.3.0
1279+ github.com/json-iterator/go v1.1.12
1280 github.com/lib/pq v1.3.0
1281 github.com/minio/minio-go/v7 v7.0.10
1282 github.com/mitchellh/go-wordwrap v1.0.0
1283@@ -45,28 +42,25 @@ require (
1284 github.com/opentracing-contrib/go-stdlib v1.0.0
1285 github.com/opentracing/opentracing-go v1.2.0
1286 github.com/pkg/errors v0.9.1
1287- github.com/prometheus/alertmanager v0.22.1-0.20210603124511-8b584eb2265e
1288- github.com/prometheus/client_golang v1.10.0
1289+ github.com/prometheus/alertmanager v0.23.1-0.20210914172521-e35efbddb66a
1290+ github.com/prometheus/client_golang v1.11.0
1291 github.com/prometheus/client_model v0.2.0
1292- github.com/prometheus/common v0.26.1-0.20210603143733-6ef301f414bf
1293- github.com/prometheus/prometheus v1.8.2-0.20210510213326-e313ffa8abf6
1294+ github.com/prometheus/common v0.30.0
1295+ github.com/prometheus/prometheus v1.8.2-0.20210914090109-37468d88dce8
1296 github.com/segmentio/fasthash v0.0.0-20180216231524-a72b379d632e
1297 github.com/sony/gobreaker v0.4.1
1298- github.com/spf13/afero v1.2.2
1299+ github.com/spf13/afero v1.3.4
1300 github.com/stretchr/testify v1.7.0
1301- github.com/thanos-io/thanos v0.19.1-0.20210427154226-d5bd651319d2
1302- github.com/uber/jaeger-client-go v2.28.0+incompatible
1303- github.com/weaveworks/common v0.0.0-20210419092856-009d1eebd624
1304- go.etcd.io/bbolt v1.3.5
1305- go.etcd.io/etcd v0.5.0-alpha.5.0.20200520232829-54ba9589114f
1306- go.etcd.io/etcd/client/v3 v3.5.0-alpha.0.0.20210225194612-fa82d11a958a
1307- go.etcd.io/etcd/server/v3 v3.5.0-alpha.0.0.20210225194612-fa82d11a958a
1308- go.uber.org/atomic v1.7.0
1309- golang.org/x/net v0.0.0-20210525063256-abc453219eb5
1310+ github.com/thanos-io/thanos v0.22.0
1311+ github.com/uber/jaeger-client-go v2.29.1+incompatible
1312+ github.com/weaveworks/common v0.0.0-20210901124008-1fa3f9fa874c
1313+ go.etcd.io/bbolt v1.3.6
1314+ go.uber.org/atomic v1.9.0
1315+ golang.org/x/net v0.0.0-20210917221730-978cfadd31cf
1316 golang.org/x/sync v0.0.0-20210220032951-036812b2e83c
1317- golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba
1318- google.golang.org/api v0.46.0
1319- google.golang.org/grpc v1.37.0
1320+ golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac
1321+ google.golang.org/api v0.56.0
1322+ google.golang.org/grpc v1.40.0
1323 gopkg.in/yaml.v2 v2.4.0
1324 gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b
1325 sigs.k8s.io/yaml v1.2.0
1326@@ -84,3 +78,12 @@ replace github.com/gocql/gocql => github.com/grafana/gocql v0.0.0-20200605141915
1327
1328 // Using a 3rd-party branch for custom dialer - see https://github.com/bradfitz/gomemcache/pull/86
1329 replace github.com/bradfitz/gomemcache => github.com/themihai/gomemcache v0.0.0-20180902122335-24332e2d58ab
1330+
1331+// TODO review the change introduced by https://github.com/grpc/grpc-go/pull/4416 before upgrading to 1.39.0
1332+replace google.golang.org/grpc => google.golang.org/grpc v1.38.0
1333+
1334+replace github.com/thanos-io/thanos v0.22.0 => github.com/thanos-io/thanos v0.19.1-0.20210923155558-c15594a03c45
1335+
1336+// Pin aws-sdk to version prior to go-kit update, to reduce the bulk of change.
1337+// Un-pin once Cortex 1.11 is released.
1338+replace github.com/aws/aws-sdk-go => github.com/aws/aws-sdk-go v1.40.37
1339diff --git a/go.sum b/go.sum
1340index 251c4c9..3ff73d9 100644
1341--- a/go.sum
1342+++ b/go.sum
1343@@ -1,4 +1,4 @@
1344-cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
1345+bazil.org/fuse v0.0.0-20160811212531-371fbbdaa898/go.mod h1:Xbm+BRKSBEpa4q4hTSxohYNQpsxXPbPry4JJWOB3LB8=
1346 cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
1347 cloud.google.com/go v0.37.4/go.mod h1:NHPJ89PdicEuT9hdPXMROBD91xc5uRDxsMtSB16k7hw=
1348 cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
1349@@ -21,8 +21,14 @@ cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKP
1350 cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk=
1351 cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg=
1352 cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8=
1353-cloud.google.com/go v0.81.0 h1:at8Tk2zUz63cLPR0JPWm5vp77pEZmzxEQBEfRKn1VV8=
1354 cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0=
1355+cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAVY=
1356+cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM=
1357+cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY=
1358+cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ=
1359+cloud.google.com/go v0.92.2/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI=
1360+cloud.google.com/go v0.93.3 h1:wPBktZFzYBcCZVARvwVKqH1uEj+aLXofJEtrb4oOsio=
1361+cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI=
1362 cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
1363 cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE=
1364 cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc=
1365@@ -30,8 +36,9 @@ cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUM
1366 cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc=
1367 cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ=
1368 cloud.google.com/go/bigtable v1.1.0/go.mod h1:B6ByKcIdYmhoyDzmOnQxyOhN6r05qnewYIxxG6L0/b4=
1369-cloud.google.com/go/bigtable v1.2.0 h1:F4cCmA4nuV84V5zYQ3MKY+M1Cw1avHDuf3S/LcZPA9c=
1370 cloud.google.com/go/bigtable v1.2.0/go.mod h1:JcVAOl45lrTmQfLj7T6TxyMzIN/3FGGcFm+2xVAli2o=
1371+cloud.google.com/go/bigtable v1.3.0 h1:PAplkJLXheOLlK5PPyy4/HXtPzHn+1/LaYDWIeGxnio=
1372+cloud.google.com/go/bigtable v1.3.0/go.mod h1:z5EyKrPE8OQmeg4h5MNdKvuSnI9CCT49Ki3f23aBzio=
1373 cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
1374 cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk=
1375 cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk=
1376@@ -46,14 +53,18 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl
1377 cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
1378 cloud.google.com/go/storage v1.10.0 h1:STgFzyU5/8miMl0//zKh2aQeTyeaUH3WN9bSUiJ09bA=
1379 cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
1380+cloud.google.com/go/trace v0.1.0/go.mod h1:wxEwsoeRVPbeSkt7ZC9nWCgmoKQRAoySN7XHW2AmI7g=
1381 collectd.org v0.3.0/go.mod h1:A/8DzQBkF6abtvrT2j/AU/4tiBgJWYyh0y/oB/4MlWE=
1382 contrib.go.opencensus.io/exporter/ocagent v0.6.0/go.mod h1:zmKjrJcdo0aYcVS7bmEeSEBLPA9YJp5bjrofdU3pIXs=
1383 dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
1384 github.com/Azure/azure-pipeline-go v0.2.1/go.mod h1:UGSo8XybXnIGZ3epmeBw7Jdz+HiUVpqIlpz/HKHylF4=
1385-github.com/Azure/azure-pipeline-go v0.2.2 h1:6oiIS9yaG6XCCzhgAgKFfIWyo4LLCiDhZot6ltoThhY=
1386 github.com/Azure/azure-pipeline-go v0.2.2/go.mod h1:4rQ/NZncSvGqNkkOsNpOU1tgoNuIlp9AfUH5G1tvCHc=
1387+github.com/Azure/azure-pipeline-go v0.2.3 h1:7U9HBg1JFK3jHl5qmo4CTZKFTVgMwdFHMVtCdfBE21U=
1388+github.com/Azure/azure-pipeline-go v0.2.3/go.mod h1:x841ezTBIMG6O3lAcl8ATHnsOPVl2bqk7S3ta6S6u4k=
1389+github.com/Azure/azure-sdk-for-go v16.2.1+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
1390 github.com/Azure/azure-sdk-for-go v23.2.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
1391 github.com/Azure/azure-sdk-for-go v36.1.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
1392+github.com/Azure/azure-sdk-for-go v41.3.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
1393 github.com/Azure/azure-sdk-for-go v43.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
1394 github.com/Azure/azure-sdk-for-go v44.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
1395 github.com/Azure/azure-sdk-for-go v44.2.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
1396@@ -62,34 +73,55 @@ github.com/Azure/azure-sdk-for-go v46.4.0+incompatible/go.mod h1:9XXNKU+eRnpl9mo
1397 github.com/Azure/azure-sdk-for-go v48.2.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
1398 github.com/Azure/azure-sdk-for-go v51.2.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
1399 github.com/Azure/azure-sdk-for-go v52.5.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
1400-github.com/Azure/azure-sdk-for-go v54.0.0+incompatible h1:Bq3L9LF0DHCexlT0fccwxgrOMfjHx8LGz+d+L7gGQv4=
1401 github.com/Azure/azure-sdk-for-go v54.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
1402-github.com/Azure/azure-storage-blob-go v0.8.0 h1:53qhf0Oxa0nOjgbDeeYPUeyiNmafAFEY95rZLK0Tj6o=
1403+github.com/Azure/azure-sdk-for-go v55.2.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
1404+github.com/Azure/azure-sdk-for-go v57.1.0+incompatible h1:TKQ3ieyB0vVKkF6t9dsWbMjq56O1xU3eh3Ec09v6ajM=
1405+github.com/Azure/azure-sdk-for-go v57.1.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
1406 github.com/Azure/azure-storage-blob-go v0.8.0/go.mod h1:lPI3aLPpuLTeUwh1sViKXFxwl2B6teiRqI0deQUvsw0=
1407+github.com/Azure/azure-storage-blob-go v0.13.0 h1:lgWHvFh+UYBNVQLFHXkvul2f6yOPA9PIH82RTG2cSwc=
1408+github.com/Azure/azure-storage-blob-go v0.13.0/go.mod h1:pA9kNqtjUeQF2zOSu4s//nUdBD+e64lEuc4sVnuOfNs=
1409 github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 h1:w+iIsaOQNcT7OZ575w+acHgRric5iCyQh+xv+KJ4HB8=
1410 github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8=
1411+github.com/Azure/go-autorest v10.8.1+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
1412 github.com/Azure/go-autorest v11.2.8+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
1413 github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs=
1414 github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
1415 github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI=
1416 github.com/Azure/go-autorest/autorest v0.9.3-0.20191028180845-3492b2aff503/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI=
1417+github.com/Azure/go-autorest/autorest v0.9.3/go.mod h1:GsRuLYvwzLjjjRoWEIyMUaYq8GNUx2nRB378IPt/1p0=
1418+github.com/Azure/go-autorest/autorest v0.10.0/go.mod h1:/FALq9T/kS7b5J5qsQ+RSTUdAmGFqi0vUdVNNx8q630=
1419+github.com/Azure/go-autorest/autorest v0.10.1/go.mod h1:/FALq9T/kS7b5J5qsQ+RSTUdAmGFqi0vUdVNNx8q630=
1420 github.com/Azure/go-autorest/autorest v0.10.2/go.mod h1:/FALq9T/kS7b5J5qsQ+RSTUdAmGFqi0vUdVNNx8q630=
1421 github.com/Azure/go-autorest/autorest v0.11.1/go.mod h1:JFgpikqFJ/MleTTxwepExTKnFUKKszPS8UavbQYUMuw=
1422 github.com/Azure/go-autorest/autorest v0.11.2/go.mod h1:JFgpikqFJ/MleTTxwepExTKnFUKKszPS8UavbQYUMuw=
1423 github.com/Azure/go-autorest/autorest v0.11.4/go.mod h1:JFgpikqFJ/MleTTxwepExTKnFUKKszPS8UavbQYUMuw=
1424 github.com/Azure/go-autorest/autorest v0.11.10/go.mod h1:eipySxLmqSyC5s5k1CLupqet0PSENBEDP93LQ9a8QYw=
1425 github.com/Azure/go-autorest/autorest v0.11.11/go.mod h1:eipySxLmqSyC5s5k1CLupqet0PSENBEDP93LQ9a8QYw=
1426-github.com/Azure/go-autorest/autorest v0.11.18 h1:90Y4srNYrwOtAgVo3ndrQkTYn6kf1Eg/AjTFJ8Is2aM=
1427+github.com/Azure/go-autorest/autorest v0.11.17/go.mod h1:eipySxLmqSyC5s5k1CLupqet0PSENBEDP93LQ9a8QYw=
1428 github.com/Azure/go-autorest/autorest v0.11.18/go.mod h1:dSiJPy22c3u0OtOKDNttNgqpNFY/GeWa7GH/Pz56QRA=
1429+github.com/Azure/go-autorest/autorest v0.11.19/go.mod h1:dSiJPy22c3u0OtOKDNttNgqpNFY/GeWa7GH/Pz56QRA=
1430+github.com/Azure/go-autorest/autorest v0.11.20 h1:s8H1PbCZSqg/DH7JMlOz6YMig6htWLNPsjDdlLqCx3M=
1431+github.com/Azure/go-autorest/autorest v0.11.20/go.mod h1:o3tqFY+QR40VOlk+pV4d77mORO64jOXSgEnPQgLK6JY=
1432 github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0=
1433+github.com/Azure/go-autorest/autorest/adal v0.8.0/go.mod h1:Z6vX6WXXuyieHAXwMj0S6HY6e6wcHn37qQMBQlvY3lc=
1434 github.com/Azure/go-autorest/autorest/adal v0.8.1-0.20191028180845-3492b2aff503/go.mod h1:Z6vX6WXXuyieHAXwMj0S6HY6e6wcHn37qQMBQlvY3lc=
1435+github.com/Azure/go-autorest/autorest/adal v0.8.1/go.mod h1:ZjhuQClTqx435SRJ2iMlOxPYt3d2C/T/7TiQCVZSn3Q=
1436 github.com/Azure/go-autorest/autorest/adal v0.8.2/go.mod h1:ZjhuQClTqx435SRJ2iMlOxPYt3d2C/T/7TiQCVZSn3Q=
1437 github.com/Azure/go-autorest/autorest/adal v0.8.3/go.mod h1:ZjhuQClTqx435SRJ2iMlOxPYt3d2C/T/7TiQCVZSn3Q=
1438 github.com/Azure/go-autorest/autorest/adal v0.9.0/go.mod h1:/c022QCutn2P7uY+/oQWWNcK9YU+MH96NgK+jErpbcg=
1439 github.com/Azure/go-autorest/autorest/adal v0.9.2/go.mod h1:/3SMAM86bP6wC9Ev35peQDUeqFZBMH07vvUOmg4z/fE=
1440 github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A=
1441-github.com/Azure/go-autorest/autorest/adal v0.9.13 h1:Mp5hbtOePIzM8pJVRa3YLrWWmZtoxRXqUEzCfJt3+/Q=
1442+github.com/Azure/go-autorest/autorest/adal v0.9.11/go.mod h1:nBKAnTomx8gDtl+3ZCJv2v0KACFHWTB2drffI1B68Pk=
1443 github.com/Azure/go-autorest/autorest/adal v0.9.13/go.mod h1:W/MM4U6nLxnIskrw4UwWzlHfGjwUS50aOsc/I3yuU8M=
1444+github.com/Azure/go-autorest/autorest/adal v0.9.14/go.mod h1:W/MM4U6nLxnIskrw4UwWzlHfGjwUS50aOsc/I3yuU8M=
1445+github.com/Azure/go-autorest/autorest/adal v0.9.15 h1:X+p2GF0GWyOiSmqohIaEeuNFNDY4I4EOlVuUQvFdWMk=
1446+github.com/Azure/go-autorest/autorest/adal v0.9.15/go.mod h1:tGMin8I49Yij6AQ+rvV+Xa/zwxYQB5hmsd6DkfAx2+A=
1447+github.com/Azure/go-autorest/autorest/azure/auth v0.4.2/go.mod h1:90gmfKdlmKgfjUpnCEpOJzsUEjrWDSLwHIG73tSXddM=
1448+github.com/Azure/go-autorest/autorest/azure/auth v0.5.8 h1:TzPg6B6fTZ0G1zBf3T54aI7p3cAT6u//TOXGPmFMOXg=
1449+github.com/Azure/go-autorest/autorest/azure/auth v0.5.8/go.mod h1:kxyKZTSfKh8OVFWPAgOgQ/frrJgeYQJPyR5fLFmXko4=
1450+github.com/Azure/go-autorest/autorest/azure/cli v0.3.1/go.mod h1:ZG5p860J94/0kI9mNJVoIoLgXcirM2gF5i2kWloofxw=
1451+github.com/Azure/go-autorest/autorest/azure/cli v0.4.2 h1:dMOmEJfkLKW/7JsokJqkyoYSgmR08hi9KrhjZb+JALY=
1452+github.com/Azure/go-autorest/autorest/azure/cli v0.4.2/go.mod h1:7qkJkT+j6b+hIpzMOwPChJhTqS8VbsqqgULzMNRugoM=
1453 github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA=
1454 github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+vPmf1Ij9AEBM5FuBIXLmIy0g=
1455 github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw=
1456@@ -98,6 +130,7 @@ github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxB
1457 github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0=
1458 github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM=
1459 github.com/Azure/go-autorest/autorest/mocks v0.4.0/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k=
1460+github.com/Azure/go-autorest/autorest/mocks v0.4.1 h1:K0laFcLE6VLTOwNgSxaGbUcLPuGXlNkbVvq4cW4nIHk=
1461 github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k=
1462 github.com/Azure/go-autorest/autorest/to v0.3.0/go.mod h1:MgwOyqaIuKdG4TL/2ywSsIWKAfJfgHDo8ObuUk3t5sA=
1463 github.com/Azure/go-autorest/autorest/to v0.3.1-0.20191028180845-3492b2aff503/go.mod h1:MgwOyqaIuKdG4TL/2ywSsIWKAfJfgHDo8ObuUk3t5sA=
1464@@ -118,18 +151,38 @@ github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ
1465 github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
1466 github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
1467 github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM=
1468+github.com/DATA-DOG/go-sqlmock v1.4.1/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM=
1469 github.com/DataDog/datadog-go v2.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ=
1470 github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ=
1471 github.com/HdrHistogram/hdrhistogram-go v0.9.0/go.mod h1:nxrse8/Tzg2tg3DZcZjm6qEclQKK70g0KxO61gFFZD4=
1472-github.com/HdrHistogram/hdrhistogram-go v1.0.1 h1:GX8GAYDuhlFQnI2fRDHQhTlkHMz8bEn0jTI6LJU0mpw=
1473 github.com/HdrHistogram/hdrhistogram-go v1.0.1/go.mod h1:BWJ+nMSHY3L41Zj7CA3uXnloDp7xxV0YvstAE7nKTaM=
1474+github.com/HdrHistogram/hdrhistogram-go v1.1.0/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo=
1475+github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM=
1476+github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo=
1477 github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0=
1478+github.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=
1479+github.com/Masterminds/sprig v2.16.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o=
1480 github.com/Masterminds/squirrel v0.0.0-20161115235646-20f192218cf5 h1:PPfYWScYacO3Q6JMCLkyh6Ea2Q/REDTMgmiTAeiV8Jg=
1481 github.com/Masterminds/squirrel v0.0.0-20161115235646-20f192218cf5/go.mod h1:xnKTFzjGUiZtiOagBsfnvomW+nJg2usB1ZpordQWqNM=
1482 github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA=
1483 github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA=
1484-github.com/Microsoft/go-winio v0.4.16 h1:FtSW/jqD+l4ba5iPBj9CODVtgfYAD8w2wS923g/cFDk=
1485+github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw=
1486+github.com/Microsoft/go-winio v0.4.16-0.20201130162521-d1ffc52c7331/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0=
1487 github.com/Microsoft/go-winio v0.4.16/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0=
1488+github.com/Microsoft/go-winio v0.4.17-0.20210211115548-6eac466e5fa3/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84=
1489+github.com/Microsoft/go-winio v0.4.17-0.20210324224401-5516f17a5958/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84=
1490+github.com/Microsoft/go-winio v0.4.17 h1:iT12IBVClFevaf8PuVyi3UmZOVh4OqnaLxDTW2O6j3w=
1491+github.com/Microsoft/go-winio v0.4.17/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84=
1492+github.com/Microsoft/hcsshim v0.8.6/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg=
1493+github.com/Microsoft/hcsshim v0.8.7-0.20190325164909-8abdbb8205e4/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg=
1494+github.com/Microsoft/hcsshim v0.8.7/go.mod h1:OHd7sQqRFrYd3RmSgbgji+ctCwkbq2wbEYNSzOYtcBQ=
1495+github.com/Microsoft/hcsshim v0.8.9/go.mod h1:5692vkUqntj1idxauYlpoINNKeqCiG6Sg38RRsjT5y8=
1496+github.com/Microsoft/hcsshim v0.8.14/go.mod h1:NtVKoYxQuTLx6gEq0L96c9Ju4JbRJ4nY2ow3VK6a9Lg=
1497+github.com/Microsoft/hcsshim v0.8.15/go.mod h1:x38A4YbHbdxJtc0sF6oIz+RG0npwSCAvn69iY6URG00=
1498+github.com/Microsoft/hcsshim v0.8.16/go.mod h1:o5/SZqmR7x9JNKsW3pu+nqHm0MF8vbA+VxGOoXdC600=
1499+github.com/Microsoft/hcsshim v0.8.18/go.mod h1:+w2gRZ5ReXQhFOrvSQeNfhrYB/dg3oDwTOcER2fw4I4=
1500+github.com/Microsoft/hcsshim/test v0.0.0-20201218223536-d3e5debf77da/go.mod h1:5hlzMzRKMLyo42nCZ9oml8AdTlq/0cvIaBv6tK1RehU=
1501+github.com/Microsoft/hcsshim/test v0.0.0-20210227013316-43a75bb4edd3/go.mod h1:mw7qgWloBUl75W/gVH3cQszUg1+gUITj7D6NY7ywVnY=
1502 github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
1503 github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I=
1504 github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c=
1505@@ -145,6 +198,9 @@ github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbt
1506 github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
1507 github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
1508 github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
1509+github.com/QcloudApi/qcloud_sign_golang v0.0.0-20141224014652-e4130a326409/go.mod h1:1pk82RBxDY/JZnPQrtqHlUFfCctgdorsd9M06fMynOM=
1510+github.com/SAP/go-hdb v0.14.1/go.mod h1:7fdQLVC2lER3urZLjZCm0AuMQfApof92n3aylBPEkMo=
1511+github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d/go.mod h1:HI8ITrYtUY+O+ZhtlqUnD8+KwNPOyugEhfP9fdUIaEQ=
1512 github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo=
1513 github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=
1514 github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g=
1515@@ -159,6 +215,7 @@ github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRF
1516 github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
1517 github.com/alecthomas/units v0.0.0-20210208195552-ff826a37aa15 h1:AUNCr9CiJuwrRYS3XieqF+Z9B9gNxo/eANAJCF2eiN4=
1518 github.com/alecthomas/units v0.0.0-20210208195552-ff826a37aa15/go.mod h1:OMCwj8VM1Kc9e19TLln2VL61YJF0x1XFtfdL4JdbSyE=
1519+github.com/alexflint/go-filemutex v0.0.0-20171022225611-72bdc8eae2ae/go.mod h1:CgnQgUtFrFz9mxFNtED3jI5tLDjKlOM+oUF/sTk6ps0=
1520 github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a h1:HbKu58rmZpUGpz5+4FfNmIU+FmZg2P3Xaj2v2bfNWmk=
1521 github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a/go.mod h1:SGnFV6hVsYE877CKEZ6tDNTjaSXYUk6QqoIK6PrAtcc=
1522 github.com/alicebob/miniredis v2.5.0+incompatible h1:yBHoLpsyjupjz3NL3MhKMVkR41j82Yjf3KFv7ApYzUI=
1523@@ -170,16 +227,20 @@ github.com/aliyun/aliyun-oss-go-sdk v2.0.4+incompatible/go.mod h1:T/Aws4fEfogEE9
1524 github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=
1525 github.com/antihax/optional v0.0.0-20180407024304-ca021399b1a6/go.mod h1:V8iCPQYkqmusNa815XgQio277wI47sdRh1dUOLdyC6Q=
1526 github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
1527+github.com/aokoli/goutils v1.0.1/go.mod h1:SijmP0QR8LtwsmDs8Yii5Z/S4trXFGFC2oO5g9DP+DQ=
1528 github.com/apache/arrow/go/arrow v0.0.0-20191024131854-af6fa24be0db/go.mod h1:VTxUBvSJ3s3eHAg65PNgrsn5BtqCRPdmyXh6rAfdxN0=
1529+github.com/apache/arrow/go/arrow v0.0.0-20200923215132-ac86123a3f01/go.mod h1:QNYViu/X0HXDHw7m3KXzWSVXIbfUvJqBFe6Gj8/pYA0=
1530 github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
1531 github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
1532 github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
1533+github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
1534 github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
1535 github.com/armon/go-metrics v0.0.0-20190430140413-ec5e00d3c878/go.mod h1:3AMJUQhVx52RsWOnlkpikZr01T/yAVN2gn0861vByNg=
1536 github.com/armon/go-metrics v0.3.0/go.mod h1:zXjbSimjXTd7vOpY8B0/2LpvNvDoXBuplAD+gJD3GYs=
1537 github.com/armon/go-metrics v0.3.3/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc=
1538-github.com/armon/go-metrics v0.3.6 h1:x/tmtOF9cDBoXH7XoAGOz2qqm1DknFD1590XmD/DUJ8=
1539 github.com/armon/go-metrics v0.3.6/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc=
1540+github.com/armon/go-metrics v0.3.9 h1:O2sNqxBdvq8Eq5xmzljcYzAORli6RWCvEym4cJf9m18=
1541+github.com/armon/go-metrics v0.3.9/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc=
1542 github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
1543 github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
1544 github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
1545@@ -191,25 +252,25 @@ github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535/go.mod h1:o
1546 github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef h1:46PFijGLmAjMPwCCCo7Jf0W6f9slllCkkv7vyc1yOSg=
1547 github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw=
1548 github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU=
1549-github.com/aws/aws-sdk-go v1.15.78/go.mod h1:E3/ieXAlvM0XWO57iftYVDLLvQ824smPP3ATZkfNZeM=
1550-github.com/aws/aws-sdk-go v1.17.7/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
1551-github.com/aws/aws-sdk-go v1.22.4/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
1552-github.com/aws/aws-sdk-go v1.25.48/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
1553-github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
1554-github.com/aws/aws-sdk-go v1.31.9/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0=
1555-github.com/aws/aws-sdk-go v1.33.5/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0=
1556-github.com/aws/aws-sdk-go v1.33.12/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0=
1557-github.com/aws/aws-sdk-go v1.34.9/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0=
1558-github.com/aws/aws-sdk-go v1.34.28/go.mod h1:H7NKnBqNVzoTJpGfLrQkkD+ytBA93eiDYi/+8rV9s48=
1559-github.com/aws/aws-sdk-go v1.35.5/go.mod h1:tlPOdRjfxPBpNIwqDj61rmsnA85v9jc0Ps9+muhnW+k=
1560-github.com/aws/aws-sdk-go v1.35.31/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro=
1561-github.com/aws/aws-sdk-go v1.37.8/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro=
1562-github.com/aws/aws-sdk-go v1.38.3/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro=
1563-github.com/aws/aws-sdk-go v1.38.35 h1:7AlAO0FC+8nFjxiGKEmq0QLpiA8/XFr6eIxgRTwkdTg=
1564-github.com/aws/aws-sdk-go v1.38.35/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro=
1565+github.com/aws/aws-sdk-go v1.40.37 h1:I+Q6cLctkFyMMrKukcDnj+i2kjrQ37LGiOM6xmsxC48=
1566+github.com/aws/aws-sdk-go v1.40.37/go.mod h1:585smgzpB/KqRA+K3y/NL/oYRqQvpNJYvLm+LY1U59Q=
1567 github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g=
1568+github.com/aws/aws-sdk-go-v2 v1.7.0/go.mod h1:tb9wi5s61kTDA5qCkcDbt3KRVV74GGslQkl/DRdX/P4=
1569+github.com/aws/aws-sdk-go-v2 v1.9.1/go.mod h1:cK/D0BBs0b/oWPIcX/Z/obahJK1TT7IPVjy53i/mX/4=
1570+github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.5.0/go.mod h1:acH3+MQoiMzozT/ivU+DbRg7Ooo2298RdRaWcOv+4vM=
1571+github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.8.1/go.mod h1:CM+19rL1+4dFWnOQKwDc7H1KwXTz+h61oUSHyhV0b3o=
1572+github.com/aws/smithy-go v1.5.0/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E=
1573+github.com/aws/smithy-go v1.8.0/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E=
1574+github.com/baidubce/bce-sdk-go v0.9.81 h1:n8KfThLG9fvGv3A+RtTt/jKhg/FPPRpo+iNnS2r+iPI=
1575+github.com/baidubce/bce-sdk-go v0.9.81/go.mod h1:zbYJMQwE4IZuyrJiFO8tO8NbtYiKTFTbwh4eIsqjVdg=
1576 github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc=
1577 github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg=
1578+github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM=
1579+github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
1580+github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
1581+github.com/benbjohnson/immutable v0.2.1/go.mod h1:uc6OHo6PN2++n98KHLxW8ef4W42ylHiQSENghE1ezxI=
1582+github.com/benbjohnson/tmpl v1.0.0/go.mod h1:igT620JFIi44B6awvU9IsDhR77IXWtFigTLil/RPdps=
1583+github.com/beorn7/perks v0.0.0-20160804104726-4c0e84591b9a/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
1584 github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
1585 github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
1586 github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
1587@@ -217,43 +278,66 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r
1588 github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
1589 github.com/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932 h1:mXoPYz/Ul5HYEDvkta6I8/rnYM5gSdSV2tJ6XbZuEtY=
1590 github.com/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932/go.mod h1:NOuUCSz6Q9T7+igc/hlvDOUdtWKryOrtFyIVABv/p7k=
1591+github.com/bitly/go-simplejson v0.5.0/go.mod h1:cXHtHw4XUPsvGaxgjIAn8PhEWG9NfngEKAMDJEczWVA=
1592 github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84=
1593+github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
1594 github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
1595+github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ=
1596+github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
1597+github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
1598+github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
1599 github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 h1:DDGfHa7BWjL4YnC6+E63dPcxHo2sUxDIu8g3QgEJdRY=
1600 github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4=
1601 github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40/go.mod h1:8rLXio+WjiTceGBHIoTvn60HIbs7Hm7bcHjyrSqYB9c=
1602 github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps=
1603+github.com/bonitoo-io/go-sql-bigquery v0.3.4-1.4.0/go.mod h1:J4Y6YJm0qTWB9aFziB7cPeSyc6dOZFyJdteSeybVpXQ=
1604+github.com/bshuster-repo/logrus-logstash-hook v0.4.1/go.mod h1:zsTqEiSzDgAa/8GZR7E1qaXrhYNDKBYy5/dWPTIflbk=
1605+github.com/buger/jsonparser v0.0.0-20180808090653-f4dd9f5a6b44/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s=
1606+github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd/go.mod h1:2oa8nejYd4cQ/b0hMIopN0lCRxU0bueqREvZLWFrtK8=
1607+github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b/go.mod h1:obH5gd0BsqsP2LwDJ9aOkm/6J86V6lyAXCoQWGw3K50=
1608+github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE=
1609 github.com/c-bata/go-prompt v0.2.2/go.mod h1:VzqtzE2ksDBcdln8G7mk2RX9QyGjH+OVqOCSiVIqS34=
1610+github.com/cactus/go-statsd-client/statsd v0.0.0-20191106001114-12b4e2b38748/go.mod h1:l/bIBLeOl9eX+wxJAzxS4TveKRtAqlyDpHjhkfO0MEI=
1611 github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ=
1612+github.com/casbin/casbin/v2 v2.31.6/go.mod h1:vByNa/Fchek0KZUgG5wEsl7iFsiviAYKRtgrQfcJqHg=
1613+github.com/casbin/casbin/v2 v2.37.0/go.mod h1:vByNa/Fchek0KZUgG5wEsl7iFsiviAYKRtgrQfcJqHg=
1614 github.com/cenkalti/backoff v0.0.0-20181003080854-62661b46c409/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=
1615 github.com/cenkalti/backoff v1.0.0/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=
1616 github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4=
1617 github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=
1618 github.com/cenkalti/backoff/v4 v4.0.2/go.mod h1:eEew/i+1Q6OrCDZh3WiXYv3+nJwBASZ8Bog/87DQnVg=
1619-github.com/cenkalti/backoff/v4 v4.1.0 h1:c8LkOFQTzuO0WBM/ae5HdGQuZPfPxp7lqBRwQRm4fSc=
1620 github.com/cenkalti/backoff/v4 v4.1.0/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw=
1621+github.com/cenkalti/backoff/v4 v4.1.1 h1:G2HAfAmvm/GcKan2oOQpBXOd2tT2G57ZnZGWa1PxPBQ=
1622+github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw=
1623 github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
1624-github.com/certifi/gocertifi v0.0.0-20191021191039-0944d244cd40 h1:xvUo53O5MRZhVMJAxWCJcS5HHrqAiAG9SJ1LpMu6aAI=
1625 github.com/certifi/gocertifi v0.0.0-20191021191039-0944d244cd40/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA=
1626+github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054 h1:uH66TXeswKn5PW5zdZ39xEwfS9an067BirqA+P4QaLI=
1627+github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA=
1628 github.com/cespare/xxhash v0.0.0-20181017004759-096ff4a8a059/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
1629 github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
1630 github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
1631 github.com/cespare/xxhash/v2 v2.1.0/go.mod h1:dgIUBU3pDso/gPgZ1osOZ0iQf77oPR28Tjxl5dIMyVM=
1632-github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY=
1633 github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
1634+github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
1635+github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
1636+github.com/checkpoint-restore/go-criu/v4 v4.1.0/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw=
1637 github.com/chromedp/cdproto v0.0.0-20200116234248-4da64dd111ac/go.mod h1:PfAWWKJqjlGFYJEidUM6aVIWPr0EpobeyVWEEmplX7g=
1638 github.com/chromedp/cdproto v0.0.0-20200424080200-0de008e41fa0/go.mod h1:PfAWWKJqjlGFYJEidUM6aVIWPr0EpobeyVWEEmplX7g=
1639 github.com/chromedp/chromedp v0.5.3/go.mod h1:YLdPtndaHQ4rCpSpBG+IPpy9JvX0VD+7aaLxYgYj28w=
1640 github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
1641 github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
1642 github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
1643+github.com/cilium/ebpf v0.0.0-20200110133405-4032b1d8aae3/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg=
1644+github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLIdUjrmSXlK9pkrsDlLHbO8jiB8X8JnOc=
1645+github.com/cilium/ebpf v0.2.0/go.mod h1:To2CFviqOWL/M0gIMsvSMlqe7em/l1ALkX1PyjrX2Qs=
1646+github.com/cilium/ebpf v0.4.0/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs=
1647 github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag=
1648 github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I=
1649+github.com/clbanning/mxj v1.8.4/go.mod h1:BVjHeAH+rl9rs6f+QIpeRl0tfu10SXn1pUSa5PVGJng=
1650 github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE=
1651-github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
1652-github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
1653-github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
1654 github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
1655+github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed h1:OZmjad4L3H8ncOIR8rnb5MREYqG8ixi5+WbeUsquF0c=
1656+github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
1657 github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ=
1658 github.com/cockroachdb/cockroach-go v0.0.0-20181001143604-e0a95dfd547c/go.mod h1:XGLbWH/ujMcbPbhZq52Nv6UrCghb1yGn//133kEsvDk=
1659 github.com/cockroachdb/datadriven v0.0.0-20190531201743-edce55837238/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=
1660@@ -265,23 +349,114 @@ github.com/cockroachdb/errors v1.2.4/go.mod h1:rQD95gz6FARkaKkQXUksEje/d9a6wBJoC
1661 github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f h1:o/kfcElHqOiXqcou5a3rIlMc7oJbMQkeLk0VQJ7zgqY=
1662 github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI=
1663 github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI=
1664+github.com/containerd/aufs v0.0.0-20200908144142-dab0cbea06f4/go.mod h1:nukgQABAEopAHvB6j7cnP5zJ+/3aVcE7hCYqvIwAHyE=
1665+github.com/containerd/aufs v0.0.0-20201003224125-76a6863f2989/go.mod h1:AkGGQs9NM2vtYHaUen+NljV0/baGCAPELGm2q9ZXpWU=
1666+github.com/containerd/aufs v0.0.0-20210316121734-20793ff83c97/go.mod h1:kL5kd6KM5TzQjR79jljyi4olc1Vrx6XBlcyj3gNv2PU=
1667+github.com/containerd/aufs v1.0.0/go.mod h1:kL5kd6KM5TzQjR79jljyi4olc1Vrx6XBlcyj3gNv2PU=
1668+github.com/containerd/btrfs v0.0.0-20201111183144-404b9149801e/go.mod h1:jg2QkJcsabfHugurUvvPhS3E08Oxiuh5W/g1ybB4e0E=
1669+github.com/containerd/btrfs v0.0.0-20210316141732-918d888fb676/go.mod h1:zMcX3qkXTAi9GI50+0HOeuV8LU2ryCE/V2vG/ZBiTss=
1670+github.com/containerd/btrfs v1.0.0/go.mod h1:zMcX3qkXTAi9GI50+0HOeuV8LU2ryCE/V2vG/ZBiTss=
1671+github.com/containerd/cgroups v0.0.0-20190717030353-c4b9ac5c7601/go.mod h1:X9rLEHIqSf/wfK8NsPqxJmeZgW4pcfzdXITDrUSJ6uI=
1672+github.com/containerd/cgroups v0.0.0-20190919134610-bf292b21730f/go.mod h1:OApqhQ4XNSNC13gXIwDjhOQxjWa/NxkwZXJ1EvqT0ko=
1673+github.com/containerd/cgroups v0.0.0-20200531161412-0dbf7f05ba59/go.mod h1:pA0z1pT8KYB3TCXK/ocprsh7MAkoW8bZVzPdih9snmM=
1674+github.com/containerd/cgroups v0.0.0-20200710171044-318312a37340/go.mod h1:s5q4SojHctfxANBDvMeIaIovkq29IP48TKAxnhYRxvo=
1675+github.com/containerd/cgroups v0.0.0-20200824123100-0b889c03f102/go.mod h1:s5q4SojHctfxANBDvMeIaIovkq29IP48TKAxnhYRxvo=
1676+github.com/containerd/cgroups v0.0.0-20210114181951-8a68de567b68/go.mod h1:ZJeTFisyysqgcCdecO57Dj79RfL0LNeGiFUqLYQRYLE=
1677+github.com/containerd/cgroups v1.0.1/go.mod h1:0SJrPIenamHDcZhEcJMNBB85rHcUsw4f25ZfBiPYRkU=
1678+github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw=
1679+github.com/containerd/console v0.0.0-20181022165439-0650fd9eeb50/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw=
1680+github.com/containerd/console v0.0.0-20191206165004-02ecf6a7291e/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE=
1681+github.com/containerd/console v1.0.1/go.mod h1:XUsP6YE/mKtz6bxc+I8UiKKTP04qjQL4qcS3XoQ5xkw=
1682+github.com/containerd/console v1.0.2/go.mod h1:ytZPjGgY2oeTkAONYafi2kSj0aYggsf8acV1PGKCbzQ=
1683 github.com/containerd/containerd v1.2.7/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
1684+github.com/containerd/containerd v1.2.10/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
1685+github.com/containerd/containerd v1.3.0-beta.2.0.20190828155532-0293cbd26c69/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
1686+github.com/containerd/containerd v1.3.0/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
1687+github.com/containerd/containerd v1.3.1-0.20191213020239-082f7e3aed57/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
1688+github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
1689 github.com/containerd/containerd v1.3.4/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
1690-github.com/containerd/containerd v1.4.3 h1:ijQT13JedHSHrQGWFcGEwzcNKrAGIiZ+jSD5QQG07SY=
1691+github.com/containerd/containerd v1.4.0-beta.2.0.20200729163537-40b22ef07410/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
1692+github.com/containerd/containerd v1.4.1/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
1693 github.com/containerd/containerd v1.4.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
1694+github.com/containerd/containerd v1.5.0-beta.1/go.mod h1:5HfvG1V2FsKesEGQ17k5/T7V960Tmcumvqn8Mc+pCYQ=
1695+github.com/containerd/containerd v1.5.0-beta.3/go.mod h1:/wr9AVtEM7x9c+n0+stptlo/uBBoBORwEx6ardVcmKU=
1696+github.com/containerd/containerd v1.5.0-beta.4/go.mod h1:GmdgZd2zA2GYIBZ0w09ZvgqEq8EfBp/m3lcVZIvPHhI=
1697+github.com/containerd/containerd v1.5.0-rc.0/go.mod h1:V/IXoMqNGgBlabz3tHD2TWDoTJseu1FGOKuoA4nNb2s=
1698+github.com/containerd/containerd v1.5.1/go.mod h1:0DOxVqwDy2iZvrZp2JUx/E+hS0UNTVn7dJnIOwtYR4g=
1699+github.com/containerd/containerd v1.5.3/go.mod h1:sx18RgvW6ABJ4iYUw7Q5x7bgFOAB9B6G7+yO0XBc4zw=
1700+github.com/containerd/containerd v1.5.4 h1:uPF0og3ByFzDnaStfiQj3fVGTEtaSNyU+bW7GR/nqGA=
1701+github.com/containerd/containerd v1.5.4/go.mod h1:sx18RgvW6ABJ4iYUw7Q5x7bgFOAB9B6G7+yO0XBc4zw=
1702+github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y=
1703+github.com/containerd/continuity v0.0.0-20190815185530-f2a389ac0a02/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y=
1704+github.com/containerd/continuity v0.0.0-20191127005431-f65d91d395eb/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y=
1705+github.com/containerd/continuity v0.0.0-20200710164510-efbc4488d8fe/go.mod h1:cECdGN1O8G9bgKTlLhuPJimka6Xb/Gg7vYzCTNVxhvo=
1706+github.com/containerd/continuity v0.0.0-20201208142359-180525291bb7/go.mod h1:kR3BEg7bDFaEddKm54WSmrol1fKWDU1nKYkgrcgZT7Y=
1707+github.com/containerd/continuity v0.0.0-20210208174643-50096c924a4e/go.mod h1:EXlVlkqNba9rJe3j7w3Xa924itAMLgZH4UD/Q4PExuQ=
1708+github.com/containerd/continuity v0.1.0/go.mod h1:ICJu0PwR54nI0yPEnJ6jcS+J7CZAUXrLh8lPo2knzsM=
1709+github.com/containerd/fifo v0.0.0-20180307165137-3d5202aec260/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI=
1710+github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI=
1711+github.com/containerd/fifo v0.0.0-20200410184934-f15a3290365b/go.mod h1:jPQ2IAeZRCYxpS/Cm1495vGFww6ecHmMk1YJH2Q5ln0=
1712+github.com/containerd/fifo v0.0.0-20201026212402-0724c46b320c/go.mod h1:jPQ2IAeZRCYxpS/Cm1495vGFww6ecHmMk1YJH2Q5ln0=
1713+github.com/containerd/fifo v0.0.0-20210316144830-115abcc95a1d/go.mod h1:ocF/ME1SX5b1AOlWi9r677YJmCPSwwWnQ9O123vzpE4=
1714+github.com/containerd/fifo v1.0.0/go.mod h1:ocF/ME1SX5b1AOlWi9r677YJmCPSwwWnQ9O123vzpE4=
1715+github.com/containerd/go-cni v1.0.1/go.mod h1:+vUpYxKvAF72G9i1WoDOiPGRtQpqsNW/ZHtSlv++smU=
1716+github.com/containerd/go-cni v1.0.2/go.mod h1:nrNABBHzu0ZwCug9Ije8hL2xBCYh/pjfMb1aZGrrohk=
1717+github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0=
1718+github.com/containerd/go-runc v0.0.0-20190911050354-e029b79d8cda/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0=
1719+github.com/containerd/go-runc v0.0.0-20200220073739-7016d3ce2328/go.mod h1:PpyHrqVs8FTi9vpyHwPwiNEGaACDxT/N/pLcvMSRA9g=
1720+github.com/containerd/go-runc v0.0.0-20201020171139-16b287bc67d0/go.mod h1:cNU0ZbCgCQVZK4lgG3P+9tn9/PaJNmoDXPpoJhDR+Ok=
1721+github.com/containerd/go-runc v1.0.0/go.mod h1:cNU0ZbCgCQVZK4lgG3P+9tn9/PaJNmoDXPpoJhDR+Ok=
1722+github.com/containerd/imgcrypt v1.0.1/go.mod h1:mdd8cEPW7TPgNG4FpuP3sGBiQ7Yi/zak9TYCG3juvb0=
1723+github.com/containerd/imgcrypt v1.0.4-0.20210301171431-0ae5c75f59ba/go.mod h1:6TNsg0ctmizkrOgXRNQjAPFWpMYRWuiB6dSF4Pfa5SA=
1724+github.com/containerd/imgcrypt v1.1.1-0.20210312161619-7ed62a527887/go.mod h1:5AZJNI6sLHJljKuI9IHnw1pWqo/F0nGDOuR9zgTs7ow=
1725+github.com/containerd/imgcrypt v1.1.1/go.mod h1:xpLnwiQmEUJPvQoAapeb2SNCxz7Xr6PJrXQb0Dpc4ms=
1726+github.com/containerd/nri v0.0.0-20201007170849-eb1350a75164/go.mod h1:+2wGSDGFYfE5+So4M5syatU0N0f0LbWpuqyMi4/BE8c=
1727+github.com/containerd/nri v0.0.0-20210316161719-dbaa18c31c14/go.mod h1:lmxnXF6oMkbqs39FiCt1s0R2HSMhcLel9vNL3m4AaeY=
1728+github.com/containerd/nri v0.1.0/go.mod h1:lmxnXF6oMkbqs39FiCt1s0R2HSMhcLel9vNL3m4AaeY=
1729+github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o=
1730+github.com/containerd/ttrpc v0.0.0-20190828172938-92c8520ef9f8/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o=
1731+github.com/containerd/ttrpc v0.0.0-20191028202541-4f1b8fe65a5c/go.mod h1:LPm1u0xBw8r8NOKoOdNMeVHSawSsltak+Ihv+etqsE8=
1732+github.com/containerd/ttrpc v1.0.1/go.mod h1:UAxOpgT9ziI0gJrmKvgcZivgxOp8iFPSk8httJEt98Y=
1733+github.com/containerd/ttrpc v1.0.2/go.mod h1:UAxOpgT9ziI0gJrmKvgcZivgxOp8iFPSk8httJEt98Y=
1734+github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc=
1735+github.com/containerd/typeurl v0.0.0-20190911142611-5eb25027c9fd/go.mod h1:GeKYzf2pQcqv7tJ0AoCuuhtnqhva5LNU3U+OyKxxJpk=
1736+github.com/containerd/typeurl v1.0.1/go.mod h1:TB1hUtrpaiO88KEK56ijojHS1+NeF0izUACaJW2mdXg=
1737+github.com/containerd/typeurl v1.0.2/go.mod h1:9trJWW2sRlGub4wZJRTW83VtbOLS6hwcDZXTn6oPz9s=
1738+github.com/containerd/zfs v0.0.0-20200918131355-0a33824f23a2/go.mod h1:8IgZOBdv8fAgXddBT4dBXJPtxyRsejFIpXoklgxgEjw=
1739+github.com/containerd/zfs v0.0.0-20210301145711-11e8f1707f62/go.mod h1:A9zfAbMlQwE+/is6hi0Xw8ktpL+6glmqZYtevJgaB8Y=
1740+github.com/containerd/zfs v0.0.0-20210315114300-dde8f0fda960/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY=
1741+github.com/containerd/zfs v0.0.0-20210324211415-d5c4544f0433/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY=
1742+github.com/containerd/zfs v1.0.0/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY=
1743+github.com/containernetworking/cni v0.7.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY=
1744+github.com/containernetworking/cni v0.8.0/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY=
1745+github.com/containernetworking/cni v0.8.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY=
1746+github.com/containernetworking/plugins v0.8.6/go.mod h1:qnw5mN19D8fIwkqW7oHHYDHVlzhJpcY6TQxn/fUyDDM=
1747+github.com/containernetworking/plugins v0.9.1/go.mod h1:xP/idU2ldlzN6m4p5LmGiwRDjeJr6FLK6vuiUwoH7P8=
1748+github.com/containers/ocicrypt v1.0.1/go.mod h1:MeJDzk1RJHv89LjsH0Sp5KTY3ZYkjXO/C+bKAeWFIrc=
1749+github.com/containers/ocicrypt v1.1.0/go.mod h1:b8AOe0YR67uU8OqfVNcznfFpAzu3rdgUV4GP9qXPfu4=
1750+github.com/containers/ocicrypt v1.1.1/go.mod h1:Dm55fwWm1YZAjYRaJ94z2mfZikIyIN4B0oB3dj3jFxY=
1751 github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
1752+github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
1753+github.com/coreos/etcd v3.3.13+incompatible h1:8F3hqu9fGYLBifCmRCJsicFqDx/D68Rt3q1JMazcgBQ=
1754 github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
1755+github.com/coreos/go-iptables v0.4.5/go.mod h1:/mVI274lEDI2ns62jHCDnCyBF9Iwsmekav8Dbxlm1MU=
1756+github.com/coreos/go-iptables v0.5.0/go.mod h1:/mVI274lEDI2ns62jHCDnCyBF9Iwsmekav8Dbxlm1MU=
1757+github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc=
1758 github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
1759 github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM=
1760 github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
1761+github.com/coreos/go-systemd v0.0.0-20161114122254-48702e0da86b/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
1762 github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
1763 github.com/coreos/go-systemd v0.0.0-20181012123002-c6f51f82210d/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
1764 github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
1765 github.com/coreos/go-systemd v0.0.0-20191104093116-d3cd4ed1dbcf h1:iW4rZ826su+pqaw19uhpSCzhj44qo35pNgKFGqzDKkU=
1766 github.com/coreos/go-systemd v0.0.0-20191104093116-d3cd4ed1dbcf/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
1767-github.com/coreos/go-systemd/v22 v22.1.0 h1:kq/SbG2BCKLkDKkjQf5OWwKWUKj1lgs3lFI4PxnR5lg=
1768+github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk=
1769 github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk=
1770+github.com/coreos/go-systemd/v22 v22.3.2 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI=
1771+github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
1772 github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
1773+github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f h1:lBNOc5arjvs8E5mO2tbpBpLoyyu8B6e44T7hJy6potg=
1774 github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
1775 github.com/cortexproject/cortex v0.6.1-0.20200228110116-92ab6cbe0995/go.mod h1:3Xa3DjJxtpXqxcMGdk850lcIRb81M0fyY1MQ6udY134=
1776 github.com/cortexproject/cortex v1.2.1-0.20200805064754-d8edc95e2c91/go.mod h1:PVPxNLrxKH+yc8asaJOxuz7TiRmMizFfnSMOnRzM6oM=
1777@@ -293,12 +468,15 @@ github.com/cortexproject/cortex v1.6.1-0.20210215155036-dfededd9f331/go.mod h1:8
1778 github.com/cortexproject/cortex v1.7.1-0.20210224085859-66d6fb5b0d42/go.mod h1:u2dxcHInYbe45wxhLoWVdlFJyDhXewsMcxtnbq/QbH4=
1779 github.com/cortexproject/cortex v1.7.1-0.20210316085356-3fedc1108a49/go.mod h1:/DBOW8TzYBTE/U+O7Whs7i7E2eeeZl1iRVDtIqxn5kg=
1780 github.com/cortexproject/cortex v1.8.1-0.20210422151339-cf1c444e0905/go.mod h1:xxm4/CLvTmDxwE7yXwtClR4dIvkG4S09o5DygPOgc1U=
1781+github.com/cortexproject/cortex v1.10.1-0.20210820081236-70dddb6b70b8/go.mod h1:F8PX2IHaeFvqCci46Y+fhskJkCtLvh0OqCKFtWyjP7w=
1782 github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
1783 github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
1784 github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
1785 github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
1786 github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
1787 github.com/cucumber/godog v0.8.1/go.mod h1:vSh3r/lM+psC1BPXvdkSEuNjmXfpVqrMGYAElF6hxnA=
1788+github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4=
1789+github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4=
1790 github.com/cznic/b v0.0.0-20180115125044-35e9bbe41f07/go.mod h1:URriBxXwVq5ijiJ12C7iIZqlA69nTlI+LgI6/pwftG8=
1791 github.com/cznic/fileutil v0.0.0-20180108211300-6a051e75936f/go.mod h1:8S58EK26zhXSxzv7NQFpnliaOQsmDUxvoQO3rt154Vg=
1792 github.com/cznic/golex v0.0.0-20170803123110-4ab7c5e190e4/go.mod h1:+bmmJDNmKlhWNG+gwWCkaBoTy39Fs+bzRxVBzoTQbIc=
1793@@ -309,12 +487,23 @@ github.com/cznic/ql v1.2.0/go.mod h1:FbpzhyZrqr0PVlK6ury+PoW3T0ODUV22OeWIxcaOrSE
1794 github.com/cznic/sortutil v0.0.0-20150617083342-4c7342852e65/go.mod h1:q2w6Bg5jeox1B+QkJ6Wp/+Vn0G/bo3f1uY7Fn3vivIQ=
1795 github.com/cznic/strutil v0.0.0-20171016134553-529a34b1c186/go.mod h1:AHHPPPXTw0h6pVabbcbyGRK1DckRn7r/STdZEeIDzZc=
1796 github.com/cznic/zappy v0.0.0-20160723133515-2533cb5b45cc/go.mod h1:Y1SNZ4dRUOKXshKUbwUapqNncRrho4mkjQebgEHZLj8=
1797+github.com/d2g/dhcp4 v0.0.0-20170904100407-a1d1b6c41b1c/go.mod h1:Ct2BUK8SB0YC1SMSibvLzxjeJLnrYEVLULFNiHY9YfQ=
1798+github.com/d2g/dhcp4client v1.0.0/go.mod h1:j0hNfjhrt2SxUOw55nL0ATM/z4Yt3t2Kd1mW34z5W5s=
1799+github.com/d2g/dhcp4server v0.0.0-20181031114812-7d4a0a7f59a5/go.mod h1:Eo87+Kg/IX2hfWJfwxMzLyuSZyxSoAug2nGa1G2QAi8=
1800+github.com/d2g/hardwareaddr v0.0.0-20190221164911-e7d9fbe030e4/go.mod h1:bMl4RjIciD2oAxI7DmWRx6gbeqrkoLqv3MV0vzNad+I=
1801 github.com/dave/jennifer v1.2.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg=
1802 github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
1803 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
1804 github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
1805 github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
1806+github.com/deepmap/oapi-codegen v1.6.0/go.mod h1:ryDa9AgbELGeB+YEXE1dR53yAjHwFvE9iAUlWl9Al3M=
1807 github.com/denisenkom/go-mssqldb v0.0.0-20190515213511-eb9f6a1743f3/go.mod h1:zAg7JM8CkOJ43xKXIj7eRO9kmWm/TW578qo+oDO6tuM=
1808+github.com/denisenkom/go-mssqldb v0.0.0-20200428022330-06a60b6afbbc/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU=
1809+github.com/denisenkom/go-mssqldb v0.10.0/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU=
1810+github.com/dennwc/varint v1.0.0 h1:kGNFFSSw8ToIy3obO/kKr8U9GZYUAxQEVuix4zfDWzE=
1811+github.com/dennwc/varint v1.0.0/go.mod h1:hnItb35rvZvJrbTALZtY/iQfDs48JKRG1RPpgziApxA=
1812+github.com/denverdino/aliyungo v0.0.0-20190125010748-a747050bb1ba/go.mod h1:dV8lFg6daOBZbT6/BDGIz6Y3WFGn8juu6G+CQ6LHtl0=
1813+github.com/dgrijalva/jwt-go v0.0.0-20170104182250-a601269ab70c/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
1814 github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
1815 github.com/dgrijalva/jwt-go/v4 v4.0.0-preview1/go.mod h1:+hnT3ywWDTAFrW5aE+u2Sa/wT555ZqwoCS+pk3p6ry4=
1816 github.com/dgryski/go-bitstream v0.0.0-20180413035011-3522498ce2c8/go.mod h1:VMaSuZ+SZcx/wljOQKvp5srsbCiKDEb6K2wC4+PiBmQ=
1817@@ -333,10 +522,17 @@ github.com/digitalocean/godo v1.46.0/go.mod h1:p7dOjjtSBqCTUksqtA5Fd3uaKs9kyTq2x
1818 github.com/digitalocean/godo v1.52.0/go.mod h1:p7dOjjtSBqCTUksqtA5Fd3uaKs9kyTq2xcz76ulEJRU=
1819 github.com/digitalocean/godo v1.57.0/go.mod h1:p7dOjjtSBqCTUksqtA5Fd3uaKs9kyTq2xcz76ulEJRU=
1820 github.com/digitalocean/godo v1.58.0/go.mod h1:p7dOjjtSBqCTUksqtA5Fd3uaKs9kyTq2xcz76ulEJRU=
1821-github.com/digitalocean/godo v1.60.0 h1:o/vimtn/HKtYSakFAAZ59Zc5ASORd41S4z1X7pAXPn8=
1822 github.com/digitalocean/godo v1.60.0/go.mod h1:p7dOjjtSBqCTUksqtA5Fd3uaKs9kyTq2xcz76ulEJRU=
1823+github.com/digitalocean/godo v1.62.0/go.mod h1:p7dOjjtSBqCTUksqtA5Fd3uaKs9kyTq2xcz76ulEJRU=
1824+github.com/digitalocean/godo v1.65.0 h1:3SywGJBC18HaYtPQF+T36jYzXBi+a6eIMonSjDll7TA=
1825+github.com/digitalocean/godo v1.65.0/go.mod h1:p7dOjjtSBqCTUksqtA5Fd3uaKs9kyTq2xcz76ulEJRU=
1826+github.com/dimchansky/utfbom v1.1.0/go.mod h1:rO41eb7gLfo8SF1jd9F8HplJm1Fewwi4mQvIirEdv+8=
1827+github.com/dimchansky/utfbom v1.1.1 h1:vV6w1AhK4VMnhBno/TPVCoK9U/LP0PkLCS9tbxHdi/U=
1828+github.com/dimchansky/utfbom v1.1.1/go.mod h1:SxdoEBH5qIqFocHMyGOXVAybYJdr71b1Q/j0mACtrfE=
1829 github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E=
1830+github.com/docker/distribution v0.0.0-20190905152932-14b96e55d84c/go.mod h1:0+TTO4EOBfRPhZXAeF1Vu+W3hHZ8eLp8PgKVZlcvtFY=
1831 github.com/docker/distribution v2.7.0+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
1832+github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
1833 github.com/docker/distribution v2.7.1+incompatible h1:a5mlkVzth6W5A4fOsS3D2EO5BUmsJpcB+cRlLU7cSug=
1834 github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
1835 github.com/docker/docker v0.7.3-0.20190103212154-2b7e084dc98b/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
1836@@ -344,13 +540,20 @@ github.com/docker/docker v0.7.3-0.20190817195342-4760db040282/go.mod h1:eEKB0N0r
1837 github.com/docker/docker v17.12.0-ce-rc1.0.20200706150819-a40b877fbb9e+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
1838 github.com/docker/docker v20.10.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
1839 github.com/docker/docker v20.10.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
1840-github.com/docker/docker v20.10.6+incompatible h1:oXI3Vas8TI8Eu/EjH4srKHJBVqraSzJybhxY7Om9faQ=
1841 github.com/docker/docker v20.10.6+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
1842+github.com/docker/docker v20.10.7+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
1843+github.com/docker/docker v20.10.8+incompatible h1:RVqD337BgQicVCzYrrlhLDWhq6OAD2PJDUg2LsEUvKM=
1844+github.com/docker/docker v20.10.8+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
1845 github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ=
1846 github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec=
1847+github.com/docker/go-events v0.0.0-20170721190031-9461782956ad/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA=
1848+github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA=
1849+github.com/docker/go-metrics v0.0.0-20180209012529-399ea8c73916/go.mod h1:/u0gXw0Gay3ceNrsHubL3BtdOL2fHf93USgMTe0W5dI=
1850+github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw=
1851 github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
1852 github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw=
1853 github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
1854+github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE=
1855 github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM=
1856 github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
1857 github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
1858@@ -363,6 +566,10 @@ github.com/eclipse/paho.mqtt.golang v1.2.0/go.mod h1:H9keYFcgq3Qr5OUJm/JZI/i6U7j
1859 github.com/edsrzf/mmap-go v0.0.0-20170320065105-0bce6a688712/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=
1860 github.com/edsrzf/mmap-go v1.0.0 h1:CEBF7HpRnUCSJgGUb5h1Gm7e3VkmVDrR8lvWVLtrOFw=
1861 github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=
1862+github.com/efficientgo/e2e v0.11.1-0.20210829161758-f4cc6dbdc6ea/go.mod h1:vDnF4AAEZmO0mvyFIATeDJPFaSRM7ywaOnKd61zaSoE=
1863+github.com/efficientgo/tools/core v0.0.0-20210129205121-421d0828c9a6/go.mod h1:OmVcnJopJL8d3X3sSXTiypGoUSgFq1aDGmlrdi9dn/M=
1864+github.com/efficientgo/tools/extkingpin v0.0.0-20210609125236-d73259166f20 h1:kM/ALyvAnTrwSB+nlKqoKaDnZbInp1YImZvW+gtHwc8=
1865+github.com/efficientgo/tools/extkingpin v0.0.0-20210609125236-d73259166f20/go.mod h1:ZV0utlglOczUWv3ih2AbqPSoLoFzdplUYxwV62eZi6Q=
1866 github.com/elastic/go-sysinfo v1.0.1/go.mod h1:O/D5m1VpYLwGjCYzEt63g3Z1uO3jXfwyzzjiW90t8cY=
1867 github.com/elastic/go-sysinfo v1.1.1/go.mod h1:i1ZYdU10oLNfRzq4vq62BEwD2fH8KaWh6eh0ikPT9F0=
1868 github.com/elastic/go-windows v1.0.0/go.mod h1:TsU0Nrp7/y3+VwE82FoZF8gC/XFg/Elz6CcloAxnPgU=
1869@@ -371,60 +578,76 @@ github.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e/go.mod h1:/Zj4wYkg
1870 github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
1871 github.com/ema/qdisc v0.0.0-20190904071900-b82c76788043/go.mod h1:ix4kG2zvdUd8kEKSW0ZTr1XLks0epFpI4j745DXxlNE=
1872 github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
1873-github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g=
1874-github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
1875-github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
1876-github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
1877-github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po=
1878-github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
1879+github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
1880 github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
1881+github.com/envoyproxy/go-control-plane v0.9.9 h1:vQLjymTobffN2R0F8eTqw6q7iozfRO5Z0m+/4Vw+/uA=
1882+github.com/envoyproxy/go-control-plane v0.9.9/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ=
1883 github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
1884+github.com/envoyproxy/protoc-gen-validate v0.6.1 h1:4CF52PCseTFt4bE+Yk3dIpdVi7XWuPVMhPtm4FaIJPM=
1885+github.com/envoyproxy/protoc-gen-validate v0.6.1/go.mod h1:txg5va2Qkip90uYoSKH+nkAAmXrb2j3iq4FLwdrCbXQ=
1886 github.com/evanphx/json-patch v0.0.0-20200808040245-162e5629780b/go.mod h1:NAJj0yf/KaRKURN6nyi7A9IZydMivZEm9oQLWNjfKDc=
1887 github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
1888 github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
1889 github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
1890+github.com/evanphx/json-patch v4.11.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
1891 github.com/facette/natsort v0.0.0-20181210072756-2cd4dd1e2dcb h1:IT4JYU7k4ikYg1SCxNI1/Tieq/NFvh6dzLdgi7eu0tM=
1892 github.com/facette/natsort v0.0.0-20181210072756-2cd4dd1e2dcb/go.mod h1:bH6Xx7IW64qjjJq8M2u4dxNaBiDfKK+z/3eGDpXEQhc=
1893 github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
1894-github.com/fatih/color v1.9.0 h1:8xPHl4/q1VyqGIPif1F+1V3Y3lSmrq01EabUW3CoW5s=
1895 github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
1896+github.com/fatih/color v1.12.0 h1:mRhaKNwANqRgUBGKmnI5ZxEk7QXmjQeCcuYFMX2bfcc=
1897+github.com/fatih/color v1.12.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM=
1898 github.com/fatih/structtag v1.1.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94=
1899 github.com/felixge/fgprof v0.9.1 h1:E6FUJ2Mlv043ipLOCFqo8+cHo9MhQ203E2cdEK/isEs=
1900 github.com/felixge/fgprof v0.9.1/go.mod h1:7/HK6JFtFaARhIljgP2IV8rJLIoHDoOYoUphsnGvqxE=
1901 github.com/felixge/httpsnoop v1.0.1 h1:lvB5Jl89CsZtGIWuTcDM1E/vkVs49/Ml7JJe07l8SPQ=
1902 github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
1903 github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
1904-github.com/form3tech-oss/jwt-go v3.2.2+incompatible h1:TcekIExNqud5crz4xD2pavyTgWiPvpYe4Xau31I0PRk=
1905 github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k=
1906+github.com/form3tech-oss/jwt-go v3.2.3+incompatible h1:7ZaBxOI7TMoYBfyA3cQHErNNyAWIKUMIwqxEtgHOs5c=
1907+github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k=
1908 github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g=
1909+github.com/foxcpp/go-mockdns v0.0.0-20201212160233-ede2f9158d15/go.mod h1:tPg4cp4nseejPd+UKxtCVQ2hUxNTZ7qQZJa7CLriIeo=
1910 github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4=
1911+github.com/franela/goblin v0.0.0-20210519012713-85d372ac71e2/go.mod h1:VzmDKDJVZI3aJmnRI9VjAn9nJ8qPPsN1fqzr9dqInIo=
1912 github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20=
1913+github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k=
1914 github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
1915 github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4=
1916 github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
1917 github.com/fsouza/fake-gcs-server v1.7.0 h1:Un0BXUXrRWYSmYyC1Rqm2e2WJfTPyDy/HGMz31emTi8=
1918 github.com/fsouza/fake-gcs-server v1.7.0/go.mod h1:5XIRs4YvwNbNoz+1JF8j6KLAyDh7RHGAyAK3EP2EsNk=
1919+github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA=
1920+github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY=
1921+github.com/getkin/kin-openapi v0.53.0/go.mod h1:7Yn5whZr5kJi6t+kShccXS8ae1APpYTW6yheSwk8Yi4=
1922 github.com/getsentry/raven-go v0.2.0 h1:no+xWJRb5ZI7eE8TWgIq1jLulQiIoLG0IfYxv5JYMGs=
1923 github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ=
1924 github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
1925 github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
1926+github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI=
1927+github.com/gin-gonic/gin v1.5.0/go.mod h1:Nd6IXA8m5kNZdNEHMBd93KT+mdY3+bewLgRvmCsR2Do=
1928 github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
1929 github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
1930 github.com/glycerine/go-unsnap-stream v0.0.0-20180323001048-9f0cb55181dd/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE=
1931 github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24=
1932+github.com/go-chi/chi v4.1.0+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ=
1933+github.com/go-chi/chi/v5 v5.0.0/go.mod h1:BBug9lr0cqtdAhsu6R4AAdvufI0/XBzAQSsUqJpoZOs=
1934 github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
1935 github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
1936 github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
1937 github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
1938 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
1939-github.com/go-kit/kit v0.10.0 h1:dXFJfIHVvUcpSgDOV+Ne6t7jXri8Tfv2uOLHUZ2XNuo=
1940 github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o=
1941-github.com/go-kit/log v0.1.0 h1:DGJh0Sm43HbOeYDNnVZFl8BvcYVvjD5bqYJvp0REbwQ=
1942+github.com/go-kit/kit v0.11.0/go.mod h1:73/6Ixaufkvb5Osvkls8C79vuQ49Ba1rUEUYNSf+FUw=
1943+github.com/go-kit/kit v0.12.0 h1:e4o3o3IsBfAKQh5Qbbiqyfu97Ku7jrO/JbohvztANh4=
1944+github.com/go-kit/kit v0.12.0/go.mod h1:lHd+EkCZPIwYItmGDDRdhinkzX2A1sj+M9biaEaizzs=
1945 github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY=
1946+github.com/go-kit/log v0.2.0 h1:7i2K3eKTos3Vc0enKCfnVcgHh2olr/MyfboYq7cAcFw=
1947+github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0=
1948 github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
1949 github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
1950-github.com/go-logfmt/logfmt v0.5.0 h1:TrB8swr/68K7m9CcGut2g3UOihhbcbiMAYiuTXdEih4=
1951 github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
1952+github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA=
1953+github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs=
1954 github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
1955 github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
1956 github.com/go-logr/logr v0.4.0 h1:K7/B1jt6fIBQVd4Owv2MqGQClcgf0R266+7C/QjRcLc=
1957@@ -492,8 +715,9 @@ github.com/go-openapi/runtime v0.19.15/go.mod h1:dhGWCTKRXlAfGnQG0ONViOZpjfg0m2g
1958 github.com/go-openapi/runtime v0.19.16/go.mod h1:5P9104EJgYcizotuXhEuUrzVc+j1RiSjahULvYmlv98=
1959 github.com/go-openapi/runtime v0.19.24/go.mod h1:Lm9YGCeecBnUUkFTxPC4s1+lwrkJ0pthx8YvyjCfkgk=
1960 github.com/go-openapi/runtime v0.19.26/go.mod h1:BvrQtn6iVb2QmiVXRsFAm6ZCAZBpbVKFfN6QWCp582M=
1961-github.com/go-openapi/runtime v0.19.28 h1:9lYu6axek8LJrVkMVViVirRcpoaCxXX7+sSvmizGVnA=
1962 github.com/go-openapi/runtime v0.19.28/go.mod h1:BvrQtn6iVb2QmiVXRsFAm6ZCAZBpbVKFfN6QWCp582M=
1963+github.com/go-openapi/runtime v0.19.29 h1:5IIvCaIDbxetN674vX9eOxvoZ9mYGQ16fV1Q0VSG+NA=
1964+github.com/go-openapi/runtime v0.19.29/go.mod h1:BvrQtn6iVb2QmiVXRsFAm6ZCAZBpbVKFfN6QWCp582M=
1965 github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc=
1966 github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
1967 github.com/go-openapi/spec v0.17.2/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
1968@@ -519,8 +743,9 @@ github.com/go-openapi/strfmt v0.19.4/go.mod h1:eftuHTlB/dI8Uq8JJOyRlieZf+WkkxUuk
1969 github.com/go-openapi/strfmt v0.19.5/go.mod h1:eftuHTlB/dI8Uq8JJOyRlieZf+WkkxUuk0dgdHXr2Qk=
1970 github.com/go-openapi/strfmt v0.19.11/go.mod h1:UukAYgTaQfqJuAFlNxxMWNvMYiwiXtLsF2VwmoFtbtc=
1971 github.com/go-openapi/strfmt v0.20.0/go.mod h1:UukAYgTaQfqJuAFlNxxMWNvMYiwiXtLsF2VwmoFtbtc=
1972-github.com/go-openapi/strfmt v0.20.1 h1:1VgxvehFne1mbChGeCmZ5pc0LxUf6yaACVSIYAR91Xc=
1973 github.com/go-openapi/strfmt v0.20.1/go.mod h1:43urheQI9dNtE5lTZQfuFJvjYJKPrxicATpEfZwHUNk=
1974+github.com/go-openapi/strfmt v0.20.2 h1:6XZL+fF4VZYFxKQGLAUB358hOrRh/wS51uWEtlONADE=
1975+github.com/go-openapi/strfmt v0.20.2/go.mod h1:43urheQI9dNtE5lTZQfuFJvjYJKPrxicATpEfZwHUNk=
1976 github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I=
1977 github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
1978 github.com/go-openapi/swag v0.17.2/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
1979@@ -548,15 +773,20 @@ github.com/go-openapi/validate v0.19.15/go.mod h1:tbn/fdOwYHgrhPBzidZfJC2MIVvs9G
1980 github.com/go-openapi/validate v0.20.1/go.mod h1:b60iJT+xNNLfaQJUqLI7946tYiFEOuE9E4k54HpKcJ0=
1981 github.com/go-openapi/validate v0.20.2 h1:AhqDegYV3J3iQkMPJSXkvzymHKMTw0BST3RK3hTT4ts=
1982 github.com/go-openapi/validate v0.20.2/go.mod h1:e7OJoKNgd0twXZwIn0A43tHbvIcr/rZIVCbJBpTUoY0=
1983+github.com/go-playground/locales v0.12.1/go.mod h1:IUMDtCfWo/w/mtMfIE/IG2K+Ey3ygWanZIBtBW0W2TM=
1984+github.com/go-playground/universal-translator v0.16.0/go.mod h1:1AnU7NaIRDWWzGEKwgtJRd2xk99HeFyHw3yid4rvQIY=
1985 github.com/go-redis/redis/v8 v8.0.0-beta.10.0.20200905143926-df7fe4e2ce72/go.mod h1:CJP1ZIHwhosNYwIdaHPZK9vHsM3+roNBaZ7U9Of1DXc=
1986 github.com/go-redis/redis/v8 v8.2.3/go.mod h1:ysgGY09J/QeDYbu3HikWEIPCwaeOkuNoTgKayTEaEOw=
1987 github.com/go-redis/redis/v8 v8.9.0 h1:FTTbB7WqlXfVNdVv0SsxA+oVi0bAwit6bMe3IUucq2o=
1988 github.com/go-redis/redis/v8 v8.9.0/go.mod h1:ik7vb7+gm8Izylxu6kf6wG26/t2VljgCfSQ1DM4O1uU=
1989+github.com/go-resty/resty/v2 v2.1.1-0.20191201195748-d7b97669fe48 h1:JVrqSeQfdhYRFk24TvhTZWU0q8lfCojxZQFi3Ou7+uY=
1990+github.com/go-resty/resty/v2 v2.1.1-0.20191201195748-d7b97669fe48/go.mod h1:dZGr0i9PLlaaTD4H/hoZIDjQ+r6xq8mgbRzHZf7f2J8=
1991 github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
1992 github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
1993 github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
1994 github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk=
1995 github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
1996+github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
1997 github.com/go-zookeeper/zk v1.0.2 h1:4mx0EYENAdX/B/rbunjlt5+4RTA/a9SMHBRuSKdGxPM=
1998 github.com/go-zookeeper/zk v1.0.2/go.mod h1:nOB03cncLtlp4t+UAkGSV+9beXP/akpekBwL+UX1Qcw=
1999 github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0=
2000@@ -586,13 +816,20 @@ github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY9
2001 github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo=
2002 github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw=
2003 github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM=
2004+github.com/godbus/dbus v0.0.0-20151105175453-c7fdd8b5cd55/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw=
2005+github.com/godbus/dbus v0.0.0-20180201030542-885f9cc04c9c/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw=
2006 github.com/godbus/dbus v0.0.0-20190402143921-271e53dc4968/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw=
2007+github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4=
2008 github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
2009+github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
2010 github.com/gofrs/uuid v3.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
2011 github.com/gofrs/uuid v4.0.0+incompatible h1:1SD/1F5pU8p29ybwgQSwpQk+mwdRrXCYuPhW6m+TnJw=
2012 github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
2013-github.com/gogo/googleapis v1.1.0 h1:kFkMAZBNAn4j7K0GiZr8cRYzejq68VbheufiV3YuyFI=
2014+github.com/gogo/googleapis v0.0.0-20180223154316-0cd9801be74a/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s=
2015 github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s=
2016+github.com/gogo/googleapis v1.2.0/go.mod h1:Njal3psf3qN6dwBtQfUmBZh2ybovJ0tlu3o/AC7HYjU=
2017+github.com/gogo/googleapis v1.4.0 h1:zgVt4UpGxcqVOw97aRGxT4svlcmdK35fynLNctY32zI=
2018+github.com/gogo/googleapis v1.4.0/go.mod h1:5YRNX2z1oM5gXdAkurHa942MDgEJyk02w4OecKY87+c=
2019 github.com/gogo/protobuf v1.0.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
2020 github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
2021 github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
2022@@ -603,10 +840,14 @@ github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXP
2023 github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
2024 github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
2025 github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
2026-github.com/gogo/status v1.0.3 h1:WkVBY59mw7qUNTr/bLwO7J2vesJ0rQ2C3tMXrTd3w5M=
2027 github.com/gogo/status v1.0.3/go.mod h1:SavQ51ycCLnc7dGyJxp8YAmudx8xqiVrRf+6IXRsugc=
2028+github.com/gogo/status v1.1.0 h1:+eIkrewn5q6b30y+g/BJINVVdi2xH7je5MPJ3ZPK3JA=
2029+github.com/gogo/status v1.1.0/go.mod h1:BFv9nrluPLmrS0EmGVvLaPNmRosr9KapBYd5/hpY1WM=
2030+github.com/golang-jwt/jwt/v4 v4.0.0 h1:RAqyYixv1p7uEnocuy8P1nru5wprCh/MH2BIlW5z5/o=
2031+github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg=
2032 github.com/golang-migrate/migrate/v4 v4.7.0 h1:gONcHxHApDTKXDyLH/H97gEHmpu1zcnnbAaq2zgrPrs=
2033 github.com/golang-migrate/migrate/v4 v4.7.0/go.mod h1:Qvut3N4xKWjoH3sokBccML6WyHSnggXm/DvMMnTsQIc=
2034+github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0=
2035 github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
2036 github.com/golang/geo v0.0.0-20190916061304-5b978397cfec/go.mod h1:QZ0nwyI2jOfgRAoBvP+ab5aRr7c9x7lhGEJrKvBwjWI=
2037 github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
2038@@ -615,10 +856,10 @@ github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4er
2039 github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
2040 github.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
2041 github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
2042-github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e h1:1r7pUrabqp18hOBcwBwiTsbnFeTZHV9eER/QT5JVZxY=
2043 github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
2044+github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
2045+github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
2046 github.com/golang/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:tluoj9z5200jBnyusfRPU2LqT6J+DAorxEvtC7LHB+E=
2047-github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
2048 github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
2049 github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y=
2050 github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
2051@@ -626,6 +867,7 @@ github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt
2052 github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
2053 github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4=
2054 github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8=
2055+github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs=
2056 github.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
2057 github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
2058 github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
2059@@ -649,15 +891,19 @@ github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8l
2060 github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
2061 github.com/golang/snappy v0.0.2/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
2062 github.com/golang/snappy v0.0.3-0.20201103224600-674baa8c7fc3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
2063-github.com/golang/snappy v0.0.3 h1:fHPg5GQYlCeLIPB9BZqMVR5nR9A+IM5zcgeTdjMYmLA=
2064 github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
2065+github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=
2066+github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
2067+github.com/golangci/lint-1 v0.0.0-20181222135242-d2cdd8c08219/go.mod h1:/X8TswGSh1pIozq4ZwCfxS0WA5JGXguxk94ar/4c87Y=
2068 github.com/gomodule/redigo v1.8.4/go.mod h1:P9dn9mFrCBvWhGE1wpxx6fgq7BAeLBk+UUUzlpkBYO0=
2069 github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4=
2070 github.com/google/btree v0.0.0-20180124185431-e89373fe6b4a/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
2071 github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
2072-github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo=
2073 github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
2074+github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4=
2075+github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA=
2076 github.com/google/flatbuffers v1.11.0/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8=
2077+github.com/google/flatbuffers v2.0.0+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8=
2078 github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
2079 github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
2080 github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
2081@@ -668,8 +914,9 @@ github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
2082 github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
2083 github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
2084 github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
2085-github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
2086 github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
2087+github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ=
2088+github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
2089 github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ=
2090 github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk=
2091 github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=
2092@@ -680,14 +927,16 @@ github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/
2093 github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no=
2094 github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
2095 github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
2096-github.com/google/martian/v3 v3.1.0 h1:wCKgOCHuUEVfsaQLpPSJb7VdYCdTVZQAuOdYm1yc/60=
2097 github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
2098+github.com/google/martian/v3 v3.2.1 h1:d8MncMlErDFTwQGBK1xhv026j9kqhvw1Qv9IbWT1VLQ=
2099+github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk=
2100 github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
2101 github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
2102 github.com/google/pprof v0.0.0-20190723021845-34ac40c74b70/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
2103 github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
2104 github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
2105 github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
2106+github.com/google/pprof v0.0.0-20200417002340-c6e0a841f49a/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
2107 github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
2108 github.com/google/pprof v0.0.0-20200507031123-427632fa3b1c/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
2109 github.com/google/pprof v0.0.0-20200615235658-03e1cf38a040/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
2110@@ -700,57 +949,76 @@ github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLe
2111 github.com/google/pprof v0.0.0-20210208152844-1612e9be7af6/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
2112 github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
2113 github.com/google/pprof v0.0.0-20210323184331-8eee2492667d/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
2114-github.com/google/pprof v0.0.0-20210504235042-3a04a4d88a10 h1:wAh7XxYU1O92WP9JMsK0elU+haxEN0HTc2m/C89wQvk=
2115 github.com/google/pprof v0.0.0-20210504235042-3a04a4d88a10/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
2116+github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
2117+github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
2118+github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
2119+github.com/google/pprof v0.0.0-20210827144239-02619b876842 h1:JCrt5MIE1fHQtdy1825HwJ45oVQaqHE6lgssRhjcg/o=
2120+github.com/google/pprof v0.0.0-20210827144239-02619b876842/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
2121 github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
2122 github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
2123 github.com/google/uuid v1.1.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
2124 github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
2125-github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y=
2126 github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
2127+github.com/google/uuid v1.2.0 h1:qJYtXnJRWmpe7m/3XlyhrsLrEURqHRM2kxzoxXqyUDs=
2128+github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
2129 github.com/googleapis/gax-go v2.0.2+incompatible h1:silFMLAnr330+NRuag/VjIGF7TLp/LBrV2CJKFLWEww=
2130 github.com/googleapis/gax-go v2.0.2+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY=
2131 github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
2132-github.com/googleapis/gax-go/v2 v2.0.5 h1:sjZBwGj9Jlw33ImPtvFviGYvseOtDM7hkSKB7+Tv3SM=
2133 github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
2134+github.com/googleapis/gax-go/v2 v2.1.0 h1:6DWmvNpomjL1+3liNSZbVns3zsYzzCjm6pRBO1tLeso=
2135+github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0=
2136 github.com/googleapis/gnostic v0.0.0-20170426233943-68f4ded48ba9/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
2137 github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
2138 github.com/googleapis/gnostic v0.1.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
2139 github.com/googleapis/gnostic v0.3.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
2140 github.com/googleapis/gnostic v0.3.1/go.mod h1:on+2t9HRStVgn95RSsFWFz+6Q0Snyqv1awfrALZdbtU=
2141 github.com/googleapis/gnostic v0.4.0/go.mod h1:on+2t9HRStVgn95RSsFWFz+6Q0Snyqv1awfrALZdbtU=
2142-github.com/googleapis/gnostic v0.4.1 h1:DLJCy1n/vrD4HPjOvYcT8aYQXpPIzoRZONaYwyycI+I=
2143 github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg=
2144+github.com/googleapis/gnostic v0.5.1/go.mod h1:6U4PtQXGIEt/Z3h5MAT7FNofLnw9vXk2cUuW7uA/OeU=
2145+github.com/googleapis/gnostic v0.5.5 h1:9fHAtK0uDfpveeqqo1hkEZJcFvYXAiCN3UutL8F9xHw=
2146+github.com/googleapis/gnostic v0.5.5/go.mod h1:7+EbHbldMins07ALC74bsA81Ovc97DwqyJO1AENw9kA=
2147 github.com/gophercloud/gophercloud v0.3.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8=
2148 github.com/gophercloud/gophercloud v0.6.0/go.mod h1:GICNByuaEBibcjmjvI7QvYJSZEbGkcYwAR7EZK2WMqM=
2149+github.com/gophercloud/gophercloud v0.10.0/go.mod h1:gmC5oQqMDOMO1t1gq5DquX/yAU808e/4mzjjDA76+Ss=
2150 github.com/gophercloud/gophercloud v0.11.0/go.mod h1:gmC5oQqMDOMO1t1gq5DquX/yAU808e/4mzjjDA76+Ss=
2151 github.com/gophercloud/gophercloud v0.12.0/go.mod h1:gmC5oQqMDOMO1t1gq5DquX/yAU808e/4mzjjDA76+Ss=
2152 github.com/gophercloud/gophercloud v0.13.0/go.mod h1:VX0Ibx85B60B5XOrZr6kaNwrmPUzcmMpwxvQ1WQIIWM=
2153 github.com/gophercloud/gophercloud v0.14.0/go.mod h1:VX0Ibx85B60B5XOrZr6kaNwrmPUzcmMpwxvQ1WQIIWM=
2154 github.com/gophercloud/gophercloud v0.15.0/go.mod h1:VX0Ibx85B60B5XOrZr6kaNwrmPUzcmMpwxvQ1WQIIWM=
2155 github.com/gophercloud/gophercloud v0.16.0/go.mod h1:wRtmUelyIIv3CSSDI47aUwbs075O6i+LY+pXsKCBsb4=
2156-github.com/gophercloud/gophercloud v0.17.0 h1:BgVw0saxyeHWH5us/SQe1ltp0GRnytjmOLXDA8pO77E=
2157 github.com/gophercloud/gophercloud v0.17.0/go.mod h1:wRtmUelyIIv3CSSDI47aUwbs075O6i+LY+pXsKCBsb4=
2158+github.com/gophercloud/gophercloud v0.18.0/go.mod h1:wRtmUelyIIv3CSSDI47aUwbs075O6i+LY+pXsKCBsb4=
2159+github.com/gophercloud/gophercloud v0.20.0 h1:1+4jrsjVhdX5omlAo4jkmFc6ftLbuXLzgFo4i6lH+Gk=
2160+github.com/gophercloud/gophercloud v0.20.0/go.mod h1:wRtmUelyIIv3CSSDI47aUwbs075O6i+LY+pXsKCBsb4=
2161 github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
2162 github.com/gopherjs/gopherjs v0.0.0-20191106031601-ce3c9ade29de h1:F7WD09S8QB4LrkEpka0dFPLSotH11HRpCsLIbIcJ7sU=
2163 github.com/gopherjs/gopherjs v0.0.0-20191106031601-ce3c9ade29de/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
2164 github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg=
2165+github.com/gorilla/handlers v0.0.0-20150720190736-60c7bfde3e33/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ=
2166 github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
2167 github.com/gorilla/mux v1.7.1/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
2168-github.com/gorilla/mux v1.7.3 h1:gnP5JzjVOuiZD07fKKToCAOjS0yOpj/qPETTXCCS6hw=
2169+github.com/gorilla/mux v1.7.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
2170 github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
2171+github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI=
2172+github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
2173 github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
2174 github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
2175 github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc=
2176 github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
2177+github.com/grafana/dskit v0.0.0-20210818123532-6645f87e9e12/go.mod h1:QaNAQaCSFOtG/NHf6Jd/zh67H25kkrVCq36U61Y2Mhw=
2178+github.com/grafana/dskit v0.0.0-20210819132858-471020752967/go.mod h1:uF46UNN1/feB1egpq8UGbBBKvJjGgZauW7pcVbeFLLM=
2179+github.com/grafana/dskit v0.0.0-20210908150159-fcf48cb19aa4 h1:OwWd9nQZYfb01HTJjleuO8eOP5t6Hl2EqVjng6W1juc=
2180+github.com/grafana/dskit v0.0.0-20210908150159-fcf48cb19aa4/go.mod h1:m3eHzwe5IT5eE2MI3Ena2ooU8+Hek8IiVXb9yJ1+0rs=
2181 github.com/grafana/gocql v0.0.0-20200605141915-ba5dc39ece85 h1:xLuzPoOzdfNb/RF/IENCw+oLVdZB4G21VPhkHBgwSHY=
2182 github.com/grafana/gocql v0.0.0-20200605141915-ba5dc39ece85/go.mod h1:crI9WX6p0IhrqB+DqIUHulRW853PaNFf7o4UprV//3I=
2183 github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
2184 github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
2185 github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
2186 github.com/grpc-ecosystem/go-grpc-middleware v1.1.0/go.mod h1:f5nM7jw/oeRSadq3xCzHAvxcr8HZnzsqU6ILg/0NiiE=
2187-github.com/grpc-ecosystem/go-grpc-middleware v1.2.2 h1:FlFbCRLd5Jr4iYXZufAvgWN6Ao0JrI5chLINnUXDDr0=
2188 github.com/grpc-ecosystem/go-grpc-middleware v1.2.2/go.mod h1:EaizFBKfUKtMIF5iaDEhniwNedqGo9FuLFzppDr3uwI=
2189+github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw=
2190+github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y=
2191 github.com/grpc-ecosystem/go-grpc-middleware/providers/kit/v2 v2.0.0-20201002093600-73cf2ae9d891/go.mod h1:516cTXxZzi4NBUBbKcwmO4Eqbb6GHAEd3o4N+GYyCBY=
2192 github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.0.0-20200501113911-9a95f0fdbfea/go.mod h1:GugMBs30ZSAkckqXEAIEGyYdDH6EgqowG8ppA3Zt+AY=
2193 github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.0.0-rc.2.0.20201207153454-9f6bf00c00a7 h1:guQyUpELu4I0wKgdsRBZDA5blfGiUleuppRSVy9Qbi0=
2194@@ -762,6 +1030,7 @@ github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t
2195 github.com/grpc-ecosystem/grpc-gateway v1.9.4/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
2196 github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
2197 github.com/grpc-ecosystem/grpc-gateway v1.12.1/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c=
2198+github.com/grpc-ecosystem/grpc-gateway v1.14.4/go.mod h1:6CwZWGDSPRJidgKAtJVvND6soZe6fT7iteq8wDPdhb0=
2199 github.com/grpc-ecosystem/grpc-gateway v1.14.6/go.mod h1:zdiPV4Yse/1gnckTHtghG4GkDEdKCRJduHpTxT3/jcw=
2200 github.com/grpc-ecosystem/grpc-gateway v1.15.0/go.mod h1:vO11I9oWA+KsxmfFQPhLnnIb1VDE24M+pdxZFiuZcA8=
2201 github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo=
2202@@ -775,30 +1044,38 @@ github.com/hashicorp/consul/api v1.4.0/go.mod h1:xc8u05kyMa3Wjr9eEAsIAo3dg8+LywT
2203 github.com/hashicorp/consul/api v1.5.0/go.mod h1:LqwrLNW876eYSuUOo4ZLHBcdKc038txr/IMfbLPATa4=
2204 github.com/hashicorp/consul/api v1.6.0/go.mod h1:1NSuaUUkFaJzMasbfq/11wKYWSR67Xn6r2DXKhuDNFg=
2205 github.com/hashicorp/consul/api v1.7.0/go.mod h1:1NSuaUUkFaJzMasbfq/11wKYWSR67Xn6r2DXKhuDNFg=
2206-github.com/hashicorp/consul/api v1.8.1 h1:BOEQaMWoGMhmQ29fC26bi0qb7/rId9JzZP2V0Xmx7m8=
2207 github.com/hashicorp/consul/api v1.8.1/go.mod h1:sDjTOq0yUyv5G4h+BqSea7Fn6BU+XbolEz1952UB+mk=
2208+github.com/hashicorp/consul/api v1.9.1/go.mod h1:XjsvQN+RJGWI2TWy1/kqaE16HrR2J/FWgkYjdZQsX9M=
2209+github.com/hashicorp/consul/api v1.10.1 h1:MwZJp86nlnL+6+W1Zly4JUuVn9YHhMggBirMpHGD7kw=
2210+github.com/hashicorp/consul/api v1.10.1/go.mod h1:XjsvQN+RJGWI2TWy1/kqaE16HrR2J/FWgkYjdZQsX9M=
2211 github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=
2212 github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=
2213 github.com/hashicorp/consul/sdk v0.4.0/go.mod h1:fY08Y9z5SvJqevyZNy6WWPXiG3KwBPAvlcdx16zZ0fM=
2214 github.com/hashicorp/consul/sdk v0.5.0/go.mod h1:fY08Y9z5SvJqevyZNy6WWPXiG3KwBPAvlcdx16zZ0fM=
2215 github.com/hashicorp/consul/sdk v0.6.0/go.mod h1:fY08Y9z5SvJqevyZNy6WWPXiG3KwBPAvlcdx16zZ0fM=
2216-github.com/hashicorp/consul/sdk v0.7.0 h1:H6R9d008jDcHPQPAqPNuydAshJ4v5/8URdFnUvK/+sc=
2217 github.com/hashicorp/consul/sdk v0.7.0/go.mod h1:fY08Y9z5SvJqevyZNy6WWPXiG3KwBPAvlcdx16zZ0fM=
2218+github.com/hashicorp/consul/sdk v0.8.0 h1:OJtKBtEjboEZvG6AOUdh4Z1Zbyu0WcxQ0qatRrZHTVU=
2219+github.com/hashicorp/consul/sdk v0.8.0/go.mod h1:GBvyrGALthsZObzUGsfgHZQDXjg4lOjagTIwIR1vPms=
2220+github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
2221 github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA=
2222 github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
2223 github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
2224-github.com/hashicorp/go-cleanhttp v0.5.1 h1:dH3aiDG9Jvb5r5+bYHsikaOUIpcM0xvgMXVoDkXMzJM=
2225 github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
2226+github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ=
2227+github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48=
2228 github.com/hashicorp/go-hclog v0.12.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ=
2229-github.com/hashicorp/go-hclog v0.12.2 h1:F1fdYblUEsxKiailtkhCCG2g4bipEgaHiDc8vffNpD4=
2230 github.com/hashicorp/go-hclog v0.12.2/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ=
2231+github.com/hashicorp/go-hclog v0.16.2 h1:K4ev2ib4LdQETX5cSZBG0DVLk1jwGqSPXBjdah3veNs=
2232+github.com/hashicorp/go-hclog v0.16.2/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ=
2233 github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
2234 github.com/hashicorp/go-immutable-radix v1.1.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
2235-github.com/hashicorp/go-immutable-radix v1.2.0 h1:l6UW37iCXwZkZoAbEYnptSHVE/cQ5bOTPYG5W3vf9+8=
2236 github.com/hashicorp/go-immutable-radix v1.2.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
2237+github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc=
2238+github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
2239 github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM=
2240 github.com/hashicorp/go-msgpack v0.5.5 h1:i9R9JSrqIz0QVLz3sz+i3YJdT7TTSLcfLLzJi9aZTuI=
2241 github.com/hashicorp/go-msgpack v0.5.5/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM=
2242+github.com/hashicorp/go-multierror v0.0.0-20161216184304-ed905158d874/go.mod h1:JMRHfdO9jKNzS/+BTlxCjKNQHg/jZAft8U7LloJvN7I=
2243 github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk=
2244 github.com/hashicorp/go-multierror v1.1.0 h1:B9UzwGQJehnUY1yNrnwREHc3fGbC2xefo8g4TbElacI=
2245 github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA=
2246@@ -830,8 +1107,9 @@ github.com/hashicorp/memberlist v0.1.4/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2p
2247 github.com/hashicorp/memberlist v0.1.5/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I=
2248 github.com/hashicorp/memberlist v0.2.0/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE=
2249 github.com/hashicorp/memberlist v0.2.2/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE=
2250-github.com/hashicorp/memberlist v0.2.3 h1:BwZa5IjREr75J0am7nblP+X5i95Rmp8EEbMI5vkUWdA=
2251 github.com/hashicorp/memberlist v0.2.3/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE=
2252+github.com/hashicorp/memberlist v0.2.4 h1:OOhYzSvFnkFQXm1ysE8RjXTHsqSRDyP4emusC9K7DYg=
2253+github.com/hashicorp/memberlist v0.2.4/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE=
2254 github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc=
2255 github.com/hashicorp/serf v0.8.3/go.mod h1:UpNcs7fFbpKIyZaUuSW6EPiH+eZC7OuyFD+wc1oal+k=
2256 github.com/hashicorp/serf v0.8.5/go.mod h1:UpNcs7fFbpKIyZaUuSW6EPiH+eZC7OuyFD+wc1oal+k=
2257@@ -843,17 +1121,30 @@ github.com/hetznercloud/hcloud-go v1.21.1/go.mod h1:xng8lbDUg+xM1dgc0yGHX5EeqbwI
2258 github.com/hetznercloud/hcloud-go v1.22.0/go.mod h1:xng8lbDUg+xM1dgc0yGHX5EeqbwIq7UYlMWMTx3SQVg=
2259 github.com/hetznercloud/hcloud-go v1.23.1/go.mod h1:xng8lbDUg+xM1dgc0yGHX5EeqbwIq7UYlMWMTx3SQVg=
2260 github.com/hetznercloud/hcloud-go v1.24.0/go.mod h1:3YmyK8yaZZ48syie6xpm3dt26rtB6s65AisBHylXYFA=
2261-github.com/hetznercloud/hcloud-go v1.25.0 h1:QAaFKtGKWRxjwjKJWBGMxGYUxVEQmIkb35j/WXrsazY=
2262 github.com/hetznercloud/hcloud-go v1.25.0/go.mod h1:2C5uMtBiMoFr3m7lBFPf7wXTdh33CevmZpQIIDPGYJI=
2263+github.com/hetznercloud/hcloud-go v1.26.2/go.mod h1:2C5uMtBiMoFr3m7lBFPf7wXTdh33CevmZpQIIDPGYJI=
2264+github.com/hetznercloud/hcloud-go v1.32.0 h1:7zyN2V7hMlhm3HZdxOarmOtvzKvkcYKjM0hcwYMQZz0=
2265+github.com/hetznercloud/hcloud-go v1.32.0/go.mod h1:XX/TQub3ge0yWR2yHWmnDVIrB+MQbda1pHxkUmDlUME=
2266 github.com/hodgesds/perf-utils v0.0.8/go.mod h1:F6TfvsbtrF88i++hou29dTXlI2sfsJv+gRZDtmTJkAs=
2267 github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
2268+github.com/huandu/xstrings v1.0.0/go.mod h1:4qWG/gcEcfX4z/mBDHJ++3ReCw9ibxbsNJbcucJdbSo=
2269 github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg=
2270+github.com/hudl/fargo v1.4.0/go.mod h1:9Ai6uvFy5fQNq6VPKtg+Ceq1+eTY4nKUlR2JElEOcDo=
2271+github.com/iancoleman/strcase v0.0.0-20180726023541-3605ed457bf7/go.mod h1:SK73tn/9oHe+/Y0h39VT4UCxmurVJkR5NA7kMEAOgSE=
2272 github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
2273 github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
2274+github.com/imdario/mergo v0.3.4/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
2275 github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
2276+github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
2277+github.com/imdario/mergo v0.3.10/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
2278+github.com/imdario/mergo v0.3.11 h1:3tnifQM4i+fbajXKBHXWEH+KvNHqojZ778UH75j3bGA=
2279+github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
2280 github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
2281 github.com/influxdata/flux v0.65.0/go.mod h1:BwN2XG2lMszOoquQaFdPET8FRQfrXiZsWmcMO9rkaVY=
2282 github.com/influxdata/flux v0.65.1/go.mod h1:J754/zds0vvpfwuq7Gc2wRdVwEodfpCFM7mYlOw2LqY=
2283+github.com/influxdata/flux v0.113.0/go.mod h1:3TJtvbm/Kwuo5/PEo5P6HUzwVg4bXWkb2wPQHPtQdlU=
2284+github.com/influxdata/flux v0.120.1/go.mod h1:pGSAvyAA5d3et7SSzajaYShWYXmnRnJJq2qWi+WWZ2I=
2285+github.com/influxdata/httprouter v1.3.1-0.20191122104820-ee83e2772f69/go.mod h1:pwymjR6SrP3gD3pRj9RJwdl1j5s3doEEV8gS4X9qSzA=
2286 github.com/influxdata/influxdb v1.7.7/go.mod h1:qZna6X/4elxqT3yI9iZYdZrWWdeFOOprn86kgg4+IzY=
2287 github.com/influxdata/influxdb v1.8.0/go.mod h1:SIzcnsjaHRFpmlxpJ4S3NT64qtEKYweNTUMb/vh0OMQ=
2288 github.com/influxdata/influxdb v1.8.1/go.mod h1:SIzcnsjaHRFpmlxpJ4S3NT64qtEKYweNTUMb/vh0OMQ=
2289@@ -861,23 +1152,32 @@ github.com/influxdata/influxdb v1.8.2/go.mod h1:SIzcnsjaHRFpmlxpJ4S3NT64qtEKYweN
2290 github.com/influxdata/influxdb v1.8.3/go.mod h1:JugdFhsvvI8gadxOI6noqNeeBHvWNTbfYGtiAn+2jhI=
2291 github.com/influxdata/influxdb v1.8.4/go.mod h1:JugdFhsvvI8gadxOI6noqNeeBHvWNTbfYGtiAn+2jhI=
2292 github.com/influxdata/influxdb v1.8.5/go.mod h1:oFH+pbEyDln/1TKwa98oJzVrkZwdjrJOwIDGYZj7Ma0=
2293+github.com/influxdata/influxdb v1.9.2/go.mod h1:UEe3MeD9AaP5rlPIes102IhYua3FhIWZuOXNHxDjSrI=
2294+github.com/influxdata/influxdb v1.9.3/go.mod h1:xD4ZjAgEJQO9/bX3NhFrssKtdNPi+ki1kjrttJRDhGc=
2295+github.com/influxdata/influxdb-client-go/v2 v2.3.1-0.20210518120617-5d1fff431040/go.mod h1:vLNHdxTJkIf2mSLvGrpj8TCcISApPoXkaxP8g9uRlW8=
2296 github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo=
2297+github.com/influxdata/influxdb1-client v0.0.0-20200827194710-b269163b24ab/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo=
2298 github.com/influxdata/influxql v1.1.0/go.mod h1:KpVI7okXjK6PRi3Z5B+mtKZli+R1DnZgb3N+tzevNgo=
2299 github.com/influxdata/influxql v1.1.1-0.20200828144457-65d3ef77d385/go.mod h1:gHp9y86a/pxhjJ+zMjNXiQAA197Xk9wLxaz+fGG+kWk=
2300+github.com/influxdata/influxql v1.1.1-0.20210223160523-b6ab99450c93/go.mod h1:gHp9y86a/pxhjJ+zMjNXiQAA197Xk9wLxaz+fGG+kWk=
2301 github.com/influxdata/line-protocol v0.0.0-20180522152040-32c6aa80de5e/go.mod h1:4kt73NQhadE3daL3WhR5EJ/J2ocX0PZzwxQ0gXJ7oFE=
2302+github.com/influxdata/line-protocol v0.0.0-20200327222509-2487e7298839/go.mod h1:xaLFMmpvUxqXtVkUJfg9QmT88cDaCJ3ZKgdZ78oO8Qo=
2303+github.com/influxdata/pkg-config v0.2.6/go.mod h1:EMS7Ll0S4qkzDk53XS3Z72/egBsPInt+BeRxb0WeSwk=
2304+github.com/influxdata/pkg-config v0.2.7/go.mod h1:EMS7Ll0S4qkzDk53XS3Z72/egBsPInt+BeRxb0WeSwk=
2305 github.com/influxdata/promql/v2 v2.12.0/go.mod h1:fxOPu+DY0bqCTCECchSRtWfc+0X19ybifQhZoQNF5D8=
2306 github.com/influxdata/roaring v0.4.13-0.20180809181101-fc520f41fab6/go.mod h1:bSgUQ7q5ZLSO+bKBGqJiCBGAl+9DxyW63zLTujjUlOE=
2307 github.com/influxdata/tdigest v0.0.0-20181121200506-bf2b5ad3c0a9/go.mod h1:Js0mqiSBE6Ffsg94weZZ2c+v/ciT8QRHFOap7EKDrR0=
2308+github.com/influxdata/tdigest v0.0.2-0.20210216194612-fc98d27c9e8b/go.mod h1:Z0kXnxzbTC2qrx4NaIzYkE1k66+6oEDQTvL95hQFh5Y=
2309 github.com/influxdata/usage-client v0.0.0-20160829180054-6d3895376368/go.mod h1:Wbbw6tYNvwa5dlB6304Sd+82Z3f7PmVZHVKU637d4po=
2310+github.com/j-keck/arping v0.0.0-20160618110441-2cf9dc699c56/go.mod h1:ymszkNOg6tORTn+6F6j+Jc8TOr5osrynvN6ivFWZ2GA=
2311 github.com/jackc/fake v0.0.0-20150926172116-812a484cc733/go.mod h1:WrMFNQdiFJ80sQsxDoMokWK1W5TQtxBFNpzWTD84ibQ=
2312 github.com/jackc/pgx v3.2.0+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I=
2313 github.com/jessevdk/go-flags v0.0.0-20180331124232-1c38ed7ad0cc/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
2314 github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
2315 github.com/jessevdk/go-flags v1.5.0 h1:1jKYvbxEjfUl0fmqTCOfonvskHHXMjBySTLW4y9LFvc=
2316 github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4=
2317-github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
2318+github.com/jmespath/go-jmespath v0.0.0-20160803190731-bd40a432e4c7/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
2319 github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
2320-github.com/jmespath/go-jmespath v0.3.0/go.mod h1:9QtRXoHjLGCJ5IBSaohpXITPlowMeeYCZ7fLUTSywik=
2321 github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
2322 github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
2323 github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
2324@@ -902,12 +1202,13 @@ github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/u
2325 github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
2326 github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
2327 github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
2328-github.com/json-iterator/go v1.1.11 h1:uVUAXhF2To8cbw/3xN3pxj6kk7TYKs98NIrTqPlMWAQ=
2329 github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
2330+github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
2331+github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
2332 github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
2333-github.com/jstemmer/go-junit-report v0.9.1 h1:6QPYqodiu3GuPL+7mfx+NwDdp2eTkp9IfEUpgAwUN0o=
2334 github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
2335 github.com/jsternberg/zap-logfmt v1.0.0/go.mod h1:uvPs/4X51zdkcm5jXl5SYoN+4RK21K8mysFmDaM/h+o=
2336+github.com/jsternberg/zap-logfmt v1.2.0/go.mod h1:kz+1CUmCutPWABnNkOu9hOHKdT2q3TDYCcsFy9hpqb0=
2337 github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo=
2338 github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
2339 github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
2340@@ -924,6 +1225,13 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI
2341 github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
2342 github.com/klauspost/compress v1.4.0/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
2343 github.com/klauspost/compress v1.9.5/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
2344+github.com/klauspost/compress v1.11.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
2345+github.com/klauspost/compress v1.11.12/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
2346+github.com/klauspost/compress v1.11.13/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
2347+github.com/klauspost/compress v1.13.1/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg=
2348+github.com/klauspost/compress v1.13.4/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg=
2349+github.com/klauspost/compress v1.13.6 h1:P76CopJELS0TiO2mebmnzgWaajssP/EszplttgQxcgc=
2350+github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
2351 github.com/klauspost/cpuid v0.0.0-20170728055534-ae7887de9fa5/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
2352 github.com/klauspost/cpuid v1.2.3/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
2353 github.com/klauspost/cpuid v1.3.1 h1:5JNjFYYQrZeKRJ0734q51WCEEn2huer72Dc7K+R/b6s=
2354@@ -934,6 +1242,7 @@ github.com/knq/sysutil v0.0.0-20191005231841-15668db23d08/go.mod h1:dFWs1zEqDjFt
2355 github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
2356 github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
2357 github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
2358+github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
2359 github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
2360 github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
2361 github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
2362@@ -950,6 +1259,8 @@ github.com/kylelemons/godebug v0.0.0-20160406211939-eadb3ce320cb/go.mod h1:B69LE
2363 github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k=
2364 github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
2365 github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
2366+github.com/labstack/echo/v4 v4.2.1/go.mod h1:AA49e0DZ8kk5jTOOCKNuPR6oTnBS0dYiM4FW1e6jwpg=
2367+github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k=
2368 github.com/lann/builder v0.0.0-20150808151131-f22ce00fd939/go.mod h1:dXGbAdH5GtBTC4WfIxhKZfyBF/HBFgRZSWwZ9g/He9o=
2369 github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 h1:SOEGU9fKiNWd/HOJuq6+3iTQz8KNCLtVX6idSoTLdUw=
2370 github.com/lann/builder v0.0.0-20180802200727-47ae307949d0/go.mod h1:dXGbAdH5GtBTC4WfIxhKZfyBF/HBFgRZSWwZ9g/He9o=
2371@@ -957,15 +1268,20 @@ github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 h1:P6pPBnrTSX3DEVR4fDembhR
2372 github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0/go.mod h1:vmVJ0l/dxyfGW6FmdpVm2joNMFikkuWg0EoCKLGUMNw=
2373 github.com/leanovate/gopter v0.2.4 h1:U4YLBggDFhJdqQsG4Na2zX7joVTky9vHaj/AGEwSuXU=
2374 github.com/leanovate/gopter v0.2.4/go.mod h1:gNcbPWNEWRe4lm+bycKqxUYoH5uoVje5SkOJ3uoLer8=
2375+github.com/leodido/go-urn v1.1.0/go.mod h1:+cyI34gQWZcE1eQU7NVgKkkzdXDQHr1dBMtdAPozLkw=
2376 github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
2377 github.com/lib/pq v1.3.0 h1:/qkRGz8zljWiDcFvgpwUpwIAPu3r07TDvs3Rws+o/pU=
2378 github.com/lib/pq v1.3.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
2379 github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM=
2380 github.com/lightstep/lightstep-tracer-go v0.18.0/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4=
2381 github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4=
2382+github.com/linode/linodego v0.28.5/go.mod h1:BR0gVkCJffEdIGJSl6bHR80Ty+Uvg/2jkjmrWaFectM=
2383+github.com/linode/linodego v0.32.0 h1:IK04cx2b/IwAAd6XLruf1Dl/n3dRXj87Uw/5qo6afVU=
2384+github.com/linode/linodego v0.32.0/go.mod h1:BR0gVkCJffEdIGJSl6bHR80Ty+Uvg/2jkjmrWaFectM=
2385 github.com/lovoo/gcloud-opentracing v0.3.0/go.mod h1:ZFqk2y38kMDDikZPAK7ynTTGuyt17nSPdS3K5e+ZTBY=
2386 github.com/lufia/iostat v1.1.0/go.mod h1:rEPNA0xXgjHQjuI5Cy05sLlS2oRcSlWHRLrvh/AQ+Pg=
2387-github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ=
2388+github.com/lyft/protoc-gen-star v0.5.1/go.mod h1:9toiA3cC7z5uVbODF7kEQ91Xn7XNFkVUl+SrEe+ZORU=
2389+github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
2390 github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
2391 github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
2392 github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
2393@@ -978,32 +1294,42 @@ github.com/mailru/easyjson v0.7.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA
2394 github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
2395 github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE=
2396 github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0=
2397+github.com/marstr/guid v1.1.0/go.mod h1:74gB1z2wpxxInTG6yaqA7KrtM0NZ+RbrcqDvYHefzho=
2398+github.com/matryer/moq v0.0.0-20190312154309-6cfb0558e1bd/go.mod h1:9ELz6aaclSIGnZBoaSLZ3NAl1VTufbOrXBPvtcy6WiQ=
2399 github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
2400+github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
2401 github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
2402-github.com/mattn/go-colorable v0.1.6 h1:6Su7aK7lXmJ/U79bYtBjLNaha4Fs1Rg9plHpcH+vvnE=
2403 github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
2404+github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
2405+github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8=
2406+github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
2407 github.com/mattn/go-ieproxy v0.0.0-20190610004146-91bb50d98149/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc=
2408 github.com/mattn/go-ieproxy v0.0.0-20190702010315-6dee0af9227d/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc=
2409-github.com/mattn/go-ieproxy v0.0.0-20191113090002-7c0f6868bffe h1:YioO2TiJyAHWHyCRQCP8jk5IzTqmsbGc5qQPIhHo6xs=
2410 github.com/mattn/go-ieproxy v0.0.0-20191113090002-7c0f6868bffe/go.mod h1:pYabZ6IHcRpFh7vIaLfK7rdcWgFEb3SFJ6/gNWuh88E=
2411+github.com/mattn/go-ieproxy v0.0.1 h1:qiyop7gCflfhwCzGyeT0gro3sF9AIg9HU98JORTkqfI=
2412+github.com/mattn/go-ieproxy v0.0.1/go.mod h1:pYabZ6IHcRpFh7vIaLfK7rdcWgFEb3SFJ6/gNWuh88E=
2413 github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
2414 github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
2415 github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
2416+github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ=
2417 github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84=
2418 github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE=
2419-github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY=
2420 github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
2421+github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y=
2422+github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
2423 github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
2424 github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
2425 github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
2426 github.com/mattn/go-runewidth v0.0.6/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
2427+github.com/mattn/go-shellwords v1.0.3/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o=
2428 github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
2429 github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
2430 github.com/mattn/go-tty v0.0.0-20180907095812-13ff1204f104/go.mod h1:XPvLUNfbS4fJH25nqRHfWLMa1ONC8Amw+mIA639KxkE=
2431 github.com/mattn/go-xmlrpc v0.0.3/go.mod h1:mqc2dz7tP5x5BKlCahN/n+hs7OSZKJkS9JsHNBRlrxA=
2432 github.com/matttproud/golang_protobuf_extensions v1.0.0/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
2433-github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=
2434 github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
2435+github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI=
2436+github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
2437 github.com/mdlayher/genetlink v1.0.0/go.mod h1:0rJ0h4itni50A86M2kHcgS85ttZazNt7a8H2a2cw0Gc=
2438 github.com/mdlayher/netlink v0.0.0-20190409211403-11939a169225/go.mod h1:eQB3mZE4aiYnlUsyGGCOpPETfdQq4Jhsgf1fk3cwQaA=
2439 github.com/mdlayher/netlink v0.0.0-20190828143259-340058475d09/go.mod h1:KxeJAFOFLG6AjpyDkQ/iIhxygIUKD+vcwqcnu43w/+M=
2440@@ -1020,8 +1346,14 @@ github.com/miekg/dns v1.1.30/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7
2441 github.com/miekg/dns v1.1.31/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM=
2442 github.com/miekg/dns v1.1.35/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM=
2443 github.com/miekg/dns v1.1.38/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM=
2444-github.com/miekg/dns v1.1.41 h1:WMszZWJG0XmzbK9FEmzH2TVcqYzFesusSIB41b8KHxY=
2445 github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI=
2446+github.com/miekg/dns v1.1.42/go.mod h1:+evo5L0630/F6ca/Z9+GAqzhjGyn8/c+TBaOyfEl0V4=
2447+github.com/miekg/dns v1.1.43 h1:JKfpVSCB84vrAmHzyrsxB5NAr5kLoMXZArPSw7Qlgyg=
2448+github.com/miekg/dns v1.1.43/go.mod h1:+evo5L0630/F6ca/Z9+GAqzhjGyn8/c+TBaOyfEl0V4=
2449+github.com/miekg/pkcs11 v1.0.3/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs=
2450+github.com/mileusna/useragent v0.0.0-20190129205925-3e331f0949a5/go.mod h1:JWhYAp2EXqUtsxTKdeGlY8Wp44M7VxThC9FEoNGi2IE=
2451+github.com/minio/highwayhash v1.0.1/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY=
2452+github.com/minio/highwayhash v1.0.2/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY=
2453 github.com/minio/md5-simd v1.1.0 h1:QPfiOqlZH+Cj9teu0t9b1nTBfPbyTl16Of5MeuShdK4=
2454 github.com/minio/md5-simd v1.1.0/go.mod h1:XpBqgZULrMYD3R+M28PcmP0CkI7PEMzB3U77ZrKZ0Gw=
2455 github.com/minio/minio-go/v6 v6.0.44/go.mod h1:qD0lajrGW49lKZLtXKtCB4X/qkMf0a5tBvN2PaZg7Gg=
2456@@ -1031,6 +1363,7 @@ github.com/minio/minio-go/v7 v7.0.10 h1:1oUKe4EOPUEhw2qnPQaPsJ0lmVTYLFu03SiItauX
2457 github.com/minio/minio-go/v7 v7.0.10/go.mod h1:td4gW1ldOsj1PbSNS+WYK43j+P1XVhX/8W8awaYlBFo=
2458 github.com/minio/sha256-simd v0.1.1 h1:5QHSlgo3nt5yKOJrC7W8w7X+NFl8cMPZm96iu8kKUJU=
2459 github.com/minio/sha256-simd v0.1.1/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM=
2460+github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4=
2461 github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
2462 github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI=
2463 github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
2464@@ -1048,9 +1381,16 @@ github.com/mitchellh/mapstructure v1.2.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RR
2465 github.com/mitchellh/mapstructure v1.3.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
2466 github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
2467 github.com/mitchellh/mapstructure v1.4.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
2468-github.com/mitchellh/mapstructure v1.4.1 h1:CpVNEelQCZBooIPDn+AR3NpivK/TIKU8bDxdASFVQag=
2469 github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
2470+github.com/mitchellh/mapstructure v1.4.2 h1:6h7AQ0yhTcIsmFmnAwQls75jp2Gzs4iB8W7pjMO+rqo=
2471+github.com/mitchellh/mapstructure v1.4.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
2472+github.com/mitchellh/osext v0.0.0-20151018003038-5e2d6d41470f/go.mod h1:OkQIRizQZAeMln+1tSwduZz7+Af5oFlKirV/MSYes2A=
2473+github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc=
2474 github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c=
2475+github.com/moby/sys/mountinfo v0.4.0/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A=
2476+github.com/moby/sys/mountinfo v0.4.1/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A=
2477+github.com/moby/sys/symlink v0.1.0/go.mod h1:GGDODQmbFOjFsXvfLVn3+ZRxkch54RkSiGqsZeMYowQ=
2478+github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo=
2479 github.com/moby/term v0.0.0-20201216013528-df9cb8a40635 h1:rzf0wL0CHVc8CEsgyygG0Mn9CNCCPZqOPaz8RiiHYQk=
2480 github.com/moby/term v0.0.0-20201216013528-df9cb8a40635/go.mod h1:FBS0z0QWA44HXygs7VXDUOGoN/1TV3RuWkLO04am3wc=
2481 github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
2482@@ -1058,18 +1398,20 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w
2483 github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
2484 github.com/modern-go/reflect2 v0.0.0-20180320133207-05fbef0ca5da/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
2485 github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
2486-github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI=
2487 github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
2488+github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
2489+github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
2490 github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
2491 github.com/morikuni/aec v0.0.0-20170113033406-39771216ff4c/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=
2492 github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A=
2493 github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=
2494-github.com/mozillazg/go-cos v0.13.0 h1:RylOpEESdWMLb13bl0ADhko12uMN3JmHqqwFu4OYGBY=
2495 github.com/mozillazg/go-cos v0.13.0/go.mod h1:Zp6DvvXn0RUOXGJ2chmWt2bLEqRAnJnS3DnAZsJsoaE=
2496 github.com/mozillazg/go-httpheader v0.2.1 h1:geV7TrjbL8KXSyvghnFm+NyTux/hxwueTSrwhe88TQQ=
2497 github.com/mozillazg/go-httpheader v0.2.1/go.mod h1:jJ8xECTlalr6ValeXYdOF8fFUISeBAdw6E61aqQma60=
2498+github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ=
2499 github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE+eKJXWVjKXM4ck2QobLqTDytGJbLLhJg=
2500 github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
2501+github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
2502 github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
2503 github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU=
2504 github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
2505@@ -1077,18 +1419,29 @@ github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+
2506 github.com/nakagami/firebirdsql v0.0.0-20190310045651-3c02a58cfed8/go.mod h1:86wM1zFnC6/uDBfZGNwB65O+pR2OFi5q/YQaEUid1qA=
2507 github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg=
2508 github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU=
2509+github.com/nats-io/jwt v1.2.2/go.mod h1:/xX356yQA6LuXI9xWW7mZNpxgF2mBmGecH+Fj34sP5Q=
2510+github.com/nats-io/jwt/v2 v2.0.2/go.mod h1:VRP+deawSXyhNjXmxPCHskrR6Mq50BqpEI5SEcNiGlY=
2511+github.com/nats-io/jwt/v2 v2.0.3/go.mod h1:VRP+deawSXyhNjXmxPCHskrR6Mq50BqpEI5SEcNiGlY=
2512 github.com/nats-io/nats-server/v2 v2.1.2/go.mod h1:Afk+wRZqkMQs/p45uXdrVLuab3gwv3Z8C4HTBu8GD/k=
2513+github.com/nats-io/nats-server/v2 v2.2.6/go.mod h1:sEnFaxqe09cDmfMgACxZbziXnhQFhwk+aKkZjBBRYrI=
2514+github.com/nats-io/nats-server/v2 v2.5.0/go.mod h1:Kj86UtrXAL6LwYRA6H4RqzkHhK0Vcv2ZnKD5WbQ1t3g=
2515 github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w=
2516+github.com/nats-io/nats.go v1.11.0/go.mod h1:BPko4oXsySz4aSWeFgOHLZs3G4Jq4ZAyE6/zMCxRT6w=
2517+github.com/nats-io/nats.go v1.12.1/go.mod h1:BPko4oXsySz4aSWeFgOHLZs3G4Jq4ZAyE6/zMCxRT6w=
2518 github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w=
2519 github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w=
2520+github.com/nats-io/nkeys v0.2.0/go.mod h1:XdZpAbhgyyODYqjTawOnIOI7VlbKSarI9Gfy1tqEu/s=
2521+github.com/nats-io/nkeys v0.3.0/go.mod h1:gvUNGjVcM2IPr5rCsRsC6Wb3Hr2CQAm08dsxtV6A5y4=
2522 github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c=
2523+github.com/ncw/swift v1.0.47/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM=
2524 github.com/ncw/swift v1.0.50/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM=
2525 github.com/ncw/swift v1.0.52 h1:ACF3JufDGgeKp/9mrDgQlEgS8kRYC4XKcuzj/8EJjQU=
2526 github.com/ncw/swift v1.0.52/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM=
2527 github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs=
2528 github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
2529-github.com/nxadm/tail v1.4.4 h1:DQuhQpB1tVlglWS2hLQ5OV6B5r8aGxSrPc5Qo6uTN78=
2530 github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
2531+github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=
2532+github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
2533 github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs=
2534 github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA=
2535 github.com/oklog/run v1.1.0 h1:GEenZ1cK0+q0+wsJew9qUg/DyD8k3JzYsZAi5gYi2mA=
2536@@ -1099,6 +1452,7 @@ github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn
2537 github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=
2538 github.com/olekukonko/tablewriter v0.0.1/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=
2539 github.com/olekukonko/tablewriter v0.0.2/go.mod h1:rSAaSIOAGT9odnlyGlUfAJaoc5w2fSBUmeGDbRWPxyQ=
2540+github.com/onsi/ginkgo v0.0.0-20151202141238-7f8ab55aaf3b/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
2541 github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
2542 github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
2543 github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
2544@@ -1109,8 +1463,10 @@ github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+
2545 github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
2546 github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY=
2547 github.com/onsi/ginkgo v1.14.1/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY=
2548-github.com/onsi/ginkgo v1.15.0 h1:1V1NfVQR87RtWAgp1lv9JZJ5Jap+XFGKPi00andXGi4=
2549 github.com/onsi/ginkgo v1.15.0/go.mod h1:hF8qUzuuC8DJGygJH3726JnCZX4MYbRB8yFfISqnKUg=
2550+github.com/onsi/ginkgo v1.16.2 h1:HFB2fbVIlhIfCfOW81bZFbiC/RvnpXSdhbF2/DJr134=
2551+github.com/onsi/ginkgo v1.16.2/go.mod h1:CObGmKUOKaSC0RjmoAK7tKyn4Azo5P2IWuoMnvwxz1E=
2552+github.com/onsi/gomega v0.0.0-20151007035656-2152b45fa28a/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
2553 github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
2554 github.com/onsi/gomega v1.4.2/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
2555 github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
2556@@ -1119,14 +1475,33 @@ github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1Cpa
2557 github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
2558 github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
2559 github.com/onsi/gomega v1.10.2/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
2560-github.com/onsi/gomega v1.10.5 h1:7n6FEkpFmfCoo2t+YYqXH0evK+a9ICQz0xcAy9dYcaQ=
2561+github.com/onsi/gomega v1.10.3/go.mod h1:V9xEwhxec5O8UDM77eCW8vLymOMltsqPVYWrpDsH8xc=
2562 github.com/onsi/gomega v1.10.5/go.mod h1:gza4q3jKQJijlu05nKWRCW/GavJumGt8aNRxWg7mt48=
2563+github.com/onsi/gomega v1.13.0 h1:7lLHu94wT9Ij0o6EWWclhu0aOh32VxhkwEJvzuWPeak=
2564+github.com/onsi/gomega v1.13.0/go.mod h1:lRk9szgn8TxENtWd0Tp4c3wjlRfMTMH27I+3Je41yGY=
2565 github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk=
2566+github.com/opencontainers/go-digest v0.0.0-20170106003457-a6d0ee40d420/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
2567+github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
2568 github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
2569+github.com/opencontainers/go-digest v1.0.0-rc1.0.20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
2570 github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
2571 github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
2572+github.com/opencontainers/image-spec v1.0.0/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
2573 github.com/opencontainers/image-spec v1.0.1 h1:JMemWkRwHx4Zj+fVxWoMCFm/8sYGGrUVojFA6h/TRcI=
2574 github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
2575+github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
2576+github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
2577+github.com/opencontainers/runc v1.0.0-rc8.0.20190926000215-3e425f80a8c9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
2578+github.com/opencontainers/runc v1.0.0-rc9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
2579+github.com/opencontainers/runc v1.0.0-rc93/go.mod h1:3NOsor4w32B2tC0Zbl8Knk4Wg84SM2ImC1fxBuqJ/H0=
2580+github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
2581+github.com/opencontainers/runtime-spec v1.0.1/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
2582+github.com/opencontainers/runtime-spec v1.0.2-0.20190207185410-29686dbc5559/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
2583+github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
2584+github.com/opencontainers/runtime-spec v1.0.3-0.20200929063507-e6143ca7d51d/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
2585+github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39/go.mod h1:r3f7wjNzSs2extwzU3Y+6pKfobzPh+kKFJ3ofN+3nfs=
2586+github.com/opencontainers/selinux v1.6.0/go.mod h1:VVGKuOLlE7v4PJyT6h7mNWvq1rzqiriPsEqVhc+svHE=
2587+github.com/opencontainers/selinux v1.8.0/go.mod h1:RScLhm78qiWa2gbVCcGkC7tCGdgk3ogry1nUQF8Evvo=
2588 github.com/opentracing-contrib/go-grpc v0.0.0-20180928155321-4b5a12d3ff02/go.mod h1:JNdpVEzCpXBgIiv4ds+TzhN1hrtxq6ClLrTlT9OQRSc=
2589 github.com/opentracing-contrib/go-grpc v0.0.0-20210225150812-73cb765af46e h1:4cPxUYdgaGzZIT5/j0IfqOrrXmq6bG8AwvwisMXpdrg=
2590 github.com/opentracing-contrib/go-grpc v0.0.0-20210225150812-73cb765af46e/go.mod h1:DYR5Eij8rJl8h7gblRrOZ8g0kW1umSpKqYIBTgeDtLo=
2591@@ -1145,6 +1520,7 @@ github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5/go.mod h1:/wsWhb9smxS
2592 github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw=
2593 github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4=
2594 github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4=
2595+github.com/openzipkin/zipkin-go v0.2.5/go.mod h1:KpXfKdgRDnnhsxw4pNIH9Md5lyFqKUa4YDFlwRYAMyE=
2596 github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM=
2597 github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
2598 github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY=
2599@@ -1154,23 +1530,29 @@ github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtP
2600 github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
2601 github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo=
2602 github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE=
2603+github.com/pelletier/go-toml v1.8.1/go.mod h1:T2/BmBdy8dvIRq1a/8aqjN41wvWlN4lrapLU/GW4pbc=
2604 github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac=
2605+github.com/performancecopilot/speed/v4 v4.0.0/go.mod h1:qxrSyuDGrTOWfV+uKRFhfxw6h/4HXRGUiZiufxo49BM=
2606 github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
2607 github.com/peterh/liner v1.0.1-0.20180619022028-8c1271fcf47f/go.mod h1:xIteQHvHuaLYG9IFj6mSxM0fCKrs34IrEQUhOYuGPHc=
2608 github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU=
2609 github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc=
2610 github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
2611+github.com/pkg/browser v0.0.0-20180916011732-0a3d74bf9ce4/go.mod h1:4OwLy04Bl9Ef3GJJCoec+30X3LQs/0/m4HFRt/2LUSA=
2612 github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
2613+github.com/pkg/errors v0.8.1-0.20171018195549-f15c970de5b7/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
2614 github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
2615 github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
2616 github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
2617 github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA=
2618+github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI=
2619 github.com/pkg/term v0.0.0-20180730021639-bffc007b7fd5/go.mod h1:eCbImbZ95eXtAUIbLAuAVnBnwf83mjf6QIVH8SHYwqQ=
2620 github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
2621 github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
2622 github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
2623 github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
2624 github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s=
2625+github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA=
2626 github.com/prometheus/alertmanager v0.18.0/go.mod h1:WcxHBl40VSPuOaqWae6l6HpnEOVRIycEJ7i9iYkadEE=
2627 github.com/prometheus/alertmanager v0.19.0/go.mod h1:Eyp94Yi/T+kdeb2qvq66E3RGuph5T/jm/RBVh4yz1xo=
2628 github.com/prometheus/alertmanager v0.20.0/go.mod h1:9g2i48FAyZW6BtbsnvHtMHQXl2aVtrORKwKVCQ+nbrg=
2629@@ -1179,8 +1561,12 @@ github.com/prometheus/alertmanager v0.21.1-0.20200911160112-1fdff6b3f939/go.mod
2630 github.com/prometheus/alertmanager v0.21.1-0.20201106142418-c39b78780054/go.mod h1:imXRHOP6QTsE0fFsIsAV/cXimS32m7gVZOiUj11m6Ig=
2631 github.com/prometheus/alertmanager v0.21.1-0.20210310093010-0f9cab6991e6/go.mod h1:MTqVn+vIupE0dzdgo+sMcNCp37SCAi8vPrvKTTnTz9g=
2632 github.com/prometheus/alertmanager v0.21.1-0.20210422101724-8176f78a70e1/go.mod h1:gsEqwD5BHHW9RNKvCuPOrrTMiP5I+faJUyLXvnivHik=
2633-github.com/prometheus/alertmanager v0.22.1-0.20210603124511-8b584eb2265e h1:FNLZCG1rR9QPbkwYLMiy7TnI4WRB7TeipcxkrbszN4E=
2634-github.com/prometheus/alertmanager v0.22.1-0.20210603124511-8b584eb2265e/go.mod h1:ntrorfzWQ1I9mhJK7AO71w4xMUgM4SxmwbtyQgAWZz0=
2635+github.com/prometheus/alertmanager v0.22.2/go.mod h1:rYinOWxFuCnNssc3iOjn2oMTlhLaPcUuqV5yk5JKUAE=
2636+github.com/prometheus/alertmanager v0.22.3-0.20210726110322-3d86bd709df8/go.mod h1:BBhEP06PwDGsIKsQzOeTNe2jU6tU19SzhJ41C2ib4XE=
2637+github.com/prometheus/alertmanager v0.23.0/go.mod h1:0MLTrjQI8EuVmvykEhcfr/7X0xmaDAZrqMgxIq3OXHk=
2638+github.com/prometheus/alertmanager v0.23.1-0.20210914172521-e35efbddb66a h1:qroc/F4ygaQ0uc2S+Pyk/exMwnSpokGyN1QjfZ1DiWU=
2639+github.com/prometheus/alertmanager v0.23.1-0.20210914172521-e35efbddb66a/go.mod h1:U7pGu+z7A9ZKhK8lq1MvIOp5GdVlZjwOYk+S0h3LSbA=
2640+github.com/prometheus/client_golang v0.0.0-20180209125602-c332b6f63c06/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
2641 github.com/prometheus/client_golang v0.8.0/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
2642 github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
2643 github.com/prometheus/client_golang v0.9.2/go.mod h1:OsXs2jCmiKlQ1lTBmv21f2mNfw4xf/QclQDMrYNZzcM=
2644@@ -1199,9 +1585,11 @@ github.com/prometheus/client_golang v1.6.1-0.20200604110148-03575cad4e55/go.mod
2645 github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
2646 github.com/prometheus/client_golang v1.8.0/go.mod h1:O9VU6huf47PktckDQfMTX0Y8tY0/7TSWwj+ITvv0TnM=
2647 github.com/prometheus/client_golang v1.9.0/go.mod h1:FqZLKOZnGdFAhOK4nqGHa7D66IdsO+O441Eve7ptJDU=
2648-github.com/prometheus/client_golang v1.10.0 h1:/o0BDeWzLWXNZ+4q5gXltUvaMpJqckTa+jTNoB+z4cg=
2649 github.com/prometheus/client_golang v1.10.0/go.mod h1:WJM3cc3yu7XKBKa/I8WeZm+V3eltZnBwfENSU7mdogU=
2650+github.com/prometheus/client_golang v1.11.0 h1:HNkLOAEQMIDv/K+04rukrLx6ch7msSRwf3/SASFAGtQ=
2651+github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0=
2652 github.com/prometheus/client_model v0.0.0-20170216185247-6f3806018612/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
2653+github.com/prometheus/client_model v0.0.0-20171117100541-99fa1f4be8e5/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
2654 github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
2655 github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
2656 github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
2657@@ -1209,6 +1597,7 @@ github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:
2658 github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
2659 github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M=
2660 github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
2661+github.com/prometheus/common v0.0.0-20180110214958-89604d197083/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
2662 github.com/prometheus/common v0.0.0-20180518154759-7600349dcfe1/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
2663 github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
2664 github.com/prometheus/common v0.0.0-20181126121408-4724e9255275/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
2665@@ -1228,19 +1617,27 @@ github.com/prometheus/common v0.18.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16
2666 github.com/prometheus/common v0.20.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s=
2667 github.com/prometheus/common v0.21.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s=
2668 github.com/prometheus/common v0.23.0/go.mod h1:H6QK/N6XVT42whUeIdI3dp36w49c+/iMDk7UAI2qm7Q=
2669-github.com/prometheus/common v0.24.0/go.mod h1:H6QK/N6XVT42whUeIdI3dp36w49c+/iMDk7UAI2qm7Q=
2670-github.com/prometheus/common v0.26.1-0.20210603143733-6ef301f414bf h1:w+U3wF/6JRY6+MNfxTodIBw6dZaE11Y+Arg3bRLqatI=
2671-github.com/prometheus/common v0.26.1-0.20210603143733-6ef301f414bf/go.mod h1:LdLj/WiR+LL0ThCPrtSZbijrsxInIhizDTiPlJhPPq4=
2672+github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc=
2673+github.com/prometheus/common v0.29.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls=
2674+github.com/prometheus/common v0.30.0 h1:JEkYlQnpzrzQFxi6gnukFPdQ+ac82oRhzMcIduJu/Ug=
2675+github.com/prometheus/common v0.30.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls=
2676+github.com/prometheus/common/sigv4 v0.1.0 h1:qoVebwtwwEhS85Czm2dSROY5fTo2PAPEVdDeppTwGX4=
2677+github.com/prometheus/common/sigv4 v0.1.0/go.mod h1:2Jkxxk9yYvCkE5G1sQT7GuEXm57JrvHu9k5YwTjsNtI=
2678 github.com/prometheus/exporter-toolkit v0.5.0/go.mod h1:OCkM4805mmisBhLmVFw858QYi3v0wKdY6/UxrT0pZVg=
2679 github.com/prometheus/exporter-toolkit v0.5.1/go.mod h1:OCkM4805mmisBhLmVFw858QYi3v0wKdY6/UxrT0pZVg=
2680+github.com/prometheus/exporter-toolkit v0.6.0/go.mod h1:ZUBIj498ePooX9t/2xtDjeQYwvRpiPP2lh5u4iblj2g=
2681+github.com/prometheus/exporter-toolkit v0.6.1 h1:Aqk75wQD92N9CqmTlZwjKwq6272nOGrWIbc8Z7+xQO0=
2682+github.com/prometheus/exporter-toolkit v0.6.1/go.mod h1:ZUBIj498ePooX9t/2xtDjeQYwvRpiPP2lh5u4iblj2g=
2683 github.com/prometheus/node_exporter v1.0.0-rc.0.0.20200428091818-01054558c289 h1:dTUS1vaLWq+Y6XKOTnrFpoVsQKLCbCp1OLj24TDi7oM=
2684 github.com/prometheus/node_exporter v1.0.0-rc.0.0.20200428091818-01054558c289/go.mod h1:FGbBv5OPKjch+jNUJmEQpMZytIdyW0NdBtWFcfSKusc=
2685+github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
2686 github.com/prometheus/procfs v0.0.0-20180612222113-7d6f385de8be/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
2687 github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
2688 github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
2689 github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
2690 github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
2691 github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
2692+github.com/prometheus/procfs v0.0.0-20190522114515-bc1a522cf7b1/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
2693 github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
2694 github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ=
2695 github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ=
2696@@ -1249,10 +1646,12 @@ github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+Gx
2697 github.com/prometheus/procfs v0.0.11/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
2698 github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
2699 github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
2700-github.com/prometheus/procfs v0.6.0 h1:mxy4L2jP6qMonqmq+aTtOx1ifVWUgG/TAmntgbh3xv4=
2701 github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
2702+github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU=
2703+github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
2704 github.com/prometheus/prometheus v0.0.0-20180315085919-58e2a31db8de/go.mod h1:oAIUtOny2rjMX0OWN5vPR5/q/twIROJvdqnQKDdil/s=
2705 github.com/prometheus/prometheus v0.0.0-20190818123050-43acd0e2e93f/go.mod h1:rMTlmxGCvukf2KMu3fClMDKLLoJ5hl61MhcJ7xKakf0=
2706+github.com/prometheus/prometheus v0.0.0-20200609090129-a6600f564e3c/go.mod h1:S5n0C6tSgdnwWshBUceRx5G1OsjLv/EeZ9t3wIfEtsY=
2707 github.com/prometheus/prometheus v1.8.2-0.20200107122003-4708915ac6ef/go.mod h1:7U90zPoLkWjEIQcy/rweQla82OCTUzxVHE51G3OhJbI=
2708 github.com/prometheus/prometheus v1.8.2-0.20200213233353-b90be6f32a33/go.mod h1:fkIPPkuZnkXyopYHmXPxf9rgiPkVgZCN8w9o8+UgBlY=
2709 github.com/prometheus/prometheus v1.8.2-0.20200707115909-30505a202a4c/go.mod h1:/kMSPIRsxr/apyHxlzYMdFnaPXUXXqILU5uzIoNhOvc=
2710@@ -1267,9 +1666,10 @@ github.com/prometheus/prometheus v1.8.2-0.20201119181812-c8f810083d3f/go.mod h1:
2711 github.com/prometheus/prometheus v1.8.2-0.20210215121130-6f488061dfb4/go.mod h1:NAYujktP0dmSSpeV155mtnwX2pndLpVVK/Ps68R01TA=
2712 github.com/prometheus/prometheus v1.8.2-0.20210315220929-1cba1741828b/go.mod h1:MS/bpdil77lPbfQeKk6OqVQ9OLnpN3Rszd0hka0EOWE=
2713 github.com/prometheus/prometheus v1.8.2-0.20210324152458-c7a62b95cea0/go.mod h1:sf7j/iAbhZahjeC0s3wwMmp5dksrJ/Za1UKdR+j6Hmw=
2714-github.com/prometheus/prometheus v1.8.2-0.20210421143221-52df5ef7a3be/go.mod h1:WbIKsp4vWCoPHis5qQfd0QimLOR7qe79roXN5O8U8bs=
2715-github.com/prometheus/prometheus v1.8.2-0.20210510213326-e313ffa8abf6 h1:VXojCB7PbAsMMD0udzYwR2s8Uyun7jmBaRN6Gq5+HVg=
2716-github.com/prometheus/prometheus v1.8.2-0.20210510213326-e313ffa8abf6/go.mod h1:yUzDYX0hIYu5YVHmpj/JXLOclB6QcLNDgmagD3FUnSU=
2717+github.com/prometheus/prometheus v1.8.2-0.20210519120135-d95b0972505f/go.mod h1:yUzDYX0hIYu5YVHmpj/JXLOclB6QcLNDgmagD3FUnSU=
2718+github.com/prometheus/prometheus v1.8.2-0.20210720123808-b1ed4a0a663d/go.mod h1:o6V+A4iPEWjLG0rSEKeev3OzfBZwP+ay+4iS4dkfLI4=
2719+github.com/prometheus/prometheus v1.8.2-0.20210914090109-37468d88dce8 h1:U8ZpFGP11pZi0ZavWWGeAqck3dVT9AY6zbr4fbBftjA=
2720+github.com/prometheus/prometheus v1.8.2-0.20210914090109-37468d88dce8/go.mod h1:02eURgmH1YsgJ2TtWNUGMQMCnLxmtHH9nOgvYxIjGAo=
2721 github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
2722 github.com/rafaeljusto/redigomock v0.0.0-20190202135759-257e089e14a1/go.mod h1:JaY6n2sDr+z2WTsXkOmNRUfDy6FN0L6Nk7x06ndm4tY=
2723 github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
2724@@ -1280,13 +1680,15 @@ github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR
2725 github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
2726 github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
2727 github.com/rs/cors v1.6.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU=
2728-github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik=
2729 github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU=
2730+github.com/rs/cors v1.8.0 h1:P2KMzcFwrPoSjkF1WLRPsp3UMLyql8L4v9hQpVeK5so=
2731+github.com/rs/cors v1.8.0/go.mod h1:EBwu+T5AvHOcXwvZIkQFjUN6s8Czyqw12GL/Y0tUyRM=
2732 github.com/rs/xid v1.2.1 h1:mhH9Nq+C1fY2l1XIpgxIiUOfNpRBYH1kKcr+qfKgjRc=
2733 github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ=
2734 github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
2735 github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
2736 github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
2737+github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4=
2738 github.com/samuel/go-zookeeper v0.0.0-20190810000440-0ceca61e4d75/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E=
2739 github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E=
2740 github.com/samuel/go-zookeeper v0.0.0-20200724154423-2164a8ac840e/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E=
2741@@ -1299,6 +1701,7 @@ github.com/scaleway/scaleway-sdk-go v1.0.0-beta.7.0.20210223165440-c65ae3540d44
2742 github.com/scaleway/scaleway-sdk-go v1.0.0-beta.7.0.20210223165440-c65ae3540d44/go.mod h1:CJJ5VAbozOl0yEw7nHB9+7BXTJbIn6h7W+f6Gau5IP8=
2743 github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I=
2744 github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
2745+github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo=
2746 github.com/segmentio/fasthash v0.0.0-20180216231524-a72b379d632e h1:uO75wNGioszjmIzcY/tvdDYKRLVvzggtAmmJkn9j4GQ=
2747 github.com/segmentio/fasthash v0.0.0-20180216231524-a72b379d632e/go.mod h1:tm/wZFQ8e24NYaBGIlnO2WGCAi67re4HHuOm0sftE/M=
2748 github.com/segmentio/kafka-go v0.1.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo=
2749@@ -1318,24 +1721,29 @@ github.com/shurcooL/vfsgen v0.0.0-20200627165143-92b8a710ab6c/go.mod h1:TrYk7fJV
2750 github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546 h1:pXY9qYc/MP5zdvqWEUH6SjNiu7VhSjuVFTFiTcphaLU=
2751 github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546/go.mod h1:TrYk7fJVaAttu97ZZKrO9UbRa8izdowaMIZcxYMbVaw=
2752 github.com/siebenmann/go-kstat v0.0.0-20160321171754-d34789b79745/go.mod h1:G81aIFAMS9ECrwBYR9YxhlPjWgrItd+Kje78O6+uqm8=
2753+github.com/sirupsen/logrus v1.0.4-0.20170822132746-89742aefa4b2/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc=
2754 github.com/sirupsen/logrus v1.0.5/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc=
2755+github.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc=
2756 github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
2757 github.com/sirupsen/logrus v1.4.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
2758 github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q=
2759 github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
2760 github.com/sirupsen/logrus v1.5.0/go.mod h1:+F7Ogzej0PZc/94MaYx/nvG9jOFMD2osvC3s+Squfpo=
2761 github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
2762-github.com/sirupsen/logrus v1.7.0 h1:ShrD1U9pZB12TX0cVy0DtePoCH97K8EtX+mg7ZARUtM=
2763 github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
2764+github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE=
2765+github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
2766 github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
2767 github.com/smartystreets/assertions v1.0.1 h1:voD4ITNjPL5jjBfgR/r8fPIIBrliWrWHeiJApdr3r4w=
2768 github.com/smartystreets/assertions v1.0.1/go.mod h1:kHHU4qYBaI3q23Pp3VPrmWhuIUrLW/7eUrw0BU5VaoM=
2769 github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
2770 github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s=
2771 github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
2772+github.com/snowflakedb/gosnowflake v1.3.4/go.mod h1:NsRq2QeiMUuoNUJhp5Q6xGC4uBrsS9g6LwZVEkTWgsE=
2773 github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
2774-github.com/soheilhy/cmux v0.1.5-0.20210205191134-5ec6847320e5 h1:GJTW+uNMIV1RKwox+T4aN0/sQlYRg78uHZf2H0aBcDw=
2775 github.com/soheilhy/cmux v0.1.5-0.20210205191134-5ec6847320e5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0=
2776+github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js=
2777+github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0=
2778 github.com/sony/gobreaker v0.4.1 h1:oMnRNZXX5j85zso6xCPRNPtmAycat+WcoKbklScLDgQ=
2779 github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY=
2780 github.com/soundcloud/go-runit v0.0.0-20150630195641-06ad41a06c4a/go.mod h1:LeFCbQYJ3KJlPs/FvPz2dy1tkpxyeNESVyCNNzRXFR0=
2781@@ -1343,26 +1751,39 @@ github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasO
2782 github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI=
2783 github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
2784 github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
2785-github.com/spf13/afero v1.2.2 h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc=
2786 github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
2787+github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4=
2788+github.com/spf13/afero v1.3.4 h1:8q6vk3hthlpb2SouZcnBVKboxWQWMDNF38bwholZrJc=
2789+github.com/spf13/afero v1.3.4/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I=
2790 github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
2791+github.com/spf13/cobra v0.0.2-0.20171109065643-2da4a54c5cee/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
2792 github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
2793+github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE=
2794 github.com/spf13/cobra v1.1.1/go.mod h1:WnodtKOvamDL/PwE2M4iKs8aMDBZ5Q5klgD3qfVJQMI=
2795+github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo=
2796 github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
2797 github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
2798+github.com/spf13/pflag v1.0.1-0.20171106142849-4c012f6dcd95/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
2799 github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
2800 github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
2801 github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
2802 github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
2803+github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE=
2804 github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg=
2805+github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980/go.mod h1:AO3tvPzVZ/ayst6UlUKUv6rcPQInYe3IknH3jYhAKu8=
2806+github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8=
2807 github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw=
2808 github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw=
2809+github.com/streadway/amqp v1.0.0/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw=
2810 github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI=
2811+github.com/streadway/handy v0.0.0-20200128134331-0f66f006fb2e/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI=
2812+github.com/stretchr/objx v0.0.0-20180129172003-8a3f7159479f/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
2813 github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
2814 github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
2815 github.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48=
2816 github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
2817 github.com/stretchr/testify v0.0.0-20151208002404-e3a8ff8ce365/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
2818+github.com/stretchr/testify v0.0.0-20180303142811-b89eecf5ca5d/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
2819 github.com/stretchr/testify v1.2.0/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
2820 github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
2821 github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
2822@@ -1372,6 +1793,14 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/
2823 github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
2824 github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
2825 github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
2826+github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
2827+github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
2828+github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
2829+github.com/tchap/go-patricia v2.2.6+incompatible/go.mod h1:bmLyhP68RS6kStMGxByiQ23RP/odRBOTVjwp2cDyi6I=
2830+github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.194/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
2831+github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/kms v1.0.194/go.mod h1:yrBKWhChnDqNz1xuXdSbWXG56XawEq0G5j1lg4VwBD4=
2832+github.com/tencentyun/cos-go-sdk-v5 v0.7.31 h1:NujkkOKMJ3IFs1+trCwXOKRCIPQ8qI5Lxul9JkhTg6M=
2833+github.com/tencentyun/cos-go-sdk-v5 v0.7.31/go.mod h1:4E4+bQ2gBVJcgEC9Cufwylio4mXOct2iu05WjgEBx1o=
2834 github.com/thanos-io/thanos v0.8.1-0.20200109203923-552ffa4c1a0d/go.mod h1:usT/TxtJQ7DzinTt+G9kinDQmRS5sxwu0unVKZ9vdcw=
2835 github.com/thanos-io/thanos v0.13.1-0.20200731083140-69b87607decf/go.mod h1:G8caR6G7pSDreRDvFm9wFuyjEBztmr8Ag3kBYpa/fEc=
2836 github.com/thanos-io/thanos v0.13.1-0.20200807203500-9b578afb4763/go.mod h1:KyW0a93tsh7v4hXAwo2CVAIRYuZT1Kkf4e04gisQjAg=
2837@@ -1382,45 +1811,71 @@ github.com/thanos-io/thanos v0.13.1-0.20210204123931-82545cdd16fe/go.mod h1:ZLDG
2838 github.com/thanos-io/thanos v0.13.1-0.20210224074000-659446cab117/go.mod h1:kdqFpzdkveIKpNNECVJd75RPvgsAifQgJymwCdfev1w=
2839 github.com/thanos-io/thanos v0.13.1-0.20210226164558-03dace0a1aa1/go.mod h1:gMCy4oCteKTT7VuXVvXLTPGzzjovX1VPE5p+HgL1hyU=
2840 github.com/thanos-io/thanos v0.13.1-0.20210401085038-d7dff0c84d17/go.mod h1:zU8KqE+6A+HksK4wiep8e/3UvCZLm+Wrw9AqZGaAm9k=
2841-github.com/thanos-io/thanos v0.19.1-0.20210427154226-d5bd651319d2 h1:L6U4VYeIConcO4GaFOAaZW4Gwr+lIVfBprW9a0+py/k=
2842-github.com/thanos-io/thanos v0.19.1-0.20210427154226-d5bd651319d2/go.mod h1:zvSf4uKtey4KjSVcalV/5oUuGthaTzI8kVDrO42I8II=
2843+github.com/thanos-io/thanos v0.19.1-0.20210729154440-aa148f8fdb28/go.mod h1:Xskx78e0CYL6w0yDNOZHGdvwQMlsuzPsePmPtbp9Xuk=
2844+github.com/thanos-io/thanos v0.19.1-0.20210923155558-c15594a03c45 h1:G7KvVtPy04sXgJyF2JfWc+2jf+18OQZNk5ZqJ95cnfc=
2845+github.com/thanos-io/thanos v0.19.1-0.20210923155558-c15594a03c45/go.mod h1:lQD+AiWRbxzoCviPmxdbQIUvmTEJQPxv9n6erKMsRrQ=
2846 github.com/themihai/gomemcache v0.0.0-20180902122335-24332e2d58ab h1:7ZR3hmisBWw77ZpO1/o86g+JV3VKlk3d48jopJxzTjU=
2847 github.com/themihai/gomemcache v0.0.0-20180902122335-24332e2d58ab/go.mod h1:eheTFp954zcWZXCU8d0AT76ftsQOTo4DTqkN/h3k1MY=
2848 github.com/tidwall/pretty v0.0.0-20180105212114-65a9db5fad51/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
2849 github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4=
2850 github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
2851 github.com/tinylib/msgp v1.0.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE=
2852+github.com/tinylib/msgp v1.1.0/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE=
2853 github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
2854 github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
2855-github.com/tmc/grpc-websocket-proxy v0.0.0-20200427203606-3cfed13b9966 h1:j6JEOq5QWFker+d7mFQYOhjTZonQ7YkLTHm56dbn+yM=
2856 github.com/tmc/grpc-websocket-proxy v0.0.0-20200427203606-3cfed13b9966/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
2857+github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802 h1:uruHq4dN7GR16kFc5fp3d1RIYzJW5onx8Ybykw2YQFA=
2858+github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
2859 github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM=
2860+github.com/uber-go/tally v3.3.15+incompatible/go.mod h1:YDTIBxdXyOU/sCWilKB4bgyufu1cEi0jdVnRdxvjnmU=
2861+github.com/uber/athenadriver v1.1.4/go.mod h1:tQjho4NzXw55LGfSZEcETuYydpY1vtmixUabHkC1K/E=
2862 github.com/uber/jaeger-client-go v2.15.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=
2863 github.com/uber/jaeger-client-go v2.20.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=
2864 github.com/uber/jaeger-client-go v2.22.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=
2865+github.com/uber/jaeger-client-go v2.23.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=
2866 github.com/uber/jaeger-client-go v2.23.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=
2867 github.com/uber/jaeger-client-go v2.24.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=
2868 github.com/uber/jaeger-client-go v2.25.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=
2869-github.com/uber/jaeger-client-go v2.28.0+incompatible h1:G4QSBfvPKvg5ZM2j9MrJFdfI5iSljY/WnJqOGFao6HI=
2870 github.com/uber/jaeger-client-go v2.28.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=
2871+github.com/uber/jaeger-client-go v2.29.1+incompatible h1:R9ec3zO3sGpzs0abd43Y+fBZRJ9uiH6lXyR/+u6brW4=
2872+github.com/uber/jaeger-client-go v2.29.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=
2873 github.com/uber/jaeger-lib v1.5.1-0.20181102163054-1fc5c315e03c/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U=
2874 github.com/uber/jaeger-lib v2.2.0+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U=
2875 github.com/uber/jaeger-lib v2.4.0+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U=
2876 github.com/uber/jaeger-lib v2.4.1+incompatible h1:td4jdvLcExb4cBISKIpHuGoVXh+dVKhn2Um6rjCsSsg=
2877 github.com/uber/jaeger-lib v2.4.1+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U=
2878+github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
2879+github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw=
2880+github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY=
2881+github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
2882 github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
2883 github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
2884+github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
2885+github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
2886+github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8=
2887+github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ=
2888 github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw=
2889+github.com/vishvananda/netlink v0.0.0-20181108222139-023a6dafdcdf/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk=
2890+github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE=
2891+github.com/vishvananda/netlink v1.1.1-0.20201029203352-d40f9887b852/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho=
2892+github.com/vishvananda/netns v0.0.0-20180720170159-13995c7128cc/go.mod h1:ZjcWmFBXmLKZu9Nxj3WKYEafiSqer2rnvPr0en9UNpI=
2893+github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU=
2894+github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0=
2895 github.com/weaveworks/common v0.0.0-20200206153930-760e36ae819a/go.mod h1:6enWAqfQBFrE8X/XdJwZr8IKgh1chStuFR0mjU/UOUw=
2896 github.com/weaveworks/common v0.0.0-20200625145055-4b1847531bc9/go.mod h1:c98fKi5B9u8OsKGiWHLRKus6ToQ1Tubeow44ECO1uxY=
2897 github.com/weaveworks/common v0.0.0-20200914083218-61ffdd448099/go.mod h1:hz10LOsAdzC3K/iXaKoFxOKTDRgxJl+BTGX1GY+TzO4=
2898 github.com/weaveworks/common v0.0.0-20201119133501-0619918236ec/go.mod h1:ykzWac1LtVfOxdCK+jD754at1Ws9dKCwFeUzkFBffPs=
2899 github.com/weaveworks/common v0.0.0-20210112142934-23c8d7fa6120/go.mod h1:ykzWac1LtVfOxdCK+jD754at1Ws9dKCwFeUzkFBffPs=
2900-github.com/weaveworks/common v0.0.0-20210419092856-009d1eebd624 h1:rbPhNKTbWNWchMqGWKKVYUocxiAk1ii5b8D/C49v/Lg=
2901 github.com/weaveworks/common v0.0.0-20210419092856-009d1eebd624/go.mod h1:ykzWac1LtVfOxdCK+jD754at1Ws9dKCwFeUzkFBffPs=
2902+github.com/weaveworks/common v0.0.0-20210722103813-e649eff5ab4a/go.mod h1:YU9FvnS7kUnRt6HY10G+2qHkwzP3n3Vb1XsXDsJTSp8=
2903+github.com/weaveworks/common v0.0.0-20210901124008-1fa3f9fa874c h1:+yzwVr4/12cUgsdjbEHq6MsKB7jWBZpZccAP6xvqTzQ=
2904+github.com/weaveworks/common v0.0.0-20210901124008-1fa3f9fa874c/go.mod h1:YU9FvnS7kUnRt6HY10G+2qHkwzP3n3Vb1XsXDsJTSp8=
2905 github.com/weaveworks/promrus v1.2.0 h1:jOLf6pe6/vss4qGHjXmGz4oDJQA+AOCqEL3FvvZGz7M=
2906 github.com/weaveworks/promrus v1.2.0/go.mod h1:SaE82+OJ91yqjrE1rsvBWVzNZKcHYFtMUyS1+Ogs/KA=
2907 github.com/willf/bitset v1.1.3/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4=
2908+github.com/willf/bitset v1.1.9/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4=
2909+github.com/willf/bitset v1.1.11-0.20200630133818-d5bec3311243/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4=
2910+github.com/willf/bitset v1.1.11/go.mod h1:83CECat5yLh5zVOf4P1ErAgKA5UDvKtgyUABdr3+MjI=
2911 github.com/xanzy/go-gitlab v0.15.0/go.mod h1:8zdQa/ri1dfn8eS3Ir1SyfvOKlw7WBJ8DVThkpGiXrs=
2912 github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI=
2913 github.com/xdg-go/scram v1.0.2/go.mod h1:1WAq6h33pAW+iRreB34OORO2Nf7qel3VV3fjBj+hCSs=
2914@@ -1428,18 +1883,26 @@ github.com/xdg-go/stringprep v1.0.2/go.mod h1:8F9zXuvzgwmyT5DUm4GUfZGDdT3W+LCvS6
2915 github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I=
2916 github.com/xdg/stringprep v0.0.0-20180714160509-73f8eece6fdc/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y=
2917 github.com/xdg/stringprep v1.0.0/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y=
2918+github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=
2919+github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ=
2920+github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs=
2921 github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8=
2922 github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
2923 github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg=
2924 github.com/xlab/treeprint v1.0.0/go.mod h1:IoImgRak9i3zJyuxOKUP1v4UZd1tMoKkq/Cimt1uhCg=
2925 github.com/xlab/treeprint v1.1.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0=
2926+github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
2927 github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA=
2928 github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
2929 github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
2930 github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
2931 github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
2932+github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
2933 github.com/yuin/gopher-lua v0.0.0-20200816102855-ee81675732da h1:NimzV1aGyq29m5ukMK0AMWEhFaL/lrEOaephfuoiARg=
2934 github.com/yuin/gopher-lua v0.0.0-20200816102855-ee81675732da/go.mod h1:E1AXubJBdNmFERAOucpDIxNzeGfLzg0mYh+UfMWdChA=
2935+github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43/go.mod h1:aX5oPXxHm3bOH+xeAttToC8pqch2ScQN/JoXYupl6xs=
2936+github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50/go.mod h1:NUSPSUX/bi6SeDMUh6brw0nXpxHnc96TguQh0+r/ssA=
2937+github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go.mod h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg=
2938 gitlab.com/nyarla/go-crypt v0.0.0-20160106005555-d9a5dc2b789b/go.mod h1:T3BPAOm2cqquPa0MKWeNkmOM5RQsRhkrwMWonFMN7fE=
2939 go.elastic.co/apm v1.5.0/go.mod h1:OdB9sPtM6Vt7oz3VXt7+KR96i9li74qrxBGHTQygFvk=
2940 go.elastic.co/apm v1.11.0/go.mod h1:qoOSi09pnzJDh5fKnfY7bPmQgl8yl2tULdOu03xhui0=
2941@@ -1452,25 +1915,36 @@ go.elastic.co/fastjson v1.1.0/go.mod h1:boNGISWMjQsUPy/t6yqt2/1Wx4YNPSe+mZjlyw9v
2942 go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
2943 go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
2944 go.etcd.io/bbolt v1.3.5-0.20200615073812-232d8fc87f50/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ=
2945-go.etcd.io/bbolt v1.3.5 h1:XAzx9gjCb0Rxj7EoqcClPD1d5ZBxZJk0jbuoPHenBt0=
2946 go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ=
2947+go.etcd.io/bbolt v1.3.6 h1:/ecaJf0sk1l4l6V4awd65v2C3ILy7MSj+s/x1ADCIMU=
2948+go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4=
2949 go.etcd.io/etcd v0.0.0-20190709142735-eb7dd97135a5/go.mod h1:N0RPWo9FXJYZQI4BTkDtQylrstIigYHeR18ONnyTufk=
2950 go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg=
2951-go.etcd.io/etcd v0.5.0-alpha.5.0.20200520232829-54ba9589114f h1:pBCD+Z7cy5WPTq+R6MmJJvDRpn88cp7bmTypBsn91g4=
2952 go.etcd.io/etcd v0.5.0-alpha.5.0.20200520232829-54ba9589114f/go.mod h1:skWido08r9w6Lq/w70DO5XYIKMu4QFu1+4VsqLQuJy8=
2953-go.etcd.io/etcd/api/v3 v3.5.0-alpha.0 h1:+e5nrluATIy3GP53znpkHMFzPTHGYyzvJGFCbuI6ZLc=
2954+go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489/go.mod h1:yVHk9ub3CSBatqGNg7GRmsnfLWtoW60w4eDYfh7vHDg=
2955+go.etcd.io/etcd v3.3.25+incompatible h1:V1RzkZJj9LqsJRy+TUBgpWSbZXITLB819lstuTFoZOY=
2956+go.etcd.io/etcd v3.3.25+incompatible/go.mod h1:yaeTdrJi5lOmYerz05bd8+V7KubZs8YSFZfzsF9A6aI=
2957 go.etcd.io/etcd/api/v3 v3.5.0-alpha.0/go.mod h1:mPcW6aZJukV6Aa81LSKpBjQXTWlXB5r74ymPoSWa3Sw=
2958-go.etcd.io/etcd/client/v2 v2.305.0-alpha.0 h1:jZepGpOeJATxsbMNBZczDS2jHdK/QVHM1iPe9jURJ8o=
2959+go.etcd.io/etcd/api/v3 v3.5.0 h1:GsV3S+OfZEOCNXdtNkBSR7kgLobAa/SO6tCxRa0GAYw=
2960+go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs=
2961+go.etcd.io/etcd/client/pkg/v3 v3.5.0 h1:2aQv6F436YnN7I4VbI8PPYrBhu+SmrTaADcf8Mi/6PU=
2962+go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g=
2963 go.etcd.io/etcd/client/v2 v2.305.0-alpha.0/go.mod h1:kdV+xzCJ3luEBSIeQyB/OEKkWKd8Zkux4sbDeANrosU=
2964+go.etcd.io/etcd/client/v2 v2.305.0 h1:ftQ0nOOHMcbMS3KIaDQ0g5Qcd6bhaBrQT6b89DfwLTs=
2965+go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ=
2966 go.etcd.io/etcd/client/v3 v3.5.0-alpha.0/go.mod h1:wKt7jgDgf/OfKiYmCq5WFGxOFAkVMLxiiXgLDFhECr8=
2967-go.etcd.io/etcd/client/v3 v3.5.0-alpha.0.0.20210225194612-fa82d11a958a h1:GZLxiPIaZ/U1Mez9rw3BqUHKt3y3+CK4HWtGAG0Pfx0=
2968 go.etcd.io/etcd/client/v3 v3.5.0-alpha.0.0.20210225194612-fa82d11a958a/go.mod h1:wKt7jgDgf/OfKiYmCq5WFGxOFAkVMLxiiXgLDFhECr8=
2969-go.etcd.io/etcd/pkg/v3 v3.5.0-alpha.0 h1:3yLUEC0nFCxw/RArImOyRUI4OAFbg4PFpBbAhSNzKNY=
2970+go.etcd.io/etcd/client/v3 v3.5.0 h1:62Eh0XOro+rDwkrypAGDfgmNh5Joq+z+W9HZdlXMzek=
2971+go.etcd.io/etcd/client/v3 v3.5.0/go.mod h1:AIKXXVX/DQXtfTEqBryiLTUXwON+GuvO6Z7lLS/oTh0=
2972 go.etcd.io/etcd/pkg/v3 v3.5.0-alpha.0/go.mod h1:tV31atvwzcybuqejDoY3oaNRTtlD2l/Ot78Pc9w7DMY=
2973-go.etcd.io/etcd/raft/v3 v3.5.0-alpha.0 h1:DvYJotxV9q1Lkn7pknzAbFO/CLtCVidCr2K9qRLJ8pA=
2974+go.etcd.io/etcd/pkg/v3 v3.5.0 h1:ntrg6vvKRW26JRmHTE0iNlDgYK6JX3hg/4cD62X0ixk=
2975+go.etcd.io/etcd/pkg/v3 v3.5.0/go.mod h1:UzJGatBQ1lXChBkQF0AuAtkRQMYnHubxAEYIrC3MSsE=
2976 go.etcd.io/etcd/raft/v3 v3.5.0-alpha.0/go.mod h1:FAwse6Zlm5v4tEWZaTjmNhe17Int4Oxbu7+2r0DiD3w=
2977-go.etcd.io/etcd/server/v3 v3.5.0-alpha.0.0.20210225194612-fa82d11a958a h1:s40lP1ShwqY7NhqXcgAC5iq1B3EOQTpmbvOFl+o6ZxE=
2978+go.etcd.io/etcd/raft/v3 v3.5.0 h1:kw2TmO3yFTgE+F0mdKkG7xMxkit2duBDa2Hu6D/HMlw=
2979+go.etcd.io/etcd/raft/v3 v3.5.0/go.mod h1:UFOHSIvO/nKwd4lhkwabrTD3cqW5yVyYYf/KlD00Szc=
2980 go.etcd.io/etcd/server/v3 v3.5.0-alpha.0.0.20210225194612-fa82d11a958a/go.mod h1:tsKetYpt980ZTpzl/gb+UOJj9RkIyCb1u4wjzMg90BQ=
2981+go.etcd.io/etcd/server/v3 v3.5.0 h1:jk8D/lwGEDlQU9kZXUFMSANkE22Sg5+mW27ip8xcF9E=
2982+go.etcd.io/etcd/server/v3 v3.5.0/go.mod h1:3Ah5ruV+M+7RZr0+Y/5mNLwC+eQlni+mQmOVdCRJoS4=
2983 go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
2984 go.mongodb.org/mongo-driver v1.0.4/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
2985 go.mongodb.org/mongo-driver v1.1.0/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
2986@@ -1484,6 +1958,7 @@ go.mongodb.org/mongo-driver v1.4.4/go.mod h1:WcMNYLx/IlOxLe6JRJiv2uXuCz6zBLndR4S
2987 go.mongodb.org/mongo-driver v1.4.6/go.mod h1:WcMNYLx/IlOxLe6JRJiv2uXuCz6zBLndR4SoGjYphSc=
2988 go.mongodb.org/mongo-driver v1.5.1 h1:9nOVLGDfOaZ9R0tBumx/BcuqkbFpyTCU2r/Po7A2azI=
2989 go.mongodb.org/mongo-driver v1.5.1/go.mod h1:gRXCHX4Jo7J0IJ1oDQyUxF7jfy19UfxniMS4xxMmUqw=
2990+go.mozilla.org/pkcs7 v0.0.0-20200128120323-432b2356ecb1/go.mod h1:SNgMg+EgDFwmvSmLRTNKC5fegJjB7v23qTQ0XLGUNHk=
2991 go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
2992 go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
2993 go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
2994@@ -1494,41 +1969,66 @@ go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
2995 go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk=
2996 go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M=
2997 go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
2998+go.opentelemetry.io/contrib v0.20.0 h1:ubFQUn0VCZ0gPwIoJfBJVpeBlyRMxu8Mm/huKWYd9p0=
2999+go.opentelemetry.io/contrib v0.20.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc=
3000+go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0 h1:sO4WKdPAudZGKPcpZT4MJn6JaDmpyLrMPDGGyA1SttE=
3001+go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0/go.mod h1:oVGt1LRbBOBq1A5BQLlUg9UaU/54aiHw8cgjV3aWZ/E=
3002 go.opentelemetry.io/otel v0.11.0/go.mod h1:G8UCk+KooF2HLkgo8RHX9epABH/aRGYET7gQOqBVdB0=
3003 go.opentelemetry.io/otel v0.20.0 h1:eaP0Fqu7SXHwvjiqDq83zImeehOHX8doTvU9AwXON8g=
3004 go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo=
3005+go.opentelemetry.io/otel/exporters/otlp v0.20.0 h1:PTNgq9MRmQqqJY0REVbZFvwkYOA85vbdQU/nVfxDyqg=
3006+go.opentelemetry.io/otel/exporters/otlp v0.20.0/go.mod h1:YIieizyaN77rtLJra0buKiNBOm9XQfkPEKBeuhoMwAM=
3007 go.opentelemetry.io/otel/metric v0.20.0 h1:4kzhXFP+btKm4jwxpjIqjs41A7MakRFUS86bqLHTIw8=
3008 go.opentelemetry.io/otel/metric v0.20.0/go.mod h1:598I5tYlH1vzBjn+BTuhzTCSb/9debfNp6R3s7Pr1eU=
3009 go.opentelemetry.io/otel/oteltest v0.20.0 h1:HiITxCawalo5vQzdHfKeZurV8x7ljcqAgiWzF6Vaeaw=
3010 go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw=
3011+go.opentelemetry.io/otel/sdk v0.20.0 h1:JsxtGXd06J8jrnya7fdI/U/MR6yXA5DtbZy+qoHQlr8=
3012+go.opentelemetry.io/otel/sdk v0.20.0/go.mod h1:g/IcepuwNsoiX5Byy2nNV0ySUF1em498m7hBWC279Yc=
3013+go.opentelemetry.io/otel/sdk/export/metric v0.20.0 h1:c5VRjxCXdQlx1HjzwGdQHzZaVI82b5EbBgOu2ljD92g=
3014+go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi+bJK+Dr8NQCh0qGhm1KDnNlE=
3015+go.opentelemetry.io/otel/sdk/metric v0.20.0 h1:7ao1wpzHRVKf0OQ7GIxiQJA6X7DLX9o14gmVon7mMK8=
3016+go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE=
3017 go.opentelemetry.io/otel/trace v0.20.0 h1:1DL6EXUdcg95gukhuRRvLDO/4X5THh/5dIV52lqtnbw=
3018 go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw=
3019+go.opentelemetry.io/proto/otlp v0.7.0 h1:rwOQPCuKAKmwGKq2aVNnYIibI6wnV7EvzgfTCzcdGg8=
3020+go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
3021 go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
3022 go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
3023 go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
3024 go.uber.org/atomic v1.5.1/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
3025 go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
3026-go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=
3027 go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
3028+go.uber.org/atomic v1.8.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
3029+go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE=
3030+go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
3031 go.uber.org/automaxprocs v1.2.0/go.mod h1:YfO3fm683kQpzETxlTGZhGIVmXAhaw3gxeBADbpZtnU=
3032+go.uber.org/automaxprocs v1.4.0/go.mod h1:/mTEdr7LvHhs0v7mjdxDreTz1OG5zdZGqgOnhWiR/+Q=
3033 go.uber.org/goleak v1.0.0/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
3034-go.uber.org/goleak v1.1.10 h1:z+mqJhf6ss6BSfSM671tgKyZBFPTTJM+HLxnhPC3wu0=
3035 go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
3036+go.uber.org/goleak v1.1.11-0.20210813005559-691160354723 h1:sHOAIxRGBp443oHZIPB+HsUGaksVCXVQENPxwTfQdH4=
3037+go.uber.org/goleak v1.1.11-0.20210813005559-691160354723/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
3038 go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
3039 go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4=
3040 go.uber.org/multierr v1.4.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4=
3041-go.uber.org/multierr v1.5.0 h1:KCa4XfM8CWFCpxXRGok+Q0SS/0XBhMDbHHGABQLvD2A=
3042 go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU=
3043-go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee h1:0mgffUl7nfd+FpvXMVz4IDEaUSmT1ysygQC7qYo7sG4=
3044+go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
3045+go.uber.org/multierr v1.7.0 h1:zaiO/rmgFjbmCXdSYJWQcdvOCsthmdaHfr3Gm2Kx4Ec=
3046+go.uber.org/multierr v1.7.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak=
3047 go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA=
3048 go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
3049 go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
3050 go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM=
3051+go.uber.org/zap v1.14.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM=
3052 go.uber.org/zap v1.14.1/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc=
3053-go.uber.org/zap v1.16.0 h1:uFRZXykJGK9lLY4HtgSw44DnIcAM+kRBP7x5m+NpAOM=
3054 go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ=
3055+go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo=
3056+go.uber.org/zap v1.19.1 h1:ue41HOKd1vGURxrmeKIgELGb3jPW9DMUDGtsinblHwI=
3057+go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI=
3058+golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
3059+golang.org/x/crypto v0.0.0-20180505025534-4ec37c66abab/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
3060 golang.org/x/crypto v0.0.0-20180608092829-8ac0e0d97ce4/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
3061 golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
3062+golang.org/x/crypto v0.0.0-20181009213950-7c1a557ab941/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
3063 golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
3064 golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
3065 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
3066@@ -1543,21 +2043,28 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U
3067 golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
3068 golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
3069 golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
3070+golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
3071 golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY=
3072 golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
3073 golang.org/x/crypto v0.0.0-20191112222119-e1110fd1c708/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
3074 golang.org/x/crypto v0.0.0-20191202143827-86a70503ff7e/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
3075 golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
3076 golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
3077+golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
3078 golang.org/x/crypto v0.0.0-20200422194213-44a606286825/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
3079 golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
3080 golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
3081 golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
3082+golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
3083 golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
3084 golang.org/x/crypto v0.0.0-20201208171446-5f87f3452ae9/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
3085 golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
3086-golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83 h1:/ZScEX8SfEmUGRHs0gxpqteO5nfNW6axyZbBdw9A12g=
3087-golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
3088+golang.org/x/crypto v0.0.0-20210314154223-e6e6c4f2bb5b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
3089+golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
3090+golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8=
3091+golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
3092+golang.org/x/crypto v0.0.0-20210915214749-c084706c2272 h1:3erb+vDS8lU1sxfDHF4/hhWyaXnhIaO+7RgL4fDZORA=
3093+golang.org/x/crypto v0.0.0-20210915214749-c084706c2272/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
3094 golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
3095 golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
3096 golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
3097@@ -1577,7 +2084,6 @@ golang.org/x/exp v0.0.0-20200821190819-94841d0725da/go.mod h1:3jZMyOhIsHpP37uCMk
3098 golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs=
3099 golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
3100 golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
3101-golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
3102 golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
3103 golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
3104 golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
3105@@ -1587,8 +2093,9 @@ golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHl
3106 golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs=
3107 golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
3108 golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
3109-golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5 h1:2M3HP5CCK1Si9FQhwnzYhXdG6DXeebvUHFpre8QvbyI=
3110 golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
3111+golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 h1:VLliZ0d+/avPrXXH+OakdXhpJuEoBZuwh1m2j7U6Iug=
3112+golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
3113 golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
3114 golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
3115 golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
3116@@ -1598,13 +2105,13 @@ golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzB
3117 golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
3118 golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
3119 golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
3120-golang.org/x/mod v0.4.1 h1:Kvvh58BN8Y9/lBi7hTekvtMpm07eUZ0ck5pRHpsMWrY=
3121 golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
3122+golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
3123 golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
3124 golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
3125-golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
3126 golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
3127 golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
3128+golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
3129 golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
3130 golang.org/x/net v0.0.0-20181108082009-03003ca0c849/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
3131 golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
3132@@ -1622,6 +2129,7 @@ golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn
3133 golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
3134 golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
3135 golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
3136+golang.org/x/net v0.0.0-20190619014844-b5b0513f8c1b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
3137 golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
3138 golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
3139 golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
3140@@ -1663,11 +2171,19 @@ golang.org/x/net v0.0.0-20210224082022-3d97a244fca7/go.mod h1:m0MpNAwzfU5UDzcl9v
3141 golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
3142 golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc=
3143 golang.org/x/net v0.0.0-20210324051636-2c4c8ecb7826/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc=
3144+golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
3145 golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM=
3146+golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk=
3147 golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
3148 golang.org/x/net v0.0.0-20210505214959-0714010a04ed/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
3149-golang.org/x/net v0.0.0-20210525063256-abc453219eb5 h1:wjuX4b5yYQnEQHzd+CBcrcC6OVR2J1CN6mUy0oSxIPo=
3150+golang.org/x/net v0.0.0-20210520170846-37e1c6afe023/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
3151 golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
3152+golang.org/x/net v0.0.0-20210610132358-84b48f89b13b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
3153+golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
3154+golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
3155+golang.org/x/net v0.0.0-20210903162142-ad29c8ab022f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
3156+golang.org/x/net v0.0.0-20210917221730-978cfadd31cf h1:R150MpwJIv1MpS0N/pc+NhTM8ajzvlmxlY5OYsrevXQ=
3157+golang.org/x/net v0.0.0-20210917221730-978cfadd31cf/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
3158 golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
3159 golang.org/x/oauth2 v0.0.0-20181106182150-f42d05182288/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
3160 golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
3161@@ -1684,8 +2200,11 @@ golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ
3162 golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
3163 golang.org/x/oauth2 v0.0.0-20210323180902-22b0adad7558/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
3164 golang.org/x/oauth2 v0.0.0-20210427180440-81ed05c6b58c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
3165-golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c h1:pkQiBZBvdos9qq4wBAHqlzuZHEXo07pqV06ef90u1WI=
3166 golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
3167+golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
3168+golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
3169+golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f h1:Qmd2pbz05z7z6lm0DrgQVVPuBm92jqujBKMHMOlOQEw=
3170+golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
3171 golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
3172 golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
3173 golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
3174@@ -1702,7 +2221,6 @@ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cO
3175 golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
3176 golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
3177 golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
3178-golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
3179 golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
3180 golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
3181 golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
3182@@ -1710,6 +2228,7 @@ golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5h
3183 golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
3184 golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
3185 golang.org/x/sys v0.0.0-20190102155601-82a175fd1598/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
3186+golang.org/x/sys v0.0.0-20190130150945-aca44879d564/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
3187 golang.org/x/sys v0.0.0-20190204203706-41f3e6584952/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
3188 golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
3189 golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
3190@@ -1725,13 +2244,18 @@ golang.org/x/sys v0.0.0-20190425145619-16072639606e/go.mod h1:h1NjWce9XRLGQEsW7w
3191 golang.org/x/sys v0.0.0-20190426135247-a129542de9ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3192 golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3193 golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3194+golang.org/x/sys v0.0.0-20190514135907-3a4b5fb9f71f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3195+golang.org/x/sys v0.0.0-20190522044717-8097e1b27ff5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3196 golang.org/x/sys v0.0.0-20190531175056-4c3a928424d2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3197+golang.org/x/sys v0.0.0-20190602015325-4c4f7f33c9ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3198 golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3199+golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3200 golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3201 golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3202 golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3203 golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3204 golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3205+golang.org/x/sys v0.0.0-20190812073006-9eafafc0a87e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3206 golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3207 golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3208 golang.org/x/sys v0.0.0-20190902133755-9109b7679e13/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3209@@ -1748,15 +2272,18 @@ golang.org/x/sys v0.0.0-20191025021431-6c3a3bfe00ae/go.mod h1:h1NjWce9XRLGQEsW7w
3210 golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3211 golang.org/x/sys v0.0.0-20191112214154-59a1497f0cea/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3212 golang.org/x/sys v0.0.0-20191113165036-4c7a9d0fe056/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3213+golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3214 golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3215 golang.org/x/sys v0.0.0-20191128015809-6d18c012aee9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3216 golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3217+golang.org/x/sys v0.0.0-20191210023423-ac6580df4449/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3218 golang.org/x/sys v0.0.0-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3219 golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3220 golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3221 golang.org/x/sys v0.0.0-20200107162124-548cf772de50/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3222 golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3223 golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3224+golang.org/x/sys v0.0.0-20200120151820-655fe14d7479/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3225 golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3226 golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3227 golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3228@@ -1778,16 +2305,25 @@ golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7w
3229 golang.org/x/sys v0.0.0-20200724161237-0e2f3a69832c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3230 golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3231 golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3232+golang.org/x/sys v0.0.0-20200817155316-9781c653f443/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3233+golang.org/x/sys v0.0.0-20200826173525-f9321e4c35a6/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3234+golang.org/x/sys v0.0.0-20200828194041-157a740278f4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3235 golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3236 golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3237+golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3238+golang.org/x/sys v0.0.0-20200916030750-2334cc1a136f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3239 golang.org/x/sys v0.0.0-20200918174421-af09f7315aff/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3240+golang.org/x/sys v0.0.0-20200922070232-aee5d888a860/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3241+golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3242 golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3243 golang.org/x/sys v0.0.0-20201008064518-c1f3e3309c71/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3244 golang.org/x/sys v0.0.0-20201009025420-dfb3f7c4e634/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3245 golang.org/x/sys v0.0.0-20201015000850-e3ed0017c211/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3246 golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3247+golang.org/x/sys v0.0.0-20201117170446-d9b008d0a637/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3248 golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3249 golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3250+golang.org/x/sys v0.0.0-20201202213521-69691e467435/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3251 golang.org/x/sys v0.0.0-20201214210602-f9fddec55a1e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3252 golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3253 golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3254@@ -1802,11 +2338,24 @@ golang.org/x/sys v0.0.0-20210314195730-07df6a141424/go.mod h1:h1NjWce9XRLGQEsW7w
3255 golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3256 golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3257 golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3258+golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3259+golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3260 golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3261 golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3262 golang.org/x/sys v0.0.0-20210503080704-8803ae5d1324/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3263-golang.org/x/sys v0.0.0-20210503173754-0981d6026fa6 h1:cdsMqa2nXzqlgs183pHxtvoVwU7CyzaCTAUOg94af4c=
3264 golang.org/x/sys v0.0.0-20210503173754-0981d6026fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
3265+golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
3266+golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
3267+golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
3268+golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
3269+golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
3270+golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
3271+golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
3272+golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
3273+golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
3274+golang.org/x/sys v0.0.0-20210906170528-6f6e22806c34/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
3275+golang.org/x/sys v0.0.0-20210917161153-d61c044b1678 h1:J27LZFQBFoihqXoegpscI10HpjZ7B5WQLLKL2FZXQKw=
3276+golang.org/x/sys v0.0.0-20210917161153-d61c044b1678/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
3277 golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
3278 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E=
3279 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
3280@@ -1819,8 +2368,9 @@ golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
3281 golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
3282 golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
3283 golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
3284-golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M=
3285 golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
3286+golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
3287+golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
3288 golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
3289 golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
3290 golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
3291@@ -1828,15 +2378,15 @@ golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxb
3292 golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
3293 golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
3294 golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
3295-golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba h1:O8mE0/t419eoIwhTFpKVkHiTs/Igowgfkj25AcZrtiE=
3296 golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
3297+golang.org/x/time v0.0.0-20210611083556-38a9dc6acbc6/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
3298+golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac h1:7zkz7BUtwNFFqcowJ+RIgu2MaV/MapERkDIy+mwPyjs=
3299+golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
3300 golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
3301 golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
3302-golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
3303 golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
3304 golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
3305 golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
3306-golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
3307 golang.org/x/tools v0.0.0-20190118193359-16909d206f00/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
3308 golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
3309 golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
3310@@ -1890,18 +2440,22 @@ golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapK
3311 golang.org/x/tools v0.0.0-20200216192241-b320d3a0f5a2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
3312 golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
3313 golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
3314+golang.org/x/tools v0.0.0-20200304024140-c4206d458c3f/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
3315 golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
3316 golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
3317 golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
3318+golang.org/x/tools v0.0.0-20200422205258-72e4a01eba43/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
3319 golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
3320 golang.org/x/tools v0.0.0-20200509030707-2212a7e161a5/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
3321 golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
3322 golang.org/x/tools v0.0.0-20200513201620-d5fe73897c97/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
3323 golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
3324+golang.org/x/tools v0.0.0-20200522201501-cb1345f3a375/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
3325 golang.org/x/tools v0.0.0-20200603131246-cc40288be839/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
3326 golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
3327 golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
3328 golang.org/x/tools v0.0.0-20200710042808-f1c4188a97a1/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
3329+golang.org/x/tools v0.0.0-20200721032237-77f530d86f9a/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
3330 golang.org/x/tools v0.0.0-20200725200936-102e7d357031/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
3331 golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
3332 golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
3333@@ -1917,8 +2471,13 @@ golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4f
3334 golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
3335 golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
3336 golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
3337-golang.org/x/tools v0.1.0 h1:po9/4sTYwZU9lPhi1tOrb4hCv3qrhiQ77LZfGa2OjwY=
3338 golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
3339+golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
3340+golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
3341+golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
3342+golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
3343+golang.org/x/tools v0.1.5 h1:ouewzE6p+/VEB31YYnTbEJdi8pFqKp4P4n85vwo3DHA=
3344+golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
3345 golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
3346 golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
3347 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
3348@@ -1927,9 +2486,11 @@ golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8T
3349 gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=
3350 gonum.org/v1/gonum v0.0.0-20181121035319-3f7ecaa7e8ca/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=
3351 gonum.org/v1/gonum v0.6.0/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU=
3352+gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0=
3353 gonum.org/v1/netlib v0.0.0-20181029234149-ec6d1f5cefe6/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
3354 gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
3355 gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc=
3356+google.golang.org/api v0.0.0-20160322025152-9bf6e6e569ff/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=
3357 google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk=
3358 google.golang.org/api v0.3.2/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk=
3359 google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
3360@@ -1957,9 +2518,14 @@ google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjR
3361 google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU=
3362 google.golang.org/api v0.42.0/go.mod h1:+Oj4s6ch2SEGtPjGqfUfZonBH0GjQH89gTeKKAEGZKI=
3363 google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94=
3364-google.golang.org/api v0.46.0 h1:jkDWHOBIoNSD0OQpq4rtBVu+Rh325MPjXG1rakAp8JU=
3365 google.golang.org/api v0.46.0/go.mod h1:ceL4oozhkAiTID8XMmJBsIxID/9wMXJVVFXPg4ylg3I=
3366-google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
3367+google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo=
3368+google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4=
3369+google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw=
3370+google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU=
3371+google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k=
3372+google.golang.org/api v0.56.0 h1:08F9XVYTLOGeSQb3xI9C0gXMuQanhdGed0cWFhDozbI=
3373+google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE=
3374 google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
3375 google.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
3376 google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
3377@@ -1969,6 +2535,8 @@ google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCID
3378 google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
3379 google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c=
3380 google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
3381+google.golang.org/cloud v0.0.0-20151119220103-975617b05ea8/go.mod h1:0H1ncTHf11KCFhTc/+EFRbzSCOZx+VUbRMk55Yv5MYk=
3382+google.golang.org/genproto v0.0.0-20180518175338-11a468237815/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
3383 google.golang.org/genproto v0.0.0-20180608181217-32ee49c4dd80/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
3384 google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
3385 google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
3386@@ -1976,6 +2544,7 @@ google.golang.org/genproto v0.0.0-20190404172233-64821d5d2107/go.mod h1:VzzqZJRn
3387 google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
3388 google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
3389 google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
3390+google.golang.org/genproto v0.0.0-20190522204451-c2c4e71fbf69/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s=
3391 google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s=
3392 google.golang.org/genproto v0.0.0-20190716160619-c506a9f90610/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
3393 google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
3394@@ -1989,6 +2558,7 @@ google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvx
3395 google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
3396 google.golang.org/genproto v0.0.0-20200108215221-bd8f9a0ef82f/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
3397 google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
3398+google.golang.org/genproto v0.0.0-20200117163144-32f20d992d24/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
3399 google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
3400 google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA=
3401 google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
3402@@ -1997,6 +2567,7 @@ google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfG
3403 google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
3404 google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
3405 google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
3406+google.golang.org/genproto v0.0.0-20200420144010-e5e8543f8aeb/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
3407 google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
3408 google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
3409 google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
3410@@ -2012,7 +2583,9 @@ google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6D
3411 google.golang.org/genproto v0.0.0-20200815001618-f69a88009b70/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
3412 google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
3413 google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
3414+google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
3415 google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
3416+google.golang.org/genproto v0.0.0-20201110150050-8816d57aaa9a/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
3417 google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
3418 google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
3419 google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
3420@@ -2022,38 +2595,25 @@ google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6D
3421 google.golang.org/genproto v0.0.0-20210312152112-fc591d9ea70f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
3422 google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
3423 google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A=
3424-google.golang.org/genproto v0.0.0-20210429181445-86c259c2b4ab h1:dkb90hr43A2Q5as5ZBphcOF2II0+EqfCBqGp7qFSpN4=
3425 google.golang.org/genproto v0.0.0-20210429181445-86c259c2b4ab/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A=
3426-google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
3427-google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
3428-google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
3429-google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM=
3430-google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
3431-google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
3432-google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
3433-google.golang.org/grpc v1.22.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
3434-google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
3435-google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
3436-google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
3437-google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA=
3438-google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
3439-google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
3440-google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
3441-google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
3442-google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60=
3443-google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
3444-google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
3445-google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
3446-google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
3447-google.golang.org/grpc v1.32.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
3448-google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0=
3449-google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
3450-google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8=
3451-google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
3452-google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
3453-google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
3454-google.golang.org/grpc v1.37.0 h1:uSZWeQJX5j11bIQ4AJoj+McDBo29cY1MCoC1wO3ts+c=
3455-google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
3456+google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A=
3457+google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
3458+google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
3459+google.golang.org/genproto v0.0.0-20210608205507-b6d2f5bf0d7d/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
3460+google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24=
3461+google.golang.org/genproto v0.0.0-20210713002101-d411969a0d9a/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k=
3462+google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k=
3463+google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48=
3464+google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48=
3465+google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w=
3466+google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
3467+google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
3468+google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
3469+google.golang.org/genproto v0.0.0-20210917145530-b395a37504d4 h1:ysnBoUyeL/H6RCvNRhWHjKoDEmguI+mPU+qHgK8qv/w=
3470+google.golang.org/genproto v0.0.0-20210917145530-b395a37504d4/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
3471+google.golang.org/grpc v1.38.0 h1:/9BgsAsa5nWe26HqOlvlgJnqBuktYOLCgjCPqsa56W0=
3472+google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
3473+google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw=
3474 google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
3475 google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
3476 google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
3477@@ -2065,12 +2625,14 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD
3478 google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4=
3479 google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
3480 google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
3481-google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/lk=
3482 google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
3483+google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ=
3484+google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
3485 gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U=
3486 gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc=
3487 gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
3488 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
3489+gopkg.in/check.v1 v1.0.0-20141024133853-64131543e789/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
3490 gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
3491 gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
3492 gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU=
3493@@ -2083,6 +2645,8 @@ gopkg.in/fsnotify/fsnotify.v1 v1.4.7 h1:XNNYLJHt73EyYiCZi6+xjupS9CpvmiDgjPTAjrBl
3494 gopkg.in/fsnotify/fsnotify.v1 v1.4.7/go.mod h1:Fyux9zXlo4rWoMSIzpn9fDAYjalPqJ/K1qJ27s+7ltE=
3495 gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o=
3496 gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo=
3497+gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE=
3498+gopkg.in/go-playground/validator.v9 v9.29.1/go.mod h1:+c9/zcJMFNgbLvly1L1V+PpxWdVbfP1avr/N00E2vyQ=
3499 gopkg.in/inf.v0 v0.9.0/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
3500 gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
3501 gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
3502@@ -2090,7 +2654,12 @@ gopkg.in/ini.v1 v1.42.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
3503 gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
3504 gopkg.in/ini.v1 v1.57.0 h1:9unxIsFcTt4I55uWluz+UmL95q4kdJ0buvQ1ZIqVQww=
3505 gopkg.in/ini.v1 v1.57.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
3506+gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8=
3507+gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k=
3508 gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
3509+gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
3510+gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
3511+gopkg.in/square/go-jose.v2 v2.5.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
3512 gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
3513 gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
3514 gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI=
3515@@ -2115,33 +2684,46 @@ gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C
3516 gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw=
3517 gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk=
3518 gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8=
3519-honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
3520 honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
3521 honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
3522 honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
3523 honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
3524 honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
3525 honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
3526-honnef.co/go/tools v0.0.1-2020.1.4 h1:UoveltGrhghAA7ePc+e+QYDHXrBps2PqFZiHkGR/xK8=
3527 honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
3528 howett.net/plist v0.0.0-20181124034731-591f970eefbb/go.mod h1:vMygbs4qMhSZSc4lCUl2OEE+rDiIIJAIdR4m7MiMcm0=
3529 k8s.io/api v0.20.4 h1:xZjKidCirayzX6tHONRQyTNDVIR55TYVqgATqo6ZULY=
3530 k8s.io/api v0.20.4/go.mod h1:++lNL1AJMkDymriNniQsWRkMDzRaX2Y/POTUi8yvqYQ=
3531 k8s.io/apimachinery v0.0.0-20190809020650-423f5d784010/go.mod h1:Waf/xTS2FGRrgXCkO5FP3XxTOWh0qLf2QhL1qFZZ/R8=
3532 k8s.io/apimachinery v0.0.0-20191115015347-3c7067801da2/go.mod h1:dXFS2zaQR8fyzuvRdJDHw2Aerij/yVGJSre0bZQSVJA=
3533+k8s.io/apimachinery v0.17.5/go.mod h1:ioIo1G/a+uONV7Tv+ZmCbMG1/a3kVw5YcDdncd8ugQ0=
3534 k8s.io/apimachinery v0.18.3/go.mod h1:OaXp26zu/5J7p0f92ASynJa1pZo06YlV9fG7BoWbCko=
3535 k8s.io/apimachinery v0.18.5/go.mod h1:OaXp26zu/5J7p0f92ASynJa1pZo06YlV9fG7BoWbCko=
3536 k8s.io/apimachinery v0.18.6/go.mod h1:OaXp26zu/5J7p0f92ASynJa1pZo06YlV9fG7BoWbCko=
3537 k8s.io/apimachinery v0.18.8/go.mod h1:6sQd+iHEqmOtALqOFjSWp2KZ9F0wlU/nWm0ZgsYWMig=
3538 k8s.io/apimachinery v0.19.2/go.mod h1:DnPGDnARWFvYa3pMHgSxtbZb7gpzzAZ1pTfaUNDVlmA=
3539 k8s.io/apimachinery v0.19.4/go.mod h1:DnPGDnARWFvYa3pMHgSxtbZb7gpzzAZ1pTfaUNDVlmA=
3540+k8s.io/apimachinery v0.20.1/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU=
3541 k8s.io/apimachinery v0.20.2/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU=
3542 k8s.io/apimachinery v0.20.4/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU=
3543 k8s.io/apimachinery v0.20.5/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU=
3544-k8s.io/apimachinery v0.21.0 h1:3Fx+41if+IRavNcKOz09FwEXDBG6ORh6iMsTSelhkMA=
3545+k8s.io/apimachinery v0.20.6/go.mod h1:ejZXtW1Ra6V1O5H8xPBGz+T3+4gfkTCeExAHKU57MAc=
3546 k8s.io/apimachinery v0.21.0/go.mod h1:jbreFvJo3ov9rj7eWT7+sYiRx+qZuCYXwWT1bcDswPY=
3547+k8s.io/apimachinery v0.21.1/go.mod h1:jbreFvJo3ov9rj7eWT7+sYiRx+qZuCYXwWT1bcDswPY=
3548+k8s.io/apimachinery v0.22.1 h1:DTARnyzmdHMz7bFWFDDm22AM4pLWTQECMpRTFu2d2OM=
3549+k8s.io/apimachinery v0.22.1/go.mod h1:O3oNtNadZdeOMxHFVxOreoznohCpy0z6mocxbZr7oJ0=
3550+k8s.io/apiserver v0.20.1/go.mod h1:ro5QHeQkgMS7ZGpvf4tSMx6bBOgPfE+f52KwvXfScaU=
3551+k8s.io/apiserver v0.20.4/go.mod h1:Mc80thBKOyy7tbvFtB4kJv1kbdD0eIH8k8vianJcbFM=
3552+k8s.io/apiserver v0.20.6/go.mod h1:QIJXNt6i6JB+0YQRNcS0hdRHJlMhflFmsBDeSgT1r8Q=
3553 k8s.io/client-go v0.20.4 h1:85crgh1IotNkLpKYKZHVNI1JT86nr/iDCvq2iWKsql4=
3554 k8s.io/client-go v0.20.4/go.mod h1:LiMv25ND1gLUdBeYxBIwKpkSC5IsozMMmOOeSJboP+k=
3555+k8s.io/component-base v0.20.1/go.mod h1:guxkoJnNoh8LNrbtiQOlyp2Y2XFCZQmrcg2n/DeYNLk=
3556+k8s.io/component-base v0.20.4/go.mod h1:t4p9EdiagbVCJKrQ1RsA5/V4rFQNDfRlevJajlGwgjI=
3557+k8s.io/component-base v0.20.6/go.mod h1:6f1MPBAeI+mvuts3sIdtpjljHWBQ2cIy38oBIWMYnrM=
3558+k8s.io/cri-api v0.17.3/go.mod h1:X1sbHmuXhwaHs9xxYffLqJogVsnI+f6cPRcgPel7ywM=
3559+k8s.io/cri-api v0.20.1/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI=
3560+k8s.io/cri-api v0.20.4/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI=
3561+k8s.io/cri-api v0.20.6/go.mod h1:ew44AjNXwyn1s0U4xCKGodU7J1HzBeZ1MpGrpa5r8Yc=
3562 k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
3563 k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
3564 k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
3565@@ -2155,15 +2737,20 @@ k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
3566 k8s.io/klog/v2 v2.3.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
3567 k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
3568 k8s.io/klog/v2 v2.5.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec=
3569-k8s.io/klog/v2 v2.8.0 h1:Q3gmuM9hKEjefWFFYF0Mat+YyFJvsUyYuwyNNJ5C9Ts=
3570 k8s.io/klog/v2 v2.8.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec=
3571+k8s.io/klog/v2 v2.9.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec=
3572+k8s.io/klog/v2 v2.10.0 h1:R2HDMDJsHVTHA2n4RjwbeYXdOcBymXdX/JRb1v0VGhE=
3573+k8s.io/klog/v2 v2.10.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec=
3574 k8s.io/kube-openapi v0.0.0-20190709113604-33be087ad058/go.mod h1:nfDlWeOsu3pUf4yWGL+ERqohP4YsZcBJXWMK+gkzOA4=
3575 k8s.io/kube-openapi v0.0.0-20190722073852-5e22f3d471e6/go.mod h1:RZvgC8MSN6DjiMV6oIfEE9pDL9CYXokkfaCKZeHm3nc=
3576 k8s.io/kube-openapi v0.0.0-20191107075043-30be4d16710a/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E=
3577+k8s.io/kube-openapi v0.0.0-20200316234421-82d701f24f9d/go.mod h1:F+5wygcW0wmRTnM3cOgIqGivxkwSWIWT5YdsDbeAOaU=
3578 k8s.io/kube-openapi v0.0.0-20200410145947-61e04a5be9a6/go.mod h1:GRQhZsXIAJ1xR0C9bd8UpWHZ5plfAS9fzPjJuQ6JL3E=
3579 k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o=
3580 k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd/go.mod h1:WOJ3KddDSol4tAGcJo0Tvi+dK12EcqSLqcWsryKMpfM=
3581 k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7/go.mod h1:wXW5VT87nVfh/iLV8FpR2uDvrFyomxbtb1KivDbvPTE=
3582+k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw=
3583+k8s.io/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk=
3584 k8s.io/utils v0.0.0-20190809000727-6c36bc71fc4a/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew=
3585 k8s.io/utils v0.0.0-20191114200735-6ca3b61696b6/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew=
3586 k8s.io/utils v0.0.0-20200414100711-2df71ebbae66/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
3587@@ -2174,14 +2761,19 @@ rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8
3588 rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
3589 rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
3590 rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
3591+sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.14/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg=
3592+sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg=
3593 sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e h1:4Z09Hglb792X0kfOBBJUPFEyvVfQWrYT/l8h5EKA6JQ=
3594 sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI=
3595+sigs.k8s.io/structured-merge-diff/v2 v2.0.1/go.mod h1:Wb7vfKAodbKgf6tn1Kl0VvGj7mRH6DGaRcixXEJXTsE=
3596 sigs.k8s.io/structured-merge-diff/v3 v3.0.0-20200116222232-67a7b8c61874/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw=
3597 sigs.k8s.io/structured-merge-diff/v3 v3.0.0/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw=
3598 sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
3599 sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
3600-sigs.k8s.io/structured-merge-diff/v4 v4.1.0 h1:C4r9BgJ98vrKnnVCjwCSXcWjWe0NKcUQkmzDXZXGwH8=
3601+sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
3602 sigs.k8s.io/structured-merge-diff/v4 v4.1.0/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
3603+sigs.k8s.io/structured-merge-diff/v4 v4.1.2 h1:Hr/htKFmJEbtMgS/UD0N+gtgctAqz81t3nu+sPzynno=
3604+sigs.k8s.io/structured-merge-diff/v4 v4.1.2/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4=
3605 sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
3606 sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q=
3607 sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
3608diff --git a/integration/alertmanager_test.go b/integration/alertmanager_test.go
3609index 28ad75f..79a8652 100644
3610--- a/integration/alertmanager_test.go
3611+++ b/integration/alertmanager_test.go
3612@@ -531,6 +531,12 @@ func TestAlertmanagerSharding(t *testing.T) {
3613 require.NoError(t, err)
3614 err = c3.SendAlertToAlermanager(context.Background(), alert(3, 2))
3615 require.NoError(t, err)
3616+
3617+ // Wait for the alerts to be received by every replica.
3618+ require.NoError(t, alertmanagers.WaitSumMetricsWithOptions(
3619+ e2e.Equals(float64(3*testCfg.replicationFactor)),
3620+ []string{"cortex_alertmanager_alerts_received_total"},
3621+ e2e.SkipMissingMetrics))
3622 }
3623
3624 // Endpoint: GET /v1/alerts
3625diff --git a/integration/backward_compatibility_test.go b/integration/backward_compatibility_test.go
3626index 9cf29ed..9a21292 100644
3627--- a/integration/backward_compatibility_test.go
3628+++ b/integration/backward_compatibility_test.go
3629@@ -20,16 +20,17 @@ var (
3630 // If you change the image tag, remember to update it in the preloading done
3631 // by GitHub Actions too (see .github/workflows/test-build-deploy.yml).
3632 previousVersionImages = map[string]func(map[string]string) map[string]string{
3633- "quay.io/cortexproject/cortex:v1.0.0": preCortex14Flags,
3634- "quay.io/cortexproject/cortex:v1.1.0": preCortex14Flags,
3635- "quay.io/cortexproject/cortex:v1.2.0": preCortex14Flags,
3636- "quay.io/cortexproject/cortex:v1.3.0": preCortex14Flags,
3637- "quay.io/cortexproject/cortex:v1.4.0": preCortex16Flags,
3638- "quay.io/cortexproject/cortex:v1.5.0": preCortex16Flags,
3639- "quay.io/cortexproject/cortex:v1.6.0": preCortex110Flags,
3640- "quay.io/cortexproject/cortex:v1.7.0": preCortex110Flags,
3641- "quay.io/cortexproject/cortex:v1.8.0": preCortex110Flags,
3642- "quay.io/cortexproject/cortex:v1.9.0": preCortex110Flags,
3643+ "quay.io/cortexproject/cortex:v1.0.0": preCortex14Flags,
3644+ "quay.io/cortexproject/cortex:v1.1.0": preCortex14Flags,
3645+ "quay.io/cortexproject/cortex:v1.2.0": preCortex14Flags,
3646+ "quay.io/cortexproject/cortex:v1.3.0": preCortex14Flags,
3647+ "quay.io/cortexproject/cortex:v1.4.0": preCortex16Flags,
3648+ "quay.io/cortexproject/cortex:v1.5.0": preCortex16Flags,
3649+ "quay.io/cortexproject/cortex:v1.6.0": preCortex110Flags,
3650+ "quay.io/cortexproject/cortex:v1.7.0": preCortex110Flags,
3651+ "quay.io/cortexproject/cortex:v1.8.0": preCortex110Flags,
3652+ "quay.io/cortexproject/cortex:v1.9.0": preCortex110Flags,
3653+ "quay.io/cortexproject/cortex:v1.10.0": nil,
3654 }
3655 )
3656
3657diff --git a/integration/e2e/composite_service.go b/integration/e2e/composite_service.go
3658index 4b89d45..db840ac 100644
3659--- a/integration/e2e/composite_service.go
3660+++ b/integration/e2e/composite_service.go
3661@@ -5,9 +5,8 @@ import (
3662 "fmt"
3663 "time"
3664
3665+ "github.com/grafana/dskit/backoff"
3666 "github.com/pkg/errors"
3667-
3668- "github.com/cortexproject/cortex/pkg/util"
3669 )
3670
3671 // CompositeHTTPService abstract an higher-level service composed, under the hood,
3672@@ -16,13 +15,13 @@ type CompositeHTTPService struct {
3673 services []*HTTPService
3674
3675 // Generic retry backoff.
3676- retryBackoff *util.Backoff
3677+ retryBackoff *backoff.Backoff
3678 }
3679
3680 func NewCompositeHTTPService(services ...*HTTPService) *CompositeHTTPService {
3681 return &CompositeHTTPService{
3682 services: services,
3683- retryBackoff: util.NewBackoff(context.Background(), util.BackoffConfig{
3684+ retryBackoff: backoff.New(context.Background(), backoff.Config{
3685 MinBackoff: 300 * time.Millisecond,
3686 MaxBackoff: 600 * time.Millisecond,
3687 MaxRetries: 50, // Sometimes the CI is slow ¯\_(ツ)_/¯
3688diff --git a/integration/e2e/db/db.go b/integration/e2e/db/db.go
3689index fe6de79..ed397bb 100644
3690--- a/integration/e2e/db/db.go
3691+++ b/integration/e2e/db/db.go
3692@@ -14,18 +14,22 @@ const (
3693 )
3694
3695 // NewMinio returns minio server, used as a local replacement for S3.
3696-func NewMinio(port int, bktName string) *e2e.HTTPService {
3697+func NewMinio(port int, bktNames ...string) *e2e.HTTPService {
3698 minioKESGithubContent := "https://raw.githubusercontent.com/minio/kes/master"
3699 commands := []string{
3700- "curl -sSL --tlsv1.2 -O '%s/root.key' -O '%s/root.cert'",
3701- "mkdir -p /data/%s && minio server --address :%v --quiet /data",
3702+ fmt.Sprintf("curl -sSL --tlsv1.2 -O '%s/root.key' -O '%s/root.cert'", minioKESGithubContent, minioKESGithubContent),
3703 }
3704
3705+ for _, bkt := range bktNames {
3706+ commands = append(commands, fmt.Sprintf("mkdir -p /data/%s", bkt))
3707+ }
3708+ commands = append(commands, fmt.Sprintf("minio server --address :%v --quiet /data", port))
3709+
3710 m := e2e.NewHTTPService(
3711 fmt.Sprintf("minio-%v", port),
3712 images.Minio,
3713 // Create the "cortex" bucket before starting minio
3714- e2e.NewCommandWithoutEntrypoint("sh", "-c", fmt.Sprintf(strings.Join(commands, " && "), minioKESGithubContent, minioKESGithubContent, bktName, port)),
3715+ e2e.NewCommandWithoutEntrypoint("sh", "-c", strings.Join(commands, " && ")),
3716 e2e.NewHTTPReadinessProbe(port, "/minio/health/ready", 200, 200),
3717 port,
3718 )
3719diff --git a/integration/e2e/logger.go b/integration/e2e/logger.go
3720index d4b309a..5152ed5 100644
3721--- a/integration/e2e/logger.go
3722+++ b/integration/e2e/logger.go
3723@@ -7,7 +7,7 @@ import (
3724 "strings"
3725 "time"
3726
3727- "github.com/go-kit/kit/log"
3728+ "github.com/go-kit/log"
3729 )
3730
3731 // Global logger to use in integration tests. We use a global logger to simplify
3732diff --git a/integration/e2e/scenario_test.go b/integration/e2e/scenario_test.go
3733index 2a31e19..a31ed9d 100644
3734--- a/integration/e2e/scenario_test.go
3735+++ b/integration/e2e/scenario_test.go
3736@@ -9,7 +9,7 @@ import (
3737 "testing"
3738 "time"
3739
3740- "github.com/go-kit/kit/log"
3741+ "github.com/go-kit/log"
3742 "github.com/stretchr/testify/assert"
3743 "github.com/stretchr/testify/require"
3744 "github.com/thanos-io/thanos/pkg/objstore/s3"
3745diff --git a/integration/e2e/service.go b/integration/e2e/service.go
3746index cf1f4d2..cb15a1b 100644
3747--- a/integration/e2e/service.go
3748+++ b/integration/e2e/service.go
3749@@ -12,12 +12,11 @@ import (
3750 "strings"
3751 "time"
3752
3753- "github.com/go-kit/kit/log"
3754+ "github.com/go-kit/log"
3755+ "github.com/grafana/dskit/backoff"
3756 "github.com/pkg/errors"
3757 "github.com/prometheus/common/expfmt"
3758 "github.com/thanos-io/thanos/pkg/runutil"
3759-
3760- "github.com/cortexproject/cortex/pkg/util"
3761 )
3762
3763 var (
3764@@ -43,7 +42,7 @@ type ConcreteService struct {
3765 networkPortsContainerToLocal map[int]int
3766
3767 // Generic retry backoff.
3768- retryBackoff *util.Backoff
3769+ retryBackoff *backoff.Backoff
3770
3771 // docker NetworkName used to start this container.
3772 // If empty it means service is stopped.
3773@@ -64,7 +63,7 @@ func NewConcreteService(
3774 command: command,
3775 networkPortsContainerToLocal: map[int]int{},
3776 readiness: readiness,
3777- retryBackoff: util.NewBackoff(context.Background(), util.BackoffConfig{
3778+ retryBackoff: backoff.New(context.Background(), backoff.Config{
3779 MinBackoff: 300 * time.Millisecond,
3780 MaxBackoff: 600 * time.Millisecond,
3781 MaxRetries: 50, // Sometimes the CI is slow ¯\_(ツ)_/¯
3782@@ -80,8 +79,8 @@ func (s *ConcreteService) Name() string { return s.name }
3783
3784 // Less often used options.
3785
3786-func (s *ConcreteService) SetBackoff(cfg util.BackoffConfig) {
3787- s.retryBackoff = util.NewBackoff(context.Background(), cfg)
3788+func (s *ConcreteService) SetBackoff(cfg backoff.Config) {
3789+ s.retryBackoff = backoff.New(context.Background(), cfg)
3790 }
3791
3792 func (s *ConcreteService) SetEnvVars(env map[string]string) {
3793diff --git a/integration/e2e/service_test.go b/integration/e2e/service_test.go
3794index 2589cb1..ebd3641 100644
3795--- a/integration/e2e/service_test.go
3796+++ b/integration/e2e/service_test.go
3797@@ -10,10 +10,9 @@ import (
3798 "testing"
3799 "time"
3800
3801+ "github.com/grafana/dskit/backoff"
3802 "github.com/stretchr/testify/assert"
3803 "github.com/stretchr/testify/require"
3804-
3805- "github.com/cortexproject/cortex/pkg/util"
3806 )
3807
3808 func TestWaitSumMetric(t *testing.T) {
3809@@ -80,7 +79,7 @@ metric_b_summary_count 1
3810 },
3811 }
3812
3813- s.SetBackoff(util.BackoffConfig{
3814+ s.SetBackoff(backoff.Config{
3815 MinBackoff: 300 * time.Millisecond,
3816 MaxBackoff: 600 * time.Millisecond,
3817 MaxRetries: 50,
3818@@ -88,7 +87,7 @@ metric_b_summary_count 1
3819 require.NoError(t, s.WaitSumMetrics(Equals(221), "metric_a"))
3820
3821 // No retry.
3822- s.SetBackoff(util.BackoffConfig{
3823+ s.SetBackoff(backoff.Config{
3824 MinBackoff: 0,
3825 MaxBackoff: 0,
3826 MaxRetries: 1,
3827@@ -164,7 +163,7 @@ metric_b 1000
3828 },
3829 }
3830
3831- s.SetBackoff(util.BackoffConfig{
3832+ s.SetBackoff(backoff.Config{
3833 MinBackoff: 300 * time.Millisecond,
3834 MaxBackoff: 600 * time.Millisecond,
3835 MaxRetries: 50,
3836diff --git a/integration/e2ecortex/client.go b/integration/e2ecortex/client.go
3837index 4b47849..72fed34 100644
3838--- a/integration/e2ecortex/client.go
3839+++ b/integration/e2ecortex/client.go
3840@@ -318,6 +318,11 @@ func (c *Client) SetRuleGroup(rulegroup rulefmt.RuleGroup, namespace string) err
3841 }
3842
3843 defer res.Body.Close()
3844+
3845+ if res.StatusCode != 202 {
3846+ return fmt.Errorf("unexpected status code: %d", res.StatusCode)
3847+ }
3848+
3849 return nil
3850 }
3851
3852diff --git a/integration/e2ecortex/storage.go b/integration/e2ecortex/storage.go
3853index 2201a9d..f35a084 100644
3854--- a/integration/e2ecortex/storage.go
3855+++ b/integration/e2ecortex/storage.go
3856@@ -5,14 +5,14 @@ import (
3857 "fmt"
3858 "strings"
3859
3860- "github.com/go-kit/kit/log"
3861+ "github.com/go-kit/log"
3862+ "github.com/grafana/dskit/flagext"
3863 "github.com/oklog/ulid"
3864 "github.com/thanos-io/thanos/pkg/objstore"
3865
3866 "github.com/cortexproject/cortex/integration/e2e"
3867 e2edb "github.com/cortexproject/cortex/integration/e2e/db"
3868 "github.com/cortexproject/cortex/pkg/storage/bucket/s3"
3869- "github.com/cortexproject/cortex/pkg/util/flagext"
3870 )
3871
3872 type S3Client struct {
3873diff --git a/integration/getting_started_with_gossiped_ring_test.go b/integration/getting_started_with_gossiped_ring_test.go
3874index 24be49c..90e1792 100644
3875--- a/integration/getting_started_with_gossiped_ring_test.go
3876+++ b/integration/getting_started_with_gossiped_ring_test.go
3877@@ -125,4 +125,10 @@ func TestGettingStartedWithGossipedRing(t *testing.T) {
3878 // single ingester and so we have 1 block shipped from ingesters and loaded by both store-gateways.
3879 require.NoError(t, cortex1.WaitSumMetrics(e2e.Equals(1), "cortex_bucket_store_blocks_loaded"))
3880 require.NoError(t, cortex2.WaitSumMetrics(e2e.Equals(1), "cortex_bucket_store_blocks_loaded"))
3881+
3882+ // Make sure that no DNS failures occurred.
3883+ // No actual DNS lookups are necessarily performed, so we can't really assert on that.
3884+ mlMatcher := labels.MustNewMatcher(labels.MatchEqual, "name", "memberlist")
3885+ require.NoError(t, cortex1.WaitSumMetricsWithOptions(e2e.Equals(0), []string{"cortex_dns_failures_total"}, e2e.WithLabelMatchers(mlMatcher)))
3886+ require.NoError(t, cortex2.WaitSumMetricsWithOptions(e2e.Equals(0), []string{"cortex_dns_failures_total"}, e2e.WithLabelMatchers(mlMatcher)))
3887 }
3888diff --git a/integration/integration_memberlist_single_binary_test.go b/integration/integration_memberlist_single_binary_test.go
3889index 53c1a94..c641fa3 100644
3890--- a/integration/integration_memberlist_single_binary_test.go
3891+++ b/integration/integration_memberlist_single_binary_test.go
3892@@ -11,6 +11,7 @@ import (
3893 "testing"
3894 "time"
3895
3896+ "github.com/grafana/dskit/backoff"
3897 "github.com/stretchr/testify/require"
3898 "golang.org/x/sync/errgroup"
3899
3900@@ -18,20 +19,25 @@ import (
3901 "github.com/cortexproject/cortex/integration/e2e"
3902 e2edb "github.com/cortexproject/cortex/integration/e2e/db"
3903 "github.com/cortexproject/cortex/integration/e2ecortex"
3904- "github.com/cortexproject/cortex/pkg/util"
3905 )
3906
3907 func TestSingleBinaryWithMemberlist(t *testing.T) {
3908 t.Run("default", func(t *testing.T) {
3909- testSingleBinaryEnv(t, false)
3910+ testSingleBinaryEnv(t, false, nil)
3911 })
3912
3913 t.Run("tls", func(t *testing.T) {
3914- testSingleBinaryEnv(t, true)
3915+ testSingleBinaryEnv(t, true, nil)
3916+ })
3917+
3918+ t.Run("compression-disabled", func(t *testing.T) {
3919+ testSingleBinaryEnv(t, false, map[string]string{
3920+ "-memberlist.compression-enabled": "false",
3921+ })
3922 })
3923 }
3924
3925-func testSingleBinaryEnv(t *testing.T, tlsEnabled bool) {
3926+func testSingleBinaryEnv(t *testing.T, tlsEnabled bool, flags map[string]string) {
3927 s, err := e2e.NewScenario(networkName)
3928 require.NoError(t, err)
3929 defer s.Close()
3930@@ -65,13 +71,13 @@ func testSingleBinaryEnv(t *testing.T, tlsEnabled bool) {
3931 filepath.Join(s.SharedDir(), clientKeyFile),
3932 ))
3933
3934- cortex1 = newSingleBinary("cortex-1", memberlistDNS, "")
3935- cortex2 = newSingleBinary("cortex-2", memberlistDNS, networkName+"-cortex-1:8000")
3936- cortex3 = newSingleBinary("cortex-3", memberlistDNS, networkName+"-cortex-1:8000")
3937+ cortex1 = newSingleBinary("cortex-1", memberlistDNS, "", flags)
3938+ cortex2 = newSingleBinary("cortex-2", memberlistDNS, networkName+"-cortex-1:8000", flags)
3939+ cortex3 = newSingleBinary("cortex-3", memberlistDNS, networkName+"-cortex-1:8000", flags)
3940 } else {
3941- cortex1 = newSingleBinary("cortex-1", "", "")
3942- cortex2 = newSingleBinary("cortex-2", "", networkName+"-cortex-1:8000")
3943- cortex3 = newSingleBinary("cortex-3", "", networkName+"-cortex-1:8000")
3944+ cortex1 = newSingleBinary("cortex-1", "", "", flags)
3945+ cortex2 = newSingleBinary("cortex-2", "", networkName+"-cortex-1:8000", flags)
3946+ cortex3 = newSingleBinary("cortex-3", "", networkName+"-cortex-1:8000", flags)
3947 }
3948
3949 // start cortex-1 first, as cortex-2 and cortex-3 both connect to cortex-1
3950@@ -109,7 +115,7 @@ func testSingleBinaryEnv(t *testing.T, tlsEnabled bool) {
3951 require.NoError(t, s.Stop(cortex3))
3952 }
3953
3954-func newSingleBinary(name string, servername string, join string) *e2ecortex.CortexService {
3955+func newSingleBinary(name string, servername string, join string, testFlags map[string]string) *e2ecortex.CortexService {
3956 flags := map[string]string{
3957 "-ingester.final-sleep": "0s",
3958 "-ingester.join-after": "0s", // join quickly
3959@@ -132,13 +138,14 @@ func newSingleBinary(name string, servername string, join string) *e2ecortex.Cor
3960 mergeFlags(
3961 ChunksStorageFlags(),
3962 flags,
3963+ testFlags,
3964 getTLSFlagsWithPrefix("memberlist", servername, servername == ""),
3965 ),
3966 "",
3967 8000,
3968 )
3969
3970- backOff := util.BackoffConfig{
3971+ backOff := backoff.Config{
3972 MinBackoff: 200 * time.Millisecond,
3973 MaxBackoff: 500 * time.Millisecond, // Bump max backoff... things take little longer with memberlist.
3974 MaxRetries: 100,
3975@@ -170,7 +177,7 @@ func TestSingleBinaryWithMemberlistScaling(t *testing.T) {
3976 if i > 0 {
3977 join = e2e.NetworkContainerHostPort(networkName, "cortex-1", 8000)
3978 }
3979- c := newSingleBinary(name, "", join)
3980+ c := newSingleBinary(name, "", join, nil)
3981 require.NoError(t, s.StartAndWaitReady(c))
3982 instances = append(instances, c)
3983 }
3984@@ -190,6 +197,13 @@ func TestSingleBinaryWithMemberlistScaling(t *testing.T) {
3985 c := instances[i]
3986 instances = instances[:i]
3987 stop.Go(func() error { return s.Stop(c) })
3988+
3989+ // TODO(#4360): Remove this when issue is resolved.
3990+ // Wait until memberlist for all nodes has recognised the instance left.
3991+ // This means that we will not gossip tombstones to leaving nodes.
3992+ for _, c := range instances {
3993+ require.NoError(t, c.WaitSumMetrics(e2e.Equals(float64(len(instances))), "memberlist_client_cluster_members_count"))
3994+ }
3995 }
3996 require.NoError(t, stop.Wait())
3997
3998diff --git a/integration/kv_test.go b/integration/kv_test.go
3999index c72548c..e1d4e5c 100644
4000--- a/integration/kv_test.go
4001+++ b/integration/kv_test.go
4002@@ -1,3 +1,4 @@
4003+//go:build requires_docker
4004 // +build requires_docker
4005
4006 package integration
4007@@ -10,6 +11,10 @@ import (
4008 "testing"
4009 "time"
4010
4011+ "github.com/go-kit/log"
4012+ "github.com/grafana/dskit/kv"
4013+ "github.com/grafana/dskit/kv/consul"
4014+ "github.com/grafana/dskit/kv/etcd"
4015 "github.com/prometheus/client_golang/prometheus"
4016 dto "github.com/prometheus/client_model/go"
4017 "github.com/stretchr/testify/assert"
4018@@ -17,9 +22,6 @@ import (
4019
4020 "github.com/cortexproject/cortex/integration/e2e"
4021 e2edb "github.com/cortexproject/cortex/integration/e2e/db"
4022- "github.com/cortexproject/cortex/pkg/ring/kv"
4023- "github.com/cortexproject/cortex/pkg/ring/kv/consul"
4024- "github.com/cortexproject/cortex/pkg/ring/kv/etcd"
4025 )
4026
4027 func TestKVList(t *testing.T) {
4028@@ -39,7 +41,7 @@ func TestKVList(t *testing.T) {
4029 sort.Strings(keys)
4030 require.Equal(t, keysToCreate, keys, "returned key paths did not match created paths")
4031
4032- verifyClientMetrics(t, reg, map[string]uint64{
4033+ verifyClientMetricsHistogram(t, reg, "cortex_kv_request_duration_seconds", map[string]uint64{
4034 "List": 1,
4035 "CAS": 3,
4036 })
4037@@ -63,7 +65,7 @@ func TestKVDelete(t *testing.T) {
4038 require.NoError(t, err, "unexpected error")
4039 require.Nil(t, v, "object was not deleted")
4040
4041- verifyClientMetrics(t, reg, map[string]uint64{
4042+ verifyClientMetricsHistogram(t, reg, "cortex_kv_request_duration_seconds", map[string]uint64{
4043 "Delete": 1,
4044 "CAS": 1,
4045 "GET": 1,
4046@@ -117,7 +119,9 @@ func TestKVWatchAndDelete(t *testing.T) {
4047 })
4048 }
4049
4050-func setupEtcd(t *testing.T, scenario *e2e.Scenario, reg prometheus.Registerer) kv.Client {
4051+func setupEtcd(t *testing.T, scenario *e2e.Scenario, reg prometheus.Registerer, logger log.Logger) kv.Client {
4052+ t.Helper()
4053+
4054 etcdSvc := e2edb.NewETCD()
4055 require.NoError(t, scenario.StartAndWaitReady(etcdSvc))
4056
4057@@ -131,13 +135,15 @@ func setupEtcd(t *testing.T, scenario *e2e.Scenario, reg prometheus.Registerer)
4058 MaxRetries: 5,
4059 },
4060 },
4061- }, stringCodec{}, reg)
4062+ }, stringCodec{}, reg, logger)
4063 require.NoError(t, err)
4064
4065 return etcdKv
4066 }
4067
4068-func setupConsul(t *testing.T, scenario *e2e.Scenario, reg prometheus.Registerer) kv.Client {
4069+func setupConsul(t *testing.T, scenario *e2e.Scenario, reg prometheus.Registerer, logger log.Logger) kv.Client {
4070+ t.Helper()
4071+
4072 consulSvc := e2edb.NewConsul()
4073 require.NoError(t, scenario.StartAndWaitReady(consulSvc))
4074
4075@@ -152,14 +158,14 @@ func setupConsul(t *testing.T, scenario *e2e.Scenario, reg prometheus.Registerer
4076 WatchKeyRateLimit: 1,
4077 },
4078 },
4079- }, stringCodec{}, reg)
4080+ }, stringCodec{}, reg, logger)
4081 require.NoError(t, err)
4082
4083 return consulKv
4084 }
4085
4086 func testKVs(t *testing.T, testFn func(t *testing.T, client kv.Client, reg *prometheus.Registry)) {
4087- setupFns := map[string]func(t *testing.T, scenario *e2e.Scenario, reg prometheus.Registerer) kv.Client{
4088+ setupFns := map[string]func(t *testing.T, scenario *e2e.Scenario, reg prometheus.Registerer, logger log.Logger) kv.Client{
4089 "etcd": setupEtcd,
4090 "consul": setupConsul,
4091 }
4092@@ -171,23 +177,30 @@ func testKVs(t *testing.T, testFn func(t *testing.T, client kv.Client, reg *prom
4093 }
4094 }
4095
4096-func testKVScenario(t *testing.T, kvSetupFn func(t *testing.T, scenario *e2e.Scenario, reg prometheus.Registerer) kv.Client, testFn func(t *testing.T, client kv.Client, reg *prometheus.Registry)) {
4097+func testKVScenario(t *testing.T, kvSetupFn func(t *testing.T, scenario *e2e.Scenario, reg prometheus.Registerer, logger log.Logger) kv.Client, testFn func(t *testing.T, client kv.Client, reg *prometheus.Registry)) {
4098 s, err := e2e.NewScenario(networkName)
4099 require.NoError(t, err)
4100 defer s.Close()
4101
4102 reg := prometheus.NewRegistry()
4103- client := kvSetupFn(t, s, reg)
4104+ client := kvSetupFn(t, s, prometheus.WrapRegistererWithPrefix("cortex_", reg), log.NewNopLogger())
4105 testFn(t, client, reg)
4106 }
4107
4108-func verifyClientMetrics(t *testing.T, reg *prometheus.Registry, sampleCounts map[string]uint64) {
4109+func verifyClientMetricsHistogram(t *testing.T, reg *prometheus.Registry, metricNameToVerify string, sampleCounts map[string]uint64) {
4110 metrics, err := reg.Gather()
4111 require.NoError(t, err)
4112
4113- require.Len(t, metrics, 1)
4114- require.Equal(t, "cortex_kv_request_duration_seconds", metrics[0].GetName())
4115- require.Equal(t, dto.MetricType_HISTOGRAM, metrics[0].GetType())
4116+ var metricToVerify *dto.MetricFamily
4117+ for _, metric := range metrics {
4118+ if metric.GetName() != metricNameToVerify {
4119+ continue
4120+ }
4121+ metricToVerify = metric
4122+ break
4123+ }
4124+ require.NotNilf(t, metricToVerify, "Metric %s not found in registry", metricNameToVerify)
4125+ require.Equal(t, dto.MetricType_HISTOGRAM, metricToVerify.GetType())
4126
4127 getMetricOperation := func(labels []*dto.LabelPair) (string, error) {
4128 for _, l := range labels {
4129@@ -198,9 +211,8 @@ func verifyClientMetrics(t *testing.T, reg *prometheus.Registry, sampleCounts ma
4130 return "", errors.New("no operation")
4131 }
4132
4133- for _, metric := range metrics[0].GetMetric() {
4134+ for _, metric := range metricToVerify.GetMetric() {
4135 op, err := getMetricOperation(metric.Label)
4136-
4137 require.NoErrorf(t, err, "No operation label found in metric %v", metric.String())
4138 assert.Equal(t, sampleCounts[op], metric.GetHistogram().GetSampleCount(), op)
4139 }
4140diff --git a/integration/ruler_test.go b/integration/ruler_test.go
4141index 885f84a..08dec2e 100644
4142--- a/integration/ruler_test.go
4143+++ b/integration/ruler_test.go
4144@@ -523,6 +523,166 @@ func TestRulerAlertmanagerTLS(t *testing.T) {
4145 require.NoError(t, ruler.WaitSumMetricsWithOptions(e2e.Equals(1), []string{"cortex_prometheus_notifications_alertmanagers_discovered"}, e2e.WaitMissingMetrics))
4146 }
4147
4148+func TestRulerMetricsForInvalidQueries(t *testing.T) {
4149+ s, err := e2e.NewScenario(networkName)
4150+ require.NoError(t, err)
4151+ defer s.Close()
4152+
4153+ // Start dependencies.
4154+ consul := e2edb.NewConsul()
4155+ minio := e2edb.NewMinio(9000, bucketName, rulestoreBucketName)
4156+ require.NoError(t, s.StartAndWaitReady(consul, minio))
4157+
4158+ // Configure the ruler.
4159+ flags := mergeFlags(
4160+ BlocksStorageFlags(),
4161+ RulerFlags(false),
4162+ map[string]string{
4163+ // Since we're not going to run any rule (our only rule is invalid), we don't need the
4164+ // store-gateway to be configured to a valid address.
4165+ "-querier.store-gateway-addresses": "localhost:12345",
4166+ // Enable the bucket index so we can skip the initial bucket scan.
4167+ "-blocks-storage.bucket-store.bucket-index.enabled": "true",
4168+ // Evaluate rules often, so that we don't need to wait for metrics to show up.
4169+ "-ruler.evaluation-interval": "2s",
4170+ "-ruler.poll-interval": "2s",
4171+ // No delay
4172+ "-ruler.evaluation-delay-duration": "0",
4173+
4174+ "-blocks-storage.tsdb.block-ranges-period": "1h",
4175+ "-blocks-storage.bucket-store.sync-interval": "1s",
4176+ "-blocks-storage.tsdb.retention-period": "2h",
4177+
4178+ // We run single ingester only, no replication.
4179+ "-distributor.replication-factor": "1",
4180+
4181+ // Very low limit so that ruler hits it.
4182+ "-querier.max-fetched-chunks-per-query": "5",
4183+ // We need this to make limit work.
4184+ "-ingester.stream-chunks-when-using-blocks": "true",
4185+ },
4186+ )
4187+
4188+ const namespace = "test"
4189+ const user = "user"
4190+
4191+ distributor := e2ecortex.NewDistributor("distributor", consul.NetworkHTTPEndpoint(), flags, "")
4192+ ruler := e2ecortex.NewRuler("ruler", consul.NetworkHTTPEndpoint(), flags, "")
4193+ ingester := e2ecortex.NewIngester("ingester", consul.NetworkHTTPEndpoint(), flags, "")
4194+ require.NoError(t, s.StartAndWaitReady(distributor, ingester, ruler))
4195+
4196+ // Wait until both the distributor and ruler have updated the ring. The querier will also watch
4197+ // the store-gateway ring if blocks sharding is enabled.
4198+ require.NoError(t, distributor.WaitSumMetrics(e2e.Equals(512), "cortex_ring_tokens_total"))
4199+ require.NoError(t, ruler.WaitSumMetrics(e2e.Equals(512), "cortex_ring_tokens_total"))
4200+
4201+ c, err := e2ecortex.NewClient(distributor.HTTPEndpoint(), "", "", ruler.HTTPEndpoint(), user)
4202+ require.NoError(t, err)
4203+
4204+ // Push some series to Cortex -- enough so that we can hit some limits.
4205+ for i := 0; i < 10; i++ {
4206+ series, _ := generateSeries("metric", time.Now(), prompb.Label{Name: "foo", Value: fmt.Sprintf("%d", i)})
4207+
4208+ res, err := c.Push(series)
4209+ require.NoError(t, err)
4210+ require.Equal(t, 200, res.StatusCode)
4211+ }
4212+
4213+ totalQueries, err := ruler.SumMetrics([]string{"cortex_ruler_queries_total"})
4214+ require.NoError(t, err)
4215+
4216+ // Verify that user-failures don't increase cortex_ruler_queries_failed_total
4217+ for groupName, expression := range map[string]string{
4218+ // Syntactically correct expression (passes check in ruler), but failing because of invalid regex. This fails in PromQL engine.
4219+ "invalid_group": `label_replace(metric, "foo", "$1", "service", "[")`,
4220+
4221+ // This one fails in querier code, because of limits.
4222+ "too_many_chunks_group": `sum(metric)`,
4223+ } {
4224+ t.Run(groupName, func(t *testing.T) {
4225+ require.NoError(t, c.SetRuleGroup(ruleGroupWithRule(groupName, "rule", expression), namespace))
4226+ m := ruleGroupMatcher(user, namespace, groupName)
4227+
4228+ // Wait until ruler has loaded the group.
4229+ require.NoError(t, ruler.WaitSumMetricsWithOptions(e2e.Equals(1), []string{"cortex_prometheus_rule_group_rules"}, e2e.WithLabelMatchers(m), e2e.WaitMissingMetrics))
4230+
4231+ // Wait until rule group has tried to evaluate the rule.
4232+ require.NoError(t, ruler.WaitSumMetricsWithOptions(e2e.GreaterOrEqual(1), []string{"cortex_prometheus_rule_evaluations_total"}, e2e.WithLabelMatchers(m), e2e.WaitMissingMetrics))
4233+
4234+ // Verify that evaluation of the rule failed.
4235+ require.NoError(t, ruler.WaitSumMetricsWithOptions(e2e.GreaterOrEqual(1), []string{"cortex_prometheus_rule_evaluation_failures_total"}, e2e.WithLabelMatchers(m), e2e.WaitMissingMetrics))
4236+
4237+ // But these failures were not reported as "failed queries"
4238+ sum, err := ruler.SumMetrics([]string{"cortex_ruler_queries_failed_total"})
4239+ require.NoError(t, err)
4240+ require.Equal(t, float64(0), sum[0])
4241+
4242+ // Delete rule before checkin "cortex_ruler_queries_total", as we want to reuse value for next test.
4243+ require.NoError(t, c.DeleteRuleGroup(namespace, groupName))
4244+
4245+ // Wait until ruler has unloaded the group. We don't use any matcher, so there should be no groups (in fact, metric disappears).
4246+ require.NoError(t, ruler.WaitSumMetricsWithOptions(e2e.Equals(0), []string{"cortex_prometheus_rule_group_rules"}, e2e.SkipMissingMetrics))
4247+
4248+ // Check that cortex_ruler_queries_total went up since last test.
4249+ newTotalQueries, err := ruler.SumMetrics([]string{"cortex_ruler_queries_total"})
4250+ require.NoError(t, err)
4251+ require.Greater(t, newTotalQueries[0], totalQueries[0])
4252+
4253+ // Remember totalQueries for next test.
4254+ totalQueries = newTotalQueries
4255+ })
4256+ }
4257+
4258+ // Now let's upload a non-failing rule, and make sure that it works.
4259+ t.Run("real_error", func(t *testing.T) {
4260+ const groupName = "good_rule"
4261+ const expression = `sum(metric{foo=~"1|2"})`
4262+
4263+ require.NoError(t, c.SetRuleGroup(ruleGroupWithRule(groupName, "rule", expression), namespace))
4264+ m := ruleGroupMatcher(user, namespace, groupName)
4265+
4266+ // Wait until ruler has loaded the group.
4267+ require.NoError(t, ruler.WaitSumMetricsWithOptions(e2e.Equals(1), []string{"cortex_prometheus_rule_group_rules"}, e2e.WithLabelMatchers(m), e2e.WaitMissingMetrics))
4268+
4269+ // Wait until rule group has tried to evaluate the rule, and succeeded.
4270+ require.NoError(t, ruler.WaitSumMetricsWithOptions(e2e.GreaterOrEqual(1), []string{"cortex_prometheus_rule_evaluations_total"}, e2e.WithLabelMatchers(m), e2e.WaitMissingMetrics))
4271+ require.NoError(t, ruler.WaitSumMetricsWithOptions(e2e.Equals(0), []string{"cortex_prometheus_rule_evaluation_failures_total"}, e2e.WithLabelMatchers(m), e2e.WaitMissingMetrics))
4272+
4273+ // Still no failures.
4274+ sum, err := ruler.SumMetrics([]string{"cortex_ruler_queries_failed_total"})
4275+ require.NoError(t, err)
4276+ require.Equal(t, float64(0), sum[0])
4277+
4278+ // Now let's stop ingester, and recheck metrics. This should increase cortex_ruler_queries_failed_total failures.
4279+ require.NoError(t, s.Stop(ingester))
4280+
4281+ // We should start getting "real" failures now.
4282+ require.NoError(t, ruler.WaitSumMetricsWithOptions(e2e.GreaterOrEqual(1), []string{"cortex_ruler_queries_failed_total"}))
4283+ })
4284+}
4285+
4286+func ruleGroupMatcher(user, namespace, groupName string) *labels.Matcher {
4287+ return labels.MustNewMatcher(labels.MatchEqual, "rule_group", fmt.Sprintf("/rules/%s/%s;%s", user, namespace, groupName))
4288+}
4289+
4290+func ruleGroupWithRule(groupName string, ruleName string, expression string) rulefmt.RuleGroup {
4291+ // Prepare rule group with invalid rule.
4292+ var recordNode = yaml.Node{}
4293+ var exprNode = yaml.Node{}
4294+
4295+ recordNode.SetString(ruleName)
4296+ exprNode.SetString(expression)
4297+
4298+ return rulefmt.RuleGroup{
4299+ Name: groupName,
4300+ Interval: 10,
4301+ Rules: []rulefmt.RuleNode{{
4302+ Record: recordNode,
4303+ Expr: exprNode,
4304+ }},
4305+ }
4306+}
4307+
4308 func createTestRuleGroup(t *testing.T) rulefmt.RuleGroup {
4309 t.Helper()
4310
4311diff --git a/integration/s3_storage_client_test.go b/integration/s3_storage_client_test.go
4312index 7d27e69..c813037 100644
4313--- a/integration/s3_storage_client_test.go
4314+++ b/integration/s3_storage_client_test.go
4315@@ -9,13 +9,13 @@ import (
4316 "net/url"
4317 "testing"
4318
4319+ "github.com/grafana/dskit/flagext"
4320 "github.com/stretchr/testify/require"
4321
4322 "github.com/cortexproject/cortex/integration/e2e"
4323 e2edb "github.com/cortexproject/cortex/integration/e2e/db"
4324 s3 "github.com/cortexproject/cortex/pkg/chunk/aws"
4325 cortex_s3 "github.com/cortexproject/cortex/pkg/storage/bucket/s3"
4326- "github.com/cortexproject/cortex/pkg/util/flagext"
4327 )
4328
4329 func TestS3Client(t *testing.T) {
4330@@ -94,6 +94,11 @@ func TestS3Client(t *testing.T) {
4331
4332 for _, tt := range tests {
4333 t.Run(tt.name, func(t *testing.T) {
4334+ switch tt.name {
4335+ case "config-with-deprecated-sse", "config-with-sse-s3":
4336+ t.Skip("TODO: Issue #4543")
4337+ }
4338+
4339 client, err := s3.NewS3ObjectClient(tt.cfg)
4340
4341 require.NoError(t, err)
4342diff --git a/oci/Dockerfile.ubuntu b/oci/Dockerfile.ubuntu
4343index 35fe633..9fa6f16 100644
4344--- a/oci/Dockerfile.ubuntu
4345+++ b/oci/Dockerfile.ubuntu
4346@@ -1,4 +1,4 @@
4347-FROM ubuntu:impish AS builder
4348+FROM ubuntu:jammy AS builder
4349
4350 WORKDIR /src/cortex
4351
4352@@ -34,7 +34,7 @@ RUN set -eux; \
4353 cat /src/cortex/manifest-upstream.txt;
4354
4355 # Prepare the final container
4356-FROM ubuntu:impish
4357+FROM ubuntu:jammy
4358
4359 ENV TZ UTC
4360
4361@@ -43,9 +43,11 @@ COPY --from=builder /src/cortex/cmd/query-tee/query-tee /usr/local/bin/query-tee
4362 COPY --from=builder /src/cortex/cmd/blocksconvert/blocksconvert /usr/local/bin/blocksconvert
4363 COPY --from=builder /src/cortex/LICENSE /LICENSE.cortex
4364 COPY --from=builder /src/cortex/docs/configuration/*.yaml /etc/cortex/
4365+# Our own version of /etc/cortex/single-process-config-blocks.yaml
4366+# We do not want to use an aws backend in our examples
4367+COPY --from=builder /src/cortex/oci/cortex.yaml /etc/cortex/cortex.yaml
4368
4369 RUN set -eux; \
4370- ln -sv /etc/cortex/single-process-config-blocks.yaml /etc/cortex/cortex.yaml; \
4371 apt-get update; \
4372 DEBIAN_FRONTEND=noninteractive apt full-upgrade -y; \
4373 DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
4374diff --git a/oci/cortex.yaml b/oci/cortex.yaml
4375new file mode 100644
4376index 0000000..93ca539
4377--- /dev/null
4378+++ b/oci/cortex.yaml
4379@@ -0,0 +1,95 @@
4380+
4381+# Configuration for running Cortex in single-process mode.
4382+# This should not be used in production. It is only for getting started
4383+# and development.
4384+
4385+# Disable the requirement that every request to Cortex has a
4386+# X-Scope-OrgID header. `fake` will be substituted in instead.
4387+auth_enabled: false
4388+
4389+server:
4390+ http_listen_port: 9009
4391+
4392+ # Configure the server to allow messages up to 100MB.
4393+ grpc_server_max_recv_msg_size: 104857600
4394+ grpc_server_max_send_msg_size: 104857600
4395+ grpc_server_max_concurrent_streams: 1000
4396+
4397+distributor:
4398+ shard_by_all_labels: true
4399+ pool:
4400+ health_check_ingesters: true
4401+
4402+ingester_client:
4403+ grpc_client_config:
4404+ # Configure the client to allow messages up to 100MB.
4405+ max_recv_msg_size: 104857600
4406+ max_send_msg_size: 104857600
4407+ grpc_compression: gzip
4408+
4409+ingester:
4410+ lifecycler:
4411+ # The address to advertise for this ingester. Will be autodiscovered by
4412+ # looking up address on eth0 or en0; can be specified if this fails.
4413+ # address: 127.0.0.1
4414+
4415+ # We want to start immediately and flush on shutdown.
4416+ join_after: 0
4417+ min_ready_duration: 0s
4418+ final_sleep: 0s
4419+ num_tokens: 512
4420+
4421+ # Use an in memory ring store, so we don't need to launch a Consul.
4422+ ring:
4423+ kvstore:
4424+ store: inmemory
4425+ replication_factor: 1
4426+
4427+storage:
4428+ engine: blocks
4429+
4430+blocks_storage:
4431+ tsdb:
4432+ dir: /tmp/cortex/tsdb
4433+
4434+ bucket_store:
4435+ sync_dir: /tmp/cortex/tsdb-sync
4436+
4437+ # You can choose between local storage and Amazon S3, Google GCS and Azure storage. Each option requires additional configuration
4438+ # as shown below. All options can be configured via flags as well which might be handy for secret inputs.
4439+ backend: filesystem # s3, gcs, azure or filesystem are valid options
4440+# s3:
4441+# bucket_name: cortex
4442+# endpoint: s3.dualstack.us-east-1.amazonaws.com
4443+# Configure your S3 credentials below.
4444+# secret_access_key: "TODO"
4445+# access_key_id: "TODO"
4446+# gcs:
4447+# bucket_name: cortex
4448+# service_account: # if empty or omitted Cortex will use your default service account as per Google's fallback logic
4449+# azure:
4450+# account_name:
4451+# account_key:
4452+# container_name:
4453+# endpoint_suffix:
4454+# max_retries: # Number of retries for recoverable errors (defaults to 20)
4455+ filesystem:
4456+ dir: ./data/tsdb
4457+
4458+compactor:
4459+ data_dir: /tmp/cortex/compactor
4460+ sharding_ring:
4461+ kvstore:
4462+ store: inmemory
4463+
4464+frontend_worker:
4465+ match_max_concurrent: true
4466+
4467+ruler:
4468+ enable_api: true
4469+ enable_sharding: false
4470+
4471+ruler_storage:
4472+ backend: local
4473+ local:
4474+ directory: /tmp/cortex/rules
4475diff --git a/pkg/alertmanager/alertmanager.go b/pkg/alertmanager/alertmanager.go
4476index fe89550..43fe9e3 100644
4477--- a/pkg/alertmanager/alertmanager.go
4478+++ b/pkg/alertmanager/alertmanager.go
4479@@ -13,8 +13,10 @@ import (
4480 "sync"
4481 "time"
4482
4483- "github.com/go-kit/kit/log"
4484- "github.com/go-kit/kit/log/level"
4485+ "github.com/go-kit/log"
4486+ "github.com/go-kit/log/level"
4487+ "github.com/grafana/dskit/flagext"
4488+ "github.com/grafana/dskit/services"
4489 "github.com/pkg/errors"
4490 "github.com/prometheus/alertmanager/api"
4491 "github.com/prometheus/alertmanager/cluster"
4492@@ -29,6 +31,7 @@ import (
4493 "github.com/prometheus/alertmanager/notify/pagerduty"
4494 "github.com/prometheus/alertmanager/notify/pushover"
4495 "github.com/prometheus/alertmanager/notify/slack"
4496+ "github.com/prometheus/alertmanager/notify/sns"
4497 "github.com/prometheus/alertmanager/notify/victorops"
4498 "github.com/prometheus/alertmanager/notify/webhook"
4499 "github.com/prometheus/alertmanager/notify/wechat"
4500@@ -46,9 +49,7 @@ import (
4501 "golang.org/x/time/rate"
4502
4503 "github.com/cortexproject/cortex/pkg/alertmanager/alertstore"
4504- "github.com/cortexproject/cortex/pkg/util/flagext"
4505 util_net "github.com/cortexproject/cortex/pkg/util/net"
4506- "github.com/cortexproject/cortex/pkg/util/services"
4507 )
4508
4509 const (
4510@@ -194,7 +195,7 @@ func New(cfg *Config, reg *prometheus.Registry) (*Alertmanager, error) {
4511 am.nflog, err = nflog.New(
4512 nflog.WithRetention(cfg.Retention),
4513 nflog.WithSnapshot(filepath.Join(cfg.TenantDataDir, notificationLogSnapshot)),
4514- nflog.WithMaintenance(maintenancePeriod, am.stop, am.wg.Done),
4515+ nflog.WithMaintenance(maintenancePeriod, am.stop, am.wg.Done, nil),
4516 nflog.WithMetrics(am.registry),
4517 nflog.WithLogger(log.With(am.logger, "component", "nflog")),
4518 )
4519@@ -238,7 +239,7 @@ func New(cfg *Config, reg *prometheus.Registry) (*Alertmanager, error) {
4520
4521 am.wg.Add(1)
4522 go func() {
4523- am.silences.Maintenance(maintenancePeriod, silencesFile, am.stop)
4524+ am.silences.Maintenance(maintenancePeriod, silencesFile, am.stop, nil)
4525 am.wg.Done()
4526 }()
4527
4528@@ -515,6 +516,9 @@ func buildReceiverIntegrations(nc *config.Receiver, tmpl *template.Template, fir
4529 for i, c := range nc.PushoverConfigs {
4530 add("pushover", i, c, func(l log.Logger) (notify.Notifier, error) { return pushover.New(c, tmpl, l, httpOps...) })
4531 }
4532+ for i, c := range nc.SNSConfigs {
4533+ add("sns", i, c, func(l log.Logger) (notify.Notifier, error) { return sns.New(c, tmpl, l, httpOps...) })
4534+ }
4535 // If we add support for more integrations, we need to add them to validation as well. See validation.allowedIntegrationNames field.
4536 if errs.Len() > 0 {
4537 return nil, &errs
4538diff --git a/pkg/alertmanager/alertmanager_client.go b/pkg/alertmanager/alertmanager_client.go
4539index 963b531..e95d870 100644
4540--- a/pkg/alertmanager/alertmanager_client.go
4541+++ b/pkg/alertmanager/alertmanager_client.go
4542@@ -4,7 +4,7 @@ import (
4543 "flag"
4544 "time"
4545
4546- "github.com/go-kit/kit/log"
4547+ "github.com/go-kit/log"
4548 "github.com/pkg/errors"
4549 "github.com/prometheus/client_golang/prometheus"
4550 "github.com/prometheus/client_golang/prometheus/promauto"
4551diff --git a/pkg/alertmanager/alertmanager_http.go b/pkg/alertmanager/alertmanager_http.go
4552index f0afeb2..01f34db 100644
4553--- a/pkg/alertmanager/alertmanager_http.go
4554+++ b/pkg/alertmanager/alertmanager_http.go
4555@@ -4,10 +4,10 @@ import (
4556 "net/http"
4557 "text/template"
4558
4559- "github.com/go-kit/kit/log/level"
4560+ "github.com/go-kit/log/level"
4561+ "github.com/grafana/dskit/services"
4562
4563 util_log "github.com/cortexproject/cortex/pkg/util/log"
4564- "github.com/cortexproject/cortex/pkg/util/services"
4565 )
4566
4567 var (
4568diff --git a/pkg/alertmanager/alertmanager_http_test.go b/pkg/alertmanager/alertmanager_http_test.go
4569index b2e40b8..209ba33 100644
4570--- a/pkg/alertmanager/alertmanager_http_test.go
4571+++ b/pkg/alertmanager/alertmanager_http_test.go
4572@@ -7,7 +7,7 @@ import (
4573 "testing"
4574 "time"
4575
4576- "github.com/go-kit/kit/log"
4577+ "github.com/go-kit/log"
4578 "github.com/prometheus/alertmanager/cluster"
4579 "github.com/prometheus/client_golang/prometheus"
4580 "github.com/stretchr/testify/require"
4581@@ -32,6 +32,7 @@ func TestMultitenantAlertmanager_GetStatusHandler(t *testing.T) {
4582 cluster.DefaultTcpTimeout,
4583 cluster.DefaultProbeTimeout,
4584 cluster.DefaultProbeInterval,
4585+ nil,
4586 )
4587 }
4588
4589diff --git a/pkg/alertmanager/alertmanager_ring.go b/pkg/alertmanager/alertmanager_ring.go
4590index 04d08d2..57b3000 100644
4591--- a/pkg/alertmanager/alertmanager_ring.go
4592+++ b/pkg/alertmanager/alertmanager_ring.go
4593@@ -6,11 +6,11 @@ import (
4594 "os"
4595 "time"
4596
4597- "github.com/go-kit/kit/log/level"
4598+ "github.com/go-kit/log/level"
4599+ "github.com/grafana/dskit/flagext"
4600+ "github.com/grafana/dskit/kv"
4601
4602 "github.com/cortexproject/cortex/pkg/ring"
4603- "github.com/cortexproject/cortex/pkg/ring/kv"
4604- "github.com/cortexproject/cortex/pkg/util/flagext"
4605 util_log "github.com/cortexproject/cortex/pkg/util/log"
4606 )
4607
4608@@ -76,8 +76,8 @@ func (cfg *RingConfig) RegisterFlags(f *flag.FlagSet) {
4609
4610 // Ring flags
4611 cfg.KVStore.RegisterFlagsWithPrefix(rfprefix, "alertmanagers/", f)
4612- f.DurationVar(&cfg.HeartbeatPeriod, rfprefix+"heartbeat-period", 15*time.Second, "Period at which to heartbeat to the ring.")
4613- f.DurationVar(&cfg.HeartbeatTimeout, rfprefix+"heartbeat-timeout", time.Minute, "The heartbeat timeout after which alertmanagers are considered unhealthy within the ring.")
4614+ f.DurationVar(&cfg.HeartbeatPeriod, rfprefix+"heartbeat-period", 15*time.Second, "Period at which to heartbeat to the ring. 0 = disabled.")
4615+ f.DurationVar(&cfg.HeartbeatTimeout, rfprefix+"heartbeat-timeout", time.Minute, "The heartbeat timeout after which alertmanagers are considered unhealthy within the ring. 0 = never (timeout disabled).")
4616 f.IntVar(&cfg.ReplicationFactor, rfprefix+"replication-factor", 3, "The replication factor to use when sharding the alertmanager.")
4617 f.BoolVar(&cfg.ZoneAwarenessEnabled, rfprefix+"zone-awareness-enabled", false, "True to enable zone-awareness and replicate alerts across different availability zones.")
4618
4619diff --git a/pkg/alertmanager/alertmanager_test.go b/pkg/alertmanager/alertmanager_test.go
4620index 402ec2e..23a309f 100644
4621--- a/pkg/alertmanager/alertmanager_test.go
4622+++ b/pkg/alertmanager/alertmanager_test.go
4623@@ -7,7 +7,7 @@ import (
4624 "testing"
4625 "time"
4626
4627- "github.com/go-kit/kit/log"
4628+ "github.com/go-kit/log"
4629 "github.com/prometheus/alertmanager/config"
4630 "github.com/prometheus/alertmanager/types"
4631 "github.com/prometheus/client_golang/prometheus"
4632diff --git a/pkg/alertmanager/alertstore/bucketclient/bucket_client.go b/pkg/alertmanager/alertstore/bucketclient/bucket_client.go
4633index a8822d5..cab4fe7 100644
4634--- a/pkg/alertmanager/alertstore/bucketclient/bucket_client.go
4635+++ b/pkg/alertmanager/alertstore/bucketclient/bucket_client.go
4636@@ -7,7 +7,7 @@ import (
4637 "strings"
4638 "sync"
4639
4640- "github.com/go-kit/kit/log"
4641+ "github.com/go-kit/log"
4642 "github.com/gogo/protobuf/proto"
4643 "github.com/pkg/errors"
4644 "github.com/thanos-io/thanos/pkg/objstore"
4645diff --git a/pkg/alertmanager/alertstore/objectclient/store.go b/pkg/alertmanager/alertstore/objectclient/store.go
4646index 7812806..ceab6bb 100644
4647--- a/pkg/alertmanager/alertstore/objectclient/store.go
4648+++ b/pkg/alertmanager/alertstore/objectclient/store.go
4649@@ -8,7 +8,7 @@ import (
4650 "strings"
4651 "sync"
4652
4653- "github.com/go-kit/kit/log"
4654+ "github.com/go-kit/log"
4655 "github.com/pkg/errors"
4656 "github.com/thanos-io/thanos/pkg/runutil"
4657
4658diff --git a/pkg/alertmanager/alertstore/store.go b/pkg/alertmanager/alertstore/store.go
4659index 12bba96..7a713d0 100644
4660--- a/pkg/alertmanager/alertstore/store.go
4661+++ b/pkg/alertmanager/alertstore/store.go
4662@@ -4,7 +4,7 @@ import (
4663 "context"
4664 "fmt"
4665
4666- "github.com/go-kit/kit/log"
4667+ "github.com/go-kit/log"
4668 "github.com/prometheus/client_golang/prometheus"
4669
4670 "github.com/cortexproject/cortex/pkg/alertmanager/alertspb"
4671diff --git a/pkg/alertmanager/alertstore/store_test.go b/pkg/alertmanager/alertstore/store_test.go
4672index 2c87005..12016a1 100644
4673--- a/pkg/alertmanager/alertstore/store_test.go
4674+++ b/pkg/alertmanager/alertstore/store_test.go
4675@@ -5,7 +5,7 @@ import (
4676 "errors"
4677 "testing"
4678
4679- "github.com/go-kit/kit/log"
4680+ "github.com/go-kit/log"
4681 "github.com/prometheus/alertmanager/cluster/clusterpb"
4682 "github.com/stretchr/testify/assert"
4683 "github.com/stretchr/testify/require"
4684diff --git a/pkg/alertmanager/api.go b/pkg/alertmanager/api.go
4685index 9d1ee0d..385d3e2 100644
4686--- a/pkg/alertmanager/api.go
4687+++ b/pkg/alertmanager/api.go
4688@@ -16,8 +16,8 @@ import (
4689 "github.com/cortexproject/cortex/pkg/util/concurrency"
4690 util_log "github.com/cortexproject/cortex/pkg/util/log"
4691
4692- "github.com/go-kit/kit/log"
4693- "github.com/go-kit/kit/log/level"
4694+ "github.com/go-kit/log"
4695+ "github.com/go-kit/log/level"
4696 "github.com/pkg/errors"
4697 "github.com/prometheus/alertmanager/config"
4698 "github.com/prometheus/alertmanager/template"
4699diff --git a/pkg/alertmanager/api_test.go b/pkg/alertmanager/api_test.go
4700index 511a7f4..494120d 100644
4701--- a/pkg/alertmanager/api_test.go
4702+++ b/pkg/alertmanager/api_test.go
4703@@ -9,26 +9,23 @@ import (
4704 "net/http/httptest"
4705 "testing"
4706
4707- "github.com/go-kit/kit/log"
4708+ "github.com/go-kit/log"
4709 "github.com/gorilla/mux"
4710- "github.com/prometheus/client_golang/prometheus"
4711- "gopkg.in/yaml.v2"
4712-
4713+ "github.com/grafana/dskit/flagext"
4714+ "github.com/grafana/dskit/services"
4715 "github.com/pkg/errors"
4716 "github.com/prometheus/alertmanager/config"
4717+ "github.com/prometheus/client_golang/prometheus"
4718 commoncfg "github.com/prometheus/common/config"
4719 "github.com/stretchr/testify/assert"
4720+ "github.com/stretchr/testify/require"
4721 "github.com/thanos-io/thanos/pkg/objstore"
4722-
4723- "github.com/cortexproject/cortex/pkg/util/flagext"
4724+ "github.com/weaveworks/common/user"
4725+ "gopkg.in/yaml.v2"
4726
4727 "github.com/cortexproject/cortex/pkg/alertmanager/alertspb"
4728 "github.com/cortexproject/cortex/pkg/alertmanager/alertstore/bucketclient"
4729 util_log "github.com/cortexproject/cortex/pkg/util/log"
4730- "github.com/cortexproject/cortex/pkg/util/services"
4731-
4732- "github.com/stretchr/testify/require"
4733- "github.com/weaveworks/common/user"
4734 )
4735
4736 func TestAMConfigValidationAPI(t *testing.T) {
4737diff --git a/pkg/alertmanager/distributor.go b/pkg/alertmanager/distributor.go
4738index 2dcfc36..5311216 100644
4739--- a/pkg/alertmanager/distributor.go
4740+++ b/pkg/alertmanager/distributor.go
4741@@ -10,8 +10,9 @@ import (
4742 "strings"
4743 "sync"
4744
4745- "github.com/go-kit/kit/log"
4746- "github.com/go-kit/kit/log/level"
4747+ "github.com/go-kit/log"
4748+ "github.com/go-kit/log/level"
4749+ "github.com/grafana/dskit/services"
4750 "github.com/opentracing/opentracing-go"
4751 "github.com/pkg/errors"
4752 "github.com/prometheus/client_golang/prometheus"
4753@@ -24,7 +25,6 @@ import (
4754 "github.com/cortexproject/cortex/pkg/tenant"
4755 "github.com/cortexproject/cortex/pkg/util"
4756 util_log "github.com/cortexproject/cortex/pkg/util/log"
4757- "github.com/cortexproject/cortex/pkg/util/services"
4758 )
4759
4760 // Distributor forwards requests to individual alertmanagers.
4761diff --git a/pkg/alertmanager/distributor_test.go b/pkg/alertmanager/distributor_test.go
4762index ad69b85..6dafc36 100644
4763--- a/pkg/alertmanager/distributor_test.go
4764+++ b/pkg/alertmanager/distributor_test.go
4765@@ -13,21 +13,23 @@ import (
4766 "testing"
4767 "time"
4768
4769- "github.com/cortexproject/cortex/pkg/alertmanager/alertmanagerpb"
4770- "github.com/cortexproject/cortex/pkg/ring"
4771- "github.com/cortexproject/cortex/pkg/ring/kv"
4772- "github.com/cortexproject/cortex/pkg/ring/kv/consul"
4773- "github.com/cortexproject/cortex/pkg/util/flagext"
4774- util_log "github.com/cortexproject/cortex/pkg/util/log"
4775- "github.com/cortexproject/cortex/pkg/util/services"
4776- "github.com/cortexproject/cortex/pkg/util/test"
4777-
4778+ "github.com/go-kit/log"
4779+ "github.com/grafana/dskit/flagext"
4780+ "github.com/grafana/dskit/kv"
4781+ "github.com/grafana/dskit/kv/consul"
4782+ "github.com/grafana/dskit/services"
4783 "github.com/prometheus/client_golang/prometheus"
4784+ "github.com/stretchr/testify/assert"
4785 "github.com/stretchr/testify/require"
4786 "github.com/weaveworks/common/httpgrpc"
4787 "github.com/weaveworks/common/user"
4788 "google.golang.org/grpc"
4789 "google.golang.org/grpc/health/grpc_health_v1"
4790+
4791+ "github.com/cortexproject/cortex/pkg/alertmanager/alertmanagerpb"
4792+ "github.com/cortexproject/cortex/pkg/ring"
4793+ util_log "github.com/cortexproject/cortex/pkg/util/log"
4794+ "github.com/cortexproject/cortex/pkg/util/test"
4795 )
4796
4797 func TestDistributor_DistributeRequest(t *testing.T) {
4798@@ -335,7 +337,9 @@ func prepare(t *testing.T, numAM, numHappyAM, replicationFactor int, responseBod
4799 amByAddr[a.myAddr] = ams[i]
4800 }
4801
4802- kvStore := consul.NewInMemoryClient(ring.GetCodec())
4803+ kvStore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger(), nil)
4804+ t.Cleanup(func() { assert.NoError(t, closer.Close()) })
4805+
4806 err := kvStore.CAS(context.Background(), RingKey,
4807 func(_ interface{}) (interface{}, bool, error) {
4808 return &ring.Desc{
4809diff --git a/pkg/alertmanager/multitenant.go b/pkg/alertmanager/multitenant.go
4810index 096f9f2..d42b5a8 100644
4811--- a/pkg/alertmanager/multitenant.go
4812+++ b/pkg/alertmanager/multitenant.go
4813@@ -13,8 +13,11 @@ import (
4814 "sync"
4815 "time"
4816
4817- "github.com/go-kit/kit/log"
4818- "github.com/go-kit/kit/log/level"
4819+ "github.com/go-kit/log"
4820+ "github.com/go-kit/log/level"
4821+ "github.com/grafana/dskit/flagext"
4822+ "github.com/grafana/dskit/kv"
4823+ "github.com/grafana/dskit/services"
4824 "github.com/pkg/errors"
4825 "github.com/prometheus/alertmanager/cluster"
4826 "github.com/prometheus/alertmanager/cluster/clusterpb"
4827@@ -32,13 +35,10 @@ import (
4828 "github.com/cortexproject/cortex/pkg/alertmanager/alertstore"
4829 "github.com/cortexproject/cortex/pkg/ring"
4830 "github.com/cortexproject/cortex/pkg/ring/client"
4831- "github.com/cortexproject/cortex/pkg/ring/kv"
4832 "github.com/cortexproject/cortex/pkg/tenant"
4833 "github.com/cortexproject/cortex/pkg/util"
4834 "github.com/cortexproject/cortex/pkg/util/concurrency"
4835- "github.com/cortexproject/cortex/pkg/util/flagext"
4836 util_log "github.com/cortexproject/cortex/pkg/util/log"
4837- "github.com/cortexproject/cortex/pkg/util/services"
4838 )
4839
4840 const (
4841@@ -250,6 +250,10 @@ type MultitenantAlertmanager struct {
4842 distributor *Distributor
4843 grpcServer *server.Server
4844
4845+ // Last ring state. This variable is not protected with a mutex because it's always
4846+ // accessed by a single goroutine at a time.
4847+ ringLastState ring.ReplicationSet
4848+
4849 // Subservices manager (ring, lifecycler)
4850 subservices *services.Manager
4851 subservicesWatcher *services.FailureWatcher
4852@@ -322,6 +326,7 @@ func NewMultitenantAlertmanager(cfg *MultitenantAlertmanagerConfig, store alerts
4853 cluster.DefaultTcpTimeout,
4854 cluster.DefaultProbeTimeout,
4855 cluster.DefaultProbeInterval,
4856+ nil,
4857 )
4858 if err != nil {
4859 return nil, errors.Wrap(err, "unable to initialize gossip mesh")
4860@@ -340,7 +345,8 @@ func NewMultitenantAlertmanager(cfg *MultitenantAlertmanagerConfig, store alerts
4861 ringStore, err = kv.NewClient(
4862 cfg.ShardingRing.KVStore,
4863 ring.GetCodec(),
4864- kv.RegistererWithKVName(registerer, "alertmanager"),
4865+ kv.RegistererWithKVName(prometheus.WrapRegistererWithPrefix("cortex_", registerer), "alertmanager"),
4866+ logger,
4867 )
4868 if err != nil {
4869 return nil, errors.Wrap(err, "create KV store client")
4870@@ -488,6 +494,10 @@ func (am *MultitenantAlertmanager) starting(ctx context.Context) (err error) {
4871 }
4872
4873 if am.cfg.ShardingEnabled {
4874+ // Store the ring state after the initial Alertmanager configs sync has been done and before we do change
4875+ // our state in the ring.
4876+ am.ringLastState, _ = am.ring.GetAllHealthy(RingOp)
4877+
4878 // Make sure that all the alertmanagers we were initially configured with have
4879 // fetched state from the replicas, before advertising as ACTIVE. This will
4880 // reduce the possibility that we lose state when new instances join/leave.
4881@@ -631,10 +641,8 @@ func (am *MultitenantAlertmanager) run(ctx context.Context) error {
4882 defer tick.Stop()
4883
4884 var ringTickerChan <-chan time.Time
4885- var ringLastState ring.ReplicationSet
4886
4887 if am.cfg.ShardingEnabled {
4888- ringLastState, _ = am.ring.GetAllHealthy(RingOp)
4889 ringTicker := time.NewTicker(util.DurationWithJitter(am.cfg.ShardingRing.RingCheckPeriod, 0.2))
4890 defer ringTicker.Stop()
4891 ringTickerChan = ringTicker.C
4892@@ -656,8 +664,8 @@ func (am *MultitenantAlertmanager) run(ctx context.Context) error {
4893 // replication set which we use to compare with the previous state.
4894 currRingState, _ := am.ring.GetAllHealthy(RingOp)
4895
4896- if ring.HasReplicationSetChanged(ringLastState, currRingState) {
4897- ringLastState = currRingState
4898+ if ring.HasReplicationSetChanged(am.ringLastState, currRingState) {
4899+ am.ringLastState = currRingState
4900 if err := am.loadAndSyncConfigs(ctx, reasonRingChange); err != nil {
4901 level.Warn(am.logger).Log("msg", "error while synchronizing alertmanager configs", "err", err)
4902 }
4903diff --git a/pkg/alertmanager/multitenant_test.go b/pkg/alertmanager/multitenant_test.go
4904index dc60301..ba1ddc7 100644
4905--- a/pkg/alertmanager/multitenant_test.go
4906+++ b/pkg/alertmanager/multitenant_test.go
4907@@ -19,7 +19,10 @@ import (
4908 "testing"
4909 "time"
4910
4911- "github.com/go-kit/kit/log"
4912+ "github.com/go-kit/log"
4913+ "github.com/grafana/dskit/flagext"
4914+ "github.com/grafana/dskit/kv/consul"
4915+ "github.com/grafana/dskit/services"
4916 "github.com/prometheus/alertmanager/cluster/clusterpb"
4917 "github.com/prometheus/alertmanager/notify"
4918 "github.com/prometheus/alertmanager/pkg/labels"
4919@@ -41,12 +44,9 @@ import (
4920 "github.com/cortexproject/cortex/pkg/alertmanager/alertstore"
4921 "github.com/cortexproject/cortex/pkg/alertmanager/alertstore/bucketclient"
4922 "github.com/cortexproject/cortex/pkg/ring"
4923- "github.com/cortexproject/cortex/pkg/ring/kv/consul"
4924 "github.com/cortexproject/cortex/pkg/storage/bucket"
4925 "github.com/cortexproject/cortex/pkg/util"
4926 "github.com/cortexproject/cortex/pkg/util/concurrency"
4927- "github.com/cortexproject/cortex/pkg/util/flagext"
4928- "github.com/cortexproject/cortex/pkg/util/services"
4929 "github.com/cortexproject/cortex/pkg/util/test"
4930 "github.com/cortexproject/cortex/pkg/util/validation"
4931 )
4932@@ -611,7 +611,9 @@ func TestMultitenantAlertmanager_deleteUnusedLocalUserState(t *testing.T) {
4933 func TestMultitenantAlertmanager_zoneAwareSharding(t *testing.T) {
4934 ctx := context.Background()
4935 alertStore := prepareInMemoryAlertStore()
4936- ringStore := consul.NewInMemoryClient(ring.GetCodec())
4937+ ringStore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger(), nil)
4938+ t.Cleanup(func() { assert.NoError(t, closer.Close()) })
4939+
4940 const (
4941 user1 = "user1"
4942 user2 = "user2"
4943@@ -689,7 +691,8 @@ func TestMultitenantAlertmanager_deleteUnusedRemoteUserState(t *testing.T) {
4944 )
4945
4946 alertStore := prepareInMemoryAlertStore()
4947- ringStore := consul.NewInMemoryClient(ring.GetCodec())
4948+ ringStore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger(), nil)
4949+ t.Cleanup(func() { assert.NoError(t, closer.Close()) })
4950
4951 createInstance := func(i int) *MultitenantAlertmanager {
4952 reg := prometheus.NewPedanticRegistry()
4953@@ -1005,7 +1008,8 @@ func TestMultitenantAlertmanager_InitialSyncWithSharding(t *testing.T) {
4954 ctx := context.Background()
4955 amConfig := mockAlertmanagerConfig(t)
4956 amConfig.ShardingEnabled = true
4957- ringStore := consul.NewInMemoryClient(ring.GetCodec())
4958+ ringStore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger(), nil)
4959+ t.Cleanup(func() { assert.NoError(t, closer.Close()) })
4960
4961 // Use an alert store with a mocked backend.
4962 bkt := &bucket.ClientMock{}
4963@@ -1109,7 +1113,9 @@ func TestMultitenantAlertmanager_PerTenantSharding(t *testing.T) {
4964 for _, tt := range tc {
4965 t.Run(tt.name, func(t *testing.T) {
4966 ctx := context.Background()
4967- ringStore := consul.NewInMemoryClient(ring.GetCodec())
4968+ ringStore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger(), nil)
4969+ t.Cleanup(func() { assert.NoError(t, closer.Close()) })
4970+
4971 alertStore := prepareInMemoryAlertStore()
4972
4973 var instances []*MultitenantAlertmanager
4974@@ -1296,7 +1302,9 @@ func TestMultitenantAlertmanager_SyncOnRingTopologyChanges(t *testing.T) {
4975 amConfig.ShardingRing.RingCheckPeriod = 100 * time.Millisecond
4976 amConfig.PollInterval = time.Hour // Don't trigger the periodic check.
4977
4978- ringStore := consul.NewInMemoryClient(ring.GetCodec())
4979+ ringStore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger(), nil)
4980+ t.Cleanup(func() { assert.NoError(t, closer.Close()) })
4981+
4982 alertStore := prepareInMemoryAlertStore()
4983
4984 reg := prometheus.NewPedanticRegistry()
4985@@ -1325,18 +1333,15 @@ func TestMultitenantAlertmanager_SyncOnRingTopologyChanges(t *testing.T) {
4986 return ringDesc, true, nil
4987 }))
4988
4989- // Assert if we expected a sync or not.
4990+ // Assert if we expected an additional sync or not.
4991+ expectedSyncs := 1
4992 if tt.expected {
4993- test.Poll(t, time.Second, float64(2), func() interface{} {
4994- metrics := regs.BuildMetricFamiliesPerUser()
4995- return metrics.GetSumOfCounters("cortex_alertmanager_sync_configs_total")
4996- })
4997- } else {
4998- time.Sleep(250 * time.Millisecond)
4999-
5000- metrics := regs.BuildMetricFamiliesPerUser()
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches